Generate newdb.[ch] at build time, parallel with database.[ch].
[open-adventure.git] / notes.adoc
index 8cab27f5184c1a24799ee1c55a71580a4e779852..cc4246c440abadd0b4b0605988261214a9e2ba3a 100644 (file)
@@ -10,7 +10,7 @@ separate link:history.html[history] describing how it came to us.
 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
 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 Nilson in restructuring some particularly grotty gotos is
+of Peje Nilsson in restructuring some particularly grotty gotos is
 gratefully acknowledged.
 
 == Nomenclature ==
 gratefully acknowledged.
 
 == Nomenclature ==
@@ -62,14 +62,16 @@ a "seed" command) will replay reliably, including random events.
 
 The adventure.text file is no longer required at runtime.  Instead, it
 is compiled at build time to a source module containing C structures,
 
 The adventure.text file is no longer required at runtime.  Instead, it
 is compiled at build time to a source module containing C structures,
-which is then linked to the advent binary.
+which is then linked to the advent binary. There is an adventure.yaml file
+as well; this is also compiled to C code, and will eventually replace
+adventure.text altogether.
 
 
-The game-save format has changed.  This was done to simplify
-FORTRAN-derived code that formerly implemented these functions;
-without C's fread(3)/fwrite() and structs it was 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.
+The game-save format has changed.  This was done to simplify the
+FORTRAN-derived code that formerly implemented the save/restore
+functions; without C's fread(3)/fwrite() and structs it was
+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.
 
 == Translation ==
 
 
 == Translation ==
 
@@ -79,8 +81,10 @@ 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
 
 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 comprehesive test suite that we built first and verified with
-coverage tools. This is what you are running when you do "make check".
+against a comprehensive test suite that we built first and verified
+with coverage tools (we have 88% coverage, with the remaining 12%
+confined to exception cases that are difficult to reach). This is
+what you are running when you do "make check".
 
 This move entailed some structural changes.  The most important was
 the refactoring of over 350 gotos into if/loop/break structures.  We
 
 This move entailed some structural changes.  The most important was
 the refactoring of over 350 gotos into if/loop/break structures.  We
@@ -109,7 +113,6 @@ ways:
   We don't need whatever minor performance gains this might collect,
   and the choice to refrain will make forward translation into future
   languages easier.
   We don't need whatever minor performance gains this might collect,
   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 of these
   are in the principal command interpreter function implementing its
   state machine.