-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathchicken-csc.text
204 lines (173 loc) · 10.6 KB
/
chicken-csc.text
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
Usage: csc [OPTION ...] [FILENAME ...]
`csc' is a driver program for the CHICKEN compiler. Files given on the
command line are translated, compiled or linked as needed.
FILENAME is a Scheme source file name with optional extension or a
C/C++/Objective-C source, object or library file name with extension. OPTION
may be one of the following:
General options:
-h -help display this text and exit
-v -verbose show compiler notes and tool-invocations
-vv display information about translation
progress
-vvv display information about all compilation
stages
-version display Scheme compiler version and exit
-release display release number and exit
File and pathname options:
-o -output-file FILENAME specifies target executable name
-I -include-path PATHNAME specifies alternative path for included
files
-to-stdout write compiler to stdout (implies -t)
-s -shared -dynamic generate dynamically loadable shared object
file
Language options:
-D -DSYMBOL -feature SYMBOL register feature identifier
-no-feature SYMBOL disable builtin feature identifier
-c++ compile via a C++ source file (.cpp)
-objc compile via Objective-C source file (.m)
Syntax related options:
-i -case-insensitive don't preserve case of read symbols
-K -keyword-style STYLE enable alternative keyword-syntax
(prefix, suffix or none)
-no-parentheses-synonyms disables list delimiter synonyms
-no-symbol-escape disables support for escaped symbols
-r5rs-syntax disables the CHICKEN extensions to
R5RS syntax
-compile-syntax macros are made available at run-time
-j -emit-import-library MODULE write compile-time module information into
separate file
-J -emit-all-import-libraries emit import-libraries for all defined modules
-no-compiler-syntax disable expansion of compiler-macros
-m -module NAME wrap compiled code in a module
-M -module-registration always generate module registration code
-N -no-module-registration never generate module registration code
(overrides `-M')
Translation options:
-x -explicit-use do not use units `library' and `eval' by
default
-P -check-syntax stop compilation after macro-expansion
-A -analyze-only stop compilation after first analysis pass
Debugging options:
-w -no-warnings disable warnings
-d0 -d1 -d2 -d3 -debug-level NUMBER
set level of available debugging information
-no-trace disable rudimentary debugging information
-debug-info enable debug-information in compiled code for use
with an external debugger
-profile executable emits profiling information
-accumulate-profile executable emits profiling information in
append mode
-profile-name FILENAME name of the generated profile information
file
-consult-types-file FILENAME load additional type database
Optimization options:
-O -O0 -O1 -O2 -O3 -O4 -O5 -optimize-level NUMBER
enable certain sets of optimization options
-optimize-leaf-routines enable leaf routine optimization
-no-usual-integrations standard procedures may be redefined
-u -unsafe disable safety checks
-local assume globals are only modified in current
file
-b -block enable block-compilation
-disable-interrupts disable interrupts in compiled code
-f -fixnum-arithmetic assume all numbers are fixnums
-disable-stack-overflow-checks disables detection of stack-overflows
-inline enable inlining
-inline-limit LIMIT set inlining threshold
-inline-global enable cross-module inlining
-specialize perform type-based specialization of primitive calls
-oi -emit-inline-file FILENAME generate file with globally inlinable
procedures (implies -inline -local)
-consult-inline-file FILENAME explicitly load inline file
-ot -emit-types-file FILENAME write type-declaration information into file
-no-argc-checks disable argument count checks
-no-bound-checks disable bound variable checks
-no-procedure-checks disable procedure call checks
-no-procedure-checks-for-usual-bindings
disable procedure call checks only for usual
bindings
-no-procedure-checks-for-toplevel-bindings
disable procedure call checks for toplevel
bindings
-strict-types assume variable do not change their type
-clustering combine groups of local procedures into dispatch
loop
-lfa2 perform additional lightweight flow-analysis pass
-unroll-limit LIMIT specifies inlining limit for self-recursive calls
Configuration options:
-unit NAME compile file as a library unit
-uses NAME declare library unit as used.
-heap-size NUMBER specifies heap-size of compiled executable
-nursery NUMBER -stack-size NUMBER
specifies nursery size of compiled
executable
-X -extend FILENAME load file before compilation commences
-prelude EXPRESSION add expression to beginning of source file
-postlude EXPRESSION add expression to end of source file
-prologue FILENAME include file before main source file
-epilogue FILENAME include file after main source file
-e -embedded compile as embedded
(don't generate `main()')
-gui compile as GUI application
-link NAME link extension with compiled executable
(implies -uses)
-R -require-extension NAME require extension and import in compiled
code
-dll -library compile multiple units into a dynamic
library
-libdir DIRECTORY override directory for runtime library
Options to other passes:
-C OPTION pass option to C compiler
-L OPTION pass option to linker
-I<DIR> pass \"-I<DIR>\" to C compiler
(add include path)
-L<DIR> pass \"-L<DIR>\" to linker
(add library path)
-k keep intermediate files
-c stop after compilation to object files
-t stop after translation to C
-cc COMPILER select other C compiler than the default
-cxx COMPILER select other C++ compiler than the default
-ld COMPILER select other linker than the default
-static link with static CHICKEN libraries and
extensions (if possible)
-F<DIR> pass \"-F<DIR>\" to C compiler
(add framework header path on Mac OS X)
-framework NAME passed to linker on Mac OS X
-rpath PATHNAME add directory to runtime library search path
-Wl,... pass linker options
-strip strip resulting binary
Inquiry options:
-home show home-directory (where support files go)
-cflags show required C-compiler flags and exit
-ldflags show required linker flags and exit
-libs show required libraries and exit
-cc-name show name of default C compiler used
-cxx-name show name of default C++ compiler used
-ld-name show name of default linker used
-dry-run just show commands executed, don't run them
(implies `-v')
Obscure options:
-debug MODES display debugging output for the given modes
-compiler PATHNAME use other compiler than default `chicken'
-raw do not generate implicit init- and exit code
-emit-external-prototypes-first
emit prototypes for callbacks before foreign
declarations
-regenerate-import-libraries emit import libraries even when unchanged
-ignore-repository do not refer to repository for extensions
-keep-shadowed-macros do not remove shadowed macro
-host compile for host when configured for
cross-compiling
-private-repository load extensions from executable path
-deployed link support file to be used from a deployed
executable (sets `rpath' accordingly, if supported
on this platform)
-no-elevation embed manifest on Windows to supress elevation
warnings for programs named `install' or `setup'
Options can be collapsed if unambiguous, so
-vkfO
is the same as
-v -k -fixnum-arithmetic -optimize
The contents of the environment variable CSC_OPTIONS are implicitly passed to
every invocation of `csc'.