|
Content
|
Patches, Extensions, and Tools for MMIXware
Patches
In this section you find small changes to the original MMIXware files,
either as patch or as changefile, that adapt the software to special requirements or embellish it with useful features.
Using SVN
If you want the latest MMIXware, you should usually not
rely on the patches given here.
Patches migrate very fast (after being tested)
into the sources provided through subversion under
https://gitlab.lrz.de/mmix/mmixware.
There you can get the latest version of any source file and you can also
see the differences between the revisions and the
corresponding log messages.
- Format-less uses of printf() produces warnings by some C compilers. Two change files
by Andreas Scherer fix this:
mmix-sim.ch and
mmix-pipe.ch.
The originals are hosted in the local branch of
https://github.com/ascherer/mmix/.
- Some Compiler (e.g. GNU C Compiler with -Wall) issue
warnings about
- if-if-else constructs that could be clarified to
be if-{if-else} constructs.
- comparisons between signed and unsigned quantities
- printf statements that do not have a literal format string.
- size_t (e.g. the return type of strlen) is larger than int.
- old style functions that use char and short parameters
(because the arguments might be promoted to int types).
- missing cases in switch statements.
- unused labels.
These complaints are fixed by the following change files.
Extensions
In this section you find larger add-ons to MMIXware.
Tools
In this section you find stand-alone utilities that can make life easier when working
with MMIX.
- mms.vim A syntax file to enable syntax highlighting in
Vim, the ubiquitous text editor
by Thomas Murschall.
- Simple JAVA-based graphical debugger
by A. Böttcher
- Visualizing the Meta-Simulator mmmix
by A. Böttcher
This plugin for Eclipse
is hosted by sourceforge.
- zMMIX
by Yizhe Chen, is another tool to produce testsuits of unit tests for
MMIX sources. Its hosted on github.
- mmix.tex by Udo Wermuth contains TeX macros
that, when included in an mms file, allow the typesetting of the mms file with TeX.
This macro package is documented (using literate programming) in the following
article: Udo Wermuth, Typeset MMIX programs with TeX, TUGboat, Vol, 35, No. 3, 2014.
Examples are the MMIX versions of programs 21 and 29 in
section 1.3.2 and the programs
A, B, I, and J in
section 1.3.3 of "The Art of Computer Programming".
- extext.ch by Aaron CLC Black.
This change file can be used to allow TRAP instructions with nonzero X
to be used to call external extensions.
The external extension is compiled into a file named "mmix-ext#.so" in the current directory,
replacing # with the value of X in use here.
(For example, you can add extensions for date/time, for environment variables, for whatever.)
Up to 255 such extensions can be loaded, although each extension file can have multiple functions.
mmstotex
by M. Ruckert,
a tool to convert mms source files to tex files. You find more
information on it on its own page
with a link to its source code.
testgen
by M. Ruckert,
a tool to facilitate writing and executing test cases.
The tool testgen is described on the testgen page,
again with a link to its source code.
mmstort
by M. Ruckert,
a tool to extract and add up instruction counts in mms source files.
You find more
information on it on its own page
with a link to its source code.
ftoo
by M. Ruckert,
a tool to replace floating point constant in mms source files
by their hexadecimal representation.
You find more information on it on its
own page
with a link to its source code.
|