Releases: EduMIPS64/edumips64
EduMIPS64 v1.3.0
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
- @winstonpurnomo made their first contribution in #678
- @galloj made their first contribution in #711
- @smallg0at made their first contribution in #772
Full Changelog: v1.2.10...v1.3.0
EduMIPS64 v1.2.10
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
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:
- leopoldwe - @leopoldwe
- Paolo Viotti - @pviotti
- Andrea Spadaccini - @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.8
Added
- Unit tests for multiple instructions (PR 488)
Fixed
EduMIPS64 v1.2.8
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:
- iwodder - @iwodder
- Miguel Pinto - @rocas777
- Oscar Elhanafey - @Ooelhana
- Paolo Viotti - @pviotti
- Pimts - @pimts
- Andrea Spadaccini - @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.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
EduMIPS64 v1.2.7.1
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
EduMIPS64 v1.2.7
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
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
v1.2.5
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
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
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