Releases: cartesi/machine-emulator
Releases · cartesi/machine-emulator
v0.18.2-test1
Testing new add-created-files.diff
that should use (the default) -p1
instead of -p0
.
v0.18.1
v0.18.0
Added
- Makefile target
create-generated-files-patch
to generateadd-generated-files.diff
patch - CI now creates and uploads
add-generated-files.diff
as artifact on tagged releases - Added unversioned symlinks to shared libraries in src directory
Changed
- Updated test rootfs to 0.16.0
- Updated outputs merkle height (for output unification v2)
- Updated makefile to make it compatible with a homebrew formulae
- Changed listening port to close immediately in JSONRPC shutdown
- Bundled nlohmann JSON into third party directory
- Rewritten jsonrpc-remote-machine using Boost ASIO
- Updated test data due to input contract prev_randao field
- Bumped MARCHID version to 18
- Changed compile to release mode with debug info by default
- Changed layout of uarch json logs
Fixed
- Fixed regression saving snapshots on first machine yield
- Fixed TIME_WAIT connections accumulation on Linux
- Fixed Homebrew build
- Ensured make clean target works with no submodules
- Fixed TLB reads while computing hash with uarch
- Fixed rollback remote machine for rejected advance state via the cli
- Fixed prefix when brew is present in the system
- Fixed system error when loading or saving snapshots
v0.17.0
Added
- Added
--no-rollback
and--remote-fork
options - Added
rebind()
API to JSONRPC - Added
commit()
API for discarding machine snapshots - Added
send_cmio_response
function - Added integration tests
- Added C API to translate virtual address
- Added optimizations for
fdiv
andfsqrt
instructions for uarch - Added
--env
,--workdir
, and--hostname
command line options - Added new runtime option to skip storing machine root hash
- Introduced the
--user
command line option - Used Sv39 address spacing by default to support nodejs and improve performance
- Decoded uarch ECALL and EBREAK
- Added support for VirtIO
- Added VirtIO command line options
- Added support for binding different host addresses in VirtIO net device
- Added iunrep CSR for unreproducible machines, VirtIO configs to C/Lua APIs, VirtIO net device, VirtIO 9P device, VirtIO console device, and PLIC device
- Made
--volume
create guest directory before mounting
Changed
- Simplified solidity step generation
- Split reasons for manual and auto yields
- Reworked rollup and renamed it to cmio
- Optimized out state accessor initialization in uarch interpret
- Replaced uarch mmio with ecall
- Included uarch-reset log in catalog.json
- Combined uarch state accessors
Removed
- Removed gRPC features
- Removed unmaintained and broken benchmarks script
Fixed
- Fixed ilog2 function which was always returning 0
- Aligned output merkle tree depth with solidity
- Corrected compile error with
slirp=no
on Linux - Allowed using
--network
in read-only filesystems - Resolved compile errors with WASI toolchain
- Corrected
reset_uarch
documentation - Removed trailing comma in
jsonrpc-discover.json
- Fixed Homebrew libslirp options
- Resolved build issue on macOS with macports lua-luarocks
- Set
yield_data
typo - Fixed
EADDRNOTAVAIL
on rapid successive requests
Continuous Integration
- Sped up uarch testing in CI.
- Implemented vm.mmap_rnd_bits workaround for the ubuntu-22.04 runner.
v0.16.1
Fixed
- Fixed amd64 debian package build in release mode
Changed
- Made uarch compilation independent of release/debug build settings
v0.16.0
Added
- Implemented the UARCH reset feature
- Added soft yield runtime configuration using hints of the SRAIW instruction
- Added shadow uarch state
- Embedded the uarch RAM binary
- Added instructions on how to build
libcartesi.a
in standalone - Supported compiling
libcartesi_jsonrpc.a
static library - Added file mapping and terminal support for Windows
- Added the possibility to compile
libcartesi
withoutmmap()
- Supported compiling
libcartesi
as a static library - Added memory range introspection
- Introduced
-it
option for colored and bigger interactive terminal - Replaced MTD drives with PMEM drives
- Initialized random entropy from the device tree
- Added root hashes to
catalog.json
- Replaced proof with
sibling_hashes
Changed
- Built device tree automatically into the machine's ROM, eliminating the need for a ROM image
- Enabled rollup by default
- Updated libboost version to 1.81
- Changed stored machine configs from protobuf to JSON
- Removed remote-cartesi-machine-proxy
- Moved uarch generated files to the uarch source directory
- Organized all tests under the tests directory
- Added emulator major and minor versions to the device tree
- Used new rootfs provided by the tools repository
- Used static libraries when compiling executables
- Made it possible to compile
libcartesi
without threading support - Reimplemented a portable OS time function
- Allowed compiling
libcartesi
without GRPC or Lua installed - Didn't expose internal symbols in the public C API
- Added support for cross-compiling libcartesi
- Removed
std::filesystem
use fromlibcartesi
(unsupported by WASI) - Made
termios
non-mandatory inlibcartesi
(unsupported by WASI) - Improved makefile for packaging
- Adjusted bootargs and renamed bootargs command line option
- Introduced machine init and entrypoint config and options
- Removed dump_pmas method
- Removed Lua
md5
dependency by using keccak instead - Simplified machine hash computation in tests
- Replaced ROM with DTB
- Bumped kernel and rootfs versions
- Replaced crypto++ with tiny sha3 to compute Keccak hash
- Replaced boost filesystem with std filesystem
- Updated mongoose to 7.12 and refactored how it's bundled
- Bundled nlohmann-json into third-party
- Replaced libb64 with a custom base64 implementation
- Removed the unused
--json-steps
option - Added support for compiling libcartesi to WebAssembly
Fixed
- Made append options work when empty
- Included missing
climits
injson-util.cpp
- Correctly counted optional arguments
- Fixed
protoc
compile errors on Ubuntu - Fixed the build on MacOS with Homebrew
- Reserved memory for firmware M-mode code in FDT
- Fixed lint errors and warnings
v0.15.3
Fixed
- Fixed missing lua modules in docker image
- Fixed upload and download of artifacts on CI
- Fixed protoc compile errors on Ubuntu
- Fixed build on MacOS with homebrew