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: records



> guile currently has the concept of "records".  there seems to be a srfi
> in the works about records.  there are goops and other object systems,
> which presumably can be used to implement records.
> 
> so my question basically is: what is the roadmap for guile records?

One of the reasons RnRS has no record proposal is that, while the
authors agree that any record proposal should be cleanly extendable
into a full object system, they do not agree on what sort of object
system Scheme should have. 

Abelson and Sussman argue that object systems are misconceived to
begin with.  (There's a long footnote in SICP about this; I can't
remember where it is, exactly.)  Their argument is essentially that
nobody has figured out a decent way to describe operations on more
than one type.  Or something like that.  CLOS at least attempts to
address this issue, by letting you specialize a generic function on the
types of more than one of its arguments.  But Java, C++, etc. just
totally punt the issue.

So this is a deep problem.  It's sufficienly deep that I'm scared to
say much more, because I'm so likely to start talking gibberish and be
shredded by a real type hacker.  (I'm just a wannabe type hacker.)

Mikael is better suited to answer your specific question than I am,
but my understanding is that all of the existing record proposals can
basically be implemented on top of GOOPS in one way or another, and
thereby interoperate nicely.  So use whatever you please.  But I
haven't thought through the details here.

We're going to move GOOPS into the core distribution eventually.  When
that happens, you should define GOOPS classes.  Until then, it should
be okay to use whatever's in Guile right now.

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