Skip to content

Compact AST Representation

andychu edited this page Jan 25, 2020 · 54 revisions

Compact AST Representation

Compressed Pointers

This is related: more general, but more complex.

Reducing Garbage Collection Pressure

Old Oil Stuff

  • Oil Blog Post: What is oheap?
    • Oheap V1 was a read-only format for transporting an ASDL tree across the Python/C++ boundary. Though it turned out there wasn't a single clean boundary in the shell's architecture.
  • OHeap2 was a read-write format, for OVM2.
    • At first I used it to represent .pyc files (Python's CodeObject)
    • Meant to replace marshal, pickle, and zipimport.
    • 4-16-N model: 4 byte refs, 16 byte cells, and N byte slabs.
    • See ovm2/oheap2.py
    • OHeap2 might still be a good idea, but I judged OVM2 not to be a good idea
Clone this wiki locally