From a441c47ec01d442b205b37bbe870b6740d885380 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sun, 3 Dec 2023 09:10:37 -0800 Subject: [PATCH 1/2] Format/typo check 2013/hou --- 2013/hou/README.md | 75 +++-- 2013/hou/doc/example.md | 679 ++++++++++++++++++++++++---------------- thanks-for-fixes.md | 8 +- 3 files changed, 454 insertions(+), 308 deletions(-) diff --git a/2013/hou/README.md b/2013/hou/README.md index 13c6a06e3..aacb65b27 100644 --- a/2013/hou/README.md +++ b/2013/hou/README.md @@ -51,13 +51,6 @@ of the invocations above: This program does not terminate by itself: you must kill `hou` (but not Qiming Hou :-) ) in order to end the program. -This is supposed to happen. As is written in the -[The Jargon File](http://catb.org/jargon/html/F/feature.html): - -``` -That's not a bug, that's a feature. -``` - ## Judges' remarks: @@ -69,7 +62,7 @@ program. This program will loop infinitely while progressively refining a [raytraced](https://en.wikipedia.org/wiki/Ray_tracing_(graphics)) image. -NOTE: the author refers to `a.c`, placed in a gzipped file `a.c.gz`. We do not +NOTE: the author refers to [a.c](a.c), placed in a gzipped file `a.c.gz`. We do not include it but it can be generated like: ```sh @@ -101,6 +94,7 @@ after you're satisfied with the image quality. To save time and energy for the judges, rendered images for all provided scenes are provided as attached files. + ### Features * Fully programmable: Almost every stage of the renderer is programmable with @@ -134,6 +128,7 @@ the progress every 16 samples and resumes where it's left off when restarted. Also, each scene/parameter combination gets a different saved session so you don't have to worry about conflicts. + ### Abuse of the rules * [hou.c](hou.c) uses compression to get around the size limit. The compression @@ -142,25 +137,27 @@ shows up in `grep` "size limit"). Please see the [Self-imposed restrictions](self-imposed-restrictions) section below for more details. * `hou` does not terminate (as suggested by the second line of rule 6). + ### Self-imposed restrictions -* The building process does not involve any OS tool beyond cc and make. No gzip -compression! `a.c.gz` doesn't fit in 2053 bytes, anyway. -* Neither [hou.c](hou.c) nor `a.c` (the *real* decompressed source) uses +* The building process does not involve any OS tool beyond `cc(1)` and +`make(1)`. No `gzip(1)` compression! `a.c.gz` doesn't fit in 2053 bytes, anyway. +* Neither [hou.c](hou.c) nor [a.c](a.c) (the *real* decompressed source) uses `#define` (or `cc -D`) at all. * The source code is not required at runtime. -* `a.c` does not drop optional features to reduce size. There are pure +* [a.c](a.c) does not drop optional features to reduce size. There are pure optimization code that can be dropped without affecting the converged output (only affecting the ray tracing speed / convergence rate). All files are properly `fopen()`ed with `"rb"` / `"wb"` for Windows compatibility. The PPM header has a comment line for non-standard-compliant viewers (specifically, my old HDRShop 1.0). And there is a nice text message saying "please wait...". -Despite the messy look, `a.c` and [hou.c](hou.c) compile warning-free -([hou.c](hou.c) even wastes 18 bytes on `#include` just for putchar). -`a.c` compiles mostly clean in the C99/ANSI modes of clang and gcc (with `-Wall +Despite the messy look, [a.c](a.c) and [hou.c](hou.c) compile warning-free +([hou.c](hou.c) even wastes 18 bytes on `#include` just for `putchar(3)`). +[a.c](a.c) compiles mostly clean in the C99/ANSI modes of clang and gcc (with `-Wall --pedantic`). The only warning generated is a pedantic one: `"string constant too long"`. + ### Comments and why obfuscated * Both the compression and the rendering use mathematically involved algorithms. @@ -173,35 +170,35 @@ internal states. the code, but they leave the text clear in the *result*. This entry takes it further and obfuscates the output image as well. Can you find the text in the image? Hint: look up. -* `a.c` leaves all shaders in plain text, but the plain text shader code can't +* [a.c](a.c) leaves all shaders in plain text, but the plain text shader code can't be taken for its face value; the arithmetic rules subtly diverge from our common sense. -* `a.c` is less portable than [hou.c](hou.c) itself. [hou.c](hou.c) only depends +* [a.c](a.c) is less portable than [hou.c](hou.c) itself. [hou.c](hou.c) only depends on ASCII and should run just fine on 16-bit, small memory, or -floating-point-incapable machines. `a.c`, while still reasonably portable, is -quite memory consuming, requires IEEE754-compliant double, and assumes int to be -32-bit. - -* Though technically endian-dependent, `a.c` remains portable providing that one +floating-point-incapable machines. [a.c](a.c), while still reasonably portable, is +quite memory consuming, requires IEEE754-compliant `double`, and assumes `int` to be +32-bits. +* Though technically endian-dependent, [a.c](a.c) remains portable providing that one doesn't copy saved sessions across different endianness. + ### Spoiler ``` - 3225 3225 3225 9 9 3225 3225 - 1 1 1 1 1 1 1 1 1 1\ - 4225 1226 1 1 1 1 1222 1226\ - 1 1 1 1 1 1 1 1 1\ - 4226 1 4226 8 4222 4226 1 1 + 3225 3225 3225 9 9 3225 3225 + 1 1 1 1 1 1 1 1 1 1 + 4225 1226 1 1 1 1 1222 1226 + 1 1 1 1 1 1 1 1 1 + 4226 1 4226 8 4222 4226 1 1 ``` -The program consists of a recursive-descent interpreter, a 3DDDA (3D Discrete -Differential Analysis) ray tracer, a PSSMLT (Primary Sample Space Metropolis +The program consists of a recursive-descent interpreter, a `3DDDA` (3D Discrete +Differential Analysis) ray tracer, a `PSSMLT` (Primary Sample Space Metropolis Light Transport) light path sampler, all squeezed into the size limit using a -PPM compressor (Prediction by Partial Matching, and yes, the output format is +`PPM` compressor (Prediction by Partial Matching, and yes, the output format is chosen for the pun..). -PSSMLT uses the Metropolis-Hasting algorithm to sample a 32D unit hypercube. +`PSSMLT` uses the Metropolis-Hasting algorithm to sample a 32D unit hypercube. Each point in the hypercube is interpreted as a sequence of random numbers, and is sent to a path tracer to generate a light path. The point's Metropolis-Hasting energy is then defined as the corresponding path's @@ -216,8 +213,8 @@ path stratification is added to balance the attention each pixel receives. The Metropolis-Hasting process completely avoids the tell-tale pixel sampling loop required in most other image generation methods. -The 3DDDA tracer is chosen for scalability: its performance doesn't get much -worse as scene complexity increases. Another benefit is that with the DDA code +The `3DDDA` tracer is chosen for scalability: its performance doesn't get much +worse as scene complexity increases. Another benefit is that with the `DDA` code in place one can naturally use hierarchical grids as an acceleration structure. The downside, of course, is that the setup involves quite a few divisions, which naturally turns into divisions-by-zero. Fortunately, the IEEE754 standard has a @@ -226,25 +223,25 @@ specific way to take advantage of this. The shader interpreter component is relatively straightforward, just an expression evaluator stripped to the bare minimum -- it doesn't even support numerical constants natively. A final little bit is a just-good-enough PRNG (Pseudo Random Number Generator) to replace the -low precision Windows rand() and the non-C99 Unix drand48(). An overnight +low precision Windows `rand()` and the non-C99 Unix `drand48(3)`. An overnight session would run through its short period many times, but that doesn't -necessarily map to the same set of paths in PSSMLT. After all, +necessarily map to the same set of paths in `PSSMLT`. After all, Metropolis-Hasting used an even worse PRNG in their 1953 paper. -The PPM compressor uses statically weighted fixed order contexts with an +The `PPM` compressor uses statically weighted fixed order contexts with an arithmetic encoder tweaked for [iocccsize.c](../iocccsize.c). The encoder emits octet-space pairs where each octet encodes ~6.5 bits of information and each space encodes 2 bits (thanks to the generous definition of "space" in [iocccsize.c](../iocccsize.c)). The compressor actively shuffles the variable names around until the compressed string happens -to contain enough `{}; ` to pass the final [iocccsize.c](../iocccsize.c) test. +to contain enough `{}; `s to pass the final [iocccsize.c](../iocccsize.c) test. There are a few other tweaks: -* The PPM model uses mostly whitespace characters for weights. +* The `PPM` model uses mostly whitespace characters for weights. * The encoder never emits `'"'` and `'\\'`. * The decoder uses an O(n^2) algorithm to avoid the gigabytes-sized hash table -frequently found in other PPM implementations. +frequently found in other `PPM` implementations. ## Copyright and CC BY-SA 4.0 License: diff --git a/2013/hou/doc/example.md b/2013/hou/doc/example.md index 1b4a8a62a..8e2e40eaa 100644 --- a/2013/hou/doc/example.md +++ b/2013/hou/doc/example.md @@ -1,352 +1,501 @@  # Scene format documentation -This file is encoded in UTF-8 as the BOF marker indicates. +The file must be encoded in UTF-8 as the BOF marker indicates. You can directly feed it to the renderer. If you're wondering about what the following code block does, that's why:) - @|?|?z# - @|||?z& - >?Sedvf - ??Tdeu# - >>Tdeui - ??Tdmmf - ??[[euf - ?}?Oq}e - ?}?Oqqf - v}?|q}e - v}?|qqf - ?Sj|?{f - ?Tjk?{e - FF?Oqq$ - RR?Oqq$ - ^^?Oqq$ - jj?Oqq$ - vv?|qq$ - IOBMqqe - U]BMqqe - aiBMqqe - muBMqqe - EEEJpp% - QQEJpp% - ]]EJpp% - iiEJpp% - uuEJpp% - ZnY|{|e - [mZ|\{\{# - [mZ|||f - kkdr\{\{\% - lkdr\{\{> +``` +@|?|?z# +@|||?z& +>?Sedvf +??Tdeu# +>>Tdeui +??Tdmmf +??[[euf +?}?Oq}e +?}?Oqqf +v}?|q}e +v}?|qqf +?Sj|?{f +?Tjk?{e +FF?Oqq$ +RR?Oqq$ +^^?Oqq$ +jj?Oqq$ +vv?|qq$ +IOBMqqe +U]BMqqe +aiBMqqe +muBMqqe +EEEJpp% +QQEJpp% +]]EJpp% +iiEJpp% +uuEJpp% +ZnY|{|e +[mZ|\{\{# +[mZ|||f +kkdr\{\{\% +lkdr\{\{> +``` ## Basic structure -A scene file begins with arbitrary binary data, followed by several shader functions. +A scene file begins with arbitrary binary data, followed by several shader +functions. -Shader functions are declared using a one-character name followed by a ']' character. There are some special function names, which will be explained below. +Shader functions are declared using a one-character name followed by a `]` +character. There are some special function names, which will be explained below. + +The language used to write shader functions is very simple. Basically, you write +a sequence of assignment statements like this: + +``` +A=A+D +B=B+E +``` + +Namely, you write a one-character variable name, an equal sign (`=`), followed +by an expression (made of operators and one-character variable names, of +course). -The language used to write shader functions is very simple. Basically, you write a sequence of assignment statements like this: - A=A+D - B=B+E -Namely, you write a one-character variable name, an equal sign '=', followed by an expression (made of operators and one-character variable names, of course). ## Expressions The shader language supports seven operators, listed highest priority first: - */+-<#: -`*/+-<` mean what they mean in C, but the priority part is a bit different. Basically, `*` has higher priority than `/`, so `A/4*4` actually computes `A/(4*4)`. And you can't write `(A/4)*4` -- brackets are not supported. As an advice, keep your expressions simple :) If you really needs to write something like C=(A/4)*4, write instead: - B=A/4+ - C=B*4 +``` +*/+-<#: +``` -The # operator acts somewhat like the C ?:. It returns one of its two operands based on, what else, the value of variable #. When # is true, # returns its second operand. +`*/+-<` each mean what they mean in C, but the priority part is a bit different. +Basically, `*` has higher priority than `/`, so `A/4*4` actually computes +`A/(4*4)`. And you can't write `(A/4)*4` -- brackets are not supported. As an +advice, keep your expressions simple :) If you really needs to write something +like `C=(A/4)*4`, write instead: -The : operator calls built-in functions. The first operand is the function id and the second is the parameter. Here is a list of functions: - 0:x = the x-th byte of the scene file - 1:x = sin(x*PI) - 2:x = atan2(x,#)/PI - 3:x = sqrt(max(x,0)) - 4:x = floor(x) - 5:x = the next number in the (allegedly random) number sequence, can't be called in volume shaders - 6:x = value of the variable (char)(120+x) - 7:x = write #'s value to the variable (char)(120+x) +``` +B=A/4+ +C=B*4 +``` -Contrary to popular belief, the language itself doesn't support numerical constants. Any character sitting between operators is a variable. When you see 1/2, it's in fact dividing the variable 1's value by the variable 2's value. For everyone's convenience, though, in the beginning every variable is initialized to its ASCII code minus 48. As long as you don't write something like 3=1+1, you can use single digit numbers as, well, single digit numbers. If you need something like 1920 or 0.73, you need to compute it yourself. And yes, all variables store floating point values. +The `#` operator acts somewhat like the C `?:`. It returns one of its two +operands based on, what else, the value of variable `#`. When `#` is true, `#` +returns its second operand. -If a character appears as the first character of any argv, it goes to zero. This includes the scene filename. If you name your scene '1.scene', well, good luck with 1=0! +The `:` operator calls built-in functions. The first operand is the function id and the second is the parameter. Here is a list of functions: -You can terminate a statement using any character that isn't an operator, be it \n or ;. But you must put in one and only one character. Put in two (e.g. the Windows \r\n), and it terminates your function. Also, the first statement must begin immediately after ']'. +``` +0:x = the x-th byte of the scene file +1:x = sin(x*PI) +2:x = atan2(x,#)/PI +3:x = sqrt(max(x,0)) +4:x = floor(x) +5:x = the next number in the (allegedly random) number sequence, can't be called in volume shaders +6:x = value of the variable (char)(120+x) +7:x = write #'s value to the variable (char)(120+x) +``` -When a function terminates, the interpreter calls the next function specified by variable R. If you want to call function 'n', just write somewhere: - R=n -providing you have left n at its initial value. If you want to actually return to the renderer, put in R=0. +Contrary to popular belief, the language itself doesn't support numerical +constants. Any character sitting between operators is a variable. When you see +1/2, it's in fact dividing the variable 1's value by the variable 2's value. For +everyone's convenience, though, in the beginning every variable is initialized +to its ASCII code minus 48. As long as you don't write something like `3=1+1`, +you can use single digit numbers as, well, single digit numbers. If you need +something like `1920` or `0.73`, you need to compute it yourself. And yes, all +variables store floating point values. + +If a character appears as the first character of any `argv`, it goes to zero. +This includes the scene filename. If you name your scene `1.scene`, well, good +luck with `1=0`! + +You can terminate a statement using any character that isn't an operator, be it +`\n` or `;`. But you must put in one and only one character. Put in two (e.g. +the Windows `\r\n`), and it terminates your function. Also, the first statement +must begin immediately after `]`. + +When a function terminates, the interpreter calls the next function specified by +variable `R`. If you want to call function `n`, just write somewhere: + +``` +R=n +``` + +providing you have left `n` at its initial value. If you want to actually return +to the renderer, put in `R=0`. + +As you may have noticed, you can put in all kinds of stuff between functions, +like this comment. -As you may have noticed, you can put in all kinds of stuff between functions, like this comment. ## How the ____ do I render an image with shaders? -Basically, you define a geometry using volume shaders, define a camera using a camera shader, and define light sources and surface reflectance properties using material shaders. +Basically, you define a geometry using volume shaders, define a camera using a +camera shader, and define light sources and surface reflectance properties using +material shaders. + ------------------------------------------- Continue to the comments before function A ------------------------------------------- - //As an (optional) assignment, figure out what function `n` does. And why there is a plus sign at every EOL except the last. - n]#=1+ - x=X+1/2+ - d=0:U;d=d-n;U=U+1;A=d Date: Sun, 3 Dec 2023 09:26:59 -0800 Subject: [PATCH 2/2] Add 2013/cable1/try.sh + format/typo checks Rather than link to twitter.com there is a new image of the tweet (screenshot). The try.sh has a joke Easter egg in it based on said tweet. Format/typo check README.md file. --- 2013/cable1/README.md | 10 +++--- 2013/cable1/dead-ms-tweet.jpg | Bin 0 -> 76843 bytes 2013/cable1/try.sh | 56 ++++++++++++++++++++++++++++++++++ thanks-for-fixes.md | 6 ++++ 4 files changed, 66 insertions(+), 6 deletions(-) create mode 100644 2013/cable1/dead-ms-tweet.jpg create mode 100755 2013/cable1/try.sh diff --git a/2013/cable1/README.md b/2013/cable1/README.md index e5628c2ac..036dad757 100644 --- a/2013/cable1/README.md +++ b/2013/cable1/README.md @@ -15,11 +15,7 @@ make ### Try: ```sh -./cable1 obama republican democrat -./cable1 nixon republican democrat -./cable1 bush republican democrat -./cable1 kennedy republican democrat -./cable1 lincoln republican democrat +./try.sh ``` @@ -69,7 +65,7 @@ A PC guy as expected. What about that other Steve? Humm .. maybe there is a hidden reason he is leaving the late Micro$oft? :-) Why late? Because: -![tweet about M$ being dead](https://twitter.com/landonnoll/status/401582967123742720) +![tweet about M$ being dead](dead-ms-tweet.jpg) -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- An important 2023 update about twitter: @@ -102,6 +98,7 @@ case, and prints out their political affiliation. Use `republican` as the 2nd command-line argument, and `democrat` as the 3rd (or equivalent strings of your choice). + ### Why is this entry obfuscated/interesting? The program looks up the name supplied on the command line against a list of @@ -117,6 +114,7 @@ table? - This program needs a little endian CPU to work properly. + ### Compiler warnings `clang` warns about a missing type specifier for `main()`, and that implicit diff --git a/2013/cable1/dead-ms-tweet.jpg b/2013/cable1/dead-ms-tweet.jpg new file mode 100644 index 0000000000000000000000000000000000000000..db8da78549a4ac90c37f614f88745583d7b334df GIT binary patch literal 76843 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 literal 0 HcmV?d00001 diff --git a/2013/cable1/try.sh b/2013/cable1/try.sh new file mode 100755 index 000000000..e080673ab --- /dev/null +++ b/2013/cable1/try.sh @@ -0,0 +1,56 @@ +#!/usr/bin/env bash +# +# try.sh - demonstrate IOCCC winner 2013/cable1 +# + +# make sure CC is set so that when we do make CC="$CC" it isn't empty. Doing it +# this way allows us to have the user specify a different compiler in an easy +# way. +if [[ -z "$CC" ]]; then + CC="cc" +fi + +make CC="$CC" all >/dev/null || exit 1 + +# clear screen after compilation so that only the entry is shown +clear + +read -r -n 1 -p "Press any key to run: ./cable1 obama republican democrat: " +echo 1>&2 +./cable1 obama republican democrat +echo 1>&2 + +read -r -n 1 -p "Press any key to run: ./cable1 nixon republican democrat: " +echo 1>&2 +./cable1 nixon republican democrat +echo 1>&2 + +read -r -n 1 -p "Press any key to run: ./cable1 bush republican democrat: " +echo 1>&2 +./cable1 bush republican democrat +echo 1>&2 + +read -r -n 1 -p "Press any key to run: ./cable1 kennedy republican democrat: " +echo 1>&2 +./cable1 kennedy republican democrat +echo 1>&2 + +read -r -n 1 -p "Press any key to run: ./cable1 lincoln republican democrat: " +echo 1>&2 +./cable1 lincoln republican democrat +echo 1>&2 + +read -r -n 1 -p "Press any key to run: ./cable1 roosevelt republican democrat: " +echo 1>&2 +./cable1 roosevelt republican democrat +echo 1>&2 + +read -r -n 1 -p "Press any key to run: ./cable1 fdr republican democrat: " +echo 1>&2 +./cable1 fdr republican democrat +echo 1>&2 + +read -r -n 1 -p "Press any key: ./cable1 microsoft alive dead: " +echo 1>&2 +./cable1 microsoft alive dead +echo 1>&2 diff --git a/thanks-for-fixes.md b/thanks-for-fixes.md index f768cf8b1..6f3426539 100644 --- a/thanks-for-fixes.md +++ b/thanks-for-fixes.md @@ -3489,6 +3489,12 @@ Cody also added the [try.sh](2013/birken/try.sh) script for the entry and the [try.alt.sh](2013/birken/try.alt.sh) script for the alt code. +## [2013/cable1](2013/cable1/cable1.c) ([README.md](2013/cable1/README.md])) + +[Cody](#cody) added the [try.sh](2013/cable1/try.sh) script which also has an +joke Easter egg in it based on the judges' remarks. + + ## [2013/cable3](2013/cable3/cable3.c) ([README.md](2013/cable3/README.md])) [Cody](#cody) fixed this to compile with modern systems. The problems were that