On Apr 30, 2007, at 9:58 AM, Jano Svitok wrote:
> This is kind of "hack" / implementation detail:
>
> this bit is a flag that distinguishes between immediate values and
> full objects.

This is another of my attempts to kill the 'immediate value' meme
in Ruby.  Feel free to ignore.


I think Ruby's semantics are clearer if you consider that the only
'values' in the language are references.  These values reference
objects but the objects themselves are not manipulated as values
by the language.

Some references indicate implicit objects (nil, false, true,
fixnums, and symbols) and some references indicate explicit objects
(everything else).  This differentiation is mostly an
implementation detail.

This point of view makes assignment and parameter passing semantics
consistent regardless of what objects are being referenced.


Gary Wright