Files
ioccc/1989/fubar
Landon Curt Noll c78bda6c0f update tarballs due to recent commits
The commit a1c86c8a7a modified
the navigation bars to include "Original C", so all tarballs
had be update, sorry (tm Canada 🇨🇦).  In particular:

The navigation bar for a winning entry now has a "_Original C_" link
(between the ✅ and the Inventory on the right hand side) so that one
may easily view the original C code that was submitted for IOCCC judging.

In addition, a number of other commits since that time
modified other winning entries.

Ran `make update` to perform the above.
2025-08-18 16:30:59 -07:00
..
2024-06-21 08:41:32 -07:00
2023-07-06 21:49:38 -07:00
2024-01-14 05:28:07 -08:00

To build:

    make all

Bugs and (Mis)features:

The current status of this entry is:

STATUS: INABIAF - please DO NOT fix

For more detailed information see 1989/fubar in bugs.html.

To use:

    ./fubar <number>

Try:

    ./try.sh # run on 1 - 7

    ./fubar.sh 2 # run via script
    ./fubar 2 # run directly

Judges' remarks:

Run this with a single digit argument (or wait a long time and risk an infinite loop and compilation error as described in the 1989/fubar in bugs.html file). This is, however, a feature, not a bug.

The blank line at the beginning of the source is mandatory. Do you know why?

NOTE: the file ouroboros.c is created by the program itself so this is why it is not in the repository.

Author's remarks:

In a nutshell, this is probably the slowest and most obnoxious factorial program ever written. Unfortunately, the name of the C source must be ouroboros.c; the name is hard-coded into the program.

The source is a legal shell script and a legal C program. The shell script compiles itself, and then executes the resulting binary, giving the source as input. The program works by successively modifying #define lines each pass through.

Both indent and cb will damage the program, indent much more so.