This is the mail archive of the guile@sourceware.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: interface reductions


On 25 May 2000, Marius Vollmer wrote:

> Dirk Herrmann <dirk@ida.ing.tu-bs.de> writes:
> 
> > (I think it's still questionable to keep the _FAST_ variants, since it's
> > somewhat unlikely that people will store the fluid number for longer
> > times.
> 
> Why do you want to remove the macros?  Are you afraid that they expose
> too much implementation details?  That they are too difficult to use?
> Do you think they are redundant?

They expose too much implementation details and are redundant, yes.  They
probably are not too difficult to use, though :-)

> The fluid interface has been in place for quite some time, without
> causing problems.  I think we should only change it when there are
> some real, practical reasons, not only because we don't like it any
> longer.

I don't claim that the interface has caused troubles, I just claim that it
is unwise to exhibit implementation details.  My assumption is, that we
_might_ want to change the implementation some time, which wouldn't be too
surprising if we take a look at how many parts of guile have been replaced
or are supposed to be replaced in the future.  

For example:  Fluids can't currently be garbage collected, just because
users might store the integer reference to it instead of a SCM value.  So,
I can easily break guile by creating lots of fluids and not use them any
longer:  They live forever even without references.  That's bad.

So, if once we decide to change the implementation, a lot of user code may
have used the _FAST_ macros, probably even in places of code where there
is no need for optimization at all.  That's the typical case with all kind
of 'optimised' variants:  Users use them like 'Oh, there's a fast
variant?  I'd better use that from the start.'

Best regards
Dirk


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