Commit Graph

254 Commits

Author SHA1 Message Date
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