Re: Comments
William D Clinger
(29 Jun 2016 14:40 UTC)
|
Re: Comments
Marc Nieper-Wißkirchen
(29 Jun 2016 15:59 UTC)
|
Re: Comments
William D Clinger
(29 Jun 2016 18:22 UTC)
|
Re: Comments
Marc Nieper-Wißkirchen
(30 Jun 2016 11:56 UTC)
|
Re: Comments William D Clinger (01 Jul 2016 16:07 UTC)
|
Re: Comments
John Cowan
(29 Jun 2016 19:25 UTC)
|
Re: Comments
Marc Nieper-Wißkirchen
(30 Jun 2016 14:45 UTC)
|
Re: Comments William D Clinger 01 Jul 2016 16:06 UTC
Marc Nieper-Wißkirchen wrote: > On the other hand, also SRFI 99/SRFI 131/SRFI 136 do not guarantee much > with respect to subtypes. They only guarantee that the subtype can be a > substitute of the type when it comes to the accessor and mutator functions > of the type. That's the basis for inclusion polymorphism, which was the historical genesis for object-oriented programming and is still considered to be a core principle for OOP. > That's a point. But do you think that there is much SRFI 9 code out there > (if any) that would break if field names weren't symbols but identifiers? Yes. Larceny and some other systems provide implementations of SRFI 9 that are compatible with SRFI 99, SRFI 131, and parts of the R6RS record system. If WG2 declares field names to be something other than symbols, then those systems will have to choose between breaking that compatibility, which would break all existing code that relies on SRFI 9 records being extensible by the inheritance mechanisms of SRFI 99, SRFI 131, and the R6RS system, and maintaining that compatibility, which would make the hypothetical R7RS (large) record system incompatible with SRFI 9 in those systems. Larceny would maintain that compatibility between those record systems and the R7RS (small) record system. That would make any R7RS (large) record system that declares field names to be other than symbols incompatible with the R7RS (small) record system as implemented in Larceny, because Larceny's implementation of the R7RS (small) system satisfies the plain language of that report and Larceny is committed to interoperability between R7RS (small), SRFI 9, SRFI 99, SRFI 131, and the R6RS record system. Larceny would also deprecate any such R7RS (large) record system because it would not interoperate with any of the other record systems supported by Larceny. WG2 has the power to decide what to do about records in R7RS (large). WG2 does not have the authority to make retrospective changes to SRFI 9 semantics that would break existing code in systems such as Larceny where SRFI 9 is compatible with SRFI 99, SRFI 131, the R6RS record system, and the R7RS (small) system. None of that has anything to do with SRFI 137, because SRFI 137 is a standalone SRFI that can be supported by Larceny despite the fact that SRFI 137 would be unrelated to all of the record systems supported by Larceny. Will