diff --git a/1988/applin/Makefile b/1988/applin/Makefile index 173ce47cc..1673422cd 100644 --- a/1988/applin/Makefile +++ b/1988/applin/Makefile @@ -131,9 +131,9 @@ all: data ${TARGET} # # This entry took 75 minutes to compile on a Amdahl 5980-300E # (a 55658 Dhyrstone/sec/cpu machine) using the System V cpp. -# (The GNU cpp when defined as BIG_CPP took only 45 seconds) +# (The GNU cpp when defined as BIG_CPP took only 45 seconds.) # Your cpp may not be able to compile it due to a common bug -# that results in ${CPP} running out of space. The routine +# that results in cpp running out of space. The routine # 'zsmall' is a smaller version of the applin.c entry. # ${PROG}: ${PROG}.c diff --git a/1988/applin/README.md b/1988/applin/README.md index 187729cdf..baee1b29a 100644 --- a/1988/applin/README.md +++ b/1988/applin/README.md @@ -1,7 +1,7 @@ # Best of show -Jack Applin -US +Jack Applin
+US
## To build: @@ -10,9 +10,10 @@ US make all ``` -A smaller version, originally called `zsmall.c`, of [applin.c](applin.c) can be -found in [applin.alt.c](applin.alt.c). Your machine may have an easier time -with this program. See the Alternate code section below for details. +A smaller version, originally called `zsmall.c` (and still exists as such, as +the source of the alt code), of [applin.c](applin.c), can be found in +[applin.alt.c](applin.alt.c). Your machine may have an easier time with this +program. See the [Alternate code](#alternate-code) section below for details. ## Try: @@ -22,8 +23,10 @@ with this program. See the Alternate code section below for details. ### Alternate code: -As noted above a smaller version can be used in case your cpp has a hard time -with this entry. To use: +As noted above a smaller version can be used in case your `cpp` has a hard time +with this entry. + +#### To build: ```sh make alt @@ -31,22 +34,34 @@ make alt Use `applin.alt` as you would `applin` above. +#### History about the smaller version: + +Way back in 1988 .. + +This entry took 75 minutes to compile on a Amdahl 5980-300E (a 55658 +Dhyrstone/sec/cpu machine) using the System V `cpp`. (The GNU `cpp` when defined as +`BIG_CPP` took only 45 seconds.) + +Your `cpp` may not be able to compile it due to a common bug that results in +`cpp` running out of space. The routine [zsmall](zsmall.c) is a smaller version +of the [applin.c](applin.c) entry. + ## Judges' remarks: This entry is by far the most unusual abuse of the C preprocessor that we have received thus far. Nearly all of the real work is done in the -preprocessor! +C preprocessor! When we compiled [applin.c](applin.c) on an [Amdahl](https://en.wikipedia.org/wiki/Amdahl_Corporation) 5890-300E, we found that it spent over 75 minutes in the System V C preprocessor! Besides showing that the -standard System V cpp is slow, it showed that it contained a memory usage +standard System V `cpp` is slow, it showed that it contained a memory usage problem. The [applin.c](applin.c) only uses 29 different preprocessor symbols (besides `stdio.h`) and yet the preprocessor ran out of space! -The GNU C preprocessor took less than 45 seconds to perform the 2nd pass -on the Amdahl 5890-300E. But due to the ANSI-likeness of GNU cpp (v. 1-21), +The GNU C preprocessor took under 45 seconds to perform the 2nd pass +on the Amdahl 5890-300E. But due to the ANSI-likeness of GNU `cpp` (v. 1-21), it was not able to cleanly substitute a symbol that began with a '#'. Clearly the GNU C preprocessor is faster.