This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: setf.scm


> One problem with calling setf! set! instead in Guile is that the
> primitive set! exists, and having a loadable module which changes the
> behavior of primitive syntactic forms is perhaps not a good idea.

You have to decide whether you want setf! to be part of the Guile
language and encourage people to use it.  I assume so, since the main
justification for setf! seems to be as a *standard* syntax, instead
of a mess of set-XXX! and XXX-set! forms.  If so, whether setf!/set!
is a loadable module is an implementation detail that should come
*after* we decide on the specification.

> Hmm, is your set! static or dynamic (in the earlier terminology of
> this discussion, see archive if necessary)?

Well, I did say define (set! (PROC ARGS ...) RHS) as equivalent
to ((setter PROC) RHS ARGS ...).  So the question reduces to whether
setter is dynamic or static.  I believe it is should be "dynamic"
(i.e. setter evalues PROC at run-time), and that is what I have
implemented.  Of course, if you allow the compiler to inline
or statically resolve some procedures, then you can also inline
or statically resolve the call to setter.

	--Per Bothner
Cygnus Solutions     bothner@cygnus.com     http://www.cygnus.com/~bothner