On 08.05.2009, at 01:13, Jecel Assumpcao Jr wrote:
Bert Freudenberg wrote:
Yes. Keep 31-bit SmallIntegers, provide e.g. 24-bit immediate characters. Andreas wrote a thorough sketch of this scheme in 2006.
I would like to see this scheme get adopted. My own suggestion for the spare encoding (spare if the GC is changed, that is) was for unboxed 30 bit floats, but that seems to be unpopular and I guess I can live with float arrays instead.
Certainly immediate charaters are very important as we move away from ASCII, and I liked Andreas' suggestions of colors and short points as well. But I would be particularly interested in having an immediate encoding for symbols. You already have a global table from converting to/from strings, so I see no need to store anything in the symbols themselves. Having a trivial way to know that an object is a symbol without chasing a class pointer could make serializing/restoring objects a little faster.
-- Jecel
The quote above was Eliot's, not mine.
Having immediate Floats seems rather compelling to me, too. Or immediate doubles, which might be a good reason to want a 64-bit image.
- Bert -