[TUHS] Space Travel, was New: The Earliest UNIX Code

Steffen Nurpmeso steffen at sdaoden.eu
Sat Oct 19 04:36:10 AEST 2019


Doug McIlroy wrote in <201910181152.x9IBq95P001809 at coolidge.cs.Dartmouth\
.EDU>:
 |> 10-36-55.pdf    user-mode programs: pool game
 |
 |This game, written by ken, used the Graphic 2. One of its
 |earliest tests--random starting positions and velocities on
 |a frictionless table with no collision detection--produced
 |a mesmerizing result. This was saved in a program called
 |"weird1", which was carried across to the PDP11.
 |
 |Weird1 was a spectacular accidental demonstration of structure
 |in pseudo-random numbers. After several minutes the dots
 |representing pool balls would evanescently form short local
 |alignments.  Thereafter from time to time ever-larger alignments
 |would materialize. Finally in a grand climax all the balls
 |converged to a single point.
 |
 |It was stunning to watch perfect order emerge from apparent
 |chaos.  One of my fondest hopes is to see weird1 revived.

Not about random orders chaos, no, quite the opposite, but the
IOCCC context 2012 was won by endoh1, a fluid simulator using
"Smoothed-particle hydrodynamics (SPH)", and the "marching
squares" algorithm to render particles.  If the defaults for
gravity (1 -> 0), pressure (4 -> 1) and viscosity (8 -> 2) are
changed entertaining effects can be seen.

It is like swirling, not self-organizing order out of chaos, but
i wanted to post it nonetheless because of some properties of the
code, for example the IOCCC Makefile introduces "make love", may
also echo "You are not expected to understand this", and what else
can be expected.  The xxx.txt is an input file i made for this
post, the competition ones are neat (a fountain, for example), but
for normal gravity etc.

  $ make endoh1_color
  $ ./endoh1_color < xxx.txt

And spend some time.

 |Doug
 --End of <201910181152.x9IBq95P001809 at coolidge.cs.Dartmouth.EDU>

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: endoh1_color.c
Type: text/x-csrc
Size: 2275 bytes
Desc: not available
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20191018/1a89499f/attachment.c>
-------------- next part --------------
#!/usr/bin/env make
#
# 2012 makefile
#
# This work by Landon Curt Noll, Simon Cooper, and Leonid A. Broukhis
# is licensed under:
#
#	Creative Commons Attribution-ShareAlike 3.0 Unported License.
#
# See: http://creativecommons.org/licenses/by-sa/3.0/


################
# tool locations
################
#
SHELL= /bin/bash
CP= cp
CPP= cpp
GUNZIP= gunzip
LD= ld
MAKE= make
RM= rm
SED= sed
TAR= tar
TRUE= true

# Set X11_LIBDIR to the directory where the X11 library resides
#
X11_LIBDIR= /usr/X11R6/lib

# Set X11_INCLUDEDIR to the directory where the X11 include files reside
#
X11_INCDIR= /usr/X11R6/include

# Compiler warnings
#
#CWARN=
#CWARN= -Wall -W
CWARN= -Wall -W -pedantic

# compiler standard
#
#CSTD=
#CSTD= -ansi
CSTD= -std=c99

# compiler bit architecture
#
# Some entries require 32-bitness:
# ARCH= -m32
#
# Some entries require 64-bitess:
# ARCH= -m64
#
# By default we assume nothing:
#
ARCH=

# optimization
#
# Most compiles will safely use -O2.  Some can use only -O1 or -O.
# A few compilers have broken optimizers or this entry make break
# under those buggy optimizers and thus you may not want anything.
#
#OPT=
#OPT= -O
#OPT= -O1
OPT= -O2
#OPT= -O3

# Libraries needed to build
#
LIBS= -lm

# default flags for ANSI C compilation
#
CFLAGS= ${CWARN} ${CSTD} ${ARCH} ${OPT} 

# ANSI compiler
#
# Set CC to the name of your ANSI compiler.
#
# Some entries seem to need gcc.  If you have gcc, set
# both CC and MAY_NEED_GCC to gcc.
#
# If you do not have gcc, set CC to the name of your ANSI compiler, and
# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just :
# to disable such programs.
#
CC= cc
#CC=clang
MAY_NEED_GCC= gcc


##############################
# Special flags for this entry
##############################
#
ENTRY= endoh1
DATA= column.txt column2.txt column3.txt corners.txt dripping-pan.txt \
	evaporation.txt flat.txt fountain.txt funnel.txt funnel2.txt \
	funnel3.txt leidenfrost.txt logo.txt pour-out.txt tanada.txt
ALT_OBJ= endoh1_color.o
ALT_ENTRY= endoh1_color

# The factor of gravity
#
G=0

# The factor of pressure
#
P=1

# The factor of viscosity
#
V=2

#################
# build the entry
#################
#
all: ${ENTRY} ${DATA}
	@${TRUE}

${ENTRY}: ${ENTRY}.c
	${CC} ${CFLAGS} -DG=$G -DP=$P -DV=$P $< -o $@ ${LIBS}

# alternative executable
#
alt: ${ALT_ENTRY}
	@${TRUE}

endoh1_deobfuscate: endoh1_deobfuscate.c
	${CC} ${CFLAGS} -DG=$G -DP=$P -DV=$P $< -o $@ ${LIBS}

endoh1_color: endoh1_color.c
	${CC} ${CFLAGS} -DG=$G -DP=$P -DV=$P $< -o $@ ${LIBS}

# data files
#
data: ${DATA}
	@${TRUE}


###############
# utility rules
###############
#
everything: all alt

clean:
	${RM} -f ${ENTRY}.o ${ALT_OBJ}

clobber: clean
	${RM} -f ${ENTRY} ${ALT_ENTRY}

nuke: clobber
	@${TRUE}

dist_clean: nuke
	@${TRUE}

install:
	@echo "Surely you're joking Mr. Feynman!"
	@${TRUE}

# backwards compatibility
#
build: all
	@${TRUE}


##################
# 133t hacker rulz
##################
#
love:
	@echo 'not war?'
	@${TRUE}

haste:
	$(MAKE) waste
	@${TRUE}

waste:
	@echo 'waste'
	@${TRUE}

easter_egg:
	@echo you expected to mis-understand this $${RANDOM} magic
	@echo chongo '<was here>' "/\\oo/\\"
	@echo Readers shall be disallowed from not being unable to partly misunderstand this partocular final echo.

# Understand the history of "I Am the Walrus" and
# and in particular John Lennon's remarks on that
# song and you might be confused about these next
# rules in a different way. :-)
#
supernova: nuke
	@-if [ -r .code_anal ]; then \
	    ${RM} -f .code_anal_v3; \
	else \
	    echo "You are not expected to understand this"; \
	fi
	@${TRUE}

deep_magic:
	@-if [ -r .code_anal ]; then \
	    ccode_analysis --deep_magic 1c2c85c7a02c55d1add91967eca491d53c101dc1 --FNV1a_hash 256-bit "${ENTRY}"; \
	else \
	    echo "Understand different"; \
	fi
	@${TRUE}

magic: deep_magic
	@-if [ -r .code_anal ]; then \
	    ccode_analysis --mode 21701 --level 23209 --FNV1a_hash 256-bit "${ENTRY}"; \
	else \
	    echo "These aren't the droids you're looking for Mr. Spock!"; \
	fi
	@${TRUE}
-------------- next part --------------
                                       @                                       
###############################################################################
#           xxxxxxxxxxxxxxxxxxxxxxxxxxxx                                      #
#           xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx          #
#                                                                             #
#                                                                             #
#                                                                             #
#                                                                             #
#                           xxxxxxxxxxxxxxxxxxxxxx                            #
#                           xxxxxxxxxxxxxxxxxxxxxx                            #
#                           xxxxxxxxxxxxxxxxxxxxxx                            #
#                                                                             #
#                                                                             # 
#                                                                             #
#                                                                             #
#                                                                             #
#                                                                             #
#                                                                             #
#                                                   @@@@@@@@@@@@@@@@@@@@@@    # 
#    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@             @@@@@@@@@@@@@@@@@@@@@@@   # 
#    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@             @@@@@@@@@@@@@@@@@@@@@@@   # 
#                                                                             #
###############################################################################


More information about the TUHS mailing list