Kurt StephensNerd Up! | ||||||||
language implementationParameterized Word Tagging in Latently-Typed Languages
AbstractI have been interested in optimal low-bit tag schemes on machine words in latently-typed languages. There are different schools of thought on how to handle the trade-offs between Fixnums (integers smaller than word size) and allocated objects. Ian Piumarta’s libid object library is a very simple prototype-based object system with unresolved method delegation. It is used in the Pepsi/Coke COLA system (available at http://vpri.org/fonc_wiki/index.php/Sources) as the basis for all object representations and meta-behaviors. libid assumes that a reference to an object’s method table, or “vtable” resides at the word before the object’s address. Ruby Internals: Why RUBY_FIXNUM_FLAG should be 0x00
Type tags in MRI Ruby VALUEInternally, values in MRI Ruby are 32-bit (at least for 32-bit processors). Some of the least-significant bits are used to store type information. See the Ruby uses a single-bit tag of Embedding a properly tail-recursive, stack-based interpreter in C
See /pub/tail_call_interp/tail_call_interp.c The Scheme programming language requires proper implementation of tail calls, because all looping in Scheme is implemented as function calls — there is a very fundamental relationship between tail-calls and iteration. |
||||||||
Recent comments
1 week 2 days ago
3 weeks 5 days ago
3 weeks 6 days ago
3 weeks 6 days ago
4 weeks 32 min ago
4 weeks 2 hours ago
6 weeks 2 days ago
6 weeks 2 days ago
8 weeks 6 days ago
8 weeks 6 days ago