[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: guile 3 update, halloween edition
From: |
Andy Wingo |
Subject: |
Re: guile 3 update, halloween edition |
Date: |
Thu, 31 Oct 2019 17:13:52 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) |
Hey :)
On Thu 31 Oct 2019 15:17, Mikael Djurfeldt <address@hidden> writes:
> How does the record subtyping relate to GOOPS? I do realize that there
> are issues related to keeping bootstrapping lean, but shouldn't record
> types and classes share mechanisms?
They share the struct layer.
Records are simple: their fields are laid out in order, are all unboxed,
and can be treated as a simple kind of nominal product type. `match'
takes advantage of this.
GOOPS is more flexible: it can have different slot allocations, unboxed
slots, multiple inheritance, and so on. Because of multiple inheritance
its accessors have to do dynamic dispatch; whereas for records, if
supertype A allocates slot X to index I, all subtypes will have that
slot in the same place. A check whether a record is an instance of A is
a simple O(1) check, rather than the CPL search of GOOPS.
Exceptions have a kind of multiple inheritance, but it's more about
object composition than typing. You can make a compound condition from
a heterogeneous collection of other conditions. While you could
implement compound conditions with subtyping, it's more straightforward
to use composition.
I think the current status is close to the sweet spot but your thoughts
are welcome :) I would dearly like to be able to subtype records in
GOOPS, but having looked at it a few times I haven't found quite the
right way to do it.
Cheers,
Andy
- guile 3 update, halloween edition, Andy Wingo, 2019/10/30
- Re: guile 3 update, halloween edition, Christopher Lemmer Webber, 2019/10/30
- Re: guile 3 update, halloween edition, Chris Vine, 2019/10/30
- Re: guile 3 update, halloween edition, Nala Ginrut, 2019/10/30
- Re: guile 3 update, halloween edition, Thompson, David, 2019/10/30
- Re: guile 3 update, halloween edition, Mikael Djurfeldt, 2019/10/31
- Re: guile 3 update, halloween edition,
Andy Wingo <=
- Re: guile 3 update, halloween edition, David Pirotte, 2019/10/31
- Re: guile 3 update, halloween edition, Sjoerd van Leent, 2019/10/31