ares/notes/notes-~2021.9.23.md

21 lines
1.2 KiB
Markdown
Raw Normal View History

2021-10-22 01:13:52 +03:00
# 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.