# 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.