1 comments

  • quotemstr47 days ago
    Using Truffle for elisp is very cool.<p>&gt; In GNU Emacs, with tagged pointers, you can know an object is a cons simply by looking at the pointer.<p>Another thing is that these objects don&#x27;t need type words. In a conventional GC-adaptation of Emacs (e.g. the igc branch, or this article) one models cons cells, floats, and so on as regular objects consisting of a type word followed by the object payload. A cons cell is only two words long, so when you model it as a regular object, the type word makes it 50% larger!<p>The regular Emacs GC, for all its faults, densely packs cons cells and other small object types in specialized blocks, avoiding the need to pay the per-object type word overhead and thereby getting better space use and cache locality.<p>It&#x27;d be nice to get a modern GC with specialized heaps just for cons cells, floats, and other small objects
    • gudzpoz46 days ago
      I saw that headerless cons patch too! [1] It&#x27;s quite exciting to see what a customizable GC is able to do, and I agree a GC with targeted object types (combined with tagged pointers) have quite some room for optimization compared to generic GCs in JVM.<p>[1] <a href="https:&#x2F;&#x2F;yhetil.org&#x2F;emacs-devel&#x2F;87bjuy3ric.fsf@gmail.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;yhetil.org&#x2F;emacs-devel&#x2F;87bjuy3ric.fsf@gmail.com&#x2F;</a>