Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #22841
| From | Andrew Haley <andrew29@littlepinkcloud.invalid> |
|---|---|
| Subject | Re: OO dispatch |
| Newsgroups | comp.lang.forth |
| References | (9 earlier) <kn0aqb$d3v$1@online.de> <R5CdndY-5plDUg7MnZ2dnUVZ_hOdnZ2d@supernews.com> <2013May16.160704@mips.complang.tuwien.ac.at> <ut-dnUpWOM9YygrMnZ2dnUVZ_t-dnZ2d@supernews.com> <2013May20.132840@mips.complang.tuwien.ac.at> |
| Message-ID | <PeCdnUcty9HjsQfMnZ2dnUVZ_i2dnZ2d@supernews.com> (permalink) |
| Date | 2013-05-20 09:00 -0500 |
Anton Ertl <anton@mips.complang.tuwien.ac.at> wrote: > Andrew Haley <andrew29@littlepinkcloud.invalid> writes: >>Anton Ertl <anton@mips.complang.tuwien.ac.at> wrote: >>> >> >>I was thinking of something very much like a generic function (in LISP >>terminology), which is a function that is specialized on the type of >>its operand. This is a fairly general-purpose concept that IMO is >>ideal for Forth. > > It can be implemented with vtable dispatch, so it's not an alternative > to it, but a concept at a different level. > >>This is quite neatly implemented with a hash table and some caching. > > So that's the implementation you were thinking of. Still not a clear > enough description that I could discuss it. Sure, but them we'd be discussing the minutiae of a particular implementation. Is that useful at this stage? I wouldn't have thought so. >>>>Nothing, save for the fact that you're hoping for good prediction and >>>>neglecting the cache miss effects when fetching from the vtable. The >>>>prediction of an inline cache is going to be far better. >>> >>> Have you measured it? >> >>No, but it's not going to be any worse (how could it be?) and it's not >>limited to a fixed-size cache. > > The way you describe it below, you only use inline caching for > monomorphic methods. There, your check branch will predict perfectly, > and the BTB (or more sophisticated indirect branch predictor) will > also predict perfectly; at least if we ignore aliasing in the > predictors, and of course the warmup time of the predictor (including > after task switches). In the monomorphic case, an inline cache will predict perfectly unless something changes. An indirect branch predictor will predict perfectly unless something changes or the entry has expired from its cache, which is of limited size. Andrew.
Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar
Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-15 16:46 +0200
Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-15 13:11 -0500
Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-15 23:23 +0200
Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-16 02:24 -0500
Re: The current object anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-16 13:55 +0000
Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-16 17:45 +0200
Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-18 05:13 -0500
Re: The current object Doug Hoffman <glidedog@gmail.com> - 2013-05-18 06:43 -0400
Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-18 10:03 -0500
Re: The current object Doug Hoffman <glidedog@gmail.com> - 2013-05-18 11:30 -0400
Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-19 01:20 +0200
Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-19 12:33 -0500
Re: The current object Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-19 01:07 +0200
Re: The current object Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-19 03:58 -0500
OO dispatch (was: The current object) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-16 14:07 +0000
Re: OO dispatch Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-18 05:28 -0500
Re: OO dispatch anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-20 11:28 +0000
Re: OO dispatch Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-20 09:00 -0500
Re: OO dispatch Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-21 01:37 +0200
Re: OO dispatch Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-21 03:21 -0500
Re: OO dispatch anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-21 12:24 +0000
Re: OO dispatch Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-21 10:18 -0500
Re: OO dispatch anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-05-21 16:03 +0000
Re: OO dispatch Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-05-21 12:55 -0500
Re: OO dispatch Bernd Paysan <bernd.paysan@gmx.de> - 2013-05-29 00:00 +0200
Re: OO dispatch Mark Wills <markrobertwills@yahoo.co.uk> - 2013-05-28 15:49 -0700
csiph-web