tag:blogger.com,1999:blog-8288194986820249216.post8674369292814370243..comments2024-03-22T05:09:17.789-07:00Comments on Abstract Heresies: Persisting CLOS objectsJoe Marshallhttp://www.blogger.com/profile/03233353484280456977noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-8288194986820249216.post-29428190165914328722013-07-19T06:53:52.395-07:002013-07-19T06:53:52.395-07:00Alastair Bridgewater noticed "The particular ...<a href="http://www.blogger.com/profile/09532061076145259000" rel="nofollow">Alastair Bridgewater</a> noticed "<i>The particular use of CALL-NEXT-METHOD "should signal an error of type ERROR"</i>".<br /><br />Yep. That's a bug. Fixed. Thanks!<br />Joe Marshallhttps://www.blogger.com/profile/03233353484280456977noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-46430520211124040612013-07-19T06:10:21.196-07:002013-07-19T06:10:21.196-07:00I'd like to report a bug in your example for p...I'd like to report a bug in your example for pstore::restore-instance. The particular use of CALL-NEXT-METHOD "should signal an error of type ERROR", as per CLHS.<br /><br />In safe code, this is required to signal an error. In unsafe code, if this does not signal an error then you are in undefined consequences territory.<br />Alastair Bridgewaterhttps://www.blogger.com/profile/09532061076145259000noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-76805848130545541762013-07-19T05:22:44.106-07:002013-07-19T05:22:44.106-07:00Thanks, Mr. Leinen,
You are right. Typo fixed.
...Thanks, <a href="http://www.blogger.com/profile/13848639114358999199" rel="nofollow">Mr. Leinen</a>, <br />You are right. Typo fixed.<br /><br />I <i>ought</i> to copy and paste from a listener, but I'm lazy.Joe Marshallhttps://www.blogger.com/profile/03233353484280456977noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-89765958114037107622013-07-19T01:02:08.771-07:002013-07-19T01:02:08.771-07:00Shouldn't the instantiation examples read &quo...Shouldn't the instantiation examples read "(make-instance 'test-class ...)" rather than "(make-class ...)"?Simon Leinenhttps://www.blogger.com/profile/13848639114358999199noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-14931354455262779542013-07-18T17:21:29.146-07:002013-07-18T17:21:29.146-07:00I would assume that the insistence on transitive i...<i> I would assume that the insistence on transitive immutability extends to the class as well as the slots.</i><br /><br />That effectively disallows schema changes.Joe Marshallhttps://www.blogger.com/profile/03233353484280456977noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-76472967640952957562013-07-18T17:13:15.950-07:002013-07-18T17:13:15.950-07:00Fair enough: however, I would assume that the insi...Fair enough: however, I would assume that the insistence on transitive immutability extends to the class as well as the slots.<br /><br />The issue with schema evolution is that you don't always know how to migrate an instance from one (version of a) class to another, arbitrary (version of a) class while preserving the semantics, if preserving the semantics is even possible. Anything at all might have changed, so in the general case `update-instance-for-redefined-class` will not save you.John Cowanhttps://www.blogger.com/profile/11452247999156925669noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-77566527036415370972013-07-18T15:45:36.309-07:002013-07-18T15:45:36.309-07:00" The arguments passed to `make-instance` are..." The arguments passed to `make-instance` are the sum total of the information needed to create the instance in its initial state" <br /><br />Well not necessarily. What about any stateful behavior encoded into the objects class? For instance maybe the class maintains an atomic counter for assigning instance ID' or, slots with allocation othe than that of instance (or persistent, since they are handled by his technique.<br /><br />By the way. Couldn't it just have trapped the out of date schema version in shared nitiakize and dispatched it off to update-instance-for-redefined-class?<br />Anonymoushttps://www.blogger.com/profile/04898791309856994697noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-39722954632376876302013-07-18T13:30:17.443-07:002013-07-18T13:30:17.443-07:00I don't understand what you think would count ...I don't understand what you think would count as a proof in this context. The arguments passed to `make-instance` are the sum total of the information needed to create the instance in its initial state. Since you require that instances be transitively immutable, the initial state is the only state. If you have those arguments squirreled away, then you can create another instance in the exact same initial state. Q.E.D.John Cowanhttps://www.blogger.com/profile/11452247999156925669noreply@blogger.com