[gambit-list] Re --enable-auto-forcing: Scope, how/where implemented, how build (with) it properly?

Adam adam.mlmb at gmail.com
Sun Jun 11 05:08:27 EDT 2017


Hi Marc!

Three questions regarding promise auto-forcing:


1) Scope
If build correctly (e.g. per the instructions below), every single
Scheme-world evaluation in the whole GVM will be included in the auto
forcing scheme, right?

E.g. (begin (declare (not safe)) (print (##string-append (delay "Hello
world")) "\n")) and any other quirky Scheme code cases are also included.

Do any declares affect auto-forcing behavior?


2) How/where is it implemented?
I'm trying to follow the code path of the "--enable-auto-forcing"
./configure argument, but I cannot figure out how it is propagated as to
affect anything in include/ , gsc/ , lib/ , anywhere.

Also I can't find any logics in gsc/ , lib/ or include/ (that's where they
should be I supposed) that pertain to automatic forcing of promises.

Possibly the "macro-force-vars", which is used all over the runtime and
compiler, would have something to do with this, but I don't find its
definition anywhere.

What am I missing, would you like to take a minute to describe where and
how the auto-forcing logics are implemented?


3) How build Gambit with it enabled properly?
Also, enabling auto-force requires a full recompile of Gambit's own sources
(for *all* C files involved to be recompiled, including the runtime, e.g.
including the repl, will auto-force, and not just user code and hence just
a tiny part of the logics, which would lead to a totally uneven application
of auto-forcing), right, so the following is how to properly switch it on
right?:


git clone https://github.com/gambit/gambit.git
cd gambit
./configure --enable-auto-force
make -j4
mv gsc/gsc gsc-boot
make bootclean
make -j4
sudo make install

Or do you suggest any other sequence or way? Should I use "from-scratch"
instead of "make bootclean" + "make"?


Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20170611/91eeb736/attachment.htm>


More information about the Gambit-list mailing list