Man Linux: Main Page and Category List


       ick - INTERCAL compiler


       ick [options] file...

       ick -e [options] intercal-file [non-intercal-file...] [library...]


       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)).   There  is  also  other  documentation   in
       /usr/share/doc/intercal  and  /usr/share/doc/intercal/examples  as  one
       would expect on a Debian system.

       ick takes INTERCAL programs and generates code from  them  (by  running

       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.


       -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

       -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 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 the system library, even if the code suggests that
              it 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.

       -g     Leave the generated C in place, and make the  output  executable

       -l     Attempt to report likely bugs and nonportabilities (implies -O).


       The  newsgroup  alt.lang.intercal  is  where  INTERCAL  compilers   are
       announced,    and   INTERCAL   itself   is   discussed;   the   website is where the most recent versions  of  C-
       INTERCAL (and also CLC-INTERCAL) are currently hosted.


       ick  was  originally  written by Eric S. Raymond.  This manual page was
       originally written by Mark W. Eichin <>, for the
       Debian GNU/Linux system.