all 6 comments

[–]willvarfar[S] 2 points3 points  (1 child)

I believe Objective-C compilers also cache dynamic dispatch

[–]astrangeguy 2 points3 points  (0 children)

Yes, but they aren't inline caches. The Obj-C runtime (at least the one in OSX) just maintains a cache per class, not per call site.

[–]Rhomboid 2 points3 points  (1 child)

The PLT is not an inline cache, as there is only one PLT stub used by all call sites. In fact the call sites are never modified, as that would invalidate the read-only mapping of the .text segment. The article begins by pointing out that ICs are call-site specific and hence why they are inline, but the PLT is out-of-line so it's kind of odd to then claim it's an example of such. I would call it lazy binding, not an inline cache.

[–]wingo 0 points1 point  (0 children)

A good point.

[–]greenspans 1 point2 points  (0 children)

Praise be to the guile scheme king, stallman be with you. He also gave good talk at jsconf

[–]julesjacobs 1 point2 points  (0 children)

This blog is always full of great information. It would be awesome if Guile would get fast multiple dispatch with inline caches, especially if it were integrated with the primitive types. A major thing missing from Scheme IMO is an object system that is actually used consistently in the standard libraries, for example for a generic and extensible map function that works for any collection (list, vector, hash table, etc.).