MMIX 2009 – a RISC computer for the third millennium
CWeb Assembly Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitattributes
Makefile
README
README.md
abstime.w
alpha.mms
boilerplate.w
coolcomb.mms
copy.mms
cp.mms
crypto.mms
crypto1.mms
crypto2.mms
deluxe.mmconfig
echo.mms
fftswap.mms
fib.mms
fibgo.mms
fibsub.mms
fsubtest.mms
halves.mmix
halves.mms
harm.mms
hello.mms
hptest.mms
inout.mms
iotest.mms
iotest1.mms
iotest2.mms
makefile.dos
mmix-arith.w
mmix-config.w
mmix-doc.w
mmix-io.w
mmix-mem.w
mmix-pipe.w
mmix-sim.w
mmix.1
mmix.mp
mmixal.w
mmmix.w
mmotype.w
number1.mms
permu-heap.mms
permu-langdon.mms
permu-plain.mms
permu-st.mms
phi.mms
plain.mmconfig
poptest.mms
popup.mms
primes.mmconfig
primes.mmix
primes.mms
primes6.mms
primesf.mms
primesfx.mms
primessf.mms
primesx.mmconfig
primesx.mms
pushtest.mms
saddle1.mms
saddle2.mms
silly.mms
silly.out
silly.run
sim.mms
sort.mms
sortx.mms
strcpy.mms
sub1.mms
sub2.mms
test.mmconfig
test.mmix
test.mms
test1.mmconfig
test1.mmix
test2.mmconfig
test2.mmix
traffic.mms
valid.mms
zero.mms

README.md

MMIX 2009

A RISC Computer for the Third Millennium

“Thirty years have passed since the MIX computer was designed [in 1969], and computer architecture has been converging during those years towards a rather different style of machine. Therefore it is time to replace MIX with a new computer that contains even less saturated fat than its predecessor.” — The successor MMIX was developed and published by Donald E. Knuth in 1999. The fully documented source code is available from the MMIX home and in the book MMIXware: A RISC Computer for the Third Millennium published by Springer-Verlag in 1999. (This book contains several chapters with additional information not available in the electronic distribution.)

Prerequisites

The source code of MMIX is written in accordance with the rules of the Literate Programming philosophy, so you need to make sure that your computer supports the CWEB system. The CWEB sources are available for anonymous ftp from Stanford University. Bootstrapping CWEB on Unix systems is elementary and documented in the CWEB distribution; pre-compiled binary executables of the CWEB tools for Win32 systems are available from www.literateprogramming.com.

Getting Started

Details of this software can be found in the README file.

Why have yet another project here?

DEK has passed the baton of development to the group behind “MMIX home”. Besides several “official” releases from DEK in the form of gzipped tarballs, they provide their working sources through a Web-accessible Subversion (svn) repository.

The present project on Github is a separate effort and holds all releases by DEK from 1999 to 2017 in the master branch, plus a few modifications from “MMIX home” (although my master deviates from svn:mmixware/trunk in some non-trivial ways, even in the tangled C codes). Much more interesting is the local branch; it provides further improvements to the MMIX sources (some of which are scheduled for inclusion in “MMIX home”) plus a “specfile” mmix.spec for building installable packages for rpm and deb based Linux distributions with the help of the rpmbuild and debbuild utilities respectively.

Major features added

  • Fix compiler warnings (gcc -W -Wall -O) with a set of changefiles
  • Advanced build script mmix.spec for rpm and deb packaging
  • Modified Makefile for target optimization
  • Use C99/C++ types bool, uint8_t and uint32_t

Postscript

Recently it has come to my attention that the local modifications are used in the Cygwin port of MMIXware. And a parallel project seems to be a faithful clone of the svn repository, recreating the full history of commits by Knuth and Ruckert.