Skip to content
Newer
Older
100644 970 lines (825 sloc) 55.1 KB
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
1 Installation instructions for Gambit
2 ====================================
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
3
4
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
5 This directory contains a release of the Gambit Scheme programming
6 system (see the file configure.ac for the version number). Gambit
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
7 includes a Scheme interpreter and a Scheme compiler which can be used
8 to build standalone executables. Because the compiler generates
9 portable C code it is fairly easy to port to any platform with a
10 decent C compiler.
11
4e64437 @feeley Update README and INSTALL.txt with repo cloning instructions.
authored
12 1) Obtaining the Gambit source code
13 ===================================
14
15 The Gambit source code can be obtained in different ways.
16
17 - You can get the most recent version of the sources directly from
18 the Gambit repository on github:
19
20 % git clone https://github.com/feeley/gambit.git
21 % cd gambit
22
f5072fc @feeley Fix bootstrapping instructions so that modifications to the Gambit co…
authored
23 Note that the source code obtained contains some stale .c files
24 (those generated by the Gambit compiler from .scm files at the
25 moment of the latest release). Up to date files are obtained
e9c95a6 @feeley Fix typo
authored
26 through a bootstrapping process explained in the next section.
4e64437 @feeley Update README and INSTALL.txt with repo cloning instructions.
authored
27
28 - You can get a specific release, preferably the latest, in the form
29 of a compressed tar ball (.tgz extension). The simplest is to use
5ff63b7 @feeley Fix typo in INSTALL.txt
authored
30 a browser to visit the Gambit wiki (http://gambitscheme.org)
4e64437 @feeley Update README and INSTALL.txt with repo cloning instructions.
authored
31 and click on "Development Sources" to download the compressed tar
32 ball. Alternatively, use wget or curl from the command line,
33 for example:
34
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
35 % wget http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/source/gambit-v4_8_0-devel.tgz
36 % tar zxf gambit-v4_8_0-devel.tgz
37 % mv gambit-v4_8_0-devel gambit
4e64437 @feeley Update README and INSTALL.txt with repo cloning instructions.
authored
38 % cd gambit
39
40 Note that releases come in two flavors. The "developer" release,
41 which has a "-devel" suffix in its name, contains the complete git
42 history. It is a snapshot of the Gambit repository at a particular
43 point in time. The "plain" release, without the "-devel" suffix in
44 its name, does not contain the git history and is much more compact
45 than the developer release.
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
46
4e64437 @feeley Update README and INSTALL.txt with repo cloning instructions.
authored
47 Obtaining a version of the sources with the git history is required if
48 you intend to contribute changes to the Gambit repository. In that
49 case you will need a github account. Please send a message with your
50 github user name to gambit@iro.umontreal.ca to request write
51 permissions.
52
53
54 2) Quick-install instructions
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
55 =============================
56
93563f8 @feeley Improve build instructions in README and INSTALL.txt
authored
57 On most Unix platforms the system is easily built using
58 configure/make. First the configure script is executed, as in:
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
59
60 % ./configure
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
61
62 If the source code was obtained by cloning the Gambit repository, the
63 following commands should then be entered to make sure that any stale
64 .c files obtained from the repository are updated:
65
66 % make bootstrap
67 % make bootclean
f5072fc @feeley Fix bootstrapping instructions so that modifications to the Gambit co…
authored
68 % make bootstrap
69 % make bootclean
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
70
f5072fc @feeley Fix bootstrapping instructions so that modifications to the Gambit co…
authored
71 The first "make boostrap" builds the Gambit compiler that was current
72 at the last release. The second "make boostrap" uses that compiler to
73 build the Gambit compiler of the master branch. That compiler is
74 finally used in the last "make" to create up to date .c files from the
75 .scm files.
76
93563f8 @feeley Improve build instructions in README and INSTALL.txt
authored
77 Then the system can be built by invoking "make":
78
79 % make
80
c44d707 @feeley Add the make target "all-from-repo-clone" to simplify the build instr…
authored
81 If the source code was obtained by cloning the Gambit repository,
82 these steps can be shortened to the following commands:
83
84 % ./configure
d0062bf @feeley Rename make target "all-from-repo-clone" to "from-scratch"
authored
85 % make from-scratch
c44d707 @feeley Add the make target "all-from-repo-clone" to simplify the build instr…
authored
86
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
87 The system can then be tested and installed using the following
88 commands:
89
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
90 % make check
91 % sudo make install
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
92
93563f8 @feeley Improve build instructions in README and INSTALL.txt
authored
93 On a computer with multiple cores it is normally beneficial to build
94 the system in parallel by adding a "-j" option to all the invocations
95 of "make" before "make check". For example:
96
d0062bf @feeley Rename make target "all-from-repo-clone" to "from-scratch"
authored
97 % make -j4 from-scratch
93563f8 @feeley Improve build instructions in README and INSTALL.txt
authored
98
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
99
100 3) Recommended "configure" script options
101 =========================================
102
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
103 The configure script, which was generated by the "autoconf" tool,
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
104 accepts many command line options that control various features.
105
106 It is ***highly*** recommended to use the --enable-single-host option
107 to improve the execution speed and compactness of the executables:
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
108
109 % ./configure --enable-single-host
110
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
111 By using the --enable-single-host option, the speed of the Gambit
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
112 interpreter improves by roughly a factor of 2.
113
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
114 It is also ***highly*** recommended to use the --enable-c-opt option
115 to enable a higher C optimization level (-O2 instead of -O1):
116
117 % ./configure --enable-single-host --enable-c-opt
118
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
119 By using the --enable-c-opt option, the speed of the Gambit
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
120 interpreter improves by roughly 10% (when compiled with gcc 4.2.1 on
121 Mac OS X). Note that some C compilers generate incorrect code when
122 compiling Gambit with --enable-c-opt, notably gcc 4.6.0 .
123
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
124 It is also ***highly*** recommended to use the GCC compiler to build
125 the system as the source code can take advantage of some GCC
126 extensions. Notably the use of GCC's computed gotos reduces the
127 execution time by roughly 35%.
128
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
129 When using some versions of the GCC compiler it is possible to use the
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
130 --enable-gcc-opts option to further improve the execution speed (by
131 about 3%) and compactness of the executables:
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
132
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
133 % ./configure --enable-single-host --enable-c-opt --enable-gcc-opts
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
134
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
135 Note that this option might degrade the execution speed, so it is best
136 to build the system both ways and see which works best for your
137 version of GCC.
138
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
139 These options are not used by default because compilation is much
140 longer and requires more RAM. In fact some platforms may not have
141 enough resources to build the system this way. With
142 --enable-single-host the build takes roughly 500 megabytes and 2 to 4
143 minutes on a 2 GHz Intel Core Duo based MacBook Pro with the GCC 4.0.1
144 compiler instead of 300 megabytes and 1 to 2 minutes when
145 --enable-single-host is not used. With --enable-single-host and
146 --enable-gcc-opts the build takes roughly 2 gigabytes and over 10
147 minutes.
148
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
149 We recommend that users build Gambit with GCC 3.3 or later.
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
150 With Gambit configured with --enable-single-host and --enable-c-opt
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
151 GCC 3.3.2 will compile C code generated by the Gambit compiler
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
152 relatively quickly and will generally produce the fastest code.
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
153
154 The compile time varies greatly from one version of GCC to the next
155 (usually a more recent version is better, but not always). This is
156 because the algorithms used to implement the optimizations performed
157 by the compiler evolve and vary in computational complexity. Since
158 the C files are so large, the compile time is very sensitive to the
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
159 computational complexity of the optimization algorithms. See the
160 table at the end of this file for performance information for
161 different versions of GCC.
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
162
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
163 Finally, in order to support installing multiple versions of Gambit,
164 it is recommended to use these options:
165
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
166 % ./configure --enable-single-host --enable-c-opt --enable-gcc-opts --enable-multiple-versions
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
167
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
168
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
169 4) Other options of the "configure" script
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
170 ==========================================
171
172 The detailed list of options accepted by the "configure" script can be
173 obtained with:
174
175 % ./configure --help
176
177 Most options are the same as for other autoconf generated configure
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
178 scripts. For example, you can select the central installation
179 directory with the option --prefix:
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
180
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
181 % ./configure --prefix=/Users/feeley/my-gambit
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
182 % make install
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
183 % ~/my-gambit/bin/gsi
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
184 Gambit v4.8.0
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
185 ...
186
187 If the --prefix option is not used, the default is to install all
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
188 files in /usr/local/Gambit and its subdirectories, namely "bin",
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
189 "lib", "include", etc. The files that would normally go in these
4e64437 @feeley Update README and INSTALL.txt with repo cloning instructions.
authored
190 subdirectories can be redirected to other directories using
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
191 the following configure options:
192
193 --bindir=DIR executables (gsi, gsc, ...)
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
194 --libdir=DIR libraries (libgambit.a, syntax-case.scm, ...)
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
195 --includedir=DIR C header files (gambit.h, ...)
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
196 --docdir=DIR documentation (gambit.pdf, gambit.html, ...)
197 --infodir=DIR info documentation (gambit.info, ...)
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
198 --datadir=DIR read-only architecture-independent data (gambit.el)
199
200 Note that the install target of the makefiles supports the DESTDIR
201 environment variable which allows staging an install to a specific
202 directory. The command:
203
204 % make install DESTDIR=/Users/feeley/stage
205
206 will install all the files in /Users/feeley/stage as though it was the
207 root of the filesystem. Note that the use of DESTDIR is incompatible
208 with the combination of --enable-shared and
209 --enable-absolute-shared-libs options.
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
210
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
211 The configure options which are specific to the Gambit system are:
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
212
213 --enable-single-host compile each Scheme module as a single C function
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
214 --enable-c-opt[=level] use higher C optimization level
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
215 --enable-gcc-opts use expensive GCC optimizations
4131f9c @feeley Add --enable-gnu-gcc-no-strict-aliasing configuration option
authored
216 --enable-gnu-gcc-specific-options
217 use GNU GCC specific options (default=YES)
218 --enable-gnu-gcc-no-strict-aliasing
219 use GNU GCC -fno-strict-aliasing option (default=YES)
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
220 --enable-cplusplus compile using C++ compiler
221 --enable-shared build the Scheme runtime system as a shared library
222 --enable-debug build system so that it can be debugged
bdbfc01 @feeley Finer control over enabled configurable debugging options to avoid sl…
authored
223 --enable-debug-ctrl-flow-history
224 build system so that it tracks the control flow
225 history
226 --enable-debug-host-changes
227 build system so that it tracks the host changes
228 --enable-debug-garbage-collector
229 build system so that it detects issues in the
230 garbage collector
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
231 --enable-profile build system so that it can be profiled
9c2ad15 @feeley Add --enable-coverage and fix coverage of dynamically loaded object f…
authored
232 --enable-coverage build system to accumulate coverage statistics
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
233 --enable-feedback1 build system to accumulate trial run data
234 --enable-feedback2 build system using trial run feedback
235 --enable-inline-jumps generate inline code for jumps
236 --enable-char-size=N Scheme character size in bytes (N = 1, 2 or 4)
d5cae3d @feeley Implement --enable-path-encoding=X configure option and make default …
authored
237 --enable-path-encoding=utf8|latin1|ucs2|ucs4|wchar|native
238 Filesystem path encoding (default is ucs2 on Windows
239 and utf8 on other OSes)
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
240 --enable-ansi-c link only with ANSI C libraries
241 --enable-symlinks use symbolic links for installed files not in the
242 central installation directory
ba61905 @feeley Add --enable-interpreter-name=INTERP and --enable-compiler-name=COMP …
authored
243 --enable-interpreter-name=INTERP
244 choose name for Gambit interpreter (default = gsi)
245 --enable-compiler-name=COMP
246 choose name for Gambit compiler (default = gsc)
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
247 --enable-multiple-versions
248 multiple installed versions are supported
249 --enable-absolute-shared-libs
250 shared libraries should be linked to using an
251 absolute path
b90844c @feeley Fix misspelled configure option
authored
252 --enable-versioned-shared-libs
4e39584 Add support for versionned shared libs and general cleanup of makefiles
Marc Feeley authored
253 add version numbers to the shared libraries
254 --enable-lib-suffix[=<suffix>]
255 add a suffix to the library names
c6c7081 @feeley Added support for viewing the Gambit manual (REPL ,h command and help…
authored
256 --enable-help-browser=BROWSER
257 use the specified browser to view documentation
258 requested through the help procedure or REPL
c6e851a @feeley Add --disable-type-checking configuration option to cause primitives …
authored
259 --enable-type-checking
260 cause primitives to perform type checking
261 of their arguments
262 (requires: make bootstrap; make bootclean; make)
abb08f5 @feeley Add --enable-auto-forcing configuration option to enable automaticall…
authored
263 --enable-auto-forcing
264 cause strict operations such as car, but not
265 cons, to automatically force their arguments
266 (requires: make bootstrap; make bootclean; make)
ade9476 @feeley Add configure option to build Scheme runtime library with debugging i…
authored
267 --enable-rtlib-debug
268 cause the inclusion of all debugging information
269 in the code generated for the Scheme runtime library
270 (requires: make bootstrap; make bootclean; make)
271 --enable-rtlib-debug-location
272 cause the inclusion of source code location
273 debugging information in the code generated
274 for the Scheme runtime library
275 (requires: make bootstrap; make bootclean; make)
276 --enable-rtlib-debug-source
277 cause the inclusion of source code debugging
278 information in the code generated for the
279 Scheme runtime library
280 (requires: make bootstrap; make bootclean; make)
281 --enable-rtlib-debug-environments
282 cause the inclusion of environment debugging
283 information in the code generated for the
284 Scheme runtime library
285 (requires: make bootstrap; make bootclean; make)
c4da317 @feeley Add --enable-track-scheme configuration option
authored
286 --enable-track-scheme cause the inclusion of Scheme code location in
287 C code generated
288 (requires: make bootstrap; make bootclean; make)
bdbfc01 @feeley Finer control over enabled configurable debugging options to avoid sl…
authored
289 --enable-poll use poll as the select method
290 --enable-high-res-timing
291 enable high-resolution timing on Windows
d93f510 @feeley Major refactoring to support multiple VMs and multiple threaded VMs
authored
292 --enable-thread-system[=thread-system]
293 cause the selection of a specific thread system
294 (either posix or win32)
295 --enable-multiple-vms
296 compiles with support for instantiating more
297 than one Gambit VM (implies --enable-thread-system)
298 --enable-multiple-threaded-vms
299 compiles with support for having more than one
300 OS thread per Gambit VM (implies
301 --enable-thread-system)
4b4ac1c @feeley Code to support multiple OS threads per Gambit VM instance
authored
302 --enable-max-processors=N
303 max number of processors per Gambit VM
304 (default is 64)
bdbfc01 @feeley Finer control over enabled configurable debugging options to avoid sl…
authored
305 --enable-openssl compile with SSL support using OpenSSL
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
306
307 The option --enable-cplusplus should be used when applications
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
308 developped with the Gambit compiler are to be linked with code or
309 libraries written in C++. This will compile all of the Gambit
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
310 source code with a C++ compiler instead of a C compiler (this is
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
311 possible because the code generated by the Gambit compiler conforms
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
312 both to C and C++ and also Objective-C).
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
313
314 The option --enable-shared will build a shared library for the
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
315 Gambit runtime system. This is not supported on all platforms. The
4e39584 Add support for versionned shared libs and general cleanup of makefiles
Marc Feeley authored
316 runtime library is located in the "lib" installation directory. All
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
317 programs built with Gambit, including the interpreter and compiler,
4e39584 Add support for versionned shared libs and general cleanup of makefiles
Marc Feeley authored
318 need to find this library when they are executed and consequently this
319 directory must be in the path searched by the system for
320 shared-libraries. This path is normally specified through an
321 environment variable which is "LD_LIBRARY_PATH" on most versions of
322 UNIX, "LIBPATH" on AIX, "SHLIB_PATH" on HPUX, "DYLD_LIBRARY_PATH" on
323 OS X, and "PATH" on Microsoft Windows.
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
324
65f260e @feeley Fix makefile problem with --enable-feedback1 and --enable-feedback2.
authored
325 The options --enable-debug and --enable-profile are useful for
326 debugging the system.
327
328 The options --enable-feedback1 and --enable-feedback2 are useful for
329 building the system such that it is optimized for a particular use
330 case. The system should first be built with --enable-feedback1, then
331 one or more sample executions of the system should be performed, and
332 then finally the system should be built with --enable-feedback2. For
333 example:
334
5ff63b7 @feeley Fix typo in INSTALL.txt
authored
335 % ./configure --enable-single-host --enable-feedback1
65f260e @feeley Fix makefile problem with --enable-feedback1 and --enable-feedback2.
authored
336 % make
337 % gsc/gsc -:=. my-favorite-program.scm
338 % gsi/gsi -:=. my-favorite-program.o1
339 % make mostlyclean
5ff63b7 @feeley Fix typo in INSTALL.txt
authored
340 % ./configure --enable-single-host --enable-feedback2
65f260e @feeley Fix makefile problem with --enable-feedback1 and --enable-feedback2.
authored
341 % make
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
342
343 The option --enable-symlinks is useful when the --bindir, --libdir,
344 ... options are used. The files will actually be stored in the
345 central installation directory and symbolic links to those files will
346 be stored in the directories specified to --bindir, --libdir, ...
347
ba61905 @feeley Add --enable-interpreter-name=INTERP and --enable-compiler-name=COMP …
authored
348 The options --enable-interpreter-name=INTERP and
349 --enable-compiler-name=COMP are useful when names different from the
350 defaults are needed (i.e. gsi and gsc respectively). These options
351 should be used only when absolutely necessary because users will
352 expect the defaults (from reading documentation, talking with users on
353 a different OS, etc). We strongly suggest that the names start with
354 gsi and gsc respectively, so that shell tab completion will help the
355 user discover the correct name.
356
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
357 The option --enable-multiple-versions allows multiple versions of
358 Gambit to be installed. When it is enabled the path of the central
359 installation directory (specified with --prefix) is automatically
360 extended with a subdirectory which is the version number, and a
361 "current" symbolic link points to the version subdirectory. All
362 symbolic links created as a result of the --enable-symlinks option
363 will refer to the files indirectly through the "current" symbolic
364 link. Switching to a different version of Gambit can be done by
365 simply redirecting the "current" symbolic link to another version
366 subdirectory.
367
368 When --enable-shared is used, the option --enable-absolute-shared-libs
369 will install executables (for gsi and gsc) which contain references to
370 the absolute paths of the libraries. This is necessary when multiple
371 versions of Gambit are installed so that each executable refers to the
372 appropriate Gambit shared library. This is the default behavior.
373 Note that this option is incompatible with the use of DESTDIR because
374 the executables can only be linked after the Gambit shared libraries
375 are installed in their final destination.
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
376
b90844c @feeley Fix misspelled configure option
authored
377 When --enable-shared is used, the option --enable-versioned-shared-libs
4e39584 Add support for versionned shared libs and general cleanup of makefiles
Marc Feeley authored
378 will add a version number after the shared library extension. For
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
379 example the Gambit v4.8.0 runtime shared library which is normally
380 libgambit.so will be named libgambit.so.4.8.0 . This also creates
381 symbolic links to the shared library under the names libgambit.so and
382 libgambit.so.4 .
4e39584 Add support for versionned shared libs and general cleanup of makefiles
Marc Feeley authored
383
384 The option --enable-lib-suffix will add an explicit suffix to the names
385 of the libraries. If not specified the suffix will default to the version
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
386 number. For example the Gambit v4.8.0 runtime library which is normally
387 libgambit.a will be named libgambit-v4_8_0.a and it must be linked to with
388 the C compiler option -lgambit-v4_8_0 . If you give this option a value,
4e39584 Add support for versionned shared libs and general cleanup of makefiles
Marc Feeley authored
389 as in --enable-lib-suffix=<suffix> then <suffix> will be used as a suffix.
390
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
391 By default the configure script will use the GCC compiler to build the
392 system, if it is available. To override this choice or to use special
393 C compiler flags it is possible to set the environment variables CC,
394 CFLAGS, LDFLAGS, etc in the shell or on the configure command line.
395 Object file compilation options should go in CFLAGS, link options
396 should go in LDFLAGS, and options that apply to both can be next to
397 the name of the C compiler in CC. Here are some examples.
398
399 - To use cc instead of gcc:
400
401 % ./configure CC=cc
402
403 - On a Sun Sparc workstation, the following will use the Sun
404 Workshop C/C++ compiler and generate 64 bit executables (the heap
405 can grow beyond 4 Gbytes):
406
407 % ./configure CC="cc -xtarget=native -xarch=v9"
408
409 - On a Compaq Alpha workstation, the following will use the Compaq
410 Tru64 UNIX C/C++ compiler and generate executables that use 32 bit
411 addressing instead of the normal 64 bit addressing (the heap and
412 code will be in the lower 4 GBytes of the address space):
413
414 % ./configure CC=cc CFLAGS="-w -D___USE_32_BIT_ADDR" LDFLAGS=-taso
415
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
416 - By default, Gambit's runtime system does not restrict the size
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
417 of the Scheme heap. A heap overflow will only be signalled when
418 virtual memory is all used up, which can take a long time and
419 cause lots of paging. This is not ideal for an educational
420 environment where endless recursions are commonplace. The symbol
421 ___FORCE_MAX_HEAP can be defined to put a limit on the size of the
422 heap. To get a 5000 kilobyte limit (a reasonable amount for an
423 educational environment) the system could be configured with:
424
425 % ./configure CFLAGS="-D___FORCE_MAX_HEAP=5000"
426
427
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
428 5) Other "make" targets
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
429 =======================
430
431 Here is a description of the most useful "make" targets:
432
4fdf5bc @feeley Document the from-scratch make target.
authored
433 % make from-scratch Builds the system from source where the .c
434 files which are generated from .scm files
435 are stale. This is normally the case after
436 cloning the Gambit repository (because the
437 repository HEAD keeps track of the latest
438 .scm files, but not the .c files generated
439 from them). This way of building Gambit may
440 fail if the Gambit compiler itself has
441 evolved in an incompatible way since the latest
442 release (the Gambit maintainer should prevent
443 this situation by creating a release when the
444 compiler changes incompatibly).
445
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
446 % make bootstrap Builds the system and copies the gsc
4e64437 @feeley Update README and INSTALL.txt with repo cloning instructions.
authored
447 executable to gsc-boot in the root directory.
448 The makefiles call up gsc-boot to
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
449 compile the Scheme source files
450 in the system if they are modified.
451
452 % make mostlyclean Removes all the files that can be
bd1877c @feeley Change makefile targets (clean, bootclean, realclean) to be more intu…
authored
453 regenerated using basic tools
454 (C compiler, sed, etc). The feedback
455 files are not removed.
456
457 % make clean Removes all the files that are created
458 from a pristine distribution during
459 a "make" (object files, libraries,
460 gsi, gsc, etc).
461
462 % make bootclean Like "make clean", but also removes the
4e64437 @feeley Update README and INSTALL.txt with repo cloning instructions.
authored
463 C files that the gsc-boot compiler can
bd1877c @feeley Change makefile targets (clean, bootclean, realclean) to be more intu…
authored
464 create from the Scheme source files. This
465 should only be used after a successful
466 "make bootstrap". The next "make" will
467 compile the whole system from scratch,
468 including compiling the Scheme sources
4e64437 @feeley Update README and INSTALL.txt with repo cloning instructions.
authored
469 to C, using gsc-boot.
bd1877c @feeley Change makefile targets (clean, bootclean, realclean) to be more intu…
authored
470
471 % make realclean Like "make bootclean", but also removes all
472 the files which can be created using the
473 configure script (this includes the makefiles).
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
474
475 % make check Checks that gsi and gsc pass some
476 basic tests by running a few Scheme
477 programs with gsi and gsc.
478
479 % make examples Runs the programs in the "examples"
480 subdirectory.
481
482 % make dist Creates a compressed tar file of
483 the system.
484
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
485 % make dist-devel Creates a compressed tar file of
486 the system including all the source code
487 management files.
488
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
489 % make doc Builds the documentation.
490
321d6cd @feeley Miscellaneous changes to improve flexibility of installation.
authored
491 % make rc-setup For initial setup of source code
492 management using git. This should
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
493 only be performed by the Gambit maintainers.
494
4e64437 @feeley Update README and INSTALL.txt with repo cloning instructions.
authored
495 % make new-revision Changes the version number of the system,
496 % make new-minor by incrementing either the revision number,
497 % make new-major the minor number or the major number.
498 This should only be performed by the
499 Gambit maintainers after thorough testing.
500
501 % make release Builds source tarball and installers.
502 This is normally done after changing
503 the version number of the system.
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
504 Note: this make target is very platform
505 specific and is intended for the Gambit
506 maintainers.
507
4e64437 @feeley Update README and INSTALL.txt with repo cloning instructions.
authored
508 % make prebuilt Builds installers for Mac OS X and Windows.
509 This is normally done after changing
510 the version number of the system.
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
511 Note: this make target is very platform
512 specific and is intended for the Gambit
513 maintainers.
514
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
515 % make commit Commits changes to the system's source code.
516 This should only be performed by the
517 Gambit maintainers after thorough testing.
518
519
520 % make push Pushes the changes to the Gambit repository.
521 This should only be performed by the
522 Gambit maintainers after thorough testing.
523
524 % make pull Pulls changes from the Gambit repository.
525
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
526
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
527 6) Building on Microsoft Windows
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
528 ================================
529
530 There are several alternatives for building the system on Microsoft
531 Windows:
532
533 a) Use the free MSYS/MinGW development environment (Minimalist GNU
534 for Windows, www.mingw.org). Install MinGW and MSYS, then follow
535 the instructions above (i.e. "./configure" followed by "make").
536
537 b) Use the free Cygwin development environment
538 (http://www.cygwin.com/). Install Cygwin, then follow the
539 instructions above (i.e. "./configure" followed by "make").
540
541 c) Use the Open Watcom compiler which can be obtained at no charge
542 from http://openwatcom.mirrors.pair.com/. You must perform a
543 full installation of the Open Watcom compiler in C:\WATCOM. From
544 the shell, execute the batch file "misc\openwatcom.bat".
545
546 d) Use the Microsoft Visual C++ 2005 Express Edition which can be
547 obtained at no charge from Microsoft at this URL:
548 http://msdn.microsoft.com/vstudio/express/downloads/default.aspx .
549 You must also install the Microsoft Platform SDK. From the
550 shell, execute the batch file "misc\vcexpress.bat".
551
552 e) Use Microsoft Visual Studio .NET 2003. You must unzip
553 "misc\vstudio.zip" in the Gambit distribution's root directory.
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
554 Then with Microsoft Visual Studio open "gambit.sln" and select
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
555 "Build Solution" (Ctrl+Shift+B).
556
557
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
558 7) If you can't build the system on your platform
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
559 =================================================
560
561 The configure script tailors the build process to your platform.
562 Although it can adapt to a wide range of platforms there are cases
563 where it is not clever enough to do it completely automatically.
564
565 In this case you need to modify the configure script (the file
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
566 "configure.ac") and/or the source code of the Gambit system. Most
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
567 of the system dependent code is located in the files
568 "include/gambit.h", "lib/os*.h" and "lib/os*.c". Never modify the C
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
569 files generated by the Gambit compiler (these files usually have a
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
570 name that starts or ends with an underscore).
571
47a7d56 @feeley [COMPILER CHANGES NEEDED FOR v4.8.0] Changed version in compiler
authored
572 If you needed to modify any file to get Gambit to work properly on
1b67821 @feeley Initial commit of Gambit-C v4.0.0
authored
573 your system, please send your modifications along with your machine/OS
574 specification to
575
576 gambit@iro.umontreal.ca
577
578 so that it can be added to the next release.
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
579
580
581 8) Performance of GCC and CLANG when compiling Gambit
582 =====================================================
583
584 In order to investigate some issues with the use of the --enable-c-opt
585 C compiler option the system's performance was measured when built
586 with and without --enable-c-opt, and with --enable-multiple-hosts and
587 --enable-single-host, and with all 65 releases of gcc since version
588 2.95 and with clang 2.6 to 3.0 .
589
590 The machine used is a x86_64 linux machine with 48 GB of RAM, but in
591 order to compile the early releases of gcc and to be able to compare
592 all versions of gcc, 32 bit executables of gcc and Gambit were used
593 (so at most 4 GB of RAM is used by the processes). Gambit v4.6.6 was
594 used.
595
596 To measure the performance of the resulting system, the gsi
597 interpreter was executed on a moderately complex program
598 (tests/mix.scm). The elapsed time was measured for building Gambit
599 sequentially (i.e. a simple "make" after the appropriate "./configure
600 ..."). Both the absolute time in seconds and the time relative to the
601 smallest time is indicated. The tables are given below.
602
603
604 **** Execution time of tests/mix.scm when run by gsi
605
606 | --enable-multiple-hosts | --enable-single-host |
607 | | --enable-c-opt | | --enable-c-opt |
608 gcc | secs rel | secs rel | secs rel | secs rel |
609 -------+----------------+----------------+----------------+----------------+
610 2.95 | 5.34 ( 2.03) | 5.30 ( 2.01) | 2.97 ( 1.13) | 2.90 ( 1.10) |
611 -------+----------------+----------------+----------------+----------------+
612 2.95.1 | 5.38 ( 2.04) | 5.43 ( 2.06) | 2.97 ( 1.13) | 2.90 ( 1.10) |
613 -------+----------------+----------------+----------------+----------------+
614 2.95.2 | 5.32 ( 2.02) | 5.46 ( 2.07) | 2.97 ( 1.13) | 2.87 ( 1.09) |
615 -------+----------------+----------------+----------------+----------------+
616 2.95.3 | 5.31 ( 2.02) | 5.40 ( 2.05) | 2.87 ( 1.09) | 3.04 ( 1.15) |
617 -------+----------------+----------------+----------------+----------------+
618 3.0 | 5.44 ( 2.06) | 5.31 ( 2.02) | 3.01 ( 1.14) | 3.30 ( 1.25) |
619 -------+----------------+----------------+----------------+----------------+
620 3.0.1 | 5.42 ( 2.06) | 5.37 ( 2.04) | 2.95 ( 1.12) | 2.88 ( 1.09) |
621 -------+----------------+----------------+----------------+----------------+
622 3.0.2 | 5.53 ( 2.10) | 5.37 ( 2.04) | 2.95 ( 1.12) | 2.89 ( 1.10) |
623 -------+----------------+----------------+----------------+----------------+
624 3.0.3 | 5.41 ( 2.05) | 6.06 ( 2.30) | 2.91 ( 1.10) | 2.92 ( 1.11) |
625 -------+----------------+----------------+----------------+----------------+
626 3.0.4 | 5.50 ( 2.09) | 5.41 ( 2.05) | 2.93 ( 1.11) | 2.84 ( 1.08) |
627 -------+----------------+----------------+----------------+----------------+
628 3.1 | 5.49 ( 2.08) | 5.48 ( 2.08) | 2.96 ( 1.13) | 2.98 ( 1.13) |
629 -------+----------------+----------------+----------------+----------------+
630 3.1.1 | 5.49 ( 2.09) | 5.89 ( 2.24) | 3.04 ( 1.15) | 3.00 ( 1.14) |
631 -------+----------------+----------------+----------------+----------------+
632 3.2 | 5.44 ( 2.06) | 5.51 ( 2.09) | 3.03 ( 1.15) | 3.00 ( 1.14) |
633 -------+----------------+----------------+----------------+----------------+
634 3.2.1 | 5.60 ( 2.13) | 5.66 ( 2.15) | 3.05 ( 1.16) | 3.05 ( 1.16) |
635 -------+----------------+----------------+----------------+----------------+
636 3.2.2 | 5.63 ( 2.14) | 5.66 ( 2.15) | 2.94 ( 1.12) | 3.05 ( 1.16) |
637 -------+----------------+----------------+----------------+----------------+
638 3.2.3 | 5.45 ( 2.07) | 5.61 ( 2.13) | 3.03 ( 1.15) | 3.09 ( 1.17) |
639 -------+----------------+----------------+----------------+----------------+
640 3.3 | 5.35 ( 2.03) | 5.26 ( 2.00) | 2.93 ( 1.11) | 2.67 ( 1.01) |
641 -------+----------------+----------------+----------------+----------------+
642 3.3.1 | 5.36 ( 2.03) | 5.28 ( 2.00) | 2.90 ( 1.10) | 2.66 ( 1.01) |
643 -------+----------------+----------------+----------------+----------------+
644 3.3.2 | 5.35 ( 2.03) | 5.37 ( 2.04) | 3.31 ( 1.26) | 2.63 ( 1.00) |
645 -------+----------------+----------------+----------------+----------------+
646 3.3.3 | 5.35 ( 2.03) | 5.30 ( 2.01) | 2.90 ( 1.10) | 2.64 ( 1.00) |
647 -------+----------------+----------------+----------------+----------------+
648 3.3.4 | 5.20 ( 1.98) | 5.31 ( 2.02) | 2.83 ( 1.08) | 2.69 ( 1.02) |
649 -------+----------------+----------------+----------------+----------------+
650 3.3.5 | 5.21 ( 1.98) | 5.53 ( 2.10) | 2.83 ( 1.08) | 2.69 ( 1.02) |
651 -------+----------------+----------------+----------------+----------------+
652 3.3.6 | 5.30 ( 2.01) | 5.25 ( 1.99) | 3.20 ( 1.21) | 2.69 ( 1.02) |
653 -------+----------------+----------------+----------------+----------------+
654 3.4.0 | 5.47 ( 2.08) | 5.37 ( 2.04) | 2.87 ( 1.09) | 2.86 ( 1.08) |
655 -------+----------------+----------------+----------------+----------------+
656 3.4.1 | 5.54 ( 2.10) | 5.40 ( 2.05) | 2.82 ( 1.07) | 2.90 ( 1.10) |
657 -------+----------------+----------------+----------------+----------------+
658 3.4.2 | 5.41 ( 2.05) | 5.41 ( 2.05) | 2.81 ( 1.07) | 2.91 ( 1.10) |
659 -------+----------------+----------------+----------------+----------------+
660 3.4.3 | 5.41 ( 2.05) | 5.44 ( 2.06) | 2.85 ( 1.08) | 2.91 ( 1.10) |
661 -------+----------------+----------------+----------------+----------------+
662 3.4.4 | 5.63 ( 2.14) | 5.41 ( 2.06) | 2.89 ( 1.10) | 2.88 ( 1.09) |
663 -------+----------------+----------------+----------------+----------------+
664 3.4.5 | 5.63 ( 2.14) | 5.38 ( 2.04) | 2.89 ( 1.10) | 2.81 ( 1.07) |
665 -------+----------------+----------------+----------------+----------------+
666 3.4.6 | 5.66 ( 2.15) | 6.51 ( 2.47) | 3.08 ( 1.17) | 2.80 ( 1.06) |
667 -------+----------------+----------------+----------------+----------------+
668 4.0.0 | 5.38 ( 2.04) | 5.24 ( 1.99) | 2.95 ( 1.12) | 3.01 ( 1.14) |
669 -------+----------------+----------------+----------------+----------------+
670 4.0.1 | 5.38 ( 2.04) | 5.25 ( 1.99) | 2.95 ( 1.12) | 3.01 ( 1.14) |
671 -------+----------------+----------------+----------------+----------------+
672 4.0.2 | 5.49 ( 2.09) | 5.26 ( 2.00) | 2.96 ( 1.12) | 2.98 ( 1.13) |
673 -------+----------------+----------------+----------------+----------------+
674 4.0.3 | 5.40 ( 2.05) | 5.22 ( 1.98) | 2.98 ( 1.13) | 2.98 ( 1.13) |
675 -------+----------------+----------------+----------------+----------------+
676 4.0.4 | 5.38 ( 2.04) | 5.22 ( 1.98) | 2.96 ( 1.12) | 2.97 ( 1.13) |
677 -------+----------------+----------------+----------------+----------------+
678 4.1.0 | 5.52 ( 2.10) | 5.35 ( 2.03) | 3.14 ( 1.19) | 2.81 ( 1.07) |
679 -------+----------------+----------------+----------------+----------------+
680 4.1.1 | 5.55 ( 2.11) | 5.32 ( 2.02) | 3.17 ( 1.20) | 2.84 ( 1.08) |
681 -------+----------------+----------------+----------------+----------------+
682 4.1.2 | 5.51 ( 2.09) | 5.28 ( 2.00) | 2.91 ( 1.11) | 2.88 ( 1.09) |
683 -------+----------------+----------------+----------------+----------------+
684 4.2.0 | 5.44 ( 2.06) | 5.33 ( 2.02) | 3.02 ( 1.14) | 2.81 ( 1.07) |
685 -------+----------------+----------------+----------------+----------------+
686 4.2.1 | 5.46 ( 2.07) | 5.28 ( 2.01) | 3.02 ( 1.14) | 2.81 ( 1.07) |
687 -------+----------------+----------------+----------------+----------------+
688 4.2.2 | 5.45 ( 2.07) | 5.29 ( 2.01) | 3.02 ( 1.15) | 2.81 ( 1.07) |
689 -------+----------------+----------------+----------------+----------------+
690 4.2.3 | 5.44 ( 2.07) | 5.28 ( 2.01) | 3.02 ( 1.15) | 2.81 ( 1.07) |
691 -------+----------------+----------------+----------------+----------------+
692 4.2.4 | 5.53 ( 2.10) | 5.29 ( 2.01) | 3.08 ( 1.17) | 2.81 ( 1.07) |
693 -------+----------------+----------------+----------------+----------------+
694 4.3.0 | 5.71 ( 2.17) | 5.42 ( 2.06) | 3.36 ( 1.28) | 3.52 ( 1.34) |
695 -------+----------------+----------------+----------------+----------------+
696 4.3.1 | 5.71 ( 2.17) | 5.42 ( 2.06) | 3.36 ( 1.28) | 3.52 ( 1.33) |
697 -------+----------------+----------------+----------------+----------------+
698 4.3.2 | 5.50 ( 2.09) | 5.35 ( 2.03) | 3.36 ( 1.28) | 3.50 ( 1.33) |
699 -------+----------------+----------------+----------------+----------------+
700 4.3.3 | 5.50 ( 2.09) | 5.44 ( 2.07) | 3.36 ( 1.27) | 3.48 ( 1.32) |
701 -------+----------------+----------------+----------------+----------------+
702 4.3.4 | 5.57 ( 2.11) | 5.47 ( 2.08) | 3.33 ( 1.27) | 3.50 ( 1.33) |
703 -------+----------------+----------------+----------------+----------------+
704 4.3.5 | 5.56 ( 2.11) | 5.46 ( 2.07) | 3.35 ( 1.27) | 3.49 ( 1.33) |
705 -------+----------------+----------------+----------------+----------------+
706 4.3.6 | 5.56 ( 2.11) | 5.46 ( 2.07) | 3.34 ( 1.27) | 3.49 ( 1.33) |
707 -------+----------------+----------------+----------------+----------------+
708 4.4.0 | 5.71 ( 2.17) | 5.48 ( 2.08) | 3.18 ( 1.21) | 2.91 ( 1.11) |
709 -------+----------------+----------------+----------------+----------------+
710 4.4.1 | 5.79 ( 2.20) | 5.45 ( 2.07) | 3.01 ( 1.14) | 2.94 ( 1.12) |
711 -------+----------------+----------------+----------------+----------------+
712 4.4.2 | 5.78 ( 2.20) | 5.38 ( 2.04) | 3.01 ( 1.14) | 2.98 ( 1.13) |
713 -------+----------------+----------------+----------------+----------------+
714 4.4.3 | 5.82 ( 2.21) | 5.37 ( 2.04) | 3.01 ( 1.14) | 2.84 ( 1.08) |
715 -------+----------------+----------------+----------------+----------------+
716 4.4.4 | 5.76 ( 2.19) | 5.36 ( 2.04) | 2.95 ( 1.12) | 2.99 ( 1.14) |
717 -------+----------------+----------------+----------------+----------------+
718 4.4.5 | 5.76 ( 2.19) | 5.33 ( 2.02) | 2.91 ( 1.11) | 2.89 ( 1.10) |
719 -------+----------------+----------------+----------------+----------------+
720 4.4.6 | 5.76 ( 2.19) | 5.45 ( 2.07) | 2.91 ( 1.10) | 2.92 ( 1.11) |
721 -------+----------------+----------------+----------------+----------------+
722 4.4.7 | 5.76 ( 2.19) | 5.45 ( 2.07) | 2.91 ( 1.10) | 2.92 ( 1.11) |
723 -------+----------------+----------------+----------------+----------------+
724 4.5.0 | 5.40 ( 2.05) | 5.30 ( 2.01) | 2.95 ( 1.12) | 2.77 ( 1.05) |
725 -------+----------------+----------------+----------------+----------------+
726 4.5.1 | 5.36 ( 2.03) | 5.42 ( 2.06) | 2.87 ( 1.09) | 2.83 ( 1.08) |
727 -------+----------------+----------------+----------------+----------------+
728 4.5.2 | 5.36 ( 2.03) | 5.42 ( 2.06) | 2.85 ( 1.08) | 2.86 ( 1.08) |
729 -------+----------------+----------------+----------------+----------------+
730 4.5.3 | 5.36 ( 2.04) | 5.24 ( 1.99) | 2.85 ( 1.08) | 2.86 ( 1.09) |
731 -------+----------------+----------------+----------------+----------------+
732 4.6.0 | 5.33 ( 2.02) | crash | 2.84 ( 1.08) | crash |
733 -------+----------------+----------------+----------------+----------------+
734 4.6.1 | 5.31 ( 2.02) | 5.06 ( 1.92) | 2.85 ( 1.08) | 2.68 ( 1.02) |
735 -------+----------------+----------------+----------------+----------------+
736 4.6.2 | 5.30 ( 2.01) | 5.13 ( 1.95) | 2.87 ( 1.09) | 2.70 ( 1.02) |
737 -------+----------------+----------------+----------------+----------------+
738 4.6.3 | 5.30 ( 2.01) | 5.13 ( 1.95) | 2.87 ( 1.09) | 2.70 ( 1.03) |
739 -------+----------------+----------------+----------------+----------------+
740 4.7.0 | 5.22 ( 1.98) | 4.95 ( 1.88) | 2.89 ( 1.10) | 2.70 ( 1.03) |
741 -------+----------------+----------------+----------------+----------------+
742
743
744 **** Elapsed time of "make"
745
746 | --enable-multiple-hosts | --enable-single-host |
747 | | --enable-c-opt | | --enable-c-opt |
748 gcc | secs rel | secs rel | secs rel | secs rel |
749 -------+----------------+----------------+----------------+----------------+
750 2.95 | 34.00 ( 1.03) | 42.49 ( 1.28) | 58.29 ( 1.76) | 91.51 ( 2.76) |
751 -------+----------------+----------------+----------------+----------------+
752 2.95.1 | 33.89 ( 1.02) | 41.82 ( 1.26) | 56.38 ( 1.70) | 90.78 ( 2.74) |
753 -------+----------------+----------------+----------------+----------------+
754 2.95.2 | 33.83 ( 1.02) | 42.66 ( 1.29) | 56.88 ( 1.72) | 91.69 ( 2.77) |
755 -------+----------------+----------------+----------------+----------------+
756 2.95.3 | 33.15 ( 1.00) | 40.89 ( 1.23) | 56.19 ( 1.70) | 93.00 ( 2.81) |
757 -------+----------------+----------------+----------------+----------------+
758 3.0 | 43.63 ( 1.32) | 63.58 ( 1.92) | 98.37 ( 2.97) | 198.97 ( 6.00) |
759 -------+----------------+----------------+----------------+----------------+
760 3.0.1 | 43.30 ( 1.31) | 64.00 ( 1.93) | 99.07 ( 2.99) | 181.10 ( 5.46) |
761 -------+----------------+----------------+----------------+----------------+
762 3.0.2 | 42.38 ( 1.28) | 65.59 ( 1.98) | 95.82 ( 2.89) | 183.37 ( 5.53) |
763 -------+----------------+----------------+----------------+----------------+
764 3.0.3 | 44.93 ( 1.36) | 64.64 ( 1.95) | 98.70 ( 2.98) | 179.34 ( 5.41) |
765 -------+----------------+----------------+----------------+----------------+
766 3.0.4 | 44.30 ( 1.34) | 64.80 ( 1.95) | 98.90 ( 2.98) | 178.63 ( 5.39) |
767 -------+----------------+----------------+----------------+----------------+
768 3.1 | 49.02 ( 1.48) | 79.16 ( 2.39) | 132.62 ( 4.00) | 385.21 (11.62) |
769 -------+----------------+----------------+----------------+----------------+
770 3.1.1 | 48.77 ( 1.47) | 79.45 ( 2.40) | 133.49 ( 4.03) | 375.01 (11.31) |
771 -------+----------------+----------------+----------------+----------------+
772 3.2 | 49.68 ( 1.50) | 78.50 ( 2.37) | 130.94 ( 3.95) | 402.10 (12.13) |
773 -------+----------------+----------------+----------------+----------------+
774 3.2.1 | 49.37 ( 1.49) | 78.03 ( 2.35) | 130.90 ( 3.95) | 366.79 (11.06) |
775 -------+----------------+----------------+----------------+----------------+
776 3.2.2 | 49.36 ( 1.49) | 78.06 ( 2.35) | 131.08 ( 3.95) | 364.01 (10.98) |
777 -------+----------------+----------------+----------------+----------------+
778 3.2.3 | 49.93 ( 1.51) | 77.75 ( 2.35) | 131.50 ( 3.97) | 366.83 (11.07) |
779 -------+----------------+----------------+----------------+----------------+
780 3.3 | 50.08 ( 1.51) | 76.42 ( 2.31) | 89.80 ( 2.71) | 292.12 ( 8.81) |
781 -------+----------------+----------------+----------------+----------------+
782 3.3.1 | 50.06 ( 1.51) | 77.01 ( 2.32) | 90.45 ( 2.73) | 292.13 ( 8.81) |
783 -------+----------------+----------------+----------------+----------------+
784 3.3.2 | 50.04 ( 1.51) | 76.34 ( 2.30) | 89.63 ( 2.70) | 290.08 ( 8.75) |
785 -------+----------------+----------------+----------------+----------------+
786 3.3.3 | 50.25 ( 1.52) | 76.82 ( 2.32) | 90.44 ( 2.73) | 295.69 ( 8.92) |
787 -------+----------------+----------------+----------------+----------------+
788 3.3.4 | 50.23 ( 1.52) | 77.15 ( 2.33) | 90.71 ( 2.74) | 296.18 ( 8.93) |
789 -------+----------------+----------------+----------------+----------------+
790 3.3.5 | 50.18 ( 1.51) | 77.02 ( 2.32) | 90.11 ( 2.72) | 293.49 ( 8.85) |
791 -------+----------------+----------------+----------------+----------------+
792 3.3.6 | 50.23 ( 1.52) | 77.43 ( 2.34) | 90.60 ( 2.73) | 296.37 ( 8.94) |
793 -------+----------------+----------------+----------------+----------------+
794 3.4.0 | 50.68 ( 1.53) | 71.85 ( 2.17) | 47.80 ( 1.44) | 170.43 ( 5.14) |
795 -------+----------------+----------------+----------------+----------------+
796 3.4.1 | 47.50 ( 1.43) | 73.34 ( 2.21) | 48.74 ( 1.47) | 172.05 ( 5.19) |
797 -------+----------------+----------------+----------------+----------------+
798 3.4.2 | 47.48 ( 1.43) | 72.67 ( 2.19) | 48.10 ( 1.45) | 174.11 ( 5.25) |
799 -------+----------------+----------------+----------------+----------------+
800 3.4.3 | 47.42 ( 1.43) | 72.46 ( 2.19) | 48.03 ( 1.45) | 172.00 ( 5.19) |
801 -------+----------------+----------------+----------------+----------------+
802 3.4.4 | 47.97 ( 1.45) | 72.81 ( 2.20) | 47.82 ( 1.44) | 172.45 ( 5.20) |
803 -------+----------------+----------------+----------------+----------------+
804 3.4.5 | 47.92 ( 1.45) | 72.77 ( 2.20) | 47.79 ( 1.44) | 171.46 ( 5.17) |
805 -------+----------------+----------------+----------------+----------------+
806 3.4.6 | 48.18 ( 1.45) | 73.27 ( 2.21) | 47.97 ( 1.45) | 171.99 ( 5.19) |
807 -------+----------------+----------------+----------------+----------------+
808 4.0.0 | 64.86 ( 1.96) | 85.67 ( 2.58) | 105.44 ( 3.18) | 200.58 ( 6.05) |
809 -------+----------------+----------------+----------------+----------------+
810 4.0.1 | 63.44 ( 1.91) | 85.37 ( 2.58) | 107.23 ( 3.23) | 200.04 ( 6.03) |
811 -------+----------------+----------------+----------------+----------------+
812 4.0.2 | 63.66 ( 1.92) | 85.66 ( 2.58) | 105.26 ( 3.18) | 200.38 ( 6.04) |
813 -------+----------------+----------------+----------------+----------------+
814 4.0.3 | 63.47 ( 1.91) | 85.38 ( 2.58) | 107.57 ( 3.24) | 200.84 ( 6.06) |
815 -------+----------------+----------------+----------------+----------------+
816 4.0.4 | 63.42 ( 1.91) | 92.51 ( 2.79) | 105.24 ( 3.17) | 200.67 ( 6.05) |
817 -------+----------------+----------------+----------------+----------------+
818 4.1.0 | 69.72 ( 2.10) | 93.87 ( 2.83) | 121.59 ( 3.67) | 247.69 ( 7.47) |
819 -------+----------------+----------------+----------------+----------------+
820 4.1.1 | 68.43 ( 2.06) | 92.90 ( 2.80) | 102.04 ( 3.08) | 189.45 ( 5.71) |
821 -------+----------------+----------------+----------------+----------------+
822 4.1.2 | 69.15 ( 2.09) | 92.38 ( 2.79) | 103.45 ( 3.12) | 199.92 ( 6.03) |
823 -------+----------------+----------------+----------------+----------------+
824 4.2.0 | 79.05 ( 2.38) | 105.12 ( 3.17) | 83.46 ( 2.52) | 172.92 ( 5.22) |
825 -------+----------------+----------------+----------------+----------------+
826 4.2.1 | 81.37 ( 2.45) | 107.41 ( 3.24) | 84.23 ( 2.54) | 173.26 ( 5.23) |
827 -------+----------------+----------------+----------------+----------------+
828 4.2.2 | 81.42 ( 2.46) | 108.04 ( 3.26) | 84.44 ( 2.55) | 173.84 ( 5.24) |
829 -------+----------------+----------------+----------------+----------------+
830 4.2.3 | 81.44 ( 2.46) | 109.30 ( 3.30) | 84.29 ( 2.54) | 174.04 ( 5.25) |
831 -------+----------------+----------------+----------------+----------------+
832 4.2.4 | 81.36 ( 2.45) | 108.06 ( 3.26) | 84.18 ( 2.54) | 174.47 ( 5.26) |
833 -------+----------------+----------------+----------------+----------------+
834 4.3.0 | 74.37 ( 2.24) | 112.07 ( 3.38) | 80.64 ( 2.43) | 210.46 ( 6.35) |
835 -------+----------------+----------------+----------------+----------------+
836 4.3.1 | 73.96 ( 2.23) | 112.87 ( 3.40) | 80.33 ( 2.42) | 205.96 ( 6.21) |
837 -------+----------------+----------------+----------------+----------------+
838 4.3.2 | 73.93 ( 2.23) | 110.52 ( 3.33) | 78.91 ( 2.38) | 199.48 ( 6.02) |
839 -------+----------------+----------------+----------------+----------------+
840 4.3.3 | 73.86 ( 2.23) | 110.52 ( 3.33) | 79.60 ( 2.40) | 199.99 ( 6.03) |
841 -------+----------------+----------------+----------------+----------------+
842 4.3.4 | 74.29 ( 2.24) | 110.46 ( 3.33) | 81.02 ( 2.44) | 198.01 ( 5.97) |
843 -------+----------------+----------------+----------------+----------------+
844 4.3.5 | 73.42 ( 2.21) | 110.74 ( 3.34) | 79.37 ( 2.39) | 198.17 ( 5.98) |
845 -------+----------------+----------------+----------------+----------------+
846 4.3.6 | 74.01 ( 2.23) | 110.60 ( 3.34) | 80.03 ( 2.41) | 198.45 ( 5.99) |
847 -------+----------------+----------------+----------------+----------------+
848 4.4.0 | 79.38 ( 2.39) | 113.40 ( 3.42) | 89.70 ( 2.71) | 211.26 ( 6.37) |
849 -------+----------------+----------------+----------------+----------------+
850 4.4.1 | 78.12 ( 2.36) | 114.11 ( 3.44) | 88.92 ( 2.68) | 211.13 ( 6.37) |
851 -------+----------------+----------------+----------------+----------------+
852 4.4.2 | 79.46 ( 2.40) | 114.49 ( 3.45) | 90.39 ( 2.73) | 210.79 ( 6.36) |
853 -------+----------------+----------------+----------------+----------------+
854 4.4.3 | 77.76 ( 2.35) | 114.03 ( 3.44) | 88.46 ( 2.67) | 212.31 ( 6.40) |
855 -------+----------------+----------------+----------------+----------------+
856 4.4.4 | 77.75 ( 2.35) | 113.94 ( 3.44) | 89.19 ( 2.69) | 210.39 ( 6.35) |
857 -------+----------------+----------------+----------------+----------------+
858 4.4.5 | 78.32 ( 2.36) | 114.55 ( 3.46) | 88.20 ( 2.66) | 212.88 ( 6.42) |
859 -------+----------------+----------------+----------------+----------------+
860 4.4.6 | 78.24 ( 2.36) | 114.99 ( 3.47) | 89.99 ( 2.71) | 219.40 ( 6.62) |
861 -------+----------------+----------------+----------------+----------------+
862 4.4.7 | 77.71 ( 2.34) | 113.90 ( 3.44) | 87.86 ( 2.65) | 210.67 ( 6.36) |
863 -------+----------------+----------------+----------------+----------------+
864 4.5.0 | 78.36 ( 2.36) | 109.78 ( 3.31) | 96.15 ( 2.90) | 191.80 ( 5.79) |
865 -------+----------------+----------------+----------------+----------------+
866 4.5.1 | 78.23 ( 2.36) | 109.68 ( 3.31) | 95.36 ( 2.88) | 188.34 ( 5.68) |
867 -------+----------------+----------------+----------------+----------------+
868 4.5.2 | 78.45 ( 2.37) | 110.11 ( 3.32) | 96.61 ( 2.91) | 189.24 ( 5.71) |
869 -------+----------------+----------------+----------------+----------------+
870 4.5.3 | 79.87 ( 2.41) | 112.65 ( 3.40) | 98.45 ( 2.97) | 196.36 ( 5.92) |
871 -------+----------------+----------------+----------------+----------------+
872 4.6.0 | 82.61 ( 2.49) | 117.70 ( 3.55) | 102.63 ( 3.10) | 235.50 ( 7.10) |
873 -------+----------------+----------------+----------------+----------------+
874 4.6.1 | 81.98 ( 2.47) | 121.60 ( 3.67) | 103.07 ( 3.11) | 266.58 ( 8.04) |
875 -------+----------------+----------------+----------------+----------------+
876 4.6.2 | 81.67 ( 2.46) | 121.04 ( 3.65) | 103.30 ( 3.12) | 263.24 ( 7.94) |
877 -------+----------------+----------------+----------------+----------------+
878 4.6.3 | 82.22 ( 2.48) | 120.98 ( 3.65) | 102.90 ( 3.10) | 265.34 ( 8.00) |
879 -------+----------------+----------------+----------------+----------------+
880 4.7.0 | 92.20 ( 2.78) | 145.52 ( 4.39) | 108.40 ( 3.27) | 362.57 (10.94) |
881 -------+----------------+----------------+----------------+----------------+
882
883
be2fc9f @feeley Add performance measurements for clang 3.1 .
authored
884 The same experiment was done with clang version 2.6 to 3.1. Bugs were
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
885 encountered getting all these clang versions working on linux (due to
886 linking problems) so the prebuilt compilers were installed on a x86_64
887 Mac OS X machine. This Mac OS X machine is about 15% faster than the
888 linux machine used above with gcc.
889
890 Clang versions 2.7, 2.8 and 2.9 have bugs which prevent the Gambit
891 "make" to complete. The details are given below.
892
893 The build and execution times are given below. Note that the fastest
894 execution speed is obtained with --enable-single-host (regardless of
895 optimization level) and that clang 2.6 generates code that is about
be2fc9f @feeley Add performance measurements for clang 3.1 .
authored
896 40% faster than clang 3.0 and clang 3.1 .
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
897
898 As for the build time, clang is very roughly the same speed as gcc
899 when --enable-multiple-hosts is used. However, when
900 --enable-single-host is used the build time increases dramatically
901 (over 10 minutes for clang 2.6, and as much as 70 minutes for clang
902 3.0). Clang is probably using algorithms with a high algorithmic
903 complexity. Strangely, with clang 3.0 it takes less time to compile
904 with -O2 than with -O1. My guess is that clang 3.0 at -O2 must limit
905 the size of functions which are optimized (i.e. the expensive
906 optimizations are turned off when the functions are too big).
907
908
909 **** Execution time of tests/mix.scm when run by gsi
910
911 | --enable-multiple-hosts | --enable-single-host |
912 | | --enable-c-opt | | --enable-c-opt |
913 clang | secs rel | secs rel | secs rel | secs rel |
914 -------+----------------+----------------+----------------+----------------+
915 2.6 | 4.35 ( 1.59) | 4.41 ( 1.61) | 2.74 ( 1.00) | 2.79 ( 1.02) |
916 -------+----------------+----------------+----------------+----------------+
917 3.0 | 3.83 ( 1.40) | 3.76 ( 1.37) | 4.49 ( 1.64) | 4.87 ( 1.78) |
918 -------+----------------+----------------+----------------+----------------+
be2fc9f @feeley Add performance measurements for clang 3.1 .
authored
919 3.1 | 3.82 ( 1.39) | 3.89 ( 1.42) | 4.32 ( 1.58) | 4.90 ( 1.79) |
920 -------+----------------+----------------+----------------+----------------+
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
921
922
923 **** Elapsed time of "make"
924
925 | --enable-multiple-hosts | --enable-single-host |
926 | | --enable-c-opt | | --enable-c-opt |
927 clang | secs rel | secs rel | secs rel | secs rel |
928 -------+----------------+----------------+----------------+----------------+
be2fc9f @feeley Add performance measurements for clang 3.1 .
authored
929 2.6 | 95.7 ( 1.12) | 96.0 ( 1.12) | 694.4 ( 8.10) | 699.1 ( 8.16) |
930 -------+----------------+----------------+----------------+----------------+
931 3.0 | 164.3 ( 1.92) | 127.2 ( 1.48) | 4313.0 (50.33) | 1825.3 (21.30) |
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
932 -------+----------------+----------------+----------------+----------------+
be2fc9f @feeley Add performance measurements for clang 3.1 .
authored
933 3.1 | 90.1 ( 1.05) | 85.7 ( 1.00) | 1110.0 (12.95) | 915.7 (10.68) |
422bab4 @feeley Clean up installation instructions, mentionning the importance of --e…
authored
934 -------+----------------+----------------+----------------+----------------+
935
936
937 **** Bugs in the clang compilers versions 2.7, 2.8 and 2.9:
938
939 clang 2.7:
940
941 /Users/feeley/clang/2.7/bin/clang -Wno-unused -Wno-write-strings -O1 -fno-math-errno -fno-strict-aliasing -fwrapv -fomit-frame-pointer -fPIC -fno-common -I"../include" -c -o "_t-c-2.o" -I. -DHAVE_CONFIG_H _t-c-2.c -D___LIBRARY
942 clang: warning: argument unused during compilation: '-fwrapv'
943 Assertion failed: (!isa<IndirectBrInst>(Preds[i]->getTerminator()) && "Cannot split an edge from an IndirectBrInst"), function SplitBlockPredecessors, file BasicBlockUtils.cpp, line 400.
944
945 clang 2.8:
946
947 /Users/feeley/clang/2.8/bin/clang -Wno-unused -Wno-write-strings -O1 -fno-math-errno -fno-strict-aliasing -fwrapv -fomit-frame-pointer -fPIC -fno-common -I"../include" -c -o "_num.o" -I. -DHAVE_CONFIG_H -D___GAMBCDIR="\"/Users/feeley/gambit-clang/clang/2.8/mhO1\"" -D___SYS_TYPE_CPU="\"i386\"" -D___SYS_TYPE_VENDOR="\"apple\"" -D___SYS_TYPE_OS="\"darwin11.3.0\"" -D___CONFIGURE_COMMAND="\"./configure '--prefix=/Users/feeley/gambit-clang/clang/2.8/mhO1' 'CC=/Users/feeley/clang/2.8/bin/clang' '--enable-multiple-hosts' '--enable-c-opt=-O1'"\" -D___OBJ_EXTENSION="\".o\"" -D___EXE_EXTENSION="\"\"" -D___BAT_EXTENSION="\"\"" -D___PRIMAL _num.c -D___LIBRARY
948 ...
949 Stack dump:
950 0. Program arguments: /Users/feeley/clang/2.8/bin/clang -cc1 -triple x86_64-apple-darwin11.0.0 -emit-obj -disable-free -disable-llvm-verifier -main-file-name _num.c -pic-level 2 -masm-verbose -munwind-tables -target-cpu core2 -target-linker-version 97.14 -resource-dir /Users/feeley/clang/2.8/lib/clang/2.8 -D HAVE_CONFIG_H -D ___GAMBCDIR="/Users/feeley/gambit-clang/clang/2.8/mhO1" -D ___SYS_TYPE_CPU="i386" -D ___SYS_TYPE_VENDOR="apple" -D ___SYS_TYPE_OS="darwin11.3.0" -D ___CONFIGURE_COMMAND="./configure '--prefix=/Users/feeley/gambit-clang/clang/2.8/mhO1' 'CC=/Users/feeley/clang/2.8/bin/clang' '--enable-multiple-hosts' '--enable-c-opt=-O1'" -D ___OBJ_EXTENSION=".o" -D ___EXE_EXTENSION="" -D ___BAT_EXTENSION="" -D ___PRIMAL -D ___LIBRARY -I ../include -I . -O1 -Wno-unused -Wno-write-strings -ferror-limit 19 -fmessage-length 80 -fwrapv -stack-protector 1 -fblocks -fno-common -fdiagnostics-show-option -o _num.o -x c _num.c
951 1. <eof> parser at end of file
952 2. Per-module optimization passes
953 3. Running pass 'CallGraph Pass Manager' on module '_num.c'.
954 4. Running pass 'Jump Threading' on function '@___H__3d_'
955 clang: error: clang frontend command failed due to signal 11 (use -v to see invocation)
956
957 clang 2.9:
958
959 /Users/feeley/clang/2.9/bin/clang -Wno-unused -Wno-write-strings -O1 -fno-math-errno -fno-strict-aliasing -fwrapv -fomit-frame-pointer -fPIC -fno-common -I"../include" -c -o "_num.o" -I. -DHAVE_CONFIG_H -D___GAMBCDIR="\"/Users/feeley/gambit-clang/clang/2.9/mhO1\"" -D___SYS_TYPE_CPU="\"i386\"" -D___SYS_TYPE_VENDOR="\"apple\"" -D___SYS_TYPE_OS="\"darwin11.3.0\"" -D___CONFIGURE_COMMAND="\"./configure '--prefix=/Users/feeley/gambit-clang/clang/2.9/mhO1' 'CC=/Users/feeley/clang/2.9/bin/clang' '--enable-multiple-hosts' '--enable-c-opt=-O1'"\" -D___OBJ_EXTENSION="\".o\"" -D___EXE_EXTENSION="\"\"" -D___BAT_EXTENSION="\"\"" -D___PRIMAL _num.c -D___LIBRARY
960 ...
961 Stack dump:
962 0. Program arguments: /Users/feeley/clang/2.9/bin/clang -cc1 -triple x86_64-apple-darwin11.0.0 -emit-obj -disable-free -disable-llvm-verifier -main-file-name _num.c -pic-level 2 -relaxed-aliasing -masm-verbose -munwind-tables -target-cpu core2 -target-linker-version 97.14 -resource-dir /Users/feeley/clang/2.9/bin/../lib/clang/2.9 -D HAVE_CONFIG_H -D ___GAMBCDIR="/Users/feeley/gambit-clang/clang/2.9/mhO1" -D ___SYS_TYPE_CPU="i386" -D ___SYS_TYPE_VENDOR="apple" -D ___SYS_TYPE_OS="darwin11.3.0" -D ___CONFIGURE_COMMAND="./configure '--prefix=/Users/feeley/gambit-clang/clang/2.9/mhO1' 'CC=/Users/feeley/clang/2.9/bin/clang' '--enable-multiple-hosts' '--enable-c-opt=-O1'" -D ___OBJ_EXTENSION=".o" -D ___EXE_EXTENSION="" -D ___BAT_EXTENSION="" -D ___PRIMAL -D ___LIBRARY -I ../include -I . -O1 -Wno-unused -Wno-write-strings -ferror-limit 19 -fmessage-length 80 -fwrapv -stack-protector 1 -fblocks -fno-common -fdiagnostics-show-option -o _num.o -x c _num.c
963 1. <eof> parser at end of file
964 2. Per-module optimization passes
965 3. Running pass 'CallGraph Pass Manager' on module '_num.c'.
966 4. Running pass 'Loop Pass Manager' on function '@___H__23__23_bignum_2e__2a_'
967 5. Running pass 'Rotate Loops' on basic block '%2697'
968 clang: error: unable to execute command: Segmentation fault: 11
969 clang: error: clang frontend command failed due to signal 1 (use -v to see invocation)
Something went wrong with that request. Please try again.