>   If this was implemented in higher-levels of abstraction we could introduce
> different tagging schemes to support locatives, flonums, etc.  This could lead
> to more language features, reduced memory usage and garbage on smaller
> hardware and better performance on 64-bit machines that don't need the lower 3
> bits of the machine word for object addresses due to alignment.
> 
>   Hardcoded 1-bit tags doesn't give much room for future ideas or any other
> immediates.  I could continue the work into libid, but I haven't looked much
> at Jolt yet; I'm not sure where to start.
> 
> Preliminary results as applied to libid here:
> 
>   http://kurtstephens.com/node/60

32-bit machines also don't need the lower 3 bits if you align all
objects by 8 bytes.

In my Church-State implementation I adopted some of the conventions used
by the SBCL lisp implementation, see the tags here

http://subvert-the-dominant-paradigm.net/repos/hgwebdir.cgi/bootstrap/file/3ec558141ebc/church/runtime/church_types.state

and the sbcl page describing the tags:

http://sbcl-internals.cliki.net/tag%20bit

The main rationale is that fixnums can be added without shifting (and
can be used to index word arrays without shifting).

In general I agree with Adrian Kuhn (who commented on your blog post)
that the benefits of one tagging scheme versus another are doubtful. In
the context of idc or my language implementation, there are many avenues
for optimization open for exploration which will likely yield more
benefit.

John




_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc

Reply via email to