From 5f66cb3138843bbae28181bef8a0f4292b6e7156 Mon Sep 17 00:00:00 2001
From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com>
Date: Tue, 4 Jun 2024 08:44:55 -0700
Subject: [PATCH 1/2] Add FAQ 3.20 - about entry/year tarballs
This question is called '3.20 - How do I download individual entries or
entries of a given year?' and discusses both the individual entry
tarballs as well as the year based tarballs, each in a subsection. Each
part explains files that exist in the tarball and there are examples of
how one might make use of them after extracting the tarball. It gives an
example tarball name for each, including the path.
Two typo fixes were made in the FAQ 3.13 title (in the link at the top
and the actual question/answer as well).
Although the links in this new entry should work I have not yet checked
the file (though I did check those links added) and I will not until it
becomes clearer that not much more has to be done with the FAQ. Instead
I will focus on the entry html files and possibly together with that the
bugs.html file as well, to make sure of consistency.
---
faq.html | 71 ++++++++++++++++++++++++++++++++++++++++++--
faq.md | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
2 files changed, 157 insertions(+), 4 deletions(-)
diff --git a/faq.html b/faq.html
index 920b595ae..a3674503d 100644
--- a/faq.html
+++ b/faq.html
@@ -425,13 +425,14 @@
3.10 - How do I compile and use an IOCCC entry that requires sound?
3.11 - Why do Makefiles use -Weverything with clang?
3.12 - How do I find out how to send interrupt/EOF etc. for entries that require it?
-3.13 - Why does an IOCCC entry fail to compile or or fail run?
+3.13 - Why does an IOCCC entry fail to compile and/or fail to run?
3.14 - How do I compile and install tcpserver for entries that require it?
3.15 - How do I compile and install netpbm for entries that require it?
3.16 - How do I compile and install libjpeg-turbo for entries that require it?
3.17 - How do I compile and install ImageMagick for entries that require it?
3.18 - How do I compile and install OpenGL for entries that require it?
3.19 - What kind of make(1) compatibility does the IOCCC support and will it support other kinds?
+3.20 - How do I download individual entries or entries of a given year?
@@ -1629,7 +1630,7 @@ reason it’s not you might have to do something else including just piping it t
just grep intr or whatever.
-
FAQ 3.13: Why does an IOCCC entry fail to compile or or fail run?
+FAQ 3.13: Why does an IOCCC entry fail to compile and/or fail to run?
What may have worked years ago may not work well or work at all today.
@@ -1852,6 +1853,72 @@ to the top level directory of the winner repo you can do:
it like:
gmake MAKE=gmake
though of course for both you may specify a rule or rules to run.
+
+
+
3.20 - How do I download individual entries or entries of a given year?
+
+
+Although one can clone the entire winner
+repo to get the entire web site and all
+entries, we also provide a way to download individual entries as well as a
+way to download a year’s winning entries.
+Please note that some of the links in the html files will not work! This is
+because you are not downloading the full website. If you want to view the entry
+with links intact you should clone the repo or view it on the official IOCCC
+web site instead.
+Individual winning entry tarballs
+The individual entry tarballs are named in the form of
+YYYY/winner/YYYY_winner.tar.bz2 (e.g. 1984/mullender/1984_mullender.tar.bz2)
+and will have the following files:
+
+ioccc.css - stylesheet for the html files
+var.mk - the top level Makefile included by all the other Makefiles that holds variables used by the Makefiles
+YYYY/winner/.path - directory path from top level directory
+YYYY/winner/.entry.json - entry summary and manifest in JSON
+YYYY/winner/.gitignore - list of files that should not be committed under git
+
+plus the winning entry files like source code, the Makefile, supplementary data
+provided by the author and any other file found in the winning entry, found in
+YYYY/winner.
+If you downloaded 1984/mullender/1984_mullender.tar.bz2, for instance, you might
+then do:
+ cd 1984/mullender
+ make everything
+ ./mullender.alt
+to compile and run all versions and then run the alternate version (if you have
+a PDP-11 or VAX-11 you would be able to run the original version).
+If you want to view the index.html file you can point your browser to the
+index.html file of the winning entry (e.g. 1984/mullender/index.html) with the
+caveats noted above.
+Year based tarballs
+The year based tarballs, which are under each year’s directory and are named in the form
+of YYYY/YYYY.tar.bz2, have, along with each entry’s directory and their
+respective files (as if you downloaded each entry tarball of the year
+individually as described above), the following files:
+
+.filelist - list of files in the year that are not part of a winning entry of the year, including the YYYY.tar.bz2 tarball
+index.html - the YYYY/index.html file rendered from the YYYY/README.md file
+Makefile - Makefile for the year to compile etc. all entries of the year
+README.md - the source of the YYYY/index.html file
+rules.txt - rules of the year’s contest
+.year - text file that has a list of the winning entries’ directories of the year
+
+Additionally, some will have extra files like:
+
+.gitignore - list of files that should not be committed under git
+guidelines.txt - the guidelines of the year
+iocccsize.c - iocccsize tool of the year
+iocccsize.mk - Makefile to compile the iocccsize tool of the year
+iocccsize-test.sh - test suite for the iocccsize tool
+
+.. and perhaps some others we have missed as well.
+If you extract a year’s tarball you can cd YYYY (e.g. cd 1984) and then run
+make everything to compile the entries and alt code of every entry), as if you
+switched to each entry’s directory and ran make everything in each one.
+If you want to view the index.html files you can point your browser to the
+index.html file of the year (e.g. 1984/index.html) or an entry’s individual
+index.html file or other html file (e.g. 1984/mullender/index.html) again with
+the caveats noted earlier.
Section 4: Changes made to IOCCC entries
diff --git a/faq.md b/faq.md
index 22f5988c2..fa8fec0a6 100644
--- a/faq.md
+++ b/faq.md
@@ -42,13 +42,14 @@
- [3.10 - How do I compile and use an IOCCC entry that requires sound?](#faq3_10)
- [3.11 - Why do Makefiles use -Weverything with clang?](#faq3_11)
- [3.12 - How do I find out how to send interrupt/EOF etc. for entries that require it?](#faq3_12)
-- [3.13 - Why does an IOCCC entry fail to compile or or fail run?](#faq3_13)
+- [3.13 - Why does an IOCCC entry fail to compile and/or fail to run?](#faq3_13)
- [3.14 - How do I compile and install tcpserver for entries that require it?](#faq3_14)
- [3.15 - How do I compile and install netpbm for entries that require it?](#faq3_15)
- [3.16 - How do I compile and install libjpeg-turbo for entries that require it?](#faq3_16)
- [3.17 - How do I compile and install ImageMagick for entries that require it?](#faq3_17)
- [3.18 - How do I compile and install OpenGL for entries that require it?](#faq3_18)
- [3.19 - What kind of make(1) compatibility does the IOCCC support and will it support other kinds?](#faq3_19)
+- [3.20 - How do I download individual entries or entries of a given year?](#faq3_20)
## Section 4 - [Changes made to IOCCC entries](#faq4)
@@ -1768,7 +1769,7 @@ just `grep intr` or whatever.
-### FAQ 3.13: Why does an IOCCC entry fail to compile or or fail run?
+### FAQ 3.13: Why does an IOCCC entry fail to compile and/or fail to run?
@@ -2187,6 +2188,91 @@ it like:
though of course for both you may specify a rule or rules to run.
+
+
+### 3.20 - How do I download individual entries or entries of a given year?
+
+
+
+Although one can clone the entire [winner
+repo](https://github.com/ioccc-src/winner) to get the entire web site and all
+entries, we also provide a way to download individual entries as well as a
+way to download a year's winning entries.
+
+Please note that some of the links in the html files will not work! This is
+because you are not downloading the full website. If you want to view the entry
+with links intact you should clone the repo or view it on the [official IOCCC
+web site](https://www.ioccc.org) instead.
+
+
+#### Individual winning entry tarballs
+
+The individual entry tarballs are named in the form of
+`YYYY/winner/YYYY_winner.tar.bz2` (e.g. `1984/mullender/1984_mullender.tar.bz2`)
+and will have the following files:
+
+- `ioccc.css` - stylesheet for the html files
+- `var.mk` - the top level Makefile included by all the other Makefiles that holds variables used by the Makefiles
+- `YYYY/winner/.path` - directory path from top level directory
+- `YYYY/winner/.entry.json` - entry summary and manifest in JSON
+- `YYYY/winner/.gitignore` - list of files that should not be committed under git
+
+plus the winning entry files like source code, the Makefile, supplementary data
+provided by the author and any other file found in the winning entry, found in
+`YYYY/winner`.
+
+If you downloaded `1984/mullender/1984_mullender.tar.bz2`, for instance, you might
+then do:
+
+```sh
+ cd 1984/mullender
+ make everything
+ ./mullender.alt
+```
+
+to compile and run all versions and then run the alternate version (if you have
+a PDP-11 or VAX-11 you would be able to run the original version).
+
+If you want to view the index.html file you can point your browser to the
+index.html file of the winning entry (e.g. `1984/mullender/index.html`) with the
+caveats noted above.
+
+
+#### Year based tarballs
+
+The year based tarballs, which are under each year's directory and are named in the form
+of `YYYY/YYYY.tar.bz2`, have, along with each entry's directory and their
+respective files (as if you downloaded each entry tarball of the year
+individually as described above), the following files:
+
+- `.filelist` - list of files in the year that are not part of a winning entry of the year, including the `YYYY.tar.bz2` tarball
+- `index.html` - the `YYYY/index.html` file rendered from the `YYYY/README.md` file
+- `Makefile` - Makefile for the year to compile etc. all entries of the year
+- `README.md` - the source of the `YYYY/index.html` file
+- `rules.txt` - rules of the year's contest
+- `.year` - text file that has a list of the winning entries' directories of the year
+
+
+Additionally, some will have extra files like:
+
+- `.gitignore` - list of files that should not be committed under git
+- `guidelines.txt` - the guidelines of the year
+- `iocccsize.c` - `iocccsize` tool of the year
+- `iocccsize.mk` - Makefile to compile the `iocccsize` tool of the year
+- `iocccsize-test.sh` - test suite for the `iocccsize` tool
+
+.. and perhaps some others we have missed as well.
+
+If you extract a year's tarball you can `cd YYYY` (e.g. `cd 1984`) and then run
+`make everything` to compile the entries and alt code of every entry), as if you
+switched to each entry's directory and ran `make everything` in each one.
+
+If you want to view the index.html files you can point your browser to the
+index.html file of the year (e.g. `1984/index.html`) or an entry's individual
+index.html file or other html file (e.g. `1984/mullender/index.html`) again with
+the caveats noted earlier.
+
+
## Section 4: Changes made to IOCCC entries
From 20b9824ede714dd14970ddc6b45bf46c4aa7fa64 Mon Sep 17 00:00:00 2001
From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com>
Date: Tue, 4 Jun 2024 09:08:48 -0700
Subject: [PATCH 2/2] Improvement and fixes to FAQ 3.20
---
faq.html | 41 ++++++++++++++++++++++++++++-------------
faq.md | 50 +++++++++++++++++++++++++++++++++++++-------------
2 files changed, 65 insertions(+), 26 deletions(-)
diff --git a/faq.html b/faq.html
index a3674503d..315616abb 100644
--- a/faq.html
+++ b/faq.html
@@ -413,7 +413,7 @@
- 3.0 - What Makefile rules are available to build or clean up IOCCC entries?
-- 3.1 - Why doesn’t this IOCCC entry compile?
+- 3.1 - Why doesn’t an IOCCC entry compile?
- 3.2 - Why does a IOCCC entry fail on my 64-bit system?
- 3.3 - Why do some IOCCC entries fail to compile under macOS?
- 3.4 - Why does clang or gcc fail to compile an IOCCC entry?
@@ -1185,7 +1185,7 @@ compilers might do different things, have different defects or other issues.
Note that the Makefiles check the CC variable by substrings so that if you
were to do something like make CC=gcc=mp-12 it would register as gcc.
-
FAQ 3.1: Why doesn’t this IOCCC entry compile?
+FAQ 3.1: Why doesn’t an IOCCC entry compile?
Some entries that won the IOCCC, particularly entries from long ago, no longer compile on more
modern systems because the C language has evolved (i.e. the modern C compilers
@@ -1205,6 +1205,9 @@ request for more information about pull requests.
that works for modern systems but one can view the original code in the
.orig.c files (sometimes the original code is also in the directory as a
dirname.alt.c or prog.alt.c).
+It might also be worth noting that almost all entries, have been
+fixed so that they can compile in modern systems though just because an entry
+compiles does not mean it will run on your specific system.
FAQ 3.2: Why does a IOCCC entry fail on my 64-bit system?
@@ -1214,7 +1217,7 @@ version macOS no longer supports 32-bit binaries. If the entry acts on a certain
type of binary, say ELF, then that will also be a problem depending on the
entry. For example 2001/anonymous requires 32-bit
ELF binaries.
-There are numerous example entries that require 32-bit binaries. We have tried
+
There are a few example entries that require 32-bit binaries. We have tried
to note these in both the respective Makefiles and index.html files but it is
possible that some were missed. These entries are very likely in the
bugs.html file and we welcome any help in making an alternate version
@@ -1860,8 +1863,8 @@ it like:
Although one can clone the entire winner
repo to get the entire web site and all
-entries, we also provide a way to download individual entries as well as a
-way to download a year’s winning entries.
+entries, we also provide, as a convenience, a way to download individual entries
+as well as a way to download a year’s winning entries.
Please note that some of the links in the html files will not work! This is
because you are not downloading the full website. If you want to view the entry
with links intact you should clone the repo or view it on the official IOCCC
@@ -1885,10 +1888,12 @@ then do:
cd 1984/mullender
make everything
./mullender.alt
-to compile and run all versions and then run the alternate version (if you have
-a PDP-11 or VAX-11 you would be able to run the original version).
-If you want to view the index.html file you can point your browser to the
-index.html file of the winning entry (e.g. 1984/mullender/index.html) with the
+
to compile all versions and then run the alternate version (if you have
+a PDP-11 or VAX-11 you would be able to run the original version). For more help
+on compiling entries, see also 3.0 - What Makefile rules are available to
+build or clean up IOCCC entries?.
+If you want to view the index.html file you can point your browser to the
+index.html file of the winning entry (e.g. 1984/mullender/index.html) with the
caveats noted above.
Year based tarballs
The year based tarballs, which are under each year’s directory and are named in the form
@@ -1915,10 +1920,20 @@ individually as described above), the following files:
If you extract a year’s tarball you can cd YYYY (e.g. cd 1984) and then run
make everything to compile the entries and alt code of every entry), as if you
switched to each entry’s directory and ran make everything in each one.
-If you want to view the index.html files you can point your browser to the
-index.html file of the year (e.g. 1984/index.html) or an entry’s individual
-index.html file or other html file (e.g. 1984/mullender/index.html) again with
-the caveats noted earlier.
+If you download the 1984 tarball, i.e. 1984/1984.tar.bz2, then you might
+extract it and then switch to the directory and compile everything of each
+entry:
+ cd 1984
+ make everything
+For more help on compiling entries, see also 3.0 - What Makefile rules are
+available to build or clean up IOCCC entries?.
+Of course in this case you can also switch to individual entries and look at the
+index.html file (or any other file in the entry) and try out the entries that
+interest you, as if you downloaded that entry’s individual tarball.
+If you want to view the index.html files of that tarball, for instance the
+year’s index.html file and then 1984/mullender/index.html you could point your
+browser to 1984/index.html, scroll down to Winning Entries of 1984 - The 1st IOCCC and click on the link 1984/mullender which will take you to the
+index.html file. Of course the caveats listed above still will apply.
Section 4: Changes made to IOCCC entries
diff --git a/faq.md b/faq.md
index fa8fec0a6..8460d6671 100644
--- a/faq.md
+++ b/faq.md
@@ -30,7 +30,7 @@
## Section 3 - [Compiling and running IOCCC entries](#faq3)
- [3.0 - What Makefile rules are available to build or clean up IOCCC entries?](#faq3_0)
-- [3.1 - Why doesn't this IOCCC entry compile?](#faq3_1)
+- [3.1 - Why doesn't an IOCCC entry compile?](#faq3_1)
- [3.2 - Why does a IOCCC entry fail on my 64-bit system?](#faq3_2)
- [3.3 - Why do some IOCCC entries fail to compile under macOS?](#faq3_3)
- [3.4 - Why does clang or gcc fail to compile an IOCCC entry?](#faq3_4)
@@ -1052,7 +1052,7 @@ were to do something like `make CC=gcc=mp-12` it would register as `gcc`.
-### FAQ 3.1: Why doesn't this IOCCC entry compile?
+### FAQ 3.1: Why doesn't an IOCCC entry compile?
Some entries that won the IOCCC, particularly entries from long ago, no longer compile on more
@@ -1078,6 +1078,10 @@ that works for modern systems but one can view the original code in the
`.orig.c` files (sometimes the original code is also in the directory as a
`dirname.alt.c` or `prog.alt.c`).
+It might also be worth noting that almost all entries, have been
+fixed so that they can compile in modern systems though just because an entry
+compiles does not mean it will run on your specific system.
+
### FAQ 3.2: Why does a IOCCC entry fail on my 64-bit system?
@@ -1090,7 +1094,7 @@ type of binary, say ELF, then that will also be a problem depending on the
entry. For example [2001/anonymous](2001/anonymous/index.html) requires 32-bit
ELF binaries.
-There are numerous example entries that require 32-bit binaries. We have tried
+There are a few example entries that require 32-bit binaries. We have tried
to note these in both the respective Makefiles and index.html files but it is
possible that some were missed. These entries are very likely in the
[bugs.html](bugs.html) file and we welcome any help in making an alternate version
@@ -2196,8 +2200,8 @@ though of course for both you may specify a rule or rules to run.
Although one can clone the entire [winner
repo](https://github.com/ioccc-src/winner) to get the entire web site and all
-entries, we also provide a way to download individual entries as well as a
-way to download a year's winning entries.
+entries, we also provide, as a convenience, a way to download individual entries
+as well as a way to download a year's winning entries.
Please note that some of the links in the html files will not work! This is
because you are not downloading the full website. If you want to view the entry
@@ -2230,11 +2234,13 @@ then do:
./mullender.alt
```
-to compile and run all versions and then run the alternate version (if you have
-a PDP-11 or VAX-11 you would be able to run the original version).
+to compile all versions and then run the alternate version (if you have
+a PDP-11 or VAX-11 you would be able to run the original version). For more help
+on compiling entries, see also [3.0 - What Makefile rules are available to
+build or clean up IOCCC entries?](#faq3_0).
-If you want to view the index.html file you can point your browser to the
-index.html file of the winning entry (e.g. `1984/mullender/index.html`) with the
+If you want to view the `index.html` file you can point your browser to the
+`index.html` file of the winning entry (e.g. `1984/mullender/index.html`) with the
caveats noted above.
@@ -2267,10 +2273,28 @@ If you extract a year's tarball you can `cd YYYY` (e.g. `cd 1984`) and then run
`make everything` to compile the entries and alt code of every entry), as if you
switched to each entry's directory and ran `make everything` in each one.
-If you want to view the index.html files you can point your browser to the
-index.html file of the year (e.g. `1984/index.html`) or an entry's individual
-index.html file or other html file (e.g. `1984/mullender/index.html`) again with
-the caveats noted earlier.
+If you download the 1984 tarball, i.e. `1984/1984.tar.bz2`, then you might
+extract it and then switch to the directory and compile everything of each
+entry:
+
+```sh
+ cd 1984
+ make everything
+```
+
+For more help on compiling entries, see also [3.0 - What Makefile rules are
+available to build or clean up IOCCC entries?](#faq3_0).
+
+Of course in this case you can also switch to individual entries and look at the
+`index.html` file (or any other file in the entry) and try out the entries that
+interest you, as if you downloaded that entry's individual tarball.
+
+
+If you want to view the `index.html` files of that tarball, for instance the
+year's `index.html` file and then `1984/mullender/index.html` you could point your
+browser to `1984/index.html`, scroll down to `Winning Entries of 1984 - The 1st
+IOCCC` and click on the link `1984/mullender` which will take you to the
+`index.html` file. Of course the caveats listed above still will apply.