Hi,

Kevin Ryde <[EMAIL PROTECTED]> writes:

> Yep, looks good.

Applied to both branches (I also converted the change logs in 1.8 to
UTF-8 :-)).

> After I posted I wondered if the values struct is an actual "s" or if
> there's some strange extra I couldn't spot.  Testing eq avoids
> worrying about that.

Yes.  The `s' field is actually part of the REQUIRED_VTABLE_FIELDS that
gets automatically added in `make-vtable-vtable'.

> Dunno why values are a struct and not a smob cell.

Maybe because structs looked cool at that time.  ;-)

>> but their semantics are a
>> little fuzzy to me.  In particular, I don't understand why the size of
>> the tail array can be specified in both `make-vtable-vtable' and
>> `make-struct': What does that mean?  Which one should really be taken
>> into account?
>
> Dunno :).

Then maybe we should "do something" about it in 1.9, and fix remaining
bugs.

> The records level is friendlier I guess.  For a long time I couldn't
> understand what "vtable" meant, I still don't think I quite do.  Maybe
> the docs should be tweaked, to help show what structs are typically
> meant to be.

Yes.  Actually, I used mostly exclusively either SRFI-9 records or GOOPS
classes.  Then there's also Guile's built-in records as you said.

Structs are nice in that they can be easily accessed both from C and
Scheme, so they can probably be used in lieu of SMOBs in some cases.

Still, that leaves us with 3 (or 4) record/struct APIs, and we may also
want to implement R6RS records at some point...

Thanks,
Ludovic.


_______________________________________________
Bug-guile mailing list
Bug-guile@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-guile

Reply via email to