From f7753dc894b9e6fadc8bd920dcbf46ec0c5dee7f Mon Sep 17 00:00:00 2001 From: Andrea Spadaccini Date: Mon, 16 Oct 2023 20:45:28 +0200 Subject: [PATCH] release: 1.3.0 (#819) --- AUTHORS.md | 35 ++++++------ CHANGELOG.md | 20 +++++++ RELEASE_NOTES.md | 91 +++++++++++++++++++++---------- gradle.properties | 4 +- scripts/edumips64-snap-wrapper.sh | 2 +- snapcraft.yaml | 2 +- 6 files changed, 106 insertions(+), 48 deletions(-) diff --git a/AUTHORS.md b/AUTHORS.md index 58af9677b..6d3ef0abe 100755 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -4,6 +4,25 @@ * Andrea Spadaccini - [**@lupino3**](http://github.com/lupino3) +## Contributors + +* Alessandro Di Stefano - [**@aleskandro**](http://github.com/aleskandro) +* Maria Grazia Ciraulo - [**@GraziaCiraulo**](http://github.com/GraziaCiraulo) +* Paolo Viotti - [**@pviotti**](http://github.com/pviotti) +* Howard - [**@hbuie112358**](http://github.com/hbuie112358) +* Matthew Crumley - [**@silentmatt**](http://github.com/silentmatt) +* ancbro - [**@ancbro**](http://github.com/ancbro) +* Grandroid - [**@Grandroid**](http://github.com/Grandroid) +* Oscar Elhanafey - [**@Ooelhana**](http://github.com/Ooelhana) +* Miguel Pinto - [**@rocas777**](http://github.com/rocas777) +* Pimts - [**@pimts**](http://github.com/pimts) +* iwodder - [**@iwodder**](http://github.com/iwodder) +* jcarletta - [**jcarletta**](http://github.com/jcarletta) +* hugmanrique - [**hugmanrique**](http://github.com/hugmanrique) +* smallg0at - [**smallg0at**](http://github.com/smallg0at) +* @galloj - [**galloj**](http://github.com/galloj) +* @winstonpurnomo - [**winstonpurnomo**](http://github.com/galloj) + ## Former core developers (in alphabetical order) * Alessandro Nicolosi - [**@alenico84**](http://github.com/alenico84) @@ -19,19 +38,3 @@ * Salvatore Scellato - * Simona Ullo - * Vanni Rizzo - - -## Contributors - -* Alessandro Di Stefano - [**@aleskandro**](http://github.com/aleskandro) -* Maria Grazia Ciraulo - [**@GraziaCiraulo**](http://github.com/GraziaCiraulo) -* Paolo Viotti - [**@pviotti**](http://github.com/pviotti) -* Howard - [**@hbuie112358**](http://github.com/hbuie112358) -* Matthew Crumley - [**@silentmatt**](http://github.com/silentmatt) -* ancbro - [**@ancbro**](http://github.com/ancbro) -* Grandroid - [**@Grandroid**](http://github.com/Grandroid) -* Oscar Elhanafey - [**@Ooelhana**](http://github.com/Ooelhana) -* Miguel Pinto - [**@rocas777**](http://github.com/rocas777) -* Pimts - [**@pimts**](http://github.com/pimts) -* iwodder - [**@iwodder**](http://github.com/iwodder) -* jcarletta - [**jcarletta**](http://github.com/jcarletta) -* hugmanrique - [**hugmanrique**](http://github.com/hugmanrique) \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index fe9d419c9..ac57062bf 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ # EduMIPS64 ChangeLog +## 1.3.0 (16/10/2023) - Lourdes + +## Added +- Simplified Chinese translation, both the in-application help and the HTML/PDF docs. (@smallg0at) +- `DMUHU` instruction. +- New, modern look & feel. +- Dev container for easier development. + +## Fixed +- Documentation: fixed name of `SLTIU` (@galloj) +- Documentation: fixed `BGEZ` +- Documentation: fixed typo in dev docs (@winstonpurnomo) +- Lots of dependency updates :) + +## Changed +- **BREAKING CHANGE**: `DMULU` is now correctly implemented according to MIPS64 + Release 6 ISA, and not using the old WinMIPS64 syntax. This will break older + programs using the old syntax. +- Major update to web UI dependencies (@pviotti) + ## 1.2.10 (05/03/2022) - FP - Freedom and Peace ### Added diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index a2a107f16..6670e0671 100755 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,48 +1,83 @@ -# EduMIPS64 version 1.2.10 +# EduMIPS64 version 1.3.0 -*5th of March, 2021* +*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.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 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. -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`! +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 version contains contributions from the following people, listed in no particular order: +This release contains some small improvements, a whole new translation for the simulator +and its documentation and a breaking change. -* @hugmanrique and @jcarletta - reported 2 critical bugs and provided MIPS64 code to reproduce them, - which I was allowed to incorporate as regression tests. -* Andrea Spadaccini - [**@lupino3**](http://github.com/lupino3) +Let's start from the last one. -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. :) +### Fixing DMULU -If you find a bug, please open an issue on GitHub. +`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. -EduMIPS64 is hosted on GitHub: www.github.com/EduMIPS64/edumips64. +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](https://github.com/EduMIPS64/edumips64/commit/897f559ebda971760aae0bcad949b3cf38847b02#diff-24af5fcdf7f63916c891371766a8dc7875e89634fb6dfd5dad34d5b1969846e7). -Our web site is www.edumips.org, and our development blog is http://edumips64.blogspot.com. -## Main changes since 1.2.9 +### Simplified Chinese Translation -### Added +Thanks to the effort of @smallg0at, EduMIPS64 now is fully translated to Simplified Chinese, +including the in-app documentation and the HTML/PDF docs. -* New Snapcraft packages for armhf (e.g. Raspberry PI) and other architectures +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. -### Fixed +Huge thanks to @smallg0at for this contribution! -* 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*) +## Special mention: new Web UI -### Changed +@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. -* Migrated to JDK (and JRE) 17 +Our web site is https://www.edumips.org. +The web version of EduMIPS64 is available at https://web.edumips.org. \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index e7e27f924..d94121011 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ -version=1.2.10 -codename="FP - Freedom and Peace" +version=1.3.0 +codename="Lourdes" diff --git a/scripts/edumips64-snap-wrapper.sh b/scripts/edumips64-snap-wrapper.sh index c6ece7bdd..4af894154 100755 --- a/scripts/edumips64-snap-wrapper.sh +++ b/scripts/edumips64-snap-wrapper.sh @@ -1,3 +1,3 @@ #!/bin/sh -$SNAP/usr/lib/jvm/java-17-openjdk-$SNAP_ARCH/bin/java -jar -Djava.util.prefs.userRoot="$SNAP_USER_DATA" $SNAP/jar/edumips64-1.2.10.jar $* +$SNAP/usr/lib/jvm/java-17-openjdk-$SNAP_ARCH/bin/java -jar -Djava.util.prefs.userRoot="$SNAP_USER_DATA" $SNAP/jar/edumips64-1.3.0.jar $* diff --git a/snapcraft.yaml b/snapcraft.yaml index eeba29ef9..72259a8a3 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: edumips64 -version: '1.2.10' +version: '1.3.0' summary: A free visual and cross-platform MIPS64 CPU simulator. description: EduMIPS64 is a free MIPS64 visual simulator and debugger, used as a teaching tool in Computer Architecture courses. grade: stable