Documentation polishing and minor test improvements.

This commit is contained in:
Eric S. Raymond 2017-06-29 16:25:55 -04:00
parent 0f15c9e0f3
commit 21d959a5c2
4 changed files with 45 additions and 18 deletions

View file

@ -46,7 +46,8 @@ There have been no gameplay changes.
== BUGS == == BUGS ==
The binary save file format is fragile, dependent on your machine word The binary save file format is fragile, dependent on your machine word
size and endianness, and unlikely to survive through version bumps. size and endianness, and unlikely to survive through version bumps. There
is a version check.
== REPORTING BUGS == == REPORTING BUGS ==
Report bugs to Eric S. Raymond <esr@thyrsus.com>. The project page is Report bugs to Eric S. Raymond <esr@thyrsus.com>. The project page is

View file

@ -60,11 +60,11 @@ Using "seed" and -l, the distribution now includes a regression-test
suite for the game. Any log captured with -l (and thus containing suite for the game. Any log captured with -l (and thus containing
a "seed" command) will replay reliably, including random events. a "seed" command) will replay reliably, including random events.
The adventure.text file is no longer required at runtime. Instead, it The adventure.text file is no longer required at runtime. Instead, an
is compiled at build time to a source module containing C structures, adventure.yaml file is compiled at build time to a source module
which is then linked to the advent binary. There is an adventure.yaml file containing C structures, which is then linked to the advent
as well; this is also compiled to C code, and will eventually replace binary. The YAML is drastically easier to read and edit than
adventure.text altogether. the old ad-hoc format of adventure.txt.
The game-save format has changed. This was done to simplify the The game-save format has changed. This was done to simplify the
FORTRAN-derived code that formerly implemented the save/restore FORTRAN-derived code that formerly implemented the save/restore
@ -85,7 +85,7 @@ ugly and quite unreadable.
Jason Ninneman and I have moved it to what is almost, but not quite, Jason Ninneman and I have moved it to what is almost, but not quite,
idiomatic modern C. We refactored the right way, checking correctness idiomatic modern C. We refactored the right way, checking correctness
against a comprehensive test suite that we built first and verified against a comprehensive test suite that we built first and verified
with coverage tools (we now have over 90% coverage, with the remaining with coverage tools (we now have over 95% coverage, with the remaining
confined to exception cases that are very difficult to reach). This is confined to exception cases that are very difficult to reach). This is
what you are running when you do "make check". what you are running when you do "make check".
@ -107,14 +107,14 @@ of sixbit code points in a restricted character set, packed 5 to a
verb was one of these words, and what would be string operations in a verb was one of these words, and what would be string operations in a
more recent language were all done on sequences of these words. more recent language were all done on sequences of these words.
We are still in the process of removing all this bit-packing cruft We have removed all this bit-packing cruft in favor of proper C
in favor of proper C strings. C strings may be a weak and leaky strings. C strings may be a weak and leaky abstraction, but this is
abstraction, but this is one of the rare cases in which they are one of the rare cases in which they are an obvious improvement over
an obvious improvement over what they're displacing... what they're displacing...
We have also conducted extensive fuzz testing on the game using We have also conducted extensive fuzz testing on the game using
afl (American Fuzzy Lop). We've found and fixed some crashers in afl (American Fuzzy Lop). We've found and fixed some crashers in
our new code (which occasionally uses malloc(3)) but none as yet our new code (which occasionally uses malloc(3)), but none as yet
in Don's old code (which didn't). in Don's old code (which didn't).
The code falls short of being fully modern C in the following The code falls short of being fully modern C in the following
@ -136,10 +136,9 @@ ways:
to fix it because doing so would (a) be quite difficult, and (b) to fix it because doing so would (a) be quite difficult, and (b)
compromise forward-portability to other languages. compromise forward-portability to other languages.
* Much of the code still uses FORTRAN-style uppercase names. * Muxh of the code still assumes one-origin array indexing. Thus,
arrays are a cell larger than they strictly need to be and cell 0 is
* The code still assumes one-origin array indexing. Thus, arrays are unused.
a cell larger than they strictly need to be and cell 0 is unused.
* The code is still mostly typeless, slinging around machine longs * The code is still mostly typeless, slinging around machine longs
like a FORTRAN or BCPL program. Some (incomplete) effort has been made like a FORTRAN or BCPL program. Some (incomplete) effort has been made

View file

@ -399,6 +399,20 @@ Read what?
It is now pitch dark. If you proceed you will likely fall into a pit. It is now pitch dark. If you proceed you will likely fall into a pit.
> l
It is now pitch dark. If you proceed you will likely fall into a pit.
> x
It is now pitch dark. If you proceed you will likely fall into a pit.
> i
You are currently holding the following:
Black rod
Small bottle
> news > news
Open Adventure is an author-approved open-source release of Open Adventure is an author-approved open-source release of
@ -439,7 +453,15 @@ Okay, "BOO".
> score > score
You have garnered 27 out of a possible 430 points, using 86 turns. You have garnered 27 out of a possible 430 points, using 89 turns.
> z
OK
> score
You have garnered 27 out of a possible 430 points, using 91 turns.
> quit keys > quit keys
@ -453,7 +475,7 @@ Do you really want to quit now?
OK OK
You scored 27 out of a possible 430, using 88 turns. You scored 27 out of a possible 430, using 93 turns.
You are obviously a rank amateur. Better luck next time. You are obviously a rank amateur. Better luck next time.

View file

@ -83,6 +83,9 @@ quit
n n
read read
look look
l
x
i
news news
go back go back
fuck fuck
@ -90,6 +93,8 @@ walk
fly fly
say boo say boo
score score
z
score
quit keys quit keys
quit quit
yes yes