Giter VIP home page Giter VIP logo

mmix's Issues

§51 of mmix-pipe.w typeset badly

Indentation of §51 is completely wrong. Compare §50 right above.

Affected sections are §48, §51, §83, §107.

Fix: Replace forced break @/ with soft break @|.

Typos

  • \bull ports (default 1), number of processes that can simultaneous
    should be simultaneously.

  • mmix/mmix-sim.w

    Line 250 in b32eba1

    on that file. It returns 0 if the file was opened successfully; otherwise
    should add an it.

  • The triple operator ?: is formatted inconsistently for Fopen and Fseek in section 4 of mmix-sim.w, i.e., there are several spaces (\ ) missing.

  • Also in section 4 of mmix-sim.w, purge two commas in displayed lines.

  • The tricky sequence in section 6 of mmix-sim.w should purge two extra spaces.

  • Section 59 of mmix-sim.w: list of lists and built into.

  • #define rQ 16 in section 12 of mmmix.w repeats the same line form mmix-pipe.h.

Reseach problems

At various places in the MMIX sources, Don Knuth asks the interested reader to make significant changes for advanced system features:

  • Unicode support using wchar for Char (MMOTYPE§27, MMIXAL§§{7,30})
  • octa as single 64-bit integer, e.g., using uint64_t instead of the current struct with two tetras (ILP64 interface) (MMIX-ARITH§1)
  • Graphical interface (MMIX-SIM§1)

Time permitting, I'll try to look up the relevant sections in the codes.

Update to C99

In mmixal.w, replace typedef bool with <stdbool.h>.

Emacs mode

Great to see all the activity in this repo!

Last year I made an emacs mode, mmix-mode. Might be useful in combination with your compiler.

Roll back the 'shared library' idea.

The copy test case produces a floating point exception 8 on MacOS. Analysis shows that there are several external relationships from mmix-io.w to both mmix-sim.w and mmix-pipe.w (mmgetchars, mmputchars, stdin_chr, ...) and back (mmix_fopen, mmix_fwrite, mmix_fputs, etc.). The former is the main module for mmix, the latter for mmmix.

ATTOW, it seems impossible to create a working mmix.so shared object containing mmix-pipe.o (in order to resolve external dependencies from mmix-io.o et al.) and simultaneously link this to mmix-sim.o (in order to create mmix).

Miraculously, the shared object approach seems to work on Linux. However, the code base does not support this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.