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
9 weeks 2 days ago
19 weeks 3 days ago
38 weeks 1 day ago
1 year 2 weeks ago
1 year 35 weeks ago
1 year 48 weeks ago
1 year 50 weeks ago
1 year 51 weeks ago
1 year 51 weeks ago
1 year 51 weeks ago