Save/resume fail test coverage -- test works in Docker now
[open-adventure.git] / notes.adoc
index 5e33b5a6e16d4fa83f4935b36a97277a851a657b..75c2333375275de6032624803ed92f26757160c8 100644 (file)
@@ -11,7 +11,7 @@ The principal maintainers of this code are Eric S. Raymond and Jason
 Ninneman.  Eric received Don Woods's encouragement to update and ship
 the game; Jason signed on early in the process to help. The assistance
 of Peje Nilsson in restructuring some particularly grotty gotos is
 Ninneman.  Eric received Don Woods's encouragement to update and ship
 the game; Jason signed on early in the process to help. The assistance
 of Peje Nilsson in restructuring some particularly grotty gotos is
-gratefully acknowledged.
+gratefully acknowledged. Petr Voropaev contributed fuzz testing.
 
 == Nomenclature ==
 
 
 == Nomenclature ==
 
@@ -73,6 +73,9 @@ necessarily pretty ugly by modern standards. Encryption and
 checksumming have been discarded - it's pointless to try
 tamper-proofing saves when everyone has the source code.
 
 checksumming have been discarded - it's pointless to try
 tamper-proofing saves when everyone has the source code.
 
+A -r command-line been added. When it is given (with a file
+path argument) it is functionally equivalent to RESTORE command.
+
 == Translation ==
 
 The 2.5 code was a mechanical C translation of a FORTRAN original.
 == Translation ==
 
 The 2.5 code was a mechanical C translation of a FORTRAN original.
@@ -82,7 +85,7 @@ ugly and quite unreadable.
 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
 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".
 
 confined to exception cases that are difficult to reach). This is
 what you are running when you do "make check".
 
@@ -114,9 +117,9 @@ ways:
   and the choice to refrain will make forward translation into future
   languages easier.
 
   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
 
 * Linked lists (for objects at a location) are implemented using an array
   of link indices. This is a surviving FORTRANism that is quite unlike
@@ -124,11 +127,11 @@ ways:
   to fix it because doing so would (a) be quite difficult, and (b)
   compromise forward-portability to other languages.
 
   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.
 
 * Much of the code still uses FORTRAN-style uppercase names.
 
+* The code still assumes one-origin array indexing.  Thus, arrays are
+  a cell larger than they strictly need to be and cell 0 is unused.
+
 * The code is still mostly typeless, slinging around machine longs
   like a FORTRAN or BCPL program.  Some (incomplete) effort has been made
   to introduce semantic types.
 * The code is still mostly typeless, slinging around machine longs
   like a FORTRAN or BCPL program.  Some (incomplete) effort has been made
   to introduce semantic types.