Jumping in to opine that mixing tag/type bits with native pointers is a Really Bad Idea. Put the bits on the low end and word-addressed machines are screwed. Put the bits on the high end and you've made severe assumptions about how the platform parcels out address space. In any case you're stuck with ugly macros everywhere. This technique was pioneered by Lisps, and was beautifully exploited by the Symbolics Lisp Machine and TI Lisp Explorer hardware. Lisp people don't want to admit those failed, so continue simulating the HW design by hand at comparatively sluggish C speed <0.6 wink>. BTW, I've never heard this approach argued as a speed optimization (except in the HW implementations): software mask-test-branch around every inc/dec-ref to exempt ints is a nasty new repeated expense. The original motivation was to save space, and that back in the days when a 128Mb RAM chip wasn't even conceivable, let alone under $100 <wink>. once-wrote-a-functional-language-interpreter-in-8085-assembler-that-ran- in-24Kb-cuz-that's-all-there-was-but-don't-feel-i-need-to-repeat-the- experience-today-wink>-ly y'rs - tim
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4