Skip to content

Java API Release

Compare
Choose a tag to compare
@TheThirdOne TheThirdOne released this 19 Jun 22:57
· 174 commits to master since this release

This release adds a Java API that allows quick, configurable automated simulation. It is over 10x faster than using the CLI and has more access to test programs more thoroughly. This should help any educators make program runners to evaluate students programs.

There are some important issues about the interface as it stands:

  • There isn't a standard program runner for educators to quickly modify to suit their needs
  • There isn't much documentation regard how exactly to use the inteface

The current best references are rars.api.Program which implements the bulk of the interface and Test.java which uses it to run the integration test for RARS now.

If that leaves something unclear or you would like some direction in the creation of a program using that interface, please comment in #13. Discussion on how to improve the API further is also welcomed.

Other Improvements:

  • Set up TravisCI to automatically build the latest commit
  • Used a profiler to speed up simulation (mainly noticeable with the new API)
  • The wiki can now be autofilled with system call and instruction information
  • @esperz2019 added more instruction types to InstructionCounter
  • cycle(h) and intret(h) now exist
  • @zacharyselk added a timer tool which follows the privileged specification.
  • @TaylorZowtuk added support for unicode (specifically UTF-8).

Bug Fixes:

  • Fixed find and replace so it actually works. Credit to @mvlamar for finding this
  • Removed NOP instruction which shouldn't exist. Credit to @Andreymazepas for finding this.
  • Autocomplete and hover tooltips have been readded.
  • Fixed the size checks for JAL and branch immediates. Credit to @erikeidt for finding this.
  • CSRI encoding is correct now. Credit to @Sustrak for finding this
  • Backstepping works properly for CSR and floating point registers
  • The register window no longer shows 32 as the number for the pc
  • LUI and AUIPC now follow GCC for notation regarding immediates. Credit to @BenjaminBeichler for pointing this out.
  • KeyboardAndDisplay simulator now works properly. Credit to @mehrabmehdi for the report and @zacharyselk for the detailed information.