368 Commits
Author SHA1 Message Date
Landon Curt Noll c9a023ff09 note old Email, header formatting, improve copyright and license
For the top level and year level README.md, where email are found,
a note was added to the effect that email addresses found above are
for historical purposes only, and should not be used today.

Old references to asking for fixes, comments, when content was used,
and next contest links were replaced with a general reference to the FAQ.

Harmonized the Copyright and License and copyright dates.
Now using Creative Commons "CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0
International".

The above Creative Commons will become the standard for the IOCCC.
Replaced old `png/by-sa-3.0-88x31.png` with a new ` png/by-sa.88x31.png` icon.
Updated the top level HTML files to use the license.
2023-12-26 14:43:30 -08:00
Cody Boone Ferguson 801f3fe90c Add missing comment in all Makefiles
The comment for the rule diff_alt_orig was missing. It was added like:

    sgit -e '/diff_alt_orig:/i \
    # diff alt and orig' '*Makefile'
2023-12-26 09:00:03 -08:00
Cody Boone Ferguson c3e9b4c43e Rename 2019/burton/on.one.liners
Added .txt to help with browsers/GitHub etc. in how to manage it. Also
link to it in the README.md file.
2023-12-22 11:36:38 -08:00
Cody Boone Ferguson d4baea207a Minor format fix in 2019/ciura/README.md
A couple places had an unnecessary newline which have been removed.
2023-12-22 11:27:29 -08:00
Cody Boone Ferguson d5c99244fa Add note about SoX in 2019/giles
The program play comes from SoX but this was not noted by accident.
2023-12-21 12:09:28 -08:00
Cody Boone Ferguson ad53b261fe Add 2019/mills/try.sh, update bugs.md, formatting 2023-12-20 11:02:03 -08:00
Cody Boone Ferguson 9e057cd4ab Add 2019/poikola alt code, try, try.alt, others
The alt code is so one can more easily filter the long output: it prints
a newline after each number is printed. The try.alt.sh script uses this.

Force -O0: the author stated that with clang they got correct output for
[0123s] but with GCC 6 they only got that with level 0. Since 0 works
with clang and since the author stated that the compilers used were
picky I changed it to level 0. Similarly and for the same reason I
changed the C standard to gnu11 from gnu17.

Format/typo check README.md file.

Updated bugs.md: noted that the max file size is 1GB.

I would like to give two quotes from the person this entry was dedicated
to:

    'When you are about to jump, you are all alone and have to make your own
     decisions. Up there, it's all "up yours".'

and

    'I will move to Copenhagen and apply for Swedish citizenship.'

simply because they're funny and ironic (and one is quoted by the
author). These might be found somewhere in this commit.
2023-12-20 08:27:07 -08:00
Cody Boone Ferguson 631869dc7f Add PDFLATEX var to var.mk
This is not strictly necessary any more than some of the others but two
entries use this tool (at least since I added them back - they were
missing) and it seems better to have it this way.
2023-12-20 03:14:32 -08:00
Cody Boone Ferguson 7d00519f5e Add 2019/lynn/try.sh, other files, updates
Add 2018/vokes/example-1.txt and 2018/vokes/example-2.txt as the author
refers to the files (and the try.sh uses them in the same way). This is
important so that the entry can be by itself (which is being
considered).

The README.md file has been format/typo checked.

The bugs.md has been updated but it refers to two sections in the
README.md file as there is a lot to include.
2023-12-19 13:26:19 -08:00
Cody Boone Ferguson db7fa4e822 Comment update in 2019/karns/try.sh
Make header comments consistent with other try.sh scripts.
2023-12-19 12:55:32 -08:00
Cody Boone Ferguson 5e92359ccb Improve 2019/karns/try.sh, force -O0
The try.sh script now prompts for input rather than just sleep for 2
seconds.

The README.md file has been format/typo checked.

Added issues reported by the author to bugs.md.

Force disable optimiser as the program doesn't work in some cases with
it enabled. If I recall correctly it crashed in some cases, something
the author noted happens sometimes (it is unknown if it is because they
had it enabled or if it was something else but I have not experienced a
crash since then).
2023-12-19 12:36:43 -08:00
Cody Boone Ferguson f25d431417 Format/typo check 2019/giles/README.md 2023-12-19 12:22:38 -08:00
Cody Boone Ferguson 9910688ce7 Force use of -O0 -g in 2019/endoh
Previously only -g was after ${CFLAGS} but it needs to have -O0 in case
someone decides to run something like

    make clobber OPT= all

Use of OPT+= in the Makefile will not fix that problem. Thus if someone
does NOT mess with OPT or any other variables that are added to CFLAGS
it will look like:

     -O0 -g -O0 -g prog.c -o prog

Previously it was just '-g' and no '-O0' but if someone were to do
instead

    make clobber OPT=-O3 all

it would have messed that up.
2023-12-19 05:26:39 -08:00
Cody Boone Ferguson 40936af68e Add 2019/endoh/try.sh, helper program + formatting
The helper program ascii.c converts args passed to it to char values (if
isascii() returns non-zero) which with try.sh allows one to reconstruct
the code with the backtrace rather than having to memorise ascii(7) (and
even if they did it would be hard to put it together). One should of
course use xargs(1) and try.sh does.

The try.sh script checks that gdb is installed first, telling the user
to install it if they don't have it. The README.md file notes that for
macOS It's not a simple matter of just installing gdb - there are
additional steps.
2023-12-18 10:06:39 -08:00
Cody Boone Ferguson 88e8d6a83d Improve make fullscreen in 2019/duble + formatting
The Makefile now uses the script fullscreen.sh which should also be
slightly more portable in that it doesn't rely on both stty(1) and
sed(1). Instead it relies on tput(1). Like the Makefile did for stty(1),
the script checks for tput(1). But rather than suggesting that the user
manually update the Makefile (without instructions) it now gives a
command that one can use to do the equivalent. This is assuming that the
environmental variables LINES and COLUMNS exist. Unfortunately these
variables are not available to scripts so it can't be done
automatically. This script also (if tput(1) cannot be found) shows a
more general way of how to change the size of the editor (the README.md
also does this). One can do something like

    make clobber LINES=20 COLUMNS=20 all

to get a 20 x 20 editor.

The fullscreen.sh script was added to simplify the above procedure.

The README.md file was format/typo checked.

I updated the bugs.md as well: I noticed another condition where the
program can become locked, forcing one to have to kill it. At the same
time I improved the way to find sockets that are left by the program
(the way before had the problem that other dot files with all cap
letters could be found) and also an improved way to delete them (which
there is no Makefile rule to do). Now bugs.md discusses both the locking
and the sockets being left in the directory.
2023-12-18 09:25:55 -08:00
Cody Boone Ferguson 9104ac41f3 Add 2019/yang/try.sh, update bugs.md + formatting
The try.sh script checks that the terminal size is large enough for two
files, the prog.c (last check) and sample_input.txt (provided by the
author). If it's too small for either it exits as it can't work. The
added ioccc.txt is very short in column and rows so that should not be a
problem (except in very extreme cases?).

The sample_input.txt file had trailing newlines removed because it
showed differences in output otherwise (and shouldn't).

The bugs.md was updated - add INABIAF for this entry.

Format/typo check README.md file.
2023-12-17 10:35:25 -08:00
Cody Boone Ferguson 01dd7bdee7 Add 2019/dogon/try.sh, update bugs.md, README.md
Updated Makefile so one can easily change the 'Z' macro by doing:

    make clobber MEMORY=... all

This is not usually useful but there are occasions where it is. As the
README.md points out this value must be a power of two!

The try.sh script runs the program on a number of the mc files, first
showing the input keys as a reminder (it also reminds one to keep in
mind the focus of windows).

The bugs.md is updated to note that it uses gets(3).

Format/typo check README.md file.

I changed the number of years ago that microorganisms appeared on Earth
as the number was off: there are those wondrous hydrothermal vents that
spewed mineral rich waters. Fun fact on the history of the Earth: did
you know that as of 2013 the number of years since the dinosaurs were
wiped out is not 65m years but actually 66m? That means that if you were
born before 2013 and you didn't die right before the revision that
you're in a rare group of people who have had a major historical update
as far as the dinosaurs go. But don't let it get to your head too much!
It also means you're ancient, possibly even a dinosaur, and you're
headed their way. :-) That's the price we must pay for being in that
group.
2023-12-16 09:33:17 -08:00
Cody Boone Ferguson 8b51d5d83e Improve 2019/diels-grabsch/try.sh
Before doing 'diff -s sha512sum.txt prog.txt' it does a cat on both
files (in one command) so that one can see what is being compared
(or to verify what is being compared).
2023-12-16 04:18:55 -08:00
Cody Boone Ferguson 51707205e9 Add 2019/diels-grabsch2/try.sh script
The try.sh script looks for sha512sum and shasum. If either of these are
found it will use the one found (in the order of sha512sum first and
shasum -a 512 second) and prog. If neither can be found it uses just
prog. If one of them can be found, however, it shows how the output is
the same.

The prog.c was restored from prog.orig.c. Like 2019/diels-grabsch1 the
purpose is no longer valid and even more problematic is the fact that
the checksum value obviously would not be correct otherwise. Makefile
updated instead.

The README.md file has been format/typo checked.

.gitignore updated - added files that try.sh script uses (though it does
delete them after use).
2023-12-15 13:44:53 -08:00
Cody Boone Ferguson 4fc1683dc0 Add 2019/diels-grabsch1/try.sh + other fixes
Add Shakespeare.txt from 2019/mills. This was used in the try commands
(now try.sh) by doing cd ../mills ; make ; cd ../diels-grabsch1 but this
is problematic because it requires that one has the same directory
structure. Even more than that there's talk about having a tarball with
each entry by itself so the text file has to be in this entry's
directory too.

The prog.c was reverted back to the original source code and the
Makefile updated to have a -Wno- option. Originally the idea was to make
the author's remarks true that even -Weverything of clang shows no
warnings (which certainly did at the time) be true. I had the thought
that it would be nice to keep CSILENCE empty. But this was bordering on
going too far and more recent versions of clang have yet another dubious
warning and it seems that that warning one cannot even prevent (but
doing so here would obviously not be okay) so if that is silenced it
would mean that CSILENCE is no longer empty anyway. This way is better
anyway as the code is now the same. Of course the statement by the
author that a certain paragraph in README.md is the same shape and size
as prog.c is no longer true but that can't be helped.

Format/typo check README.md file.
2023-12-15 12:44:34 -08:00
Cody Boone Ferguson 70b085933c Change bug status of 2019/ciura, add scripts etc.
I'm almost positive that my earlier fixes to the scripts for the other
languages was all that is needed and the reason they don't work is due
to the dictionary and the fact that in some languages it is hard if not
impossible to form perfect pangrams especially with the entire alphabet.
This appears to be the case with German. A point of interest that I put
in the German scripts is:

    # Are the umlauts ä, ö, ü and Eszett (ß) letters in the German alphabet? There
    # is more than one opinion on the subject but a lot of words do have an umlaut
    # (or Umlaut in German). In some (probably all) systems this script outputs
    # nothing probably because it's very hard to form a perfect pangram in German,
    # if it's not impossible. Nevertheless, we do include the other characters
    # whether or not they are in your view considered part of the alphabet for the
    # reason that so many words have them.

I put it 'if it's not impossible' because this also depends on what
letters are provided. These scripts give the entry every letter,
however, including those with diacritics so in the case of German it's
not going to work.  It is possible to make it work if you remove some
letters or you give a word that has all the letters (but that kind of
defeats the purpose). As for the other languages I don't know if it's
possible or not (and I'm not fluent in German either - I just know
some). A search suggested it's possible in some other languages but the
author noted it's not in Spanish at least according to their estimates.
Nevertheless I believe that the fixes I made are all that's needed so
this entry now has INABIAF in the bugs.md file.

Fixed the Makefile so the alt version would actually build. Added
scripts to use the alt version instead.

Format/typo check README.md file.

Added try.sh and try.alt.sh.

Downloaded and converted the PS file linked to by the author to PDF and
added to repo.
2023-12-15 12:17:23 -08:00
Cody Boone Ferguson 00b9181b11 Add 2019/burton/try.sh and other fixes/updates
The try.sh runs prog and wc side by side but in a way that is formatted
(including alignment) so it's easier to see what line is from which
program and it also runs make test.

The script cow was renamed cow.sh to help browsers with whether or not
to display or download.

The script check was renamed check.sh to help browsers with whether or
not to display or download.

The script check.sh was fixed in case the 'x' (passed in to the script
as an environmental variable) is not executable (it resets it back to
./prog) and also made to satisfy ShellCheck.

The script cow.sh was fixed for ShellCheck moo (or was it too? :-) ).
2023-12-15 09:30:14 -08:00
Cody Boone Ferguson ae420f7b32 Add 2019/adamovsky/try.sh, crash.unl + formatting
The crash.unl is what the judges put in their remarks (and at the end of
the file they say more). It was added so one can see what is meant.
Updated bugs.md for this - INABIAF.

The try.sh script is as usual.

The README.md file has been format/typo checked.
2023-12-15 08:36:22 -08:00
Landon Curt Noll 658669a73a improve .gitignore files, fix index.html links, sync CNAME
fix experimental web site links in experimental index.html

sync CNAME with https://github.com/ioccc-src/winner/blob/master/CNAME

improve .gitignore files

Added to each .gitignore file, comments on how to sort.

Put into winner .gitignore files, ignore *.dSYM files.

Put into winner .gitignore files, ignore indent.c,
indent.o and indent files.  This is done so that the
winner directory can more self contained.

We did not put into winner .gitignore files, however,
excludes of .-files as found in the top level .gitignore file.
As .-files are not allowed by mkiocccentry, the top level
.gitignore file remains sufficient.

Added to year level .gitignore files, excludes of
mkentry or iocccsize files as needed.

Sorted (via sort -d -u) all .gitignore file.
2023-12-08 04:06:44 -08:00
Landon Curt Noll 6206201d8a add make genpath rules, .path files, updated .top and .year
Add .path files to each winner directory: a file containing
the path to the winner directory from the top directory.

Changed YYYY/.year files to contain the paths, from the top
directory, if the winning directories for the given year.

Changed `/.top` to contain the IOCCC years.

Added `make genpath` rule to the top Makefile and the
year Makefiles to generate the above.

Added FAQ 6.8 to `faq.md` to explain the above.

Updated manifest to reflect recent changes to the list of files.
2023-12-08 01:29:43 -08:00
Landon Curt Noll f929afd344 update .winner.json
We used:

```sh
./run_all.sh ./gen_winner_json.sh
```

to update `.winner.json` files due to recent changes
made to `manifest.csv`.
2023-12-05 22:51:27 -08:00
Landon Curt Noll 1e1f962c30 add to make clobber, removal of *.dSYM 2023-12-05 02:22:49 -08:00
Cody Boone Ferguson 30c59761df Mass fix Makefiles: $(MAKE) -> ${MAKE} 2023-11-19 06:31:28 -08:00
Cody Boone Ferguson bc35c37748 Improve how gcc/clang is detected in Makefiles
Rather than check if $(CC) IS gcc or IS clang check for $(CC) containing
gcc or clang. This is because in some systems or conditions the compiler
might not be called JUST gcc or JUST clang. For instance gcc in MacPorts
is called gcc-mp-13 (for example) but without this change one would have
to symlink gcc to gcc-mp-13 or copy it to gcc.

The FAQ has been updated to address this.
2023-11-18 06:10:02 -08:00
Cody Boone Ferguson 396f92f9b0 Rename 2019/karns/demo.sh try.sh
It was already documented as such (in the thanks file) but it was still
the old name (demo.sh). The README.md had demo.sh still but this has
been updated as it's all for the try section.
2023-11-14 11:18:51 -08:00
Landon Curt Noll e00d20111d rename .inventory.html -> inventory.html
Due to GitHub not serving nor rendering HTML files whose filename
starts with "." (dot), we renamed `.inventory.html` to `inventory.html`.

Renamed: `tmp/gen_dot_winner.sh` -> `tmp/gen_winner_json.sh`
Fixed URL generation for GitHub links in `inventory.html`.

The manifest was updated accordingly.

The `tmp/README.md` file was updated accordingly.
2023-11-06 02:23:30 -08:00
Landon Curt Noll 4f88c4214b add initial .winner.json and .inventory.html for winners
Fixed an incorrect author win for "1989_jar.2" in `author_wins.numbers`
and `author_wins.csv`.

Changed winner_JSON_format_version to "0.5 2023-11-04".

Added `gen_dot_winner.sh` tool to generate .winner.json and .inventory.html
for a winner.  This tool uses [pandoc](https://pandoc.org) to convert
markdown to HTML.

Used this command to generate `.winner.json` and `.inventory.html` for
all winners:

```sh
./run_all.sh -v 1 -D 1 ./gen_dot_winner.sh
```

Updated `tmp/README.md` to reflect the above.

Retired "fake.gen_inventory.sh" to `tmp/OLD_manifest/fake.gen_inventory.sh`.

Added `-D level` flag to `run_all.sh` to specify the `-v level` for
the tool that is being run.
2023-11-06 00:22:19 -08:00
Cody Boone Ferguson 249e865de2 Mass edit README.md: remove top award/author lines
As requested on GitHub: a tool that will be written, readme2index, will,
as explained:

    '... will take the converted HTML from the README.md markdown and
    inject it into an HTML template. Things such title, award one and
    author information will be injected into the HTML page ahead of the
    HTML that was converted from the README.md markdown. Without going
    into details of HOW at this time, the result will be a coherent HTML
    index.html page with the winner title / award, winning author
    information, and important file links come from other sources and
    NOT from the README.md file.

    The text from the 1st award line, thru the authorship information,
    and up to but not including the "## To build:" line in the README.md
    file will just get in the way. Moreover authors might be tempted to
    try and maintain that top of README.md text instead of working with
    the author/_author_handle_.json and winner .winner.json files.

This was done with my[0] sgit(1) (https://github.com/xexyl/sgit) tool like:

    sgit -o -n -e '/^## To build:/,$p' '[12][0-9][0-9][0-9]/*/README.md'

[0] Is that shameless self-promotion? I don't know but I don't care: it
is generally a very useful tool and has been used in other repos too.
Besides, I've done it many times before and it's a great example that I
will be adding to the README.md file of the tool, one I hadn't thought
of doing.
2023-11-05 03:39:46 -08:00
Landon Curt Noll 360708f858 cleanup winner README.md files
Fixed cases where there was a bad trailing backslash.

Improved a few cases where a code block was needed
to highlight some text.

Changed a few cases where a code block needed to
declared as, say, a sh code block.

Fixed a few cases where the winner information was not properly formatted.

Plus a few nits and clarifying text was added.
2023-11-04 03:21:11 -07:00
Landon Curt Noll f89a020d0f convert INABIAF headers in README.md to a Jargon File quote
We introduce a bit of fun, while specifying that something
is "supposed to happen".

NOTE: There is no need to change the INABIAF STATUS.  The use
there is perfectly fine.
2023-11-02 17:17:40 -07:00
Landon Curt Noll d2188d1491 fix a few more standard header lines in winner README.md files 2023-11-02 16:01:23 -07:00
Landon Curt Noll fbd20cfdc2 fix standard headers and header spacing in winner README.md files 2023-11-02 15:45:36 -07:00
Cody Boone Ferguson 5041a0d592 Typo fix in all entry Makefiles
Change the comment

    # Special flags for this entry

to

    # Special Makefile variables for this entry

because these are actually variables and not flags.
2023-11-01 03:36:29 -07:00
Landon Curt Noll 7cb3c44a3b removed .id files from winning dirs
The `.id` files are no longer needed and so they were removed.

The `winner_id` (the contents of the `.id` files) are simply
a concatenation of "year" and "_" and "dir".

Adjusted `.inventory.html`, `tmp/README.md`,
`tmp/fake.gen_inventory.sh`, and the manifest according
to the above.
2023-11-01 01:19:36 -07:00
Landon Curt Noll a17fe36163 add tmp/fake.gen_inventory.sh tool
The new tool, tmp/fake.gen_inventory.sh, now adds
a fake .inventory.html file to each winner entry.

Once the winner2nventory tool is written, the .inventory.html
will contain links to all winner files listed in the inventory.
For now, the tmp/fake.gen_inventory.sh tool just creates
a placeholder file.
2023-11-01 00:47:43 -07:00
Landon Curt Noll 2e5f868896 improve Nu Html Checker code in index.html 2023-11-01 00:17:07 -07:00
Landon Curt Noll 1883e441c7 remove use of FONT from stb index.html files
We are still seeing if we can get the validator to work.
2023-10-31 22:44:17 -07:00
Landon Curt Noll d6f3d20bac improve winner index.html for a validator attempt 2023-10-31 22:40:25 -07:00
Landon Curt Noll a42aeeca8f add stub index files for each winner 2023-10-31 22:26:09 -07:00
Landon Curt Noll 8b71dd0d4f add or improve Bugs and (Mis)features text in README.md
The entries referenced in `bugs.md` now have, below the
"To build:" section, a "Bugs and (Mis)features section text"
that matches the `bugs.md` status.

Several entries had their "STATUS" changed from:
"STATUS: INABIAF - please **DO NOT** fix" to:
"STATUS: known bug - please help us fix":

This was done because, while some of the bugs were minor,
inviting someone to try and fix the issue does nil harm.
In a few cases a more difficult bug was also changed to
the "please help us fix".

While we do NOT want to waste time fixing such entries NOW,
letting others become involved and to try to fix the entry
is a good thing as to encourages people to study the entry
and try to fix the entry.  We don't need to accept a fix
that is offered, and of the fix transforms the source in
a less than desirable way, such a fix (if accepted) could
be become a alt source code.
2023-10-30 00:19:21 -07:00
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 767f1aeb9d checkpoint milestone on manifest
All fields in both manifest.numbers and missing_manifest.numbers
have been filled in.  However the data entered needs to be reviewed.
Previous efforts made on a spreadsheet line by line basis.
What needs to happen next is to review at an entry by entry level.
Then a review at the overall manifest level (via full_manifest.numbers)
for overall consistency.

The 2015/burton/src.doc.rot13 was un-rot13ed to become
2015/burton/src.doc.txt.

Updated 2018/poikola and 2019/poikola .gitignore and make clobber
to address when the tex file is rendered.
2023-10-23 14:25:26 -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