Release Notes for C-INTERCAL version 0.9 DISCREDITS This package is an implementation of the language INTERCAL designed by Don Woods and James Lyon, who have since spent most of twenty years trying to live it down. This implementation was created by Eric S. Raymond during a fit of lunacy from which he has since mostly recovered. It has been considerably hacked upon and improved by Steve Swales, Michael Ernst, Louis Howell (who wrote the array support stubbed out in Eric's original version), and others. FILES The compiler itself is in the src directory. Setting a symbol in the makefile will allow you to install it and its libraries and support files in a directory of your choice. The doc directory contains (surprise!) documentation, and pit contains various examples of INTERCAL source code, writhing in agony. The files included are: READ.ME -- this file BUGS -- current bug and to-do list NEWS -- info on features and fixes new in this release intercal.el -- elisp for editing INTERCAL code under GNU Emacs doc/intercal.txt -- The INTERCAL manual (read this next!) doc/intercal.tex -- TeX source form doc/intercal.sty -- TeX style file doc/intercal.ms -- the manual in nroffable form doc/original.txt -- the original Princeton docs doc/ick.txt -- new features in C-INTERCAL doc/THEORY -- some notes on the internals of the INTERCAL compiler src/Makefile -- makefile for the INTERCAL compiler src/lexer.l -- the lexical analyzer specification (in LEX) src/ick.y -- the grammar specification (in YACC) src/ick.h -- compilation types and defines src/perpetrate.c -- main routine for compiler src/feh.c -- INTERCAL-to-C code generator src/fiddle.c -- the INTERCAL operators src/lose.[ch] -- INTERCAL compile- and run-time error handling src/ick-wrap.c -- the driver for generated C-from-INTERCAL code src/arrgghh.c -- option argument parsing for generated programs src/cesspool.c -- the INTERCAL runtime support code src/cesspool.h -- interface to INTERCAL runtime support pit/* -- sample INTERCAL code; see pit/CATALOG HOW TO GET STARTED You want a man page? Man pages are for wimps. To compile an INTERCAL program `foo.i' to executable code, just do ick foo.i There's a -c option that leaves the generated `foo.c' in place for inspection (suppressing compilation to machine code), a -d option that enables verbose parse reporting from the YACC parser, a -t option that requires strict INTERCAL-72 compliance, and an -O option that enables the (hah!) optimizer. Invoking ick -? prints a usage message. Other than that, yer on yer own. One other switch affects C-INTERCAL's runtime behavior. The `-C' option forces output in "clockface" mode, for superstitious users who believe writing "IV" upside-down offends IVPITER and would rather see IIII. Steve Swales, describing the 0.6 release: I've added some command line flags to the generated INTERCAL programs. These are currently, [+/-]help, [+/-]traditional, and [+/-]wimpmode. The help option (with either + or -) triggers a 'usage' message. The traditional option currently does nothing, but I have plans for it. I hope to bring this up in alt.lang.intercal in the near future. The wimpmode option is the most interesting. I found myself always running my test programs with filters on both ends to work around the 'nifty' intercal number representations. This was so painful that I decided it would be LESS painful (and a lot less code) if I added a 'wimp' option. With the +wimpmode option, the user is subjected to a humiliating message about what a wimp he or she is to use this mode, but after that is allowed to use conventional numerical notation. While such a mode doubtless violates to some extent the INTERCAL philosophy, the fact that a 'unbutcher' command has been posted clearly indicates the need for it. Anyway... if you don't like it, don't use it... the default is -wimpmode (i.e. NOT wimp mode). SPREADING THE BLAME C-INTERCAL maintenance is coordinated through Steve Swales. Send bugs, fixes, kudos and death threats to him at steve@aldur.lle.rochester.edu (128.151.32.111) There is, in addition, an occasionally active USENET newsgroup devoted to the language: alt.lang.intercal.