Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!tut.cis.ohio-state.edu!unreplyable!garbage From: jonl%kuwait@LUCID.COM (Jon L White) Newsgroups: comp.lang.clos Subject: Redefining Classes in CLOS Message-ID: <9105161834.AA01638@kuwait> Date: 16 May 91 18:34:18 GMT References: <91May16.094134pdt.29186@tracer-bullet.parc.xerox.com> Sender: welch@tut.cis.ohio-state.edu Distribution: inet Organization: CommonLoops Lines: 27 re: The short answer to the question is that most existing implementations do not update all the instances as soon as the class is defined. I'm curious. Although we've carefully crafted the CLOS design so that it is permissible to do the updates "eagerly", does anyone know of ANY CLOS implementation, either in use or planned, which does not do the explicit version check upon access? [and "explicit check" also covers the case of overloading "cache misses" for this purpose, to reduce the overhead of access.] Lucid's implementation has some extensions beyond the CLOS spec for eagerly caching up all the method combinations and other tricks that might be needed for generic functions, which would otherwise just be lazily computed in the same way that macro-expansions in the interpreter are *usually* delayed until necessary. It wouldn't take much more to provide an explicit inteface for assuring that all objects are "up to date". How important would this be to anyone? We've assumed that these extensions are for those who either want a stripped-down delivery system (one,say, in which there will be no further redefinitions, so the redefinition and update code can just be "shaken" out of the image). But in fact the more common usage seems to be to "warm up" all the caches so that some demonstration of the WhizzySoftwareSystem won't be interrupted by odd, "on the fly" pauses while caches fill up and garbage is collected. -- JonL --