The ants.txt file is something that kids throughout the English speaking
world are tortured with, some having been forced to repeat it many,
many, many, too many times, but which fits well here: a grep program
called 'ant' should find lots of ants :-) (and it is a fun use .. or
maybe I just wish to subject others to the torture I was subjected to
decades ago? :-) )
It now clarifies that in the likely case it fails to compile the alt
version will be built as lmfjyh itself rather than suggesting one run
make alt (which basically did already). It does show how one can compile
the alt code manually still but it is not strictly necessary as this
entry is one of the rare cases where if the primary target fails the alt
target is built automatically.
Update the manifest as per recent file changes.
Removed inventory.html from all winners as the inventory will be
added to the winner `index.html` instead,
Updated winner `.winner.json` files as per the above.
It is perhaps ironic, however, that we have managed to do this given
that in multiple platforms it only shows a blank screen (the original
too). This has been noted in bugs.md should anyone wish to try and fix
it.
Add -Wno-implicit-int to Makefile.
In the case that the original entry fails to compile (if you don't have
gcc < 2.3.3 this will happen) the alt code will automatically be built.
One can still manually compile the alt code, of course, but this way one
can at least use the entry. Note that in the case the alt code is
automatically compiled it is compiled to the lmfjyh just like what I did
with 1985/sicherman. This was discussed after I did the 1985/sicherman
(which will compile anyway after my fixes unless a compiler objects to
main() having only one arg).
In some cases the comments were there but there was no section heading.
In others the section was not there at all.
These files have NOT been checked in other ways. That will come another
day most likely and very possibly not until early next year.
The script had "s surrounding the git ls-files command which turned it
to a single file which of course is wrong.
Ran script again fixing many README.md files that had incorrect number
of blank lines for critical headers.
This will have to be done a final but a good number of files have been
corrected.
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.
That is the comments have a general form and if they're for the alt code
they're defined in the alt code section. If they're for the entry and
the alt code they're above the CDEFINE variable.
The thanks file has been updated where it was needed.
Now only entries that have not been done need this improvement.
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.
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.
Using a Makefile variable one can now do just
make clobber SLEEP=18 alt
or whatever number they wish.
Also added jkb.alt and jkb.alt2 rules that correspond to the jkb rule.
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.
When adding the alt code I yank pasted the rule for cmills but by
accident neglected to add the '.alt' to the rule. This was not seen
because of the way the Makefile 'alt' rule is designed (in some cases
one need not have more than just that 'alt' rule) and other reasons
besides.
Format/typo check README.md.
Format/typo check ant.txt. I kept the terms the same like 'period' for
'.' as I believe that's the way it is in POSIX (even though I'd prefer
dot or full stop). I added in parentheses some symbols where they were
missing and there was a typo here and there. I was considering adding 's
round some characters to make things stand out a bit better but I did
not do that. If that's useful it can be done another time.
The bugs.md has been updated as well, both with INABIAF and missing file
statuses.
I believe that this completes 1993/ant the 's idea noted above
notwithstanding.
The README.md file has been format/typo checked.
The alt version uses usleep(3) with a configurable time (at compile
time). This version is suggested first as it apparently goes too fast in
modern systems. I say apparently as it doesn't appear to work with
macOS. I don't know if it works in other platforms but it is in bugs.md,
that there is a problem.
Running 'make' now links 'mind' to 'leo' (via the 'mind' rule).
Format/typo check the README.md file.
This should complete the entry unless a certain thing I found is a bug
in which case the bugs.md has to be updated (and the README.md refer to
it). This is not certain yet.
The formatting of the README.md file has been completed. Typos were also
fixed.
The formatting of the design.md has been completed. Typos were also
fixed.
The second alt version makes movement for the default game (which is in
the source code itself) more familiar to vi users. It is an exercise for
others to change the somewhat awkward keys for other games. Looking at
design.md might be of help there.
The bugs.md has been updated with a set of features, not bugs, that
should no be fixed.
It was stated, perhaps even by me but no longer sure of this (it looks
like my style) that after the program is terminated the terminal might
not be sane and one could do 'stty sane', 'reset' and other things.
Instead I have changed the code to just call endwin() and removed that
information instead. This way the user should not be burdened by it. The
alt code that I had added earlier on also has this fix.
The markdown files have not been completely checked but both README.md
and design.md have had some fixes applied.
The thanks file also points out that Yusuke's fix applies the suggested
fix for select(2) found in the README.md.
The alt code was provided by the author as a kind of spoiler but I fixed
it to also work with clang like I did with the original entry.
Silenced some warnings (all on macOS are now silenced, at least with
default cc which is clang).
Format/typo check README.md file.
This should complete 1993/vanb.
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.
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.
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.
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.
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.
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.
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.