Version 1.1 emphasizes the system emulation capable of running Linux kernel and user-space binaries, aligning with the research paper "Design and Evaluation of a Lightweight RISC-V System-Level Emulator for Booting Linux," which was presented at the CTHPC 2025 conference.
What's Changed
- Preliminary support for trap handling during block emulation by @ChinYikMing in #463
- CI: Fix error when running on host-arm64 by @ChinYikMing in #503
- Ask to install RISCOF before running arch-test locally by @ChinYikMing in #507
- Preliminary support for MMU emulation by @ChinYikMing in #438
- CI: Bump Clang to 18 by @ChinYikMing in #509
- Fix unmatch close function call by @ChinYikMing in #512
- Drop unused structure "chain_entry_t" by @vacantron in #515
- CI: Bump riscv-gnu-toolchain by @jserv in #516
- Fix unused function warning in 'mult_frac' by @eleanorLYJ in #517
- jit: Replace LFU with LRU cache replacement policy by @vacantron in #518
- Bring up Linux kernel by @ChinYikMing in #508
- Fix Linux image path during prebuilt by @ChinYikMing in #520
- Check Safari version if it supports TCO for Wasm by @ChinYikMing in #522
- Add bitmanip extension support by @visitorckw in #525
- Fix undefined behavior in qsort comparison functions for rv_histogram by @visitorckw in #526
- Fix LTO warning by enabling parallel compilation by @eleanorLYJ in #523
- Use instruction-based emulation for debug mode by @RinHizakura in #530
- Fix declaration error when using clang by @ChinYikMing in #532
- Avoid to wrongly allocate memory in map_file() by @RinHizakura in #531
- Handle signals properly by @ChinYikMing in #529
- Unify MMU translation APIs by @ChinYikMing in #533
- Customize bootargs for system emulation by @RinHizakura in #534
- Fix build failures and expand test coverage by @eleanorLYJ in #535
- CI: Enable parallel build for riscv-tests.sh by @ChinYikMing in #538
- Refine hard-coded memory layout for system emulation by @ChinYikMing in #537
- tests: donut: Enhance ANSI graphics by @jserv in #542
- Code cleanup by @ChinYikMing in #543
- CI: Use newer Aarch64/Linux host by @jserv in #548
- Add support for the RV32E variant by @eleanorLYJ in #541
- CI: Build check with various optimization levels by @ChinYikMing in #546
- Ensure Compatibility with BSD sha1sum implementation by @otteryc in #549
- CI: Bump prebuilt GNU Toolchains by @jserv in #550
- Trap guestOS to run SDL-oriented applications by @ChinYikMing in #551
- Implement VirtIO block device by @otteryc in #539
- Standardize logging utility by @ChinYikMing in #552
- CI: Specify larger INITRD_SIZE for larger rootfs by @ChinYikMing in #553
- Fix performance regression check with logger by @vacantron in #554
- jit: Add architecture test by @vacantron in #547
- CI: Eliminate unintended dist-upgrade for Arm64 host by @jserv in #555
- Fix F register count to 32 for RV32E with F extension by @eleanorLYJ in #558
- CI: Make apt-get more quiet by @jserv in #559
- Suppress logging outputs to honor -q option by @ChinYikMing in #562
- CI: Reduce HTTP requests when possible by @jserv in #560
- CI: Activate virtual enviornment before arch-test by @vacantron in #563
- Allow macOS build by @jserv in #556
- Use upstream SoftFloat and unify build system by @jserv in #557
- Consolidate helper functions for pretty messages by @jserv in #565
- CI: Drop unstable architecture test on Arm64 by @vacantron in #567
- Enable installing xPack toolchain on macOS/arm64 by @ChinYikMing in #568
- Allow JIT compilation for system emulation by @vacantron in #521
- Address linter issues on Dockerfiles by @henrybear327 in #570
- Enhance shell compatibility by @ChinYikMing in #571
- Return error code -1 when closing file descriptors < 3 (stdin, stdout, stderr) by @banglday in #566
- Remove redundant break by @404allen404 in #573
- Allow emcc build and validate in CI by @ChinYikMing in #576
- Fix deploy-wasm CI trigger condition by @ChinYikMing in #577
- Eliminate Linux SUBLEVEL bump and decouple Linux image build CI by @ChinYikMing in #574
- Correct the filename of Linux image when verification by @ChinYikMing in #579
- CI: Integrate macOS/arm64 by @ChinYikMing in #569
- Raise exception when RV32E instructions use x16-x31 by @eleanorLYJ in #578
- CI: Add commit hash into prebuilt release tag by @vacantron in #582
- Update README to clarify make arch-test usage by @vestata in #583
- Fix Docker image build by @ChinYikMing in #580
- Support readonly feature of VirtIO block device by @ChinYikMing in #584
- Dynamically configure VirtIO node of Device Tree by @ChinYikMing in #586
- Enable VirtIO block to access hostOS /dev/ block devices by @ChinYikMing in #572
- CI: Add missing JIT system emulation test on macOS by @ChinYikMing in #587
- Refine rbtree comment for clarity and accuracy by @jserv in #588
- Update mini-gdbstub with the API changes by @RinHizakura in #589
- Update arch-test guides by @vacantron in #590
- Update guides to run prebuilt executables by @vacantron in #591
- Advance timer properly during JIT execution by @vacantron in #592
- Fix T2C in system simulation by @vacantron in #593
- CI: Use upstream Run-On-Arch by @jserv in #594
- CI: Bump package versions by @jserv in #595
New Contributors
- @eleanorLYJ made their first contribution in #517
- @otteryc made their first contribution in #549
- @banglday made their first contribution in #566
- @404allen404 made their first contribution in #573
- @vestata made their first contribution in #583
Full Changelog: v1.0...v1.1