Alex Shelkovnykov
19cdaaa40c
disable check_acyclic macro
2023-10-04 13:36:06 -06:00
Alex Shelkovnykov
2d1296c258
Merge branch 'status' into ctrlc
2023-10-04 13:09:18 -06:00
Alex Shelkovnykov
85afbb49eb
Fix NockStack init; check outside stack for ptr seniority
2023-10-04 12:03:39 -06:00
Alex Shelkovnykov
1edd86a646
Merge branch 'status' into bug-fix
2023-10-04 11:50:12 -06:00
Alex Shelkovnykov
79ab07aa04
Fix merge conflicts
2023-10-04 10:06:14 -06:00
Alex Shelkovnykov
771a4fbb70
Fix merge conflicts
2023-10-04 09:59:54 -06:00
Alex Shelkovnykov
5c5a23809f
Merge branch 'status' into trace
2023-10-04 09:53:31 -06:00
Alex Shelkovnykov
0fba14e2a2
Remove incorrect TODO
2023-10-04 09:51:06 -06:00
Alex Shelkovnykov
ab80c0cf8a
Edits re: Ed feedback
2023-10-04 09:49:35 -06:00
Matthew LeVan
b08c5d2045
jets: add sha1
2023-10-04 11:45:25 -04:00
Matthew LeVan
cf3c62407f
jets: add shal
2023-10-04 11:09:12 -04:00
Alex Shelkovnykov
ee7f768661
Merge branch 'status' into trace
2023-10-04 09:03:12 -06:00
Matthew LeVan
4ea46247f2
jets: add shas
2023-10-04 10:47:22 -04:00
Edward Amsden
37e18d1c97
Merge branch 'status' into eamsden/fast-jets
2023-10-03 20:31:32 -05:00
Edward Amsden
f5de9e7be8
Merge branch 'status' into eamsden/fix-memo
2023-10-03 20:30:33 -05:00
Edward Amsden
d5fd8028f6
Merge pull request #96 from urbit/pq/as-bytes
...
implement as_bytes() on Atom
2023-10-03 19:48:42 -05:00
Edward Amsden
08223691f9
noun: formatting
2023-10-03 19:15:37 -05:00
Edward Amsden
39c6604f37
interpreter: fix memo hints
2023-10-03 18:57:51 -05:00
Alex Shelkovnykov
b64b3a8351
Merge w/ #100
2023-10-03 17:56:39 -06:00
Edward Amsden
2ceba8cc3f
Merge pull request #99 from urbit/philip/doublejam
...
Fix loading from snapshot
2023-10-03 17:54:19 -05:00
Edward Amsden
e988b96341
unifying equality: fix senior_pointer_first
2023-10-03 16:47:42 -05:00
Philip Monk
3fc73919fc
add convenient pattern to interrupt with gdb
2023-10-03 13:53:39 -07:00
Philip Monk
6607006c1e
doublejam: fix loading from snapshot
2023-10-03 13:48:38 -07:00
Matthew LeVan
58af42ed02
jets: add shay
and shax
2023-10-03 12:23:32 -04:00
Edward Amsden
9bc4e7ee9c
interpreter: feature flag for sham hints
2023-10-02 04:42:55 -05:00
Edward Amsden
3022bf9ce6
nouns: function to assert a noun doesn't contain any forwarding pointers
2023-10-01 18:12:05 -05:00
Alex Shelkovnykov
5c436a8530
Merge branch 'trace' into ctrlc
2023-09-30 19:07:05 -06:00
Alex Shelkovnykov
147aabb524
Make Nock 11 tail recursive; use slots for mean stack
2023-09-30 18:46:28 -06:00
Philip Quirk
29c36a931d
Apply suggestions from code review
...
Remove mutable accessors.
Co-authored-by: Edward Amsden <edward@blackriversoft.com>
2023-09-29 12:25:23 -05:00
Philip Quirk
73f1d3d0fb
implement add_bytes() on Atom
2023-09-28 21:22:56 -05:00
Matthew LeVan
9db720faaf
Merge branch 'as/trace' into msl/urcrypt
2023-09-28 14:00:41 -04:00
Edward Amsden
994c657476
interpreter: fix memo cache
2023-09-28 11:08:48 -05:00
Edward Amsden
2ded720854
interpreter: formatting
2023-09-27 22:56:04 -05:00
Edward Amsden
2db74f9c0f
interpreter: address lints for fast hints
2023-09-27 22:55:00 -05:00
Edward Amsden
4e292b88a0
interpreter: formatting
2023-09-27 22:32:40 -05:00
Edward Amsden
8d783d0b39
interpreter: working cold/warm/hot state, and new assertion functions for debugging
2023-09-27 22:31:17 -05:00
Alex Shelkovnykov
d02e2bc75b
Fix linter issues
2023-09-27 16:38:16 -06:00
Alex Shelkovnykov
e04ad6c6bd
Merge branch 'status' into trace
2023-09-27 16:31:29 -06:00
Matthew LeVan
589899b08c
wip: add urcrypt-sys
crate; install urcrypt
on system in ci
2023-09-26 16:10:33 -04:00
Matthew LeVan
2f16a2dadf
un-vendor urcrypt
2023-09-26 16:02:36 -04:00
Matthew LeVan
ef382a8090
urcrypt
builds
2023-09-25 15:31:41 -04:00
Alex Shelkovnykov
ae674c1372
Add SIGINT handler
2023-09-25 00:08:51 -06:00
Edward Amsden
a0d11b305f
jets: add decflow test case which trips a memory bug in cold state
2023-09-23 07:36:17 -05:00
Edward Amsden
b5d178f635
tests: add decfast.jam and decslow.jam, jetted/unjetted decrement of 2 billion
2023-09-22 23:12:33 -05:00
Edward Amsden
45eb2fe744
jets: dashboard functional
2023-09-22 23:11:59 -05:00
Edward Amsden
8e857f7c86
jets: fast dashboard plumbed in: attempt matches on 2 and 9, register on 11
2023-09-22 19:57:08 -05:00
Edward Amsden
95e1df9433
jets: lints and formatting
2023-09-22 17:46:25 -05:00
Edward Amsden
98d7c14c8c
jets: cold/hot/warm dashboards (not yet integrated)
2023-09-22 17:42:47 -05:00
Matthew LeVan
6b7e21ba48
wip: add urcrypt
2023-09-22 13:30:51 -04:00
Alex Shelkovnykov
0072e09a85
Forward non-deterministic errors to the senior frame
2023-09-21 00:04:20 -06:00
Edward Amsden
e04d20c7de
updates: 9-20-2023 (david/alex/jonathan/edward/neal)
2023-09-20 13:43:52 -05:00
Alex Shelkovnykov
95083f7b78
WIP 09/19
2023-09-19 20:47:21 -06:00
Alex Shelkovnykov
e5e0fad569
slog %crud events in toddler
2023-09-19 18:36:46 -06:00
Philip Monk
fc3df952fb
refactor to use soft()
2023-09-19 16:15:49 -06:00
Philip Monk
767682307e
wip add crud handling
2023-09-19 16:15:42 -06:00
Alex Shelkovnykov
d122f1d1cd
run cargo fmt
2023-09-15 22:41:36 -06:00
Alex Shelkovnykov
5970061218
hook up +mook to first time play
2023-09-15 22:40:03 -06:00
Alex Shelkovnykov
82e2fcbd91
unify logic for flopped/unflopped +mook
2023-09-15 21:36:09 -06:00
Alex Shelkovnykov
25c0ad7778
hook up +mook to +slam
2023-09-15 21:18:22 -06:00
Sigilante
517c20bafb
Start crypto shax/shay.
2023-09-15 16:06:42 -05:00
Sigilante
7fd9f41cad
Post jet_peg and tests.
2023-09-15 15:33:09 -05:00
Alex Shelkovnykov
841301a251
hoon, jets: add +slow for %ud
2023-09-15 12:43:59 -06:00
Alex Shelkovnykov
58a512c035
Merge branch 'status' into trace
2023-09-15 09:33:11 -06:00
Sigilante
1b66767291
Clean up peg jet.
2023-09-15 09:48:48 -05:00
Jonathan Paprocki
7070fad4e5
Merge branch 'status' into jon/hamt-preserve-no-lw
2023-09-14 13:01:31 -04:00
Jonathan Paprocki
02ffe3ddb7
hamt: use expect() instead of let .. else
...
Co-authored-by: Edward Amsden <edward@blackriversoft.com>
2023-09-14 12:27:01 -04:00
Alex Shelkovnykov
1944c0294e
WIP 09/13
2023-09-13 22:30:59 -06:00
Edward Amsden
6e0e5d103b
Merge branch 'status' into y/import-fix
2023-09-13 21:31:07 -05:00
Jonathan Paprocki
2bfe5a06c6
hamt: preserve traversal_stack uses rust stack
...
this was using the lightweight stack, but this presented the following
issue: NockStack::copy() can be called during the Hamt::preserve() call,
and the lightweight stack may not be empty. NockStack::copy() presumes
that the lightweight stack is empty when it is called, and thus tried to
pop elements that preserve() had pushed onto it.
NockStack::copy() should probably assert that the lightweight stack is
empty when its called
2023-09-13 13:51:20 -04:00
Jonathan Paprocki
028519edd7
mem: assert stack_is_empty() when it should be
...
if these functions are callled with a non-empty lightweight stack, they
will try to pop things that they shouldn't.
all other stack_is_empty() callsites happen in a fresh stack frame, so
we already know the lightweight stack will be empty.
2023-09-13 13:44:33 -04:00
Alex Shelkovnykov
67abda479e
WIP 09/12
2023-09-12 22:20:15 -06:00
Alex Shelkovnykov
54a9ec980f
Merge branch 'status' into trace
2023-09-11 19:38:12 -06:00
Yaseen
999504ef4e
ares: make ibig dep a relative path so importing as a crate works properly
...
- using patch.crates-io does not work because it only applies to the local crate development and not as a setting for consumers of the package
thanks to @drbeefsupreme for the original fix
Co-authored-by: <drbeefsupreme@discordja.net>
2023-09-11 13:20:28 -04:00
Alex Shelkovnykov
54f982bf4d
WIP - 09/10
2023-09-10 23:13:07 -06:00
Alex Shelkovnykov
96a8915cc3
WIP - 09/09
2023-09-10 09:51:25 -06:00
Sigilante
39cfd709bc
WIP jets
2023-09-08 22:00:19 -05:00
Sigilante
2aabf2e8a7
Add min/max jets.
2023-09-06 13:02:33 -05:00
Edward Amsden
f056a796a3
Merge branch 'status' into eamsden/lightweight-stack-2
2023-09-06 11:01:52 -05:00
Edward Amsden
e2f1ad15e1
nix: rust: bump versions in dev shell
2023-09-06 10:22:25 -05:00
Edward Amsden
576b511065
interpreter: address new lints
2023-09-06 10:18:43 -05:00
Edward Amsden
1705b9e81b
Merge branch 'status' into eamsden/lightweight-stack-2
2023-09-06 09:36:17 -05:00
Edward Amsden
1494915aa9
interpreter: remove unnecessary cast.
2023-09-06 08:43:30 -05:00
Alex Shelkovnykov
0480fe615b
style: run cargo fmt
2023-09-05 23:05:23 -06:00
Alex Shelkovnykov
4af4ac7296
jets: remove math helpers from bit jets
2023-09-05 22:48:31 -06:00
Alex Shelkovnykov
d187f64d5a
jets: reorganize jets
2023-09-05 22:48:26 -06:00
Alex Shelkovnykov
e9f203e4bd
jets: modify +can tests
2023-09-05 22:47:29 -06:00
Alex Shelkovnykov
a0e3bb03d1
jets: minor fix to +cat jet
2023-09-05 22:47:29 -06:00
Alex Shelkovnykov
6019240d01
hoon, jets: add +rap
2023-09-05 22:47:29 -06:00
Alex Shelkovnykov
b2f61d6b95
jets: lower bloq safety to 48-bit addresses
2023-09-05 22:47:21 -06:00
Alex Shelkovnykov
c6580f30da
jets: add bloq helper function
2023-09-04 15:27:36 -06:00
Alex Shelkovnykov
bb244ee52b
jets: add checked helper functions
2023-09-04 15:27:36 -06:00
Alex Shelkovnykov
a90b23d263
hoon, jets: add +mas
2023-09-04 15:27:28 -06:00
Alex Shelkovnykov
15656c1fe2
jets: move shared functions into jets::util(::test)
2023-09-04 15:27:28 -06:00
Alex Shelkovnykov
5a2e4eec57
hoon, jets: add +cap
2023-09-04 15:27:14 -06:00
Alex Shelkovnykov
104fffca96
noun: move slot lookup into noun crate
2023-09-01 16:12:27 -06:00
Edward Amsden
a9a7db4606
interpreter: add comments to protect assert_no_alloc
2023-09-01 13:53:53 -05:00
Edward Amsden
9d8e43c91b
Put assert-no-alloc-able allocator in lib.rs instead of main.rs
2023-09-01 13:46:28 -05:00
Edward Amsden
5a15bde2aa
interpreter: add list repeat testcases from ~datnut-pollen with tc and non-tc variants
2023-09-01 13:31:53 -05:00
Edward Amsden
d610442e8b
interpreter: make sure called formulas in new frames are recorded as being in tail position
2023-09-01 13:31:08 -05:00
Edward Amsden
0f6d574526
main: make assert_no_alloc actually assert
2023-09-01 10:43:24 -05:00
Jonathan Paprocki
2da536f12c
test_data: add (shax 0x1) jamfile
...
built on a ship that has the math.rs %sham jets
2023-09-01 11:12:30 -04:00
Edward Amsden
7e4558e4f9
interpreter: fix lints
2023-08-31 14:44:21 -05:00
Edward Amsden
f52d6d96db
interpreter: fix lints
2023-08-31 14:42:20 -05:00
Edward Amsden
69edca94da
interpreter: remove debugging
2023-08-31 14:12:05 -05:00
Edward Amsden
92e98cba29
interpreter: make nock 2 tail have correct subject
2023-08-31 14:09:56 -05:00
Edward Amsden
bfecdf9aa4
interpreter: bugfixes
2023-08-31 13:21:06 -05:00
Edward Amsden
53635decf6
Merge branch 'status' into eamsden/lightweight-stack-2
2023-08-31 00:25:29 -05:00
Edward Amsden
68dc6cb169
rust shell: include gdb
2023-08-31 00:25:20 -05:00
Edward Amsden
e4d556dc17
Merge pull request #74 from urbit/jon/copy-fix
...
copy() memory issue fix
2023-08-31 00:24:07 -05:00
Edward Amsden
276286c114
interpreter: clippy
2023-08-31 00:05:26 -05:00
Edward Amsden
3cd735a182
interpreter: format
2023-08-30 23:50:09 -05:00
Edward Amsden
52d4a7a327
interpreter: use lightweight stack and do TCO
2023-08-30 23:44:27 -05:00
Jonathan Paprocki
15bbe68cc1
mem: fix copy() allocation of indirect atoms
...
addresses #73
2023-08-29 17:26:11 -04:00
Jonathan Paprocki
02c205242d
jam, mug: need their own stack frames
...
addresses #71
tests: add jam cell test
fix cargo fmt
2023-08-29 16:40:49 -04:00
Edward Amsden
972103de7c
jets: use D
macro in jet_cut
...
Co-authored-by: Philip Monk <phil@pcmonk.me>
2023-08-28 21:06:56 -05:00
Edward Amsden
1479e3a98a
jets: fix cut for 0 run
2023-08-26 09:44:06 -05:00
Alex Shelkovnykov
0cf41842e3
jets: add advanced test for mink jet
2023-08-22 12:21:41 -06:00
Alex Shelkovnykov
d510a33c02
jets: add mink jet
2023-08-21 10:49:37 -06:00
Alex Shelkovnykov
19048014a3
ares: add %hand, %hunk, %lose, and %mean hints
2023-08-16 16:31:00 -06:00
Alex Shelkovnykov
554885975a
ares: add mean stack and %slog hint
2023-08-16 16:30:57 -06:00
Alex Shelkovnykov
bae335275b
ares: refactor hints to use option; fix hint tag bug
2023-08-16 16:30:22 -06:00
Alex Shelkovnykov
b804a549a8
stack: fix minor bug in split stack setup
2023-08-16 16:30:17 -06:00
Alex Shelkovnykov
995f64da8c
Merge pull request #63 from ashelkovnykov/tests
...
Unit tests for the PMA
2023-08-15 16:18:58 -06:00
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