ICK(1)
π ICK β the INTERCAL compiler, bestie edition π
okay so you found ick (that's ICK(1), General Commands Manual energy) and you're about to have the time of your LIFE. sit down, hydrate, let's go π«Ά
β¨ NAME β¨
ick β the INTERCAL compiler. that's it, that's the whole name, no notes π
πΈ SYNOPSIS πΈ
ick [options] file...
ick -e [options] intercal-file [non-intercal-file...] [library...]
like... two whole shapes of invocation. pick your fighter β¨
π¦ DESCRIPTION π¦
so this manual page is a brief little rundown of the ick command, no cap. it was originally written for the Debian GNU/Linux distribution (but other people can absolutely use it too, it's not gatekept π), because the original program straight up did not have a manual page β tragic, honestly β and then it got added back into the main distribution. glow-up fr.
want the fuller documentation? run info ick (that's for the ick command itself). want even fuller than full? run info C-INTERCAL, which has the docs for both the compiler and the INTERCAL language. she contains multitudes, periodt π
ick takes INTERCAL programs and generates code from them (by running gcc, because we delegate around here π
).
ngl, the base a program is written in is deduced from its file extension. this is not optional, bestie. INTERCAL programs in base 2 must have the extension.i, and INTERCAL programs in bases from 3 to 7 must have an extension from.3ito.7irespectively. get it wrong and it's over for you π
also: no options take arguments. none. zero. you can give multiple options separately or combined in the usual way (yes, even -e, iconic). the order you give options in is irrelevant unless they conflict β and if they conflict, the options given last on the command line win. last one standing, main character energy π
π OPTIONS π
-cβ compile INTERCAL to C, but do not compile the resulting C. half-finished, on purpose, we love a cliffhanger π-dβ printyaccdebugging information. this implies-c.-tβ requires strict INTERCAL-72 compliance, which means it rejectsCOME FROM, the extensions for bases other than two, and all the other features that INTERCAL-72 simply did not have. strict queen, no crumbs π-bβ disables the INTERCAL-72 random-bug feature. yes that's a real feature. no I will not elaborate (the manpage doesn't) π-Oβ attempt to optimize expressions in the generated code. try your best, king β¨-Cβ clockface output, usingIIIIrather thanIVin Roman numerals. aesthetic choice, respected π°οΈ-fβ optimize control flow in the generated code. note that this prevents-yp.-Fβ optimize everything in the generated code for speed, regardless of how slow the compiler becomes or how large the object file becomes. go big or go home. implies-fO, and prevents-cdeghpyH. she does not share the aux π₯-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. yes,-hHis its own thing, it's giving duo π«-wβ enable the+printflowoption in output programs even if they are not multithreaded. generosity π-yβ run theyukdebugger on the code. prevents-fme.-pβ run theyukprofiler on the code. prevents-fme.-mβ allow multithreading and backtracking. prevents-ype, and 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 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, then compiled withgccand linked to the main INTERCAL program. it's a whole crossover episode π-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 theCREATEstatement. prevents-P.-vβ allow anything on the left of an assignment, and turn off the protection that constants otherwise have against being assigned to. chaos, consented to π prevents-fFOP.-Pβ compile PIC-INTERCAL rather than INTERCAL. prevents-amFvxeE, and implies-cfO.-oβ output tostdoutrather 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. two dialects, one diva π-xβ use CLC-INTERCAL rules for text I/O and for abstaining from aGIVE UPby label. prevents-P.-uβ print a message whenever the compiler tries to open a file. nosy, in a helpful way π¦-Uβ dump core onE778as well as printing an error. dramatic! it's giving and I oop π-Yβ display the command lines for programs invoked byick. receipts, always π§Ύ-gβ leave the generated C in place, and make the output executable debuggable.-lβ attempt to report likely bugs and nonportabilities. implies-O. she's a hater but she's right π
π SEE ALSO π
- the newsgroup
alt.lang.intercalis where INTERCAL compilers get announced, and where INTERCAL itself is discussed. - the website
http://catb.org/~esr/intercalis where the most recent versions of C-INTERCAL are currently hosted. go visit, it's iconic β
π 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. legends only π«Ά
and that's the whole page bestie!! it's the ICK(1) page from the General Commands Manual, and yeah the footer is just ICK(1) again because the manpage said so β take care of yourself, compile responsibly, and remember: no options take arguments πβ¨ππ¦πΈπ
π¦ where this page comes from
- debian trixie: intercal 30:0.30-6
- nixos 26.05: intercal 0.34
- nixpkgs unstable: intercal 0.35
- ubuntu jammy: intercal 30:0.30-3
- ubuntu noble: intercal 30:0.30-6
- ubuntu resolute: intercal 30:0.30-6
- ubuntu stonking: intercal 30:0.30-6
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms