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 Ruby VALUEInternally, values in 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
2 days 18 hours ago
4 weeks 2 hours ago
5 weeks 4 days ago
7 weeks 6 days ago
7 weeks 6 days ago
11 weeks 1 day ago
11 weeks 1 day ago
13 weeks 10 hours ago
13 weeks 4 days ago
13 weeks 4 days ago