Eliminated the need for the `.tar.tstamp` files. It became intractable
to produce a tarball that was byte-for-byte identical to a tarball
on another platform. We further simplified the process used by the
`bin/tar-year.sh` tool to no longer need `.tar.tstamp` files.
Removed `.tar.tstamp` files and updated the manifest.
Sorry (tm Canada 🇨🇦) for the "flip-flop".
The `bin/tar-year.sh` tool now uses a similar algorithm to how
`bin/tar-entry.sh` determines if a compressed tarball needs to be
rebuilt.
Changed `bin/tar-entry.sh` VERSION from "1.3.3 2024-03-27"
to "1.3.4 2024-03-27".
Changed `bin/tar-year.sh` VERSION from "1.1.3 2024-03-27"
to "1.2 2024-03-27".
Performed `make www` and `make form_entry_tarball`
and `make form_year_tarball` to complete the above
actions and test these changes under macOS.
TODO: Test the `bin/tar-year.sh` tool under Linux.
TODO: Address issues with building the top level `ioccc.tar.bz2`
and the `bin/tar-all.sh` tool and the `make form_all_tarball` rule.
NOTE: The `bin/tar-all.sh` tool and the `make form_all_tarball` rule
and the `make tar` should **NOT** be used at this time.
Use of `sort(1)` with -u appears to be problematic.
As an example, using `sort -d -u` for both "c11" and "c++11"
will produce only "c11". This where we do not strictly
need to do so, we do not use -u with `sort(1)`.
With the above, fixed `bin/chk-entry.sh -v 3 2018/burton2`
under Linux.
Changed `bin/chk-entry.sh` VERSION from "1.1.4 2024-03-26"
to "1.1.5 2024-03-27".
Changed `bin/gen-sitemap.sh` VERSION from "1.3.3 2024-03-26"
to "1.3.4 2024-03-27".
Changed `bin/output-index-inventory.sh` VERSION from "1.2.3 2024-03-26"
to "1.2.4 2024-03-27".
Changed `bin/tar-all.sh` VERSION from "1.1.2 2024-03-26"
to "1.1.3 2024-03-27".
Changed `bin/tar-year.sh` VERSION from "1.1.2 2024-03-26"
to "1.1.3 2024-03-27".
Ran `make www` to test the above. The `index.html` for the
`2018/burton2` entry was updated.
Ran `make form_entry_tarball` to test the above. Some recently
updated entries plus the `2018/burton2` entry was updated.
TODO: Test the results under Linux.
TODO: Update `bin/tar-year.sh`. Update year level compressed tarballs.
TODO: Update `bin/tar-all.sh`. Update top level compressed tarball.
TODO: Write `bin/untar-year.sh` and `bin/untar-all.sh`.
We export shell variables where needed.
We print debug messages of shell variables in the order they were
exported or declared, except for the USAGE shell variable, for those
shell variables that were exported or declared prior to the set of
debug messages of shell variables.
Changed `bin/chk-entry.sh` VERSION from "1.1.3 2024-03-18"
to "1.1.4 2024-03-26".
Changed `bin/gen-authors.sh` VERSION from "1.3.1 2024-03-18"
to "1.3.2 2024-03-26".
Changed `bin/gen-location.sh` VERSION from "1.1.1 2024-03-18"
to "1.1.2 2024-03-26".
Changed `bin/gen-other-html.sh` VERSION from "1.0.1 2024-03-08"
to "1.0.2 2024-03-26".
Changed `bin/gen-sitemap.sh` VERSION from "1.3.2 2024-03-18"
to "1.3.3 2024-03-26".
Changed `bin/gen-status.sh` VERSION from "1.1.1 2024-03-18"
to "1.1.2 2024-03-26".
Changed `bin/gen-years.sh` VERSION from "1.0.2 2024-03-13"
to "1.0.3 2024-03-26".
Changed `bin/md2html.sh` VERSION from "1.1.1 2024-03-09"
to "1.1.2 2024-03-26".
Changed `bin/output-index-author.sh` VERSION from "1.5.1 2024-03-19"
to "1.5.2 2024-03-26".
Changed `bin/output-index-inventory.sh` VERSION from "1.2.2 2024-03-19"
to "1.2.3 2024-03-26".
Changed `bin/output-year-index.sh` VERSION from "1.1.1 2024-03-19"
to "1.1.2 2024-03-26".
Changed `bin/pandoc-wrapper.sh` VERSION from "1.5.2 2024-03-19"
to "1.5.3 2024-03-26".
Changed `bin/quick-readme2index.sh` VERSION from "1.1.2 2024-03-08"
to "1.1.3 2024-03-26".
Changed `bin/readme2index.sh` VERSION from "1.2.1 2024-02-23"
to "1.2.2 2024-02-26".
Changed `bin/sort.gitignore.sh` VERSION from "1.1.2 2024-03-18"
to "1.1.3 2024-03-26".
Changed `bin/status2html.sh` VERSION from "1.1.1 2024-03-19"
to "1.1.2 2024-03-26".
Changed `bin/subst.default.sh` VERSION from "1.2.1 2024-02-23"
to "1.2.2 2024-02-26".
Changed `bin/subst.entry-index.sh` VERSION from "1.3.1 2024-03-19"
to "1.3.2 2024-03-26".
Changed `bin/tar-all.sh` VERSION from "1.1.1 2024-03-18"
to "1.1.2 2024-03-26".
Changed `bin/tar-entry.sh` VERSION from "1.3.1 2024-03-25"
to "1.3.2 2024-03-26".
Changed `bin/tar-year.sh` VERSION from "1.1.1 2024-03-18"
to "1.1.2 2024-03-26".
Changed `bin/all-years.sh` VERSION from "1.0.1 2024-02-23"
to "1.0.2 2024-02-26".
Changed `bin/gen-top-html.sh` VERSION from "1.2.1 2024-03-08"
to "1.2.2 2024-03-26".
Changed `bin/gen-year-index.sh` VERSION from "1.0.3 2024-03-09"
to "1.0.4 2024-03-26".
Changed `bin/subst.year-index.sh` VERSION from "1.1.1 2024-03-19"
to "1.1.2 2024-03-26".
Changed `bin/untar-entry.sh` VERSION from "1.0 2024-03-25"
to "1.0.1 2024-03-26".
The files 2020/ferguson1/chocolate-cake.html and
2020/ferguson2/recode.html have been regenerated for the updates to the
markdown files as per commit fc42571dc9.
In 2020/ferguson1 the chocolate-cake.md file has been updated with a
suggestion that those who try it let me know how they like it and
sharing pictures (on mastodon).
In 2020/ferguson2 all chocolate cake related files have been removed. A
new file encrypted.html has been added with a new task one might wish to
try since the cake recipe is in 2020/ferguson1.
The make clobber rule in 2020/ferguson2 removes decrypted.html (the
recode.md file now shows how one might decrypt the encrypted.html in the
file decrypted.html but this file should not be committed and is now in,
along with a few others, .gitignore).
The html files have NOT been updated as manifest issues have to be
resolved first.
Fixed when the `.tar.tstamp` file is updated
by `bin/tar-entry.sh`.
Changed `bin/tar-entry.sh` VERSION from "1.3 2024-03-22"
to "1.3.1 2024-03-25".
Performed `make form_entry_tarball` to complete the test of the above.
TODO: Test the results under Linux.
TODO: Update `bin/tar-year.sh`. Update year level compressed tarballs.
TODO: Update `bin/tar-all.sh`. Update top level compressed tarball.
TODO: Write `bin/untar-year.sh` and `bin/untar-all.sh`.
We rewrote the `bin/tar-entry.sh` algorithm so that we do NOT have
to require Linux to produce a compressed tarball that is byte-for-byte
identical to a macOS compressed tarball for the same entry.
Changed `bin/tar-entry.sh` VERSION from "1.2 2024-03-22"
to "1.3 2024-03-25".
Added `bin/untar-entry.sh` to untar an entry from the
compressed tarball.
Added `make untar_entry_tarball` to untar all entry files.
Added `make untar_year_tarball` and `make untar_all_tarball`
stub Makefile rules. The core it referred to does not yet exist.
Updated IOCCC manifest. Updated `.entry.json` for `2004/sds`.
Performed `make www` to update web pages. In most cases the
entry `index.html` added an inventory link for the new `.tar.tstamp` file.
Performed `form_entry_tarball` to complete the test of the above.
TODO: Test the results under Linux.
TODO: Update `bin/tar-year.sh`. Update year level compressed tarballs.
TODO: Update `bin/tar-all.sh`. Update top level compressed tarball.
TODO: Write `bin/untar-year.sh` and `bin/untar-all.sh`.
Commit cbc022d864 which edited
2004/sds/README.md broke the functionality of one of the features of the
code so the previous revision of README.md was copied to README_sds.md
and the script now uses that file.
This does mean the manifest is out of date and that will have to be
fixed another time but now the script works okay. Without this one of
the files to be compiled does not compile at all and it seems better
this way than to tamper with the code especially given what the entry
does and because it would take more time to fix anyway.
Updated `bin/tar-entry.sh` to build entry compressed tarballs using
`.tar.tstamp` timestamps.
Updated `bin/tar-entry.sh` VERSION from "1.1.1 2024-03-18"
to "1.2 2024-03-22".
Performed `make form_entry_tarball` to perform the above and test
it under macOS.
TODO: Test under RHEL 9.
These `.tar.tstamp` files will be used, along with the entry
`.tar.tstamp` files, to form compressed tarballs that
can be reproduced exactly the same way, down to the byte,
under both macOS and Linux.
Stay tuned ... :-)
We added a `.tar.tstamp` file to all entries which will
hold the timestamp for use when forming entry compressed tarballs.
These entry `.tar.tstamp` files will be part of a fix to
build compressed tarballs that both macOS and Linux agree on.
We wanted to push out this update now so that it won't
conflict future changes to the IOCCC manifest.
The problem it had is that it was reverted back to trying to compile the
very unsafe file name without deleting it after the ${CC} line. Thus the ${RM}
part was moved back to the end of the rule. I added the file (or a glob
that will match the file) to .gitignore a long time ago possibly when I
added the alt code.
The thanks file was fixed to account for the fact that the Makefile no
longer automatically builds the alt version if the code fails to
compile.
NOTE: The `make update` action should only be done by IOCCC judges.
We performed a `make update` as a test.
As it was sometimes said over the radio in the past: ""This is only a test." :-)
Under macOS, this test was successful!
The doesn't work with some platforms is wrong. It's the perl version and
the author noted this.
There is however a bug that was noted in the bugs file that was not in
the README.md file. This has been moved in the bugs.md file and
README.md file to above the INABIAF part.
The inc/footer.default.html now has a common Copyright and CC BY-SA
4.0 License section for all generated HTML files.
All markdown files have a similar Copyright and CC
at the bottom in the form of an HTML comment.
By improving how padding is applied to the right column
and footer, the rendered HTML looks better.
There are still issues, but at least it does not
_suck_ as bad. :-)
Remove markdown where test is both bold and code.
This double formatting produces undesirable effects in HTML.
One should make something **bold** or something `code`.
but not both. The stacking of these two options produces bad
effects when rendered.
Helped clarify how some tools are indirectly invoked by improving
some of the leading comments in selected bin tools.
Changed `bin/output-index-author.sh` VERSION from "1.5 2024-03-04"
to "1.5.1 2024-03-19".
Changed `bin/output-index-inventory.sh` VERSION from "1.2.1 2024-03-18"
to "1.2.2 2024-03-19".
Changed `bin/output-year-index.sh` VERSION from "1.1 2024-02-27"
to "1.1.1 2024-03-19".
Changed `bin/pandoc-wrapper.sh` VERSION from "1.5.1 2024-03-18"
to "1.5.2 2024-03-19".
Changed `bin/status2html.sh` VERSION from "1.1 2024-03-10"
to "1.1.1 2024-03-19".
Changed `bin/subst.entry-index.sh` VERSION from "1.3 2024-03-02"
to "1.3.1 2024-03-19".
Changed `bin/subst.year-index.sh` VERSION from "1.1 2024-03-02"
to "1.1.1 2024-03-19".
Ran `make www` to check tools and `1984/decot/index.html` was updated.
In particular although main() has to have two args don't do (void)argc
as that was not in the code.
To make it more consistent with other added functions (that I had to do
in other entries for instance and for the same reason) I made the
function poke() (r short of poker) pain() instead.
The thanks file was modified for this entry too, improving it a bit
(hopefully making certain points clearer too).
This improves the names of links and adds some new links as well. A
point of interest that could easily be missed with a diff is that the
link of Yusuke Endoh was changed from his GitHub account to his
authors.html section. Also, since the first successful pull request to
the winner repo was acknowledged by author (Yusuke Endoh) I added the
author of the first successful pull request to the temp-test-ioccc repo
(as the commit was cited) (and that indeed would be me). It might be
that keeping the GitHub accounts would be better and I can certainly
change them back but it seemed nicer to acknowledge the author entries
as that's the real honour of being a winner.
There were other things besides the above but they were all along the
same lines.
The wording in the comments and the error message (in particular for
macOS) should now be clearer. Now in both places it shows how to install
bash in Homebrew. In commands I surrounded them like what was already
used, with " rather than 's, to make it consistent. There were other
cosmetic consistency changes as well.
Except in paths 'homebrew' was changed to 'Homebrew'.
In bin/output-year-index.sh there was a typo fix: it said to use it one
typically would do:
-a bin/output-year-index.sh
which obviously is not correct.
The `make quick_www` and `make www` rules no longer
run `make gen_status` and `make gen_sitemap`.
Now neither `make quick_www` nor `make www` will
perform actions that depend on modification dates.
Added `make update` to perform all rules needed
to update the web site including `make www`,
`make tar`, `make gen_status` and `make gen_sitemap`.
In `bin/gen-status.sh`, the method to determine the modification
date, is now consistent with how `bin/gen-sitemap.sh` does it:
look for various forms of `stat(1)` or `ls(1)`.
Changed `bin/gen-status.sh` VERSION from "1.1 2024-03-10"
to "1.1.1 2024-03-18".
In `bin/gen-sitemap.sh` when the MODTIME_METHOD is "ls_D",
the file used via ls -D has been fixed.
Changed `bin/gen-sitemap.sh` VERSION from "1.3.1 2024-03-18"
to "1.3.2 2024-03-18".
We set LC_ALL=C when sorting in a bin tool. This was done
to make the result of using `sort(1)` consistent.
Improved how the Primary files and Secondary files are
sorted by `bin/output-index-inventory.sh` to sort
with "-u -k 1n -k 3.2d".
The above will change `index.html` files for all entries.
Changed `bin/chk-entry.sh` VERSION from "1.1.2 2024-03-17"
to "1.1.3 2024-03-18".
Changed `bin/gen-authors.sh` VERSION from "1.3 2024-03-04"
to "1.3.1 2024-03-18".
Changed `bin/gen-location.sh` VERSION from "1.1 2024-03-04"
to "1.1.1 2024-03-18".
Changed `bin/gen-sitemap.sh` VERSION from "1.3 2024-03-16"
to "1.3.1 2024-03-18".
Changed `bin/output-index-inventory.sh` VERSION from "1.2 2024-02-27"
to "1.2.1 2024-03-18".
Changed `bin/pandoc-wrapper.sh` VERSION from "1.5 2024-03-18"
to "1.5.1 2024-03-18".
Changed `bin/sort.gitignore.sh` VERSION from "1.1.1 2024-02-23"
to "1.1.2 2024-03-18".
Changed `bin/tar-all.sh` VERSION from "1.1 2024-02-27"
to "1.1.1 2024-03-18".
Changed `bin/tar-year.sh` VERSION from "1.1 2024-02-27"
to "1.1.1 2024-03-18".
Performed `make www` to update all entry `index.html` files.