Skip to content
moon edited this page Nov 16, 2024 · 2 revisions

List of major features that needs to be implemented.

  • GC: Major GC: Currently only the scavenger is implemented, and it scavenges nursery only. Data allocated in the old region needs to be cleared with Major GC.
  • GC: Currently array data is allocated entirely through malloc. For small arrays, the data can be wrapped along side the object (same as struct and class etc). Need to identify a threshold on what is large. 1/64 of the nursery size is (~32 KB), so i think it is a good limit. So an array where each element is 8bytes will need to have 4096 elements.
  • Templates: Currently classes and structs are creating by first, allocating the object, then setting the fields. The same is for classes, for both attributes and methods. This can be streamlined by creating object templates which are encoded in the bytecode, in a template segment.
  • Constants: Constant segment is currently (potentially) unaligned.
  • Globals: Global segment is also unaligned and, in total, a mess. Needs rethinking and layout adjustment, possibly by the compiler, but changes need to be reflected the VM anyway (or do they).
Clone this wiki locally