Copyright (c) Xerox Corporation 1989, 1990. All rights reserved. These notes correspond to the "5/1/90 May Day PCL (REV 2)" version of PCL. This version is just Rainy Day PCL with the various patches people have mailed out included. Barring unforseen circumstances, this will be the last version of PCL. We are now working on the Metaobject Protocol. Please read this entire file carefully. Failure to do so guarantees that you will have problems porting your code from the previous release of PCL. You may also be interested in looking at previous versions of the notes.text file. These are called xxx-notes.text where xxx is the version of the PCL system the file corresponds to. At least the last two versions of this file contain useful information for any PCL user. This version of PCL has been tested at PARC in the following Common Lisps: Symbolics 7.2, 7.4 Coral 1.3 Lucid 3.0 Allegro 3.0.1 These should work, but haven't been tested yet: TI Golden Common Lisp 3.1 EnvOS Medley IBCL (October 15, 1987) This release of PCL is substantially different from previous releases. The architecture of the runtime system (method lookup and slot access) is different, and the metaobject protocol is different. Much of the code in this release is new or modified from the last release. When it stabilizes, this release should be much faster for all applications especially large ones. This beta version of the new release includes a number of known problems. These include: * Even less documentation than ever before. I haven't written much of a notes file for what is different yet. Please send me comments for what to include in this file. * Some known performance problems in development versions of compilers. At the very least, you want to compile PCL itself using the highest performance compiler settings you have. === Notes for this release (such as they are) === * There is one major incompatible change in this release. In this release compiling files with defmethod and defclass forms doesn't, by default, affect the running lisp image. The winning part of this is you can compile a file without `installing' the class and method definitions in the file. The losing part is that because PCL is a portable program, it can't both do this and let a class definition and a method which specializes to that class appear in the same file. So, you can't (by default) have: (defclass foo () ()) (defmethod bar ((f foo)) 'foo) in the same file. But you say you want to do this, almost everyone does. If you want to do this just evaluate the following form before after loading PCL but before working with it: (pushnew 'compile pcl::*defclass-times*) You may also want to do: (pushnew 'compile pcl::*defmethod-times*) * You probably also want to begin using a precom file for your system. Do this by having a file whose only contents is (pcl::precompile-random-code-segments ) don't quote for example, for the clim system, the precom file has the one line: (pcl::precompile-random-code-segments clim) compile this file after loading and running your system for a while. load it before loading your compiled system. A future version of this feature won't require you to have run your system for a while, it will only require that you have loaded it.