Compiler Engineer Job describes the high level of what we're looking for. It's about the mycpp translator, static types, and garbage collection.

But here is a more granular breakdown.

Stages

  1. Make more spec tests pass without the garbage collector. This is valuable and still moves the project forward. We want to get from the 1496 number up to 1770 that the Python version passes.
  2. Make oil-native translate with the new garbage collected runtime.

Tasks With No Dependencies

Work That Has Dependencies

TODO: Reorganize

Off the top of my head, here's what is left on the tools and runtime:

  1. Generate GC field masks from user-defined classes, taking inheritance into account. This is part of the mycpp Python translator, which is written in Python.
  2. ASDL field masks?
  3. Write a proper O(1) dictionary that actually uses hashing! What we have now is more like an linear association list.

Here's what's left in general:

  1. Rewrite all the bindings for functions like glob() to use the garbage collector API!
  2. Figure out of the homogeneous parse tree ofr pgen2 should use garbage collected types or not. I think not.
  3. Make the Oil interpreter translatable, by making it statically typed. (OSH is already completely statically typed.