Open jalehman opened 3 months ago
@jalehman requests:
@eamsden My plan was to pin this issue and take all meeting notes here as comments — significantly less meeting note administration that way, and less clicking needed to establish context from past meetings. If you'd prefer it as outlined above, happy to do it that way.
@jalehman that works too, I just don't want open meeting notes issues to proliferate or old notes to be hard to find
(trip (?:(s tod:po tos:po) q))
bench.c
that does a series of benchmarks and could then be put into CI
sock
, provenance tracking, etc. @matthew-levan will start reading the linearizer code today.need
data structure so it doesn't need to put every layer of a tree into a register.need
s now that he changed the data structures. This includes splitting, joining, and intersecting need
data structures (exactly what the requirements are depends on the details of the stack trace system). He wrote most of them but wasn't able to finish because without answers to the stack trace questions, it was too hard to come up with sane answers to what the specification should be. Joe will meet with @eamsden this evening to discuss crash handling. He also wrote up an outline of a proposal, which he will publish.need
representation, and he was able to run the toddler pill in the dojo in the Hoon nouncode interpreter.!!
, which is the [0 0]
formula. All other things that crash can be turned into one of those two errors, so all other validity constraints get turned into those. This leaves us, in this representation, with 'head' and 'tail' instructions (whose crashes need to be relocatable) and non-loobean conditionals (a Nock 6 where the first formula produces something other than 0 or 1). The reason this affects lots of other code is that this system tries hard to optimize branches to remove explicit Nock 6's. u3_weak
. This also makes it difficult to reason about which piece of code should be checking for poisoning.%mean
stack: %spot
hints, %mean
, %hand
, and %lose
hints. This would report an error as occurring under some specific hint, rather than more granularly.sbrk()
and brk()
, and instead resolves into mmap()
calls by maintaining its own brk()
-like state. It does call brk()
on initialization though, to get the current program break, and stores that in an internal context object. It uses that to offset its own internal break, which uses mmap()
. This design might be for safety reasons, to avoid perceived bugginess in some sbrk()
implementations.sbrk()
-allocated region. The first version will hard-code the size of the PMA allocation for those meta-pages, but if that doesn't end up being flexible enough, something will need to be done to emulate brk()
and sbrk()
with the PMA, or to translate the allocator's meta-page data structures into something that fits more readily into the PMA - it ideally wouldn't have to keep all the meta-pages in a single contiguous block, for example. Upon further inspection during the meeting, it looks likely that modifying the tracking of the meta-pages to not require contiguous allocation will be doable.brk()
/ sbrk()
API on top of it. @barter-simsum hopes to avoid this complexity though.
~2024.5.29
Agenda
Additional Notes