NAME¶
ick - INTERCAL compiler
SYNOPSIS¶
ick [options] file...
ick -e [options] intercal-file [non-intercal-file...] [library...]
DESCRIPTION¶
This manual page documents briefly the
ick command. This manual page was
originally written for the Debian GNU/Linux distribution (but may be used by
others), because the original program did not have a manual page, and was then
added back to the main distribution. Fuller documentation is available via the
command
info ick (for the
ick command itself; even fuller
documentation is available via
info C-INTERCAL (which contains the
documentation for both the compiler and the INTERCAL language)).
ick takes INTERCAL programs and generates code from them (by running
gcc).
Note that the base in which a program is written is deduced from its extension;
INTERCAL programs in base 2 must have the extension .i, INTERCAL programs in
bases from 3 to 7 must have an extension from .3i to .7i respectively.
No options take arguments; multiple options can be given separately or combined
in the usual way (even -e). The order in which options is given is irrelevant
unless they conflict, in which case the options that are given last on the
command line take precedence.
OPTIONS¶
- -c
- Compile INTERCAL to C, but don't compile the resulting
C.
- -d
- Print yacc debugging information (implies -c).
- -t
- Requires strict INTERCAL-72 compliance (rejecting COME
FROM, the extensions for bases other than two, and other features not
found in INTERCAL-72).
- -b
- Disables the INTERCAL-72 random-bug feature.
- -O
- Attempt to optimize expressions in the generated code.
- -C
- Clockface output (using IIII rather than IV in Roman
numerals).
- -f
- Optimize control flow in generated code (prevents
-yp).
- -F
- Optimize everything in generated code for speed, regardless
of how slow the compiler becomes or how large the object file becomes.
Implies -fO, prevents -cdeghpyH.
- -h
- Print optimizer debugging information (implies -cO).
- -H
- Print verbose optimizer debugging information (implies
-cO).
- -hH
- Print optimizer debugging information in a different form
(implies -cO).
- -w
- Enable the +printflow option in output programs even if
they are not multithreaded.
- -y
- Run the yuk debugger on the code (prevents -fme).
- -p
- Run the yuk profiler on the code (prevents -fme).
- -m
- Allow multithreading and backtracking (prevents -ype,
implies -w).
- -e
- Link one INTERCAL file to non-INTERCAL files or to
expansion libraries. Doing this changes the syntax of the command line;
the first file given must be the INTERCAL source file, then this can be
followed by any number of files in other languages to link via the
external calls system (currently only C and maybe Befunge-98 programs are
allowed), and then any number of expansion libraries. The non-INTERCAL
files will be processed to link them to the INTERCAL files, and then
compiled with gcc and linked to the main INTERCAL program.
- -E
- Do not link any system libraries, even if the code suggests
that one or more is needed (prevents -P).
- -a
- Allow the use of the CREATE statement (prevents -P).
- -v
- Allow anything on the left of an assignment, and turn off
the protection that constants otherwise have against being assigned to
(prevents -fFOP).
- -P
- Compile PIC-INTERCAL rather than INTERCAL (prevents
-amFvxeE, implies -cfO).
- -o
- Output to stdout rather than .c (implies -c).
- -X
- Interpret ambiguous syntax such as ? and @ with Princeton
meanings (as used by CLC-INTERCAL), rather than with the default Atari
meanings.
- -x
- Use CLC-INTERCAL rules for text I/O and for abstaining from
a GIVE UP by label (prevents -P).
- -u
- Print a message whenever the compiler tries to open a
file.
- -U
- Dump core on E778 as well as printing an error.
- -Y
- Display the command lines for programs invoked by ick.
- -g
- Leave the generated C in place, and make the output
executable debuggable.
- -l
- Attempt to report likely bugs and nonportabilities (implies
-O).
SEE ALSO¶
The newsgroup
alt.lang.intercal is where INTERCAL compilers are
announced, and INTERCAL itself is discussed; the website
http://catb.org/~esr/intercal is where the most recent versions of
C-INTERCAL are currently hosted.
AUTHOR¶
ick was originally written by Eric S. Raymond. This manual page was
originally written by Mark W. Eichin <eichin@kitten.gen.ma.us>, for the
Debian GNU/Linux system.