fix Makefile and README.md for 2018/ciura

This commit is contained in:
Landon Curt Noll committed 2023-03-24 23:18:09 -07:00
1 parent 8ce9755c63
commit 5fa909ea4d
3 files changed
+37 -37

No files matched your search

+1
View File
@@ -1 +1,2 @@
prog prog
prog.alt
+7 -10
View File
@@ -63,7 +63,7 @@ X11_INCDIR= /opt/X11/include
# Common C compiler warnings to silence # Common C compiler warnings to silence
# #
#CSILENCE= #CSILENCE=
CSILENCE= -Wno-overlength-strings -Wno-shift-op-parentheses -Wno-unused-value CSILENCE= -Wno-shift-op-parentheses -Wno-unused-value
# Common C compiler warning flags # Common C compiler warning flags
# #
@@ -101,8 +101,8 @@ CINCLUDE=
#CINCLUDE= -include stdlib.h #CINCLUDE= -include stdlib.h
#CINCLUDE= -include stdio.h #CINCLUDE= -include stdio.h
#CINCLUDE= -include stdlib.h -include stdio.h #CINCLUDE= -include stdlib.h -include stdio.h
#CINCLUDE= -I ${X11_INCDIR} #CINCLUDE= -I ${X11_INCDIR} -I ${X11_INCDIR}/X11
#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 #CINCLUDE= `${SDL2_CONFIG} --cflags`
# Optimization # Optimization
# #
@@ -126,7 +126,7 @@ CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT}
LIBS= LIBS=
#LIBS= -lm #LIBS= -lm
#LIBS= -L ${X11_LIBDIR} -lX11 #LIBS= -L ${X11_LIBDIR} -lX11
#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL #LIBS= `${SDL2_CONFIG} --libs`
# C compiler to use # C compiler to use
# #
@@ -164,11 +164,12 @@ ENTRY= ciura
PROG= prog PROG= prog
# #
OBJ= ${PROG}.o OBJ= ${PROG}.o
CSRC= ${PROG}.o
DATA= DATA=
TARGET= ${PROG} TARGET= ${PROG}
# #
ALT_OBJ= ${PROG}.alt.o ALT_OBJ=
ALT_TARGET= ${PROG}.alt ALT_TARGET=
################# #################
@@ -185,9 +186,6 @@ all: data ${TARGET}
${PROG}: ${PROG}.c ${PROG}: ${PROG}.c
${CC} ${CFLAGS} $< -o $@ ${LIBS} ${CC} ${CFLAGS} $< -o $@ ${LIBS}
${PROG}.alt: ${PROG}.alt.c
${CC} ${CFLAGS} $< -o $@ ${LIBS}
# alternative executable # alternative executable
# #
alt: data ${ALT_TARGET} alt: data ${ALT_TARGET}
@@ -327,4 +325,3 @@ pluto: charon
@echo "dwarf is a type of planet" @echo "dwarf is a type of planet"
@echo "therefore, $@ is a planet" @echo "therefore, $@ is a planet"
@echo "having lots of planets is good feature because supernovae can help ${MAKE} a lot of them" @echo "having lots of planets is good feature because supernovae can help ${MAKE} a lot of them"
+29 -27
View File
@@ -1,32 +1,41 @@
# Most likely to be awarded # Most likely to be awarded
Marcin Ciura <mciura@gmail.com> Marcin Ciura <mciura@gmail.com>
Twitter: @mciura Twitter: @mciura
## To build: # To build:
make all ```sh
make
```
### To run ### To run:
./prog < text ```sh
./prog < text
```
### Try: ### Try:
./prog < Makefile ```sh
./prog < README.md ./prog < Makefile
./prog < README.md
```
### Alternate code ### Alternate code:
An alternate version of this entry, prog.alt.c, is provided. As mentioned in the Author's comments, the alternate version lacks a useful bug fix. An alternate version of this entry, `prog.alt.c`, is provided.
As mentioned in the Author's comments, the alternate version lacks a useful bug fix.
To compile this alternate version: To compile this alternate version:
make alt ```sh
make alt
```
Use `prog.alt` as you would `prog` above. Use `prog.alt` as you would `prog` above.
### Selected Judges Remarks: ## Judges' comments:
This text was processed by prog. You may get confused. This text was processed by prog. You may get confused.
We're not really sure: prog.c wasn't commented. We're not really sure: prog.c wasn't commented.
@@ -35,8 +44,7 @@ Having been written in C, how large of a vocabulary has it?
## Author's comments: ## Author's comments:
The Program ### The Program
===========
"The Elements of Style" by prof. William Strunk, Jr. and E. B. White "The Elements of Style" by prof. William Strunk, Jr. and E. B. White
is well known for its dislike of the passive voice. Direct, vigorous, is well known for its dislike of the passive voice. Direct, vigorous,
@@ -63,8 +71,7 @@ initials. Both regular and irregular past participles are properly
dealt with. Note that some words are red herrings: even though their dealt with. Note that some words are red herrings: even though their
ending is -ed, they are not past participles. ending is -ed, they are not past participles.
The Big String ### The Big String
==============
Here is the purpose of every byte inside the **`c[]`** string: Here is the purpose of every byte inside the **`c[]`** string:
@@ -78,8 +85,7 @@ Here is the purpose of every byte inside the **`c[]`** string:
adverbs, wh-words, and other words) and recognizing abbreviations - adverbs, wh-words, and other words) and recognizing abbreviations -
two type B state machines, called by **`V(808)`** and **`V(205)`**. two type B state machines, called by **`V(808)`** and **`V(205)`**.
The State Machines ### The State Machines
==================
I heard you don't like state machines so I put a state machine in your I heard you don't like state machines so I put a state machine in your
state machine so you can reject this entry while you reject this entry. state machine so you can reject this entry while you reject this entry.
@@ -88,8 +94,7 @@ Both types of state machines in the program are Mealy machines: we can
think of their transitions as triples (**`transition_label`**, think of their transitions as triples (**`transition_label`**,
**`next_state`**, **`output`**). **`next_state`**, **`output`**).
Type A ### Type A
------
A state of type A state machine consists of eight transitions whose A state of type A state machine consists of eight transitions whose
representations occupy consecutive bytes. The byte representations occupy consecutive bytes. The byte
@@ -150,8 +155,7 @@ And here are sample steps of scanning tokens with classes **`to_be`**,
* **`state`** = 22, **`transition_label`** = 0 (**`adverb`**), **`output`** = **`ignore`** * **`state`** = 22, **`transition_label`** = 0 (**`adverb`**), **`output`** = **`ignore`**
* **`state`** = 22, **`transition_label`** = 3 (**`past_participle`**), **`output`** = **`passive_construction_end`** * **`state`** = 22, **`transition_label`** = 3 (**`past_participle`**), **`output`** = **`passive_construction_end`**
Type B ### Type B
------
Type B state machines are built by a variant of the algorithm described Type B state machines are built by a variant of the algorithm described
in the paper in the paper
@@ -228,8 +232,7 @@ And here are sample steps of scanning the string "i.e.":
* **`state`** = 1, **`transition_label`** = 0 ('\0'), **`output`** = **`abbreviation`**. * **`state`** = 1, **`transition_label`** = 0 ('\0'), **`output`** = **`abbreviation`**.
Return **`abbreviation`**. Return **`abbreviation`**.
Remarks ### Remarks
=======
The judges found a bug in the handling of contractions: **`prog.alt.c`** The judges found a bug in the handling of contractions: **`prog.alt.c`**
outputs "foo wasn'**[t bazzed]**". I fixed the bug in **`prog.c`**, making outputs "foo wasn'**[t bazzed]**". I fixed the bug in **`prog.c`**, making
@@ -249,11 +252,10 @@ I have tested it on:
For a clean compile under c89 and c90, add **`-Woverlength-strings`** For a clean compile under c89 and c90, add **`-Woverlength-strings`**
to **`CSILENCE`**. to **`CSILENCE`**.
-------------------------------------------------------------------------------- ## Copyright:
<!--
(c) Copyright 1984-2018, [Leo Broukhis, Simon Cooper, Landon Curt Noll][judges] - All rights reserved (c) Copyright 1984-2018, [Leo Broukhis, Simon Cooper, Landon Curt Noll][judges] - All rights reserved
This work is licensed under a [Creative Commons Attribution-ShareAlike 3.0 Unported License][cc]. This work is licensed under a [Creative Commons Attribution-ShareAlike 3.0 Unported License][cc].
[judges]: http://www.ioccc.org/judges.html [judges]: http://www.ioccc.org/judges.html
[cc]: http://creativecommons.org/licenses/by-sa/3.0/ [cc]: http://creativecommons.org/licenses/by-sa/3.0/
-->