[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: propositions, oppositions, and some minor details

campbell@xxxxxxxxxxxxxxxxxxxxxxxxxxx wrote:

I am also *vehemently* opposed to the completely unrestricted operator
of reflection RECORD->SEXP.  Reflection should either be completely
expurgated -- as I'd prefer --, or, if you intend to include any at all
in this SRFI, highly controlled by whomever defined the record type.

I think `record->sexp' is actually pretty handy (for example for debugging purposes).
I vehemently suggest to leave it in.

A smaller issue that I brought up on c.l.s seemed to have been left
unnoticed: record type equivalence seems to be based on name, not on
identity of the record type.  I believe this could be fixed by defining
an extra variable when invoking DEFINE-RECORD for a token identifying
the newly defined record type, and comparing against this, instead of
symbolic names, in BUILD-MAKER.

That leads me to another issue: What about separate compilation?
The problem is here that I might have two source-files, using the
same record type, compiled separately in two different instances of
the compiler. How can I make sure that

; a.scm

(define-record foo ...)

; b.scm

(define-record foo ...)

Refer to the same type?