228 Commits
Author SHA1 Message Date
Cody Boone Ferguson 684ed89d7e Changing heading level of 'Alternate code'
Change level 3 (###) to level 2 (##):

    sgit -e 's/^### \(Alternate code\)/## \1/g' '*README.md'

which is the same as:

    sgit -e 's/^### Alternate code/## Alternate code/g' '*README.md'

This is per discussion in GitHub.
2023-10-26 04:36:57 -07:00
Cody Boone Ferguson b77347cc35 Change 'To run' to 'To use' in all README.md files
As in:

    sgit -e 's/# To run/# To use/g' '*README.md'

This makes consistent the message for how to use the program. 'How to
use' was chosen because one can run a program just by doing './foo' but
that doesn't imply that's how to use it but the purpose of the section
is how to use it.
2023-10-26 04:05:50 -07:00
Landon Curt Noll 00c9d60266 improve diff files
We now have 6 diff rules:

    diff_orig_prog
    diff_prog_orig
    diff_alt_prog
    diff_prog_alt
    diff_orig_alt
    diff_alt_orig

The FAQ for these diffs needs to be updated
as we have 6 types of diffs now.
2023-10-23 10:18:20 -07:00
Landon Curt Noll 71f1463547 Rename diff Makefile commands
Renamed these Makefile rules:

    orig_prog_diff ==> diff_orig_prog
    alt_prog_diff ==> diff_alt_prog

Updated thanks-for-fixes.md and faq.md accordingly.
2023-10-22 17:26:22 -07:00
Cody Boone Ferguson 35570d4e90 Minor format fixes in 1984/mullender 2023-10-22 08:53:23 -07:00
Landon Curt Noll 8471e805ed add orig_prog_diff and alt_prog_diff rules to Makefiles 2023-10-18 17:00:02 -07:00
Landon Curt Noll e1cd30eff0 change use of <br> with blackslash for markdown line breaks 2023-10-18 16:21:43 -07:00
Cody Boone Ferguson 0942f4e6b2 Mass typo fix in Makefiles
There was a comment in the form of:

    ... the liked/allowed ...

which should instead be:

    ... liked/allowed ...

and this was fixed with my sgit tool like:

    sgit -e 's,the \(liked/allowed or compile\),\1,g' '*Makefile'
2023-10-16 10:35:34 -07:00
Cody Boone Ferguson f43854229c Minor format fix in 1984/mullender/README.md
And I forgot to mention in the previous commit that typo changes were
made and additional formatting too. I added some links that seemed
relevant. Due to the historical significance of the entry I had added
quite a few but few entries have this and I likely won't do it for any
additional entries as it takes too much time. Nevertheless to be
consistent with the rest of the file I did this as well.
2023-10-16 08:20:58 -07:00
Cody Boone Ferguson 8042931a87 Fix 1984/mullender/gentab.c
Earlier on I found the code that the authors used to generate the array.
I fixed it so it would compile but it created unbalanced '}'s (no
opening '{'s) and it instead should be a single '{' and '}' pair like
mullender.c has and which it now does.
2023-10-16 08:15:00 -07:00
Cody Boone Ferguson ffdf581218 Mass typo fix in Makefiles
With the make indent rule there was a typo for indent as 'intent'. This
was fixed with my sgit tool like:

    sgit -e 's/no intent\( tool found\)/no indent\1/g' '*Makefile'
2023-10-15 12:18:34 -07:00
Cody Boone Ferguson ef456bfb1e Mass typo fixes
This is a HUGE commit:

    417 files changed, 874 insertions(+), 874 deletions(-)

As the IOCCC website now is https enabled I have updated the
'http://www.ioccc' to 'https://www.ioccc'.

There was also a typo in Makefiles where it said 'for VERY WELCOME' when
it should be 'are VERY WELCOME'.

Finally slashdot.org is also https enabled so references to
'http://slashdot' were changed to 'https://slashdot'.

This was done by my sgit tool (see https://github.com/xexyl/sgit)
like:

    sgit -e 's,http://www.ioccc,https://www.ioccc,g' -e 's/for VERY WELCOME/are VERY WELCOME/g' -e  .

but because I didn't have a list of files that should be modified I had
to be careful which files to commit as I had files that were changed but
not ready to be committed. Since I did it in steps, finding typos as I
went along, I actually ran sgit three times but to simplify the above
(and to show that it's possible to do more than one sed command) I made
it all as one. Since I did not have a list of files ahead of time I had
to determine what files to commit, first going through them like:

    for j in $(for i in $(git status|grep modified|cut -d: -f2); do \
	git grep 'https://www.ioccc' "$i"; done|cut -d: -f1|sort|uniq); \
	do git diff "$j"; done|less -r

(I had to pipe through less because of a strange problem with the git
diff which appears to be because of a terminal problem maybe due to the
command above but it was all I could come up with in a very tired head.)

The above and

    git status | grep modified:

showed that some C files had been modified which obviously should not be
done so I had to do:

    git co '*c'

to undo those changes.

Finally to commit the correct files I did:

    for i in $(git status|grep modified|cut -d: -f2); do \
	git grep -E 'https://www.ioccc|https://slashdot|are VERY WELCOME' "$i"; \
	done |cut -d: -f1|sort|uniq|xargs git commit -v

or so (with any formatting issues or typos here due to typos in the log
due to the terminal (in)sanity issue described).
2023-10-07 04:35:47 -07:00
Cody Boone Ferguson 95e6986df1 Add <br> to 1984/mullender author info
As discussed on GitHub this is considered the better way to go about it
as it is easier to see than spaces at the end of lines.
2023-07-12 04:45:44 -07:00
Cody Boone Ferguson b97fd81cc0 Format and typo fixes to 1984 README.md files
I paid a lot of attention to 1984/mullender partly because it is one of
Landon's all time favourite entries to this day and partly because it
felt like it was a good idea especially as there is a lot of
instructional value in the author's remarks that I located a while back.
However this did take quite some time so I probably won't do that for
many more entries if any more as it will slow things down tremendously.
There was an unfortunate typo fix in this README.md too: a typo in the
file, possibly a typo from the copy paste (think I copied from an image
but it might have been a pdf too in which case the original person
adding the remarks in the book cited made a typo / copy-pasted the
information from the author), which could cause confusion when reading
the remarks.
2023-07-10 04:37:03 -07:00
Cody Boone Ferguson 1d86daf19a Change LIBS to LDFLAGS in Makefiles
This is to make it more standard which further allows one to run make on
some other source code, say because they want to try and fix an entry
but forget to update the Makefile. Or if they're the author they can not
worry about it in some cases. But since LDFLAGS is the standard way it
seems better to have the LIBS variable in the Makefile be LDFLAGS.

Maybe there is a reason to not have this and I'm happy to close this in
that case but it does seem better this way so I'm doing this commit.
2023-07-10 03:33:53 -07:00
Cody Boone Ferguson b6330673cc Restore silencing warnings in macOS
As besides the entries that are not supposed to compile/cannot compile
due to architectural limitations all the entries can compile in macOS
(though some do not work - yet(? I have plans to work on more later)) it
was not necessary to not silence the warnings after all as the entries
that don't work will be easy to identify ('they don't work' :-) ) so I
can just do make CSILENCE= all in the directory of those entries which
solves the problem I had originally thought of.

Some of the Makefiles have retained other changes I had to make
yesterday to get the entries to work with clang in linux but most of
them were either not changed or were made better with the rollback of
the commit that originally silenced warnings.

Now work on silencing warnings for linux can be done.
2023-07-08 05:05:50 -07:00
Cody Boone Ferguson d89305ef3b Mass .gitignore update for .orig.c files
Due to the fact we now have .orig.c files and thus the possibility of
winner.orig or prog.orig being built I have updated all the .gitignore
files so that these files ignored. This was done with the following
shell commands, for reference:

    for i in $(find 19* 200* 201[0123] -mindepth 2 -maxdepth 2 -name .gitignore) ; do echo $(dirname "$i"|sed -e 's,[0-9]\{4\}/,,g').orig >> "$i"; done
    for i in $(find 201[4-9] 2020 -mindepth 2 -maxdepth 2 -name .gitignore) ; do echo prog.orig >> "$i"; done

and the two commands is because it was only in 2014 that the winning
entries were renamed to prog so prog.orig is the correct glob.
2023-07-08 04:39:42 -07:00
Landon Curt Noll 2aa99f0644 revert commit d8425bb767 2023-07-07 05:36:08 -07:00
Landon Curt Noll d8425bb767 silence warnings under macOS for cc, clang and gcc
Used the following script to check for warnings
not silenced via ${CSILENCE}:

```sh
find ???? -mindepth 1 -maxdepth 1 -type d | while read dir; do
(cd "$dir"; echo =-=-= "$dir" =-=-= ; csilence -v 1 clobber all ; echo ; csilence -v 1 clobber alt)
done 2>&1 | less
```
2023-07-07 01:11:22 -07:00
Landon Curt Noll 2ba12ecc3c restore *.orig.c to each entry
Under each yyyy/dir there is a file of the form '*.orig.c'
containing the original source code, or as close as we can
get to the original source code.
2023-07-06 21:49:38 -07:00
Cody Boone Ferguson 00e0bcc105 Add table generator to 1984/mullender from author
This included adding the 'a.out.h' as not all systems have it and also
I wanted it as close to the original as possible so I got a copy
(https://raw.githubusercontent.com/dspinellis/unix-history-repo/Research-Release/usr/include/a.out.h) from
the fabulous Unix History repo
(https://github.com/dspinellis/unix-history-repo) which I highly
recommend anyone interested in the evolution of Unix to check out!

... and yes: the repo is under the account of Diomidis Spinellis who is
a previous IOCCC winner!

To generate the tool run `make gentab'. Note that keeping the short ints
short generates a lot of negative numbers but this might or might not be
a problem: the original mullender.c has a negative number for instance.

Updated .gitignore and README.md files.
2023-05-15 03:02:40 -07:00
Cody Boone Ferguson d235b565df Fix consistency of award titles
This was done quite easily with a bit of thought. I generated a script
that could be modified in vim if necessary (as it turned out to be
though some of it could have been generated too but I did not think of
everything at once and it is a hack).

This is how I generated it:

    echo '#!/bin/bash' > bin/check_awards.sh ; ( while read -r g ; do echo grep "$g"; done < <(sed -e 's,_,/,g' -e 's/"/\\"/g' tmp/year-auth-prize.csv | awk -F, '{print grep "\x22" $2 "\x22" " " $1 "/" "README.md"}' ); ) >> bin/check_awards.sh

Then I I modified the file (again this was a hack to make it easier and
quicker and better for being tired too) in vim to make the grep use -Hc
so I could pipe it to 'grep :0'. This found the files without the right
award. So the final command was:

    sh bin/check_awards.sh |grep :0

though I did have to edit some files several times.

For reference the script has been added to the repo too but with +x
permissions.

This change also required updating the CSV file in tmp/.
2023-05-13 07:02:07 -07:00
Landon Curt Noll 5927927e51 Add .id to all winning entries 2023-05-13 11:45:33 +10:00
Landon Curt Noll 1f3a3ee3fc fix 4 lines with trailing whitespaces - 1984/mullender/README.md
In one case, a <br /> is used to break a line.

in the other 3 cases, where a line break was
not needed, trailing whitespace were removed.
2023-05-12 19:58:46 +10:00
Cody Boone Ferguson bdc0eff20d Update Mullender URL - found on GitHub 2023-05-09 10:28:09 -07:00
Cody Boone Ferguson 5af91ec8b9 Add more detailed analysis from mullender
These come from the book 'Obfuscated C and Other Mysteries' but I don't
believe this violates any copyright since the only copied text (and
code, some of which I had to typo fix but certainly it might be that I
made some typos as well) is from the authors of the entry not the book
(well one of the authors).
2023-05-07 07:30:33 -07:00
Cody Boone Ferguson e96963f911 Minor fixes to 1984/mullender/README.md 2023-04-30 04:39:18 -07:00
Cody Boone Ferguson 8d06e51e7e Fixes in 1984 winning entries' README.md files
Formatting and possibly typos.
2023-04-14 06:14:15 -07:00
Cody Boone Ferguson 4bf3f302cb 'comments' -> 'remarks' in all README.md files
As in

    sgit -e 's/\([Aa]uthor.*\)comments/\1remarks/g' -e 's/\([Jj]udge.*\)comments/\1remarks/g' '*README.md'
2023-04-10 11:01:39 -07:00
Cody Boone Ferguson e09f677b37 Mass typo fix (all README.md and Makefiles)
As in

    sgit -e 's/the terms this license/the terms of this license/g' '*/Makefile' '*/README.md'
2023-04-02 09:27:13 -07:00
Cody Boone Ferguson e805f41d34 Mass fixes to headers in README.md files
There were many many README.md files with the wrong heading level for
different sections. These have been changed.

To help go through the changes it should be noted I used sgit and also
here is what is changed:

The 'Try', 'To build' and 'To run' lines have two '#'s. Some had one and
others had three.

An exception is that in 1984/anonymous/README.md for the alternative
code that had three '#'s. This is not consistent yet and it might be
that only two are desired. But for now that one at least has three.
2023-03-31 06:43:59 -07:00
Cody Boone Ferguson c2472c3eab Improve 1984/mullender alt code
Now you can specify the number of microseconds to sleep in between
writes! This makes it easier to experiment with different speeds as well
as solve any problems if your CPU is too slow or too fast

BTW: is there such a thing as too fast a CPU ? :-) actually yes for
certain code which is probably not as uncommon as you think :-) ).
2023-03-31 04:55:03 -07:00
Cody Boone Ferguson ef2828e9c1 Add alternative code for 1984/mullender for all!
Now anyone can enjoy 1984/mullender! This was a slight change to code
originally suggested in the faq (which was also updated, see below) made
for modern systems (since CPUs are much faster nowadays the duration for
usleep was much too long so one could not really enjoy the entry).

Updated bugs.md to remove this entry from the bugs.md file.

Also updated faq.md with another item. Unfortunately I had already added
another entry to faq.md and had failed to commit it before doing this
change (and adding it to the faq): how to get X11 entries (or actually
any X11 application) to work in macOS Mountain Lion and beyond. This is
why that faq entry is on this branch. It was not intended but it felt
like this change should be on its own branch / in a separate pull
request. I did not want to temporarily modify faq.md simply for this. I
have more changes to faq.md to make but that'll be on another branch so
that I have these changes there as well.
2023-03-31 04:06:10 -07:00
Landon Curt Noll 350da723cc improve architecture and Optimization comments in Makefiles 2023-03-26 22:13:13 -07:00
Landon Curt Noll 720e619025 clean whitespace before clean rule in several Makefiles 2023-03-26 20:55:38 -07:00
Landon Curt Noll 1c35dc3b47 make everything true :-)
Add @${TRUE} as an action for the everything rule in Makefiles.
2023-03-26 20:47:04 -07:00
Landon Curt Noll e42d7484cd trim comments and update 133t hacker rulz in Makefiles 2023-03-26 20:24:16 -07:00
Landon Curt Noll 7959f25716 quote sandwich quote :-) 2023-03-26 19:01:20 -07:00
Landon Curt Noll 8920fc2a7a make make maker :-)
In some Makefiles, the maker rule was mis-spellered as just make.
2023-03-26 18:53:26 -07:00
Landon Curt Noll 57c8b23094 remove inconsistent 133t hacker rulz 2023-03-26 18:49:34 -07:00
Landon Curt Noll e03d4d4af6 make alt rule dependency consistent 2023-03-26 18:45:16 -07:00
Landon Curt Noll 88b42e40a4 make .PHONY rules consistent 2023-03-26 18:40:02 -07:00
Landon Curt Noll 3a6c99ea7d make easter_egg rule consistent 2023-03-26 18:20:30 -07:00
Landon Curt Noll 36d0d3e026 make all all rules consistent in Makefiles
The all rule in some Makefiles was inconsistent.
The all rule should depend on the data rule and
not ${DATA}.
2023-03-26 18:01:36 -07:00
Landon Curt Noll f2e4fcb1f7 nuke nuke and dist_clean rules
Removed the nuke and dist_clean rules that were in a few Makefiles
but that are not part of the overall set of utility Makefile rules.
2023-03-26 17:32:37 -07:00
Landon Curt Noll 7a99d04ea5 fix everything in a few things
Changed the position of the everything Makefile rule
in select Makefiles to be consistent with other makefiles.

Fixed Makefile for 1986/stein where everything was not
everything (did not depend on alt).
2023-03-26 17:25:33 -07:00
Landon Curt Noll 1b1dd2f2e4 put all README.md files under CC BY-SA 4.0 License
This will make is easier for others to share README.md
files while requiring them to attribute the file
when using it.
2023-03-26 02:58:27 -07:00
Landon Curt Noll ea1806abdb change Makefiles to look under X11_INCDIR and X11_INCDIR/X11 2023-03-26 02:22:49 -07:00
Landon Curt Noll 5fc2d72dd1 change use of ${HOMEBREW_PREFIX} with ${SDL2_CONFIG} 2023-03-26 02:19:18 -07:00
Landon Curt Noll 8cd2aa85c1 clean up and improve end of Makefile rules 2023-03-26 02:02:31 -07:00