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


Jim Blandy <jimb@red-bean.com> writes:

> 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.

Well, I suppose this means that I should say something.

If I've counted them correctly there currently seems to be four
record-like representations in(/with) Guile now:

1 structs
2 procedural record interface
3 GOOPS objects
4 slib structs

Q: Which is most "canonical"?

1 As I said previously, the structs will be replaced, so they are
  not canonical.

4 There is currently no plan to support slib structs

But,

3 Even though there is the possibility that people finally realize
  that a CLOS-style object system isn't The Right Way to go, there is
  still enough people whose minds are CLOS-tuned to guarantee a long
  life of GOOPS.

2 The procedural record interface will very probably also have a long
  life because it is an essential part of SLIB and we have no reason
  not to be compatible here.  (When the new module system arrives we
  will start a process of dividing Guile into modules.  There will
  then be some bindings which will be considered part of a core Guile
  language, and other "lesser" bindings.  There is no guarantee now
  that the procedural record interface will be part of the *core*
  language (which is supposed to spread to other implementations), but
  you can be fairly certain that it will be supported also in the
  future.)

So, while there is no really good "canonical" candidate yet, I suggest
that you use the procedural interface if you don't want to be
dependent on the, currently, separately distributed guile-oops
package, and use GOOPS otherwise.  (GOOPS *is* stable.  Do you think
Christian and I would write something unstable?  Why would we want to
do anything like that? ;-)

Concerning the near future, my guess is that we'll end up in either of
two alternatives:

1 All record-like interfaces (SRFI-9, procedural interface, GOOPS)
  based on a new common low-level representation.

2 As in 1, but GOOPS using its own low-level representation.


Of course, *if* GOOPS will be integrated into the core, new
alternatives will arrise.

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