guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Future of ice-9/slib.scm.


From: Rob Browning
Subject: Re: Future of ice-9/slib.scm.
Date: Sat, 19 Nov 2005 13:43:03 -0800
User-agent: Gnus/5.110004 (No Gnus v0.4) Emacs/21.4 (gnu/linux)

Rob Browning <address@hidden> 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]