mirror of
https://github.com/urbit/ares.git
synced 2024-11-29 22:56:28 +03:00
21 lines
1.2 KiB
Markdown
21 lines
1.2 KiB
Markdown
# 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. |