Best Abuse of the Rules

Mark Biggar
UNiSYS - System Development Group, Santa Monica
2525 Colorado AV MD 91-01
Santa Monica, CA
90406

Judges' comments:

To build:

cc -DC="R>0" -DI="if(T)O" -DO="c=write(1,&c,1);" -DP="main(){X}"\
-DR="read(0,&c,1)" -DT="c!=015" -DW="while(C)I" -DX="char c;W" markb.c

Passes BSD and UTS lint. At least one version of lint is thrown into an infinite loop by this entry.

Try:

... | markb | od -c (remember to compile as indicated above)

By changing the compile line you can make this program do anything you want. This is a very efficient way to transfer source, though it increases the size of Makefiles.

With only slight variations, this program can be set to many uses. Consider how easy it would be to release Un*x source in this form; so what if the make files grow a little! :-)

One vendor’s lint got hung in an infinite loop over this entry!

FYI: We will let Mark get away with this truly sick entry this time, but for the future on we have placed a limit on the size of a compile line.

Also see our comment in Larry Wall’s entry regarding Mark’s contribution.

Copyright © 1987, Landon Curt Noll & Larry Bassel. All Rights Reserved. Permission for personal, educational or non-profit use is granted provided this this copyright and notice are included in its entirety and remains unaltered. All other uses must receive prior permission in writing from both Landon Curt Noll and Larry Bassel.