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/gambit/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/gambit/blob/master/INSTALL.txt and https://github.com/gambit/gambit/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