Releases: AluVM/aluvm
v0.6.0
- New
Program
type, separated from a virtual machineVM
. - Program may restrict total number of libraries via const generic parameter.
- Prohibit programs with no libraries or code ("empty")
- Convenience constructor for programs containing multiple libraries.
- Add support for optional strict encoding of a program data
- Add optional serde encoding of a program data
Full Changelog: v0.5.0...v0.6.0
v0.5.0
What's Changed
- Updated README with links to slides and YouTube videos by @UkolovaOlga in #26
- First two tests over number.rs by @josediegorobles in #28
- bugfix on
Number
by @6293 in #31 - fix
Number
from byte array &cargo fmt
by @6293 in #34 - fix applying_sign to be also applicable to int by @6293 in #35
- clippy by @6293 in #37
- introduce cargo make by @6293 in #39
- fix stack overflow in CoreRegs constructor by @6293 in #41
- fix stp by @6293 in #42
- fix reshape by @6293 in #45
- reduce step down to i8 by @6293 in #44
- fix(BytesOp::Extr): set st0 to false when bit size of the destination plus the offset exceeds string length by @6293 in #49
- make int_add, int_sub, int_mul applicable to signed by @6293 in #48
- implement BytesOp::Con by @6293 in #50
- implement float arithmetic by @6293 in #52
- fix Secp256k1Op by @6293 in #51
- support int div / bitwise by @6293 in #53
- fix eq.n, gt, lt asm by @6293 in #55
- support curve25519 by @6293 in #54
New Contributors
- @UkolovaOlga made their first contribution in #26
- @josediegorobles made their first contribution in #28
- @6293 made their first contribution in #31
Full Changelog: v0.4.0...v0.5.0
v0.4.0
- Number of bytestring registers reduced from 256 to 16 (to allow running on a low profile hardware)
- Refactored bytestring instruction set to take into account the aforementioned changes
- Size of data segment reduced to 2^16 (from 2^24)
Lib
uses dynamic set of instructions- Introduced limits for number of libraries per library (256) and in overall tree (1024)
- Refactored modules
- Better display information for main data types
- Bugfixes in
Number
from/into convertors - Completed standalone assembler and linker (see https://github.com/pandoracore/aluasm
v0.3.0
This is first fully-functioning release of AluVM reference implementation! It still lacks some minor rarely-used float types of arithmetics (BFloat16, IEEE binary256, 512-bit tapered float) and advanced bytestring operations, and has small test coverage, but otherwise it is the first version that may be tried in the wild to run deterministic programs.
AluVM rust implementation is subjected to be used as a plug-in library inside runtime environments providing the execution context.
You can see an example of AluVM assembly program, compile and run it here: https://github.com/internet2-org/rust-aluvm/blob/master/examples/asm.rs
New in this release:
- Completed assembler
- Core bytestring operations
- Separation of code, data, linked libraries and ISA extensions segments
- Introduction of library format
- Bech32m-based library identifiers
- Support for external ISA extensions
- Instruction complexity counter and settings
Second MVP
Updates in AluVM v0.2
- Better & new float types and dedicated registers
- Instruction set refactoring
- Clear VM & runtime environment separation
MVP
The initial release of AluVM implementation features:
- Assembly language
- Compiler into bytecode representation
- Bytecode format
- Initial instruction set
- Processor implementation for main instructions
- Registry structure