418 Commits
Author SHA1 Message Date
Cody Boone Ferguson f20272d2b6 Fix make clobber in 2004/sds 2024-02-08 07:14:24 -08:00
Cody Boone Ferguson 9e503d1d7e Minor improvements to 2004/sds/try.sh 2024-02-06 09:27:00 -08:00
Cody Boone Ferguson 14b17997e7 Fix 2004/omoikane/try.sh - make all missing 2024-02-06 09:22:50 -08:00
Cody Boone Ferguson 2b65db6e95 Update less options in 2004/newbern/try.sh 2024-02-06 09:21:17 -08:00
Cody Boone Ferguson 11c1c7ee33 Add missing less calls to 2004/hoyle/try.sh 2024-02-06 09:18:23 -08:00
Cody Boone Ferguson cb9d7dbb69 Typo fix try.sh in 2004/kopczynski/README.md 2024-02-02 08:21:37 -08:00
Landon Curt Noll 657a0be130 add tool to sort .gitignore content
We sort with lines starting with # first.
We sort with lines starting with * second.
We sort with lines that do not start with [#!*] third.
We sort with lines starting with ! fourth.

Example usage in vim with a keyboard macro <escape>f:

```vim
:map ^[f 1G!G../../bin/sgi^M
```

 or via .vimrc:

```vimrc
" sort the entire .gitignore file using ../../bin/sgi
:map  ^[f 1G!G../../bin/sgi^M
```

 NOTE: The ^[ above is ((Escape)) and ^M is ((Control-M)).

Example usage in shell:

```sh
rm -f t && ../../bin/sgi < .gitignore > t && mv -f t .gitignore
```

Suggested usage:

```sh
bin/all-run.sh bin/sort.gitignore -v 1
```

Sorted all winner .gitignore according to this method.
Sorted all year level .gitignore according to this method.
Sorted top level .gitignore according to this method.
2024-02-01 14:35:49 -08:00
Cody Boone Ferguson 483a00aa5e update index.html and .winner.json per recent manifest changes 2024-01-23 10:00:41 -08:00
Cody Boone Ferguson a286f595a4 update .winner.json files per recent manifest changes 2024-01-23 09:29:44 -08:00
Landon Curt Noll d414b6d71f add quick-readme2index.sh, improve all-run.sh and readme2index.sh
Improved `all-run.sh` and `readme2index.sh` so that
certain command line options (e.g., -p, -P, -u, -U ...)
are only passed along to other tools if they are
given on the command line.

all-run.sh VERSION changed from "1.1.1 2024-01-19"
to "1.1.2 2024-01-20",

readme2index.sh VERSION changed from "1.1 2024-01-16"
to "1.1.1 2024-01-20".

Added `quick-readme2index.sh` that only calls
`readme2index.sh` if the `index.html` is not
a non-empty file, or of either `.winner.json`
and/or `README.md` is newer than `index.html`.

Updated all `index.html` files because the
the file contains a comment that includes
the newly modified readme2index.sh VERSION.
2024-01-21 00:21:40 -08:00
Cody Boone Ferguson 7ce57bc879 Update 2004/anonymous/.gitignore for try.sh 2024-01-20 11:14:45 -08:00
Cody Boone Ferguson 379e585e0f Add 2004/anonymous/try.sh 2024-01-20 11:13:52 -08:00
Cody Boone Ferguson 8070711ef9 Minor update to 2004/vik1/README.md 2024-01-20 10:59:42 -08:00
Cody Boone Ferguson 8ce3247921 Improve 2004/sds/try.sh 2024-01-20 10:57:58 -08:00
Cody Boone Ferguson b622a68af8 Improve 2004/schnitzi/try.sh
It also now checks that vi is installed (for the unlikely case it's not
installed).
2024-01-20 10:47:22 -08:00
Cody Boone Ferguson 195759bf03 Add 2004/omoikane/try.sh 2024-01-20 10:42:28 -08:00
Cody Boone Ferguson 4bab6df670 Add 2004/newbern/try.sh
One of the features the author noted is also in the script. It was
documented by Yusuke but I chose to use the letters IOCCC instead (it
seemed more fitting). This is noted in the thanks file.
2024-01-20 10:23:30 -08:00
Cody Boone Ferguson 4016ba673e Improve 2004/kopczynski/try.sh 2024-01-20 10:07:10 -08:00
Cody Boone Ferguson e0dba2f0ca Improve 2004/jdalbec try scripts 2024-01-20 10:05:01 -08:00
Cody Boone Ferguson 6c2bf8cb5a Add 2004/hoyle/try.sh
This involved an update to .gitignore.
2024-01-20 09:46:47 -08:00
Cody Boone Ferguson 73512d2e81 Fix 2004/hibachi/src/localhost/index.html
Many links no longer worked, had changed or are https enabled now. In at
least two cases the Internet Wayback Machine was required but most were
just changed to https. The link to cygwin had changed entirely. The link
to lynx(1) had changed too.

Typo fixes in src/localhost/test0.sh.

Minor updates to README.md.
2024-01-20 09:20:55 -08:00
Cody Boone Ferguson 8bcf460db4 Improve to use/try for 2004/gavare 2024-01-20 07:19:35 -08:00
Cody Boone Ferguson 789397e415 Fix typo (bad filename) in 2004/arachnid
I had renamed the arachnid.info to arachnid.txt as it's not really an
informative file but I forgot to update the command in the README.md
file. I was tempted to rename it to arachnid.maz as it's a maze file but
I kept it as a text file so that (some?) browsers know what to do with
it (though I'm not sure how strictly necessary that is it doesn't hurt
to have it as .txt either).
2024-01-20 06:30:05 -08:00
Landon Curt Noll c1466f5165 build index.html for all winners
Updated manifest as per recent file changes.

Updated winner `.winner.json` to reflect the manifest changes.

Added [bin/all_run.sh](bin/all_run.sh) tool to run a command over
all winning entries.

These tools had slight improvements in the help usage message:

* bin/gen-author.sh VERSION="1.3.1 2024-01-16"
* bin/gen-inventory.sh VERSION="1.0.1 2024-01-16"
* bin/pandoc_wrapper.sh VERSION="1.3.1 2024-01-16"
* bin/subst.default.sh VERSION="1.1.1 2024-01-16"
* bin/subst.winner-index.sh VERSION="1.1.1 2024-01-16"

The `bin/readme2index.sh` tool was improved so that
if the `index.html` file exists and the tool forms
the exact same content, then the file `index.html`
file is NOT touched.

* bin/readme2index.sh VERSION="1.1 2024-01-16"

We used the following command to generate `index.html` files
for all winning entries:

```sh
bin/all_run.sh -v 3 bin/readme2index.sh
```

NOTE: We have not (yet) built HTML files above the winner directory
level (e.g., no year level nor top level HTML), nor have be built
non-index HTML files for winners.

NOTE: By default we are running `pandoc(1)` with:

```
--fail-if-warnings=true
```

This means that any problems with markdown to HTML
generates an error.  This is done to be sure that
the HTML conversion is clean.

We had to fix the following `README.md` files:

* `2000/rince/README.md`

The reference [^2] was never used.  We made a guess that [^2] applies
to the same spot as [^1].  Perhaps there is a better spot where
[^2] applies?

NOTE: For every reference, there MUST be some place where that
reference is used.

* 2012/vik/README.md

The string "$...$" is assumed to be a TeX encoded string.

NOTE: Every "$..$" needs to be backslashed as in "\$..\$".

* 2018/burton1/README.md

The reference [2] was duplicated.  We changed the
second [2] to [3].

NOTE: Every reference needs to have a unique number.

* 2020/carlini/README.md

The string "$...$" is assumed to be a TeX encoded string.

NOTE: Every "$..$" needs to be backslashed as in "\$..\$".

We also found 2 errors in the `author/author_handle.json` file set:

* author/Anonymous_2001.json

The `author/Anonymous_2001.json` file was missing.

* author/Jari_Arkko.json

The winner ID for `1989_jar.1` had a typo.
2024-01-17 00:32:39 -08:00
Cody Boone Ferguson ba0f1ea721 Fix heading level of 'Try' section
It was agreed to be '## Try:' but there were many files where it was
'### Try:'. This has been corrected.
2024-01-15 04:29:39 -08:00
Landon Curt Noll c6e6201209 release readme2index.sh version 1.0 2024-01-14
The initial release of `bin/readme2index.sh` tool that converts
`READMD.md` and various JSON files such as `.winner.json`
as well as "author/author_handle.json" files.

Applied the `readme2index.sh` tool to generate `2020/ferguson1/index.html`.

We generated the  `2020/ferguson1/index.html` by executing:

```sh
./bin/readme2index.sh -v 3 2020/ferguson1
```

NOTE: This above tool requires **pandoc to be installed**.
See the [pandoc web site](https://pandoc.org) for how
to install.  We used _HomeBrew_ to install it,
but there is also a _macports_ process as well.

NOTE: While the above web page does have formatting issues, it is
a first attempt data driven programmatic web page generation.

Some adjustments can be made by mostly improving `ioccc.css`,
and some perhaps by modifying how `bin/pandoc_wrapper.sh`
invokes pandoc.  But probably most of the improvements can
be made by fixing and improving `ioccc.css`.

TODO: Fix and improve the `2020/ferguson1/index.html`
web page by fixing and improving `ioccc.css`.

Moved scripts and tools needed to generate HTML pages
into a new `/bin` subdirectory.

TODO: Consider getting rid of the [build-ioccc
repo](https://github.com/ioccc-src/build-ioccc) and just use the
`/bin` subdirectory.

NOTE: Some links in the `2020/ferguson1/index.html`
web page do not (yet) exist.

TODO: Once the basic format of the `2020/ferguson1/index.html` web
page is somewhat reasonable, generate `index.html` pages for other
winners.  Generate the year level `index.html' files.
Generate the top level HTML files, including the missing
`location.html` file.

Greatly simplified the `.winner.json` file format,
removing a number of fields that were not strictly needed
for generating an inventory on a `index.html` page.

Updated various versions:

* `bin/gen-author.sh` VERSION="1.3 2024-01-14"
* `bin/gen-inventory.sh` VERSION="1.0 2024-01-14"
* `bin/manifest.winner.json.awk` VERSION="1.0 2024-01-14"
* `bin/pandoc_wrapper.sh` VERSION="1.3 2024-01-14"
* `bin/readme2index.sh` VERSION="1.0 2024-01-14"
* `bin/subst.default.sh` VERSION="1.1 2024-01-14"
* `bin/subst.winner-index.sh` VERSION="1.1 2024-01-14"
* `tmp/gen_path_list.found.sh` VERSION="1.1 2024-01-14"
* `tmp/gen_winner_json.sh` VERSION="1.1 2024-01-14"

The `.winner.json` file format from winner_JSON_format_version
"0.5 2023-11-04" to "1.0 2024-01-14".

All `.winner.json` files have been updated to use the
new `.winner.json` file format.

The manifest (`tmp/manifest.numbers` and `tmp/manifest.csv`) has
updated to use the new `.winner.json` file format.

The following procedure was used to generate the
`tmp/manifest.csv` manifest file:

0. open [manifest.numbers](manifest.numbers) in numbers: modify if/as needed

NOTE: Please try to keep the [manifest.numbers](manifest.numbers) spreadsheet
      in order order.  Use Organize -> Sort -> ((Sort Now)) to sort.

NOTE: Empty fields in the [manifest.numbers](manifest.numbers) spreadsheet
      are not allowed.  By default, a cell that is empty is colored
      as a warning.

1. File -> Export To -> CSV...
    * 1a. `[ ]` Include table names (unset)
    * 1b. Text Encoding: Unicode (UTF-8)
    * 1c. Click ((Save..))

2. Save As: manifest.csv
    * 2a. Select the `tmp` directory

3. Click ((Export))
    * 3a. If needed click ((Replace))

4. Execute ./tmp/[fix_csv.sh](fix_csv.sh)

NOTE: You must run the [fix_csv.sh](fix_csv.sh) in the above
      step in order to make the CSV file usable by other tools.

NOTE: If no changes are needed in the above step, the
      original file content will be restored.

5. Execute ./tmp/[gen_path_list.found.sh](gen_path_list.found.sh)

NOTE: The above step silently performs a `make clobber` at the
      top level, and so it takes a bit of time.

NOTE: If no changes are needed in the above step, the
      original file content will be restored.

6. Execute ./tmp/[check_path_list.sh](check_path_list.sh)

NOTE: The above step prints nothing and for an exit 0, then
      all is well.  If there is a problem, such as files
      found that are not part of the manifest, or files
      in the manifest that are not found, then an error
      message will be printed and the tool will exit non-zero.
      If errors are reported, go back to step 0 and
      correct the errors.

7. Execute ./tmp/[run_all.sh](run_all.sh) ./gen_winner_json.sh

NOTE: The above step will take a few seconds to run.  It will rebuild
      all `.winner.json` files for all winners.

NOTE: If no changes are needed in the above step, the
      original file content will be restored.

8. Execute `git status` and inspect changes

NOTE: Check in changes if and as needed.

NOTE: In a number of shell scripts under `bin/*.sh`,
      and in the `bin/manifest.winner.json.awk` script
      you will find comments of the form:

```
```

This is a note that when tools such as `jnamval` (and `jval` and `jfmt`) are
ready, these gross hacks should be replaced with calls to those tools.
Until they are ready, some must be careful with the layout of JSON files.

A number of bugs and typos have been fixed.

NOTE: Fixing typos in the files touched by this comment is welcome.
      This includes scripts, data files, text files, etc.

The _inventory_order_, _display_as_, _display_via_github_.  and
_winners_text_ fields of the [manifest.numbers](manifest.numbers)
spreadsheet were just set to have some initial values.
As they impact the inventory displayed on `index.html` pages,
their content needs to be improved.

NOTE: Improving the above mentioned fields of the
      [manifest.numbers](manifest.numbers) spreadsheet is welcome.
2024-01-14 22:03:28 -08:00
Landon Curt Noll 259d8c8503 update manifest, remove inventory.html, update .winner.json
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.
2024-01-10 14:03:53 -08:00
Landon Curt Noll 5859489b60 update .winner.json based on updated manifest.csv
We used:

```sh
cd tmp
./run_all.sh ./gen_winner_json.sh
```
2023-12-28 19:22:06 -08:00
Cody Boone Ferguson ba764a1833 Fix tmp/format-headers.sh, format headers
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.
2023-12-27 08:54:28 -08:00
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 7442da4341 Fix 2004/gavin/img/fs.tar
Now contains old hint file (which is a copy of README.md) and the
updated README.md file. This makes it match correctly. This has not yet
been removed from the todo file as other things are also being removed
from the todo file and I'd rather do those changes together as a single
commit of things completed.

Minor update to thanks file wrt this entry.
2023-12-23 05:19:58 -08:00
Cody Boone Ferguson 12339d4b3b Add path to sds in 2004/sds/README.md
In author's remarks in particular.
2023-12-20 15:50:36 -08:00
Cody Boone Ferguson 4ebe37796f Minor update to 2004/sds/README.md
Let the bugs.md file speak for the feature itself rather than saying in
the README.md that the program is is expected to crash if the generated
code cannot open a file or there's some invalid command line.
2023-12-20 14:10:34 -08:00
Cody Boone Ferguson a2e77e1ca6 Force -O0 in 2004/kopczynski 2023-12-19 10:04:10 -08:00
Cody Boone Ferguson 526f04d84f Force -O0 in 2004/burley - optimiser breaks it 2023-12-19 10:00:49 -08:00
Cody Boone Ferguson b85e20aac3 Make alt code variables in Makefiles consistent
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.
2023-12-08 04:48:23 -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
Cody Boone Ferguson 209410fa83 Improve how to redefine macro in 2004/jdalbec
Now one can do

    make clobber Ag=47 alt

to make the number of numbers on a single line 47 (of course at the same
time as defeating the purpose :-) ).
2023-12-07 10:53:14 -08:00
Cody Boone Ferguson c3fdf7c917 Improve how to redefine macros in 2004/gavare
Now one can do

    make clobber XX=640 YY=480 AA=3 alt

or whatever, rather than the more awkward setting of CDEFINE.
2023-12-07 10:49:18 -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 4e736301ad Add second arg to main in 2004/kopczynski 2023-11-25 11:10:45 -08:00
Cody Boone Ferguson 86b6b2e41e Add alt code to 2004/gavin for QEMU
Based on the remarks for QEMU one has to have the macro K defined as 1
so in the alt code it does an #undef K and then a #define K 1. The other
macros are defined if not defined (#ifndef .. #endif).

The instructions could be improved upon. As of now it only tells how to
compile it and that use is similar to the main entry except that one
uses QEMU instead. The file names like kernel, vi etc. are still those
names with the alt version build. I have no good way to test this out
but unless I made a typo in the Makefile everything should be good
assuming that it still works.

This should (if all is good with the Makefile rules) complete
2004/gavin.
2023-11-20 08:39:09 -08:00
Cody Boone Ferguson 5f0159e424 Format/typo check 2004/hibachi/README.md
With the exception of a possible task for 2004/gavin this should be the
completion of 2004!
2023-11-19 15:47:59 -08:00
Cody Boone Ferguson e5273c3404 Add 2004/sds/try.sh + format/typo checks
The try.sh script runs what used to be in the try section.

Format/typo fix README.md in full. This commit also fixes an
inconsistency where the author unwittingly used the word stenography
instead of steganography, a very easy mistake to make and one that I
almost missed.

Updated Makefile to silence a couple warnings.

Updated .gitignore.
2023-11-19 15:34:25 -08:00
Cody Boone Ferguson bcd2d9a063 Format/typo check 2004/omoikane
This should complete this entry's review.
2023-11-19 13:51:23 -08:00
Cody Boone Ferguson 04c4388db4 Improve/clean up fix to 2004/vik2
Now the vik2_1.c file only has code from that file rather than other
pre-processed things from before.

Both vik2.c and vik2_1.c now don't use FNAME but rather include __FILE__
just to make it a bit easier. Note that this was not done with
vik2.possible.cat.death.c because it is there for fun and to demonstrate
the problem I fixed (which unfortunately involved heavy modifications to
the original file).

Format/typo check README.md file.
2023-11-19 13:29:10 -08:00
Cody Boone Ferguson 7bb8f6a988 Format/typo check 2004/vik1 2023-11-19 12:44:47 -08:00