Rob Browning <[EMAIL PROTECTED]> writes:

> My current intention is to sit down when I have time and see if I can
> figure out what changes, if any, we would have to make to the current
> guile.init in order to be able to rely on it, rather than the code in
> slib.scm.

So here's round one.

Quite a few items in slib.scm are already in guile.init, and so we can
just drop those.  There are some other bits that I wanted to present
for discussion and double-checking.

As background, at the point when any of this code executes, the
current module is (ice-9 slib).

A minor difference regards output-port-width.  The version in slib.scm
returns 80 where the version in guile.init returns 79.

A more significant question regards evaluation.  In slib.scm we have:

  (define-public slib:eval
    (lambda (x) (eval x slib-module)))
  (define defmacro:eval
    (lambda (x) (eval x (interaction-environment))))

where guile.init has:

  ;;; SLIB:EVAL is single argument eval using the top-level (user) environment.
  (define slib:eval
    (if (string<? (scheme-implementation-version) "1.5")
        eval
        (let ((ie (interaction-environment)))
          (lambda (expression)
            (eval expression ie)))))

  (define defmacro:eval slib:eval)

The major difference here is that SLIB's slib:eval evaluates in
interaction-environment rather than the slib module.  It looks like
the current defmacro:eval behaviors are the same.

-- 
Rob Browning
rlb @defaultvalue.org and @debian.org; previously @cs.utexas.edu
GPG starting 2002-11-03 = 14DD 432F AE39 534D B592  F9A0 25C8 D377 8C7E 73A4


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel

Reply via email to