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

Bradley Lucier lucier at math.purdue.edu
Mon Jun 12 18:30:10 EDT 2017


> On Jun 11, 2017, at 5:08 AM, Adam <adam.mlmb at gmail.com> wrote:
> 
> 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.
> 

In _gambit#.scm:

(macro-define-syntax macro-force-vars
  (lambda (stx)
    (syntax-case stx ()
      ((_ vars expr)
       (if (let* ((co
                   (##global-var-ref
                    (##make-global-var '##compilation-options)))
                  (comp-opts
                   (if (##unbound? co) '() co)))
             (assq 'force comp-opts))

           (syntax-case (datum->syntax
                         #'vars
                         (map (lambda (x) `(,x (##force ,x)))
                              (syntax->list #'vars)))
               ()
             (bindings #'(let bindings expr)))

           #'expr)))))



More information about the Gambit-list mailing list