Skip to content

Releases: EduMIPS64/edumips64

EduMIPS64 v1.3.0

17 Oct 16:44
f7753dc
Compare
Choose a tag to compare

16th of October, 2023

EduMIPS64 is a GPL MIPS64 Instruction Set Architecture (ISA) simulator and graphical debugger.

Notes for this release

This is version 1.3.0 of EduMIPS64. Its codename is Lourdes, as the release is being
published from the french city of Lourdes, home to the Sanctuaire Notre-Dame de Lourdes.

Many complex conflicts are currently plaguing our world. We wish for reason and human
kindness to prevail over reasoning that can only lead to destruction and death, and for
those conflicts to end peacefully as soon as possible.

This release contains some small improvements, a whole new translation for the simulator
and its documentation and a breaking change.

Let's start from the last one.

Fixing DMULU

DMULU was historically implemented using a syntax that was made incorrect by Release 6
of the MIPS64 ISA in 2014. This version of EduMIPS64 changes DMULU to use the new,
correct syntax, and therefore it will break all code using the old DMULU syntax.

Porting old code to the new code is pretty simple, as the old version store the results
of the multiplication in the LO register, requiring an MFLO instruction to fetch it,
while the new version allows users to directly specify the target register.

While the old code may have looked like the following:

    [...]
    DMULU r1, r2
    MFLO r3
    [...]

The new code should instead be:

    [...]
    DMULU r3, r1, r1

This is exactly how our internal tests changed, see code.

Simplified Chinese Translation

Thanks to the effort of @smallg0at, EduMIPS64 now is fully translated to Simplified Chinese,
including the in-app documentation and the HTML/PDF docs.

This change had us find and fix several smaller bugs related to rendering non-ASCII (and non-Italian)
characters, as well as trying to get Sphinx to properly emit Simplified Chinese docs. We haven't
fully succeeded, so the PDF has to be rendered through readthedocs.io, but it is usable and
we have all the needed artifacts.

Huge thanks to @smallg0at for this contribution!

Special mention: new Web UI

@smallg0at also implemented a brand new, IDE-like layout for the Web UI, which is already deployed
to https://web.edumips.org. This is a major step forward in having a fully-functional version
of EduMIPS64 on the web. Thanks agains, @smallg0at!

Also thanks to @pviotti for doing the foundational work of migrating to more recent major versions
of React and Material UI, which made this work possible.

Other changes

We also added the DMUHU instruction (pretty similar to DMULU in terms of implementation), fixed
a few documentation issues (thanks @galloj and @winstonpurnomo) and also changed the look and feel to
be more modern (goodbye, Metal!).

The usual conclusion

If you find a bug, please open an issue on GitHub.
EduMIPS64 is hosted on GitHub: www.github.com/EduMIPS64/edumips64.

Our web site is https://www.edumips.org.

New Contributors

Full Changelog: v1.2.10...v1.3.0

EduMIPS64 v1.2.10

05 Mar 08:54
4c4eb46
Compare
Choose a tag to compare

5th of March, 2022

EduMIPS64 is a GPL MIPS64 Instruction Set Architecture (ISA) simulator and graphical debugger.

Notes for this release

This is version 1.2.10 of EduMIPS64. Its codename is FP - Freedom and Peace, because
of the ongoing conflict in Ukraine, which is being invaded by Russia. Freedom and Peace
is what I wish right now to the Ukrainians.

This is mostly a bug-fixing release: issues #450, #646 and #304 (for the second time) were
fixed. In terms of development changes, we moved to JDK (and JRE) 17 and we fixed the Snapcraft
packages for the armhf architecture (among others). The latter means that EduMIPS64 is
available on Raspberry PI via snap!

This version contains contributions from the following people, listed in no particular order:

  • @hugmanrique and @jcarletta - reported 2 critical bugs and provided MIPS64 code to reproduce them,
    which I was allowed to incorporate as regression tests.
  • @lupino3

Please keep in mind that this is still EXPERIMENTAL SOFTWARE. It may
BURN YOUR HARD DISK, DESTROY ALL YOUR DATA and even GO OUT WITH YOUR
PARTNER. :)

If you find a bug, please open an issue on GitHub.

EduMIPS64 is hosted on GitHub: www.github.com/EduMIPS64/edumips64.

Our web site is www.edumips.org, and our development blog is http://edumips64.blogspot.com.

Main changes since 1.2.9

Added

  • New Snapcraft packages for armhf (e.g. Raspberry PI) and other architectures

Fixed

  • Parser incorrectly interprets hexadecimal immediates (Issue #450)
  • Some floating-point division cycles missing in Cycles window (Issue #646)
  • Infinite RAW stall in floating-point code (Issue #304) (yes, again)

Changed

  • Migrated to JDK (and JRE) 17

EduMIPS64 v1.2.9

08 Nov 20:17
fcbb8c5
Compare
Choose a tag to compare

8th of November, 2020

EduMIPS64 is a GPL MIPS64 Instruction Set Architecture (ISA) simulator and graphical debugger.

Notes for this release

This is version 1.2.9 of EduMIPS64. Its codename is Baby Shark, because my
brain is overloaded with the song thanks to my son, and for some reason this
is the only name that comes to mind right now.

This version contains 2 major bug fixes, one for the LUI instruction, which in 1.2.8 was not
completely fixed, and another for the in-app manual, which was not displayed correctly
in some platforms.

This version contains contributions from the following people, listed in no particular order:

Please keep in mind that this is still EXPERIMENTAL SOFTWARE. It may
BURN YOUR HARD DISK, DESTROY ALL YOUR DATA and even GO OUT WITH YOUR
PARTNER. :)

If you find a bug, please open an issue on GitHub.

EduMIPS64 is hosted on GitHub: www.github.com/EduMIPS64/edumips64.

Our web site is www.edumips.org, and our development blog is http://edumips64.blogspot.com.

Main changes since 1.2.8

Added

  • Unit tests for multiple instructions (PR 488)

Fixed

  • LUI modifies static field of ALU_IType breaking the simulator every time it is run (Issue #501)
  • Character encoding issues in manual (Issue #489)

EduMIPS64 v1.2.8

22 Oct 15:17
a115b4d
Compare
Choose a tag to compare

EduMIPS64 version 1.2.8

22nd of October, 2020

EduMIPS64 is a GPL MIPS64 Instruction Set Architecture (ISA) simulator and graphical debugger.

Notes for this release

This is version 1.2.8 of EduMIPS64. Its codename is NLMS, to remember my late father Nicola Luigi Maria Spadaccini, who left us last month.

This version contains a few bug fixes (including a fix for the LUI instruction which was completely broken) and a new experimental CLI interface (which you can enter by using the --headless command-line flag).

This is also the first version to be distributed as a Windows MSI installer, which contains a JRE and everything you need to run the simulator on Windows without needing external dependencies. As usual, the simulator is also distributed as a JAR and via the Snapcraft store.

This version contains contributions from the following people, listed in no particular order:

Please keep in mind that this is still EXPERIMENTAL SOFTWARE. It may BURN YOUR HARD DISK, DESTROY ALL YOUR DATA and even GO OUT WITH YOUR PARTNER. :)

If you find a bug, please open an issue on GitHub.

EduMIPS64 is hosted on GitHub: www.github.com/EduMIPS64/edumips64.

Our web site is www.edumips.org, and our development blog is http://edumips64.blogspot.com.

Main changes since 1.2.7.1

Added

  • New experimental command-line interface, started with the --headless command-line option
  • Windows installer (MSI)

Changed

  • EduMIPS64 now uses Java 11, to benefit from modern Java features
  • Adopted picocli for command-line options
  • Removed the JAR with no bundled dependencies, since start-up now depends on picocli

Fixed

  • Factor out the argv parsing logic (Issue #199)
  • LUI instruction throws IndexOutOfBoundsException (Issue #475)
  • Missing help in JAR (Issue #476)
  • Fix italian flag icon (Issue #420)
  • Code quality improvements

EduMIPS64 v1.2.7.1

13 Apr 15:03
b365794
Compare
Choose a tag to compare

13th of April, 2020

EduMIPS64 is a GPL MIPS64 Instruction Set Architecture (ISA) simulator and graphical debugger.

Notes for this release:

This is version 1.2.7.1 of EduMIPS64, a minor bug-fix release. Its codename is Hope, because that's what helps us during the COVID-19 lockdown, and also as a reference to the upcoming Easter.

This release fixes 2 minor issues introduced in 1.2.7.

Please keep in mind that this is still EXPERIMENTAL SOFTWARE. It may BURN YOUR HARD DISK, DESTROY ALL YOUR DATA and even GO OUT WITH YOUR PARTNER. :)

If you find a bug, please open an issue on GitHub.

EduMIPS64 is hosted on GitHub: www.github.com/EduMIPS64/edumips64.

Our web site is www.edumips.org, and our development blog is http://edumips64.blogspot.com.

New in this release since version 1.2.7

Fixed

  • div.d incorrectly emits SEVERE logging statement (Issue #315)
  • Issues with v1.2.7 packages (Issue #311)

EduMIPS64 v1.2.7

11 Apr 21:45
337ef6d
Compare
Choose a tag to compare

11th of April, 2020

EduMIPS64 is a GPL MIPS64 Instruction Set Architecture (ISA) simulator and graphical debugger.

Notes for this release:

This is version 1.2.7 of EduMIPS64, a bug-fix release. Its codename is Hope, because that's what helps us during the COVID-19 lockdown, and also as a reference to the upcoming Easter.

This release most notably fixes issue #304, which exposed 2 bugs related to EduMIPS64's FPU.

We are now using GitHub Actions instead of Azure Pipelines as a CI system.

Please keep in mind that this is still EXPERIMENTAL SOFTWARE. It may BURN YOUR HARD DISK, DESTROY ALL YOUR DATA and even GO OUT WITH YOUR PARTNER. :)

If you find a bug, please open an issue on GitHub.

EduMIPS64 is hosted on GitHub: www.github.com/EduMIPS64/edumips64.

Our web site is www.edumips.org, and our development blog is http://edumips64.blogspot.com.

New in this release since version 1.2.6

Fixed

  • RAW stall in combination with FPU caused instructions to disappear (Issue #304)
  • Some instructions not showing correctly in Cycles UI (Issue #304)

Changed

  • Using GitHub Actions instead of Azure Pipelines as CI.
  • Added timeouts to tests

v1.2.6

25 Jan 16:54
c5de677
Compare
Choose a tag to compare

EduMIPS64 v1.2.6

EduMIPS64 is a GPL MIPS64 Instruction Set Architecture (ISA) simulator and
graphical debugger.

Notes for this release:

This is version 1.2.6 of EduMIPS64, a release that follows up on version
1.2.5, that was released in August 2018. This release contains a new instruction
alias (DMULU for DMULTU), increased memory size (640kB), a better way to
report bugs via GitHub and several bug fixes.

The codename for this release is Phlegmatic. First because it took a while
to release a new version after 1.2.5. Second because I am releasing it while
fighting with a bad and annoying cough, which I hope goes away as soon as
possible.

This release reverts the build system change in 1.2.5: we went back from
Bazel to Gradle. There was no real benefit in using Bazel, and Gradle is
more supported by IDEs. The main advantage we got from the Bazel migration
was better code modularity, and that benefit still remains.

We are now using Azure Pipelines instead of Travis as a CI system.

Please keep in mind that this is still EXPERIMENTAL SOFTWARE. It may
BURN YOUR HARD DISK, DESTROY ALL YOUR DATA and even GO OUT WITH YOUR
PARTNER. :)

If you find a bug, please open an issue on GitHub.

EduMIPS64 is hosted on GitHub: www.github.com/lupino3/edumips64.
Our web site is www.edumips.org, and our development blog is
http://edumips64.blogspot.com.

New in this release since version 1.2.5

Added

  • Alias DMULU for DMULTU (Issue #249)

Fixed

  • Trying to store a large memory location in an immediate field causes EduMIPS64 to crash (Issue #255)
  • Fixed NullReference in the CLI application (#258)

Changed

  • Improved the way OOM errors are handled (Issues #257 and #266)
  • Increased default data memory to 640 kB (Issue #268)
  • Improved the bug report dialog (Issue #262)
  • Code quality improvements (Issue #222, still open)
  • Migrated back to Gradle from Bazel (Issue #226)

v1.2.5

31 Jul 13:52
Compare
Choose a tag to compare

EduMIPS64 is a GPL MIPS64 Instruction Set Architecture (ISA) simulator and
graphical debugger.

Notes for this release

This is version 1.2.5 of EduMIPS64, a bug-fix release that follows up on
version 1.2.4, that was released in December 2017. The codename for this
release is "Eden", as an homage to The Binding of Isaac, and also because
gardening is nice.

This release fixes issues with the cycles counter, which has always been
off-by-one, improves the UI for large programs, fixes the parsing of
load/store instructions' offsets and improves the handling of settings.

There is also a small new feature: the current CPU state is displayed in the
status bar.

A large change for developers is the migration to Bazel (http://bazel.io),
which is now the only build system used by EduMIPS64 (superseding both Gradle
and Ant).

Please keep in mind that this is still EXPERIMENTAL SOFTWARE. It may
BURN YOUR HARD DISK, DESTROY ALL YOUR DATA and even GO OUT WITH YOUR
PARTNER. :)

If you find a bug, please open an issue on GitHub.

EduMIPS64 is hosted on GitHub: www.github.com/lupino3/edumips64.
Our web site is www.edumips.org, and our development blog is
http://edumips64.blogspot.com.

New in this release since version 1.2.4

Added

  • Show CPU state in the main window (Issue #78)

Fixed

  • Cycles display is wrong for code shown in attachment (Issue #48)
  • Changing the forwarding setting should reset the simulator (Issue #98)
  • It should be impossible to both mask synchronous exceptions and terminate on synchronous exceptions (Issue #111)
  • Fix cycles UI for hailstoneenglish.s (Issue #134)
  • Add building PDFs to Travis (Issue #168)
  • While parsing LW and SW instructions, offset cannot be negative or above 8192 (Issue #175)
  • Migrate to Bazel (Issue #180)
  • Splash screen not working (Issue #195)

v1.2.4

17 Dec 09:35
Compare
Choose a tag to compare

EduMIPS64 v. 1.2.4 - Release Notes

This is version 1.2.4 of EduMIPS64, a bug-fix release that follows up on
version 1.2.3, that was released in May 2017. The codename for this
release is "Nicolosi", last name of a dear friend that left us this year, in
the same spirit of the previous version.

This release introduces some more performance improvements for large programs
(thousands of instructions) and the ability to set the font size, useful for
high-resolution displays (e.g., 4k displays).

Please keep in mind that this is still EXPERIMENTAL SOFTWARE. It may
BURN YOUR HARD DISK, DESTROY ALL YOUR DATA and even GO OUT WITH YOUR
WIFE/HUSBAND. :)

If you find a bug, please open an issue on GitHub.

EduMIPS64 is hosted on GitHub: www.github.com/lupino3/edumips64.
Our web site is www.edumips.org, and our development blog is
http://edumips64.blogspot.com.

New in this release since version 1.2.3

Added

  • Ability to set font size.
  • Show both register numbers and MIPS32 aliases (Issue #67)
  • Performance improvements (stop using exceptions for RAW stalls, improve use
    of Swing threading).

Fixed

  • Proper use of Swing and threading (Issue #11)
  • Run CycleBuilder inside the CPU (Issue #147)
  • In some cases, the simulator fails to add the WB state to the Cycles
    window (Issue #148)
  • EduMIPS64 is unusable on 4k displays (Issue #159)
  • Improved modularity by removing unnecessary cross-module dependencies.
  • Poor UI behavior with dual monitors (Issue #162)

v1.2.3

03 May 23:38
Compare
Choose a tag to compare
4th of May, 2017                                                EduMIPS64 1.2.3

                           EduMIPS64 RELEASE NOTES  
                           http://www.edumips.org

EduMIPS64 is a GPL MIPS64 Instruction Set Architecture (ISA) simulator and 
graphical debugger.

Notes for this release:
~~~~~~~~~~~~~~~~~~~~~~~

This is version 1.2.3 of EduMIPS64, a bug-fix release that follows up on
version 1.2.2, that was released in June 2016. The codename for this
release is "Angelo", to honor a dear friend who recently left us. 

This release introduces performance improvements for large programs (thousands
of instructions), a few bug fixes, code quality improvements thanks to
Codacity analysis and improved test coverage.

Please keep in mind that this is still EXPERIMENTAL SOFTWARE. It may 
BURN YOUR HARD DISK, DESTROY ALL YOUR DATA and even GO OUT WITH YOUR
WIFE/HUSBAND. :)

If you find a bug, please open an issue on GitHub.

EduMIPS64 is hosted on GitHub: www.github.com/lupino3/edumips64.
Our web site is www.edumips.org, and our development blog is
http://edumips64.blogspot.com.

New in this release since version 1.2.2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Added
~~~~~
- Compiled the core to JavaScript. It's possible to run the EduMIPS64 core
  in the browser! A very simplistic prototype is available at  
  www.edumips.org/edumips64.html.
- Developer guide, with documentation useful for developers that want to
  contribute.

Fixed
~~~~~
- Values that exceed data types' limits are silently discarded in .data (Issue
  #1) 
- Parsing an invalid double should raise IrregularStringOfBitsException (Issue
  #77)
- Lots of code quality fixes, thanks to the Codacity analysis
- Added more unit tests (including, but not limited to, FPU, SYSCALL and 
  out-of-order execution. Started tracking and improving code coverage
- Fixed a flaky unit test (#125)
- Added typed configuration keys (#130)
- Removed all uses of the Singleton design pattern (Issue #83)
- CRLF bug on windows (Issue #95)
- The code size should not take into account BUBBLE instructions (Issue #84)
- Better dependency handling (Issue #74)
- Fixed handling of the %% placeholder in the parser
- Fix no-GUI execution (#133) - the GUI is correctly not updated if the "sync"
  option is disabled.
- Fix CycleBuilder bug when the same instruction is in the pipeline multiple
  times (#139)
- Sped up CycleBuilder logic a lot, addressing the non-UI root cause of #132