[Top][All Lists]

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

Re: new slib and guile 1.6.7

From: Greg Troxel
Subject: Re: new slib and guile 1.6.7
Date: 04 Nov 2005 10:46:07 -0500
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4

Kevin Ryde <address@hidden> writes:

> Greg Troxel <address@hidden> writes:
> >
> > You are right, but if you object to going from what we have to what I
> > posted, I don't see your point.
> I was hoping the issue could be killed for good, ie. impervious to
> anything guile.init might do in the future :-).

My latest attempt comes as close as I think we can.

> > slib needs to define the API that guile.init has to provide for
> > users for slib.
> I suspect it's not that formal, but rather the init files are only
> those bits which have turned out to vary between supported schemes.
> The last change for instance moved bits out of the common files into
> the init files.

I think you are right.  But it's currently hard to tell which
definitions have to be exported from the module.  But....

> > (define base:define define)
> > (define define
> >   (procedure->memoizing-macro
> >    (lambda (exp env)
> >      (cons (if (= 1 (length env)) 'define-public 'base:define) (cdr exp)))))
> >
> > which I think results in all the defines in the file being
> > define-public.
> Yes, for top-level defines.  Dunno what that's actually meant to do
> though.

I think the idea is to cooperate with guile's module system and export
all the top-level procedures.

> Incidentally the test seems to fail in the guile cvs, different
> implementation of env or something.

I suppose we either need to fix guile cvs or get some new code for
slib to do what it needs.  Here's results from top-level interactive
in a 1.6.8 release candidate. 

guile> (use-modules (ice-9 format))
guile> (define (a exp env) (format "exp ~A\nenv ~A\n" exp env))
guile> a
#<procedure a (exp env)>
guile> (define b (procedure->macro a))
guile> b
#<macro a>
guile> (b 'foo 'bar)
"exp (b (quote foo) (quote bar))
env (#<eval-closure 80c0b50>)

        Greg Troxel <address@hidden>

reply via email to

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