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(a)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(a)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(a)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(a)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(a)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(a)gmail.com>
> wrote:
> > > >
> > > > Thanks Marc,
> > > > I shall try with your suggested prefix.
> > > >
> > > > For visual studio - here's what I did
> > > > 1. Cloned a fresh repo
> > > > 2. Unzipped vstudio.zip into the repo root
> > > > 3. Opend the sln file
> > > > 4. Removed lib/os.c and added lib/os_setup.c
> > > > 5. Did a build - got 615 errors - mostly cannot open gambit.h
> > > > 6. 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(a)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(a)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(a)iro.umontreal.ca
> > > > > https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
> > > >
> > > >
> > >
> > > _______________________________________________
> > > Gambit-list mailing list
> > > Gambit-list(a)iro.umontreal.ca
> > > https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
> > >
> >
> >
>
>
>
Hi,
Could someone please tell me how I can create executables using snow -
snow's documentation says
snow --compile file.scm produces file.o1
How can I link file.o1? I found out about "bundle" only now so please
excuse my ignorance.
Regards,
Kashyap
ICFP 2017
The 22nd ACM SIGPLAN International Conference on Functional Programming
Oxford, United Kingdom
http://icfp17.sigplan.org/
Second Call for Papers
### Important dates
Submissions due: Monday, February 27, Anywhere on Earth
https://icfp17.hotcrp.com
Author response: Monday, April 17, 2017, 15:00 (UTC) -
Thursday, April 20, 2017, 15:00 (UTC)
Notification: Monday, 1 May, 2017
Final copy due: Monday, 5 June 2017
Early registration: TBA
Conference: Monday, 4 September -
Wednesday, 6 September, 2017
### Updates for Second Call for Papers
This revision, published January 31, 2017, includes the following updates:
* A link to the list of frequently asked questions about the
double-blind review process.
* A new requirement for citations in author-year format. This follows
a decision for PACMPL that was made after the original version of
this call was distributed. As such, author-year format will be
required for final (accepted) versions of papers in ICFP 2017, but
not for submissions.
* Additional guidance for authors using LaTeX.
* A clarification about the expectations for author attendance in the
event of visa-related problems.
### New this year
Those familiar with previous ICFP conferences should be aware of two
significant changes that are being introduced in 2017:
1. Papers selected for ICFP 2017 will be published as the ICFP 2017
issue of a new journal, Proceedings of the ACM on Programming Languages
(PACMPL), which replaces the previous ICFP conference proceedings. The
move to PACMPL will have two noticeable impacts on authors:
* A new, two-phase selection and reviewing process that conforms to
ACM’s journal reviewing guidelines.
* A new, single-column format for submissions.
2. Authors of papers that are conditionally accepted in the first phase
of the reviewing process will have the option to submit materials for
Artifact Evaluation.
Further details on each of these changes are included in the following
text.
### Scope
ICFP 2017 seeks original papers on the art and science of functional
programming. Submissions are invited on all topics from principles to
practice, from foundations to features, and from abstraction to
application. The scope includes all languages that encourage functional
programming, including both purely applicative and imperative languages,
as well as languages with objects, concurrency, or parallelism. Topics
of interest include (but are not limited to):
* *Language Design*: concurrency, parallelism, and distribution;
modules; components and composition; metaprogramming; type systems;
interoperability; domain-specific languages; and relations to
imperative, object-oriented, or logic programming.
* *Implementation*: abstract machines; virtual machines;
interpretation; compilation; compile-time and run-time optimization;
garbage collection and memory management; multi-threading;
exploiting parallel hardware; interfaces to foreign functions,
services, components, or low-level machine resources.
* *Software-Development Techniques*: algorithms and data structures;
design patterns; specification; verification; validation; proof
assistants; debugging; testing; tracing; profiling.
* *Foundations*: formal semantics; lambda calculus; rewriting; type
theory; monads; continuations; control; state; effects; program
verification; dependent types.
* *Analysis and Transformation*: control-flow; data-flow; abstract
interpretation; partial evaluation; program calculation.
* *Applications*: symbolic computing; formal-methods tools; artificial
intelligence; systems programming; distributed-systems and web
programming; hardware design; databases; XML processing; scientific
and numerical computing; graphical user interfaces; multimedia and
3D graphics programming; scripting; system administration; security.
* *Education*: teaching introductory programming; parallel
programming; mathematical proof; algebra.
Submissions will be evaluated according to their relevance, correctness,
significance, originality, and clarity. Each submission should explain
its contributions in both general and technical terms, clearly
identifying what has been accomplished, explaining why it is
significant, and comparing it with previous work. The technical content
should be accessible to a broad audience.
ICFP 2017 also welcomes submissions in two separate categories ---
Functional Pearls and Experience Reports --- that must be marked as
such at the time of submission and that need not report original
research results. Detailed guidelines on both categories are given at
the end of this call.
Please contact the program chair if you have questions or are concerned
about the appropriateness of a topic.
### Preparation of submissions
ICFP 2017 will employ a lightweight double-blind reviewing process, as
described below.
**Deadline**: The deadline for submissions is Monday, February 27, 2017,
Anywhere on Earth (<https://en.wikipedia.org/wiki/Anywhere_on_Earth>).
This deadline will be strictly enforced.
**Formatting**: (NOTE: NEW FORMAT REQUIREMENTS FOR ICFP 2017)
Submissions must be in PDF format, printable in black and white on US
Letter sized paper, and interpretable by common PDF tools. All
submissions must adhere to the "ACM Large" template that is available
(in both LaTeX and Word formats) from
<http://www.acm.org/publications/proceedings-template>.
For authors using LaTeX, a lighter-weight package, including only the
essential files, is available from
<http://sigplan.org/Resources/Author/#acmart-format>; the appropriate
template for ICFP 2017 authors is in the file
`acmart-pacmpl-template.tex`. As documented in the template,
submissions should be prepared using the `acmlarge` and `anonymous`
options. The use of the `review` option is also strongly encouraged but
not required. (The `review` option will add line numbers, which will
make it easier for reviewers to reference specific parts of your paper
in their comments, but should have absolutely no other effect on the
typesetting.) Details of available technical support for LaTeX-specific
questions is available at
<http://www.acm.org/publications/proceedings-template#h-technical-support>.
There is a limit of 24 pages for a full paper or 12 pages for an
Experience Report; in either case, the bibliography will not be counted
against these limits. These page limits have been chosen to allow
essentially the same amount of content with the new single-column format
as was possible with the two-column format used in past ICFP
conferences. Submissions that exceed the page limits or, for other
reasons, do not meet the requirements for formatting, will be summarily
rejected.
**Citations**: As part of PACMPL, ICFP 2017 papers are expected to use
author-year citations for references to other work. Author-year
citations may be used as either a noun phrase, such as "The lambda
calculus was originally conceived by Church (1932)", or a parenthetic
phase, such as "The lambda calculus (Church 1932) was intended as a
foundation for mathematics". A useful test for correct usage it to make
sure that the text still reads correctly when the parenthesized portions
of any references are omitted. Take care with prepositions; in the first
example above, "by" is more appropriate than "in" because it allows the
text to be read correctly as a reference to the author. Sometimes,
readability may be improved by putting parenthetic citations at the end
of a clause or a sentence, such as "A foundation for mathematics was
provided by the lambda calculus (Church 1932)". In LaTeX, use
`\citet{Church-1932}` for citations as a noun phrase, "Church (1932)",
and `\citep{Church-1932}` for citations as a parenthetic phrase,
"(Church 1932)"; for details, see Sections 2.3--2.5 of the natbib
documentation (<http://ctan.org/pkg/natbib>).
**Submission**: Submissions will be accepted at
<https://icfp17.hotcrp.com/> (in preparation at the time of writing).
Improved versions of a paper may be submitted at any point before the
submission deadline using the same web interface.
**Author Response Period**: Authors will have a 72-hour period, starting
at 15:00 UTC on Monday, April 17, 2017, to read reviews and respond to
them.
**Supplementary Materials**: Authors have the option to attach
supplementary material to a submission, on the understanding that
reviewers may choose not to look at it. The material should be uploaded
at submission time, as a single pdf or a tarball, not via a URL. This
supplementary material may or may not be anonymized; if not anonymized,
it will only be revealed to reviewers after they have submitted their
review of the paper and learned the identity of the author(s).
**Authorship Policies**: All submissions are expected to comply with the
ACM Policies for Authorship that are detailed at
<https://www.acm.org/publications/authors/information-for-authors>.
**Republication Policies**: Each submission must adhere to SIGPLAN's
republication policy, as explained on the web at
<http://www.sigplan.org/Resources/Policies/Republication>.
**Resubmitted Papers**: Authors who submit a revised version of a paper
that has previously been rejected by another conference have the option
to attach an annotated copy of the reviews of their previous
submission(s), explaining how they have addressed these previous reviews
in the present submission. If a reviewer identifies him/herself as a
reviewer of this previous submission and wishes to see how his/her
comments have been addressed, the program chair will communicate to this
reviewer the annotated copy of his/her previous review. Otherwise, no
reviewer will read the annotated copies of the previous reviews.
### Review Process
This section outlines the two-stage process with lightweight
double-blind reviewing that will be used to select papers for
presentation at ICFP 2017. A [list of frequently asked questions and
answers](http://icfp17.sigplan.org/track/icfp-2017-papers#Submission-and-Re…
that address common concerns is available on the conference website and
will be updated as necessary to clarify and expand on this process.
**ICFP 2017 will employ a two-stage review process.** The first stage
in the review process will assess submitted papers using the criteria
stated above and will allow for feedback and input on initial reviews
through the author response period mentioned previously. At the PC
meeting, a set of papers will be conditionally accepted and all other
papers will be rejected. Authors will be notified of these decisions on
May 1, 2017.
Authors of conditionally accepted papers will be provided with committee
reviews (just as in previous conferences) along with a set of mandatory
revisions. After five weeks (June 5, 2017), the authors will provide a
second submission. The second and final reviewing phase assesses whether
the mandatory revisions have been adequately addressed by the authors
and thereby determines the final accept/reject status of the paper. The
intent and expectation is that the mandatory revisions can be addressed
within five weeks and hence that conditionally accepted papers will in
general be accepted in the second phase.
The second submission should clearly identify how the mandatory
revisions were addressed. To that end, the second submission must be
accompanied by a cover letter mapping each mandatory revision request to
specific parts of the paper. The cover letter will facilitate a quick
second review, allowing for confirmation of final acceptance within two
weeks. Conversely, the absence of a cover letter will be grounds for the
paper’s rejection.
This process is intended as a refinement of the review process that has
been used in previous ICFP conferences. By incorporating a second stage,
the process will conform to ACM’s journal reviewing guidelines for
PACMPL.
**ICFP 2017 will employ a lightweight double-blind reviewing process.**
To facilitate this, submitted papers must adhere to two rules:
1. **author names and institutions must be omitted**, and
2. **references to authors' own related work should be in the third
person** (e.g., not "We build on our previous work ..." but rather "We
build on the work of ...").
The purpose of this process is to help the PC and external reviewers
come to an initial judgement about the paper without bias, not to make
it impossible for them to discover the authors if they were to try.
Nothing should be done in the name of anonymity that weakens the
submission or makes the job of reviewing the paper more difficult (e.g.,
important background references should not be omitted or anonymized). In
addition, authors should feel free to disseminate their ideas or draft
versions of their paper as they normally would. For instance, authors
may post drafts of their papers on the web or give talks on their
research ideas.
### Information for Authors of Accepted Papers
* As a condition of acceptance, final versions of all papers must adhere
to the new ACM Large format. The page limits for final versions of
papers will be increased to ensure that authors have space to respond
to reviewer comments and mandatory revisions.
* Authors of accepted submissions will be required to agree to one of
the three ACM licensing options: copyright transfer to ACM; retaining
copyright but granting ACM exclusive publication rights; or open
access on payment of a fee. Further information about ACM author
rights is available from <http://authors.acm.org>.
* At least one author of each accepted submission will be expected to
attend and present their paper at the conference. (ICFP welcomes all
authors, regardless of nationality. If any author of an accepted
submission has visa-related difficulties in travelling to the
conference, we will make arrangements to enable remote participation,
and not require them to attend the conference in order to present
their talk.) The schedule for presentations will be determined and
shared with authors after the full program has been selected.
Presentations will be videotaped and released online if the presenter
consents.
* We intend that the proceedings will be freely available for download
from the ACM Digital Library in perpetuity via the OpenTOC mechanism.
* ACM Author-Izer is a unique service that enables ACM authors to
generate and post links on either their home page or institutional
repository for visitors to download the definitive version of their
articles from the ACM Digital Library at no charge. Downloads through
Author-Izer links are captured in official ACM statistics, improving
the accuracy of usage and impact measurements. Consistently linking to
the definitive version of an ACM article should reduce user confusion
over article versioning. After an article has been published and
assigned to the appropriate ACM Author Profile pages, authors should
visit <http://www.acm.org/publications/acm-author-izer-service> to
learn how to create links for free downloads from the ACM DL.
* **AUTHORS TAKE NOTE: The official publication date is the date the
proceedings are made available in the ACM Digital Library. This date
may be up to *two weeks prior* to the first day of the conference. The
official publication date affects the deadline for any patent filings
related to published work.**
### Artifact Evaluation
Authors of papers that are conditionally accepted in the first phase of
the review process will be encouraged (but not required) to submit
supporting materials for Artifact Evaluation. These items will then be
reviewed by a committee, separate from the program committee, whose task
is to assess how the artifacts support the work described in the
associated paper. Papers that go through the Artifact Evaluation process
successfully will receive a seal of approval printed on the papers
themselves. Authors of accepted papers will be encouraged to make the
supporting materials publicly available upon publication of the
proceedings, for example, by including them as "source materials" in the
ACM Digital Library. An additional seal will mark papers whose
artifacts are made available, as outlined in the ACM guidelines for
artifact badging.
Participation in Artifact Evaluation is voluntary and will not influence
the final decision regarding paper acceptance.
Further information about the motivations and expectations for Artifact
Evaluation can be found at
<http://icfp17.sigplan.org/track/icfp-2017-Artifacts>.
### Special categories of papers
In addition to research papers, ICFP solicits two kinds of papers that
do not require original research contributions: Functional Pearls, which
are full papers, and Experience Reports, which are limited to half the
length of a full paper. Authors submitting such papers should consider
the following guidelines.
#### Functional Pearls
A Functional Pearl is an elegant essay about something related to
functional programming. Examples include, but are not limited to:
* a new and thought-provoking way of looking at an old idea
* an instructive example of program calculation or proof
* a nifty presentation of an old or new data structure
* an interesting application of functional programming techniques
* a novel use or exposition of functional programming in the classroom
While pearls often demonstrate an idea through the development of a
short program, there is no requirement or expectation that they do so.
Thus, they encompass the notions of theoretical and educational pearls.
Functional Pearls are valued as highly and judged as rigorously as
ordinary papers, but using somewhat different criteria. In particular, a
pearl is not required to report original research, but, it should be
concise, instructive, and entertaining. A pearl is likely to be rejected
if its readers get bored, if the material gets too complicated, if too
much specialized knowledge is needed, or if the writing is inelegant.
The key to writing a good pearl is polishing.
A submission that is intended to be treated as a pearl must be marked as
such on the submission web page, and should contain the words
"Functional Pearl" somewhere in its title or subtitle. These steps will
alert reviewers to use the appropriate evaluation criteria. Pearls will
be combined with ordinary papers, however, for the purpose of computing
the conference's acceptance rate.
#### Experience Reports
The purpose of an Experience Report is to help create a body of
published, refereed, citable evidence that functional programming really
works --- or to describe what obstacles prevent it from working.
Possible topics for an Experience Report include, but are not limited
to:
* insights gained from real-world projects using functional
programming
* comparison of functional programming with conventional programming
in the context of an industrial project or a university curriculum
* project-management, business, or legal issues encountered when using
functional programming in a real-world project
* curricular issues encountered when using functional programming in
education
* real-world constraints that created special challenges for an
implementation of a functional language or for functional
programming in general
An Experience Report is distinguished from a normal ICFP paper by its
title, by its length, and by the criteria used to evaluate it.
* Both in the proceedings and in any citations, the title of each
accepted Experience Report must begin with the words "Experience
Report" followed by a colon. The acceptance rate for Experience
Reports will be computed and reported separately from the rate for
ordinary papers.
* Experience Report submissions can be at most 12 pages long,
excluding bibliography.
* Each accepted Experience Report will be presented at the conference,
but depending on the number of Experience Reports and regular papers
accepted, authors of Experience reports may be asked to give shorter
talks.
* Because the purpose of Experience Reports is to enable our community
to accumulate a body of evidence about the efficacy of functional
programming, an acceptable Experience Report need not add to the
body of knowledge of the functional-programming community by
presenting novel results or conclusions. It is sufficient if the
Report states a clear thesis and provides supporting evidence. The
thesis must be relevant to ICFP, but it need not be novel.
The program committee will accept or reject Experience Reports based on
whether they judge the evidence to be convincing. Anecdotal evidence
will be acceptable provided it is well argued and the author explains
what efforts were made to gather as much evidence as possible.
Typically, more convincing evidence is obtained from papers which show
how functional programming was used than from papers which only say that
functional programming was used. The most convincing evidence often
includes comparisons of situations before and after the introduction or
discontinuation of functional programming. Evidence drawn from a single
person's experience may be sufficient, but more weight will be given to
evidence drawn from the experience of groups of people.
An Experience Report should be short and to the point: it should make a
claim about how well functional programming worked on a particular
project and why, and produce evidence to substantiate this claim. If
functional programming worked in this case in the same ways it has
worked for others, the paper need only summarize the results --- the
main part of the paper should discuss how well it worked and in what
context. Most readers will not want to know all the details of the
project and its implementation, but the paper should characterize the
project and its context well enough so that readers can judge to what
degree this experience is relevant to their own projects. The paper
should take care to highlight any unusual aspects of the project.
Specifics about the project are more valuable than generalities about
functional programming; for example, it is more valuable to say that the
team delivered its software a month ahead of schedule than it is to say
that functional programming made the team more productive.
If the paper not only describes experience but also presents new
technical results, or if the experience refutes cherished beliefs of the
functional-programming community, it may be better off submitted it as a
full paper, which will be judged by the usual criteria of novelty,
originality, and relevance. The program chair will be happy to advise on
any concerns about which category to submit to.
### Organizers
General Chair: Jeremy Gibbons (University of Oxford, UK)
Program Chair: Mark Jones (Portland State University, USA)
Artifact Evaluation Chair: Ryan R. Newton (Indiana University, USA)
Industrial Relations Chair: Ryan Trinkle (Obsidian Systems LLC, USA)
Programming Contest Organiser: Sam Lindley (University of Edinburgh, UK)
Publicity and Web Chair: Lindsey Kuper (Intel Labs, USA)
Student Research Competition Chair: Ilya Sergey (University College London, UK)
Video Chair: Jose Calderon (Galois, Inc., USA)
Workshops Co-Chair: Andres Löh (Well-Typed LLP)
Workshops Co-Chair: David Christiansen (Indiana University, USA)
Program Committee:
Bob Atkey (University of Strathclyde, Scotland)
Adam Chlipala (MIT, USA)
Dominique Devriese (KU Leuven, Belgium)
Martin Erwig (Oregon State, USA)
Matthew Flatt (University of Utah, USA)
Ronald Garcia (University of British Columbia, Canada)
Kathryn Gray (University of Cambridge, England)
John Hughes (Chalmers University and Quvik, Sweden)
Chung-Kil Hur (Seoul National University, Korea)
Graham Hutton (University of Nottingham, England)
Alan Jeffrey (Mozilla Research, USA)
Ranjit Jhala (University of California, San Diego, USA)
Shin-ya Katsumata (Kyoto University, Japan)
Lindsey Kuper (Intel Labs, USA)
Dan Licata (Wesleyan University, USA)
Ben Lippmeier (Digital Asset, Australia)
Gabriel Scherer (Northeastern University, USA)
Alexandra Silva (University College London, England)
Nikhil Swamy (Microsoft Research, USA)
Sam Tobin-Hochstadt (Indiana University, USA)
Nicolas Wu (University of Bristol, England)
Beta Ziliani (CONICET and FAMAF, Universidad Nacional de Córdoba, Argentina)