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: set! prototype implementation



mdj@nada.kth.se writes:
> The previous version had a bug (copy-proc should have been a macro
> instead of a memoizing macro).  Here's an improved version.  (The
> setter argument convention has been changed to (SETTER A1 ... V)).
> 
> Note that this implementation is only meant to clearify the interface.
> 

There are two remaining bugs that I see. I am not sure if these are
artifacts of the prototype implementation or intentional, but either
way they are wrong (IMO).

* All <procedure-with-setter>s appear to be effectively placed in the
(ice-9 setters) module, unless I deeply misunderstand how the module
system works.

* `getter' and `setter' are placed directly in a
<procedure-with-setter>s environment, this may change semantics in
unexpected ways, especially given that `getter' and `setter' are also
top-level bindings in the (ice-9 setters) module. In general a
procedure's environment shouldn't be used to store auxiliary data.

 - Maciej