mirror of
https://github.com/urbit/ares.git
synced 2024-12-25 22:34:08 +03:00
1.2 KiB
1.2 KiB
Notes ~2021.9.23
Discussion with ~rovnys-ricfer
- Some discussion of the memory model, in particular using tag bits to identify
- direct noun
- indirect noun
- pointer to cell
- hash table reference
- Hash table ejection strategy
- When the copier is returning a noun, it counts how many iterations of copying it has performed
- Above a tunable threshhold, an entry in the hash table is made and the noun is copied there instead.
- Existing pointers into the hash table are copied and re-inserted as new entries, thus maintaining an invariant that a hash table entry can only reference its own memory by a direct pointer, or another hash table entry, by hash reference.
- nouns that require metadata (jet pointers, cached bytecode) are ejected to the hashtable
- hashtable can also store non-noun data such as bytecode
- TBD: a collection strategy for the hash table.
Infrastructure channel discussion
- Interpreter should handle nock 12 with an extra input of a scry gate stack, so it can be used to jet
+mink
- Also need to return crash values from the interpreter, and build traces when passing through nock 11.
- ~master-morzod objects to calling the machine code from JIT compilation "automatic jets" and is probably right.