996
|
1 .\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
|
|
2 .\"
|
|
3 .\" Standard preamble:
|
|
4 .\" ========================================================================
|
|
5 .de Sp \" Vertical space (when we can't use .PP)
|
|
6 .if t .sp .5v
|
|
7 .if n .sp
|
|
8 ..
|
|
9 .de Vb \" Begin verbatim text
|
|
10 .ft CW
|
|
11 .nf
|
|
12 .ne \\$1
|
|
13 ..
|
|
14 .de Ve \" End verbatim text
|
|
15 .ft R
|
|
16 .fi
|
|
17 ..
|
|
18 .\" Set up some character translations and predefined strings. \*(-- will
|
|
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
|
20 .\" double quote, and \*(R" will give a right double quote. \*(C+ will
|
|
21 .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
|
|
22 .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
|
|
23 .\" nothing in troff, for use with C<>.
|
|
24 .tr \(*W-
|
|
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
|
26 .ie n \{\
|
|
27 . ds -- \(*W-
|
|
28 . ds PI pi
|
|
29 . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
|
30 . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
|
31 . ds L" ""
|
|
32 . ds R" ""
|
|
33 . ds C` ""
|
|
34 . ds C' ""
|
|
35 'br\}
|
|
36 .el\{\
|
|
37 . ds -- \|\(em\|
|
|
38 . ds PI \(*p
|
|
39 . ds L" ``
|
|
40 . ds R" ''
|
|
41 'br\}
|
|
42 .\"
|
|
43 .\" Escape single quotes in literal strings from groff's Unicode transform.
|
|
44 .ie \n(.g .ds Aq \(aq
|
|
45 .el .ds Aq '
|
|
46 .\"
|
|
47 .\" If the F register is turned on, we'll generate index entries on stderr for
|
|
48 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
|
49 .\" entries marked with X<> in POD. Of course, you'll have to process the
|
|
50 .\" output yourself in some meaningful fashion.
|
|
51 .ie \nF \{\
|
|
52 . de IX
|
|
53 . tm Index:\\$1\t\\n%\t"\\$2"
|
|
54 ..
|
|
55 . nr % 0
|
|
56 . rr F
|
|
57 .\}
|
|
58 .el \{\
|
|
59 . de IX
|
|
60 ..
|
|
61 .\}
|
|
62 .\"
|
|
63 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
|
64 .\" Fear. Run. Save yourself. No user-serviceable parts.
|
|
65 . \" fudge factors for nroff and troff
|
|
66 .if n \{\
|
|
67 . ds #H 0
|
|
68 . ds #V .8m
|
|
69 . ds #F .3m
|
|
70 . ds #[ \f1
|
|
71 . ds #] \fP
|
|
72 .\}
|
|
73 .if t \{\
|
|
74 . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
|
|
75 . ds #V .6m
|
|
76 . ds #F 0
|
|
77 . ds #[ \&
|
|
78 . ds #] \&
|
|
79 .\}
|
|
80 . \" simple accents for nroff and troff
|
|
81 .if n \{\
|
|
82 . ds ' \&
|
|
83 . ds ` \&
|
|
84 . ds ^ \&
|
|
85 . ds , \&
|
|
86 . ds ~ ~
|
|
87 . ds /
|
|
88 .\}
|
|
89 .if t \{\
|
|
90 . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
|
|
91 . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
|
|
92 . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
|
|
93 . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
|
|
94 . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
|
|
95 . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
|
|
96 .\}
|
|
97 . \" troff and (daisy-wheel) nroff accents
|
|
98 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
|
|
99 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
|
|
100 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
|
|
101 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
|
|
102 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
|
|
103 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
|
|
104 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
|
|
105 .ds ae a\h'-(\w'a'u*4/10)'e
|
|
106 .ds Ae A\h'-(\w'A'u*4/10)'E
|
|
107 . \" corrections for vroff
|
|
108 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
|
|
109 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
|
|
110 . \" for low resolution devices (crt and lpr)
|
|
111 .if \n(.H>23 .if \n(.V>19 \
|
|
112 \{\
|
|
113 . ds : e
|
|
114 . ds 8 ss
|
|
115 . ds o a
|
|
116 . ds d- d\h'-1'\(ga
|
|
117 . ds D- D\h'-1'\(hy
|
|
118 . ds th \o'bp'
|
|
119 . ds Th \o'LP'
|
|
120 . ds ae ae
|
|
121 . ds Ae AE
|
|
122 .\}
|
|
123 .rm #[ #] #H #V #F C
|
|
124 .\" ========================================================================
|
|
125 .\"
|
|
126 .IX Title "SICK 1p"
|
|
127 .TH SICK 1p "2008-03-29" "perl v5.14.2" "User Contributed Perl Documentation"
|
|
128 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
|
129 .\" way too many mistakes in technical documents.
|
|
130 .if n .ad l
|
|
131 .nh
|
|
132 .SH "NAME"
|
|
133 sick \- Compiler for CLC\-INTERCAL
|
|
134 .SH "SYNOPSIS"
|
|
135 .IX Header "SYNOPSIS"
|
|
136 \&\fBsick\fR [options] \fBfiles\fR...
|
|
137 .SH "DESCRIPTION"
|
|
138 .IX Header "DESCRIPTION"
|
|
139 \&\fBsick\fR is the main development environment for CLC-INTERCAL. If
|
|
140 files are specified, these will be compiled using the options in
|
|
141 effect at the point where they appear on the command line, and
|
|
142 they are compiled to objects (if they are not already object).
|
|
143 After all the options have been processed, the program enters
|
|
144 interactive mode, unless otherwise specified.
|
|
145 .PP
|
|
146 The program will be compiled using a compiler selected using command
|
|
147 line options; if nothing is selected, the compiler depends on the file
|
|
148 suffix:
|
|
149 .IP "CLC-INTERCAL program source" 4
|
|
150 .IX Item "CLC-INTERCAL program source"
|
|
151 These files must have suffix \fB.i\fR or \fB.clci\fR. These will be prefixed,
|
|
152 by default, with the compiler object \fIsick.io\fR.
|
|
153 .IP "CLC-INTERCAL compiler source" 4
|
|
154 .IX Item "CLC-INTERCAL compiler source"
|
|
155 These files must have suffix \fB.iacc\fR. These will be prefixed, by default,
|
|
156 with the compiler object \fIiacc.io\fR and produce a compiler object (which
|
|
157 can be executed as a program, but will do nothing \- it's only useful as a
|
|
158 preload before compiling from source).
|
|
159 .IP "C\-INTERCAL program source" 4
|
|
160 .IX Item "C-INTERCAL program source"
|
|
161 These have suffix \fB.ci\fR and will be prefixed with the compiler object
|
|
162 \&\fIick.io\fR.
|
|
163 .IP "CLC-INTERCAL assembler source" 4
|
|
164 .IX Item "CLC-INTERCAL assembler source"
|
|
165 These have suffix \fB.iasm\fR and will be prefixed with the compiler object
|
|
166 \&\fIasm.io\fR.
|
|
167 .IP "Traditional \s-1INTERCAL\s0 program source" 4
|
|
168 .IX Item "Traditional INTERCAL program source"
|
|
169 These will have suffix \fB.1972\fR and will be prefixed with the compiler
|
|
170 object \fI1972.io\fR
|
|
171 .IP "Compiler extensions" 4
|
|
172 .IX Item "Compiler extensions"
|
|
173 Suffixes \fB.i\fR, \fB.ci\fR, \fB.clci\fR and \fB.iasm\fR can contain a list of letters
|
|
174 and numbers between the spot (\fB.\fR) and the rest of the suffix; these
|
|
175 select compiler extensions to be added.
|
|
176 .RS 4
|
|
177 .IP "Base" 8
|
|
178 .IX Item "Base"
|
|
179 Numbers between \fB2\fR and \fB7\fR change the default base by loading compiler
|
|
180 objects \fB2.io\fR to \fB7.io\fR.
|
|
181 .IP "Bitwise Divide" 8
|
|
182 .IX Item "Bitwise Divide"
|
|
183 Letter \fBd\fR in the suffix adds the compiler object \fIbitwise\-divide.io\fR,
|
|
184 which changes the normal unary divide operation to use bitwise, rather
|
|
185 than arithmetic, shifts. It can be used with \fIsick\fR or \fIiasm\fR but
|
|
186 not with \fIick\fR.
|
|
187 .IP "\s-1COME\s0 \s-1FROM\s0 gerund" 8
|
|
188 .IX Item "COME FROM gerund"
|
|
189 Letter \fBg\fR in the suffix adds the compiler object \fIcome\-from\-gerund.io\fR,
|
|
190 which enables the \s-1COME\s0 \s-1FROM\s0 gerund statements; since \fIick\fR does not parse
|
|
191 such statements, this letter can only be used with \fIsick\fR or \fIiasm\fR.
|
|
192 .IP "Computed labels" 8
|
|
193 .IX Item "Computed labels"
|
|
194 Letter \fBl\fR in the suffix adds the compiler object \fIcomputed\-labels.io\fR,
|
|
195 which adds grammar rules to parse computed statement labels; this can
|
|
196 be used only with \fIsick\fR.
|
|
197 .IP "\s-1NEXT\s0" 8
|
|
198 .IX Item "NEXT"
|
|
199 Letter \fBn\fR in the suffix adds the compiler object \fInext.io\fR,
|
|
200 which enables the \s-1NEXT\s0 statement in \fIsick\fR; since \fIick\fR enables this
|
|
201 by default, this letter can only be used with \fIsick\fR.
|
|
202 .IP "INTERcal NETworking" 8
|
|
203 .IX Item "INTERcal NETworking"
|
|
204 Letter \fBr\fR in the suffix adds the compiler object \fIinternet.io\fR,
|
|
205 which adds syntax for the \fI\s-1STEAL\s0\fR, \fI\s-1SMUGGLE\s0\fR and \fI\s-1CASE\s0\fR statements;
|
|
206 it can be used with \fIick\fR or \fIsick\fR.
|
|
207 .IP "System call" 8
|
|
208 .IX Item "System call"
|
|
209 Letter \fBs\fR in the suffix adds the compiler object \fIsyscall.io\fR, which hides
|
|
210 a \*(L"\s-1PLEASE\s0 \s-1NEXT\s0 \s-1FROM\s0 (666)\*(R" in a dark corner of your operating system.
|
|
211 .IP "Threaded program" 8
|
|
212 .IX Item "Threaded program"
|
|
213 Letter \fBt\fR in the suffix selects threaded mode by loading compiler object
|
|
214 \&\fIthick.io\fR. This also changes the default compiler to \fIick\fR if the suffix
|
|
215 is \fB.i\fR: to use \fIsick\fR one would use \fI.tclci\fR.
|
|
216 .IP "Wimp mode" 8
|
|
217 .IX Item "Wimp mode"
|
|
218 Letter \fBw\fR in the suffix adds the compiler object \fIwimp.io\fR, which causes
|
|
219 the program to start in wimp mode when it is executed. An equivalent result
|
|
220 can be obtained by passing the \fB\-\-wimp\fR option to the executable program.
|
|
221 .RE
|
|
222 .RS 4
|
|
223 .RE
|
|
224 .PP
|
|
225 The actual list of suffixes recognised can be changed by editing the file
|
|
226 \&\fIsystem,sickrc\fR or \fI.sickrc\fR. See the option \fB\-\-rcfile\fR for a discussion
|
|
227 on how and where \fBsick\fR finds these files, and sickrc for a description
|
|
228 of the file format.
|
|
229 .PP
|
|
230 If a preload file is specified on the command line, the defaults derived
|
|
231 from the suffix are not used. It is also possible to use default preloads
|
|
232 from a different file suffix by explicitely saying \fB\-suffix\fR=\fIS\fR \- in
|
|
233 this case, the compiler acts as if the file had name \fIname.S\fR
|
|
234 .PP
|
|
235 In addition, compiler objects are always recognised, with whatever suffix.
|
|
236 These bypass the first compiler pass and jump directly to the runtime
|
|
237 (just-too-late) compiler. However, if the optimiser has been selected
|
|
238 when these objects were compiled, and there are no postprocessor statements,
|
|
239 the just-too-late compiler will be automatically replaced by a more
|
|
240 traditional \*(L"compile-time\*(R" compiler. If this is confusing, wait until
|
|
241 you see the rest.
|
|
242 .PP
|
|
243 If a file is specified without suffix, and there is a compiler object in the
|
|
244 include path with the same name and suffix \fB.io\fR, the suffix is automatically
|
|
245 added, whether you wanted it or now.
|
|
246 .PP
|
|
247 As soon as each program is written into \fBsick\fR, a pre-compiler will
|
|
248 produce an internal compiler object. If \fBsick\fR enters interactive mode,
|
|
249 these objects will be available in memory for single-stepping, running,
|
|
250 or just ignoring completely and getting on with the real work.
|
|
251 .PP
|
|
252 If \fBsick\fR loads all the required programs and objects successfully, but
|
|
253 does not enter interactive mode, any program source is read back out to
|
|
254 disk in object format, using the same file name with the suffix replaced
|
|
255 by \fB.io\fR if no output file is specified. If a backend is specified in
|
|
256 the command line before a program is loaded, \fBsick\fR will produce an
|
|
257 executable via that backend instead of an object.
|
|
258 .PP
|
|
259 The compiler accepts several options, some of which are documented here.
|
|
260 Options and files can be mixed in any order, each file is loaded and
|
|
261 compiled using whatever options precedes it on the command line. For
|
|
262 example:
|
|
263 .PP
|
|
264 .Vb 1
|
|
265 \& sick \-\-verbose \-\-optimise prog1.i \-\-quiet prog2.i \-\-batch
|
|
266 .Ve
|
|
267 .PP
|
|
268 will tell you everything about compiling \fIprog1.i\fR but not about \fIprog2.i\fR.
|
|
269 Both programs will be optimised. On the other hand:
|
|
270 .PP
|
|
271 .Vb 1
|
|
272 \& sick \-\-optimise prog1.i \-\-nooptimise prog2.i \-\-batch
|
|
273 .Ve
|
|
274 .PP
|
|
275 will optimise \fIprog1.i\fR but not \fIprog2.i\fR.
|
|
276 .PP
|
|
277 All options can be \*(L"undone\*(R" (sometimes it's even clear how) except
|
|
278 \&\fB\-\-include\fR which applies to all objects loaded after it, and
|
|
279 \&\fB\-\-rcfile\fR which applies to all objects, even the ones loaded before
|
|
280 it (just to be different).
|
|
281 .SS "User Interface Options"
|
|
282 .IX Subsection "User Interface Options"
|
|
283 .IP "\fB\-X\fR / \fB\-\-graphic\fR" 4
|
|
284 .IX Item "-X / --graphic"
|
|
285 Enters X\-based graphical user interface. Requires Perl-GTK. This is the
|
|
286 default if Perl-GTK is installed, the environment variable \fI\f(CI$DISPLAY\fI\fR is
|
|
287 set and the opening of the X display succeeds.
|
|
288 .IP "\fB\-c\fR / \fB\-\-curses\fR" 4
|
|
289 .IX Item "-c / --curses"
|
|
290 Enters full screen, curses-based interface. This is the default if the
|
|
291 X based interface cannot be started, the environment variable \fI\f(CI$TERM\fI\fR
|
|
292 is set and the terminal name is known.
|
|
293 .IP "\fB\-\-line\fR" 4
|
|
294 .IX Item "--line"
|
|
295 Enters the line-mode user interface. This is the default if the X based
|
|
296 and the curses based interfaces do not work.
|
|
297 .IP "\fB\-\-batch\fR" 4
|
|
298 .IX Item "--batch"
|
|
299 Avoids entering interactive mode. This is the default if the standard
|
|
300 input and output are not connected to a terminal and the X based interface
|
|
301 cannot be started.
|
|
302 .IP "\fB\-i\fR\fItype\fR / \fB\-\-interface\fR=\fItype\fR" 4
|
|
303 .IX Item "-itype / --interface=type"
|
|
304 Selects the user interface \fItype\fR. Currently, only \fIX\fR, \fICurses\fR,
|
|
305 \&\fILine\fR and \fINone\fR are defined, but more can be installed as compiler
|
|
306 plug-ins. If the interface selected is \fINone\fR, \fBsick\fR will work in
|
|
307 batch mode. In addition, an empty string will reinstate the default
|
|
308 behaviour.
|
|
309 .SS "Source Character Set Options"
|
|
310 .IX Subsection "Source Character Set Options"
|
|
311 .IP "\fB\-a\fR / \fB\-\-ascii\fR" 4
|
|
312 .IX Item "-a / --ascii"
|
|
313 Assumes that program source is in \s-1ASCII\s0.
|
|
314 .IP "\fB\-b\fR / \fB\-\-baudot\fR" 4
|
|
315 .IX Item "-b / --baudot"
|
|
316 Assumes that program source is in Baudot.
|
|
317 .IP "\fB\-e\fR / \fB\-\-ebcdic\fR" 4
|
|
318 .IX Item "-e / --ebcdic"
|
|
319 Assumes that program source is in \s-1EBCDIC\s0.
|
|
320 .IP "\fB\-h\fR / \fB\-\-hollerith\fR" 4
|
|
321 .IX Item "-h / --hollerith"
|
|
322 Assumes that program source is in Hollerith.
|
|
323 .IP "\fB\-g\fR / \fB\-\-guess\fR" 4
|
|
324 .IX Item "-g / --guess"
|
|
325 Does not make assumptions about the source character set. If the character
|
|
326 set cannot be guessed, will produce an error. This is the default.
|
|
327 .IP "\fB\-\-charset\fR=\fIname\fR" 4
|
|
328 .IX Item "--charset=name"
|
|
329 Assumes that program source is in the given character sets. Valid values are
|
|
330 currently \fI\s-1ASCII\s0\fR, \fIBaudot\fR, \fI\s-1EBCDIC\s0\fR, \fIHollerith\fR; an empty \fIname\fR is
|
|
331 equivalent to specifying option \fB\-\-guess\fR).
|
|
332 .SS "Code Generation Options"
|
|
333 .IX Subsection "Code Generation Options"
|
|
334 .IP "\fB\-O\fR / \fB\-\-optimise\fR" 4
|
|
335 .IX Item "-O / --optimise"
|
|
336 Invokes the optimiser. This is a letter o, not a zero. This will cause the
|
|
337 extra object \fIoptimise.io\fR to be prefixed after the last compiler and
|
|
338 before the real program. The program is then executed: when the optimiser
|
|
339 takes control, it will force compilation of the rest of the program (thereby
|
|
340 executing the compiler at compile-time, instead of runtime as it normally
|
|
341 does), and the resulting object is checkpointed, so the next time it will
|
|
342 automatically skip the initialisation and compilation stages. In addition,
|
|
343 the \*(L"optimise\*(R" register is set, instructing the compiler to invoke the
|
|
344 optimiser when it runs.
|
|
345 .Sp
|
|
346 If you specify \fB\-O\fR and \fB\-poptimise\fR (see below), you are asking for
|
|
347 trouble, so don't do that.
|
|
348 .IP "\fB\-\-nooptimise\fR" 4
|
|
349 .IX Item "--nooptimise"
|
|
350 Disables automatic preloading and execution of \fIoptimise.io\fR.
|
|
351 .IP "\fB\-o\fR\fIname\fR / \fB\-\-output\fR=\fIname\fR" 4
|
|
352 .IX Item "-oname / --output=name"
|
|
353 Selects a name for the output file. Some character sequences are recognised
|
|
354 inside \fIname\fR: \fI\f(CI%p\fI\fR will be replaced by the source program's basename;
|
|
355 \&\fI\f(CI%s\fI\fR will be replaced by the appropriate suffix for the selected backend,
|
|
356 \&\fI\f(CI%o\fI\fR will provide the original file name specified on the command line,
|
|
357 without suffix (this can differ from \fI\f(CI%s\fI\fR because \fI\f(CI%s\fI\fR can be prefixed
|
|
358 with a directory from the search path) and \fI%%\fR will produce a single \fI%\fR.
|
|
359 .Sp
|
|
360 The default is \fI\f(CI%p\fI.%s\fR, which produces the object name described at the
|
|
361 beginning of this document. A suffix is not automatically added if the
|
|
362 output name does not contain \fI\f(CI%s\fI\fR; this might be useful in ocnjunction
|
|
363 with the \fIPerl\fR backend to produce a file without a suffix, for example:
|
|
364 .Sp
|
|
365 .Vb 1
|
|
366 \& sick \-\-output=%p \-\-backend=Perl sourcefile.i
|
|
367 .Ve
|
|
368 .Sp
|
|
369 will compile \fIsourcefile.i\fR and produce perl script \fIsourcefile\fR.
|
|
370 .Sp
|
|
371 If the output file is specified as an empty string, the code generation step
|
|
372 will never be done.
|
|
373 .IP "\fB\-n\fR\fIname\fR / \fB\-\-name\fR=\fIname\fR" 4
|
|
374 .IX Item "-nname / --name=name"
|
|
375 Sets the program's \fIname\fR, if the code generator requires it (currently,
|
|
376 no backends use a name, but some of the planned ones will). The default is
|
|
377 \&\fI\f(CI%o\fI\fR. The same %\-escapes as defined for the output file name are defined.
|
|
378 .IP "\fB\-l\fR\fIname\fR / \fB\-\-backend\fR=\fIname\fR" 4
|
|
379 .IX Item "-lname / --backend=name"
|
|
380 Selects a different compiler back end. The default is \fIObject\fR, which
|
|
381 produces a compiler object (suffix \fI.io\fR). The distribution also includes
|
|
382 a \fIPerl\fR backend, which produces an executable Perl program (suffix \fI.pl\fR).
|
|
383 In addition, the pseudo backend \fIRun\fR will run the program instead of
|
|
384 writing any object. In this case, the output file name is ignored. Note
|
|
385 that the program will only run if the compiler is in batch mode.
|
|
386 Other back ends can be provided as compiler plug ins. The distribution
|
|
387 also contains a \fIListObject\fR backend, which does not produce executables
|
|
388 but object listings. A future version might allow to \*(L"compile\*(R" the output
|
|
389 of the \fIListObject\fR back end, but this is currently impossible because not
|
|
390 all the internal state of the object is provided, only the part which is
|
|
391 likely to be useful to a human reader.
|
|
392 .IP "\fB\-\-bug\fR=\fInumber\fR" 4
|
|
393 .IX Item "--bug=number"
|
|
394 Selects a different probability for the compiler bug. The compiler bug is
|
|
395 implemented by initialising the compiler's state with the required probability:
|
|
396 when a statement is compiled (usually at runtime), a \*(L"\s-1BUG\s0\*(R" instruction is
|
|
397 emitted with the required probability. The default is 1%.
|
|
398 .IP "\fB\-\-ubug\fR=\fInumber\fR" 4
|
|
399 .IX Item "--ubug=number"
|
|
400 Selects a probability for the unexplainable compiler bug. This is the compiler
|
|
401 bug which occurs when the probability of a (explainable) compiler bug is zero.
|
|
402 Only wimps would use this option. The default is 0.01%.
|
|
403 .IP "\fB\-p\fR\fIname\fR / \fB\-\-preload\fR=\fIname\fR" 4
|
|
404 .IX Item "-pname / --preload=name"
|
|
405 Selects a compiler object to prefix to the program. If this option is
|
|
406 specified, the compiler won't automatically prefix objects as suggested by
|
|
407 the suffix. The program \fB'oo, ick'\fR included in previous version of
|
|
408 CLC-INTERCAL used option \fB\-p\fR to select a parser. Since the main use of
|
|
409 preloads is to select an alternative (runtime) compiler, it is felt that
|
|
410 it is appropriate to keep the same letter for this option.
|
|
411 .Sp
|
|
412 The file name specified does not include the suffix \fI.io\fR, which is
|
|
413 always added. The file must be a compiler object, not source code.
|
|
414 .Sp
|
|
415 The special object \fIoptimise\fR should always loaded via \fB\-O\fR. Using
|
|
416 \&\fB\-poptimise\fR will not necessarily put the object in the correct place,
|
|
417 and will not instruct the precompiler to do whatever magic it needs to
|
|
418 do to bootstrap the optimiser.
|
|
419 .Sp
|
|
420 To completely disable preloading (this is only done when compiling the
|
|
421 optimiser, which is used to compile itself) use an empty string.
|
|
422 .IP "\fB\-\-nopreload\fR" 4
|
|
423 .IX Item "--nopreload"
|
|
424 Resets the default behaviour of selecting preloads based on suffixes.
|
|
425 .IP "\fB\-\-suffix\fR=\fIsuffix\fR" 4
|
|
426 .IX Item "--suffix=suffix"
|
|
427 Specifies a suffix to use when selecting preloads. If this option is
|
|
428 not specified, the suffix is taken from the file name to be compiled.
|
|
429 .IP "\fB\-I\fR\fIpath\fR / \fB\-\-include\fR=\fIpath\fR" 4
|
|
430 .IX Item "-Ipath / --include=path"
|
|
431 Adds a directory before the standard search path for compiler objects
|
|
432 and source code. If a file is accessible from the current directory,
|
|
433 it is never searched in any include path.
|
|
434 .Sp
|
|
435 If this option is repeated, the given paths will be searched in the
|
|
436 order given, followed by the standard paths.
|
|
437 .SS "Misc Options"
|
|
438 .IX Subsection "Misc Options"
|
|
439 .IP "\fB\-r\fR\fIname\fR / \fB\-\-rcfile\fR=\fIname\fR" 4
|
|
440 .IX Item "-rname / --rcfile=name"
|
|
441 Executes commands from file \fIname\fR before entering interactive mode.
|
|
442 This option can be repeated, to execute more than one file. If it is
|
|
443 not specified, the standard library, the current directory, and the
|
|
444 current user's home directory are searched for files with name
|
|
445 \&\fIsystem.sickrc\fR or \fI.sickrc\fR, which are then executed. The order
|
|
446 for this search is: specified library (\fB\-\-include\fR), system library,
|
|
447 home directory, current directory. This is different from the search
|
|
448 order used when looking for objects or source code. If a directory
|
|
449 contains both \fI.sickrc\fR and \fIsystem.sickrc\fR, the \fIsystem.sickrc\fR
|
|
450 is executed first, followed by \fI.sickrc\fR. Also note that if the
|
|
451 current directory or the home directory appear in the search path
|
|
452 and contain one of these files, they will be executed twice.
|
|
453 .Sp
|
|
454 If filenames are explicitely specified, they must be fully qualified:
|
|
455 the search path is not used to find them.
|
|
456 .IP "\fB\-\-nouserrc\fR" 4
|
|
457 .IX Item "--nouserrc"
|
|
458 Prevents loading a user rcfile (.sickrc); also limits loading of
|
|
459 system.sickrc to the first one found. This option is normally only
|
|
460 used during installation, to prevent interference from previous
|
|
461 versions of CLC-INTERCAL.
|
|
462 .IP "\fB\-v\fR / \fB\-\-verbose\fR" 4
|
|
463 .IX Item "-v / --verbose"
|
|
464 Tells everything it's doing (on Standard Error).
|
|
465 .IP "\fB\-\-stdverb\fR=\fIfile\fR" 4
|
|
466 .IX Item "--stdverb=file"
|
|
467 Sends verbose output to \fIfile\fR.
|
|
468 .IP "\fB\-\-trace\fR" 4
|
|
469 .IX Item "--trace"
|
|
470 Enables tracing; if compiling from source, the compiler is also
|
|
471 traced; to trace a program, compile it to an object and then run
|
|
472 it with \fB\-\-trace\fR.
|
|
473 .IP "\fB\-\-stdtrace\fR=\fIfile\fR" 4
|
|
474 .IX Item "--stdtrace=file"
|
|
475 Enables tracing and selects an output file for the trace information.
|
|
476 .IP "\fB\-\-notrace\fR" 4
|
|
477 .IX Item "--notrace"
|
|
478 Disables tracing; preloading \fItrace.io\fR has priority over this option.
|
|
479 .IP "\fB\-q\fR / \fB\-\-quiet\fR" 4
|
|
480 .IX Item "-q / --quiet"
|
|
481 Stop talking to Standard Error.
|
|
482 .IP "\fB\-\-times\fR" 4
|
|
483 .IX Item "--times"
|
|
484 Prints a summary of the time take for each major action. This setting is
|
|
485 independent of \fB\-\-verbose\fR.
|
|
486 .IP "\fB\-\-notimes\fR" 4
|
|
487 .IX Item "--notimes"
|
|
488 Does not print execution times: this is the default.
|
|
489 .IP "\fB\-\-rclist\fR" 4
|
|
490 .IX Item "--rclist"
|
|
491 Prints the names of all rcfiles found. It prevents starting interactive mode.
|
|
492 For example, the following command (which should work with \fIany\fR Unix shell)
|
|
493 opens all the system and user sickrc files in your favourite editor:
|
|
494 .Sp
|
|
495 .Vb 1
|
|
496 \& sh \-c \*(Aq"${EDITOR:\-vi}" "\`sick \-\-rclist\`"\*(Aq
|
|
497 .Ve
|
|
498 .Sp
|
|
499 This can be useful to update the defaults.
|
|
500 .SH "BUGS"
|
|
501 .IX Header "BUGS"
|
|
502 There are more options than \fIls\fR\|(1). This is construed to be a feature.
|
|
503 .SH "SEE ALSO"
|
|
504 .IX Header "SEE ALSO"
|
|
505 The \s-1INTERCAL\s0 on-line documentation, by entering \fBsick\fR's interactive mode
|
|
506 and finding the \*(L"help\*(R" menu (X), key (Curses) or command (Line).
|