Jason Ninneman and I have moved it to what is almost, but not quite,
idiomatic modern C. We refactored the right way, checking correctness
against a comprehensive test suite that we built first and verified
-with coverage tools (we have 88% coverage, with the remaining 12%
+with coverage tools (we have over 90% coverage, with the remaining
confined to exception cases that are difficult to reach). This is
what you are running when you do "make check".
and the choice to refrain will make forward translation into future
languages easier.
-* There are a few gotos left that resist restructuring; all of these
- are in the principal command interpreter function implementing its
- state machine.
+* There are a few gotos left that resist restructuring; all are in the
+ principal command interpreter function implementing its state
+ machine.
* Linked lists (for objects at a location) are implemented using an array
of link indices. This is a surviving FORTRANism that is quite unlike
to fix it because doing so would (a) be quite difficult, and (b)
compromise forward-portability to other languages.
-* The code still has an unfortunately high density of magic numbers - in
- particular, numeric object IDs. There are plans to fix this.
-
* Much of the code still uses FORTRAN-style uppercase names.
* The code still assumes one-origin array indexing. Thus, arrays are