Merge pull request #1206 from xexyl/1989-alt-westley-gcc-works
This commit is contained in:
8 files changed
+40
-221
No files matched your search
+5
-27
@@ -60,7 +60,7 @@ ARCH=
|
|||||||
|
|
||||||
# Defines that are needed to compile
|
# Defines that are needed to compile
|
||||||
#
|
#
|
||||||
CDEFINE= -Dtrgpune=putchar -Dpune=char -Dvag=int
|
CDEFINE= -Dtrgpune=putchar -Dpune=char -Dvag=int -Dznva=main
|
||||||
|
|
||||||
# Include files that are needed to compile
|
# Include files that are needed to compile
|
||||||
#
|
#
|
||||||
@@ -115,8 +115,8 @@ OBJ= ${PROG}.o
|
|||||||
DATA=
|
DATA=
|
||||||
TARGET= ${PROG}
|
TARGET= ${PROG}
|
||||||
#
|
#
|
||||||
ALT_OBJ= ${PROG}.alt.o
|
ALT_OBJ=
|
||||||
ALT_TARGET= ${PROG}.alt
|
ALT_TARGET=
|
||||||
|
|
||||||
|
|
||||||
#################
|
#################
|
||||||
@@ -140,45 +140,23 @@ ${PROG}: ${PROG}.c
|
|||||||
alt: data ${ALT_TARGET}
|
alt: data ${ALT_TARGET}
|
||||||
@${TRUE}
|
@${TRUE}
|
||||||
|
|
||||||
${ALT_TARGET}: ${PROG}.alt.c
|
|
||||||
${CC} ${CFLAGS} -Dznva=main $< -o $@ ${LDFLAGS}
|
|
||||||
|
|
||||||
ver0: ${PROG}
|
ver0: ${PROG}
|
||||||
-./${PROG} < westley.c > ver0.c
|
-./${PROG} < westley.c > ver0.c
|
||||||
-${CC} ${CFLAGS} ver0.c -o $@ ${LDFLAGS}
|
-${CC} ${CFLAGS} ver0.c -o $@ ${LDFLAGS}
|
||||||
|
|
||||||
ver1: ${PROG}
|
ver1: ${PROG}
|
||||||
-./${PROG} 1 < westley.c > ver1.c
|
-./${PROG} 1 < westley.c > ver1.c
|
||||||
@echo "** NOTE: this version will not compile with clang **"
|
|
||||||
-${CC} ${CFLAGS} ver1.c -o $@ ${LDFLAGS}
|
-${CC} ${CFLAGS} ver1.c -o $@ ${LDFLAGS}
|
||||||
|
|
||||||
ver2: ${PROG}
|
ver2: ${PROG}
|
||||||
-./${PROG} 1 2 < westley.c > ver2.c
|
-./${PROG} 1 2 < westley.c > ver2.c
|
||||||
@echo "** NOTE: this version will not compile with clang **"
|
@echo "** NOTE: this version will not compile with clang **"
|
||||||
-${CC} ${CFLAGS} ver2.c -o $@ ${LDFLAGS}
|
-${CC} ${CFLAGS} -Uznva ver2.c -o $@ ${LDFLAGS}
|
||||||
|
|
||||||
ver3: ${PROG}
|
ver3: ${PROG}
|
||||||
-./${PROG} 1 2 3 < westley.c > ver3.c
|
-./${PROG} 1 2 3 < westley.c > ver3.c
|
||||||
@echo "** NOTE: this version will not compile with clang **"
|
@echo "** NOTE: this version will not compile with clang **"
|
||||||
-${CC} ${CFLAGS} ver3.c -o $@ ${LDFLAGS}
|
-${CC} ${CFLAGS} -Uznva ver3.c -o $@ ${LDFLAGS}
|
||||||
|
|
||||||
alt.ver0: ${PROG}.alt
|
|
||||||
-./${PROG}.alt < westley.alt.c > alt.ver0.c
|
|
||||||
-${CC} ${CFLAGS} -Dznva=main alt.ver0.c -o $@ ${LDFLAGS}
|
|
||||||
|
|
||||||
alt.ver1: ${PROG}.alt
|
|
||||||
-./${PROG}.alt 1 < westley.alt.c > alt.ver1.c
|
|
||||||
-${CC} ${CFLAGS} -Dznva=main alt.ver1.c -o $@ ${LDFLAGS}
|
|
||||||
|
|
||||||
alt.ver2: ${PROG}.alt
|
|
||||||
-./${PROG}.alt 1 2 < westley.alt.c > alt.ver2.c
|
|
||||||
@echo "** NOTE: this alt version will not currently compile **"
|
|
||||||
-${CC} ${CFLAGS} -Dznva=main alt.ver2.c -o $@ ${LDFLAGS}
|
|
||||||
|
|
||||||
alt.ver3: ${PROG}.alt
|
|
||||||
-./${PROG}.alt 1 2 3 < westley.alt.c > alt.ver3.c
|
|
||||||
@echo "** NOTE: this alt version will not currently compile **"
|
|
||||||
-${CC} ${CFLAGS} -Dznva=main alt.ver3.c -o $@ ${LDFLAGS}
|
|
||||||
|
|
||||||
|
|
||||||
# data files
|
# data files
|
||||||
|
|||||||
+1
-28
@@ -40,7 +40,7 @@ CC=/opt/local/bin/gcc-mp-12 ./compile.sh
|
|||||||
If you wish to delay the script or remove the delay you can do so like:
|
If you wish to delay the script or remove the delay you can do so like:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
DELAY=0 ./compile.sh
|
DELAY=2 ./compile.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Finally try:
|
Finally try:
|
||||||
@@ -52,33 +52,6 @@ Finally try:
|
|||||||
./try.sh # demo of some input
|
./try.sh # demo of some input
|
||||||
```
|
```
|
||||||
|
|
||||||
## Alternate code:
|
|
||||||
|
|
||||||
The alternate code allows SOME of the features to work with clang but some of
|
|
||||||
the code it generates (see [compile.alt.sh](compile.alt.sh) is not compilable
|
|
||||||
even in gcc let alone clang. Nevertheless the main feature should work and the
|
|
||||||
same goes for the `alt.ver0` and `alt.ver1`; currently `alt.ver2` and `alt.ver3`
|
|
||||||
will not compile even with gcc but it is nonetheless generated for when it is
|
|
||||||
(hopefully) fixed.
|
|
||||||
|
|
||||||
### Alternate build:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
make alt
|
|
||||||
```
|
|
||||||
|
|
||||||
### Alternate try:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
./westley.alt
|
|
||||||
# input some text
|
|
||||||
|
|
||||||
# generate alt code versions:
|
|
||||||
./compile.alt.sh
|
|
||||||
|
|
||||||
./try.alt.sh # demo of some input
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Judges' remarks:
|
## Judges' remarks:
|
||||||
|
|
||||||
|
|||||||
@@ -1,61 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
#
|
|
||||||
# compile.alt.sh - compile westley.alt.c then generate and compile alt versions
|
|
||||||
#
|
|
||||||
# To change what compiler is used you can do something like:
|
|
||||||
#
|
|
||||||
# CC=/path/to/cc ./compile.sh
|
|
||||||
#
|
|
||||||
# The following example was run on a MacBook Pro with the M1 Max which which
|
|
||||||
# could not normally compile everything because macOS's compiler, even when run
|
|
||||||
# as gcc, is actually clang:
|
|
||||||
#
|
|
||||||
# CC=/opt/local/bin/gcc-mp-12 ./compile.sh
|
|
||||||
#
|
|
||||||
# We sleep (by default) for approximately 1 second after each command so that
|
|
||||||
# the you can read what is being done. If this is too fast you can change it in
|
|
||||||
# a similar way to the above but using the variable DELAY like so:
|
|
||||||
#
|
|
||||||
# DELAY=2 ./compile.sh
|
|
||||||
#
|
|
||||||
# You can of course use both variables in the same command line like:
|
|
||||||
#
|
|
||||||
# CC=/opt/local/bin/gcc-mp-12 DELAY=2 ./compile.sh
|
|
||||||
# DELAY=2 CC=/opt/local/bin/gcc-mp-12 ./compile.sh
|
|
||||||
#
|
|
||||||
# ...and so on.
|
|
||||||
|
|
||||||
# get the compiler using default cc if not specified in the command line
|
|
||||||
#
|
|
||||||
# we cannot use the form '${CC:=cc}' because at least in some versions of bash
|
|
||||||
# it tries to invoke the command which would be an error by itself. Thus we just
|
|
||||||
# check if it's empty before we set it.
|
|
||||||
if [[ -z "$CC" ]]; then
|
|
||||||
CC="cc"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# get sleep duration
|
|
||||||
# we cannot use the form '${DELAY:=5}' because at least in some versions of bash
|
|
||||||
# it tries to invoke the command and obviously that won't work. Thus we check if
|
|
||||||
# it's empty before setting the default.
|
|
||||||
if [[ -z "$DELAY" ]]; then
|
|
||||||
DELAY=0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# make clobber to make the directory clean and then compile westley.alt which we
|
|
||||||
# need to run everything else. Exit if make westley.alt fails as there would be
|
|
||||||
# nothing further that could be done in that case:
|
|
||||||
echo "$ make clobber westley.alt"
|
|
||||||
sleep "$DELAY"
|
|
||||||
make CC="$CC" clobber westley.alt || exit 1
|
|
||||||
sleep "$DELAY"
|
|
||||||
|
|
||||||
# run commands previously in the try section of the README.md, showing what the
|
|
||||||
# commands are as we go:
|
|
||||||
|
|
||||||
# now generate and compile the files
|
|
||||||
#
|
|
||||||
echo "Generating and compiling alt versions ..." 1>&2
|
|
||||||
sleep "$DELAY"
|
|
||||||
echo "$ make CC=$CC alt.ver0 alt.ver1 alt.ver2 alt.ver3" 1>&2
|
|
||||||
make CC="$CC" alt.ver0 alt.ver1 alt.ver2 alt.ver3
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
make alt || exit 1
|
|
||||||
|
|
||||||
|
|
||||||
echo "$ echo IOCCC | ./westley.alt"
|
|
||||||
echo IOCCC | ./westley.alt
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo "$ echo IOCCC | ./westley.alt 1"
|
|
||||||
echo IOCCC | ./westley.alt 1
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo "$ echo IOCCC | ./westley.alt 1 2"
|
|
||||||
echo IOCCC | ./westley.alt 1 2
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo "$ echo IOCCC | ./westley.alt 1 2 3"
|
|
||||||
echo IOCCC | ./westley.alt 1 2 3
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo "$ echo IOCCC | ./alt.ver0"
|
|
||||||
echo IOCCC | ./alt.ver0
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo "$ echo Version 1 | ./alt.ver1"
|
|
||||||
echo Version 1 | ./alt.ver1
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo "$ echo Version 1 | ./alt.ver1 1"
|
|
||||||
echo Version 1 | ./alt.ver1 1
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo "$ echo Version 1 | ./alt.ver1 1 2"
|
|
||||||
echo Version 1 | ./alt.ver1 1 2
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo "$ echo Version 1 | ./alt.ver1 1 2 3"
|
|
||||||
echo Version 1 | ./alt.ver1 1 2 3
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
|
|
||||||
/**//*/;)/**/pain(/*//**/tang ,gnat/**//*/,ABBA~,0-0(avnc-0,tang,raeN
|
|
||||||
,ABBA(niam&&)))2-]--tang-[kri - =raeN(&&0<)/*clerk*/,noon,raeN){(!tang&&
|
|
||||||
noon!=-1&&(gnat&2)&&((raeN&&( getchar(noon+0)))||(1-raeN&&(trgpune(noon
|
|
||||||
)))))||tang&&cnva(/*//**/tang ,tang/**|**//*/((||)))0(enupgrt=raeN
|
|
||||||
(&&tang!(||)))0(rahcteg=raeN( &&1==tang((&&1-^)gnat=raeN(;;;)tang,gnat
|
|
||||||
,ABBA,0(avnc;)gnat:46+]552&)191+gnat([kri?0>]652%)191+gnat([kri=gnat
|
|
||||||
(&&)1-^gnat(&&)1& ABBA(!;)raeN,tang,gnat,ABBA(avnz&&0>ABBA{)raeN
|
|
||||||
,/**/);}cnva(/*//**/tang,gnat,ABBA/**//*/(niam;}1-,78-,611-,321
|
|
||||||
-,321-,001-,64-,43-,801-,001-,301-,321-,511-,53-,54,44,34,24
|
|
||||||
,14,04,93,83,73,63,53,43,33,85,75,65,55,45,35,25,15,05,94,84
|
|
||||||
,74,64,0,0,0,0,0,0,/**/){ABBA='N'==65;(ABBA&&(gnat=trgpune
|
|
||||||
(0)))||(!ABBA&&(gnat=getchar(0-0)));(--tang&1)&&(gnat='n'<=
|
|
||||||
gnat&&gnat<='z'||'a'<=gnat&&gnat<='m'||'N'<=gnat&&gnat<='Z'
|
|
||||||
||'A'<=gnat&&gnat<='M'?(((gnat&/*//**/31/**//*/,21,11,01,9,8
|
|
||||||
,7,6,5,4,3,2,1,62,52,42,/**/)+12)%26)+(gnat&/*//**/32/**//*/,
|
|
||||||
22,12,02,91,81,71,61,51,41{=]652[kri};)/*pry*/)+65:gnat);pain
|
|
||||||
(/*//**\**/tang^tang/**//*/,/* */,~/*//*-*/tang,gnat,ABBA-
|
|
||||||
0/**//*/(niam&&ABBA||))))tang( rahcteg&&1-1=<enrA(||))tang(
|
|
||||||
enupgrt&&1==enrA((&&)2&gnat(&& )1-^tang(&&ABBA!(;)85- =tang
|
|
||||||
(&&)'a\'=gnat(&&)1-==gnat(&&)4 ==ABBA(&&tang!;))))0(enupgrt=
|
|
||||||
gnat(&&)tang!((||)))0(rahcteg =gnat(&&tang((&&ABBA)1-'A'=!
|
|
||||||
'Z'=tang(&&ABBA{)enrA/***/);gnat ^-1&&cnva(tang+1,gnat);
|
|
||||||
pain(ABBA&2/*//*\\**/,tang,gnat ,ABBA/**//*/(avnc/**/);}/*//**/
|
|
||||||
main(tang/*//*\\**/,gnat ,noon/**//*/(avnz/**/)char**gnat,
|
|
||||||
**noon/**/;{pain/**\\*/ (tang,gnat,noon,0);}/*//**/
|
|
||||||
@@ -1,24 +1,24 @@
|
|||||||
|
|
||||||
/**//*/};)/**/main(/*//**/tang ,gnat/**//*/,ABBA~,0-0(avnz;)0-0,tang,raeN
|
/**//*/};)/**/pain(/*//**/tang ,gnat/**//*/,ABBA~,0-0(avnz;)0-0,tang,raeN
|
||||||
,ABBA(niam&&)))2-]--tang-[kri - =raeN(&&0<)/*clerk*/,noon,raeN){(!tang&&
|
,ABBA(niam&&)))2-]--tang-[kri - =raeN(&&0<)/*clerk*/,noon,raeN){(!tang&&
|
||||||
noon!=-1&&(gnat&2)&&((raeN&&( getchar(noon+0)))||(1-raeN&&(trgpune(noon
|
noon!=-1&&(gnat&2)&&((raeN&&( getchar(noon+0)))||(1-raeN&&(trgpune(noon
|
||||||
)))))||tang&&znva(/*//**/tang ,tang,tang/**|**//*/((||)))0(enupgrt=raeN
|
)))))||tang&&main(/*//**/tang ,tang,tang/**|**//*/((||)))0(enupgrt=raeN
|
||||||
(&&tang!(||)))0(rahcteg=raeN( &&1==tang((&&1-^)gnat=raeN(;;;)tang,gnat
|
(&&tang!(||)))0(rahcteg=raeN( &&1==tang((&&1-^)gnat=raeN(;;;)tang,gnat
|
||||||
,ABBA,0(avnz;)gnat:46+]552&)191+gnat([kri?0>]652%)191+gnat([kri=gnat
|
,ABBA,0(avnz;)gnat:46+]552&)191+gnat([kri?0>]652%)191+gnat([kri=gnat
|
||||||
(&&)1-^gnat(&&)1& ABBA(!;)raeN,tang,gnat,ABBA(avnz&&0>ABBA{)raeN
|
(&&)1-^gnat(&&)1& ABBA(!;)raeN,tang,gnat,ABBA(avnz&&0>ABBA{)raeN
|
||||||
,/**/);}znva(/*//**/tang,gnat,ABBA/**//*/(niam;}1-,78-,611-,321
|
,/**/);}main(/*//**/tang,gnat,ABBA/**//*/(niam;}1-,78-,611-,321
|
||||||
-,321-,001-,64-,43-,801-,001-,301-,321-,511-,53-,54,44,34,24
|
-,321-,001-,64-,43-,801-,001-,301-,321-,511-,53-,54,44,34,24
|
||||||
,14,04,93,83,73,63,53,43,33,85,75,65,55,45,35,25,15,05,94,84
|
,14,04,93,83,73,63,53,43,33,85,75,65,55,45,35,25,15,05,94,84
|
||||||
,74,64,0,0,0,0,0,0,/**/){ABBA='N'==65;(ABBA&&(gnat=trgpune
|
,74,64,0,0,0,0,0,0,/**/)char**gnat,**ABBA;{ABBA='N'==65;(ABBA&&(gnat=trgpune
|
||||||
(0)))||(!ABBA&&(gnat=getchar(0-0)));(--tang&1)&&(gnat='n'<=
|
(0)))||(!ABBA&&(gnat=getchar(0-0)));(--tang&1)&&(gnat='n'<=
|
||||||
gnat&&gnat<='z'||'a'<=gnat&&gnat<='m'||'N'<=gnat&&gnat<='Z'
|
gnat&&gnat<='z'||'a'<=gnat&&gnat<='m'||'N'<=gnat&&gnat<='Z'
|
||||||
||'A'<=gnat&&gnat<='M'?(((gnat&/*//**/31/**//*/,21,11,01,9,8
|
||'A'<=(int)gnat&&gnat<='M'?((((int)gnat&/*//**/31/**//*/,21,11,01,9,8
|
||||||
,7,6,5,4,3,2,1,62,52,42,/**/)+12)%26)+(gnat&/*//**/32/**//*/,
|
,7,6,5,4,3,2,1,62,52,42,/**/)+12)%26)+((int)gnat&/*//**/32/**//*/,
|
||||||
22,12,02,91,81,71,61,51,41{=]652[kri};)/*pry*/)+65:gnat);main
|
22,12,02,91,81,71,61,51,41{=]652[kri};)/*pry*/)+65:gnat);pain
|
||||||
(/*//**\**/tang^tang/**//*/,/* */,~/*//*-*/tang,gnat,ABBA-
|
(/*//**\**/tang^tang/**//*/,/* */,~/*//*-*/tang,gnat,ABBA-
|
||||||
0/**//*/(niam&&ABBA||))))tang( rahcteg&&1-1=<enrA(||))tang(
|
0/**//*/(niam&&ABBA||))))tang( rahcteg&&1-1=<enrA(||))tang(
|
||||||
enupgrt&&1==enrA((&&)2&gnat(&& )1-^tang(&&ABBA!(;)85- =tang
|
enupgrt&&1==enrA((&&)2&gnat(&& )1-^tang(&&ABBA!(;)85- =tang
|
||||||
(&&)'a\'=gnat(&&)1-==gnat(&&)4 ==ABBA(&&tang!;))))0(enupgrt=
|
(&&)'a\'=gnat(&&)1-==gnat(&&)4 ==ABBA(&&tang!;))))0(enupgrt=
|
||||||
gnat(&&)tang!((||)))0(rahcteg =gnat(&&tang((&&ABBA;;)1-'A'=!
|
gnat(&&)tang!((||)))0(rahcteg =gnat(&&tang((&&ABBA;;)1-'A'=!
|
||||||
'Z'=tang(&&ABBA{)enrA/***/);gnat ^-1&&znva(tang+1,gnat,1+gnat);
|
'Z'=tang(&&ABBA{)enrA/***/);(int)gnat ^-1&&znva(tang+1,gnat,1+gnat);
|
||||||
main(ABBA&2/*//*\\**/,tang,gnat ,ABBA/**//*/(avnz/**/);}/*//**/
|
pain((int)ABBA&2/*//*\\**/,tang,gnat ,ABBA/**//*/(avnz/**/);}/*//**/
|
||||||
@@ -236,8 +236,9 @@ Please help us by writing alternative code!
|
|||||||
## STATUS: main() function args not allowed - please help us fix
|
## STATUS: main() function args not allowed - please help us fix
|
||||||
|
|
||||||
NOTE: it appears that all of these have been fixed except perhaps for
|
NOTE: it appears that all of these have been fixed except perhaps for
|
||||||
[1989/westley](1989/westley/westley.c). However some still have problems of some
|
[1989/westley](1989/westley/westley.c) which has only been partly fixed. However
|
||||||
kind or another. This is what the status means, however.
|
some still have problems of some kind or another. This is what the status means,
|
||||||
|
however.
|
||||||
|
|
||||||
Entries with this status have a problem in that the args to main() are not of a
|
Entries with this status have a problem in that the args to main() are not of a
|
||||||
specific type due to this being allowed in earlier C. Some compilers like clang
|
specific type due to this being allowed in earlier C. Some compilers like clang
|
||||||
@@ -513,22 +514,17 @@ numbers with non-binary digits.
|
|||||||
## [1989/westley](1989/westley/westley.c) ([README.md](1989/westley/README.md))
|
## [1989/westley](1989/westley/westley.c) ([README.md](1989/westley/README.md))
|
||||||
### STATUS: main() function args not allowed - please help us fix
|
### STATUS: main() function args not allowed - please help us fix
|
||||||
|
|
||||||
This entry is a big problem for clang due to the way it is designed. An alt
|
This entry is a big problem for clang due to the way it is designed; only the
|
||||||
code, added by Cody, was made that lets the program work and some of the
|
first (the same as the original) and second (`ver1.c`) will compile with clang.
|
||||||
generated files work but as `ver2` and `ver3` cannot be compiled even with gcc
|
However all will compile with clang. Cody has made good progress and he intends
|
||||||
(syntax errors) this is in the alt version.
|
to work on it more, hopefully solving it, but at this time only gcc will fully
|
||||||
|
work. This is better than it was when there had to be alt code because some
|
||||||
|
versions did not compile with any compiler, not just clang.
|
||||||
|
|
||||||
The problems with clang is that it does not allow `int` for any arg in `main()`
|
The `ver2` and `ver3` cannot be compiled with clang due to wrong arg types to
|
||||||
except the first one, argc, and some versions of clang do not even allow a
|
`main()` and in some versions of clang, too many args to `main()`.
|
||||||
fourth arg at all (0, 2 or 3 args only).
|
|
||||||
|
|
||||||
Cody noted that trying to fix it in some cases causes a segfault and in other
|
|
||||||
cases it fails to generate some of the files (others are okay) at all (empty
|
|
||||||
files). These changes were never committed.
|
|
||||||
|
|
||||||
The file [westley.alt.c](1989/westley/westley.alt.c) will compile with clang
|
|
||||||
but although it can perform some of its functions.
|
|
||||||
|
|
||||||
|
With gcc, however, all the versions work.
|
||||||
|
|
||||||
### STATUS: known bug - please help us fix
|
### STATUS: known bug - please help us fix
|
||||||
|
|
||||||
|
|||||||
+13
-15
@@ -763,28 +763,26 @@ not his only reason :-) )
|
|||||||
## [1989/westley](1989/westley/westley.c) ([README.md](1989/westley/README.md]))
|
## [1989/westley](1989/westley/westley.c) ([README.md](1989/westley/README.md]))
|
||||||
|
|
||||||
Cody got some of the versions (the original and `ver0` and `ver1`) to work with some
|
Cody got some of the versions (the original and `ver0` and `ver1`) to work with some
|
||||||
versions of `clang`. Unfortunately there are some defects in `clang` that break
|
versions of `clang`; all the versions work with gcc.
|
||||||
this entry either in full or in part. In particular the first arg to `main()`
|
|
||||||
has to be an int and the rest have to be a `char **` but some versions do not
|
|
||||||
allow four args. So to get past this another function was added, `pain()`, which
|
|
||||||
takes the place of `main()` and which `main()` calls.
|
|
||||||
|
|
||||||
This was added as alt code because some of the code generated cannot be compiled
|
Unfortunately there are some defects in `clang` that break this entry either in
|
||||||
by gcc either. To make use of this several scripts were added by Cody.
|
full or in part. In particular the first arg to `main()` has to be an int and
|
||||||
|
the rest have to be a `char **` but some versions do not allow four args. So to
|
||||||
|
get past this another function was added, `pain()`, which takes the place of
|
||||||
|
`main()` and which `main()` calls.
|
||||||
|
|
||||||
|
Originally alt code, Cody got it to all versions to work with gcc so it is no
|
||||||
|
longer an alt version.
|
||||||
|
|
||||||
|
To make use of this several scripts were added by Cody.
|
||||||
|
|
||||||
The [compile.sh](1989/westley/compile.sh) script that removes the generated
|
The [compile.sh](1989/westley/compile.sh) script that removes the generated
|
||||||
code, rebuilds the program and regenerates the other code and then compiles it
|
code, rebuilds the program and regenerates the other code and then compiles it
|
||||||
will work for compilers like gcc and one can then use the
|
will work for compilers like gcc and one can then use the
|
||||||
[try.sh](1989/westley/try.sh) script to see example input and output.
|
[try.sh](1989/westley/try.sh) script to see example input and output.
|
||||||
|
|
||||||
The [compile.alt.sh](1989/westley/compile.alt.sh) script does the same but for
|
The `compile.sh` script allows one to specify the compiler with the `CC`
|
||||||
the alt code, which as noted above, can only compile the first two generated
|
environmental variable; see the README.md for details.
|
||||||
versions, at least at this time. The [try.alt.sh](1989/westley/try.alt.sh)
|
|
||||||
script is like the [try.sh](1989/westley/try.sh) script but it uses the alt code
|
|
||||||
and alt generated versions instead.
|
|
||||||
|
|
||||||
Both scripts allow one to specify the compiler which is probably more useful for
|
|
||||||
`compile.sh`.
|
|
||||||
|
|
||||||
|
|
||||||
## [1990/baruch](1990/baruch/baruch.c) ([README.md](1990/baruch/README.md]))
|
## [1990/baruch](1990/baruch/baruch.c) ([README.md](1990/baruch/README.md]))
|
||||||
|
|||||||
Reference in new issue
Block a user