Commit Graph

206 Commits

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