|
semantics of copy and mirror
Peter McGoron
(21 Mar 2026 17:39 UTC)
|
|
Re: semantics of copy and mirror
Daniel Ziltener
(21 Mar 2026 23:06 UTC)
|
|
Re: semantics of copy and mirror Peter McGoron (22 Mar 2026 00:10 UTC)
|
|
Re: semantics of copy and mirror
Daniel Ziltener
(23 Mar 2026 20:12 UTC)
|
|
Re: semantics of copy and mirror
John Cowan
(23 Mar 2026 21:03 UTC)
|
|
Re: semantics of copy and mirror
Daniel Ziltener
(27 Mar 2026 21:33 UTC)
|
|
Re: semantics of copy and mirror
John Cowan
(27 Mar 2026 22:12 UTC)
|
|
Re: semantics of copy and mirror
Daniel Ziltener
(27 Mar 2026 23:39 UTC)
|
|
Re: semantics of copy and mirror
John Cowan
(28 Mar 2026 00:44 UTC)
|
|
Re: semantics of copy and mirror
Daniel Ziltener
(02 Apr 2026 22:09 UTC)
|
|
Re: semantics of copy and mirror
Peter McGoron
(02 Apr 2026 22:34 UTC)
|
|
Re: semantics of copy and mirror
jobol
(24 Mar 2026 06:46 UTC)
|
|
Re: semantics of copy and mirror
Daniel Ziltener
(27 Mar 2026 21:41 UTC)
|
> That implementations may extend an srfi is, imo, implied anyways, no? As far as I understand, extension points to SRFIs are either it-is-an-error situations, or explicit statements to about extensibility. So adding optional arguments to a procedure is OK, since passing the incorrect number of arguments to a procedure is an error situation, and anything goes in an error situation. Adding new identifiers to a library exported by an SRFI would be a violation of the spec of the SRFI, because those newly imported identifiers could conflict with other imported identifiers. (For example, if I made my SRFI 263 implementation export some identifier named `cons`). (I hope my understanding of the object system is correct in this example:) For example, imagine if my implementation extended the `mirror` object with a new default method `do-foo`. Then any invocation of `do-foo` on a mirror object would use that default method. If I were to add a `do-foo` method explicitly to a parent mirror object, and then make a mirror object of a child class, then `do-foo` on the child mirror object would either refer to the child object's `do-foo` or the parent mirror object's `do-foo`, depending on if I use my implementation or others's implementation. So allowing extensibility everywhere while still being called "SRFI ###" can be an issue. It could still be allowed but is a design tradeoff and should be stated explicitly. It's less of an issue for the root object, because presumably if the method doesn't exist it just raises an error. So adding implementation-defined methods to the root object is different than adding implementation-defined methods to other derived classes. > The lists themselves that are returned are shallow copies. Thank you for the clarification. One final one for this subject: do the lists of three elements of immediate-slot-list and full-slot-list or are they generated on each call? Since the lists are the same length and contain the same objects, it might be better to make them record types. Then I could access the information with slot-getter, slot-setter, slot-type, etc. Or they could be objects in the sense of this object system and have 'getter, 'setter, and 'type messages. -- Peter McGoron