Commit Graph

937 Commits

Author SHA1 Message Date
Alex Shelkovnykov
47644d16dc pma: add unit/integration tests 2023-08-15 16:11:23 -06:00
Jonathan Paprocki
81a7eb780c split: implements split stack
see docs/stack.md for information about this change.

split: replace Polarity enum with pointer check

we can check polarity with West === FP < AP,
East === FP > AP.

we panic when the pointers are equal.

split: pre_copy step before preserve() calls

we need to save the stored frame_pointer and alloc_pointer before
preserve calls, which will otherwise overwrite them.

split: copy_west(), now with stack_pointer!

when copying, we can forget the lightweight stack in the current frame
and start a new one adjacent to from-space used for traversing nouns
in from-space.

split: working split stack

this commit works with hurray.jam and decrement.jam.

there's at least one thing left: I don't think the implementation of
hamt::preserve() is correct, but hurray.jam and decrement.jam don't use
it so it doesn't detect it. the comment there explains whats wrong.

I also need to double check copy_pma() still.
 This is the commit message #52:

split: hamt::preserve() and free_alloc

hamt::preserve() needs to allocate in the current frame after we've
already said we can no longer allocate (once pre_copy() has been
called). so does e.g. copy_west(), since it moves the lightweight
stack into this same area. we can unify this interface but I want
to explore the ergonomics of making this free allocation stuff usable
for the programmer without having to think about whether or not
pre_copy() has already been called.

split: add boolean for pre_copy()

alternative: use an enum to say whether the lightweight stack grows
westward or eastward, and that the reserved slots for the previous
frame's pointers are adjacent to the frame_pointer or alloc_pointer. not
sure which is the better choice yet.

split: panic when allocating at the wrong time

when pc == false, we aren't in copying mode (basically when we're
copying allocations to the previous frame to get ready to pop the
frame). therefore we should panic if we try to allocate in the previous
frame.

similarly, when pc == true, we're no longer allowed to allocate in the
current frame, but we can allocate in the previous frame. therefore we
should panic if we try to allocate in the current frame.

split: use prev_stack_pointer_pointer()

we'd like the programmer to not have to think about whether the frame is
in copying mode or not, so every time we want the previous frame's stack
pointer we should just called prev_stack_pointer_pointer() instead of
trying to remember if we need slot_pointer or free_slot.

we still use slot_pointer and free_slot for pushing and popping stack
frames, since we're in the midst of changing the pointers that would
determine where prev_stack_pointer_pointer() would look.

split: polarity of lw stack changes in pre_copy

It was waiting until copy_west/copy_east to do this - this makes it more
clear that the lightweight stack is different after pre_copy() is called

split: simplify is_west

asking this to panic in case of equality is assigning it too much
responsibility. it should just say whether or not a frame is west.

 This is the commit message #76:

split: copy_pma isn't in cleanup mode

we don't need to move the lightweight stack since we're not allocating
in a previous frame, but into the PMA

split: revise pre_copy() usage

pre_copy() is no longer public. instead, it is called at the start of
any NockStack method which could potentially be the first function called when
getting ready to pop a stack frame (preserve() and functions that
allocate in the previous frame).

main: trailing bytes of cued jamfile are zeroes

this was already the case, but it was doing so incorrectly.

write_bytes(dest.add(word_len as usize - 1), 0, 8)
copies 64 bytes of zeroes starting at the last word of the indirect
atom. this went unnoticed before split stack since allocation happened
at the west end of the memory arena. now that allocation starts at the
east end, this was causing an overflow. so the correct line is
write_bytes(dest.add(word_len as usize - 1), 0, 1)

split: memory in NockStack::new not mutable

it was before split stack, now its unnecessary and throws a compiler
warning. im confused as to why it was ever there at all, though
2023-08-11 12:54:57 -04:00
Alex Shelkovnykov
d02d0373e2 pma: add comment to document write/pwrite usage 2023-05-25 13:50:09 +00:00
Alex Shelkovnykov
1a4d5b15ec pma: fix void* arithmetic warnings 2023-05-25 13:43:05 +00:00
Alex Shelkovnykov
15948a3772 pma: fix old style function definition warnings 2023-05-25 13:38:50 +00:00
Alex Shelkovnykov
7c9e1fc393 pma: fix enum forward reference 2023-05-25 13:37:33 +00:00
Alex Shelkovnykov
56a2b1df8e pma: fix unused_result warning 2023-05-25 13:35:36 +00:00
Alex Shelkovnykov
0c56775dbe build: split build.rs profiles 2023-05-25 13:33:04 +00:00
Alex Shelkovnykov
c13e05a907 pma: fix toplevel_ref_arg linter warning 2023-05-20 19:20:14 +00:00
Alex Shelkovnykov
3245f9ea14 jets: fix toplevel_ref_arg linter warnings 2023-05-20 19:18:19 +00:00
Alex Shelkovnykov
960d3a37d7 jets: fix needless-borrow linter warning 2023-05-20 19:13:43 +00:00
Alex Shelkovnykov
da7954360e jets: fix unused-variable linter warnings 2023-05-20 19:13:37 +00:00
barter-simsum
1dd2dd2bd4 fix macos build 2023-05-18 22:04:49 -04:00
barter-simsum
b4aece5692 clang warnings 2023-05-18 22:04:49 -04:00
barter-simsum
5e91015f18 lint 2023-05-18 22:04:49 -04:00
barter-simsum
9df8d89901 comment explaining bp() 2023-05-18 22:04:49 -04:00
barter-simsum
3055552ef1 fix errant multi-page alloc assert
shared pages don't contain an offset. This must have accidentally been included
in the loop when it should have preceded it
2023-05-18 22:04:49 -04:00
barter-simsum
eb12e25ef2 prefix pma types with PMA + typedef prior to defn 2023-05-18 22:04:49 -04:00
barter-simsum
8d70e8d67e misc 2023-05-18 20:21:18 -04:00
barter-simsum
7b0cd288d5 unhook PMA from event lifecycle. use DoubleJam for persistence 2023-05-18 20:21:18 -04:00
Alex Shelkovnykov
78dcbd2d22 remove test files from before merge into ares repo 2023-05-18 20:21:18 -04:00
Alex Shelkovnykov
40852a1c86 replace accidentally deleted pwrite 2023-05-18 20:21:18 -04:00
barter-simsum
e83302376f at last no sigsegv due to fubar _pma_state->metadata refactor 2023-05-18 20:21:18 -04:00
barter-simsum
f3772c0be0 misc 2023-05-18 20:21:18 -04:00
barter-simsum
de52547506 _pma_state->metadata mem leak 2023-05-18 20:21:18 -04:00
barter-simsum
15c4af135c philip's pma changes inter alia 2023-05-18 20:21:18 -04:00
Alex Shelkovnykov
6374895d84 Move PMA code into Ares from separate repo 2023-05-08 08:58:01 -04:00
Aurimas Blažulionis
54661e9ed9
Comment bits check in rev jet 2023-04-22 21:06:35 +03:00
Aurimas Blažulionis
bb17526f9e
Normalize noun in jet rev 2023-04-20 23:25:39 +03:00
Aurimas Blažulionis
c9ff3ce67c
Add rev jet 2023-03-28 21:04:13 +03:00
Peter McEvoy
2a553a4aa8
Merge pull request #40 from urbit/peter/remove-dyn
Replace dynamic trait objects with static type parameters
2023-03-15 17:00:52 -04:00
Peter McEvoy
c422207864 Revert use std:: formatting changes 2023-03-15 10:24:03 -04:00
Edward Amsden
d5bb18946c
Merge branch 'status' into peter/remove-dyn 2023-03-14 23:03:09 -05:00
Philip Monk
b4d007174e Merge remote-tracking branch 'origin/peter/lint' into philip/pma 2023-03-14 20:55:58 -07:00
Philip Monk
6ecec97810 [ares] remove pma_malloc integration until further work 2023-03-14 20:51:53 -07:00
Peter McEvoy
f8b05fc53b Add leading _ to jet_name parameter 2023-03-14 18:27:03 -04:00
Peter McEvoy
be2af44231 Remove unused lifetime from Cell::tail_as_mut() 2023-03-14 18:26:21 -04:00
Peter McEvoy
38462557e5 Add clippy to Nix shell 2023-03-14 18:24:51 -04:00
Peter McEvoy
25e9798572 Replace dyn Stack objects with static type parameters 2023-03-14 18:00:18 -04:00
Peter McEvoy
133a478bdc Replace dyn NounAllocator objects with static type parameters 2023-03-14 18:00:12 -04:00
Peter McEvoy
36b591f3c8 Comment out partial implementation of get_jet_test_mode() 2023-03-14 12:21:57 -04:00
Peter McEvoy
4ceb48b5cf Add local type aliases for HAMT stem entries 2023-03-14 12:19:53 -04:00
Peter McEvoy
38d3c124ce Return Option<Jet> instead of Result<Jet, ()> from jets::get_jet() 2023-03-14 12:19:53 -04:00
Peter McEvoy
fff84ada17 Add noun::Error and noun::Result 2023-03-14 12:19:49 -04:00
Peter McEvoy
290b964d11 Apply additional lints suggested by cargo clippy 2023-03-14 11:41:46 -04:00
Peter McEvoy
b60100c806 Apply lints suggested by cargo clippy 2023-03-10 12:18:40 -05:00
Philip Monk
ffff0657b7 [ares] hook up pma_malloc to event lifecycle
All tests pass except the azimuth pill, which requires too many dirty
pages in one event.
2023-02-27 22:43:29 -07:00
Philip Monk
7c22096723 [ares] refactor snapshots 2023-02-27 16:46:48 -07:00
Philip Monk
2014cbbc46 [ares] factor pma into separate module, fix warnings 2023-02-27 15:51:27 -07:00
Philip Monk
9400ad2bfa [pma_malloc] various fixes 2023-02-24 22:31:27 -07:00
Philip Monk
3760bc4e83 [pma_malloc] vendor pma_malloc 2023-02-24 22:31:19 -07:00
Philip Monk
63361cb4a0 [ares] vendor ibig-rs with our changes 2023-02-23 20:50:46 -07:00
Philip Monk
a847f8d986 [ares] add noun mass() calculator 2023-02-23 20:41:39 -07:00
Philip Monk
966074d928 [ares] rustfmt 2023-02-23 20:37:14 -07:00
Philip Monk
e1d3f574c4 Merge branch 'philip/alloc' into eamsden/hamt 2023-02-23 17:12:40 -07:00
Edward Amsden
ec48de56ac [ares] use fenix to get rust for nix shell 2023-02-23 18:03:30 -06:00
Edward Amsden
36c0f182ee [ares] [hamt] tell rust it's really OK for us to pack this generic struct, since it only contains pointers to the generic type 2023-02-23 18:01:37 -06:00
Edward Amsden
e79781c892 [ares][stack] fix in_frame test polarity (thanks to @philipcmonk) 2023-02-23 15:04:53 -06:00
Philip Monk
ba4d3b6d24 [ares][jets] convert remaining jets to _stack functions 2023-02-22 19:34:39 -07:00
Philip Monk
6b2cbf7140 [ares][jets] convert jet to _stack functions 2023-02-22 18:22:40 -07:00
Philip Monk
e06c2f2ac8 [ares] support ibig-rs patch to not allocate on some operations 2023-02-22 18:18:44 -07:00
Philip Monk
b6b2ee3fb3 [ares] assert no allocation during interpret 2023-02-22 18:05:28 -07:00
Edward Amsden
b03f398a69 [ares] [interpreter] wip siglus caching 2023-02-21 13:21:54 -06:00
Edward Amsden
5a885181ea [ares] [wip] add siglus (%memo) cache to treewalking interpreter 2023-02-21 12:52:39 -06:00
Edward Amsden
abfd642868 [ares] [hamt] jam and cue work with mutable hamt 2023-02-21 04:58:53 -06:00
Edward Amsden
e2743e24e7 [ares] [hamt] add mutable hamt for use within a single nockstack frame 2023-02-18 10:39:45 -06:00
Edward Amsden
dce5e74185 [ares][serialization] wip: use HAMT for jam and cue 2023-02-17 22:55:40 -06:00
Philip Monk
ff603d01f6 [ares] add pill to run azimuth events
Also includes various functions changes to allow printing nouns in gdb,
printing direct atoms as ascii when possible, etc.
2023-02-17 18:51:51 -07:00
Edward Amsden
bd44624e63 [ares][stack] make in_frame take a generic pointer 2023-02-17 19:26:28 -06:00
Edward Amsden
9140984333
Merge branch 'status' into eamsden/hamt 2023-02-17 16:28:11 -06:00
Edward Amsden
ec3a17af9c [ares][hamt] shift off 5 bits per level on insert, not 1 2023-02-17 15:15:23 -06:00
Edward Amsden
17ca8e43ad [ares] [hamt] fix bugs in chunk computations 2023-02-17 14:00:31 -06:00
Edward Amsden
c856d2f730 [ares] [hamt] mark bug in comment and reformat 2023-02-16 19:28:30 -06:00
Edward Amsden
4e422efecc [ares] rewrite HAMT entirely, more readable/less raw representation 2023-02-16 19:19:16 -06:00
Edward Amsden
646576dd56 [ares] [wip] hamt and trait-based object preservation on stack pop 2023-02-16 12:46:07 -06:00
Philip Monk
f4be9f30bf [ares] fix the Last Bug in unifying equality
The addition/subtraction is with respect to the polarity we matched on,
but the high and low pointers are with respect to the polarity we're
switching to .  The stack pointer is always at slot 0 (the outer slot)
and the frame pointer is always at slot 1 (the inner slot).
2023-02-16 05:18:58 -07:00
Philip Monk
342d55bafa [ares] fix bug in edit()
Relatively deep edits were producing incorrect results.
2023-02-15 22:41:05 -07:00
Philip Monk
a96ea5ffba [jets] add rip jet 2023-02-14 22:18:02 -07:00
Philip Monk
114e74ec07 [jets] add rep jet 2023-02-14 21:52:19 -07:00
Philip Monk
04d99a9a68 [jets] add can jet 2023-02-14 21:39:25 -07:00
Philip Monk
7f4a411e7e [jets] add cat jet 2023-02-14 21:18:02 -07:00
Philip Monk
50c90381ef [jets] add end jet 2023-02-14 21:02:49 -07:00
Philip Monk
0569a26142 [jets] add mix jet 2023-02-14 20:48:17 -07:00
Philip Monk
9825db95ff [jets] add dis jet 2023-02-14 20:43:25 -07:00
Philip Monk
f5d0bea6ac [jets] add con jet 2023-02-14 20:39:45 -07:00
Philip Monk
8946568a08 [jets] add met jet 2023-02-14 20:15:08 -07:00
Philip Monk
956045a91d [jets] move jets_math under jets 2023-02-14 20:05:42 -07:00
Philip Monk
171da85f6f [jets] add mug test 2023-02-14 16:40:28 -07:00
Philip Monk
331336f56b [jets] add cut test 2023-02-14 16:31:11 -07:00
Philip Monk
2b01a761c6 [jets] add rsh test 2023-02-14 16:24:13 -07:00
Philip Monk
d1d32167ff [jets] add lsh test 2023-02-14 16:19:30 -07:00
Philip Monk
4653e41bd8 [jets] add bex test 2023-02-14 16:02:29 -07:00
Philip Monk
ee9d2c7c3c [jets] add gte test 2023-02-14 15:56:38 -07:00
Philip Monk
dd4621be20 [jets] add gth test 2023-02-14 15:56:13 -07:00
Philip Monk
f54f5171ae [jets] add lte test 2023-02-14 15:55:10 -07:00
Philip Monk
3d022b3f90 [jets] add lth test 2023-02-14 15:54:23 -07:00
Philip Monk
38399d12b0 [jets] add mod test 2023-02-14 15:42:42 -07:00
Philip Monk
fd94db487f [jets] add dvr test 2023-02-14 15:38:59 -07:00
Philip Monk
03df84d67d [jets] add div test 2023-02-14 15:25:27 -07:00
Philip Monk
7533406fa4 [jets] add mul test 2023-02-14 15:20:48 -07:00
Philip Monk
6aa17458d5 [jets] add sub test 2023-02-14 15:10:16 -07:00
Philip Monk
60c32b2ed2 [jets] add 'add' test 2023-02-14 14:57:38 -07:00
Philip Monk
b05a6a7b01 [jets] add testing framework 2023-02-14 14:26:31 -07:00
Philip Monk
dec93b9ed8 [jets] add rsh jet 2023-02-14 13:08:19 -07:00
Philip Monk
bb819abcc2 [ares] fix bug in unifying equality 2023-02-14 13:08:19 -07:00
Philip Monk
89e7d612f8 [jets] add lsh jet
Also implement chop, as in vere
2023-02-14 13:08:19 -07:00
Philip Monk
ccc0306d33 [jets] add bex jet 2023-02-14 13:08:19 -07:00
Philip Monk
39d0cab706 [jets] add gte jet 2023-02-14 13:08:19 -07:00
Philip Monk
9fb605769e [jets] add gth jet 2023-02-14 13:08:19 -07:00
Philip Monk
bbae5bb146 [jets] add lte jet 2023-02-14 13:08:19 -07:00
Philip Monk
3e7df76174 [jets] add lth jet 2023-02-14 13:08:19 -07:00
Philip Monk
8c1f2b668f [jets] add mod jet 2023-02-14 13:08:19 -07:00
Philip Monk
025ce511f0 [jets] add dvr jet 2023-02-14 13:08:19 -07:00
Philip Monk
099ec9243f [jets] add div jet 2023-02-14 13:08:19 -07:00
Philip Monk
f6e5b3898d [jets] add mul jet 2023-02-14 13:08:19 -07:00
Philip Monk
511370d592 [ares] add sub jet 2023-02-14 13:08:19 -07:00
Philip Monk
4c1e742044 [jets] import ubig, add "add" jet 2023-02-14 13:08:19 -07:00
Philip Monk
d39715df31 [jets] add mug jet 2023-02-14 13:08:19 -07:00
Philip Monk
33c4996aef [ares] add test mode to sham jets
Similar to vere, this mode runs both the nock and the jet and compares
the results.
2023-02-14 13:08:19 -07:00
Philip Monk
9f3b4dd781 [ares] allow jets to fail 2023-02-14 13:08:19 -07:00
Edward Amsden
82a08d878e
Merge pull request #24 from urbit/philip/equal
[ares] fix a couple bugs in unifying equality
2023-02-13 20:00:59 -06:00
Philip Monk
43f3622f63 [ares] fix a couple bugs in unifying equality
East/West typo, also we were setting the frame pointer to the stack
pointer while chasing up the stack.

This also refactors the conditionals in a way that I think is easier to
read.  We always have to do both calculations anyway.
2023-02-13 18:46:37 -07:00
Edward Amsden
c68728edf1 [ares] update rust compiler to 1.64 2023-02-13 16:01:50 -06:00
Philip Monk
634680aa24 [ares] copy directly into atom in newt 2023-02-13 11:13:21 -07:00
Philip Monk
fe3c0895b2 [ares] comments and formatting 2023-02-13 10:57:13 -07:00
Philip Monk
ff59ca8ba9 [ares] rename new_tuple -> T, make D const 2023-02-13 10:39:08 -07:00
Philip Monk
dd4dc625bd [ares] harden snapshotting 2023-02-12 18:02:11 -07:00
Philip Monk
f16c194098 [ares] refactor snapshotting
Especially, don't require cueing the snapshot to verify the checksum and
get the event number.
2023-02-12 17:10:26 -07:00
Philip Monk
b9abb0efe8 [ares] extend jam perstistence to use two snapshots 2023-02-12 14:55:05 -07:00
Philip Monk
6d51c8c262 [ares] add simplest possible checkpoints
These checkpoints are just a jam file of your state, with the event
number and a checksum.  If you crash while writing the checkpoint, it
will be corrupt.  Obviously, these snapshots will be slow to write on a
real ship as well.
2023-02-11 23:04:39 -07:00
Philip Monk
51b4735711 [ares] fill out basic lifecycle
With these changes, you can boot the included "baby" pill -- a trivial
pill which requires no jets and prints the text "effect" on every event.
2023-02-11 17:28:14 -07:00
Philip Monk
1d6e4c74b2 [ares] add basic ipc handler 2023-02-11 02:51:59 -07:00
Philip Monk
e4f44d705c [ares] convenient noun constructors 2023-02-11 02:40:49 -07:00
Edward Amsden
683bbaadef
Move contribution guidelines to repository root and link from README 2023-02-05 17:08:02 -06:00
Edward Amsden
10b8166815
Merge branch 'status' into eamsden/CONTRIBUTING 2023-02-03 13:59:03 -06:00
Edward Amsden
716940c83d Add brief CONTRIBUTING.md file 2023-02-03 13:58:27 -06:00
Edward Amsden
5f3e5c1f12 Merge branch 'philip/jets' into i/15/tas-macro 2023-02-03 13:43:47 -06:00
Peter McEvoy
3de42389c1 Use tas!() when computing Nock 11 2023-02-03 12:19:32 -05:00
Philip Monk
7765c020cf [ares] rename %prop->%sham and add comment 2023-02-03 10:19:23 -07:00
Peter McEvoy
83b4fe308a Revert "Sort dependencies alphabetically"
This reverts commit 38fd034984.
2023-02-03 12:15:56 -05:00
Peter McEvoy
27f64b96ea Use tas!() in jets dashboard 2023-02-03 12:12:10 -05:00
Peter McEvoy
f41cf8cc38 Test tas!() 2023-02-03 12:12:08 -05:00
Peter McEvoy
d072c3ecea Implement tas!() in separate crate 2023-02-03 12:11:53 -05:00
Peter McEvoy
38fd034984 Sort dependencies alphabetically 2023-02-03 12:09:56 -05:00
Philip Monk
3e05e54104 Merge branch 'philip/raw' into philip/jets 2023-02-02 21:00:41 -07:00
Philip Monk
336214cd9b [ares] fix atom initialization bug 2023-02-02 20:58:11 -07:00
Edward Amsden
697180606b
Merge pull request #14 from urbit/eamsden/2stackz-fixes
[ares][unifying equality] simplify, document, remove bugs and redundancies
2023-02-02 18:49:37 -06:00
Edward Amsden
3ee28adb93 [ares][unifying equality] add fast pointer and cached mug checks outside the loop 2023-02-02 18:47:53 -06:00
Edward Amsden
4ddcb1e07c
[ares][unifying equality] memcmp for indirect atoms requires bytesize 2023-02-02 18:30:34 -06:00
Philip Monk
ac6103da99 [ares] style fixes 2023-02-02 17:19:45 -07:00
Edward Amsden
4edd3a6fb3
Merge branch 'status' into philip/jets 2023-02-02 13:51:44 -06:00
Edward Amsden
06fe914c34 [ares] simplify unifying equality, remove redundant checks, and better document 2023-02-02 13:37:04 -06:00
Edward Amsden
e04329f2b6 [ares][2stackz] missing pop of work stack when pointer equality is discovered 2023-02-02 12:06:25 -06:00
Philip Monk
23e33cfd11 add note to raw_slot 2023-02-02 10:54:31 -07:00
Philip Monk
69b4bbeeae add naive jet dashboard with two jets 2023-02-01 21:36:37 -07:00
Philip Monk
b88190f119 rename axis->slot to reduce confusion 2023-02-01 21:35:30 -07:00
Philip Monk
d55db12c12 implement Debug trait for nouns 2023-02-01 21:35:07 -07:00
Philip Monk
999e1e29d7 east/west typo 2023-02-01 20:06:49 -07:00
Edward Amsden
b7fac596c3 [ares] get rid of warnings 2023-02-01 18:42:38 -06:00
Edward Amsden
140dcf4e28 [ares] rust formatting 2023-02-01 18:37:48 -06:00
Edward Amsden
4eb99cc2d4 [ares] Some cleanup 2023-02-01 18:36:43 -06:00
Edward Amsden
665a2f5672 [ares] Source code for cue-and-then-jam benchmark 2023-02-01 18:35:05 -06:00
Edward Amsden
fc048c8e8b [ares] Update cargo.lock 2023-02-01 18:34:38 -06:00
Edward Amsden
a5f36ec6d3 [ares]: Cue-and-then-jam the solid pill works and is fast 2023-02-01 18:34:21 -06:00
Edward Amsden
903ffe694c [ares] Add noun acyclicality check 2023-02-01 18:33:42 -06:00
Edward Amsden
dabafb685d [ares/2stackz]: Add comment about split stack frames per Joe 2023-02-01 18:30:05 -06:00
Edward Amsden
d555967563 [ares]: import custom murmur3 and add feature flag for acyclic check 2023-02-01 18:28:47 -06:00
Edward Amsden
223b946199 [ares] comment explaining why unifying equality does not, in fact, infinite loop 2023-01-30 19:27:41 -06:00
Edward Amsden
9d97c2d29f [ares] bugfixes in unifying equality 2023-01-30 19:27:02 -06:00
Philip Monk
6f5e87aa05 add decrement test and make it pass 2023-01-27 13:41:35 -07:00
Edward Amsden
9920fc15af current state for inspection 2023-01-26 18:02:49 -06:00
Edward Amsden
06ae62f6a3
remove needless debug assert 2022-07-16 17:30:52 -05:00
Edward Amsden
7762e97981
For direct atom, return pointer to atom instead of immediately-stale pointer to direct copy 2022-07-16 17:28:54 -05:00
Edward Amsden
d56f081e6e
Rectify IndirectAtom doc comment 2022-07-16 16:08:43 -05:00
Edward Amsden
4a264278a3
format code, add assertion for output equality with file contents 2022-07-16 16:04:18 -05:00
Edward Amsden
c968648d86
Copy output to mmap as bytes 2022-07-16 15:09:34 -05:00
Edward Amsden
0ff0f2f1f2
Remove debugging printfs 2022-07-16 15:09:13 -05:00
Edward Amsden
0a072238d2
Make sure indirects allocated with bitslice buffers are zeroed first 2022-07-16 14:09:02 -05:00
Edward Amsden
299f4366bd
rectification of comments 2022-07-16 08:27:09 -05:00
Edward Amsden
4fb2e0637c
hurray.jam: jam of [0 1 %hurray] 2022-07-16 00:12:47 -05:00
Edward Amsden
ffdd91c341
now runs to completion on hurray.jam without crashing 2022-07-16 00:12:13 -05:00
Edward Amsden
a418d66e22
Need to copy out result of cue 2022-07-15 21:09:54 -05:00
Edward Amsden
43c8f71385
Iron Planet, not-segfaulting version 2022-07-15 21:02:51 -05:00
Peter McEvoy
cffc67fefc
Add Noun::as_*() methods for unwrapping 2022-03-17 16:45:17 -05:00
Peter McEvoy
aaeafc17b6
Adopt union represenation of noun 2022-03-17 16:45:12 -05:00
Edward Amsden
05ef3f1ed7
Make indirect_size_unchecked public 2022-03-17 16:42:20 -05:00
Edward Amsden
34e2cc6873
initial commit of memory manager 2022-03-16 18:28:06 -05:00