Hi Marc,
Very nice!
Find below some suggestions for additional clarification, which I think is needed.
I hope you find the 12 points of suggested clarification to your text, useful.
Please share any amendment of the text here on the ML and i'll be happy read it once more.
Yes sure you can add this text to some README/INSTALL file, would be neat!
Thanks, Adam
1) Change this: "However, to provide maximum flexibility and allow modifying the system, the .scm files that were used to generate the .c files are also distributed as part of a "release"."
To something like: "However, the .scm files are also distributed as part of a "release" as Gambit is open source and the .scm files are the de-facto source files."
2) "..is needed to copy the gsc built from the release", clarify which gsc is meant by that (./gsc/gsc in the build dir or /usr/local/Gambit-C/bin/gsc ??).
3) "For flexibility, the .c files generated by gsc-boot from .scm files are composed of calls to macros defined in the file gambit.h ."
Some kind of quantifier of the extent of macro use in the .c files would be nice like, "are composed exclusively of calls to", "mostly", "in all important parts", etc. .
4) "pointers 32 or 64 bits" => "pointers e.g. 32 or 64 bits" or "that is"
5) This might be a bit on the literal side but I would like to be informed whether the configure script *ONLY* produces the config.h and gambit.h files, or if there are any other files that the configure scripts outputs, that are used for anything also (i.e. other than log, annotational and debug output files, that accordingly could be removed without consequence for the build process).
That specification could be added into this sentence "is needed to create the gambit.h and config.h files adapted to the host platform. ".
6) "creates the gsi and gsc executables." for clarity add " (as ./gsi/gsi and ./gsc/gsc).".
7) "make bootstrap
creates gsc-boot (simply a copy of the gsc executable)",
maybe a bit more precise e.g. " (this make command does one thing only which is to copy the gsc executable ./gsc/gsc to the source root directory ./)".
8) "From this point, modifications of .scm files should be followed by a
make
to use gsc-boot to convert the modified .scm files to .c files and invoke the C compiler to produce the modified executables for gsi and gsc."
This one might also deserve an additional clarification after the dot, e.g. " (this is done as needed - when run, 'make' will check if the respective .scm file has been updated, by comparing file modification timestamps with its corresponding .c file, and if updated it will cause recompilation for the .scm file using ./gsc-boot) (the new gsi and gsc binaries are built as their ordinary names ./gsi/gsi and /gsc/gsc)"
Also please clarify the "modifications of .scm files" by "modifications of Gambit .scm files".
9) The two build examples you give are altogether separate. This could be non-apparent for a reader. Please show this through subtitles or formatting e.g. double empty lines.
A subtitle for the first section ("So to build the system ...") could be "# How to build a Gambit release from source, and how to compile Gambit with modified Scheme files".
A subtitle for the second section ("The build process is slightly more complex ...") could be "# Considerations when building from GitHub"
10)
"Then a
make latest-release
creates gsc-boot."
Can you elaborate here please?
Like.. are ./gsi/gsi and ./gsc/gsc produced and then a copy of ./gsc/gsc is made to ./gsc-boot , so actually "make latest-release" is a synonym for "make; make bootstrap", or is anything else or more done here?
What C files are actually used for this compilation, how are they sourced, where are they stored?
Please clarify.
11) "..so that the following
make bootstrap
compiles all the .scm files to .c files using the gsc-boot of the latest release, and then copies this new compiler to gsc-boot."
First, what about clarifying "gsc-boot" as "./gsc-boot" (./ here meaning root of the Gambit project source directory, that meaning can be implied as the file the user is reading is stored in that same directory).
Second, in the use of make bootstrap above, its only function was to do "cp ./gsc/gsc ./gsc-boot", if I got it right, that was all you said there anyhow.
Are you now saying that "make bootstrap" implies "make" also? Please clarify.
12) "For convenience these set of steps are performed by "make from-scratch". "
First, "these set of steps" needs fixed grammar.
Second, which exact set of steps are you talking about, maybe write them up within parentheses, e.g. " (i.e. make lala; make xyz; make abc)".
2017-01-20 1:48 GMT+08:00 Marc Feeley feeley@iro.umontreal.ca:
Here’s a start!
Marc
Gambit-C is an implementation of Scheme that is designed to be portable and efficient. By using C as a target language it offers high portability to any host platform with a decent C compiler. It's design is based on a bootstrapped Scheme compiler, that is, a large part of the system is implemented in Scheme and compiled to C using the Gambit compiler itself.
The source code files are composed of .h, .c and .scm files. The .c files implement the lowest levels of the runtime system that interface with the host operating system (IO subsystem, memory management and garbage collector, foreign function interface, etc).
Because the .scm files are converted to .c files by the Gambit compiler, it is possible to precompile these .scm files and only distribute a set of .h and .c files that are compiled and linked by a standard C compiler. However, to provide maximum flexibility and allow modifying the system, the .scm files that were used to generate the .c files are also distributed as part of a "release".
This means that only a C compiler is needed to build the system from the released sources. The two main products of a build are gsi, the Gambit Scheme interpreter, and gsc, the Gambit Scheme compiler. Once gsc has been built, modification of the .scm files is possible because gsc can be used to convert the modified .scm files to .c files. To prepare for this bootstrap process, a "make bootstrap" is needed to copy the gsc built from the release to gsc-boot to prevent any bugs introduced in the .scm files to affect future compilations of the .scm files (in other words it makes the circular bootstrap process less sensitive to new issues).
For flexibility, the .c files generated by gsc-boot from .scm files are composed of calls to macros defined in the file gambit.h . This allows the build process, through the use of a "configure" script, to adapt gambit.h to the specifics of the host platform (operating system, host C compiler properties and supported language i.e. C/C++/Objective-C). The target code generated by gsc-boot is thus completely independent of the host platform (and in particular the size of pointers 32 or 64 bits).
Here is a diagram showing how all of this fits together:
SOURCE FILES setup.c \ os_io.c | c_intf.c | config.h | gambit.h.in ------------> gambit.h | gsi configure > ------> _kernel.scm \ _kernel.c | cc gsc _eval.scm | _eval.c | | _thread.scm > ------------> _thread.c | | _num.scm | gsc-boot _num.c | | ... / ^ ... / | | | +----------------------------------+ make bootstrap
All files indicated are part of a release, except for config.h, gambit.h, gsi and gsc, that are created by the build process.
So to build the system from the files in a release, an initial
./configure
is needed to create the gambit.h and config.h files adapted to the host platform. Then a
make
creates the gsi and gsc executables. Then a
make bootstrap
creates gsc-boot (simply a copy of the gsc executable). From this point, modifications of .scm files should be followed by a
make
to use gsc-boot to convert the modified .scm files to .c files and invoke the C compiler to produce the modified executables for gsi and gsc.
The build process is slightly more complex when using source code that is obtained from the github repository. This is due to the fact that the .c files generated from .scm files are not kept up to date in the repository (because even minor changes to the .scm files would cause huge diffs in the generated .c files that would be hard to manage).
To account for this, the build process for a github clone requires that the gsc-boot corresponding to the most recent release be built first (by checking out the latest release). Once this gsc-boot is built, it can be used to build the HEAD (any .scm files modified since the latest release can now be converted to the corresponding .c file by gsc-boot).
So to build the system from the files in a github repository clone, an initial
./configure
is needed to create the main makefile from makefile.in (to be able to call "make"!). Then a
make latest-release
creates gsc-boot. Then a
make bootclean
removes all generated .c files so that the following
make bootstrap
compiles all the .scm files to .c files using the gsc-boot of the latest release, and then copies this new compiler to gsc-boot.
Note that at this point the generated .c files are possibly suboptimal because the conversion of .scm to .c was done with the Gambit Scheme compiler of the latest release. It is possible that since the latest release some improvements were made to the compiler itself, to generate better code, inline new primitive procedures, etc. So it is necessary to use the new gsc-boot to recompile all of the .scm files. This is done with
make bootclean make
For convenience these set of steps are performed by "make from-scratch". So to build the system from github, these steps are needed:
git clone https://github.com/gambit/gambit.git cd gambit ./configure make latest-release ./configure make from-scratch
On Jan 19, 2017, at 7:28 AM, Adam adam.mlmb@gmail.com wrote:
Find below the list of "hmm" moments I had with respect to building
Gambit, ever, if not else then for completeness.
These are not to suggest that anything is lacking in the documentation,
this was just the most relevant answer I could come up with to your question :))
Hope it's of value in some way.
- When rebuilding Gambit, after having done "make clean" for the reason
that it seemed that that was needed - so that would be a good start, if you patch your Gambit or if you don't patch your Gambit or if you change ./configure arguments (--enable-* , CXX_FLAGS=.. etc.), is there ever a reason to run make clean?
- I think in general I am quite unclear about in what situations I
would use either of the make targets (listed on https://github.com/gambit/gambit/blob/master/INSTALL.txt#L453 ) and what their requirements for success are.
Also are any of these not for use by users (but only for use by
yourself)?
clean, bootclean, realclean, bootstrap, mostlyclean sound the same to
me. Understanding the picture here would be great.
Also why would anyone ever do "make pull" instead of "git pull"?
- When rebuilding Gambit, after having done "make clean" (or was it
"make bootstrap"), the makefile tries to run something like ./gambc-cc a gambit-c compiler binary to regenerate the C files. That file invariably never exists. Why does the makefile not try to use ./gsc/gsc or the default gsc binary in its place, so that instead one needs to make a soft-link to either of those or copy it in?
Or is there some ./configure or make argument to specify the path to
the gsc binary to use? (if so didn't see the option mentioned anywhere)
- I think a long time ago I was building Gambit on mingw. For some
reason I needed to.. run the configure script to get a makefile I think, and that needed to be done in cygwin. Something like this. That that was even possible was not apparent to me when doing it, and I didn't understand beforehand that it could be relevant. I can't find any writeup right now of this experience, do you have any idea what it may have been?
The MingW build instructions are here, https://github.com/gambit/gamb
it/blob/master/INSTALL.txt#L555 , is Cygwin a prerequirement, if so maybe list it?
Maybe I got all confused about when and not to use \ or / or \ in
MingW when building.
And the overall scheme of how to build with MingW.
- Are there any limitations to the Visual C build mode - the basic
presumption here is that the C files exist already (produced in an Unix environment) and the only thing you do in Visual C is to build the binary, right?
Is any makefile or configure script or anything else than .c and .h
files used?
How do you cross-build with gcc and are there any limitations to that?
(I think trying the VC project file in misc/vcstudio.zip not worked
out of the box for me. I think eventually my conclusion became that trying to build from VC anyhow was a bad idea, and switched to the misc/vcexpress.bat build script instead which turned out much better.)
- And a related question that has been going on forever has been: how
do I enable the maximum of debugging symbols (-Og and any more) but not get any ./console file generated and also otherwise have gambit compiled for real use?
2017-01-19 19:30 GMT+08:00 Marc Feeley feeley@iro.umontreal.ca: Can you be more specific about what kind of information is missing from
INSTALL.txt?
Marc
On Jan 18, 2017, at 9:39 PM, Adam adam.mlmb@gmail.com wrote:
A writeup on the wiki "Build and install instructions for all
platforms" could be of use.
There are instructions in https://github.com/gambit/gamb
it/blob/master/INSTALL.txt and https://github.com/gambit/gamb it/blob/master/README.md .. and they are coming with a problem that they are not so elaborated, so it would be nice if the wiki page would provide the contextual understanding of what's going on and what to do for the unintroduced.
Something like this :)
2017-01-19 9:16 GMT+08:00 Marc Feeley feeley@iro.umontreal.ca: You are probably better off using misc/vctoolkit.bat which is more
complete and easier to modify.
Marc
On Jan 18, 2017, at 8:04 PM, C K Kashyap ckkashyap@gmail.com
wrote:
Thanks Marc, I shall try with your suggested prefix.
For visual studio - here's what I did
- Cloned a fresh repo
- Unzipped vstudio.zip into the repo root
- Opend the sln file
- Removed lib/os.c and added lib/os_setup.c
- Did a build - got 615 errors - mostly cannot open gambit.h
- So I ran ./configure and retried - did not help
For msys2, I am afraid, I did not follow the instructions properly.
Regards, Kashyap
Severity Code Description Project File Line
Suppression State
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 8967
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 8973
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 8996
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 9002
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 9069
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 9075
Error C2146 syntax error: missing ';' before identifier '___r2'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 9950
Error C2143 syntax error: missing ';' before '{' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 10012
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 10934
Error C2143 syntax error: missing ';' before '{' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 10985
Error C2143 syntax error: missing ';' before '{' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 11035
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 11214
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 11219
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 11259
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 11288
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 11377
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 11393
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 11440
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 11623
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 11668
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 11916
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 11924
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 12001
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 12072
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 12130
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 12142
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 12194
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 12223
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 12268
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 12280
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 12412
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 12420
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 12536
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 12808
Error C2146 syntax error: missing ';' before identifier '___r4'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 12910
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 12921
Error C2146 syntax error: missing ';' before identifier '___r2'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 12945
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 12956
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 12964
Error C2146 syntax error: missing ';' before identifier '___r0'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 12983
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 13005
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 13021
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 13505
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 13722
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 13728
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 14191
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 14219
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 14381
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 14410
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 14471
Error C2146 syntax error: missing ';' before identifier '___r4'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 14822
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 14833
Error C2146 syntax error: missing ';' before identifier '___r1'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 14855
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 14867
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 14908
Error C2146 syntax error: missing ';' before identifier '___r4'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15111
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15122
Error C2146 syntax error: missing ';' before identifier '___r3'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15133
Error C2146 syntax error: missing ';' before identifier
'___L7__23__23_thread_2d_send' lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15147
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15170
Error C2146 syntax error: missing ';' before identifier '___r4'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15378
Error C2143 syntax error: missing ';' before 'if' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15392
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15452
Error C2146 syntax error: missing ';' before identifier '___r0'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15459
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15464
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15510
Error C2146 syntax error: missing ';' before identifier '___r1'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15564
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15590
Error C2146 syntax error: missing ';' before identifier '___r2'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15665
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15677
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15682
Error C2146 syntax error: missing ';' before identifier '___r1'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15757
Error C2146 syntax error: missing ';' before identifier
'___L17__23__23_mutex_2d_signal_2d_and_2d_condvar_2d_wait_21_' lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15769
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15786
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15791
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15836
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15913
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15922
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 15933
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 16051
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 16127
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 16511
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 16517
Error C2065 '___RUNQUEUE': undeclared identifier lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 19038
Error C2146 syntax error: missing ';' before identifier '___r3'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 19401
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 19406
Error C2146 syntax error: missing ';' before identifier '___r1'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 19421
Error C2146 syntax error: missing ';' before identifier '___r4'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 19437
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 19442
Error C2146 syntax error: missing ';' before identifier '___r1'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 19456
Error C2146 syntax error: missing ';' before identifier '___r3'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 19480
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 19485
Error C2146 syntax error: missing ';' before identifier '___r1'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 19495
Error C2146 syntax error: missing ';' before identifier '___r4'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 19521
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 19526
Error C2146 syntax error: missing ';' before identifier '___r1'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 19539
Error C2146 syntax error: missing ';' before identifier '___r2'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 19688
Error C2146 syntax error: missing ';' before identifier '___r1'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 19700
Error C2146 syntax error: missing ';' before identifier '___r4'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 22582
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 22593
Error C2146 syntax error: missing ';' before identifier '___r1'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 22629
Error C1003 error count exceeds 100; stopping compilation lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_thread.c 22629
Error C2146 syntax error: missing ';' before identifier '___r3'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_repl.c 23586
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_repl.c 23597
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_repl.c 23656
Error C2146 syntax error: missing ';' before identifier '___r2'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_repl.c 23700
Error C2146 syntax error: missing ';' before identifier '___r1'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_repl.c 23712
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 19850
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 19862
Error C2146 syntax error: missing ';' before identifier '___r2'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 19882
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 19894
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 19908
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 19925
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 19937
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 19956
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 19973
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 19985
Error C2146 syntax error: missing ';' before identifier '___r3'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 20023
Error C2143 syntax error: missing ';' before 'if' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 20035
Error C2146 syntax error: missing ';' before identifier '___r4'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 20109
Error C2143 syntax error: missing ';' before 'if' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 20120
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 20129
Error C2146 syntax error: missing ';' before identifier '___r3'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 20139
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 20151
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 20209
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 20226
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 20238
Error C2146 syntax error: missing ';' before identifier '___r3'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 20259
Error C2143 syntax error: missing ';' before 'if' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 20271
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 20308
Error C2146 syntax error: missing ';' before identifier '___r4'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 20351
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 20362
Error C2146 syntax error: missing ';' before identifier '___r3'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 20382
Error C2143 syntax error: missing ';' before 'if' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 20394
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 20423
Error C2146 syntax error: missing ';' before identifier '___r3'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 21612
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 21624
Error C2146 syntax error: missing ';' before identifier '___r4'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 21643
Error C2143 syntax error: missing ';' before 'if' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 21654
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 21663
Error C2146 syntax error: missing ';' before identifier '___r3'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 21905
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 21917
Error C2146 syntax error: missing ';' before identifier '___r4'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 21936
Error C2143 syntax error: missing ';' before 'if' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 21947
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 21956
Error C2146 syntax error: missing ';' before identifier '___r3'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 23164
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 23175
Error C2146 syntax error: missing ';' before identifier '___r3'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 23233
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 23257
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 23261
Error C2146 syntax error: missing ';' before identifier '___r4'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24007
Error C2143 syntax error: missing ';' before 'if' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24018
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24027
Error C2146 syntax error: missing ';' before identifier '___r4'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24093
Error C2143 syntax error: missing ';' before 'if' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24104
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24110
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24227
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24239
Error C2146 syntax error: missing ';' before identifier '___r2'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24259
Error C2146 syntax error: missing ';' before identifier '___r2'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24272
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24285
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24299
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24316
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24328
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24347
Error C2146 syntax error: missing ';' before identifier '___r3'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24379
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24390
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24425
Error C2146 syntax error: missing ';' before identifier '___r3'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24439
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24450
Error C2146 syntax error: missing ';' before identifier '___r2'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24465
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24477
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24489
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24509
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24521
Error C2146 syntax error: missing ';' before identifier '___r4'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24550
Error C2146 syntax error: missing ';' before identifier
'___L97__23__23_make_2d_vector_2d_port' lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24562
Error C2146 syntax error: missing ';' before identifier '___r2'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24592
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24604
Error C2146 syntax error: missing ';' before identifier '___r3'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24629
Error C2143 syntax error: missing ';' before 'if' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24641
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24677
Error C2146 syntax error: missing ';' before identifier '___r4'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24699
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24710
Error C2146 syntax error: missing ';' before identifier '___r2'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24734
Error C2146 syntax error: missing ';' before identifier
'___L109__23__23_make_2d_vector_2d_port' lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24746
Error C2146 syntax error: missing ';' before identifier '___r3'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24773
Error C2143 syntax error: missing ';' before 'if' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24785
Error C2146 syntax error: missing ';' before identifier '___r2'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24819
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24831
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 24845
Error C2146 syntax error: missing ';' before identifier '___r3'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 25961
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 25972
Error C2146 syntax error: missing ';' before identifier '___r3'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 26000
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 26024
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 26028
Error C2146 syntax error: missing ';' before identifier '___r4'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 26803
Error C2143 syntax error: missing ';' before 'if' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 26814
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 26823
Error C2146 syntax error: missing ';' before identifier '___r4'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 26889
Error C2143 syntax error: missing ';' before 'if' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 26900
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 26906
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 27027
Error C2143 syntax error: missing ';' before 'goto' lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 27039
Error C2146 syntax error: missing ';' before identifier '___r2'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 27059
Error C2146 syntax error: missing ';' before identifier '___r2'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 27072
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 27085
Error C2146 syntax error: missing ';' before identifier '___fp'
lib c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 27099
Error C1003 error count exceeds 100; stopping compilation lib
c:\mingw\msys\1.0\home\ckk\gambit\lib_io.c 27099
Error C1083 Cannot open include file: 'gambit-not408007.h': No
such file or directory gsi c:\mingw\msys\1.0\home\ckk\gambit\include\gambit.h 15
Error C1083 Cannot open include file: 'gambit-not408007.h': No
such file or directory gsc c:\mingw\msys\1.0\home\ckk\gambit\include\gambit.h 15
On Wed, Jan 18, 2017 at 3:57 PM, Marc Feeley <
dr.marc.feeley@gmail.com> wrote:
Thanks for your feedback… but it shouldn’t be this complicated! For
mingw you should use a --prefix like this
--prefix=C:/MinGW/msys/1.0/GAMBITSCHEME
to avoid moving the whole directory.
For Visual Studio, there’s probably a file or two missing in the
.sln project (I don’t keep it up to date… my guess is add “lib/os_setup.c” and remove “lib/os.c”).
For msys2, did you get the sources from a clone of the github
repository? If so, the instructions in INSTALL.txt should be followed precisely to bootstrap Gambit.
Marc
On Jan 18, 2017, at 6:37 PM, C K Kashyap ckkashyap@gmail.com
wrote:
Hi all,
I was able to get Gambit to build on windows - I tried initially
with msys2 (hoping to build a 64bit version) - but failed -
$ make install making all in include make[1]: Entering directory '/home/ckk/gambit/include' make[1]: Leaving directory '/home/ckk/gambit/include' making all in lib make[1]: Entering directory '/home/ckk/gambit/lib' ../gsc-boot -:~~bin=../bin,~~lib=../lib,~~include=../include -f
-c -check -prelude "(##include "header.scm")" _repl.scm
make[1]: *** [makefile:167: _repl.c] Segmentation fault make[1]: *** Deleting file '_repl.c' make[1]: Leaving directory '/home/ckk/gambit/lib' make: *** [makefile:417: all-recursive] Error 1
After that, I tried using VS 2015 (unzipped vstudio.zip -- opened
the sln - but did not succeed)
Eventually, I tried with mingw (from mingw.org) -
./configure; make -j4 latest-release ; ./configure
--prefix=/GAMBITSCHEME --enable-single-host; make -j4 from-scratch
; make check; make -j4 doc; make install
The above resulted in GAMBITSCHEME getting created under / ->
under C:\MinGW\msys\1.0 that is .... however I got this error -
$ gsc -exe hello.scm *** ERROR IN ##parameterize -- No such file or directory (current-directory "\GAMBITSCHEME\bin\")
So, I copied the whole GAMBITSCHEME director under C:\ and wala!!!
things worked (I now have a working gambit compiler on my windows box - where I need to spend a lot of time). I am sharing this just in case anyone finds this useful. I am going to try to use the prebuilt 64 bit windows build (I had tried it earlier but had run into some issues)
Regards, Kashyap
Gambit-list mailing list Gambit-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
Gambit-list mailing list Gambit-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list