The lone lisp heap

16 points by veqq


thecloudlet

It’s interesting to read this article that how lone lisp is implemented. I have also wrote some similar topics on Elisp that I think it’s worth sharing.

https://thecloudlet.github.io/technical/emacs/emacs-03/

wezm

The heap is literally just a big dumb flat array of values now. A black monolith. An absolute unit. Lone values simply index into this array. The array could be anywhere in memory, it doesn't matter where it is. The real pointers are simply calculated on the fly.

I think is similar to how memory was handled in classic Mac OS (and Windows). You got a handle, which was a pointer to a master pointer. The memory manager could reorganise the heap, updating the master pointer as needed. The downside as you had to dereference two pointers to get to the actual data.