Releases: zorp-corp/sword
ares-alpha
Description
We are pleased to announce the developer alpha release of Ares.
Ares can boot a fake ship, and the foundation is laid for a state of the art Urbit runtime.
This release includes:
- The
NockStack
, a novel system for managing nouns in memory by @eamsden - The Persistent Memory Arena (PMA), a copy-on-write file-backed memory arena
developed by @barter-simsum - A tree-walking Nock interpreter by @ashelkovnykov
- A 64-bit implementation of
Noun
, including many Rust implementations of
noun management utilities likejam
andcue
- A working jet dashboard with around 100 jets
- Stack traces and memory protection
However, in this early phase, Ares is quite slow, has untested data storage capability, no memory freeing, and no subject-knowledge analysis. It cannot boot a mainnet ship, nor can it boot a ship previously booted with Vere. This release comes with zero warranty and no guarantee of functionality whatsoever. It is a snapshot of a project under heavy active development and in need of extensive work before possibility of being labeled as production ready.
We are actively addressing all of Ares' limitations with these ongoing projects, all of which may be tracked here:
- Subject-Knowledge Analysis
- Vere compatibility
- Garbage collection in the Persistent Memory Arena (PMA)
- Interpreter optimizations
There are also many fixes needed for issues raised as part of a security audit.
What's Changed
- Design docs by @eamsden in #2
- [docs] add milestones file by @eamsden in #3
- Iron Planet Nock implementation in Rust by @eamsden in #4
- Spec: persistent memory by @eamsden in #6
- add decrement test and make it pass by @philipcmonk in #10
- Comments and bugfixes from Ares review by @eamsden in #11
- Fixes and printing functions by @philipcmonk in #13
- [ares][unifying equality] simplify, document, remove bugs and redundancies by @eamsden in #14
- [ares] fix atom initialization bug by @philipcmonk in #16
- Add tas!() procedural macro by @mcevoypeter in #17
- "implement" "jet" "dashboard" by @philipcmonk in #12
- Add brief CONTRIBUTING.md file by @eamsden in #18
- Move contribution guidelines to repository root and link from README by @eamsden in #19
- [ares] Add jam-based snapshots by @philipcmonk in #22
- [ares] convenient noun constructors by @philipcmonk in #20
- [ares] add basic ipc handler by @philipcmonk in #21
- [ares] update rust compiler to 1.64 by @eamsden in #23
- [ares] fix a couple bugs in unifying equality by @philipcmonk in #24
- [ares] fix bug in unifying equality by @philipcmonk in #26
- [ares] fix bug in edit() by @philipcmonk in #27
- [ares] fix the Last Bug in unifying equality by @philipcmonk in #28
- Merge pending work by @philipcmonk in #32
- Math jets by @philipcmonk in #25
- HAMT, and trait-based object preservation on stack pop by @eamsden in #29
- Use patched ibig to do all allocations on nock stack by @philipcmonk in #30
- Github-suggested Rust workflow by @eamsden in #31
- Add CI for Hoon code by @ashelkovnykov in #37
- [ska] prototypes for initialization by @eamsden in #38
- Address (most) lints suggested by
cargo clippy
by @mcevoypeter in #39 - [ares] Abstract snapshotting system by @philipcmonk in #33
- Replace dynamic trait objects with static type parameters by @mcevoypeter in #40
- Apply MIT License by @eamsden in #42
- Status call ~2023.4.19 by @eamsden in #46
- Add rev jet by @h33p in #44
- Move PMA code into Ares from separate repo by @ashelkovnykov in #52
- philip's pma changes inter alia by @barter-simsum in #53
- Change CI to enforce compiler warnings as errors by @ashelkovnykov in #58
- docs: add noun rep svg by @drbeefsupreme in #61
- docs: corrects docs on noun representation by @drbeefsupreme in #62
- docs: deuteranomaly-friendly noun rep colors by @drbeefsupreme in #65
- docs: run a pill with Ares as serf by @drbeefsupreme in #67
- cargo: murmur3 target specific commit by @drbeefsupreme in #68
- split stack by @drbeefsupreme in #60
- Unit tests for the PMA by @ashelkovnykov in #63
- jets: fix cut for 0 run by @eamsden in #70
- jam, mug: need their own stack frames by @drbeefsupreme in #72
- copy() memory issue fix by @drbeefsupreme in #74
- test_data: add (shax 0x1) jamfile by @drbeefsupreme in #79
- main: make assert_no_alloc actually assert by @eamsden in #80
- interpreter: address new lints by @eamsden in #81
- interpreter: use lightweight stack and do TCO by @eamsden in #76
- ares: add .gitattributes to mark .jam and .pill files binary by @eamsden in #82
- mem: assert stack_is_empty() when it should be by @drbeefsupreme in #85
- ares: make ibig dep a relative path so importing as a crate works properly by @ynx0 in #83
- hamt: preserve() traversal_stack uses rust stack by @drbeefsupreme in #84
- updates: 9-20-2023 (david/alex/jonathan/edward/neal) by @eamsden in #88
- unifying equality: fix senior_pointer_first by @eamsden in #100
- Fix loading from snapshot by @philipcmonk in #99
- implement as_bytes() on Atom by @philipquirk in #96
- interpreter: fix memo hints by @eamsden in #102
- Handle
%spot
and%mean
hints to produce stack traces by @ashelkovnykov in #59 - Further fixes to
senior_pointer_first()
and stack initialization by @ashelkovnykov in #103 - Add SIGINT handling to Ares by @ashelkovnykov in #105
- Add a context object to simplify passing function arguments by @ashelkovnykov in #107
- noun: fix
DirectAtom::as_bytes()
by @matthew-levan in #109 - Add debug assertions from NockStack investigation by @ashelkovnykov in #110
- mem: add reset() for NockStack by @drbeefsupreme in #112
- jets: non-sham dashboard by @eamsden in #92
- jets: add
dor
,mor
,gor
by @matthew-levan in #106 - Handle scries in Ares with virtual Nock 12 by @ashelkovnykov in #111
- Jets for
+mure
,+mute
,+mule
, and+mole
by @ashelkovnykov in #118 - Post jam/cue jets. by @sigilante in #116
- ++xeb, ++flop by @sigilante in #115
- Some
++ut
jets by @matthew-levan in #114 - Jets for
min
,max
, andpeg
by @ashelkovnykov in #117 - Add jet for
+zing
by @ashelkovnykov in #119 - Apply debugging fixes discovered during Assembly 2023 demo prep by @ashelkovnykov in #126
- Add u64/u128 atom exports by @sigilante in #127
- Event-based profiling by @eamsden in #122
- serf: fix bug that would abandon arvo state by @ashelkovnykov in #128
- jets: remove unnecessary jet check on Nock 2 by @ashelkovnykov in #129
- devenv: add libiconv to shell.nix by @ynx0 in #133
- Use Nix shell in CI by @eamsden in #131
- docs: developer intro by @eamsden in #136
- fix jet_puck by @eamsden in #124
- integrate urcrypt jets by @eamsden in #123
- meta, docs: pills refactor by @ashelkovnykov in https://github.com/urbit/a...