<div dir="ltr"><div>Hi Marc!</div><div><br></div><div>Three questions regarding promise auto-forcing:</div><div><br></div><div><br></div><div>1) Scope</div><div>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?</div><div><br></div><div>E.g. (begin (declare (not safe)) (print (##string-append (delay "Hello world")) "\n")) and any other quirky Scheme code cases are also included.</div><div><br></div><div>Do any declares affect auto-forcing behavior?</div><div><br></div><div><br></div><div>2) How/where is it implemented?</div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>What am I missing, would you like to take a minute to describe where and how the auto-forcing logics are implemented?</div><div><br></div><div><br></div><div>3) How build Gambit with it enabled properly?</div><div>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?:</div><div><br></div><div><br></div><div>git clone <a href="https://github.com/gambit/gambit.git">https://github.com/gambit/gambit.git</a></div><div>cd gambit</div><div>./configure --enable-auto-force</div><div>make -j4</div><div>mv gsc/gsc gsc-boot</div><div>make bootclean</div><div>make -j4</div><div>sudo make install</div><div><br></div><div>Or do you suggest any other sequence or way? Should I use "from-scratch" instead of "make bootclean" + "make"?</div><div><br></div><div><br></div><div>Thanks!</div></div>