Received: from Sail.Stanford.EDU by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA17275; Fri, 11 Aug 89 10:38:02 -0700 Received: from STONY-BROOK.SCRC.Symbolics.COM by SAIL.Stanford.EDU with TCP; 11 Aug 89 10:37:31 PDT Received: from EUPHRATES.SCRC.Symbolics.COM by STONY-BROOK.SCRC.Symbolics.COM via CHAOS with CHAOS-MAIL id 640350; 11 Aug 89 13:39:21 EDT Date: Fri, 11 Aug 89 13:39 EDT From: David A. Moon Subject: Re: call-next-method To: Gregor.pa@Xerox.COM Cc: Gail Zacharias , common-lisp-object-system@sail.stanford.edu In-Reply-To: <19890728184745.0.GREGOR@SPIFF.parc.xerox.com> Message-Id: <19890811173950.3.MOON@EUPHRATES.SCRC.Symbolics.COM> Line-Fold: No Date: Fri, 28 Jul 89 11:47 PDT From: Gregor.pa@Xerox.COM Date: Thu, 27 Jul 89 12:06 EDT From: David A. Moon The documentation everywhere says "in the body of a method", which presumably excludes forms contained in the lambda-list, since "body of the method" is explicitly defined in the documentation of DEFMETHOD. Personally I think that was a poor design decision. Current practice: PCL appears to allow call-next-method in forms in the lambda-list. Flavors doesn't allow continue-whopper in forms in the lambda-list, although there is no reason why it couldn't. I rewrote PCL to allow this because I remembered us having a long discussion during which we decided this was the desired behavior. So, I am surprised to see that the spec doesn't say this is right. Tentatively, Symbolics' review comments on the draft that has not yet been distributed for X3J13 review will say that this ought to be changed. Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA19140; Fri, 11 Aug 89 13:21:39 -0700 Received: from Chardonnay.ms by ArpaGateway.ms ; 11 AUG 89 13:23:11 PDT Return-Path: Redistributed: commonloops.pa Received: from hermes.Berkeley.EDU ([128.32.149.19]) by Xerox.COM ; 11 AUG 89 13:17:53 PDT Received: by hermes.Berkeley.EDU (5.61/1.31) id AA14119; Fri, 11 Aug 89 13:18:08 -0700 Date: Fri, 11 Aug 89 13:18:08 -0700 From: konstan@hermes.Berkeley.EDU (Joe Konstan) Message-Id: <8908112018.AA14119@hermes.Berkeley.EDU> To: smh@franz.com Subject: Re: Method and Generic Function internal names Cc: commonloops.pa@Xerox.COM I tried your suggestion, and think I have a simpler version which works (but may have unforseen future problems): (defun get-setf-function-name (name) (or (gethash name *setf-function-names*) (setf (gethash name *setf-function-names*) (intern (let* ((pack (symbol-package name)) (pack-name (package-name pack)) (plain-name (symbol-name name)) (*package* (or pack *the-pcl-package*)) (*print-case* :upcase) (*print-gensym* t)) (format nil "SETF ~A::~A" pack-name plain-name)) *the-pcl-package*)))) Thanks a lot Joe Konstan Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA17948; Sun, 13 Aug 89 16:23:09 -0700 Received: from Salvador.ms by ArpaGateway.ms ; 13 AUG 89 16:24:52 PDT Return-Path: Redistributed: commonloops.pa Received: from uunet.uu.net ([192.48.96.2]) by Xerox.COM ; 13 AUG 89 16:23:02 PDT Received: by uunet.uu.net (5.61/1.14) with UUCP id AA14119; Sun, 13 Aug 89 19:22:39 -0400 Received: by franz.Franz.COM (MC 2.0/FI-1.0) id AA01474; Sun, 13 Aug 89 15:30:23 PDT Received: by feast.sun.com (3.2/SMI-3.2) id AA00180; Sat, 12 Aug 89 23:22:39 EDT Date: Sat, 12 Aug 89 23:22:39 EDT From: smh@franz.com (Steven M. Haflich) Message-Id: <8908130322.AA00180@feast.sun.com> To: konstan%hermes.Berkeley.EDU@franz.com Cc: commonloops.pa%xerox.com@franz.com Subject: Method and Generic Function internal names In-Reply-To: Joe Konstan's message of Fri, 11 Aug 89 13:18:08 -0700 <8908112018.AA14119@hermes.Berkeley.EDU> From: konstan@hermes.Berkeley.EDU (Joe Konstan) (defun get-setf-function-name (name) (or (gethash name *setf-function-names*) (setf (gethash name *setf-function-names*) (intern (let* ((pack (symbol-package name)) (pack-name (package-name pack)) (plain-name (symbol-name name)) (*package* (or pack *the-pcl-package*)) (*print-case* :upcase) (*print-gensym* t)) (format nil "SETF ~A::~A" pack-name plain-name)) *the-pcl-package*)))) The SYMBOL-PACKAGE in you version will fail if NAME is an uninterned symbol. Although your code probably won't name functions using gensyms, you can't safely assume code in other loaded systems won't do it somewhere. There are other potential problems which are unlikely to happen unless you use "unreasonable" package or symbol names, for instance those that contain double colons in the package or symbol name. Your function will confuse these two distinct symbols |one::two|::three one::|two::three| because both will print as one::two::three. Received: from [13.0.12.232] by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA18118; Sun, 13 Aug 89 17:13:42 -0700 Received: from Chardonnay.ms by ArpaGateway.ms ; 13 AUG 89 17:14:25 PDT Return-Path: Redistributed: commonloops.pa Received: from life.ai.mit.edu ([128.52.32.80]) by Xerox.COM ; 13 AUG 89 17:12:25 PDT Received: from wheat-chex (wheat-chex.ai.mit.edu) by life.ai.mit.edu (4.1/AI-4.10) id AA04686; Sun, 13 Aug 89 20:12:06 EDT From: gillett@ai.mit.edu (Walter E. Gillett) Received: by wheat-chex (4.0/AI-4.10) id AA03117; Sun, 13 Aug 89 20:12:11 EDT Date: Sun, 13 Aug 89 20:12:11 EDT Message-Id: <8908140012.AA03117@wheat-chex> To: commonloops.pa@Xerox.COM Cc: cl-bugs@franz.com Subject: problem with arglist checking When Victoria Day PCL is compiled in Allegro with default safety and speed settings (the defaults are mostly speed=3, safety=0), method dispatch doesn't always check arglists properly. See the following sessions below. Arglist checking is correct when the settings are changed to speed=0, safety=3. This bug should never occur, regardless of the compiler settings. LISP-IMPLEMENTATION-TYPE: Allegro CL LISP-IMPLEMENTATION-VERSION: 3.0.3 [tek4300] (4/30/89 23:58) MACHINE-TYPE: Tektronix 4300 MACHINE-VERSION: SOFTWARE-TYPE: Utek SOFTWARE-VERSION: SHORT-SITE-NAME: armenia *features* is (:GSGC :FRANZ-INC :EXCL :COMMON-LISP :ALLEGRO-V3.0 :ALLEGRO :TEK4300 :TEKTRONIX :TEKCL :UNIX :MULTIPROCESSING :XLIB :GC-CURSOR :CW-X) ;;; Following LISP session is with speed=3, safety=0 PCL. NIL (use-package :pcl) T (defclass a () ()) (:CLASS A) NIL (defmethod three ((a a)) 3) (:METHOD THREE :PRIMARY (A)) NIL (setq a (make-instance 'a)) # (three a) 3 (three a a) 3 (three a a a a a a a a) 3 ;;; If PCL is recompiled with safety=3, speed=0, then the error is caught: (three a a) Error: Wrong number of args passed to THREE Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA00417; Mon, 14 Aug 89 07:34:11 -0700 Received: from Semillon.ms by ArpaGateway.ms ; 14 AUG 89 07:35:50 PDT Return-Path: Redistributed: CommonLoops.pa Received: from oahu.cs.ucla.edu ([131.179.128.12]) by Xerox.COM ; 14 AUG 89 07:17:08 PDT Return-Path: Received: by oahu.cs.ucla.edu (Sendmail 5.61.ucla-34/2.18) id AA22583; Mon, 14 Aug 89 06:33:47 -0700 Date: Mon, 14 Aug 89 06:33:47 -0700 From: dinh@CS.UCLA.EDU (Dinh Le) Message-Id: <8908141333.AA22583@oahu.cs.ucla.edu> To: CommonLoops.pa@Xerox.COM Subject: Xerox PCL (portable common loops) Please send information about how to obtain PCL. Thanks, Dinh Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA10824; Mon, 14 Aug 89 15:19:47 -0700 Received: from Semillon.ms by ArpaGateway.ms ; 14 AUG 89 15:21:30 PDT Return-Path: Redistributed: commonloops.pa Received: from uunet.uu.net ([192.48.96.2]) by Xerox.COM ; 14 AUG 89 15:18:13 PDT Received: by uunet.uu.net (5.61/1.14) with UUCP id AA07670; Mon, 14 Aug 89 18:18:01 -0400 Received: by franz.Franz.COM (MC 2.0/FI-1.0) id AA03485; Mon, 14 Aug 89 13:15:40 PDT Received: by akbar.Franz.COM (3.2/FI-1.0) id AA02976; Mon, 14 Aug 89 13:11:15 PDT Date: Mon, 14 Aug 89 13:11:15 PDT From: cox@franz.com (Charles A. Cox) Message-Id: <8908142011.AA02976@akbar.Franz.COM> To: gillett@ai.mit.edu (Walter E. Gillett) Cc: commonloops.pa@Xerox.COM Subject: Re: Problems with PCL on Allegro CL It appears you have been running into two major problems in trying to bring up PCL in Allegro CL on your Tektronix workstation (which is a 68K-based machine). The first problem is a known bug. A patch that fixes it is available from Franz Inc. I believe you have been contacted privately regarding this patch, but for the rest who may be experiencing problems with PCL on 68K based Allegro CL, you can ask about the patch by contacting Franz Inc. (bugs@franz.com is a good address to use). The other problem deals with code compiled at different speed/safety settings. The Allegro CL documentation (section 7.3.2) describes how the compiler generates code based on the different values of these settings. As documented, we recommend using speed 3 and safety 1 for "production" code with local declarations to speed 3/safety 0 only within well tested routines. The difference between safety 1 and safety 0 when speed is 3 is that argument checking and interrupt checking is turned off. This doesn't make correctly coded programs fail, but it can make incorrectly coded programs very hard to debug. We'd be glad to discuss further the optimization switches in Allegro CL and how they're affected by speed/safety settings, but we should do so on another list, like Allegro-CL@Berkeley.EDU (formerly known as excl-forum@Berkeley.EDU). Charley --- Charles A. Cox, Franz Inc. 1995 University Avenue, Suite 275 Internet: cox@franz.com Berkeley, CA 94704 uucp: uunet!franz!cox Phone: (415) 548-3600 FAX: (415) 548-8253 Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA18046; Wed, 16 Aug 89 03:54:13 -0700 Received: from Catawba.ms by ArpaGateway.ms ; 16 AUG 89 02:40:20 PDT Return-Path: <@CUNYVM.CUNY.EDU:CHEEWEEI@ITIVAX.BITNET> Redistributed: commonloops.pa Received: from CUNYVM.CUNY.EDU ([128.228.1.2]) by Xerox.COM ; 16 AUG 89 02:39:08 PDT Received: from ITIVAX.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP R1.2.1MX) with BSMTP id 7109; Wed, 16 Aug 89 05:39:03 EDT Date: Wed, 16 Aug 89 12:02 U From: Subject: cyclic class definition To: commonloops.pa@Xerox.COM X-Original-To: commonloops.pa@xerox.com, CHEEWEEI Message-Id: <890816-024020-18964@Xerox> Shouldn't PCL handle this ... (defclass c1 () ()) (defclass c2 (c1) ()) (defclass c1 (c2) ()) Expanding main stack due to overflow. (... instead of going into an infinite loop?) CW CHEEWEEI%itivax.bitnet Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA23486; Wed, 16 Aug 89 09:05:10 -0700 Received: from Catawba.ms by ArpaGateway.ms ; 16 AUG 89 08:09:33 PDT Return-Path: Redistributed: commonloops.pa Received: from DINO.BBN.COM ([128.89.3.8]) by Xerox.COM ; 16 AUG 89 08:06:45 PDT To: CHEEWEEI%ITIVAX.BITNET@cunyvm.cuny.edu Cc: commonloops.pa@Xerox.COM Subject: Re: metaclasses In-Reply-To: Your message of Thu, 10 Aug 89 14:49:00 +0800. <890809-235233-6074@Xerox> Date: Wed, 16 Aug 89 11:20:50 -0400 From: kanderso@DINO.BBN.COM Message-Id: <890816-080933-19460@Xerox> Date: Thu, 10 Aug 89 14:49 U From: CHEEWEEI%ITIVAX.BITNET@cunyvm.cuny.edu MMDF-Warning: Parse error in original version of preceding line at DINO.BBN.COM Subject: metaclasses To: commonloops.pa@xerox.com X-Original-To: commonloops.pa@xerox.com, CHEEWEEI Message-Id: <890809-235233-6074@Xerox> In defining a metaclass eg. (defclass my-standard-class (standard-class) ()) I also have to define: (defmethod check-super-metaclass-compatibility ((x my-standard-class) (y t)) 't) Is this something that must be done now as well as in future for user defined metaclasses? Is the decision when classes and methods are compiled totally left up to the CLOS implementation? Is there a similar function like compile-flavor-methods in Flavors that ensures it? C CHEEWEEI%itivax.bitnet This is what we use: (defvar *compile-class-hash* (make-hash-table :test #'eq)) (defun COMPILE-CLASS-METHODS-1 (classes) (clrhash *compile-class-hash*) (dolist (class-spec classes) (let ((class (cond ((symbolp class-spec) (find-class class-spec nil)) ((classp class-spec) class-spec)))) (cond (class (dolist (gf (class-direct-generic-functions class)) (unless (gethash gf *compile-class-hash*) (setf (gethash gf *compile-class-hash*) T) (notice-methods-change-1 gf)))) (t (warn "~A is neither a class nor the name of a class" class-spec)))))) (defmacro COMPILE-CLASS-METHODS (&rest classes) `(compile-class-methods-1 ',classes)) Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA01295; Wed, 16 Aug 89 14:40:21 -0700 Received: from Semillon.ms by ArpaGateway.ms ; 16 AUG 89 13:13:32 PDT Return-Path: Redistributed: commonloops.pa Received: from uunet.uu.net ([192.48.96.2]) by Xerox.COM ; 16 AUG 89 13:10:45 PDT Received: by uunet.uu.net (5.61/1.14) with UUCP id AA10584; Wed, 16 Aug 89 16:10:25 -0400 Received: by opal.STC.LOCKHEED.COM (3.2/1.49); Wed, 16 Aug 89 14:52:44 CDT From: Received: by bluejay.STC.LOCKHEED.COM (3.2/1.5); Wed, 16 Aug 89 14:56:01 CDT Date: Wed, 16 Aug 89 14:56:01 CDT Message-Id: <8908161956.AA03999@bluejay.STC.LOCKHEED.COM> Received: by DnaMail (v1.1)(dnamaild.c 1.13); Wed Aug 16 14:50:33 1989 CDT X-Vms-To: HAWK::EAGLE::"commonloops.pa@xerox.com" Subject: PCL To: commonloops.pa@Xerox.COM To anyone, About two weeks ago a got the tar version of PCL from arisia @ xerox. I incorrectly assumed that the bug fixes that have been put out since this PCLs release were integrated into this PCL source. Will someone tell me, and send me, the bug fixes that are needed for this PCL. I do not have remote ftp so I can not get them myself. Thanks Ramon Santiago Lockheed Software Technology Center Palo Alto (415) 354-5822 santiago@mvii.decnet.lockheed.com Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA07638; Thu, 17 Aug 89 14:43:24 -0700 Received: from Catawba.ms by ArpaGateway.ms ; 17 AUG 89 11:33:38 PDT Return-Path: Redistributed: CommonLoops.PA Received: from uunet.uu.net ([192.48.96.2]) by Xerox.COM ; 17 AUG 89 11:29:56 PDT Received: from ukc.UUCP by uunet.uu.net (5.61/1.14) with UUCP id AA00436; Thu, 17 Aug 89 14:29:04 -0400 Received: from meiko.co.uk by kestrel.Ukc.AC.UK via PSS (UKC CAMEL FTP) id aa00753; 15 Aug 89 16:11 BST Received: from subnode.meiko.co.uk (pollux) by sol.meiko.co.uk; Tue, 15 Aug 89 16:08:52 BST Date: Tue, 15 Aug 89 16:08:44 BST Message-Id: <13821.8908151508@subnode.meiko.co.uk> From: John Casu To: CommonLoops.PA@Xerox.COM I have a copy of PCL, and would be much obliged if you could include me on your mailing lists. My address is : John Casu Meiko Scientific, 650 Aztec West, Bristol, BS12 4SD, England. My E-mail is : john@uk.co.meiko Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA08622; Thu, 17 Aug 89 15:35:25 -0700 Received: from Salvador.ms by ArpaGateway.ms ; 17 AUG 89 11:58:10 PDT Return-Path: Redistributed: commonloops.pa Received: from XV.MIT.EDU ([18.86.0.4]) by Xerox.COM ; 17 AUG 89 11:55:42 PDT Received: from MITMS1-E52: by XV.MIT.EDU; 1 Jan 01 23:28:44 EST Cc: Kevin_Crowston@XV.MIT.EDU To: commonloops.pa@Xerox.COM, info-allegro@media-lab.media.mit.edu Subject: compiling pcl on Coral Common Lisp From: Kevin_Crowston@XV.MIT.EDU Date: 17 Aug 89 14:52:40 EDT Message-Id: <0.43520.29067.17244.10413@XV.MIT.EDU> Sender: Kevin_Crowston@XV.MIT.EDU Quite some time ago, I mentioned I had problems compiling PCL on a Mac with an accelerator board. Through the kindness of TSI, the board manufacturer, I have discovered that Allegro, when running on a 68020, assumes the existance of an FPU chip. Putting in the FPU chip solves the problem. This probably never comes up on a Mac II, since they all have FPUs, but if you're having problems with an accelerator board, you might give it a try. Kevin Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA09527; Thu, 17 Aug 89 16:28:59 -0700 Received: from Salvador.ms by ArpaGateway.ms ; 17 AUG 89 14:49:33 PDT Return-Path: Redistributed: commonloops.pa Received: from cambridge.apple.com ([134.149.2.3]) by Xerox.COM ; 17 AUG 89 14:46:43 PDT Received: by cambridge.apple.com (4.1/SMI-DDN) id AA08955; Thu, 17 Aug 89 17:43:48 EDT Date: Thu, 17 Aug 89 17:43:48 EDT From: alms@cambridge.apple.com (Andrew L. M. Shalit) Message-Id: <8908172143.AA08955.alms@cambridge.apple.com> To: Kevin_Crowston@XV.MIT.EDU Cc: commonloops.pa@Xerox.COM, Kevin_Crowston@XV.MIT.EDU In-Reply-To: Kevin_Crowston@XV.MIT.EDU's message of 17 Aug 89 14:52:40 EDT <0.43520.29067.17244.10413@XV.MIT.EDU> Subject: compiling pcl on Coral Common Lisp From: Kevin_Crowston@XV.MIT.EDU Date: 17 Aug 89 14:52:40 EDT Sender: Kevin_Crowston@XV.MIT.EDU Quite some time ago, I mentioned I had problems compiling PCL on a Mac with an accelerator board. Through the kindness of TSI, the board manufacturer, I have discovered that Allegro, when running on a 68020, assumes the existance of an FPU chip. Putting in the FPU chip solves the problem. this isn't quite right. Mac Allegro never assumed that 68020 implied an FPU chip. Rather, it assumes that unimplemented instruction traps get processed correctly. On a machine without an FPU, executing an FPU instruction should cause an unimplemented instruction trap, which Lisp than catches, redirecting things to SANE. Unfortunately, some accellerator board manufactures play with the exception handling so that unimplemented instruction traps don't occur properly. In any case, putting in an FPU chip solves the problem. Received: from Sail.Stanford.EDU by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA09796; Fri, 18 Aug 89 13:38:56 -0700 Received: from cs.utah.edu by SAIL.Stanford.EDU with TCP; 18 Aug 89 13:38:24 PDT Received: from defun.utah.edu by cs.utah.edu (5.61/utah-2.2-cs) id AA22033; Fri, 18 Aug 89 14:39:08 -0600 Received: by defun.utah.edu (5.61/utah-2.2-leaf) id AA02387; Fri, 18 Aug 89 14:39:05 -0600 From: sandra%defun@cs.utah.edu (Sandra J Loosemore) Message-Id: <8908182039.AA02387@defun.utah.edu> Date: Fri, 18 Aug 89 14:39:03 MDT Subject: define-method-combination examples To: common-lisp-object-system@sail.stanford.edu I have been trying to figure out how the long form of DEFINE-METHOD-COMBINATION works. The examples in the spec use a function called MAKE-METHOD, which does not seem to be defined anywhere. Was this an oversight? Can somebody supply a definition for this function, or rewritten examples that don't rely on it? -Sandra ------- Received: from Sail.Stanford.EDU by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA09847; Fri, 18 Aug 89 13:47:11 -0700 Received: from lucid.com by SAIL.Stanford.EDU with TCP; 18 Aug 89 13:46:45 PDT Received: from challenger ([192.9.200.17]) by heavens-gate id AA08276g; Fri, 18 Aug 89 13:47:10 PDT Received: by challenger id AA05606g; Fri, 18 Aug 89 13:44:19 PDT Date: Fri, 18 Aug 89 13:44:19 PDT From: Patrick Dussud Message-Id: <8908182044.AA05606@challenger> To: sandra%defun@cs.utah.edu Cc: common-lisp-object-system@sail.stanford.edu In-Reply-To: Sandra J Loosemore's message of Fri, 18 Aug 89 14:39:03 MDT <8908182039.AA02387@defun.utah.edu> Subject: define-method-combination examples From: sandra%defun@cs.utah.edu (Sandra J Loosemore) Date: Fri, 18 Aug 89 14:39:03 MDT I have been trying to figure out how the long form of DEFINE-METHOD-COMBINATION works. The examples in the spec use a function called MAKE-METHOD, which does not seem to be defined anywhere. Was this an oversight? Can somebody supply a definition for this function, or rewritten examples that don't rely on it? -Sandra ------- make-method is not a function, but a special marker in the list given to call-method. Look at the definition of call-method(2-11) for more detail. Patrick. Received: from Sail.Stanford.EDU by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA22261; Mon, 21 Aug 89 17:32:38 -0700 Received: from ti.com by SAIL.Stanford.EDU with TCP; 21 Aug 89 17:33:00 PDT Received: by ti.com id AA14899; Mon, 21 Aug 89 19:34:28 CDT Received: from dsg by tilde id AA12587; Mon, 21 Aug 89 19:16:57 CDT Received: From Kelvin By dsg Via CHAOS-NET With CHAOS-MAIL; Mon, 21 Aug 89 19:16:39 CDT Message-Id: <2828736971-10348264@Kelvin> Sender: GRAY@kelvin.csc.ti.com Date: Mon, 21 Aug 89 19:16:11 CDT From: David N Gray To: Common-Lisp-Object-System@SAIL.Stanford.edu Subject: ENSURE-CLASS-USING-CLASS CLOS folks, I've got another problem with the Meta Object Protocol. In 89-003, the description of ENSURE-CLASS-USING-CLASS and initialization of class objects says that the class name argument of ENSURE-CLASS-USING-CLASS is not passed to MAKE-INSTANCE. An anonymous class object is created, and then ENSURE-CLASS-USING-CLASS uses (SETF CLASS-NAME) and (SETF FIND-CLASS) to give it a name and install it. I had wondered why not just include a :NAME argument in the initialization arguments for MAKE-INSTANCE, but I didn't find any reason why the initialization code would have to have the name. However, that's only for creating an instance of STANDARD-CLASS. For other metaclasses, the name may be required. The example that I have run into is trying to use the meta object protocol to define classes which are really old flavors. The SHARED-INITIALIZE method is supposed to install the new class in the class hierarchy, but since old flavors has no concept of anonymous flavors, it is impossible to do the equivalent of ADD-DIRECT-SUBCLASS without knowing the name of the flavor. Therefore, I believe that the present model is not general enough and a :NAME argument needs to be added to the class initialization arguments. Another advantage of this change is that if function (SETF CLASS-NAME) is not needed by ENSURE-CLASS-USING-CLASS, then a call to (SETF CLASS-NAME) is a change rather than an initialization, and it becomes possible for certain metaclasses to disallow this. For example, I want to signal an error if a user tries to change the name of a flavor class. Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA06953; Tue, 22 Aug 89 12:46:30 -0700 Received: from Salvador.ms by ArpaGateway.ms ; 22 AUG 89 12:21:27 PDT Return-Path: Redistributed: CommonLoops.pa Received: from rand.org ([192.5.14.33]) by Xerox.COM ; 22 AUG 89 12:07:04 PDT Received: from blackcomb.rand.org by rand.org; Tue, 22 Aug 89 11:44:01 PDT Received: from localhost by blackcomb.rand.org; Tue, 22 Aug 89 11:42:46 PDT Message-Id: <8908221842.AA19363@blackcomb.rand.org> To: CommonLoops.pa@Xerox.COM Cc: Darrell_Shane , David_McArthur Subject: Declaration of valid initialization args. Date: Tue, 22 Aug 89 11:42:45 PDT From: Darrell More than a month ago I sent out a description of a problem I was having in declaring method arguments to be valid initialization arguments in either the allocate-instance, initialize-instance or shared-instance method. Make-instance calls compute-applicable-methods on each of the three methods in an effort to validate ALL initialization arguments (including method arguments). Yet from what kanderso@dino.bbn.com has mentioned, and from what I have seen, compute-applicable-methods will return the correct value only after its generic function argument has been called at least once. Thus, allocate-instance, initialize-instance and shared-instance must be called once before make-instance will recognize method arguments as valid initialization arguments. This seems to be a bug. What are your thoughts CLOS gurus? Darrell Shane Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA22057; Wed, 23 Aug 89 06:33:02 -0700 Received: from Chardonnay.ms by ArpaGateway.ms ; 23 AUG 89 06:34:18 PDT Return-Path: Redistributed: commonloops.pa Received: from siemens.siemens.com ([129.73.10.1]) by Xerox.COM ; 23 AUG 89 06:30:53 PDT Received: by siemens.siemens.com (5.54/1.15) id AA00352; Wed, 23 Aug 89 09:28:52 EST From: dvs2414@ztivax.siemens.com (Christian Ammon) Date: Wed, 23 Aug 89 10:34:44 -0200 Message-Id: <8908230834.AA04121@ztivax.uucp> Received: by ztivax.uucp; Wed, 23 Aug 89 10:34:44 -0200 To: Gregor.pa@Xerox.COM, kanderso%dino.bbn.com%uunet%unido.uucp@siemens.siemens.com Subject: Re: no-applicable-method Cc: CHEEWEEI%itivax.bitnet@siemens.siemens.com, commonloops.pa@Xerox.COM d Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA04902; Wed, 23 Aug 89 14:54:17 -0700 Received: from Salvador.ms by ArpaGateway.ms ; 23 AUG 89 14:22:20 PDT Return-Path: Redistributed: CommonLoops.pa Received: from lucid.com ([192.26.25.1]) by Xerox.COM ; 23 AUG 89 14:17:24 PDT Received: from bhopal ([192.43.178.13]) by heavens-gate id AA19851g; Wed, 23 Aug 89 14:16:41 PDT Received: by bhopal id AA00401g; Wed, 23 Aug 89 14:13:50 PDT Date: Wed, 23 Aug 89 14:13:50 PDT From: Jon L White Message-Id: <8908232113.AA00401@bhopal> To: shane%blackcomb@rand.org Cc: CommonLoops.pa@Xerox.COM, shane@rand.org, dave@rand.org In-Reply-To: Darrell's message of Tue, 22 Aug 89 11:42:45 PDT <8908221842.AA19363@blackcomb.rand.org> Subject: Declaration of valid initialization args. re: . . . and from what I have seen, compute-applicable-methods will return the correct value only after its generic function argument has been called at least once. Thus, allocate-instance, initialize-instance and shared-instance must be called once before make-instance will recognize method arguments as valid initialization arguments. This seems to be a bug. I don't think this is correct. COMPUTE-APPLICABLE-METHODS only needs to see a satisfactorily rich subset of the total effective methods for that generic-function. I think it will force the calculation (or re-calculation) of the current effective methods when necessary, regardles of whether or not the function has been 'called'. Initarg validity checking needn't actually call COMPUTE-APPLICABLE-METHODS, but that is another issue. -- JonL -- Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA06767; Wed, 23 Aug 89 16:04:29 -0700 Received: from Chardonnay.ms by ArpaGateway.ms ; 23 AUG 89 16:06:19 PDT Return-Path: Redistributed: CommonLoops.pa Received: from rand.org ([192.5.14.33]) by Xerox.COM ; 23 AUG 89 15:59:47 PDT Received: from blackcomb.rand.org by rand.org; Wed, 23 Aug 89 15:26:36 PDT Received: from localhost by blackcomb.rand.org; Wed, 23 Aug 89 15:25:20 PDT Message-Id: <8908232225.AA20078@blackcomb.rand.org> To: Jon L White Cc: CommonLoops.pa@Xerox.COM, dave@rand.org Subject: Re: Declaration of valid initialization args. In-Reply-To: Your message of Wed, 23 Aug 89 14:13:50 PDT. <8908232113.AA00401@bhopal> Date: Wed, 23 Aug 89 15:25:19 PDT From: Darrell >> I don't think this is correct. COMPUTE-APPLICABLE-METHODS only needs to >> see a satisfactorily rich subset of the total effective methods for that >> generic-function. I think it will force the calculation (or re-calculation) >> of the current effective methods when necessary, regardless of whether or >> not the function has been 'called'. Jon, I am not sure what is meant by "a satisfactorily rich subset", but here is an example where PCL does not keep proper account of a generic function's applicable methods: (defclass c1 ()()) (defmethod initialize-instance :after ((object C1) &rest initargs &key c) (declare (ignore initargs)) (format t "The value of c is ~A.~%" c)) (compute-applicable-methods #'initialize-instance (list (pcl::class-prototype (find-class 'c1)))) --> (#) ;;; Also notice: (make-instance 'c1 :c 10) --> Error: Invalid initialization argument :C for class C1 ;;; Yet after initialize-instance has been called once, everything is fine. (initialize-instance (allocate-instance (find-class 'c1)) :c 10) The value of c is 10. --># (compute-applicable-methods #'initialize-instance (list (pcl::class-prototype (find-class 'c1)))) --> (# #) (make-instance 'c1 :c 'working) The value of c is WORKING. --># Any suggestions, fixes, etc., would be most welcome. Thanks, Darrell Shane Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA08284; Wed, 23 Aug 89 18:11:15 -0700 Received: from Semillon.ms by ArpaGateway.ms ; 23 AUG 89 17:17:21 PDT Date: Wed, 23 Aug 89 17:10 PDT From: Gregor.pa@Xerox.COM Subject: Re: Declaration of valid initialization args. To: Darrell Cc: CommonLoops.pa@Xerox.COM, Darrell_Shane , David_McArthur Fcc: BD:>Gregor>mail>outgoing-mail-7.text.newest In-Reply-To: <8908221842.AA19363@blackcomb.rand.org> Message-Id: <19890824001013.9.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no The behavior you are talking about is a stupid bug in PCL that will be fixed in the next version. ------- Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA09240; Wed, 23 Aug 89 19:26:48 -0700 Received: from Semillon.ms by ArpaGateway.ms ; 23 AUG 89 19:20:36 PDT Return-Path: Redistributed: CommonLoops.pa Received: from lucid.com ([192.26.25.1]) by Xerox.COM ; 23 AUG 89 19:17:05 PDT Received: from bhopal ([192.43.178.13]) by heavens-gate id AA21156g; Wed, 23 Aug 89 19:15:41 PDT Received: by bhopal id AA01220g; Wed, 23 Aug 89 19:13:18 PDT Date: Wed, 23 Aug 89 19:13:18 PDT From: Jon L White Message-Id: <8908240213.AA01220@bhopal> To: shane%blackcomb@rand.org Cc: CommonLoops.pa@Xerox.COM, dave@rand.org In-Reply-To: Darrell's message of Wed, 23 Aug 89 15:25:19 PDT <8908232225.AA20078@blackcomb.rand.org> Subject: Declaration of valid initialization args. Hmmm, well I was looking at the Victoria-Day release code. Is that the release you are using? If so, then I'm not sure why that bug happens. -- JonL -- Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA13695; Thu, 24 Aug 89 17:10:47 -0700 Received: from Chardonnay.ms by ArpaGateway.ms ; 24 AUG 89 16:24:43 PDT Return-Path: Redistributed: CommonLoops.pa Received: from lucid.com ([192.26.25.1]) by Xerox.COM ; 24 AUG 89 16:18:49 PDT Received: from bhopal ([192.43.178.13]) by heavens-gate id AA05650g; Thu, 24 Aug 89 16:18:11 PDT Received: by bhopal id AA12305g; Thu, 24 Aug 89 16:16:15 PDT Date: Thu, 24 Aug 89 16:16:15 PDT From: Jon L White Message-Id: <8908242316.AA12305@bhopal> To: shane%blackcomb@rand.org Cc: CommonLoops.pa@Xerox.COM In-Reply-To: Darrell's message of Thu, 24 Aug 89 11:10:56 PDT <8908241810.AA20428@blackcomb.rand.org> Subject: Declaration of valid initialization args. I think I see what's going on. The VictoriaDay release version of COMPUTE-APPLICABLE-METHODS is correctly "updating invalid generic functions" without calling them. But the format of combined methods seems to have changed since the earlier versions, and it expects to find the applicable methods thereon. One could replace the version of COMPUTE-APPLICABLE-METHODS that is depending on the format of the effective methods list with one that simply iterates over the methods slots collecting the applicable ones. Although this would be considerably slower, one could bypass the loss, for the most part, by using DEFCONSTRUCTOR instead of MAKE-INSTANCE. -- JonL -- Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA13793; Thu, 24 Aug 89 17:12:47 -0700 Received: from Salvador.ms by ArpaGateway.ms ; 24 AUG 89 16:53:05 PDT Return-Path: Redistributed: CommonLoops.pa Received: from lucid.com ([192.26.25.1]) by Xerox.COM ; 24 AUG 89 16:49:05 PDT Received: from bhopal ([192.43.178.13]) by heavens-gate id AA05712g; Thu, 24 Aug 89 16:48:30 PDT Received: by bhopal id AA12371g; Thu, 24 Aug 89 16:46:35 PDT Date: Thu, 24 Aug 89 16:46:35 PDT From: Jon L White Message-Id: <8908242346.AA12371@bhopal> To: Gregor.pa@Xerox.COM Cc: CommonLoops.pa@Xerox.COM, shane@rand.org, dave@rand.org In-Reply-To: Gregor's message of Wed, 23 Aug 89 17:10 PDT Subject: Declaration of valid initialization args. Uh, I spazzed on the previous message. It's probably too much to go tracing back through the generic-function-method slots to get a quick fix for COMPUTE-APPLICABLE-METHODS. Could you just explain where the bug is so that it can be patched? Is it deep in the bowels of the new method combination stuff, or is it a shallow glitch in the interface to it? -- JonL -- Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA18774; Sat, 26 Aug 89 02:51:29 -0700 Received: from Semillon.ms by ArpaGateway.ms ; 26 AUG 89 02:53:12 PDT Return-Path: <@mirsa.inria.fr:dvorak@iam.unibe.ch> Redistributed: commonloops.pa Received: from mirsa.inria.fr ([192.5.60.96]) by Xerox.COM ; 26 AUG 89 02:51:14 PDT Received: from kwai.inria.fr by mirsa.inria.fr with SMTP (5.59++/IDA-1.2.8) id AA13758; Sat, 26 Aug 89 11:51:44 +0200 Received: by inria.fr with X.400; 26 Aug 89 09:36:30+0100 Received: by SWITCH.arcom.ch; 26 Aug 89 11:37:49+0200 Date: 26 Aug 89 11:37:49+0200 From: Jiri Dvorak To: Subject: Can't compile PCL on Sun-4 with Lucid 2.1.3 Message-Id: <474*dvorak@iam.unibe.ch> Compiling Victoria Day PCL on a Sun-3 with Lucid 2.1.3 went allright, now I tried it on a Sparcstation1. The circumstances are quite similar, i.e. I took the same PCL source and the release level of Sun Lucid Lisp on the Sparcstation1 is also 2.1.3. The compilation stopped after quite a while with the following message: (lots of messages ....) Loading binary of PRECOM2... Loading binary of PRECOM3... Loading binary of PRECOM4... Compiling FIXUP... ;;; Reading source file "goodies/new-pcl/fixup.lisp" ;;; Compiling function...assembling...(assembling...)(assembling...)emitting... done. >> Interrupt: bus error LOOKUP-METHOD-INTERNAL: Required arg 0 (GENERIC-FUNCTION): # Required arg 1 (METHODS): (((# # ) # (#)) ((# #) # (# #)) ((# #) # (# #)) (( # #) # (# # #)) ((# #) # (# #) ) ((# #) # (# #))) Required arg 2 (KEY): # Rest arg 3 (ARGS): (# T) :A 0: Abort to Lisp Top Level -> :b LOOKUP-METHOD-INTERNAL <- LOOKUP-METHOD-2 <- CACHING-DCODE-TERTIARY-MISS <- DCO DE-CACHE-MISS <- SHARED-INITIALIZE <- FIX-EARLY-GENERIC-FUNCTIONS <- EVAL <- LU CID:COMPILE-FORM <- COMPILE-FILE <- COMPILE-MODULE <- OPERATE-ON-SYSTEM <- COMP ILE-PCL <- EVAL -> (bug-report-info) PCL system date: 5/22/89 Victoria Day PCL Lisp Implementation type: Lucid Common Lisp Lisp Implementation version: Development Environment 2.1.3 *features*: (:COMPILER :IEEE-FLOATING-POINT :SPARC :SUN :UNIX :LUCID :COMMON-LI SP) NIL -> The PCL source contains the patch for the eql bug. Has anyone else encountered or even solved this problem? Any hints appreciated. Regards, Jiri Dvorak dvorak@iam.unibe.ch or Institute for Informatics dvorak%iam.unibe.ch@relay.cs.net University of Berne UUCP: ..!uunet!mcvax!iam.unibe.ch!dvorak Switzerland Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA18838; Tue, 29 Aug 89 18:39:50 -0700 Received: from Catawba.ms by ArpaGateway.ms ; 29 AUG 89 18:06:00 PDT Return-Path: Redistributed: CommonLoops.PA Received: from apple.com ([130.43.2.2]) by Xerox.COM ; 29 AUG 89 18:03:44 PDT Received: by apple.com (5.59/25-eef) id AA14362; Tue, 29 Aug 89 18:03:18 PDT for CommonLoops.PA@Xerox.COM Date: Tue, 29 Aug 89 18:03:18 PDT From: Jim Palmer Message-Id: <8908300103.AA14362@apple.com> To: CommonLoops.PA@Xerox.COM Subject: mailing list Thanks, please remove my name from the CLOS mailing list. --jim palmer Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA02084; Wed, 30 Aug 89 07:18:09 -0700 Received: from Chardonnay.ms by ArpaGateway.ms ; 30 AUG 89 07:10:24 PDT Return-Path: Redistributed: CommonLoops.PA Received: from sunic.sunet.se ([192.36.125.2]) by Xerox.COM ; 30 AUG 89 07:04:11 PDT Received: from Delfi.UDAC.UU.SE by sunic.sunet.se (5.61+IDA/KTH/LTH/1.79) id AAsunic13274; Wed, 30 Aug 89 16:03:05 +0200 Received: by delfi.udac.uu.se (DN3500, Domain/OS SR10.1) with sendmail 5.59++/ICU/IDA-1.2.5 id AA01221; Wed, 30 Aug 89 16:01:14 +0100 Date: Wed, 30 Aug 89 16:01:14 +0100 From: matsj@delfi.udac.uu.se (Mats Johnson) Message-Id: <8908301401.AA01221@delfi.udac.uu.se> To: CommonLoops.PA@Xerox.COM Subject: Bug in Victoria Day PCL (Lucid 3.0), using eql specializers Cc: CommonLoops@delfi.UDAC.UU.SE There is a bug in pcl on lucid 3.0 when using eql specializers. This bug makes it impossible to compile clue, and can be demonstrated as follows: The file bug.lisp: (in-package 'pcl) (defclass foo () ()) (defmethod bug ((object foo) (tag (eql 'hej)) arg) (format t "~&~s!" arg)) The result when trying to compile it: > (pcl::bug-report-info) PCL system date: 5/22/89 Victoria Day PCL Lisp Implementation type: Domain/CommonLISP Lisp Implementation version: Domain/CommonLISP, Development Environment Version 3.00, 10 March 1989 *features*: (:CLOS :XLIB :PORTABLE-COMMONLOOPS :PCL :MULTITASKING :LCL3.0 :EGC :FLAVORS :COMPILER :LOOP :IEEE-FLOATING-POINT :MC68000 :APOLLO :DOMAIN/OS :AEGIS :UNIX :LUCID :COMMON-LISP) NIL > (compile-file "bug.lisp") ;; You are using the compiler in development mode (compilation-speed = 3) ;;; Generation of full safety checking code is enabled (safety = 3) ;;; Optimization of tail calls is disabled (speed = 2) ;;; Reading source file "bug.lisp" >>Trap: Main Stack Overflow The main Lisp stack has overflowed. If you use more than 32K bytes of stack space in this error break or by continuing the computation, an automatic return to Lisp Top Level will be forced. LUCID:%ZERO-REGION: :C 0: Resume Interrupted Instruction :A 1: Abort to Lisp Top Level -> :b 50 LUCID:%ZERO-REGION <- SYSTEM:GC-INTERNAL <- (:INTERNAL COMPUTE-PRECEDENCE-DAG-PASS-1 BUILD-1) <- (:INTERNAL COMPUTE-PRECEDENCE-DAG-PASS-1 BUILD) <- COMPUTE-PRECEDENCE-DAG-PASS-1 <- COMPUTE-PRECEDENCE-DAG-1 <- COMPUTE-PRECEDENCE-DAG <- COMPUTE-ONE-COLUMN-INTERNAL <- COMPUTE-ONE-COLUMN <- COMPUTE-COLUMNS <- COMPUTE-COMBINATION-POINTS <- COMPUTE-COMBINED-METHODS <- NOTICE-METHODS-CHANGE-1 <- NOTICE-METHODS-CHANGE-2 <- MAKE-INSTANCE <- (:INTERNAL COMPUTE-COLUMN-SPECIALIZERS GET-EQL-CLASS) <- COMPUTE-COLUMN-SPECIALIZERS <- COMPUTE-COMBINATION-POINTS <- COMPUTE-COMBINED-METHODS <- NOTICE-METHODS-CHANGE-1 <- NOTICE-METHODS-CHANGE <- |(METHOD INVALIDATE-GENERIC-FUNCTION (STANDARD-GENERIC-FUNCTION))| <- INVALIDATE-GENERIC-FUNCTION <- (:INTERNAL |(METHOD UPDATE-METHOD-INHERITANCE (STANDARD-CLASS T T))| RESET-GFS) <- |(METHOD UPDATE-METHOD-INHERITANCE (STANDARD-CLASS T T))| <- UPDATE-METHOD-INHERITANCE <- |(METHOD PROPAGATE-CLASS-UPDATE (STANDARD-CLASS T T T))| <- PROPAGATE-CLASS-UPDATE <- |(METHOD UPDATE-CLASS (STANDA RD-CLASS))| <- UPDATE-CLASS <- (:INTERNAL COMPUTE-COLUMN-SPECIALIZERS GET-EQL-CLASS) <- COMPUTE-COLUMN-SPECIALIZERS <- COMPUTE-COMBINATION-POINTS <- COMPUTE-COMBINED-METHODS <- NOTICE-METHODS-CHANGE-1 <- NOTICE-METHODS-CHANGE <- |(METHOD INVALIDATE-GENERIC-FUNCTION (STANDARD-GENERIC-FUNCTION))| <- INVALIDATE-GENERIC-FUNCTION <- (:INTERNAL |(METHOD UPDATE-METHOD-INHERITANCE (STANDARD-CLASS T T))| RESET-GFS) <- |(METHOD UPDATE-METHOD-INHERITANCE (STANDARD-CLASS T T))| <- UPDATE-METHOD-INHERITANCE <- |(METHOD PROPAGATE-CLASS-UPDATE (STANDARD-CLASS T T T))| <- PROPAGATE-CLASS-UPDATE <- |(METHOD UPDATE-CLASS (STANDARD-CLASS))| <- UPDATE-CLASS <- (:INTERNAL COMPUTE-COLUMN-SPECIALIZERS GET-EQL-CLASS) <- COMPUTE-COLUMN-SPECIALIZERS <- COMPUTE-COMBINATION-POINTS <- COMPUTE-COMBINED-METHODS <- NOTICE-METHODS-CHANGE-1 -> Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA04321; Wed, 30 Aug 89 17:33:03 -0700 Received: from Semillon.ms by ArpaGateway.ms ; 30 AUG 89 17:35:48 PDT Date: Wed, 30 Aug 89 17:33 PDT From: Gregor.pa@Xerox.COM Subject: live via satellite To: CommonLoops.pa@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-7.text.newest Message-Id: <19890831003312.4.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no It is a little embarassing to announce this to a large mailing list, but since it will probably be useful to some of you, I am going to announce it anyways. Danny Bobrow and I will be doing an extended version of our IJCAI CLOS tutorial `live via satellite' on October 12th. This is part of AAAI's association with NTU (National Televison Network). The name of the tutorial is "Programming and Metaprogramming in the Common Lisp Object System". It will last 6 hours, and will begin at 11am EST. To find out more about how you can arrange to see the tutorial you can call: (303)484-0565. For people who are interested in a more extensive CLOS class, I noticed at IJCAI that at least Lucid and TI are now advertising CLOS classes. From what I saw, these classes look excellent, they vary from 3 to 5 days in length. From what I hear, the other vendors will begin offering CLOS classes soon, if they haven't already. ------- Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA10349; Thu, 31 Aug 89 00:23:07 -0700 Received: from Salvador.ms by ArpaGateway.ms ; 31 AUG 89 00:24:44 PDT Return-Path: <@sgi.uucp,@pyramid.uucp,@pcsbst.pcs.com:jkh@meepmeep.pcs.com> Redistributed: CommonLoops.PA Received: from arisia.xerox.com ([13.1.100.206]) by Xerox.COM ; 31 AUG 89 00:22:42 PDT Received: from sgi.UUCP by arisia.xerox.com with UUCP (5.61+/IDA-1.2.8/gandalf) id AA10336; Thu, 31 Aug 89 00:19:46 -0700 Received: from pyramid by sgi.sgi.com via UUCP (5.52/890823.SGI) for CommonLoops.PA@arisia id AA15827; Thu, 31 Aug 89 00:21:29 PDT Received: by pyramid.pyramid.com (5.61/OSx5.0-890710) id AA20909; Wed, 30 Aug 89 23:17:26 -0700 Received: by pcsbst.pcs.com (smail2.5) id AA29588; 31 Aug 89 08:07:13 MSZ (Thu) Received: by meepmeep.pcs.com (smail2.5) id AA13550; 31 Aug 89 08:08:10 MSZ (Thu) To: CommonLoops.PA@Xerox.COM Subject: re: Bug in Victoria Day PCL (Lucid 3.0), using eql specializers Message-Id: <8908310808.AA13548@meepmeep.pcs.com> Date: 31 Aug 89 08:08:09 MSZ (Thu) From: jkh@meepmeep.pcs.com (Jordan K. Hubbard) Actually, this bug also occurs in KCL. To wit: >(pcl::bug-report-info) PCL system date: 5/22/89 Victoria Day PCL Lisp Implementation type: Kyoto Common Lisp Lisp Implementation version: June 3, 1987 *features*: (:PORTABLE-COMMONLOOPS :PCL :TURBO-CLOSURE TURBO-CLOSURE MC68020 SYSTEM-V IEEE-FLOATING-POINT UNIX AKCL COMMON KCL) NIL >(compile-file "bug") [Or (load "bug") will do just as well, actually] Error: Value stack overflow.^M Error signalled by MAKE-ARRAY.^M Backtrace: > eval > load-defmethod > real-add-named-method > add-method > updat e-class > propagate-class-update > update-method-inheritance > invalidate-generi c-function > update-class > propagate-class-update > update-method-inheritance > invalidate-generic-function > update-class > propagate-class-update > update-me thod-inheritance > invalidate-generic-function > update-class > propagate-class- .... Ad nauseum... This has also been keeping me from compiling/loading CLUE and I'd be Very Interested in hearing about any fixes, if somebody comes up with one. Jordan Hubbard jkh@meepmeep.pcs.com Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA18195; Thu, 31 Aug 89 13:08:17 -0700 Received: from Salvador.ms by ArpaGateway.ms ; 31 AUG 89 13:08:54 PDT Return-Path: <@RELAY.CS.NET:basham@NASA-JSC.CSNET> Redistributed: commonloops.pa Received: from RELAY.CS.NET ([192.31.103.4]) by Xerox.COM ; 31 AUG 89 12:48:38 PDT Received: from relay2.cs.net by RELAY.CS.NET id aj04143; 31 Aug 89 14:43 EDT Received: from nasa-jsc by csnet-relay.csnet id aa07173; 31 Aug 89 15:16 EDT Date: Thu, 31 Aug 89 13:18:09 CDT From: BASH Man To: CommonLoops.pa@Xerox.COM Subject: Acquiring PCL Message-Id: <890831-130854-8119@Xerox> Hi! I am interested in acquiring a copy of the PCL implementation of CLOS. Could you send me a message specifing what I need to do. As my VAX is a new node on InterNet we don't have our name registered, but this is the address to use to reach me: BASHAM@128.157.5.120 Thank you for your time, Bryan Basham Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA21758; Thu, 31 Aug 89 14:34:27 -0700 Received: from Catawba.ms by ArpaGateway.ms ; 31 AUG 89 14:33:40 PDT Return-Path: Redistributed: CommonLoops.PA Received: from lucid.com ([192.26.25.1]) by Xerox.COM ; 31 AUG 89 14:24:47 PDT Received: from bhopal ([192.43.178.13]) by heavens-gate id AA12624g; Thu, 31 Aug 89 14:23:42 PDT Received: by bhopal id AA08451g; Thu, 31 Aug 89 14:25:50 PDT Date: Thu, 31 Aug 89 14:25:50 PDT From: Jon L White Message-Id: <8908312125.AA08451@bhopal> To: matsj@delfi.udac.uu.se Cc: CommonLoops.PA@Xerox.COM, CommonLoops@delfi.UDAC.UU.SE, tech-support@lucid.com In-Reply-To: Mats Johnson's message of Wed, 30 Aug 89 16:01:14 +0100 <8908301401.AA01221@delfi.udac.uu.se> Subject: Bug in Victoria Day PCL (Lucid 3.0), using eql specializers This is a PCL bug (as suggested by Jordan K. Hubbard, who noted the same problem in AKCL). It doesn't happen with the "No Cute Name" release version of PCL when using Lucid 3.0. This is yet another instance of a common bug "leakage" in PCL; during the recomputation of effective methods for some altered generic function, a support function -- in this case, COMPUTE-COLUMN-SPECIALIZERS from the file points.lisp -- tries to call MAKE-INSTANCE, a generic function that just happens at that point in time to be "invalid". From that point, it is in an push-down loop trying to update MAKE-INSTANCE by computing its effective methods, which of course necessitates calling MAKE-INSTANCE . . . -- JonL -- Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA23947; Thu, 31 Aug 89 16:17:00 -0700 Received: from Catawba.ms by ArpaGateway.ms ; 31 AUG 89 15:07:36 PDT Return-Path: Redistributed: commonloops.pa Received: from ads.com ([128.229.30.16]) by Xerox.COM ; 31 AUG 89 15:00:55 PDT Received: by ads.com (5.59/1.19) id AA15458; Thu, 31 Aug 89 15:00:48 PDT To: commonloops.pa@Xerox.COM Path: zodiac!jdye From: jdye@ads.com (John W. Dye Jr.) Newsgroups: mail.common-loops Subject: Re: live via satellite Message-Id: <8984@zodiac.ADS.COM> Date: 31 Aug 89 22:00:47 GMT References: <19890831003312.4.GREGOR@SPIFF.parc.xerox.com> Sender: news@ads.com Reply-To: jdye@ads.com (John W. Dye Jr.) Organization: Advanced Decision Systems Lines: 22 In article <19890831003312.4.GREGOR@SPIFF.parc.xerox.com> Gregor.pa@XEROX.COM writes: > >It is a little embarassing to announce this to a large mailing list... > >Danny Bobrow and I will be doing an extended version of our IJCAI CLOS >tutorial `live via satellite' on October 12th. This is part of AAAI's >association with NTU (National Televison Network). ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Sorry to pick a nit Gregor, But NTU is an acronym for (National Technological University) which is a nationwide satellite network for technological education (primarily for industry). It is operated from the campus of Colorado State University (my alma mater). JD jdye@ads.com "Go Rams" Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA08341; Thu, 31 Aug 89 23:18:23 -0700 Received: from Chardonnay.ms by ArpaGateway.ms ; 31 AUG 89 23:17:39 PDT Return-Path: Redistributed: commonloops.pa Received: from sumex-aim.stanford.edu ([36.44.0.6]) by Xerox.COM ; 31 AUG 89 22:03:13 PDT Received: by sumex-aim.stanford.edu (4.0/inc-1.0) id AA02471; Thu, 31 Aug 89 22:04:53 PDT Date: Thu, 31 Aug 89 22:04:53 PDT From: John Sotos To: commonloops.pa@Xerox.COM Subject: CLOS specification, chap. 3 Message-Id: Does chapter 3 of the CLOS Specification (describing the meta-object protocol) exist? If so, is there a downloadable version somewheres about? TeX source would be fine. Thanks. John Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA29685; Fri, 1 Sep 89 15:33:34 -0700 Received: from Chardonnay.ms by ArpaGateway.ms ; 01 SEP 89 15:35:29 PDT Return-Path: <@sgi.uucp,@pyramid.uucp,@pcsbst.pcs.com:jkh@meepmeep.pcs.com> Redistributed: CommonLoops.PA Received: from arisia.xerox.com ([13.1.100.206]) by Xerox.COM ; 01 SEP 89 15:30:27 PDT Received: from sgi.UUCP by arisia.xerox.com with UUCP (5.61+/IDA-1.2.8/gandalf) id AA18169; Fri, 1 Sep 89 05:21:21 -0700 Received: from pyramid by sgi.sgi.com via UUCP (5.52/890823.SGI) for CommonLoops.PA@arisia id AA22719; Fri, 1 Sep 89 05:22:30 PDT Received: by pyramid.pyramid.com (5.61/OSx5.0-890710) id AA21607; Fri, 1 Sep 89 05:19:54 -0700 Received: by pcsbst.pcs.com (smail2.5) id AA21774; 1 Sep 89 14:09:07 MSZ (Fri) Received: by meepmeep.pcs.com (smail2.5) id AA02260; 1 Sep 89 14:10:48 MSZ (Fri) To: CommonLoops.PA@Xerox.COM Subject: YAYACCP Message-Id: <8909011410.AA02258@meepmeep.pcs.com> Date: 1 Sep 89 14:10:47 MSZ (Fri) From: jkh@meepmeep.pcs.com (Jordan K. Hubbard) (Yet Another Yet Another Clue Compiling Problem). I can't belive than anyone has actually gotten CLUE 6.0 to work. Must be all those different versions of PCL, CLX and LISP floating around. It's a wonder that anybody knows what the environment looks like from day-to-day. Anyway, getting past the problems in intrinsics.lsp, we finally go smack-ola into: ; Compiling #root-gmgmt.lsp Compiling root-gmgmt.lsp. Error: WM-SHELL used as a specializer, but is not the name of a class. Error signalled by PCL::LOAD-DEFMETHOD. Backtrace: > eval > pcl::load-defmethod > PCL::REAL-ADD-NAMED-METHOD ; (PCL::LOAD-DEFMETHOD 'PCL::STANDARD-METHOD ...) is being compiled. ;;; The form (PCL::LOAD-DEFMETHOD 'PCL::STANDARD-METHOD 'MANAGE-GEOMETRY 'NIL (L IST 'ROOT 'WM-SHELL 'T 'T 'T 'T 'T) '(PARENT SHELL X Y WIDTH HEIGHT BORDER-WIDTH Ad nauseous. Jordan Usual plea for help goes here. Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA17863; Fri, 1 Sep 89 04:42:13 -0700 Received: from Salvador.ms by ArpaGateway.ms ; 01 SEP 89 04:45:00 PDT Return-Path: <@sgi.uucp,@pyramid.uucp,@pcsbst.pcs.com:jkh@meepmeep.pcs.com> Redistributed: CommonLoops.PA Received: from arisia.xerox.com ([13.1.100.206]) by Xerox.COM ; 01 SEP 89 04:24:45 PDT Received: from sgi.UUCP by arisia.xerox.com with UUCP (5.61+/IDA-1.2.8/gandalf) id AA17764; Fri, 1 Sep 89 04:13:15 -0700 Received: from pyramid by sgi.sgi.com via UUCP (5.52/890823.SGI) for CommonLoops.PA@arisia id AA19887; Fri, 1 Sep 89 04:12:51 PDT Received: by pyramid.pyramid.com (5.61/OSx5.0-890710) id AA15022; Fri, 1 Sep 89 01:19:20 -0700 Received: by pcsbst.pcs.com (smail2.5) id AA15907; 1 Sep 89 09:58:42 MSZ (Fri) Received: by meepmeep.pcs.com (smail2.5) id AA00708; 1 Sep 89 10:00:23 MSZ (Fri) To: CommonLoops.PA@Xerox.COM Subject: I know this isn't the right place. Where's the CLUE mailing list? Message-Id: <8909011000.AA00706@meepmeep.pcs.com> Date: 1 Sep 89 10:00:22 MSZ (Fri) From: jkh@meepmeep.pcs.com (Jordan K. Hubbard) If someone can point me at the right place I'll be happy to direct future submissions there. In any case.. The never-ending saga of trying to get CLUE working continues.. :-) Thanks to the recent bug fixes for eql specializers, I've gotten past the crash in intrinsics and then was able to run into problems with the initialize-instance method declaration. The problem is that xlib:id and xlib:save-id aren't exported. These must be changed to xlib::id and xlib::save to work. Just thought I'd mention it. Jordan Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA17270; Tue, 5 Sep 89 13:12:09 -0700 Received: from Catawba.ms by ArpaGateway.ms ; 05 SEP 89 13:15:13 PDT Return-Path: Redistributed: CommonLoops.pa Received: from siemens.siemens.com ([129.73.10.1]) by Xerox.COM ; 05 SEP 89 05:28:38 PDT Received: by siemens.siemens.com (5.54/1.15) id AA00171; Tue, 5 Sep 89 07:56:19 EST From: dvs2414@ztivax.siemens.com (Christian Ammon) Date: Tue, 5 Sep 89 08:51:17 -0200 Message-Id: <8909050651.AA01833@ztivax.uucp> Received: by ztivax.uucp; Tue, 5 Sep 89 08:51:17 -0200 To: CommonLoops.pa@Xerox.COM Subject: PCL bugs in KCL Cc: dvs2414@ztivax.siemens.com I'm new in this mailing list and very interested in PCL bugs in KCL. Please, can you send me information about known PCL bugs in KCL ? Holger Gottwald dvs2414@ztivax.uucp Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA21962; Tue, 5 Sep 89 16:59:36 -0700 Received: from Chardonnay.ms by ArpaGateway.ms ; 05 SEP 89 17:02:40 PDT Return-Path: Redistributed: CommonLoops.pa Received: from mentor.cc.purdue.edu ([128.210.10.8]) by Xerox.COM ; 05 SEP 89 14:00:36 PDT Received: by mentor.cc.purdue.edu (5.61/1.14) id AA15388; Tue, 5 Sep 89 16:00:06 -0500 Date: Tue, 5 Sep 89 16:00:06 -0500 From: gza@mentor.cc.purdue.edu (William R Burdick) Message-Id: <8909052100.AA15388@mentor.cc.purdue.edu> To: CommonLoops.pa@Xerox.COM Subject: bug?? I can't seem to compile PCL in this version of KCL; I noticed that KCL isn't listed in the list of Lisps for which PCL has been tested or in the list for which PCL has not been tested yet, but it is mentioned later on in notes.text... here is what happend when I tried compiling it. These files compiled successfully: boot.o defs.o kcl-low.o pkg.o precom4.o braid1.o fin.o kcl-patches.o points.o slots.o combin.o fsc.o low.o precom1.o std-class.o dcode.o init.o macros.o precom2.o vector.o defclass.o iterate.o methods.o precom3.o walk.o but then I got this error: Compiling FIXUP... Compiling /tmp/burdick/pcl/src/fixup.lsp. Error: The index, 8, is too large. Error signalled by FIX-EARLY-GENERIC-FUNCTIONS. Backtrace: > eval > FIX-EARLY-GENERIC-FUNCTIONS ; (FIX-EARLY-GENERIC-FUNCTIONS) is being compiled. ;;; The form (FIX-EARLY-GENERIC-FUNCTIONS) was not evaluated successfully. ;;; You are recommended to compile again. Error: Can't determine class of # Error signalled by LET*. Backtrace: > eval > let > setf > let* > |(SETF GENERIC-FUNCTION-NAME)| ; (LET (#) ...) is being compiled. ;;; The form (LET ((GF #'COMPUTE-APPLICABLE-METHODS-1)) (SETF (GENERIC-FUNCTION-NAME GF) 'COMPUTE-APPLICABLE-METHODS) (SETF (SYMBOL-FUNCTION 'COMPUTE-APPLICABLE-METHODS) GF)) was not evaluated successfully. ;;; You are recommended to compile again. No FASL generated. Loading binary of FIXUP... Error: Cannot open the file /tmp/burdick/pcl/bin/fixup.o. Error signalled by LOAD. Broken at LOAD. Type :H for Help. >> KCL is supported at purdue, but there could be a bug still in it, since this is a relatively new port (for a Sequent Symmetry), but I used it (and compiled with it) heavily a year ago (and those files still compile and run fine), so that's probably not the problem. Can you offer any advice?? -- Bill Burdick burdick@cello.ecn.purdue.edu Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA24497; Tue, 5 Sep 89 19:52:49 -0700 Received: from Salvador.ms by ArpaGateway.ms ; 05 SEP 89 19:53:43 PDT Return-Path: Redistributed: commonloops.pa Received: from crdgw1.ge.com ([192.35.44.4]) by Xerox.COM ; 05 SEP 89 19:51:43 PDT Received: by crdgw1.ge.com (5.57/Ultrix 3.0 (1.53)) id AA13160; Tue, 5 Sep 89 22:54:05 EDT Received: from eraserhead.crd.Ge.Com by sparky.crd.Ge.Com (4.0/SMI-4.0/GE-CRD @(#)sun4.ease 1.13 4/13/89) id AA05361; Tue, 5 Sep 89 22:47:44 EDT Date: Tue, 5 Sep 89 22:47:44 EDT From: duff@sparky.crd.ge.com (David A Duff) Message-Id: <8909060247.AA05361@sparky.crd.Ge.Com> Received: by eraserhead.crd.Ge.Com (4.0/SMI-4.0/GE-CRD @(#)sun4.ease 1.13 4/13/89) id AA05022; Tue, 5 Sep 89 22:48:19 EDT To: commonloops.pa@Xerox.COM Subject: status? Reply-To: duff@eraserhead.crd.ge.com i lost track of this mailing list for a while due to a rearrangement of our network domains here and subsequent change of mailnames. in skimming back over the archives (which seemed to contain mostly the same messages repeated over and over), i seem to recall some mention of a new version of pcl coming out "soon". is it still coming, did i miss it, or have plans changed? i've been using victoria day pcl for a while now. thanks, dave duff Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA04944; Wed, 6 Sep 89 08:41:43 -0700 Received: from Catawba.ms by ArpaGateway.ms ; 06 SEP 89 08:43:03 PDT Return-Path: Redistributed: commonloops.pa Received: from mbunix.mitre.org ([129.83.20.100]) by Xerox.COM ; 06 SEP 89 08:40:51 PDT Posted-From: The MITRE Corp., Bedford, MA X-Alternate-Route: user%node@mbunix.mitre.org Return-Path: Received: from sabre.mitre.org by linus.MITRE.ORG (5.59/RCF-3S) id AA17658; Wed, 6 Sep 89 11:41:45 EDT Posted-Date: Wed, 06 Sep 89 11:35:19 EDT Received: from localhost by sabre.mitre.org (3.2/RCF-3C) id AA14050; Wed, 6 Sep 89 11:35:23 EDT Message-Id: <8909061535.AA14050@sabre.mitre.org> To: CommonLoops.pa@Xerox.COM Subject: Dynamically re-defining classes Date: Wed, 06 Sep 89 11:35:19 EDT From: rich@linus.MITRE.ORG I know that there is probably some nifty CLOS functionality to do the following.... I want to define a class, and then later, without re-evaluating the defclass form, I want to change the class, i.e., add another slot. Is there any easy way to do this? I have thought of some involved ways, but I want to stay within the CLOS protocol. Rich Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA03403; Thu, 7 Sep 89 04:58:34 -0700 Received: from Salvador.ms by ArpaGateway.ms ; 07 SEP 89 04:24:14 PDT Return-Path: Redistributed: CommonLoops.PA Received: from sunic.sunet.se ([192.36.125.2]) by Xerox.COM ; 07 SEP 89 04:19:29 PDT Received: from Delfi.UDAC.UU.SE by sunic.sunet.se (5.61+IDA/KTH/LTH/1.84) id AAsunic09848; Thu, 7 Sep 89 13:19:13 +0200 Received: from Korfu.UDAC.UU.SE by delfi.udac.uu.se (DN3500, Domain/OS SR10.1) with sendmail 5.59++/ICU/IDA-1.2.5 id AA03302; Thu, 7 Sep 89 13:17:23 +0200 Received: by korfu.udac.uu.se (DN3500, Domain/OS SR10.1) with sendmail 5.59++/ICU/IDA-1.2.5 id AA01558; Thu, 7 Sep 89 13:18:12 +0100 Date: Thu, 7 Sep 89 13:18:12 +0100 From: matsj@delfi.UDAC.UU.SE Message-Id: <8909071118.AA01558@korfu.udac.uu.se> To: CommonLoops.PA@Xerox.COM Subject: A stab at fixing a bug in Victoria Day PCL I use "Victoria Day" PCL. It has a bug with certain uses of EQL-specializers which makes it impossible to compile clue/intrinsics.lisp. I got a patch for this written by gregor.pa@xerox.com (26 may 89), which seemed to fix the problem. However, when I got clue going, I noticed that it took a very long time (30 cpu seconds) to instantiate contacts (make-contact). The time was spent in cluei:default-options and in initialize-instance. When a generic function first is created it has a function definition that will "compile" itself and then call the result (notice-methods-change et al). When something a generic function depends on is redefined the generic function is "invalidated", which means resetting its function-definition to the initial one. However, in certain cases (like the above mentioned) this process also meant doing initialization of other classes, which caused the invalidation of the originating generic function. This had the effect that it had to "compile" itself every time it was called. The fix I tried was for notice-methods-change to do nothing if the generic function is being initialized (member of the list *invalid-generic-functions-on-stack*). This seemed to work, contacts now take a very long time to instantiate only the first time, and I haven't noticed any bad side-effects yet. What do the pcl-gurus say about this? Here follows notice-methods-change from Gregors patch (this is *not* the complete patch by Gregor) with my fix added (marked with *'s) and a lot of comments deleted. ;from file methods.lisp (defun notice-methods-change (generic-function) (let ((old-discriminator-code (generic-function-discriminator-code generic-function))) (if *notice-methods-change-force-p* (notice-methods-change-1 generic-function) (if (not (memq generic-function *invalid-generic-functions-on-stack*)) ; ********** (set-funcallable-instance-function generic-function #'(lambda (&rest args) #+Genera (declare (dbg:invisible-frame :clos-internal)) (if (memq generic-function *invalid-generic-functions-on-stack*) (if old-discriminator-code (apply old-discriminator-code args) (error "Tried to call an invalid generic function ~ that never was valid at all.")) (notice-methods-change-2 generic-function args)))))))) ------ Mats Johnson, UDAC, Box 2103, S-750 02 Uppsala, SWEDEN. Phone +46 18-187858 E-mail: matsj@delfi.UDAC.UU.SE Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA10804; Fri, 8 Sep 89 17:41:05 -0700 Received: from Semillon.ms by ArpaGateway.ms ; 08 SEP 89 17:44:11 PDT Return-Path: <@PEABODY.UCSD.EDU:jackg@COGSCI> Redistributed: CommonLoops.pa Received: from ucsd.edu ([128.54.16.1]) by Xerox.COM ; 08 SEP 89 17:41:32 PDT Received: from cogsci.ucsd.edu by ucsd.edu; id AA09836 sendmail 5.61/UCSD-2.0-sun via SMTP Fri, 8 Sep 89 17:41:32 -0700 for CommonLoops.pa@xerox.com Received: by cogsci.UCSD.EDU (5.51/UCSDPSEUDO.2) id AA16540 for CommonLoops.pa@xerox.com; Fri, 8 Sep 89 17:41:40 PDT Date: Fri, 8 Sep 89 17:50 PDT From: Jack Greenbaum Subject: "infinite-loop" bug in Victoria Day PCL To: CommonLoops.pa@Xerox.COM Message-Id: <19890909005038.1.JACKG@PEABODY> Has a fix been found for the "infinite-loop" bug in Victoria Day PCL? I grep'ed the /pcl/archive files, and found nothing that I recognized as a bug fix. I'm getting a control stack overflow while compiling a method using eql specializers, so I believe that it is the "infinite-loop" bug. I'm running a MacIvory under Genera 7.4. The code compiles and runs using "12/7/88 Can't think of a cute name PCL". Jack Greenbaum UC San Diego Dept. of Cognitive Science D015 La Jolla, Ca. 92093 jackg@cogsci.ucsd.edu Received: from Sail.Stanford.EDU by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA09674; Wed, 13 Sep 89 08:23:01 -0700 Received: from lucid.com by SAIL.Stanford.EDU with TCP; 13 Sep 89 08:24:42 PDT Received: from challenger ([192.9.200.17]) by heavens-gate id AA05101g; Wed, 13 Sep 89 08:24:25 PDT Received: by challenger id AA12930g; Wed, 13 Sep 89 08:21:17 PDT Date: Wed, 13 Sep 89 08:21:17 PDT From: Patrick Dussud Message-Id: <8909131521.AA12930@challenger> To: Gray@dsg.csc.ti.com Cc: Common-Lisp-Object-System@SAIL.Stanford.edu In-Reply-To: David N Gray's message of Mon, 21 Aug 89 19:16:11 CDT <2828736971-10348264@Kelvin> Subject: ENSURE-CLASS-USING-CLASS Sender: GRAY@Kelvin.csc.ti.com Date: Mon, 21 Aug 89 19:16:11 CDT From: David N Gray CLOS folks, I've got another problem with the Meta Object Protocol. In 89-003, the description of ENSURE-CLASS-USING-CLASS and initialization of class objects says that the class name argument of ENSURE-CLASS-USING-CLASS is not passed to MAKE-INSTANCE. An anonymous class object is created, and then ENSURE-CLASS-USING-CLASS uses (SETF CLASS-NAME) and (SETF FIND-CLASS) to give it a name and install it. I had wondered why not just include a :NAME argument in the initialization arguments for MAKE-INSTANCE, but I didn't find any reason why the initialization code would have to have the name. However, that's only for creating an instance of STANDARD-CLASS. For other metaclasses, the name may be required. The example that I have run into is trying to use the meta object protocol to define classes which are really old flavors. The SHARED-INITIALIZE method is supposed to install the new class in the class hierarchy, but since old flavors has no concept of anonymous flavors, it is impossible to do the equivalent of ADD-DIRECT-SUBCLASS without knowing the name of the flavor. Therefore, I believe that the present model is not general enough and a :NAME argument needs to be added to the class initialization arguments. I don't think you are prevented from adding your own initargs to make-instance for metaobjects. Adding :name to the make-instance call that comes from the expansion of a defflavor is a fine extension. The other issue is to require that the call to make-instance resulting from the expansion of defclass contains the :name argument. Do you really want that? It does not seem absolutely necessary. Another advantage of this change is that if function (SETF CLASS-NAME) is not needed by ENSURE-CLASS-USING-CLASS, then a call to (SETF CLASS-NAME) is a change rather than an initialization, and it becomes possible for certain metaclasses to disallow this. For example, I want to signal an error if a user tries to change the name of a flavor class. It is possible to do what you want there right now. You can always leave a name slot unbound, and have (setf class-name) check if the name was bound or not, and signal an error if name was bound. Patrick. Received: from Sail.Stanford.EDU by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA12090; Wed, 13 Sep 89 10:31:54 -0700 Received: from ti.com by SAIL.Stanford.EDU with TCP; 13 Sep 89 10:33:37 PDT Received: by ti.com id AA02976; Wed, 13 Sep 89 12:34:12 CDT Received: from Kelvin by tilde id AA29768; Wed, 13 Sep 89 12:26:06 CDT Message-Id: <2830699509-10300210@Kelvin> Sender: GRAY@kelvin.csc.ti.com Date: Wed, 13 Sep 89 12:25:09 CDT From: David N Gray To: Patrick Dussud Cc: Common-Lisp-Object-System@SAIL.Stanford.edu Subject: Re: ENSURE-CLASS-USING-CLASS In-Reply-To: Msg of Wed, 13 Sep 89 08:21:17 PDT from Patrick Dussud > Therefore, I believe that the present model is not general enough and a > :NAME argument needs to be added to the class initialization arguments. > > I don't think you are prevented from adding your own initargs to make-instance > for metaobjects. Adding :name to the make-instance call that comes from the > expansion of a defflavor is a fine extension. The other issue is to require > that the call to make-instance resulting from the expansion of defclass > contains the :name argument. Do you really want that? It does not seem > absolutely necessary. Yes, I want it. (It turns out that the :ENVIRONMENT argument also needs to be passed along with the name.) If it is intended that the :METACLASS option of DEFCLASS will only be used with subclasses of STANDARD-CLASS, then it would not be necessary, but that seems like an unnecessary restriction on the extensibility of DEFCLASS. The same problems can arise if you want to do (:METACLASS STRUCTURE-CLASS). This isn't just a theoretical problem; we already have people using DEFCLASS to define windows and conditions, which in the current Explorer implementation are actually implemented as flavors. That worked quite nicely when we were using ADD-NAMED-CLASS, but when I converted to using the ENSURE-CLASS model, I found that I needed to either add the name and environment to the initialization arguments or else use the clumsy approach of passing them under the table in special variables. To turn the question around, is there some advantage to hiding the name from the initialization code? Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA15214; Thu, 14 Sep 89 08:38:01 -0700 Received: from Chardonnay.ms by ArpaGateway.ms ; 14 SEP 89 08:01:40 PDT Return-Path: <@mitvma.mit.edu:TJP101@URIACC.BITNET> Redistributed: CommonLoops.pa Received: from mitvma.mit.edu ([18.92.0.3]) by Xerox.COM ; 14 SEP 89 07:38:45 PDT Received: from MITVMA.MIT.EDU by mitvma.mit.edu (IBM VM SMTP R1.2.1MX) with BSMTP id 1551; Thu, 14 Sep 89 10:37:25 EDT Received: from URIACC.URI.EDU by MITVMA.MIT.EDU (Mailer R2.03B) with BSMTP id 1056; Thu, 14 Sep 89 10:37:24 EDT Received: by URIACC (Mailer R2.02) id 6737; Thu, 14 Sep 89 10:36:13 EDT Date: Thu, 14 Sep 89 10:27:04 EDT From: James Gallagher Subject: Problems compiling 5/22/89 pcl on a Mac II To: CLOS Distribution List Message-Id: <890914-080140-7320@Xerox> I recently ftp'd 5/22/89 pcl, but I cannot get it to compile. The compiler gets stuck in the file fin.lisp. It says that the symbol *fsc-defclass-forms* is not defined. I found the symbol defined in defs.lisp, so I forced the file to be loaded before fin.lisp was compiled, however that did not fix the problem. Any help would be grately appreciated. James Gallagher tjp101@uriacc.uri.edu Received: from Sail.Stanford.EDU by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA01508; Mon, 18 Sep 89 12:30:31 -0700 Received: from oberon.usc.edu by SAIL.Stanford.EDU with TCP; 18 Sep 89 12:28:45 PDT Received: by oberon.usc.edu (5.61/5.5) id AA07208; Mon, 18 Sep 89 12:29:19 -0700 Date: Mon, 18 Sep 89 12:29:19 -0700 From: Guest Login ID Message-Id: <8909181929.AA07208@oberon.usc.edu> To: common-lisp-object-system@sail.stanford.edu Please send info on how to obtain source to CLOS Specification to uunet!iim!pae . or call (714)978-66776 and ask for Paul Edelstein. Do not send reply to this guest account. Is source available through FTP? Thank you. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA29016; Wed, 20 Sep 89 15:11:26 -0700 Received: from Salvador.ms by ArpaGateway.ms ; 20 SEP 89 15:07:43 PDT Return-Path: Redistributed: CommonLoops.pa Received: from linus.mitre.org ([129.83.100.103]) by Xerox.COM ; 20 SEP 89 14:47:22 PDT Return-Path: Received: from kochel.mitre.org by linus.mitre.org (5.59/RCF-3S) id AA26549; Wed, 20 Sep 89 17:47:42 EDT Full-Name: James C. Fohlin Posted-Date: Wed, 20 Sep 89 17:45:47 edt Received: by kochel.mitre.org (4.12/RCF-3C) id AA00470; Wed, 20 Sep 89 17:45:47 edt Date: Wed, 20 Sep 89 17:45:47 edt From: jcf@linus.mitre.org (James C. Fohlin) Message-Id: <8909202145.AA00470@kochel.mitre.org> To: CommonLoops.pa@Xerox.COM Cc: jcf@linus.mitre.org Subject: Franz Allegro 3.0.3 compilation error I have seen two occurrences of the following report, but no answers. Would someone please provide advice on how to solve the problem? Allegro CL 3.0.3.sun3.1 [sun3] (5/5/89 7:08) Copyright (C) 1985-1988, Franz Inc., Berkeley, CA, USA :ld defsys (pcl::compile-pcl) Compiling PKG... Loading binary of PKG... Compiling WALK... Loading binary of WALK... Compiling ITERATE... Warning: variable V is used yet it was declared ignored Loading binary of ITERATE... Compiling MACROS... Loading binary of MACROS... Compiling LOW... Loading binary of LOW... Compiling EXCL-LOW... Loading binary of EXCL-LOW... Compiling FIN... Loading binary of FIN... Compiling DEFS... Warning: variable DEFAULT is never used Loading binary of DEFS... Compiling BOOT... recursive format error, would have printed: "Funcall of ~s which is a non-function." 0 recursive format error, would have printed: "Funcall of ~s which is a non-function." 0 ---compile hangs here--- Thanks for your help. -- Jim Fohlin (617) 271-7505 The MITRE Corporation, M/S A129 jcf@mitre.org Burlington Rd, Bedford, MA 01730 ...!linus!jcf Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA01000; Wed, 20 Sep 89 17:42:36 -0700 Received: from Semillon.ms by ArpaGateway.ms ; 20 SEP 89 17:43:42 PDT Return-Path: Redistributed: CommonLoops.pa Received: from uunet.uu.net ([192.48.96.2]) by Xerox.COM ; 20 SEP 89 17:40:56 PDT Received: by uunet.uu.net (5.61/1.14) with UUCP id AA04711; Wed, 20 Sep 89 20:39:27 -0400 Received: by franz.Franz.COM (MC 2.0/FI-1.0) id AA03693; Wed, 20 Sep 89 17:32:22 PDT Received: by ficons.Franz.COM (3.2/FI-1.0) id AA04244; Wed, 20 Sep 89 17:24:20 PDT Date: Wed, 20 Sep 89 17:24:20 PDT From: dm@franz.com (David Margolies) Message-Id: <8909210024.AA04244@ficons.Franz.COM> To: CommonLoops.pa@Xerox.COM, jcf@linus.mitre.org Subject: Re: Franz Allegro 3.0.3 compilation error From Owners-CommonLoops.pa@Xerox.COM Wed Sep 20 17:10:52 1989 Return-Path: Redistributed: CommonLoops.pa Return-Path: Posted-Date: Wed, 20 Sep 89 17:45:47 edt Received: by kochel.mitre.org (4.12/RCF-3C) id AA00470; Wed, 20 Sep 89 17:45:47 edt Date: Wed, 20 Sep 89 17:45:47 edt From: jcf@linus.mitre.org (James C. Fohlin) To: CommonLoops.pa@Xerox.COM Cc: jcf@linus.mitre.org Subject: Franz Allegro 3.0.3 compilation error I have seen two occurrences of the following report, but no answers. Would someone please provide advice on how to solve the problem? Allegro CL 3.0.3.sun3.1 [sun3] (5/5/89 7:08) Copyright (C) 1985-1988, Franz Inc., Berkeley, CA, USA :ld defsys (pcl::compile-pcl) Compiling PKG... Loading binary of PKG... Compiling WALK... Loading binary of WALK... Compiling ITERATE... Warning: variable V is used yet it was declared ignored Loading binary of ITERATE... Compiling MACROS... Loading binary of MACROS... Compiling LOW... Loading binary of LOW... Compiling EXCL-LOW... Loading binary of EXCL-LOW... Compiling FIN... Loading binary of FIN... Compiling DEFS... Warning: variable DEFAULT is never used Loading binary of DEFS... Compiling BOOT... recursive format error, would have printed: "Funcall of ~s which is a non-function." 0 recursive format error, would have printed: "Funcall of ~s which is a non-function." 0 ---compile hangs here--- Thanks for your help. -- Jim Fohlin (617) 271-7505 The MITRE Corporation, M/S A129 jcf@mitre.org Burlington Rd, Bedford, MA 01730 ...!linus!jcf This is a known problem with versions 3.0.1 and 3.0.3 (on the Sun 3) and 3.0.1 on the Sun 4 (and similar versions on other machines). It is fixed with patch 25 which is available for any implementation of Allegro CL. Anyone who needs patch 25 can get a copy by sending a request to cl-bugs@franz.com. Please be sure to specify the version of Allegro you are running (it is printed in the banner among other places), the machine and OS version you are running Allegro on, and who you are and who you work for. (It is also a good idea to include a dribble file showing the error so we can be sure that it is patch 25 you need.) As with any bugs, problems, or questions about Allegro CL, the fastest response comes when you send (or Cc) your message directly to cl-bugs@franz.com (or call (415) 548-3600). David Margolies Franz Inc. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA21437; Thu, 21 Sep 89 14:51:13 -0700 Received: from Chardonnay.ms by ArpaGateway.ms ; 21 SEP 89 08:19:36 PDT Return-Path: Redistributed: commonloops.pa Received: from linus.mitre.org ([129.83.100.103]) by Xerox.COM ; 21 SEP 89 08:14:44 PDT Return-Path: Received: from sabre.mitre.org by linus.mitre.org (5.59/RCF-3S) id AA10568; Thu, 21 Sep 89 11:15:01 EDT Full-Name: Richard L. Piazza Posted-Date: Thu, 21 Sep 89 11:14:41 EDT Received: from localhost by sabre.mitre.org (3.2/RCF-3C) id AA01448; Thu, 21 Sep 89 11:14:46 EDT Message-Id: <8909211514.AA01448@sabre.mitre.org> To: Nat Ballou Cc: john@linus.mitre.org, CommonLoops.pa@Xerox.COM Subject: Re: Dynamically re-defining classes In-Reply-To: Your message of Thu, 21 Sep 89 09:09:00 -0500. <19890921140945.2.BALLOU@LILITH.ACA.MCC.COM> Date: Thu, 21 Sep 89 11:14:41 EDT From: rich@linus.mitre.org >> To: CommonLoops.pa@Xerox.COM >> Subject: Dynamically re-defining classes >> Date: Wed, 6 Sep 89 10:35 CDT >> From: rich@linus.MITRE.ORG >> >> I know that there is probably some nifty CLOS functionality to do the >> following.... >> >> I want to define a class, and then later, without re-evaluating the >> defclass form, I want to change the class, i.e., add another >> slot. Is there any easy way to do this? I have thought of some >> involved ways, but I want to stay within the CLOS protocol. >> >> Rich > >Date: Tue, 19 Sep 89 17:47 CDT >From: Nat Ballou > >Subject: RE: Dynamically re-defining classes >To: rich@linus.mitre.org > >Hi, > Did you ever get a response to this message? I am interested in any >solutions you received? > Thanks, > Nat > >Date: Thu, 21 Sep 89 09:09 CDT >From: Nat Ballou >Subject: Re: Dynamically re-defining classes >To: rich@linus.mitre.org > >If it's not too much code, would you mind telling how you did it in PCL? I got side-tracked so I never actually coded it up. I think the best way to do it is by using the function/method UPDATE-CLASS. Also, you could define a new metaclass that would have the right behavior, but that would be a lot more hairy.... Good luck. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA24969; Fri, 22 Sep 89 12:03:06 -0700 Received: from Semillon.ms by ArpaGateway.ms ; 22 SEP 89 02:58:01 PDT Return-Path: <@sgi.uucp,@decwrl.dec.com,@decvax.uucp,@savax.uucp:werkowski@salar2.uucp> Redistributed: commonloops.pa Received: from arisia.Xerox.COM ([13.1.100.206]) by Xerox.COM ; 22 SEP 89 02:55:06 PDT Received: from sgi.UUCP by arisia.Xerox.COM with UUCP (5.61+/IDA-1.2.8/gandalf) id AA05110; Fri, 22 Sep 89 02:50:46 -0700 From: Received: from decwrl by sgi.sgi.com via UUCP (5.52/890923.SGI) for commonloops.pa@arisia id AA19787; Fri, 22 Sep 89 02:53:32 PDT Received: by decwrl.dec.com; id AA08906; Fri, 22 Sep 89 02:26:17 -0700 Received: from SALAR2.DECnet MAIL11D_V3 by savax.Sanders.COM (5.57/4.7) id AA00415; Thu, 21 Sep 89 08:29:56 EDT Date: Thu, 21 Sep 89 08:29:55 EDT Message-Id: <8909211229.AA00415@savax.Sanders.COM> To: "commonloops.pa@xerox.com"@savax.ARPA Subject: structure-class in pcl I have acquired a distribution of "Victoria Day" PCL via the VAX Lisp 3.0 product distribution kit. I find that I cannot define methods on DEFSTRUCT objects. I can find no reference to STRUCTURE-CLASS in any of the PCL files. I suppose this part of CLOS is not implemented in this version of PCL. Is there now available code which implements STRUCTURE-CLASS? Thanks for any info. Paul Werkowski Sanders Associates, Inc. Nashua, New Hampshire. DECVAX!SAVAX!SALAR2::WERKOWSKI (603)-885-9170 Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA27702; Fri, 22 Sep 89 14:18:46 -0700 Received: from Catawba.ms by ArpaGateway.ms ; 22 SEP 89 14:16:55 PDT Return-Path: Redistributed: CommonLoops.pa Received: from CAD.CS.CMU.EDU ([128.2.254.133]) by Xerox.COM ; 22 SEP 89 13:05:33 PDT Date: Fri, 22 Sep 89 15:56 EDT From: Robert.Coyne@CAD.CS.CMU.EDU To: CommonLoops.pa@Xerox.COM Subject: CLOS browsers Message-Id: <622497412/coyne@CAD.CS.CMU.EDU> Are there any reasonably good publicly available browers for CLOS that allow you to peruse or summarize class definitions, slot info, documentation, etc. ? If so, could someone provide a pointer to how to get one, install it and use it in conjunction with PCL ? Thanks, Robert Coyne (412) 268-5226 EDRC, CMU coyne@cad.cs.cmy.edu Pittsburgh PA 15203 Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA12928; Tue, 26 Sep 89 04:01:16 -0700 Received: from Catawba.ms by ArpaGateway.ms ; 26 SEP 89 04:05:22 PDT Return-Path: Redistributed: CommonLoops.pa Received: from funet.fi ([128.214.1.1]) by Xerox.COM ; 26 SEP 89 03:59:55 PDT Received: by funet.fi; id AA01761; Tue, 26 Sep 89 13:00:28 +0200 Received: from garlic. by pepper.rc.Nokia.Fi (4.0/6-mar-87) id AA08066; Tue, 26 Sep 89 12:58:25 +0200 Date: Tue, 26 Sep 89 12:58:25 +0200 From: jussila@pepper.rc.Nokia.Fi (Pekka Jussila RC 910) Message-Id: <8909261058.AA08066@pepper.rc.Nokia.Fi> To: CommonLoops.pa@Xerox.COM Subject: Implementation of FIND-METHOD in PCL. In PCL's note file 8-28-88-notes.text there was a list of exported symbols: ------------------------------ Following is the list of symbols which are exported in the 8/18/88 version, but which were not exported in previous versions: CALL-METHOD CLASS-NAME COMPUTE-APPLICABLE-METHODS DEFGENERIC ENSURE-GENERIC-FUNCTION FIND-METHOD FUNCTION-KEYWORDS GENERIC-FLET GENERIC-LABELS INITIALIZE-INSTANCE MAKE-INSTANCES-OBSOLETE NO-APPLICABLE-METHOD NO-NEXT-METHOD REINITIALIZE-INSTANCE SHARED-INITIALIZE SLOT-BOUNDP SLOT-EXISTS-P SLOT-MAKUNBOUND SLOT-MISSING SLOT-UNBOUND SYMBOL-MACROLET UPDATE-INSTANCE-FOR-DIFFERENT-CLASS UPDATE-INSTANCE-FOR-REDEFINED-CLASS WITH-ADDED-METHODS It should be noted that not all of these newly exported symbols have been "implemented" yet. ------------------------------ I'd like to know, if the FIND-METHOD - function is implemented and get the implementation, if there is. If there isn't, when will there be ? According to the x3j13 Document 88-002R it should exist. Will it be like documented ? I am waiting for FIND-METHOD eagerly for my work in Nokia Research Center. Yours, Pekka Jussila Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA13319; Tue, 26 Sep 89 04:16:33 -0700 Received: from Chardonnay.ms by ArpaGateway.ms ; 26 SEP 89 04:20:03 PDT Return-Path: Redistributed: CommonLoops.pa Received: from funet.fi ([128.214.1.1]) by Xerox.COM ; 26 SEP 89 04:16:29 PDT Received: by funet.fi; id AA01761; Tue, 26 Sep 89 13:00:28 +0200 Received: from garlic. by pepper.rc.Nokia.Fi (4.0/6-mar-87) id AA08066; Tue, 26 Sep 89 12:58:25 +0200 Date: Tue, 26 Sep 89 12:58:25 +0200 From: jussila@pepper.rc.Nokia.Fi (Pekka Jussila RC 910) Message-Id: <8909261058.AA08066@pepper.rc.Nokia.Fi> To: CommonLoops.pa@Xerox.COM Subject: Implementation of FIND-METHOD in PCL. In PCL's note file 8-28-88-notes.text there was a list of exported symbols: ------------------------------ Following is the list of symbols which are exported in the 8/18/88 version, but which were not exported in previous versions: CALL-METHOD CLASS-NAME COMPUTE-APPLICABLE-METHODS DEFGENERIC ENSURE-GENERIC-FUNCTION FIND-METHOD FUNCTION-KEYWORDS GENERIC-FLET GENERIC-LABELS INITIALIZE-INSTANCE MAKE-INSTANCES-OBSOLETE NO-APPLICABLE-METHOD NO-NEXT-METHOD REINITIALIZE-INSTANCE SHARED-INITIALIZE SLOT-BOUNDP SLOT-EXISTS-P SLOT-MAKUNBOUND SLOT-MISSING SLOT-UNBOUND SYMBOL-MACROLET UPDATE-INSTANCE-FOR-DIFFERENT-CLASS UPDATE-INSTANCE-FOR-REDEFINED-CLASS WITH-ADDED-METHODS It should be noted that not all of these newly exported symbols have been "implemented" yet. ------------------------------ I'd like to know, if the FIND-METHOD - function is implemented and get the implementation, if there is. If there isn't, when will there be ? According to the x3j13 Document 88-002R it should exist. Will it be like documented ? I am waiting for FIND-METHOD eagerly for my work in Nokia Research Center. Yours, Pekka Jussila Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA17064; Tue, 26 Sep 89 11:01:35 -0700 Received: from Semillon.ms by ArpaGateway.ms ; 26 SEP 89 11:03:34 PDT Date: Tue, 26 Sep 89 11:01 PDT From: Gregor.pa@Xerox.COM Subject: Re: Implementation of FIND-METHOD in PCL. To: Pekka Jussila RC 910 Cc: CommonLoops.pa@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-7.text.newest In-Reply-To: <8909261058.AA08066@pepper.rc.Nokia.Fi> Message-Id: <19890926180142.5.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no Date: Tue, 26 Sep 89 12:58:25 +0200 From: jussila@pepper.rc.Nokia.Fi (Pekka Jussila RC 910) I am waiting for FIND-METHOD eagerly for my work in Nokia Research Center. For now, you can use GET-METHOD which has the same behavior. Or, you can do: (setf (symbol-function 'find-method) (symbol-function 'get-method)) ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA05377; Wed, 27 Sep 89 08:51:13 -0700 Received: from Chardonnay.ms by ArpaGateway.ms ; 27 SEP 89 08:18:44 PDT Return-Path: Redistributed: CommonLoops.pa Received: from siemens.siemens.com ([129.73.10.1]) by Xerox.COM ; 27 SEP 89 08:14:46 PDT Received: by siemens.siemens.com (5.54/1.15) id AA01066; Wed, 27 Sep 89 11:08:30 EST From: dvs2414@ztivax.siemens.com (Christian Ammon) Date: Wed, 27 Sep 89 11:49:00 -0100 Message-Id: <8909271049.AA03233@ztivax.uucp> Received: by ztivax.uucp; Wed, 27 Sep 89 11:49:00 -0100 To: CommonLoops.pa@Xerox.COM Subject: Bug in NO-APPLICABLE-METHOD ? Cc: dvs2414@ztivax.siemens.com I wanted to test the method NO-APPLICABLE-METHOD. In "2. Functions in the Programmer Interface" stands: "The generic function NO-APPLICABLE-METHOD is not intended to be called by programmers. Programmer may write methods for it." This is what I wanted but I can't build a specialized method for it. Is it a bug in PCL or did I do something wrong? ----------------------------------------------------------- (defmethod no-applicable-method :before (i &rest args) (print "before")) (setq s-f (symbol-function 'no-aplicable-method)) (desribe s-f) --->> ... (format t "~%Primary: ~a" (get-method s-f nil (list (find-class 't)))) --->> Primary: # (format t "~%Before : ~a" (get-method s-f '(:before) (list (find-class 't)))) --->> Before : # (defclass a () ()) (defclass b () ()) (defmethod m ((i a)) (print "method M")) (setq x (make-instance 'a)) (setq y (make-instance 'b)) (m x) --->> "method M" (m y) --->> Error: No matching method for the generic-function #, when called with arguments (NIL). Holger Gottwald dvs2414@ztivax.uucp Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA16699; Wed, 27 Sep 89 17:06:17 -0700 Received: from Semillon.ms by ArpaGateway.ms ; 27 SEP 89 17:10:44 PDT Return-Path: Redistributed: CommonLoops.pa Received: from mcnc.mcnc.org ([128.109.131.1]) by Xerox.COM ; 27 SEP 89 17:09:16 PDT Received: from mercury.cs.unc.edu by mcnc.mcnc.org (5.59/MCNC/5-16-88) id AA08899; Wed, 27 Sep 89 19:45:47 EDT Received: from fillmore.cs.unc.edu by mercury.cs.unc.edu (5.59/UNC/6-17-88) id AA06270; Wed, 27 Sep 89 19:44:59 EDT Received: by fillmore.cs.unc.edu (5.59/UNC/06-13-88) id AA24197; Wed, 27 Sep 89 19:44:55 EDT Date: Wed, 27 Sep 89 19:44:55 EDT From: Bruce Smith Message-Id: <8909272344.AA24197@fillmore.cs.unc.edu> To: CommonLoops.pa@Xerox.COM Subject: How do I get PCL? Cc: brock@cs.unc.edu I'm a naive KCL user who's recently gotten CLX (more or less) working on our Sun2&3 machines. I want to work my way on up to CLOS and CLUE. How do I go about getting Xerox's PCL? Thanks! ______________ Bruce T. Smith bts@cs.unc.edu Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA02968; Thu, 28 Sep 89 06:55:22 -0700 Received: from Chardonnay.ms by ArpaGateway.ms ; 28 SEP 89 05:54:24 PDT Return-Path: Redistributed: CommonLoops.PA Received: from Moe.McRCIM.McGill.EDU ([132.206.4.1]) by Xerox.COM ; 28 SEP 89 05:52:53 PDT Received: by Moe.McRCIM.McGill.EDU (5.54) id <8909281252.AA09279@Moe.McRCIM.McGill.EDU>; Thu, 28 Sep 89 08:52:40 EDT Date: Thu, 28 Sep 89 08:52:40 EDT From: Martin Boyer Message-Id: <8909281252.AA09279@Moe.McRCIM.McGill.EDU> To: CommonLoops.PA@Xerox.COM Subject: Multiple inheritance - Using union instead of precedence list Cc: gamin@Moe.McRCIM.McGill.EDU With Victoria Day PCL (or in CLOS in general), is there a way to control inheritance of slot values in such a way that if a class inherits a slot from two superclasses, the resulting slot value will be a list of the values of the superclasses instead of the value of the first one in the class precedence list. Using the brown/blue eyes analogy from Keene, p. 13, I want the baby to one brown eye and one blue eye instead of two brown eyes. I hope CLOS is more permissive than human genetics... Thanks, Martin -- Martin Boyer McGill Research Centre for Intelligent Machines McGill University, Montreal, QC gamin@larry.mcrcim.mcgill.edu gamin@mcgill-vision.uucp Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA10672; Thu, 28 Sep 89 16:05:47 -0700 Received: from Semillon.ms by ArpaGateway.ms ; 28 SEP 89 16:06:11 PDT Date: Thu, 28 Sep 89 16:04 PDT From: Gregor.pa@Xerox.COM Subject: where does the time go To: CommonLoops.pa@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-7.text.newest Message-Id: <19890928230421.1.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no Many people have asked how fares the new draft of chapter 3 or the new version of PCL. I haven't had much to say about this lately and this message explains why. I have decided not to say anything until I have something to show, I am tired of saying that something is coming and then getting sidetracked. I can tell you for sure that I don't expect to look at either of these until November, so nothing new will come out until at least then. ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA08944; Fri, 29 Sep 89 16:10:56 -0700 Received: from Catawba.ms by ArpaGateway.ms ; 29 SEP 89 16:10:49 PDT Return-Path: Redistributed: commonloops.pa Received: from arpa.att.com ([192.20.225.1]) by Xerox.COM ; 29 SEP 89 16:09:16 PDT From: lgm%ihlpf.uucp@att.att.com Date: Fri, 29 Sep 89 16:04 CDT >From: ihlpf!lgm (Lawrence G Mayka +1 312 713 5166) To: commonloops.pa%xerox.com%att.uucp@att.att.com Subject: Looking for an equivalent of :UNCLAIMED-MESSAGE Message-Id: <890929-161049-7085@Xerox> I'm preparing to port some software from Symbolics New Flavors to CLOS. The case in question is an :UNCLAIMED-MESSAGE method defined on a particular flavor. The only similar functionality in CLOS seems to reside in the NO-APPLICABLE-METHOD generic function, for which one may define methods. To obtain behavior similar to :UNCLAIMED-MESSAGE for a class MY-CLASS, I would need to define a method such as (defmethod no-applicable-method ((gf standard-generic-function) (obj my-class) &rest args) ...) Unfortunately: a) I remember some debate in this mailing list as to whether it was proper (i.e., whether correct behavior was guaranteed) to define a method of a "specified generic function" such as NO-APPLICABLE-METHOD on a "specified class" such as STANDARD-GENERIC-FUNCTION. The default behavior provided by PCL is unspecialized (i.e., specialized on T), by the way. b) NO-APPLICABLE-METHOD is defined to take only one required (and hence specializable) argument, the generic function. I need to specialize on the second argument, namely the first argument to the generic function. This gets back to a question I brought up once before: Does it make any sense for a generic function to take *no* required arguments? If not, why can't NO-APPLICABLE-METHOD be defined to take a second required argument (so that I can specialize on it)? (Actually, a reason for a generic function to take no arguments might be to accept :BEFORE, :AFTER, and :AROUND methods, but this doesn't seem to work in 5/23 PCL anyway. Maybe it should?) If (a) is not a problem, I can at least define my method to specialize on STANDARD-GENERIC-FUNCTION and then look at the next argument myself (a la currying). If (a) is a problem, I see no solution other than resorting to a new metaclass for all my generic functions. Do I have all of this right? Lawrence G. Mayka AT&T Bell Laboratories lgm@ihlpf.att.com Standard disclaimer. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA16169; Sun, 1 Oct 89 23:23:55 -0700 Received: from Catawba.ms by ArpaGateway.ms ; 01 OCT 89 23:23:56 PDT Return-Path: Redistributed: CommonLoops.pa Received: from hplms2.hpl.hp.com ([15.255.176.66]) by Xerox.COM ; 01 OCT 89 23:22:40 PDT Received: from hpljl.HPL.HP.COM (hpljl.hpl.hp.com) by hplms2.hp.com; Sun, 1 Oct 89 23:22:16 pdt Received: by hpljl.HPL.HP.COM; Sun, 1 Oct 89 23:22:09 pdt Date: Sun, 1 Oct 89 23:22:09 pdt From: Joachim Laubsch Full-Name: Joachim Laubsch Message-Id: <8910020622.AA01478@hpljl.HPL.HP.COM> To: Robert.Coyne@CAD.CS.CMU.EDU Cc: CommonLoops.pa@Xerox.COM In-Reply-To: Robert.Coyne@CAD.CS.CMU.EDU's message of Fri, 22 Sep 89 15:56 EDT <622497412/coyne@CAD.CS.CMU.EDU> Subject: CLOS browsers > Are there any reasonably good publicly available browers for CLOS > that allow you to peruse or summarize class definitions, slot info, > documentation, etc. ? If so, could someone provide a pointer to how to > get one, install it and use it in conjunction with PCL ? Thanks, > I have written a browser for CLOS and LUCID CL as an extension of a GNU Emacs Common Lisp interface. It works on HP machines under X11. It is basically like the Lucid Inspector, but keeps seperate Inspector buffers. Anybody who is interested, should send me a note, and I will make it available. -*- Joachim (email: laubsch@hplabs.hp.com tel: 415-857-7695). Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA21916; Mon, 2 Oct 89 09:51:48 -0700 Received: from Salvador.ms by ArpaGateway.ms ; 02 OCT 89 09:10:02 PDT Return-Path: Redistributed: CommonLoops.PA Received: from Moe.McRCIM.McGill.EDU ([132.206.4.1]) by Xerox.COM ; 02 OCT 89 09:02:47 PDT Received: by Moe.McRCIM.McGill.EDU (5.54) id <8910021450.AA08742@Moe.McRCIM.McGill.EDU>; Mon, 2 Oct 89 10:50:31 EDT Date: Mon, 2 Oct 89 10:50:31 EDT From: Martin Boyer Message-Id: <8910021450.AA08742@Moe.McRCIM.McGill.EDU> To: CommonLoops.PA@Xerox.COM Subject: Lambda-list congruency bug? Cc: gamin@Moe.McRCIM.McGill.EDU I just merged the following patches from the mailing list into vanilla Victoria Day PCL and now my PCL doesn't pass the self test! See excerpt below. It seems to have something to do with a lambda list congruency test failing while comparing a :before method with its generic-function. 26 May 89 -- Gregor.pa@Xerox.COM -- EQL bug in Victoria Day PCL modified by: 7 Sep 89 -- matsj@delfi.UDAC.UU.SE -- A stab at fixing a bug in Victoria Day PCL * defs.lisp * boot.lisp * methods.lisp 20 Jun 89 -- kanderso@DINO.BBN.COM -- recursive cache expanding bug * dcode.lisp 13 Jul 89 -- harrisr@turing.cs.rpi.edu -- lambda-list congruency checking modified by: 07 Aug 89 -- mthome@BBN.COM -- PCL patches (Victoria Day) * methods.lisp 07 Aug 89 -- mthome@BBN.COM -- PCL patches (Victoria Day) * methods.lisp * points.lisp * defs.lisp 10 Aug 89 -- mthome@BBN.COM -- More patches * std-class.lisp * slots.lisp * init.lisp * fixup.lisp Anybody else had the same problem? Should I just remove the call to CHECK-LAMBDA-LIST-CONGRUENCY? Thanks, Martin ;;; Note: Newlines inserted for clarity > (load "test") ;;; Loading source file "test.lisp" ....... ....... Testing update-instance-for-redefined-class/make-instances-obsolete(2)... >>Error: # has neither &key nor &rest in its lambda-list,conflicting with existing methods CHECK-LAMBDA-LIST-CONGRUENCY: Required arg 0 (GENERIC-FUNCTION): # Required arg 1 (METHOD): # :C 0: Use this method instead (purge the old methods) :A 1: Abort to Lisp Top Level -> :b CHECK-LAMBDA-LIST-CONGRUENCY <- REAL-ADD-METHOD <- ADD-METHOD <- REAL-ADD-NAMED-METHOD <- LOAD-DEFMETHOD-INTERNAL <- LOAD-DEFMETHOD <- EVAL <- (:INTERNAL LOAD LUCID::LOAD-FROM-STREAM) <- (:INTERNAL LOAD LUCID::LOAD-SOURCE-FILE) <- LOAD <- EVAL <- SYSTEM:ENTER-TOP-LEVEL -> :a Abort to Lisp Top Level ;;; Abnormal exit of load "test.lisp" Back to Lisp Top Level > (pcl::bug-report-info) PCL system date: 5/22/89 Victoria Day PCL Lisp Implementation type: Lucid Common Lisp Lisp Implementation version: 3.0.2 *features*: (:PORTABLE-COMMONLOOPS :PCL :COMMON-LISP :LUCID :UNIX :SUN :MC68000 :IEEE-FLOATING-POINT :LCL3.0 :LOOP :EGC :COMPILER) NIL -- Martin Boyer McGill Research Centre for Intelligent Machines McGill University, Montreal, QC gamin@larry.mcrcim.mcgill.edu gamin@mcgill-vision.uucp Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA29493; Mon, 2 Oct 89 16:06:40 -0700 Received: from Catawba.ms by ArpaGateway.ms ; 02 OCT 89 14:01:38 PDT Return-Path: Redistributed: CommonLoops.pa Received: from media-lab ([18.85.0.2]) by Xerox.COM ; 02 OCT 89 13:51:11 PDT Received: by media-lab (5.57/4.8) id AA29190; Mon, 2 Oct 89 16:50:31 EDT Received: by picadilly (4.0/4.8) id AA00420; Mon, 2 Oct 89 16:50:18 EDT Date: Mon, 2 Oct 89 16:50:18 EDT From: Eero Simoncelli Message-Id: <8910022050.AA00420@picadilly> To: laubsch%hpljl@hplabs.hp.com Cc: Robert.Coyne@CAD.CS.CMU.EDU, CommonLoops.pa@Xerox.COM In-Reply-To: Joachim Laubsch's message of Sun, 1 Oct 89 23:22:09 pdt <8910020622.AA01478@hpljl.HPL.HP.COM> Subject: CLOS browsers I would be interested in this. Can you make it available for FTP or mail it out? Thanks, Eero Simoncelli Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA20421; Tue, 3 Oct 89 15:59:12 -0700 Received: from Chardonnay.ms by ArpaGateway.ms ; 03 OCT 89 14:58:51 PDT Return-Path: Redistributed: CommonLoops.PA Received: from fs3.cs.rpi.edu ([128.213.1.14]) by Xerox.COM ; 03 OCT 89 14:55:25 PDT Received: by fs3.cs.rpi.edu (5.54/1.2-RPI-CS-Dept) id AA23715; Tue, 3 Oct 89 17:53:07 EDT Date: Tue, 3 Oct 89 17:52:53 EDT From: harrisr@turing.cs.rpi.edu (Richard Harris) Received: by turing.cs.rpi.edu (4.0/1.2-RPI-CS-Dept) id AA21043; Tue, 3 Oct 89 17:52:53 EDT Message-Id: <8910032152.AA21043@turing.cs.rpi.edu> To: CommonLoops.PA@Xerox.COM Subject: Re: Lambda-list congruency bug? This bug happens because the test "update-instance-for-redefined-class/make-instances-obsolete(2)" defines a before method for update-instance-for-redefined-class which has an arglist with &key, but without any keyword arguments, and without &allow-other-keys. The method method-pretty-arglist (defined on standard-method) treats such methods as though they do not have &key at all, so check-lambda-list-congruency reports a conflict with the existing method for update-instance-for-redefined-class (defined on object), which has a &rest arg. Solution (assumes that &allow-other-keys is never used without &key) 1. Change the lines of method-pretty-arglist (in methods.lisp) from: ((eq arg '&key) (setq state 'key)) ((eq arg '&allow-other-keys) (setq allow-other-keys 't)) to: ((eq arg '&key) (setq state 'key) (or (eq allow-other-keys 't)(setq allow-other-keys ':allow-other-keys))) ((eq arg '&allow-other-keys) (setq allow-other-keys 't)) 2. Change the method generic-function-pretty-arglist (in methods.lisp) to: (defmethod generic-function-pretty-arglist ((generic-function standard-generic-function)) (let ((methods (generic-function-methods generic-function)) (arglist ())) (when methods (multiple-value-bind (required optional rest key allow-other-keys) (method-pretty-arglist (car methods)) (let ((key-p allow-other-keys)) ; ** changed (setq allow-other-keys (eq allow-other-keys 't)) ; ** changed (dolist (m (cdr methods)) (multiple-value-bind (method-key-keywords method-allow-other-keys method-key) (function-keywords m) ;; we've modified function-keywords to return what we want as ;; the third value, no other change here. (declare (ignore method-key-keywords)) (setq key (union key method-key)) (setq allow-other-keys (or allow-other-keys method-allow-other-keys)))) (when allow-other-keys (setq arglist '(&allow-other-keys))) (when key-p ; ** changed (setq arglist (nconc (list '&key) key arglist))) (when rest (setq arglist (nconc (list '&rest rest) arglist))) (when optional (setq arglist (nconc (list '&optional) optional arglist))) (nconc required arglist)))))) Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA14594; Tue, 3 Oct 89 08:51:26 -0700 Received: from Catawba.ms by ArpaGateway.ms ; 03 OCT 89 08:15:30 PDT Return-Path: Redistributed: CommonLoops.pa Received: from isl.Stanford.EDU ([36.10.0.201]) by Xerox.COM ; 03 OCT 89 08:14:05 PDT Received: by isl.Stanford.EDU (3.2/4.7); Tue, 3 Oct 89 08:14:46 PDT Date: Tue, 3 Oct 89 08:14:46 PDT From: lim@isl.Stanford.EDU (Kelvin O. Lim) To: CommonLoops.pa@Xerox.COM Subject: CLOS code, PCL Message-Id: <891003-081530-12016@Xerox> Please send me a copy of this code. Thanks, Kelvin O. Lim, M.D. lim@isl.stanford.edu Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA00466; Thu, 5 Oct 89 07:10:27 -0700 Received: from Chardonnay.ms by ArpaGateway.ms ; 05 OCT 89 07:10:38 PDT Return-Path: Redistributed: CommonLoops.pa Received: from slothrop.math.ufl.edu ([128.227.96.2]) by Xerox.COM ; 05 OCT 89 07:08:12 PDT Received: by slothrop.math.ufl.edu (4.1/4.03) id AA04242; Thu, 5 Oct 89 10:08:11 EDT Date: Thu, 5 Oct 89 10:08:11 EDT From: Message-Id: <8910051408.AA04242@slothrop.math.ufl.edu> To: CommonLoops.pa@Xerox.COM In-Reply-To: Robert.Coyne@CAD.CS.CMU.EDU's message of Fri, 22 Sep 89 15:56 EDT <622497412/coyne@CAD.CS.CMU.EDU> Subject: re: CLOS browsers Reply-To: fischer@slothrop.math.ufl.edu Robert Coyne asks: > Are there any reasonably good publicly available browers for CLOS > that allow you to peruse or summarize class definitions, slot info, > documentation, etc. ? If so, could someone provide a pointer to how to > get one, install it and use it in conjunction with PCL ? Thanks, Joachim Laubsch (laubsch@hplabs.hp.com) graciously supplied us with his extensive GNU/Common Lisp interface. I have made it available via anonymous ftp to math.ufl.edu <128.227.96.16> under the filename ~ftp/pub/gnu-cl2.tar.Z. If you experience any problems retrieving it, please query me: fischer@slothrop.math.ufl.edu. An extract from Joachim's description is appended below. ------------------- included text follows ------------------- Thanks for your interest in the CLOS Browser. It is part of a larger GnuEmacs Lucid CL interface (which does not use Lucid's built in editor, but Gnu Emacs instead). See a summary at the end: There are three options: (1) If you are using HP COMMON LISP II (Lucid), X11 or X10, and GNU Emacs, it makes sense for you to get the entire code. (2) For those who have a SUN and Lucid CL and GNU (or those who don't want the whole thing): It would not require much work to adapt this. I can only think of the activation of menus via the mouse as having to be modified. If you want to ONLY use the Inspector part, it needs a minor amount of work. Basically you have to redefine run-lisp s.t. it starts a process with a filter "lisp-filter-prompts" which is a function that first parses the CL output to see whether there is something special to be displayed by Emacs. The CL part (clos-inspect.l) should require no modification. (3) For those who have Allegro: I have no idea whether it would work at all. (I doubt it very much, since a detailed defnition of inspect is not part of the CL-standard.) SUMMARY ------- GNU-Emacs Interface to HP Common Lisp II (Version 1.5) Joachim Laubsch (laubsch@hplabs.hp.com) Requirements: GNU-Emacs with popup-menus, X11 or X10, HPCLII. (May also by used via M-x commands without window system.) Features: CL mode with many useful commands, e.g. completion of LISP symbols, evaluating regions or expressions. Notification in modeline about package, DEBUG mode and level. Inspector for CL and CLOS (PCL) Menu-interface to debug, trace, and compiling Extensions and interface to Emacs TAGS facility. Support for running on a home (non-X) terminal. ------------------- end of included text ------------------- My thanks to Joachim Laubsch for making this available. -- Randy Fischer fischer@slothrop.math.ufl.edu University of Florida (904) 392-8501 Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA00986; Thu, 5 Oct 89 07:49:27 -0700 Received: from Semillon.ms by ArpaGateway.ms ; 05 OCT 89 07:49:40 PDT Return-Path: <@MCC.COM:mechanic@SEARS-AUTOMOTIVE> Redistributed: CommonLoops.pa Received: from MCC.COM ([128.62.11.10]) by Xerox.COM ; 05 OCT 89 07:48:01 PDT Received: from hi.mcc.com by MCC.COM with TCP/SMTP; Thu 5 Oct 89 09:47:50-CDT Posted-Date: Thu, 5 Oct 89 09:47 CDT Received: by hi.mcc.com (5.51/ACTv4.1i) id AA11860; Thu, 5 Oct 89 09:47:45 CDT Date: Thu, 5 Oct 89 09:47 CDT From: Ani C. Mech Subject: Please remove me. To: CommonLoops.pa@Xerox.COM Message-Id: <19891005144724.0.mechanic@ATHENA.ACA.MCC.COM> Please remove me from this mailing list. I tried to mail to commonloops-request@xerox.com without success. Thank you, dilip. (dilip@cs.utexas.edu) Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA21014; Fri, 6 Oct 89 10:31:07 -0700 Received: from Semillon.ms by ArpaGateway.ms ; 06 OCT 89 09:53:45 PDT Return-Path: Redistributed: commonloops.pa Received: from H.GP.CS.CMU.EDU ([128.2.254.156]) by Xerox.COM ; 06 OCT 89 09:49:36 PDT Received: from H.GP.CS.CMU.EDU by H.GP.CS.CMU.EDU; 6 Oct 89 12:48:56 EDT To: commonloops.pa@Xerox.COM Cc: busdiecker%cgi.com@relay.cs.net Subject: Victoria Day in ExCl 2.0.10 Date: Fri, 06 Oct 89 12:48:52 EDT From: Rick.Busdiecker@H.GP.CS.CMU.EDU Message-Id: <891006-095345-10327@Xerox> I've had trouble trying to compile the PCL whose *pcl-system-date* is "5/22/89 Victoria Day PCL" in Franz Inc.'s Extended Common Lisp 2.0.10 on a uVax3 running Mach at CMU. The error that eventually killed the compilation was: Error: Symbol INIT-FIN-FN does not have a function definition. However, I had an earlier error in that excl-low assumes that the INSPECT package exists. Calling INSPECT once created the package and I was able to restart the compilation. Are there any other things, besides firing up the inspector once, thatneed to be done before PCL will compile? Rick - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Extended Common Lisp 2.0.10 (7/23/72 22:03) Copyright (C) 1985-1987, Franz Inc., Berkeley, CA, USA (load "/usrh2/rfb/lisp/pcl/source/defsys.lisp") ; Loading /usrh2/rfb/lisp/pcl/source/defsys.lisp. T (pcl::compile-pcl) Compiling PKG... ; --- Compiling file /usrh2/rfb/lisp/pcl/source/pkg.lisp --- ; Writing fasl file "/usrh2/rfb/lisp/pcl/excl/pkg.fasl" ; Fasl write complete Loading binary of PKG... Compiling WALK... ; --- Compiling file /usrh2/rfb/lisp/pcl/source/walk.lisp --- ; Compiling UNBOUND-LEXICAL-FUNCTION ; Compiling WITH-AUGMENTED-ENVIRONMENT ; Compiling WITH-AUGMENTED-ENVIRONMENT-INTERNAL ; Compiling ENVIRONMENT-FUNCTION ; Compiling ENVIRONMENT-MACRO ; Compiling WITH-NEW-DEFINITION-IN-ENVIRONMENT ; gc: 1369960/2934288 (2896) dynamic bytes used/total (static) ; Compiling CONVERT-MACRO-TO-LAMBDA ; Compiling WALKER-ENVIRONMENT-BIND ; Compiling ENV-LOCK ; Compiling WALKER-ENVIRONMENT-BIND-1 ; Compiling ENV-WALK-FUNCTION ; Compiling ENV-WALK-FORM ; Compiling ENV-DECLARATIONS ; Compiling ENV-LEXICAL-VARIABLES ; Compiling NOTE-DECLARATION ; Compiling NOTE-LEXICAL-BINDING ; Compiling VARIABLE-LEXICAL-P ; Compiling VARIABLE-DECLARATION ; Compiling VARIABLE-SPECIAL-P ; Compiling VARIABLE-GLOBALLY-SPECIAL-P ; Compiling GET-WALKER-TEMPLATE-INTERNAL ; Compiling DEFINE-WALKER-TEMPLATE ; Compiling GET-WALKER-TEMPLATE ; Compiling GET-IMPLEMENTATION-DEPENDENT-WALKER-TEMPLATE ; Compiling WALK-FORM ; Compiling NESTED-WALK-FORM ; Compiling WALK-FORM-INTERNAL ; Compiling WALK-TEMPLATE Note: doing tail merge Note: doing tail merge ; Compiling WALK-TEMPLATE-HANDLE-REPEAT ; Compiling WALK-TEMPLATE-HANDLE-REPEAT-1 Note: doing tail merge ; Compiling WALK-REPEAT-EVAL ; Compiling RECONS ; Compiling RELIST ; Compiling RELIST* ; Compiling RELIST-INTERNAL ; Compiling WALK-DECLARATIONS ; Compiling WALK-UNEXPECTED-DECLARE ; Compiling WALK-ARGLIST ; Compiling WALK-LET ; Compiling WALK-LET* ; Compiling WALK-PROG ; Compiling WALK-PROG* ; Compiling WALK-DO ; Compiling WALK-DO* ; Compiling WALK-LET/LET* ; Compiling WALK-PROG/PROG* ; Compiling WALK-DO/DO* ; Compiling WALK-LET-IF ; Compiling WALK-MULTIPLE-VALUE-BIND ; Compiling WALK-BINDINGS-1 ; Compiling WALK-BINDINGS-2 ; Compiling WALK-LAMBDA ; Compiling WALK-NAMED-LAMBDA ; Compiling WALK-TAGBODY ; Compiling WALK-TAGBODY-1 ; Compiling WALK-COMPILER-LET ; Compiling WALK-MACROLET ; gc: 1482384/2934288 (2896) dynamic bytes used/total (static) ; Compiling WALK-FLET ; Compiling WALK-LABELS ; Compiling WALK-IF ; Writing fasl file "/usrh2/rfb/lisp/pcl/excl/walk.fasl" ; Fasl write complete Loading binary of WALK... Compiling ITERATE... ; --- Compiling file /usrh2/rfb/lisp/pcl/source/iterate.lisp --- ; Compiling ITERATE ; Compiling SIMPLE-EXPAND-ITERATE-FORM Warning: variable CLAUSE is never used ; Compiling OPTIMIZE-ITERATE-FORM Warning: variable V is used yet it was declared ignored ; Compiling EXPAND-INTO-LET ; Compiling VARIABLES-FROM-LET ; Compiling ITERATE-TRANSFORM-BODY ; Compiling PARSE-DECLARATIONS ; Compiling EXTRACT-SPECIAL-BINDINGS ; Compiling FUNCTION-LAMBDA-P ; Compiling RENAME-LET-BINDINGS ; Compiling RENAME-VARIABLES ; Compiling MV-SETQ ; Compiling VARIABLE-SAME-P ; Compiling MAYBE-WARN ; Compiling INTERVAL ; Compiling LIST-ELEMENTS ; Compiling LIST-TAILS ; Compiling ELEMENTS ; Compiling PLIST-ELEMENTS ; Compiling SEQUENCE-ACCESSOR ; Compiling EACHTIME ; Compiling WHILE ; Compiling UNTIL ; gc: 1510064/2934288 (27216) dynamic bytes used/total (static) ; Compiling GATHERING ; Compiling WITH-GATHERING ; Compiling SIMPLE-EXPAND-GATHERING-FORM Warning: variable BINDING is never used ; Compiling OPTIMIZE-GATHERING-FORM ; Compiling RENAME-AND-CAPTURE-VARIABLES ; Compiling WALK-GATHERING-BODY ; Compiling COLLECTING ; Compiling JOINING ; Compiling MAXIMIZING ; Compiling MINIMIZING ; Compiling SUMMING ; Writing fasl file "/usrh2/rfb/lisp/pcl/excl/iterate.fasl" ; Fasl write complete Loading binary of ITERATE... Compiling MACROS... ; --- Compiling file /usrh2/rfb/lisp/pcl/source/macros.lisp --- ; Compiling MEMQ ; Compiling ASSQ ; Compiling RASSQ ; Compiling DELQ ; Compiling POSQ ; Compiling NEQ ; Compiling MAKE-CAXR Note: doing tail merge ; Compiling MAKE-CDXR Note: doing tail merge ; Compiling TRUE ; Compiling FALSE ; Compiling ZERO ; Compiling MAKE-PLIST ; Compiling REMTAIL ; Compiling ONCE-ONLY ; Compiling EXTRACT-DECLARATIONS ; Compiling MAKE-KEYWORD ; Compiling STRING-APPEND ; Compiling SYMBOL-APPEND ; Compiling CHECK-MEMBER ; Compiling ALIST-ENTRY ; Compiling DESTRUCTURING-BIND ; Compiling DESTRUCTURE ; Compiling DESTRUCTURE-INTERNAL ; Compiling COLLECTING-ONCE ; Compiling DOPLIST ; Compiling IF* ; Compiling PRINTING-RANDOM-THING ; gc: 1559568/2934288 (50448) dynamic bytes used/total (static) ; Compiling PRINTING-RANDOM-THING-INTERNAL ; Compiling CAPITALIZE-WORDS ; Compiling LEGAL-CLASS-NAME-P ; Compiling FIND-CLASS ; Compiling |SETF FIND-CLASS| ; Compiling FIND-WRAPPER ; Compiling REDUCE-CONSTANT Note: doing tail merge ; Compiling GATHERING1 ; Compiling *LIST-ELEMENTS ; Compiling *LIST-TAILS ; Writing fasl file "/usrh2/rfb/lisp/pcl/excl/macros.fasl" ; Fasl write complete Loading binary of MACROS... Compiling LOW... ; --- Compiling file /usrh2/rfb/lisp/pcl/source/low.lisp --- ; Compiling %LOGAND ; Compiling %LOGXOR ; Compiling %+ ; Compiling %- ; Compiling %* ; Compiling %/ ; Compiling %1+ ; Compiling %1- ; Compiling %ZEROP ; Compiling %= ; Compiling %< ; Compiling %> ; Compiling %ASH ; Compiling %MOD ; Compiling %FLOOR ; Compiling %SVREF ; Compiling MAKE-%+ ; Compiling REDUCE-VARIADIC-TO-BINARY ; Compiling WITHOUT-INTERRUPTS ; Compiling MAKE-MEMORY-BLOCK ; Compiling MEMORY-BLOCK-REF ; Compiling MAKE-CACHE-MASK ; Compiling MAKE-MEMORY-BLOCK-MASK ; Compiling CLEAR-MEMORY-BLOCK ; Compiling BUILT-IN-WRAPPER-OF ; Compiling BUILT-IN-CLASS-OF ; Compiling CLASS-OF-1 ; Compiling WRAPPER-OF-1 ; Compiling WRAPPER-OF-2 ; Compiling %%ALLOCATE-INSTANCE--CLASS ; Compiling IWMC-CLASS-P ; Compiling IWMC-CLASS-CLASS-WRAPPER ; Compiling IWMC-CLASS-STATIC-SLOTS ; Compiling PRINT-IWMC-CLASS ; Compiling %ALLOCATE-INSTANCE--CLASS ; Compiling %ALLOCATE-INSTANCE--CLASS-1 ; Compiling %ALLOCATE-STATIC-SLOT-STORAGE--CLASS ; Compiling CLASS-OF--CLASS ; Compiling MAKE-CLASS-WRAPPER ; Compiling WRAPPER-CACHE-NO ; Compiling WRAPPER-INSTANCE-SLOTS-LAYOUT ; Compiling WRAPPER-CLASS-SLOTS ; Compiling WRAPPER-CLASS ; Compiling VALIDATE-WRAPPER ; Compiling INVALIDATE-WRAPPER ; gc: 1605024/2934288 (65656) dynamic bytes used/total (static) ; Compiling OBJECT-CACHE-NO ; Compiling FUNCTION-PRETTY-ARGLIST ; Compiling SET-FUNCTION-PRETTY-ARGLIST ; Compiling SET-FUNCTION-NAME ; Compiling SET-FUNCTION-NAME-1 ; Compiling INTERN-FUNCTION-NAME ; Compiling IN-THE-COMPILER-P ; Compiling COMPILE-LAMBDA ; Compiling COMPILE-LAMBDA-UNCOMPILED ; Compiling COMPILE-LAMBDA-DEFERRED ; Compiling DEFINE-FUNCTION-TEMPLATE ; Compiling RESET-TEMPLATED-FUNCTION-TYPES ; Compiling GET-TEMPLATED-FUNCTION-CONSTRUCTOR ; Compiling PRE-MAKE-TEMPLATED-FUNCTION-CONSTRUCTOR ; Compiling COMPILE-TEMPLATED-FUNCTION-CONSTRUCTORS ; Compiling PRECOMPILE-RANDOM-CODE-SEGMENTS ; Compiling PRE-MAKE-TEMPLATED-FUNCTION-CONSTRUCTOR-INTERNAL ; Compiling DONT-COMPILE ; Compiling COMPILE-TEMPLATED-FUNCTION-CONSTRUCTOR-CONSTRUCTORS ; Compiling MAKE-TEMPLATED-FUNCTION-CONSTRUCTOR-CONSTRUCTOR ; Compiling SHOW-TEMPLATED-FUNCTION-TYPES ; Compiling RECORD-DEFINITION ; Writing fasl file "/usrh2/rfb/lisp/pcl/excl/low.fasl" ; Fasl write complete Loading binary of LOW... Compiling EXCL-LOW... ; --- Compiling file /usrh2/rfb/lisp/pcl/source/excl-low.lisp --- Warning: Symbol EXCL::*REDEFINITION-WARNINGS* declared special ; Compiling WITHOUT-INTERRUPTS ; Compiling MEMQ ; Compiling IWMC-CLASS-P ; Compiling %IWMC-CLASS-CLASS-WRAPPER ; Compiling %IWMC-CLASS-STATIC-SLOTS ; Compiling LOAD-TIME-EVAL ; Compiling OBJECT-CACHE-NO ; Compiling PRINTING-RANDOM-THING-INTERNAL ; Compiling FUNCTION-ARGLIST ; Compiling SYMBOL-APPEND Error: Package "INSPECT" not found. [1] :reset (inspect nil) ; Fast loading /usr/misc/.cl/lib/code/inspect.fasl. The symbol NIL @ #x1e3b1e which is an EXTERNAL symbol in the LISP package 0 car ----------> The symbol NIL 1 cdr ----------> The symbol NIL 2 function -----> # 3 name ---------> A simple-string (3) "NIL" 4 plist --------> A proper list with 8 elements 5 hash ---------> Bit field: #x0106 6 flags --------> Bit field: #x8000 [1] :reset (pcl::compile-pcl) ; gc: 1616488/2934288 (114920) dynamic bytes used/total (static) Loading binary of PKG... Loading binary of WALK... Loading binary of ITERATE... Loading binary of MACROS... Loading binary of LOW... Compiling EXCL-LOW... ; --- Compiling file /usrh2/rfb/lisp/pcl/source/excl-low.lisp --- Warning: Symbol EXCL::*REDEFINITION-WARNINGS* declared special ; Compiling WITHOUT-INTERRUPTS ; Compiling MEMQ ; Compiling IWMC-CLASS-P ; Compiling %IWMC-CLASS-CLASS-WRAPPER ; Compiling %IWMC-CLASS-STATIC-SLOTS ; Compiling LOAD-TIME-EVAL ; Compiling OBJECT-CACHE-NO ; Compiling PRINTING-RANDOM-THING-INTERNAL ; Compiling FUNCTION-ARGLIST ; Compiling SYMBOL-APPEND ; Compiling (:PROPERTY IWMC-CLASS :INSPECTOR-FUNCTION) ; Compiling (:PROPERTY IWMC-CLASS :INSPECTOR-TYPE-FUNCTION) ; Writing fasl file "/usrh2/rfb/lisp/pcl/excl/excl-low.fasl" ; Fasl write complete Loading binary of EXCL-LOW... Compiling FIN... ; --- Compiling file /usrh2/rfb/lisp/pcl/source/fin.lisp --- ; Compiling FUNCALLABLE-INSTANCE-DATA-POSITION ; gc: 1622512/2834288 (205280) dynamic bytes used/total (static) ; Compiling FUNCALLABLE-INSTANCE-P ; Compiling MAKE-TRAMPOLINE ; Compiling INIT-FIN-FUN ; Compiling ALLOCATE-FUNCALLABLE-INSTANCE-1 ; Compiling SET-FUNCALLABLE-INSTANCE-FUNCTION Note: doing tail merge ; Compiling ADD-INSTANCE-VARS ; Compiling FUNCALLABLE-INSTANCE-DATA-1 ; Compiling SET-FUNCALLABLE-INSTANCE-DATA-1 ; Compiling CALLED-FIN-WITHOUT-FUNCTION ; Compiling FUNCALLABLE-INSTANCE-CLASS ; Compiling FUNCALLABLE-INSTANCE-WRAPPER ; Compiling FUNCALLABLE-INSTANCE-STATIC-SLOTS ; Compiling ALLOCATE-FUNCALLABLE-INSTANCE ; Writing fasl file "/usrh2/rfb/lisp/pcl/excl/fin.fasl" ; Fasl write complete Loading binary of FIN... Compiling DEFS... ; --- Compiling file /usrh2/rfb/lisp/pcl/source/defs.lisp --- ; Compiling GET-SETF-FUNCTION-NAME ; Compiling DO-STANDARD-DEFSETF ; Compiling DO-STANDARD-DEFSETF-1 ; Compiling DO-DEFSETF ; Compiling DO-STANDARD-DEFSETFS ; Compiling MAKE-SETF-METHOD-LAMBDA-LIST ; Compiling PARSE-GSPEC ; Compiling UNENCAPSULATED-FDEFINITION ; Compiling FDEFINE-CAREFULLY ; Compiling GBOUNDP ; Compiling GMAKUNBOUND ; Compiling GDEFINITION ; Compiling |SETF GDEFINITION| ; Compiling GET-SETF-FUNCTION ; Compiling |SETF GET-SETF-FUNCTION| ; Compiling DO-SATISFIES-DEFTYPE ; gc: 1670000/2834288 (210152) dynamic bytes used/total (static) ; Compiling MAKE-TYPE-PREDICATE-NAME ; Compiling DEFINE-EARLY-SETFS-AND-TYPE-PREDICATES Warning: variable DEFAULT is never used ; Compiling VARIABLE-CLASS ; Compiling SPECIALIZER-CASE ; Compiling SPECIALIZER-ECASE ; Compiling SPECIALIZER-CROSS-CASE ; Compiling SPECIALIZER-EQ ; Compiling SPECIALIZER-ASSOC ; Compiling SUB-SPECIALIZER-P Warning: variable G1701 is never used ; Writing fasl file "/usrh2/rfb/lisp/pcl/excl/defs.fasl" ; Fasl write complete Loading binary of DEFS... Compiling BOOT... ; --- Compiling file /usrh2/rfb/lisp/pcl/source/boot.lisp --- ; Compiling REDIRECT-EARLY-FUNCTION-INTERNAL ; Compiling DEFGENERIC ; Compiling EXPAND-DEFGENERIC ; Compiling LOAD-DEFGENERIC ; Compiling DEFMETHOD ; Compiling METHOD-PROTOTYPE-FOR-GF ; Compiling EXPAND-DEFMETHOD ; Compiling EXPAND-DEFMETHOD-INTERNAL ; gc: 1796792/2834288 (230472) dynamic bytes used/total (static) ; Compiling ADD-LEXICAL-FUNCTIONS-TO-METHOD-LAMBDA ; Compiling MAKE-PARAMETER-REFERENCES ; Compiling METHOD-FUNCTION-PLIST ; Compiling |SETF METHOD-FUNCTION-PLIST| ; Compiling METHOD-FUNCTION-GET ; Compiling |SETF METHOD-FUNCTION-GET| ; Compiling METHOD-FUNCTION-ISL ; Compiling METHOD-FUNCTION-NEEDS-NEXT-METHODS-P ; Compiling LOAD-DEFMETHOD ; Compiling LOAD-DEFMETHOD-INTERNAL ; Compiling MAKE-METHOD-SPEC ; Compiling ENSURE-GENERIC-FUNCTION ; Compiling EARLY-ENSURE-GF-INTERNAL ; Compiling EARLY-GF-P ; Compiling EARLY-GF-METHODS ; Compiling EARLY-GF-DISCRIMINATOR-CODE ; Compiling REAL-ENSURE-GF-INTERNAL ; Compiling EARLY-MAKE-A-METHOD ; Compiling REAL-MAKE-A-METHOD ; Compiling EARLY-METHOD-SPECIALIZERS ; Compiling EARLY-METHOD-QUALIFIERS ; Compiling EARLY-ADD-NAMED-METHOD ; Compiling ADD-METHOD ; Compiling REMOVE-METHOD ; Compiling GET-METHOD ; Compiling EARLY-UPDATE-DISCRIMINATOR-CODE ; Compiling EARLY-GET-CPL ; Compiling EARLY-SORT-METHODS ; gc: 1766976/2834288 (230472) dynamic bytes used/total (static) ; Compiling EARLY-DFUN ; Compiling FIX-EARLY-GENERIC-FUNCTIONS ; Compiling MAKE-TOP-LEVEL-FORM ; Compiling MAKE-PROGN ; Compiling PARSE-DEFMETHOD ; Compiling PARSE-SPECIALIZERS ; Compiling UNPARSE-SPECIALIZERS Note: doing tail merge ; Compiling PARSE-METHOD-OR-SPEC ; Compiling SPECIALIZED-LAMBDA-LIST-PARAMETERS ; Compiling SPECIALIZED-LAMBDA-LIST-LAMBDA-LIST ; Compiling SPECIALIZED-LAMBDA-LIST-SPECIALIZERS ; Compiling PARSE-SPECIALIZED-LAMBDA-LIST ; Compiling WITH-SLOTS ; Compiling WITH-ACCESSORS ; Compiling EXPAND-WITH-SLOTS ; Compiling EXPAND-WITH-SLOTS-INTERNAL ; gc: 1798912/2834288 (230472) dynamic bytes used/total (static) Warning: variable I is never used ; Writing fasl file "/usrh2/rfb/lisp/pcl/excl/boot.fasl" ; Fasl write complete Loading binary of BOOT... Compiling VECTOR... ; --- Compiling file /usrh2/rfb/lisp/pcl/source/vector.lisp --- ; Compiling GET-NEXT-WRAPPER-CACHE-NO Note: doing tail merge Note: doing tail merge ; Compiling MAKE-WRAPPER-CACHE-MASK ; Compiling SHIFT-WRAPPER-CACHE-LOCATION ; Compiling COMPUTE-LINE-SIZE ; Compiling COMPUTE-WRAPPER-CACHE-LOCATION ; Compiling COMPUTE-WRAPPER-CACHE-LOCATION-1 ; Compiling COMPUTE-WRAPPER-CACHE-LOCATION-2 ; Compiling COMPUTE-WRAPPER-CACHE-LOCATION-FROM-LINE ; Compiling INSTANCE-SLOT-POSITION ; Compiling MAKE-INTERN-LIST-TABLE ; Compiling INTERN-IN-LIST-TABLE ; Compiling INTERN-SLOT-LISTS-1 ; Compiling INTERN-SLOT-LISTS-2 ; Compiling INTERN-SLOT-LISTS ; Compiling LOOKUP-PV ; Compiling LOOKUP-PV-1 Warning: Symbol EXCL::*WITHOUT-INTERRUPTS* declared special ; Compiling LOOKUP-PV-2 Warning: Symbol EXCL::*WITHOUT-INTERRUPTS* declared special ; Compiling LOOKUP-PV-3 Warning: Symbol EXCL::*WITHOUT-INTERRUPTS* declared special ; Compiling LOOKUP-PV-N Warning: Symbol EXCL::*WITHOUT-INTERRUPTS* declared special ; gc: 1835688/2834288 (260304) dynamic bytes used/total (static) ; Compiling LOOKUP-PV-MISS Error: Symbol INIT-FIN-FN does not have a function definition. [1] (user::exit) Process lisp finished Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA22036; Fri, 6 Oct 89 11:53:36 -0700 Received: from Semillon.ms by ArpaGateway.ms ; 06 OCT 89 10:53:24 PDT Return-Path: Redistributed: commonloops.pa Received: from H.GP.CS.CMU.EDU ([128.2.254.156]) by Xerox.COM ; 06 OCT 89 10:45:05 PDT Received: from H.GP.CS.CMU.EDU by H.GP.CS.CMU.EDU; 6 Oct 89 13:44:34 EDT To: commonloops.pa@Xerox.COM Cc: busdiecker%cgi.com@relay.cs.net Subject: Victoria Day PCL in Lucid 2.1 Date: Fri, 06 Oct 89 13:44:32 EDT From: Rick.Busdiecker@H.GP.CS.CMU.EDU Message-Id: <891006-105324-10569@Xerox> I have been unable to compile the PCL whose *pcl-system-date* is "5/22/89 Victoria Day PCL" in Lucid, Inc.'s Lucid Common Lisp 2.1. I tried to continue from the continuable errors. The first such error was that the LUCID symbol %LOGAND& didn't exist. Later errors could only be continued by disabling garbage collection which eventually resulted in lisp running out of memory. Rick - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;;; Lucid Common Lisp, Development Environment Version 2.1, 6 December 1987 ;;; ;;; Copyright (C) 1987 by Lucid, Inc. All Rights Reserved ;;; ;;; This software product contains confidential and trade secret information ;;; belonging to Lucid, Inc. It may not be copied for any reason other than ;;; for archival and backup purposes. ;;; Loading source file "/usrh2/rfb/lisp-init.lisp" > (load "/usrh2/rfb/lisp/pcl/source/defsys.lisp") ;;; Loading source file "/usrh2/rfb/lisp/pcl/source/defsys.lisp" #P"/usrh2/rfb/lisp/pcl/source/defsys.lisp" > (pcl::compile-pcl) Compiling Pkg... ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/pkg.lisp" ;;; Writing binary file "pkg.vbin" Loading binary of Pkg... Compiling Walk... ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/walk.lisp" ;;; Expanding Dynamic Memory ;;; GC: 116320 words [465280 bytes] of dynamic storage in use. ;;; 341406 words [1365624 bytes] of free storage available before a GC. ;;; 799132 words [3196528 bytes] of free storage available if GC is disabled. ;;; Writing binary file "walk.vbin" Loading binary of Walk... ;;; Expanding Reserved Memory ;;; GC: 73596 words [294384 bytes] of dynamic storage in use. ;;; 384130 words [1536520 bytes] of free storage available before a GC. ;;; 841856 words [3367424 bytes] of free storage available if GC is disabled. ;;; GC: 73596 words [294384 bytes] of dynamic storage in use. ;;; 384130 words [1536520 bytes] of free storage available before a GC. ;;; 841856 words [3367424 bytes] of free storage available if GC is disabled. Compiling Iterate... ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/iterate.lisp" ;;; Writing binary file "iterate.vbin" Loading binary of Iterate... Compiling Macros... ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/macros.lisp" ;;; GC: 93598 words [374392 bytes] of dynamic storage in use. ;;; 364128 words [1456512 bytes] of free storage available before a GC. ;;; 821854 words [3287416 bytes] of free storage available if GC is disabled. ;;; Writing binary file "macros.vbin" ;;; While compiling toplevel forms ;;; Warning: The following function is not known to be defined: ;;; CLASS-WRAPPER was referenced by FIND-WRAPPER Loading binary of Macros... Compiling Low... ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/low.lisp" ;;; Expanding Reserved Memory ;;; GC: 121156 words [484624 bytes] of dynamic storage in use. ;;; 336570 words [1346280 bytes] of free storage available before a GC. ;;; 794296 words [3177184 bytes] of free storage available if GC is disabled. ;;; Writing binary file "low.vbin" ;;; Warning: The following function is not known to be defined: ;;; CLASS-WRAPPER was referenced by BUILT-IN-WRAPPER-OF Loading binary of Low... Compiling Lucid-Low... ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/lucid-low.lisp" >>Error: "%LOGAND&": Specified LUCID symbol is missing. LUCID:IMPORT-FROM-LUCID-PKG: :A Abort to Lisp Top Level :C Intern (and export) it right now! -> :c Intern (and export) it right now! ;;; Warning: Redefining macro %LOGAND which used to be defined in file /usrh2/rfb/lisp/pcl/source/low.lisp ;;; Warning: Redefining macro %ASH which used to be defined in file /usrh2/rfb/lisp/pcl/source/low.lisp ;;; Warning: Redefining macro MAKE-MEMORY-BLOCK which used to be defined in file /usrh2/rfb/lisp/pcl/source/low.lisp ;;; Warning: Redefining macro OBJECT-CACHE-NO which used to be defined in file /usrh2/rfb/lisp/pcl/source/low.lisp ;;; Writing binary file "lucid-low.vbin" Loading binary of Lucid-Low... ;;; Warning: function Logand&-Variable defined more than once in file /usrh2/rfb/lisp/pcl/source/lucid-low.lisp ;;; Warning: Redefining function SET-FUNCTION-NAME-1 which used to be defined in file /usrh2/rfb/lisp/pcl/source/low.lisp ;;; Warning: Redefining function PRINTING-RANDOM-THING-INTERNAL which used to be defined in file /usrh2/rfb/lisp/pcl/source/macros.lisp Compiling Fin... ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/fin.lisp" ;;; Writing binary file "fin.vbin" Loading binary of Fin... Compiling Defs... ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/defs.lisp" ;;; While compiling toplevel forms ;;; Warning: Go to unknown tag #:G9601 ;;; Warning: Go to unknown tag #:G9601 >>Error: Package "LUCID-COMMON-LISP" not found. READ: Optional arg 0 (STREAM): # Optional arg 1 (EOF-ERROR-P): NIL Optional arg 2 (EOF-VALUE): # Optional arg 3 (RECURSIVE-P): NIL :A Abort to Lisp Top Level :C Use the default package instead -> :c Use the default package instead ;;; GC: 121492 words [485968 bytes] of dynamic storage in use. ;;; 336234 words [1344936 bytes] of free storage available before a GC. ;;; 793960 words [3175840 bytes] of free storage available if GC is disabled. ;;; Writing binary file "defs.vbin" ;;; Warning: The following functions are not known to be defined: ;;; CLASS-PRECEDENCE-LIST was referenced by SUB-SPECIALIZER-P ;;; CLASS-OF was referenced by SUB-SPECIALIZER-P Loading binary of Defs... Compiling Boot... ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/boot.lisp" ;;; Expanding Reserved Memory ;;; GC: 121462 words [485848 bytes] of dynamic storage in use. ;;; 336264 words [1345056 bytes] of free storage available before a GC. ;;; 793990 words [3175960 bytes] of free storage available if GC is disabled. >>Error: Package "LUCID-COMMON-LISP" not found. READ: Optional arg 0 (STREAM): # Optional arg 1 (EOF-ERROR-P): NIL Optional arg 2 (EOF-VALUE): # Optional arg 3 (RECURSIVE-P): NIL :A Abort to Lisp Top Level :C Use the default package instead -> :c Use the default package instead >>Error: Reading PCL:*REDEFINITION-ACTION*, but the symbol isn't external.. READ: Optional arg 0 (STREAM): # Optional arg 1 (EOF-ERROR-P): NIL Optional arg 2 (EOF-VALUE): # Optional arg 3 (RECURSIVE-P): NIL :A Abort to Lisp Top Level :C Accept the internal symbol. -> :c Accept the internal symbol. ;;; Writing binary file "boot.vbin" ;;; Warning: The following functions are not known to be defined: ;;; GENERIC-FUNCTION-P was referenced by METHOD-PROTOTYPE-FOR-GF ;;; CLASS-PROTOTYPE was referenced by METHOD-PROTOTYPE-FOR-GF ;;; GENERIC-FUNCTION-METHOD-CLASS was referenced by ;;; METHOD-PROTOTYPE-FOR-GF ;;; CLASS-NAME was referenced by EXPAND-DEFMETHOD, ;;; LOAD-DEFMETHOD-INTERNAL, EARLY-MAKE-A-METHOD, ;;; UNPARSE-SPECIALIZERS ;;; CLASS-OF was referenced by EXPAND-DEFMETHOD, ;;; LOAD-DEFMETHOD-INTERNAL, EARLY-GET-CPL ;;; CAN-OPTIMIZE-ACCESS was referenced by EXPAND-DEFMETHOD-INTERNAL ;;; OPTIMIZE-SLOT-VALUE was referenced by EXPAND-DEFMETHOD-INTERNAL ;;; OPTIMIZE-SET-SLOT-VALUE was referenced by EXPAND-DEFMETHOD-INTERNAL ;;; OPTIMIZE-STANDARD-INSTANCE-ACCESS was referenced by ;;; EXPAND-DEFMETHOD-INTERNAL ;;; SORT-SLOTS-INTO-ISL was referenced by EXPAND-DEFMETHOD-INTERNAL ;;; ADD-PV-BINDING was referenced by EXPAND-DEFMETHOD-INTERNAL ;;; INTERN-SLOT-LISTS was referenced by LOAD-DEFMETHOD-INTERNAL ;;; ADD-NAMED-METHOD was referenced by LOAD-DEFMETHOD-INTERNAL ;;; MAKE-INSTANCE was referenced by REAL-ENSURE-GF-INTERNAL, ;;; REAL-MAKE-A-METHOD, FIX-EARLY-GENERIC-FUNCTIONS ;;; MAKE-A-METHOD was referenced by EARLY-ADD-NAMED-METHOD, ;;; FIX-EARLY-GENERIC-FUNCTIONS ;;; REAL-GET-METHOD was referenced by GET-METHOD ;;; BOOTSTRAP-GET-SLOT was referenced by EARLY-GET-CPL ;;; ALLOCATE-INSTANCE was referenced by FIX-EARLY-GENERIC-FUNCTIONS ;;; CLASS-WRAPPER was referenced by FIX-EARLY-GENERIC-FUNCTIONS ;;; CLASS-NO-OF-INSTANCE-SLOTS was referenced by ;;; FIX-EARLY-GENERIC-FUNCTIONS ;;; INITIALIZE-INSTANCE was referenced by FIX-EARLY-GENERIC-FUNCTIONS ;;; REAL-ADD-METHOD was referenced by FIX-EARLY-GENERIC-FUNCTIONS ;;; SET-SLOT-VALUE was referenced by FIX-EARLY-GENERIC-FUNCTIONS ;;; |SETF GENERIC-FUNCTION-NAME| was referenced by ;;; FIX-EARLY-GENERIC-FUNCTIONS ;;; CLASSP was referenced by UNPARSE-SPECIALIZERS ;;; METHOD-TYPE-SPECIFIERS was referenced by UNPARSE-SPECIALIZERS, ;;; PARSE-METHOD-OR-SPEC ;;; METHOD-P was referenced by PARSE-METHOD-OR-SPEC ;;; METHOD-GENERIC-FUNCTION was referenced by PARSE-METHOD-OR-SPEC ;;; GENERIC-FUNCTION-NAME was referenced by PARSE-METHOD-OR-SPEC ;;; METHOD-QUALIFIERS was referenced by PARSE-METHOD-OR-SPEC ;;; COMPUTE-DISCRIMINATING-FUNCTION-ARGLIST-INFO was referenced by ;;; PARSE-METHOD-OR-SPEC Loading binary of Boot... Compiling Vector... ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/vector.lisp" ;;; GC: 121262 words [485048 bytes] of dynamic storage in use. ;;; 336464 words [1345856 bytes] of free storage available before a GC. ;;; 794190 words [3176760 bytes] of free storage available if GC is disabled. ;;; Writing binary file "vector.vbin" ;;; Warning: The following functions are not known to be defined: ;;; WRAPPER-OF was referenced by COMPUTE-WRAPPER-CACHE-LOCATION-1 ;;; OBSOLETE-INSTANCE-TRAP was referenced by ;;; COMPUTE-WRAPPER-CACHE-LOCATION-1, ;;; COMPUTE-WRAPPER-CACHE-LOCATION-2, LOOKUP-PV-1, LOOKUP-PV-2, ;;; LOOKUP-PV-3, LOOKUP-PV-N ;;; CLASS-WRAPPER was referenced by toplevel forms ;;; CLASS-OF was referenced by PV-ACCESS-TRAP ;;; |SETF SLOT-VALUE-USING-CLASS| was referenced by PV-ACCESS-TRAP ;;; SLOT-VALUE-USING-CLASS was referenced by PV-ACCESS-TRAP Loading binary of Vector... Compiling Slots... ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/slots.lisp" ;;; Expanding Reserved Memory ;;; GC: 149560 words [598240 bytes] of dynamic storage in use. ;;; 308166 words [1232664 bytes] of free storage available before a GC. ;;; 765892 words [3063568 bytes] of free storage available if GC is disabled. ;;; Writing binary file "slots.vbin" ;;; Warning: The following functions are not known to be defined: ;;; CLASS-WRAPPER was referenced by toplevel forms ;;; CLASS-PROTOTYPE was referenced by toplevel forms ;;; CLASS-OF was referenced by GET-SLOT-VALUE-CACHE-MISS, ;;; SET-SLOT-VALUE-CACHE-MISS, SLOT-VALUE, SET-SLOT-VALUE, ;;; SLOT-BOUNDP, SLOT-MAKUNBOUND, SLOT-EXISTS-P, SUB-CLASS-P ;;; MAKE-INSTANCE was referenced by toplevel forms ;;; SLOTD-NAME was referenced by toplevel forms ;;; SLOTD-KEYWORD was referenced by toplevel forms ;;; SLOTD-INITFORM was referenced by toplevel forms ;;; SLOTD-READERS was referenced by toplevel forms ;;; SLOTD-WRITERS was referenced by toplevel forms ;;; SLOTD-ALLOCATION was referenced by toplevel forms ;;; SLOTD-TYPE was referenced by toplevel forms ;;; CLASS-SLOTS was referenced by toplevel forms ;;; CLASSP was referenced by SUBCLASSP ;;; CLASS-CLASS-PRECEDENCE-LIST was referenced by SUBCLASSP ;;; CLASS-PRECEDENCE-LIST was referenced by SUB-CLASS-P ;;; CLASS-NO-OF-INSTANCE-SLOTS was referenced by toplevel forms Loading binary of Slots... Compiling Init... ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/init.lisp" ;;; Writing binary file "init.vbin" ;;; Warning: The following functions are not known to be defined: ;;; CLASS-PROTOTYPE was referenced by toplevel forms ;;; CLASS-ALL-DEFAULT-INITARGS was referenced by toplevel forms ;;; CLASS-OF was referenced by toplevel forms ;;; CLASS-SLOTS was referenced by toplevel forms ;;; SLOTD-NAME was referenced by toplevel forms ;;; SLOTD-ALLOCATION was referenced by toplevel forms ;;; SLOTD-INITARGS was referenced by toplevel forms ;;; SLOTD-INITFUNCTION was referenced by toplevel forms Loading binary of Init... Compiling Defclass... ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/defclass.lisp" ;;; Writing binary file "defclass.vbin" ;;; Warning: The following functions are not known to be defined: ;;; CLASS-PROTOTYPE was referenced by DEFCLASS, LOAD-DEFCLASS ;;; CLASS-NAME was referenced by toplevel forms ;;; CLASS-OF was referenced by toplevel forms ;;; CLASS-FOR-REDEFINITION was referenced by toplevel forms ;;; |SETF CLASS-NAME| was referenced by toplevel forms ;;; CLASS-LOCAL-SUPERS was referenced by toplevel forms ;;; CLASS-FORWARD-REFERENCED-SUPERS was referenced by toplevel forms ;;; CLASSP was referenced by toplevel forms ;;; |SETF CLASS-LOCAL-SUPERS| was referenced by toplevel forms ;;; CHECK-SUPER-METACLASS-COMPATIBILITY was referenced by ;;; toplevel forms ;;; CLASS-DIRECT-SUBCLASSES was referenced by toplevel forms ;;; |SETF CLASS-DIRECT-SUBCLASSES| was referenced by toplevel forms ;;; FORWARD-REFERENCED-CLASS-P was referenced by toplevel forms ;;; |SETF CLASS-FORWARD-REFERENCED-SUPERS| was referenced by ;;; toplevel forms ;;; |SETF CLASS-OPTIONS| was referenced by toplevel forms ;;; |SETF CLASS-LOCAL-SLOTS| was referenced by toplevel forms ;;; CLASS-OPTIONS was referenced by toplevel forms ;;; SLOTD-NAME was referenced by MERGE-ACCESSOR/READER-PREFIXES, ;;; toplevel forms ;;; SLOTD-READERS was referenced by MERGE-ACCESSOR/READER-PREFIXES ;;; |SETF SLOTD-READERS| was referenced by ;;; MERGE-ACCESSOR/READER-PREFIXES ;;; SLOTD-WRITERS was referenced by MERGE-ACCESSOR/READER-PREFIXES ;;; |SETF SLOTD-WRITERS| was referenced by ;;; MERGE-ACCESSOR/READER-PREFIXES ;;; CLASS-PRECEDENCE-LIST was referenced by toplevel forms Loading binary of Defclass... Compiling Std-Class... ;;; GC: 126310 words [505240 bytes] of dynamic storage in use. ;;; 331416 words [1325664 bytes] of free storage available before a GC. ;;; 789142 words [3156568 bytes] of free storage available if GC is disabled. ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/std-class.lisp" ;;; Expanding Reserved Memory ;;; GC: 169512 words [678048 bytes] of dynamic storage in use. ;;; 288214 words [1152856 bytes] of free storage available before a GC. ;;; 745940 words [2983760 bytes] of free storage available if GC is disabled. ;;; While compiling NAMED-OBJECT-PRINT-FUNCTION ;;; Warning: Misplaced declaration: (IGNORE DEPTH) ;;; Writing binary file "std-class.vbin" ;;; Warning: The following functions are not known to be defined: ;;; METHOD-GENERIC-FUNCTION was referenced by toplevel forms ;;; CLASS-PRECEDENCE-LIST was referenced by toplevel forms, ;;; UPDATE-SLOTS--CLASS ;;; |SETF CLASS-PRECEDENCE-LIST| was referenced by toplevel forms ;;; CLEAR-PRECEDENCE-DAG-CACHE was referenced by toplevel forms ;;; CLASS-DIRECT-SUBCLASSES was referenced by toplevel forms ;;; CLASS-FORWARD-REFERENCED-SUPERS was referenced by toplevel forms ;;; |SETF CLASS-FORWARD-REFERENCED-SUPERS| was referenced by ;;; toplevel forms ;;; |SETF CLASS-ALL-DEFAULT-INITARGS| was referenced by toplevel forms ;;; METHOD-TYPE-SPECIFIERS was referenced by toplevel forms ;;; CLASS-CONSTRUCTORS was referenced by toplevel forms ;;; INSTALL-LAZY-CONSTRUCTOR-INSTALLER was referenced by toplevel forms ;;; CLASS-LOCAL-SLOTS was referenced by UPDATE-SLOTS--CLASS, ;;; toplevel forms ;;; CLASS-OPTIONS was referenced by UPDATE-SLOTS--CLASS ;;; SLOTD-ALLOCATION was referenced by UPDATE-SLOTS--CLASS, ;;; toplevel forms ;;; CLASS-WRAPPER was referenced by UPDATE-SLOTS--CLASS, toplevel forms ;;; |SETF CLASS-WRAPPER| was referenced by UPDATE-SLOTS--CLASS, ;;; toplevel forms ;;; |SETF CLASS-NO-OF-INSTANCE-SLOTS| was referenced by ;;; UPDATE-SLOTS--CLASS ;;; |SETF CLASS-SLOTS| was referenced by UPDATE-SLOTS--CLASS ;;; SLOTD-NAME was referenced by UPDATE-SLOTS--CLASS, ;;; UPDATE-SLOT-ACCESSORS--CLASS-1, toplevel forms ;;; SLOTD-INITFUNCTION was referenced by UPDATE-SLOTS--CLASS, ;;; toplevel forms ;;; CLASS-SLOTS was referenced by UPDATE-SLOT-ACCESSORS--CLASS ;;; SLOTD-TYPE was referenced by UPDATE-SLOT-ACCESSORS--CLASS-1, ;;; toplevel forms ;;; SLOTD-READERS was referenced by UPDATE-SLOT-ACCESSORS--CLASS-1, ;;; toplevel forms ;;; SLOTD-WRITERS was referenced by UPDATE-SLOT-ACCESSORS--CLASS-1, ;;; toplevel forms ;;; INVALIDATE-GENERIC-FUNCTION was referenced by toplevel forms ;;; SLOTD-KEYWORD was referenced by toplevel forms ;;; SLOTD-INITFORM was referenced by toplevel forms ;;; SLOTD-INITARGS was referenced by toplevel forms ;;; CLASS-NAME was referenced by ;;; #:CLASS-PRECEDENCE-DESCRIPTION-PRINT-FUNCTION, CPL-ERROR, ;;; CPL-FORWARD-REFERENCED-CLASS-ERROR, FORMAT-CYCLE-REASONS, ;;; NAMED-OBJECT-PRINT-FUNCTION ;;; CLASS-LOCAL-SUPERS was referenced by COMPUTE-STD-CPL, ;;; COMPUTE-STD-CPL-PHASE-1, COMPUTE-STD-CPL-PHASE-3, ;;; FIND-SUPERCLASS-CHAIN ;;; CLASS-OF was referenced by toplevel forms, ;;; NAMED-OBJECT-PRINT-FUNCTION ;;; CLASS-CLASS-PRECEDENCE-LIST was referenced by CLASSP, ;;; FORWARD-REFERENCED-CLASS-P Loading binary of Std-Class... Compiling Points... ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/points.lisp" ;;; GC: 183376 words [733504 bytes] of dynamic storage in use. ;;; 274350 words [1097400 bytes] of free storage available before a GC. ;;; 732076 words [2928304 bytes] of free storage available if GC is disabled. ;;; Expanding Reserved Memory ;;; GC: 179502 words [718008 bytes] of dynamic storage in use. ;;; 278224 words [1112896 bytes] of free storage available before a GC. ;;; 735950 words [2943800 bytes] of free storage available if GC is disabled. ;;; GC: 278062 words [1112248 bytes] of dynamic storage in use. ;;; 179664 words [718656 bytes] of free storage available before a GC. ;;; 637390 words [2549560 bytes] of free storage available if GC is disabled. ;;; GC: 284698 words [1138792 bytes] of dynamic storage in use. ;;; 173028 words [692112 bytes] of free storage available before a GC. ;;; 630754 words [2523016 bytes] of free storage available if GC is disabled. ;;; Writing binary file "points.vbin" ;;; Warning: The following functions are not known to be defined: ;;; GENERIC-FUNCTION-METHODS was referenced by ;;; COMPUTE-COMBINATION-POINTS ;;; METHOD-TYPE-SPECIFIERS was referenced by COMPUTE-COMBINATION-POINTS ;;; CLASS-OF was referenced by COMPUTE-COLUMN-SPECIALIZERS ;;; CLASS-PRECEDENCE-LIST was referenced by ;;; ADJUST-POINTS-FOR-EQL-METHODS, COMPUTE-PRECEDENCE-DAG, ;;; COMPUTE-PRECEDENCE-DAG-PASS-1, COMPUTE-PRECEDENCE-DAG-PASS-2 ;;; CLASS-LOCAL-SUPERS was referenced by COMPUTE-PRECEDENCE-DAG-PASS-1 ;;; CLASS-DIRECT-SUBCLASSES was referenced by ;;; COMPUTE-PRECEDENCE-DAG-PASS-1 Loading binary of Points... Compiling Braid1... ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/braid1.lisp" ;;; GC: 173108 words [692432 bytes] of dynamic storage in use. ;;; 284618 words [1138472 bytes] of free storage available before a GC. ;;; 742344 words [2969376 bytes] of free storage available if GC is disabled. ;;; Writing binary file "braid1.vbin" ;;; Warning: The following function is not known to be defined: ;;; CLASS-NAME was referenced by toplevel forms Loading binary of Braid1... Compiling Fsc... ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/fsc.lisp" ;;; Writing binary file "fsc.vbin" Loading binary of Fsc... Compiling Methods... ;;; Expanding Reserved Memory ;;; GC: 164812 words [659248 bytes] of dynamic storage in use. ;;; 292914 words [1171656 bytes] of free storage available before a GC. ;;; 750640 words [3002560 bytes] of free storage available if GC is disabled. ;;; GC: 164812 words [659248 bytes] of dynamic storage in use. ;;; 292914 words [1171656 bytes] of free storage available before a GC. ;;; 750640 words [3002560 bytes] of free storage available if GC is disabled. ;;; GC: 164812 words [659248 bytes] of dynamic storage in use. ;;; 276530 words [1106120 bytes] of free storage available before a GC. ;;; 717872 words [2871488 bytes] of free storage available if GC is disabled. ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/methods.lisp" ;;; GC: 173384 words [693536 bytes] of dynamic storage in use. ;;; 267958 words [1071832 bytes] of free storage available before a GC. ;;; 709300 words [2837200 bytes] of free storage available if GC is disabled. ;;; GC: 197008 words [788032 bytes] of dynamic storage in use. ;;; 244334 words [977336 bytes] of free storage available before a GC. ;;; 685676 words [2742704 bytes] of free storage available if GC is disabled. ;;; Writing binary file "methods.vbin" ;;; Warning: The following functions are not known to be defined: ;;; FLUSH-GENERIC-FUNCTION-CACHES-INTERNAL was referenced by ;;; FLUSH-GENERIC-FUNCTION-CACHES ;;; MAKE-NO-METHODS-DCODE was referenced by ;;; COMPUTE-DISCRIMINATOR-CODE-1 ;;; MAKE-DEFAULT-METHOD-ONLY-DCODE was referenced by ;;; COMPUTE-DISCRIMINATOR-CODE-1 ;;; MAKE-ALL-STD-CLASS-READERS-DCODE was referenced by ;;; COMPUTE-DISCRIMINATOR-CODE-1 ;;; MAKE-ALL-STD-CLASS-WRITERS-DCODE was referenced by ;;; COMPUTE-DISCRIMINATOR-CODE-1 ;;; MAKE-CHECKING-DCODE was referenced by COMPUTE-DISCRIMINATOR-CODE-1 ;;; MAKE-CACHING-DCODE was referenced by COMPUTE-DISCRIMINATOR-CODE-1 ;;; COMPUTE-COMBINED-METHODS was referenced by NOTICE-METHODS-CHANGE-1, ;;; COMPUTE-APPLICABLE-METHODS-INTERNAL ;;; EQL-METHOD-RUNTIME-INTERNAL was referenced by ;;; COMPUTE-APPLICABLE-METHODS-INTERNAL Loading binary of Methods... ;;; GC: 182398 words [729592 bytes] of dynamic storage in use. ;;; 258944 words [1035776 bytes] of free storage available before a GC. ;;; 700286 words [2801144 bytes] of free storage available if GC is disabled. ;;; GC: 182984 words [731936 bytes] of dynamic storage in use. ;;; 258358 words [1033432 bytes] of free storage available before a GC. ;;; 699700 words [2798800 bytes] of free storage available if GC is disabled. Compiling Combin... ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/combin.lisp" ;;; Writing binary file "combin.vbin" Loading binary of Combin... Compiling Dcode... ;;; Reading source file "/usrh2/rfb/lisp/pcl/source/dcode.lisp" ;;; GC: 185836 words [743344 bytes] of dynamic storage in use. ;;; 255506 words [1022024 bytes] of free storage available before a GC. ;;; 696848 words [2787392 bytes] of free storage available if GC is disabled. ;;; Expanding Reserved Memory ;;; GC: 280882 words [1123528 bytes] of dynamic storage in use. ;;; 160460 words [641840 bytes] of free storage available before a GC. ;;; 601802 words [2407208 bytes] of free storage available if GC is disabled. ;;; GC: 280882 words [1123528 bytes] of dynamic storage in use. ;;; 160460 words [641840 bytes] of free storage available before a GC. ;;; 601802 words [2407208 bytes] of free storage available if GC is disabled. ;;; GC: 280882 words [1123528 bytes] of dynamic storage in use. ;;; 144076 words [576304 bytes] of free storage available before a GC. ;;; 569034 words [2276136 bytes] of free storage available if GC is disabled. ;;; GC: 306812 words [1227248 bytes] of dynamic storage in use. ;;; 118146 words [472584 bytes] of free storage available before a GC. ;;; 543104 words [2172416 bytes] of free storage available if GC is disabled. ;;; GC: 317046 words [1268184 bytes] of dynamic storage in use. ;;; 107912 words [431648 bytes] of free storage available before a GC. ;;; 532870 words [2131480 bytes] of free storage available if GC is disabled. ;;; GC: 349816 words [1399264 bytes] of dynamic storage in use. ;;; 75142 words [300568 bytes] of free storage available before a GC. ;;; 500100 words [2000400 bytes] of free storage available if GC is disabled. ;;; GC: 346080 words [1384320 bytes] of dynamic storage in use. ;;; 78878 words [315512 bytes] of free storage available before a GC. ;;; 503836 words [2015344 bytes] of free storage available if GC is disabled. ;;; GC: 375456 words [1501824 bytes] of dynamic storage in use. ;;; 49502 words [198008 bytes] of free storage available before a GC. ;;; 474460 words [1897840 bytes] of free storage available if GC is disabled. ;;; GC: 387178 words [1548712 bytes] of dynamic storage in use. ;;; 37780 words [151120 bytes] of free storage available before a GC. ;;; 462738 words [1850952 bytes] of free storage available if GC is disabled. ;;; GC: 403962 words [1615848 bytes] of dynamic storage in use. ;;; 20996 words [83984 bytes] of free storage available before a GC. ;;; 445954 words [1783816 bytes] of free storage available if GC is disabled. ;;; GC: 413954 words [1655816 bytes] of dynamic storage in use. ;;; 11004 words [44016 bytes] of free storage available before a GC. ;;; 435962 words [1743848 bytes] of free storage available if GC is disabled. ;;; GC: 419348 words [1677392 bytes] of dynamic storage in use. ;;; 5610 words [22440 bytes] of free storage available before a GC. ;;; 430568 words [1722272 bytes] of free storage available if GC is disabled. ;;; GC: 423046 words [1692184 bytes] of dynamic storage in use. ;;; 1912 words [7648 bytes] of free storage available before a GC. ;;; 426870 words [1707480 bytes] of free storage available if GC is disabled. ;;; GC: 423390 words [1693560 bytes] of dynamic storage in use. ;;; 1568 words [6272 bytes] of free storage available before a GC. ;;; 426526 words [1706104 bytes] of free storage available if GC is disabled. ;;; GC: 424096 words [1696384 bytes] of dynamic storage in use. ;;; 862 words [3448 bytes] of free storage available before a GC. ;;; 425820 words [1703280 bytes] of free storage available if GC is disabled. ;;; GC: 424286 words [1697144 bytes] of dynamic storage in use. ;;; 672 words [2688 bytes] of free storage available before a GC. ;;; 425630 words [1702520 bytes] of free storage available if GC is disabled. ;;; GC: 424370 words [1697480 bytes] of dynamic storage in use. ;;; 588 words [2352 bytes] of free storage available before a GC. ;;; 425546 words [1702184 bytes] of free storage available if GC is disabled. ;;; GC: 424352 words [1697408 bytes] of dynamic storage in use. ;;; 606 words [2424 bytes] of free storage available before a GC. ;;; 425564 words [1702256 bytes] of free storage available if GC is disabled. ;;; GC: 424750 words [1699000 bytes] of dynamic storage in use. ;;; 208 words [832 bytes] of free storage available before a GC. ;;; 425166 words [1700664 bytes] of free storage available if GC is disabled. ;;; GC: 424942 words [1699768 bytes] of dynamic storage in use. ;;; 16 words [64 bytes] of free storage available before a GC. ;;; 424974 words [1699896 bytes] of free storage available if GC is disabled. ;;; GC: 424944 words [1699776 bytes] of dynamic storage in use. ;;; 14 words [56 bytes] of free storage available before a GC. ;;; 424972 words [1699888 bytes] of free storage available if GC is disabled. ;;; GC required to reorganize memory for GC disabling ;;; GC: 424944 words [1699776 bytes] of dynamic storage in use. ;;; 14 words [56 bytes] of free storage available before a GC. ;;; 424972 words [1699888 bytes] of free storage available if GC is disabled. >>Error: Not enough storage after GC. LUCID:COMPILE-FORM: :A Abort to Lisp Top Level :C GC will be disabled: CONSers will use the storage normally reserved for copying currently allocated dynamic storage. The next GC might fail. -> :c GC will be disabled: CONSers will use the storage normally reserved for copying currently allocated dynamic storage. The next GC might fail. >>Error: There are 195584 words left and GC is disabled. LUCID:COMPILE-FORM: :A Abort to Lisp Top Level :C GC Will Remain Disabled -> :c GC Will Remain Disabled >>Error: There are 97286 words left and GC is disabled. LUCID:COMPILE-FORM: :A Abort to Lisp Top Level :C GC Will Remain Disabled -> :C GC Will Remain Disabled >>Error: There are 48160 words left and GC is disabled. (LUCID::DEFLAP-DECODE-OPERAND LUCID::DEFLAP LUCID::VAX): :A Abort to Lisp Top Level :C GC Will Remain Disabled -> :c GC Will Remain Disabled >>Error: There are 15362 words left and GC is disabled. This is the last warning before memory is exhausted. (LUCID::DEFLAP-MACRO LUCID::SV-SETUP LUCID::VAX): :A Abort to Lisp Top Level :C GC Will remain Disabled -> :c GC Will remain Disabled ;;; Ran Out of Memory while GC Disabled Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA01398; Mon, 9 Oct 89 18:56:12 -0700 Received: from Salvador.ms by ArpaGateway.ms ; 09 OCT 89 18:49:59 PDT Return-Path: Redistributed: commonloops.pa Received: from neptune.cs.ucla.edu ([131.179.128.32]) by Xerox.COM ; 09 OCT 89 18:48:45 PDT Return-Path: Received: from LocalHost by neptune.cs.ucla.edu (Sendmail 5.59/2.20) id AA01078; Mon, 9 Oct 89 18:50:45 PDT Message-Id: <8910100150.AA01078@neptune.cs.ucla.edu> To: commonloops.pa@Xerox.COM Cc: sara@CS.UCLA.EDU Subject: Bug in Victoria Day PCL Date: Mon, 09 Oct 89 18:50:43 PDT From: poman@CS.UCLA.EDU We are running the Victoria Day PCL under LUCID 3.0.2 on Sun 3/60 Sun OS4.0. We discovered the following problem : >(defclass a1 () ()) NIL > (defmethod initialize-instance :after ((o a1) &rest a) (print "in a1")) NIL > (defclass a2 () ()) NIL > (defmethod initialize-instance :after ((o a2) &rest a) (print "in a2")) NIL > (defclass a3 (a1 a2) ()) NIL > (make-instance 'a3) "in a1" # The "initialize instance :after" method for the superclass a2 is NOT called. However, if we define all classes before defining the after methods. It works fine. For example: > (defclass a4 () ()) NIL > (defclass a5 () ()) NIL > (defclass a6 (a4 a5) ()) NIL > (defmethod initialize-instance :after ((o a4) &rest a) (print "in a4")) NIL > (defmethod initialize-instance :after ((o a5) &rest a) (print "in a5")) NIL > (make-instance 'a6) "in a5" "in a4" # Does anyone have a similar problem? Any suggestions or fixes are appreciated -Richard Leung UCLA Computer Science Dept. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA23827; Tue, 10 Oct 89 19:37:52 -0700 Received: from Catawba.ms by ArpaGateway.ms ; 10 OCT 89 19:38:21 PDT Return-Path: Redistributed: commonloops.pa Received: from arpa.att.com ([192.20.225.1]) by Xerox.COM ; 10 OCT 89 19:36:57 PDT From: lgm%ihlpf.uucp@att.att.com Date: Tue, 10 Oct 89 13:52 CDT >From: ihlpf!lgm (Lawrence G Mayka +1 312 713 5166) To: commonloops.pa@Xerox.COM Subject: CLOS Workshop - papers? Message-Id: <891010-193821-1674@Xerox> Now that OOPSLA is over, please let us know when the collected position papers of the CLOS Workshop will be available by mail and how we can secure a copy. Thanks. Lawrence G. Mayka AT&T Bell Laboratories lgm@ihlpf.att.com Standard disclaimer. Received: from Sail.Stanford.EDU by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA01321; Thu, 12 Oct 89 07:27:59 -0700 Received: from RELAY.CS.NET by SAIL.Stanford.EDU with TCP; 12 Oct 89 07:26:21 PDT Received: from relay2.cs.net by RELAY.CS.NET id ad07643; 12 Oct 89 9:27 EDT Received: from sorak.kaist.ac.kr by RELAY.CS.NET id aa09325; 12 Oct 89 10:21 EDT Received: by sorak.kaist.ac.kr (5.51/4.12) id AA15856; Thu, 12 Oct 89 16:22:23+0900 Return-Path: Received: by csd.kaist.ac.kr (4.12/08-14-86) id AA01734; Thu, 12 Oct 89 16:51:34+0900 Date: Thu, 12 Oct 89 16:51:34+0900 From: DongHyeon Lee Message-Id: <8910120751.AA01734@csd.kaist.ac.kr> To: Common-Lisp-Object-System@SAIL.STANFORD.EDU Subject: Draft 88-003 I am a MS student in Computer Science Department. I go to KAIST (Korea Advance Institute of Science and Technology). I am implementing the CLOS at KCL. I don't have the "Common Lisp Object System Specification 3. Meta Object Protocol," Draft X3JI3 Document 88-003 (and 87-003 too). I have only 88-002 specification. How do I get the 88-003? Can you send it to me? Please inform to me. and If you need, bill me. Thanks in advances. I am looking forward to your favor. Dong-hyeon Lee __________________________________________________________________________ Postal address : Artificial Intelligence Laboratory, Department of Computer Science, KAIST, P.O.Box 150, Cheongryang, Seoul, 130-650, Republic of Korea. E-mail address : dhlee@csd.kaist.ac.kr dhlee%csd.kaist.ac.kr@relay.cs.net dhlee%csd.kaist.ac.kr@uunet.uu.net Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA03323; Mon, 16 Oct 89 19:02:12 -0700 Received: from Chardonnay.ms by ArpaGateway.ms ; 16 OCT 89 17:48:07 PDT Return-Path: <@SKAGIT.atc.boeing.com.ARPANET:snicoud@atc.boeing.com> Redistributed: commonloops.pa Received: from atc.boeing.com ([130.42.28.80]) by Xerox.COM ; 16 OCT 89 17:44:44 PDT Received: by atc.boeing.com on Mon, 16 Oct 89 17:38:23 PDT Date: Mon, 16 Oct 89 17:47 PDT From: Stephen Nicoud Subject: FLAVORS -> CLOS To: CommonLoops.pa@Xerox.COM Message-Id: <19891017004754.7.SLN@SKAGIT.atc.boeing.com> Now that most Lisp vendors will soon be releasing their own versions of CLOS, we will be faced with the task of converting our current systems (using Flavors) to CLOS. We've identified several items which will need attention, but we're looking for any additional issues which we have not addressed. My question is, what advice can you give us about moving code from FLAVORS (on Symbolics, Explorer, and Sun/Lucid) to CLOS? What are the "gotchas" we need to look out for? What are the neat tricks to converting? What's the appropriate implemenation "style" to maintain? Thanks for your ideas, Steve Nicoud Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA21029; Tue, 17 Oct 89 10:22:14 -0700 Received: from Salvador.ms by ArpaGateway.ms ; 17 OCT 89 10:04:54 PDT Return-Path: Redistributed: commonloops.pa Received: from ti.com ([128.247.159.141]) by Xerox.COM ; 17 OCT 89 10:02:43 PDT Received: by ti.com id AA04276; Tue, 17 Oct 89 12:03:23 CDT Received: from Kelvin by tilde id AA22961; Tue, 17 Oct 89 11:46:20 CDT Message-Id: <2833634714-3917823@Kelvin> Sender: GRAY@kelvin.csc.ti.com Date: Tue, 17 Oct 89 11:45:14 CDT From: David N Gray To: Stephen Nicoud Cc: CommonLoops.pa@Xerox.COM Subject: Re: FLAVORS -> CLOS In-Reply-To: Msg of Mon, 16 Oct 89 17:47 PDT from Stephen Nicoud > My question is, what advice can you give us about moving code from > FLAVORS (on Symbolics, Explorer, and Sun/Lucid) to CLOS? What are the > "gotchas" we need to look out for? What are the neat tricks to > converting? What's the appropriate implemenation "style" to maintain? There is a utility shipped with Explorer release 6.0 that can help with conversion by converting DEFFLAVOR, DEFMETHOD, SEND, etc. into their CLOS equivalents. See file "SYS:PUBLIC.Z-TO-C-TRANSLATOR;-READ-ME-.TEXT" for information. Some of the problems I have encountered that require manual recoding after the mechanical translation are: * Use of special variable SELF outside a method. * Methods with argument lists that CLOS does not consider congruent. With Flavors, it is common for before or after methods to use &REST IGNORE to disregard irrelevant arguments, but CLOS requires enumerating the arguments the same on every method. * Use of the same message name with different arguments lists for different flavors. * Use of operations :WHICH-OPERATIONS, :OPERATION-HANDLED-P, and :SEND-IF-HANDLES, which don't have a direct correspondence in CLOS. These require some redesign of the program, typically by defining a default method to do whatever you want to do if the operation isn't handled. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA10061; Mon, 23 Oct 89 17:35:17 -0700 Received: from Cabernet.ms by ArpaGateway.ms ; 23 OCT 89 17:35:25 PDT Return-Path: <@RELAY.CS.NET:dhlee@csd.kaist.ac.kr> Redistributed: commonloops.pa Received: from RELAY.CS.NET ([192.31.103.4]) by Xerox.COM ; 22 OCT 89 21:25:48 PDT Received: from relay2.cs.net by RELAY.CS.NET id ae02050; 22 Oct 89 23:25 EDT Received: from sorak.kaist.ac.kr by RELAY.CS.NET id ac21890; 23 Oct 89 0:22 EDT Received: by sorak.kaist.ac.kr (5.51/4.12) id AA22144; Mon, 23 Oct 89 09:54:27+0900 Return-Path: Received: by csd.kaist.ac.kr (4.12/08-14-86) id AA20446; Mon, 23 Oct 89 10:24:08+0900 Date: Mon, 23 Oct 89 10:24:08+0900 From: DongHyeon Lee Message-Id: <8910230124.AA20446@csd.kaist.ac.kr> To: CommonLoops.pa@Xerox.COM Subject: Please delete me!@ Please delete my name and address from your mailing list. Received: from Sail.Stanford.EDU by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA05488; Wed, 25 Oct 89 10:33:26 -0700 Received: from STONY-BROOK.SCRC.Symbolics.COM by SAIL.Stanford.EDU with TCP; 25 Oct 89 10:18:41 PDT Received: from EUPHRATES.SCRC.Symbolics.COM by STONY-BROOK.SCRC.Symbolics.COM via CHAOS with CHAOS-MAIL id 681390; 25 Oct 89 13:16:47 EDT Date: Wed, 25 Oct 89 13:16 EDT From: David A. Moon Subject: Query on ISSUE: LOAD-OBJECTS To: Jon L White Cc: X3J13@SAIL.Stanford.edu, Common-Lisp-Object-System@SAIL.Stanford.edu In-Reply-To: <8910251456.AA28268@bhopal> Message-Id: <19891025171650.2.MOON@EUPHRATES.SCRC.Symbolics.COM> Date: Wed, 25 Oct 89 07:56:12 PDT From: Jon L White It says somewhere in this proposal: MAKE-LOAD-FORM of an object of * metaclass STANDARD-CLASS or STRUCTURE-CLASS for which no user-defined method is applicable signals an error. Surely this can't mean "user-defined", since that would effectively prohibit an implementation from using STANDARD-OBJECTs for internal purposes. At the asterisk above I would insert "user-defined class and". Perhaps the next sentence in that paragraph is all that is really needed: It is valid to implement this [default error-signaling behaviour] either by defining default methods on STANDARD-OBJECT and STRUCTURE-OBJECT that signal an error or by having no applicable method for those classes. with the implication that user-defined classes of metaclass either STANDARD-CLASS or STRUCTURE-CLASS will see no other system-provided methods on MAKE-LOAD-FORM. Yes, the idea was that user-defined objects would not inherit a method that would do something they didn't want. I don't know whether MAKE-LOAD-FORM has been put into the specification yet. Perhaps the best way to address this issue would be to make the writeup for MAKE-LOAD-FORM speak about conforming programs, rather than about implementations. Then it wouldn't accidentally imply anything about what implementations can and cannot do with their own internal objects. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA16541; Tue, 31 Oct 89 20:22:53 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 31 OCT 89 19:37:16 PST Date: Tue, 31 Oct 89 19:35 PST From: Gregor.pa@Xerox.COM Subject: evaluating CLOS performance To: CommonLoops.pa@Xerox.COM, X3J13@Sail.Stanford.edu Fcc: BD:>Gregor>mail>outgoing-mail-7.text.newest Message-Id: <19891101033501.1.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no (apologies for the duplicate messages some of you will receive) There have been a number of messages in different forums lately about CLOS implementation. David Moon's message to the X3J13 mailing list addresses some issues having to do with the implementation of method combination. This message addresses some issues having to do with proper evaluation of the performance of CLOS in general, and PCL in particular. While I have a number of things to say about this, there are three major points I want to stress: 1) Performance comparisons are difficult. It is important to compare like functionalities, and be sure you understand the "semantics" of the operation you are measuring. 2) PCL is not CLOS. PCL is a portable implementation with some interesting architectural ideas, I believe it can be made to perform relatively well, but most of the current ports do not perform adequately. 3) Not all ports of PCL are created equal. The P in PCL means that PCL can be ported relatively easily, not that it is written in pure Common Lisp. There are many things which PCL would like to do, which Common Lisp compilers are reluctant to let me do. In any given Common Lisp, it takes work to get the compiler "out of PCL's way". In some Common Lisps this process is farther along that in others, but in no Common Lisp is it far enough along. The rest of this message discusses a number of aspects of the CLOS language and PCL implementation, providing various insights and evidence to support these three points. An important point about CLOS which this message will develop is that because CLOS is a tight integration with Common Lisp, different but similar features work together well. defstruct and defclass define different kinds of classes, but methods can be defined on both kinds -- this makes it possible to choose the kind of class based on one set of requirements and use generic functions regardless of the decision. defun and defmethod define different kinds of functions, but both are called in the same way -- this makes it possible to choose the kind of function based on one set of requirements but have the callers be able to use it the same way regardless of the decision. In short, this makes it possible for a programmer using CLOS-extended Common Lisp to choose just exactly the functionality they want in any given case. The language provides a range of functionalities which all fit together. <> So, when making performance comparisons, it is important to compare similar functionalities -- this corresponds to the common folk wisdom that you shouldn't compare apples and oranges. A performance comparison should always include a functionality comparison. Two common problem areas are field access and procedure invocation. *** Field Access *** Let's start with the example of field access. Many people try to make comparisons among the performance of defstruct field access, slot access and calling accessor generic functions. Following the principle outlined above it is important to understand the performance and functionality of the many different field access mechanisms provided: Given the following definitions: (defstruct foo (a 1)) (defclass bar () ((a :initform 1 :accessor bar-a))) (defvar *foo* (make-foo)) (defvar *bar* (make-instance 'bar)) Let us look at the following forms: (defun fun () (foo-a *foo*) ;Form 1 (slot-value *bar* 'a) ;Form 2 (bar-a *bar*)) ;Form 3 (defmethod meth ((b bar)) (slot-value *bar* 'a) ;Form 4 (bar-a *bar*)) ;Form 5 The rest of this section looks at comparisons among forms 1 - 5. Each of these forms has different functionality AND different performance. Form 1: This is a defstruct field access. In many implementations, this compiles open without any type checking, so the time required is about one memory read. The important points about the functionality of this operation are: it (usually) does no error checking; it only supports single inheritance, and because it compiles open you must recompile all your code if you redefine it. Form 2: This is a call to slot-value, where the object argument is a an instance of a standard class (a class defined by defclass without using the :metaclass option). Moreover, this call to slot-value appears in a context in which the compiler cannot infer anything about the class of the object argument. In the current version of PCL, this takes a long time, I don't know how long. In the next version, this should take an amount of time comparable to 3 or 4 function calls, but see my comments later about porting PCL. I haven't though very much about what the fastest one could expect this to be is. The important points about the functionality of this operation are: it does complete error checking (is its argument an object, does it have a slot by this name, is that slot bound); the class involved supports multiple inheritance; it doesn't compile open, so you can change the class definition later; you can define methods on slot-value-using-class which would affect this operation -- so the slot access is specializable. Form 3: This is a call to an automatically generated accessor of a standard class. In the next version of PCL, this call should take time between that of one and two function calls, but see my comments later about porting PCL. The important points about the functionality of this operation are: this is a full call to a real generic function -- you can define other methods on this generic function and thereby specialize it; error checking happens. Form 4: This is like form 2 with the exception that the form appears in a context where the compiler can infer a lot about the object argument. In the next version of PCL, this should take time between 2 and 3 memory reads, but see my comments later about porting PCL. Most implementations should provide performance for this on the order of two memory reads. Form 5: This is like form 3 with the exception that the form appears in a context where the compiler can infer a lot about the object argument. PCL will not do any better in this situation, but other implementations should be able to get performance similar to that for form 4. The point is that these operations have performance and functionality differences. The appropriate mechanism must be selected, by the programmer, to get the functionality/performance tradeoff needed in each situation. Because CLOS-extended Common Lisp makes it possible to define methods on classes defined by defstruct as well as classes defined by defstruct, decisions about how to get field access don't affect whether it will be possible to use generic functions. This is an important point about the tight integration of CLOS in Common Lisp. *** Procedure Invocation and Type Dispatch *** The second common comparison is between generic function invocation and ordinary function invocation. This comparison is also fraught with peril. Given the following definitions: (defstruct foo) (defstruct bar) (defclass baz () ()) (defclass bee () ()) (defun f1 (x) (defun f2 (x) (defun f3 (x) (etypecase x (etypecase x (etypecase x (foo ) (baz ) (foo ) (bar ))) (bee ))) (baz ))) (defmethod gf1 ((x foo)) ) (defmethod gf1 ((x bar)) ) (defmethod gf2 ((x baz)) ) (defmethod gf2 ((x bee)) ) (defmethod gf3 ((x foo)) ) (defmethod gf3 ((x baz)) ) The most important point here is to notice that we must compare the performance of a generic function call to the performance of an ordinary function call PLUS AN ETYPECASE. It isn't appropriate to compare the performance of an ordinary function call to a generic function call because a generic function call does much more than a function call. If, in a place in your code all you need is an ordinary function, then that is what you should use, if what you need is a function call plus some form of type dispatch you usually want to use generic functions. Basically, when invoking a form like (f1 ) or (gf2 ), you should expect the time it takes to get to the corresponding mark above to be the same. In many implementations, people will do a better job of optimizing generic function call than typecase, so you may even get better performance out of generic function call than typecase. (See comments on PCL later). Returning for a moment to functionality, generic functions provide a great deal of functionality that ordinary functions plus typecase doesn't. The most obvious is that the definitions of the individual cases (the forms) above can be spread around -- individual defmethod forms can appear in separate places. Also, defmethod forms can be added later without having access to the source of the previously existing defmethod forms. Also, generic functions implement inheritance automatically. Also, generic functions implement method combination automatically. Taken together, the discussion of field access and the implementation of type specific operations show that some of the decisions a user needs to make are: Field Access: Do I want multiple or single inheritance? Do I want to be able to define methods on slot accessors? Do I want specializable primitive slot access? Procedure invocation and type dispatch? Do I want genericity or just simple procedure call? Do I want automatic implementation of inheritance? Do I want automatic implementation of method combination? It is the answers to these kinds of questions which dictate which language feature you should use in each particular case. Because CLOS is a tight integration with Common Lisp, the different language features work seamlessly together, that makes it possible for you, the programmer to choose just the semantics you want in each case. *** Some comments on PCL *** This section provides one small example of the difference between PCL's architectural performance possibilities and what happens in the current ports. By "architectural performance possibilities", I mean what PCL should be able to do if I had my hands on the sources of the underlying lisp (and I had a lot more time than I do). By "what happens in the current ports" I mean the performance of the current ports of PCL and the port-specific reasons why that is different from the architectural possibilities. This discussion is limited to PCL on stock hardware, PCL was never intended to be at all competitive on Lisp machines. In particular we will look at a small aspect of one of PCL's major tasks, implementing method lookup (forsimplicity, this discussion ignores method combination.) The essence of method lookup is that when a generic function is called, the classes of the arguments is used to select an appropriate method to be called and then that method is called. This means that in the heart of method lookup, what PCL is doing is checking the class of arguments, finding a method function to call, and then calling that method function. All of this happens inside the PCL runtime, where the datastructures floating around have already been checked for errors. This means that many of the operations involved in method lookup require no error checking. For example, PCL can be sure that the method function it will call is a legal function, and moreover (using a simple trick) can make sure that it is a compiled function. So, once the method function is looked up, the actual call to it requires no error checking. Looking in the PCL sources (this only appears in the new, unreleased version) we find the following definition: (defmacro |RUNTIME FUNCALL| (fn &rest args) `(funcall (the compiled-function ,fn) ,.args)) The use of the declaration "(the compiled-function ,fn)" corresponds to the fact that PCL is sure that this macro (|RUNTIME FUNCALL|) will never be used unless the fn argument is in fact a compiled function. Architecturally, PCL has enabled an optimization which should improve the performance of method lookup. Unfortunately, Common Lisp compilers don't respect this declaration. The compilers emit code which first checks to ensure that the first argument to funcall is a function before calling it. This one thing is just a small bit of overhead, but it directly slows down generic function call. Not tremendously all by itself, but there are, unfortunately, a number of others like it. The root of the problem is that Common Lisp doesn't provide a way for PCL to tell the underlying Common Lisp to eliminate the error checking, and no existing port of PCL is good enough to eliminate all the architecture--port differences. (I should also say that previous versions of PCL have not had anywhere near as good an architecture). It is reasonable to expect that better ports of newer versions of PCL will have better performance. It will be interesting to compare the performance of these to implementation specific, "hand-coded" implementations of CLOS. I don't really know what the performance differences will be. *** Appendix *** The following examples show how two, major Common Lisps for the Sun4 compile an ordinary function call and a use of funcall as shown above. These two Common Lisps were chosen for illustrative purposes only. No comparison between them or with any other is intended. No endorsement of either Common Lisp is intended. No criticism of either Common Lisp is intended. All the Common Lisps I have used generate similar code, that is the whole point. These two were just chosen to illustrate the general point. Also note that even those these two code vectors look a little different, they are substantially the same. These two functions can be used to illustrate the difference between the best out of line function call a given Lisp knows how to do and the kind of function call you get when you have to use funcall. (proclaim '(optimize (speed 3) (safety 0) (compilation-speed 0))) (defun foo (x y) (funcall (the compiled-function x) y)) (defun bar (x y) (baz y)) ;One Common Lisp ;; disassembling # ;; formals: X Y ;; constant vector: ;; code vector @ #x87344c: 0: save #x-60,%o6 4: move.l %i0,%l0 8: and #x7,%l0,%g2 12: subcc #x2,%g2,%g0 16: beq,a 84 20: move.l %l0,%g2 24: and #x7,%l0,%g2 28: subcc #x6,%g2,%g0 32: beq,a 40 36: moveu.b -6(%l0),%g2 40: subcc #x8,%g2,%g0 44: beq,a 116 48: move.l %l0,%o5 52: move.l %l0,%o0 56: move.l 219(%g4),%o7 ; FUNCALL 60: move.l %i1,%o1 64: jmpl 0(%o7),%o7 68: move.l #x2,%g3 72: jmpl 8(%i7),%g0 76: restore %g0,%o0 80: move.l %l0,%g2 84: move.l 6(%g2),%o5 88: move.l %i1,%o0 92: move.l -2(%o5),%g6 96: jmpl 0(%g6),%o7 100: xor #x1,%g0,%g3 104: bra 72 108: nop 112: move.l %l0,%o5 116: move.l %i1,%o0 120: move.l -2(%o5),%g6 124: move.l %g4,%g2 128: jmpl 0(%g6),%o7 132: xor #x1,%g0,%g3 136: bra 72 140: nop ;; disassembling # ;; formals: X Y ;; constant vector: 0: BAZ ;; code vector @ #x876784: 0: save #x-60,%o6 4: move.l 34(%i5),%g2 ; BAZ 8: move.l %i1,%o0 12: move.l 6(%g2),%o5 16: move.l -2(%o5),%g6 20: jmpl 0(%g6),%o7 24: xor #x1,%g0,%g3 28: jmpl 8(%i7),%g0 32: restore %g0,%o0 ;Another Common Lisp (disassemble 'foo) move %in0, %loc0 move %in1, %in0 move %loc0, %ncp move [%sq + 911], %nra ; SQ-COERCE-TO-PROCEDURE jmpl %nra, %nra - 2 nop move [%ncp - 2], %nra ; Function Code move 4, %u0 jmpl %0, %nra - 2 move %ncp, %cp (disassemble 'bar) move %in1, %in0 move [%cp + 30], %x0 ; BAZ move [%x0 + 13], %cp move [%cp - 2], %nra ; Function Code jmpl %0, %nra - 2 move 4, %u0 ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA19808; Thu, 2 Nov 89 09:45:38 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 02 NOV 89 09:09:01 PST Return-Path: Redistributed: CommonLoops.pa Received: from decwrl.dec.com ([16.1.0.1]) by Xerox.COM ; 02 NOV 89 09:04:03 PST Received: by decwrl.dec.com; id AA13561; Thu, 2 Nov 89 09:03:56 -0800 Date: Thu, 2 Nov 89 09:03:54 -0800 Message-Id: <8911021703.AA13561@decwrl.dec.com> From: komar@gudusa.enet.dec.com (Is Eternal Vigilance the price of Liberty? 02-Nov-1989 1204) To: "CommonLoops.pa@xerox.com"@decwrl.dec.com Subject: Bug in DCODE-CACHE-MISS, any fixes? I am using PCL on VAXlisp/VMS to simulate the lower layers of a network/distributed system. Recently, I ran into a problem with DCODE-CACHE-MISS. The problem is that the parameter NEXT-SCAN-LIMIT gets bound to either one of my own values (the current event in a discrete event simulation), or the class of the method that is being invoked. This problem is so baffling that I can't guess how to make a small program that exhibits this behavior. The problem appears in both "Can't think of a cute name PCL" and "Victoria Day PCL". It appears wether DCODE (from PCL) is compiled or interpreted, in both V2.2 and V3.0 of VAXLisp. Please Help. I'm just spinning my wheels until this gets solved. Paul Komar VAXCluster Technical Office komar%hpsrad.dec@decwrl.dec.com P.S. Please add me to the Common-Loops mailing list. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA25717; Thu, 2 Nov 89 16:13:10 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 02 NOV 89 15:54:52 PST Return-Path: Redistributed: commonloops.pa Received: from uunet.uu.net ([192.48.96.2]) by Xerox.COM ; 02 NOV 89 15:21:05 PST Received: by uunet.uu.net (5.61/1.14) with UUCP id AA17744; Thu, 2 Nov 89 18:20:58 -0500 Received: by opal.STC.LOCKHEED.COM (4.0/1.57); Thu, 2 Nov 89 17:13:15 CST Received: by diamond.STC.LOCKHEED.COM (5.57/1.8); Thu, 2 Nov 89 17:12:28 CST Date: Thu, 2 Nov 89 17:12:27 CST Message-Id: <8911022312.AA09424@diamond.STC.LOCKHEED.COM> From: berardo@galaxy.portal.DECNET.LOCKHEED.COM (Peter A. Berardo (415)424-2137) To: "commonloops.pa@xerox.com"@eagle.portal.DECNET.LOCKHEED.COM, berardo@stc.lockheed.com Subject: Please add to PCL EMail Distribution Greetings. Please add me to the PCL EMail distribution list. We have installed Victoria Day PCL on our Macintosh II running Allegro Common Lisp and will install it on our Sun 4 when we receive version 3 of Lucid Lisp. Many thanks for the copy given to Karin Sye who works with me. Thank you. Pete Berardo BERARDO@GALAXY.PORTAL.DECNET.LOCKHEED.COM Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA27333; Thu, 2 Nov 89 20:02:12 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 02 NOV 89 20:04:05 PST Date: Thu, 2 Nov 89 19:58 PST From: Gregor.pa@Xerox.COM Subject: Re: Bug in DCODE-CACHE-MISS, any fixes? To: Is Eternal Vigilance the price of Liberty? 02-Nov-1989 1204 Cc: CommonLoops.pa@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-7.text.newest In-Reply-To: <8911021703.AA13561@decwrl.dec.com> Message-Id: <19891103035827.9.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no Date: Thu, 2 Nov 89 09:03:54 -0800 From: komar@gudusa.enet.dec.com (Is Eternal Vigilance the price of Liberty? 02-Nov-1989 1204) Recently, I ran into a problem with DCODE-CACHE-MISS. The problem is that the parameter NEXT-SCAN-LIMIT gets bound to either one of my own values (the current event in a discrete event simulation), or the class of the method that is being invoked. I heard about this problem once, as I recall it may be because either: you have methods with non-congruent lambda lists or you are calling a generic function with too few required arguments (or maybe it was too many). Both of these are just guesses. Sorry but I am not maintaining that version of PCL anymore. I am working on a new one which doesn't even have a function by that name. ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA13492; Sat, 4 Nov 89 00:28:16 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 04 NOV 89 00:28:49 PST Return-Path: Redistributed: CommonLoops.pa Received: from lucid.com ([192.26.25.1]) by Xerox.COM ; 04 NOV 89 00:26:53 PST Received: from bhopal ([192.43.178.13]) by heavens-gate id AA02879g; Sat, 4 Nov 89 00:23:33 PST Received: by bhopal id AA01188g; Sat, 4 Nov 89 00:25:16 PST Date: Sat, 4 Nov 89 00:25:16 PST From: Jon L White Message-Id: <8911040825.AA01188@bhopal> To: Gregor.pa@Xerox.COM Cc: CommonLoops.pa@Xerox.COM, X3J13@Sail.Stanford.edu In-Reply-To: Gregor.pa@Xerox.COM's message of Tue, 31 Oct 89 19:35 PST <19891101033501.1.GREGOR@SPIFF.parc.xerox.com> Subject: evaluating CLOS performance As someone who has been trying to improve lisp compiler performance to help CLOS and PCL, I can well sympathize with your analysis of the complexity in evaluating CLOS performance. While acting as one of Dick Gabriel's correspondents on the Lisp Timings project (whence came the book "Performance and Evaluation of Lisp Systems), I many times saw the tendency of people to pick one facet of a 1000-facet system and focus in on it as THE measure. [Of course, when several facets have wildly differing values, one can seldom find a single statistical summary of them that is satisfactory to every end user.] CLOS _by itself_ is at least as complex as the Lisp systems that Dick benchmarked, and will no doubt be as difficult to summarize succinctly as any other such system. The serious question, however, is that of trying to relate micReceived: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA09043; Tue, 7 Nov 89 13:57:24 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 07 NOV 89 13:58:11 PST Return-Path: Redistributed: CommonLoops.pa Received: from decwrl.dec.com ([16.1.0.1]) by Xerox.COM ; 07 NOV 89 13:53:09 PST Received: by decwrl.dec.com; id AA02008; Tue, 7 Nov 89 13:51:49 -0800 Date: Tue, 7 Nov 89 13:51:42 -0800 Message-Id: <8911072151.AA02008@decwrl.dec.com> From: komar@gudusa.enet.dec.com (Is Eternal Vigilance the price of Liberty? 07-Nov-1989 1651) To: "CommonLoops.pa@xerox.com"@decwrl.dec.com Subject: Found my bug, and here's a small example that shows PCL's bug. Gregor says about the error in DCODE-CACHE-MISS ` is not a number.' : From: GUDUSA::DECWRL::"Gregor.pa@Xerox.COM" 3-NOV-1989 00:27:29.99 I heard about this problem once, as I recall it may be because either: you have methods with non-congruent lambda lists I applied the check-lambda-list-congruency patch (though I didn't test it) It didn't complain when I recompiled my program. or you are calling a generic function with too few required arguments (or maybe it was too many). That was the problem! I was invoking a method with one parameter, but the method required two parameters. (Big sigh) Both of these are just guesses. Sorry but I am not maintaining that version of PCL anymore. I am working on a new one which doesn't even have a function by that name. I eagerly await the next public version. Paul Komar. P.S. Here is a small example that demostrates the problem: (It is so much easier to find a small example of a problem, when you know what the problem is :-) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; Title : too-few-params.lsp ;;; ;;; Last Edited : Tue Nov 7 11:33:57 1989 ;;; ;;; Description : ;;; ;;; Defs : ;;; try ;;; [method] foo ;;; defclass bar ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (use-package 'pcl) (defclass bar () ( (a :initarg :A :initform "A" :accessor bar-a) ) ) (defmethod foo ((b bar) other) ) (defun try () (setf bar (make-instance 'bar)) (foo baR) ) #| Causes this output: Dribbling to CLU3:[KOMAR.LISP.PCL]ERROR.OUT;1 Lisp> (try) Error in Pcl::Dcode-Cache-Miss: Argument must be a number: # Control Stack Debugger Apply #6: (Try) Debug 1> Lisp> (dribble) |# Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA15502; Thu, 9 Nov 89 16:18:16 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 09 NOV 89 16:09:09 PST Return-Path: Redistributed: CommonLoops.PA Received: from Moe.McRCIM.McGill.EDU ([132.206.4.1]) by Xerox.COM ; 09 NOV 89 16:06:44 PST Received: by Moe.McRCIM.McGill.EDU (5.54) id <8911100006.AA13999@Moe.McRCIM.McGill.EDU>; Thu, 9 Nov 89 19:06:37 EST Date: Thu, 9 Nov 89 19:06:37 EST From: Martin Boyer Message-Id: <8911100006.AA13999@Moe.McRCIM.McGill.EDU> To: CommonLoops.PA@Xerox.COM Subject: Multiple EQL specializers bug In PCL system date: 5/22/89 Victoria Day PCL Lisp Implementation type: Lucid Common Lisp Lisp Implementation version: 3.0.2 *features*: (:PORTABLE-COMMONLOOPS :PCL :COMMON-LISP :LUCID :UNIX :SUN :MC68000 :IEEE-FLOATING-POINT :LCL3.0 :LOOP :EGC :COMPILER) there appears to be a bug when multiple EQL specializers are used; if there is a method with more than 1 EQL specializers, then the other methods (for the same generic function) with less EQL specializers can't be found. Try the following program: (defclass class-1 () (slot1) ) (defmethod hello1 ((object class-1) (arg1 (eql 'a))) (format t "Hello1 from (class-1 'a)~%") ) (defmethod hello1 ((object class-1) arg1) (format t "Hello1 from (class-1 T)~%") ) (defmethod hello2 ((object class-1) (arg1 (eql 'a)) (arg2 (eql 'b))) (format t "Hello2 from (class-1 'a 'b)~%") ) (defmethod hello2 ((object class-1) (arg1 (eql 'a)) arg2) (format t "Hello2 from (class-1 'a T)~%") ) (setq o1 (make-instance 'class-1)) (hello1 o1 'a) (hello1 o1 'c) (hello2 o1 'a 'b) (hello2 o1 'a 'c) You will find that the last line fails. I tried changing the order of evaluation, e.g. calling (hello2 o1 'a 'c) before defining the method specialized on 'b and it works Hence my conclusion; as soon as a second EQL specializer is used, the non-specialized method goes poof! Or am I doing something forbidden? Martin -- Martin Boyer McGill Research Centre for Intelligent Machines McGill University, Montreal, QC gamin@larry.mcrcim.mcgill.edu gamin@mcgill-vision.uucp Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA17311; Thu, 9 Nov 89 19:14:43 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 09 NOV 89 19:16:57 PST Return-Path: <@RELAY.CS.NET:basham@NASA-JSC.CSNET> Redistributed: commonloops.pa Received: from RELAY.CS.NET ([192.31.103.4]) by Xerox.COM ; 09 NOV 89 19:15:49 PST Received: from relay2.cs.net by RELAY.CS.NET id aa06843; 9 Nov 89 21:15 EST Received: from nasa-jsc by csnet-relay.csnet id aa16436; 9 Nov 89 22:13 EST Date: Thu, 9 Nov 89 16:40:53 CST From: BASH Man To: CommonLoops.pa@Xerox.COM Subject: Houston, we have a problem... Message-Id: <891109-191657-6150@Xerox> To the CommonLoops BugMan: Yesterday, I downloaded PCL per Gergor K's instructions and attempted to compile it on Genera 7.2; below is a list of problems I had in compiling PCL. Could you please tell me if this is nominal. Sincerely, Bryan Basham Intelligent Systems Branch, NASA JSC 1) There were several places where the compiler gave warnings. Compiling ITERATE... For Function OPTIMIZE-ITERATE-FORM While compiling (SETQ V (POP #:G60587)): The ignored variable V was referenced. Compiling FIN... For Function PCL-PRINT-LEXICAL-CLOSURE While compiling *THE-CLASS-T*: The variable *THE-CLASS-T* is unknown and has been declared SPECIAL Compiling DEFS... For Function SUB-SPECIALIZER-P The lexical function .SPECIALIZER-CROSS-CASE-OTHERWISE. was never used. Loading binary of DEFS... For Function (:PROPERTY CLASS-OPTIONS LT::SETF-METHOD-INTERNAL) Function (:PROPERTY CLASS-OPTIONS LT::SETF-METHOD-INTERNAL) is defined twice in the file BRYAN:CLOS;DEFS. For SETF function CLASS-OPTIONS SETF function CLASS-OPTIONS is defined twice in the file BRYAN:CLOS;DEFS. etc... 2) There were these two cases where functions where being redefined; I assumed that this should be done. Compiling FIXUP... Loading binary of FIXUP... Warning: Function CHECK-INITARGS-1, being redefined by file BRYAN:CLOS;FIXUP, was previously defined by file BRYAN:CLOS;INIT. OK? (Y, P, or N) Proceed. Loading binary of HIGH... Warning: Function BUILT-IN-WRAPPER-OF, being redefined by file BRYAN:CLOS;HIGH, was previously defined by file BRYAN:CLOS;LOW. OK? (Y, P, or N) Proceed. 3) Finally the compiling process finished and problems were noticed: The following functions were referenced but don't seem defined: DBG:SHOW-FRAME-SOURCE referenced by DBG:COM-SHOW-SOURCE-CODE DBG:SHOW-ALL-COMPILED-1 referenced by DBG:SHOW-ALL-COMPILED-7-1 For SETF function PCL:CLASS-INSTANCE-SLOTS DEFSETF of PCL:CLASS-INSTANCE-SLOTS may be a typographical error since PCL:CLASS-INSTANCE-SLOTS does not currently have a function definition. For SETF function PCL:SLOT-VALUE-ALWAYS DEFSETF of PCL:SLOT-VALUE-ALWAYS may be a typographical error since PCL:SLOT-VALUE-ALWAYS does not currently have a function definition. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA18726; Thu, 9 Nov 89 22:10:21 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 09 NOV 89 22:12:33 PST Return-Path: Redistributed: CommonLoops.pa Received: from DINO.BBN.COM ([128.89.3.8]) by Xerox.COM ; 09 NOV 89 22:10:59 PST To: BASH Man Cc: CommonLoops.pa@Xerox.COM Subject: Re: Houston, we have a problem... In-Reply-To: Your message of Thu, 09 Nov 89 16:40:53 -0600. <891109-191657-6150@Xerox> Date: Fri, 10 Nov 89 00:55:07 -0500 From: kanderso@DINO.BBN.COM Message-Id: <891109-221233-6409@Xerox> The warnings may not effect how PCL runs in Genera 7.2 Have you actually tried to run PCL? Received: from MCC.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA03576; Mon, 13 Nov 89 11:02:21 -0800 Received: from SAIL.Stanford.EDU by MCC.COM with TCP/SMTP; Mon 13 Nov 89 12:54:17-CST Message-Id: <1uq9RA@SAIL.Stanford.EDU> Date: 13 Nov 89 1050 PST From: Dick Gabriel Subject: Test To: common-lisp-object-system@SAIL.Stanford.EDU This is a test (1). Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA07507; Tue, 14 Nov 89 06:49:30 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 14 NOV 89 06:51:11 PST Return-Path: Redistributed: CommonLoops.PA Received: from inria.inria.fr ([128.93.8.1]) by Xerox.COM ; 14 NOV 89 06:49:17 PST Received: by inria.inria.fr (5.61+/89.0.8) via Fnet-EUnet id AA22414; Tue, 14 Nov 89 14:04:26 +0100 (MET) Received: by renault.uucp (4.0/SMI-4.0) id AA15252; Tue, 14 Nov 89 13:46:47 +0100 Date: Tue, 14 Nov 89 13:46:47 +0100 From: dembele@renault.UUCP (I Feel Good) Message-Id: <8911141246.AA15252@renault.uucp> To: pclml@inria.inria.fr Subject: Adding to Mailing List Would you mind adding me on the Portable CommonLoop Mailing list? My address and e-mail address are: Dembele Mamadou 9-11, avenue du 18 Juin 1940 F-92500 Rueil Malmaison France tel: (33-1) 47 32 02 53 e-mail: dembele%renault.uucp@inria.fr Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA01554; Tue, 14 Nov 89 08:38:14 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 14 NOV 89 08:40:39 PST Return-Path: Redistributed: CommonLoops.PA Received: from inria.inria.fr ([128.93.8.1]) by Xerox.COM ; 14 NOV 89 08:39:06 PST Received: by inria.inria.fr (5.61+/89.0.8) via Fnet-EUnet id AA29736; Tue, 14 Nov 89 17:39:04 +0100 (MET) Received: by renault.uucp (4.0/SMI-4.0) id AA15439; Tue, 14 Nov 89 14:58:29 +0100 Date: Tue, 14 Nov 89 14:58:29 +0100 From: dembele@renault.UUCP (I Feel Good) Message-Id: <8911141358.AA15439@renault.uucp> To: pclml@inria.inria.fr Subject: Mailing list Would you mind adding me on the Portable CommonLoop Mailing list? My address and e-mail address are: Dembele Mamadou 9-11, avenue du 18 Juin 1940 F-92500 Rueil Malmaison France tel: (33-1) 47 32 02 53 e-mail: dembele%renault.uucp@inria.fr Best regards, Received: from MCC.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA06083; Tue, 14 Nov 89 13:34:49 -0800 Received: from daystar.aca.mcc.com by MCC.COM with TCP/SMTP; Tue 14 Nov 89 14:22:27-CST Date: Tue, 14 Nov 89 14:22:20 CST From: loeffler@daystar.aca.mcc.com (David Loeffler) Posted-Date: Tue, 14 Nov 89 14:22:20 CST Message-Id: <8911142022.AA15313@daystar.aca.mcc.com> Received: by daystar.aca.mcc.com (3.2/ACTv4.1i) id AA15313; Tue, 14 Nov 89 14:22:20 CST To: Common-Lisp@mcc.com, Common-Lisp-Object-system@mcc.com, Cl-windows@mcc.com, CL-Cleanup@mcc.com Subject: Test Message This is a test message. Please disregard it. We are testing a new host for distributing mail on these lists. This message is just a test to see how well the mailer handles distributing the mail. Thank you. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA21911; Wed, 15 Nov 89 07:20:12 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 15 NOV 89 07:17:52 PST Return-Path: Redistributed: CommonLoops.PA Received: from Moe.McRCIM.McGill.EDU ([132.206.4.1]) by Xerox.COM ; 15 NOV 89 07:12:30 PST Received: by Moe.McRCIM.McGill.EDU (5.54) id <8911151451.AA25544@Moe.McRCIM.McGill.EDU>; Wed, 15 Nov 89 09:51:13 EST Date: Wed, 15 Nov 89 09:51:13 EST From: Martin Boyer Message-Id: <8911151451.AA25544@Moe.McRCIM.McGill.EDU> To: CommonLoops.PA@Xerox.COM Subject: Getting hold of the method object currently executed In Victoria Day PCL, is it possible, from the body of a method, to reference the method object itself? I could use something like (get-method generic-function () (mapcar 'find-class arglist)) but that seems to be a waste of time since, being in the body of a method, it is obvious that the proper method has just been looked up. I guess I am more or less looking for a special variable that could be named *current-method* and that this variable would be bound by the generic dispatch mechanism. I tried looking for the call-method macro, but it doesn't seem to exist in Victoria Day PCL; the name is used, but the code is a bit too complex for a neophyte like me. I also thought of using a defadvice on get-method, to cache the return value, but it seems that some other mechanism (in dcode.lisp?) is used from within generic functions. I am willing to modify the PCL sources if somebody can give me pointers; this is really important for my application, and getting a bit pressing. Thanks a lot, Martin Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA01456; Wed, 15 Nov 89 12:49:13 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 15 NOV 89 12:48:55 PST Return-Path: Redistributed: CommonLoops.PA Received: from DINO.BBN.COM ([128.89.3.8]) by Xerox.COM ; 15 NOV 89 12:44:22 PST To: Martin Boyer Cc: CommonLoops.PA@Xerox.COM Subject: Re: Getting hold of the method object currently executed In-Reply-To: Your message of Wed, 15 Nov 89 09:51:13 -0500. <8911151451.AA25544@Moe.McRCIM.McGill.EDU> Date: Wed, 15 Nov 89 15:55:20 -0500 From: kanderso@DINO.BBN.COM Message-Id: <891115-124855-4761@Xerox> Redistributed: CommonLoops.PA Date: Wed, 15 Nov 89 09:51:13 EST From: Martin Boyer To: CommonLoops.PA@xerox.com Subject: Getting hold of the method object currently executed In Victoria Day PCL, is it possible, from the body of a method, to reference the method object itself? Why do you want this? Loop optimization? I could use something like (get-method generic-function () (mapcar 'find-class arglist)) but that seems to be a waste of time since, being in the body of a method, it is obvious that the proper method has just been looked up. I guess I am more or less looking for a special variable that could be named *current-method* and that this variable would be bound by the generic dispatch mechanism. You could just climb up the stack. Here is Symbolics code: (defun current-function () (si:frame-function (si:frame-previous-active-frame (si:%stack-frame-pointer)))) (pcl:defmethod goo (x) (current-function)) I tried looking for the call-method macro, but it doesn't seem to exist in Victoria Day PCL; the name is used, but the code is a bit too complex for a neophyte like me. Here is a portable, but slow way to do it. (defmethod generic-function-effective-method ((gf standard-generic-function) &rest args) ;; Returns a function that is the effective method when GF ;; is applied to ARGS. (cdr (last (apply #'lookup-method-internal gf (generic-function-combined-methods gf) #'car args)))) I also thought of using a defadvice on get-method, to cache the return value, but it seems that some other mechanism (in dcode.lisp?) is used from within generic functions. I am willing to modify the PCL sources if somebody can give me pointers; this is really important for my application, and getting a bit pressing. Thanks a lot, Martin Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA05329; Wed, 15 Nov 89 16:10:53 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 15 NOV 89 16:13:14 PST Return-Path: Redistributed: CommonLoops.PA Received: from uunet.uu.net ([192.48.96.2]) by Xerox.COM ; 15 NOV 89 16:12:03 PST Received: by uunet.uu.net (5.61/1.14) with UUCP id AA04656; Wed, 15 Nov 89 19:12:03 -0500 Received: by opal.STC.LOCKHEED.COM (4.0/1.57); Wed, 15 Nov 89 17:40:37 CST Received: by frege.STC.LOCKHEED.COM (4.0/1.5); Wed, 15 Nov 89 17:40:08 CST Received: from nova.laic.lockheed.com by laic.lockheed.com (3.2/SMI-3.2) id AA03057; Wed, 15 Nov 89 15:39:18 PST Received: by nova.laic.lockheed.com (3.2/SMI-3.2) id AA19931; Wed, 15 Nov 89 15:41:57 PST Date: Wed, 15 Nov 89 15:41:57 PST From: ik%nova@stc.lockheed.com (Ik Su Yoo) Message-Id: <8911152341.AA19931@nova.laic.lockheed.com> To: CommonLoops%Xerox.com%frege.uucp@stc.lockheed.com Cc: ik%nova@stc.lockheed.com Subject: problem with change-class Has anyone one out there experienced problems using change-class method? Sometimes, I get an error saying 'NIL is an undefined function. This happens only some of the time. I.e. evaluating the same form (that produced the error) over again will not generate an error. When I did a backtrace, the error was actually generated when shared-initialize was called with nil as the argument. Any information or patch to this problem will be greatly appreciated. Please respond to ik@laic.lockheed.com. Thanks. Ik Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA05542; Wed, 15 Nov 89 16:22:59 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 15 NOV 89 16:23:54 PST Return-Path: Redistributed: commonloops.PA Received: from Moe.McRCIM.McGill.EDU ([132.206.4.1]) by Xerox.COM ; 15 NOV 89 16:19:04 PST Received: by Moe.McRCIM.McGill.EDU (5.54) id <8911160018.AA05116@Moe.McRCIM.McGill.EDU>; Wed, 15 Nov 89 19:18:56 EST Date: Wed, 15 Nov 89 19:18:56 EST From: Martin Boyer Message-Id: <8911160018.AA05116@Moe.McRCIM.McGill.EDU> To: kanderso@dino.bbn.com Subject: Re: Getting hold of the method object currently executed Cc: commonloops.PA@Xerox.COM > In Victoria Day PCL, is it possible, from the body of a method, to > reference the method object itself? > > Why do you want this? Loop optimization? Oh no! I want to be able to "reason" about the method currently being executed. I have added slots to the standard-method class and made my methods instances of that new mixin. I can play with methods as objects, but I need the method object to do this. Hence my query. > [...] something like > > (get-method generic-function () (mapcar 'find-class arglist)) > > [...] seems to be a waste of time since, being in the body of a method, > it is obvious that the proper method has just been looked up. > [...] > > You could just climb up the stack. Here is Symbolics code: > > (defun current-function () > (si:frame-function > (si:frame-previous-active-frame (si:%stack-frame-pointer)))) > > (pcl:defmethod goo (x) (current-function)) Oops! I forgot to mention that it has to be portable at least between Sun/Lucid and microExplorer. If somebody has equivalent hooks for these implementations, I'd be eternally grateful. > I tried looking for the call-method macro, but it doesn't seem to exist > in Victoria Day PCL; [...] > > Here is a portable, but slow way to do it. > (defmethod generic-function-effective-method > ((gf standard-generic-function) &rest args) > ;; Returns a function that is the effective method when GF > ;; is applied to ARGS. > (cdr (last (apply #'lookup-method-internal gf > (generic-function-combined-methods gf) > #'car args)))) Is this faster/better than using the (get-method generic-function () (mapcar 'find-class args) nil) I proposed earlier? Thanks, again, for your kindness, Martin PS. Please let me know if this discussion should be carried on a private basis instead of bothering everyone on the mailing list with a marginal problem. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA08689; Wed, 15 Nov 89 20:04:21 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 15 NOV 89 20:06:33 PST Return-Path: Redistributed: commonloops.PA Received: from DINO.BBN.COM ([128.89.3.8]) by Xerox.COM ; 15 NOV 89 20:01:39 PST To: Martin Boyer Cc: commonloops.PA@Xerox.COM Subject: Re: Getting hold of the method object currently executed In-Reply-To: Your message of Wed, 15 Nov 89 19:18:56 -0500. <8911160018.AA05116@Moe.McRCIM.McGill.EDU> Date: Wed, 15 Nov 89 23:15:48 -0500 From: kanderso@DINO.BBN.COM Message-Id: <891115-200633-1561@Xerox> Date: Wed, 15 Nov 89 19:18:56 EST From: Martin Boyer To: kanderso@dino.bbn.com Subject: Re: Getting hold of the method object currently executed Cc: commonloops@xerox.com > In Victoria Day PCL, is it possible, from the body of a method, to > reference the method object itself? > > Why do you want this? Loop optimization? Oh no! I want to be able to "reason" about the method currently being executed. I have added slots to the standard-method class and made my methods instances of that new mixin. I can play with methods as objects, but I need the method object to do this. Hence my query. So, you want a method to reason about itself while it runs? The both versions of the code i sent you returns the effective method. Is that what you want? I don't know how to go from that back to the method to use its slots from the effective method. > [...] something like > > (get-method generic-function () (mapcar 'find-class arglist)) > > [...] seems to be a waste of time since, being in the body of a method, > it is obvious that the proper method has just been looked up. > [...] > > You could just climb up the stack. Here is Symbolics code: > > (defun current-function () > (si:frame-function > (si:frame-previous-active-frame (si:%stack-frame-pointer)))) > > (pcl:defmethod goo (x) (current-function)) Oops! I forgot to mention that it has to be portable at least between Sun/Lucid and microExplorer. If somebody has equivalent hooks for these implementations, I'd be eternally grateful. > I tried looking for the call-method macro, but it doesn't seem to exist > in Victoria Day PCL; [...] > > Here is a portable, but slow way to do it. > (defmethod generic-function-effective-method > ((gf standard-generic-function) &rest args) > ;; Returns a function that is the effective method when GF > ;; is applied to ARGS. > (cdr (last (apply #'lookup-method-internal gf > (generic-function-combined-methods gf) > #'car args)))) Is this faster/better than using the (get-method generic-function () (mapcar 'find-class args) nil) I proposed earlier? Thanks, again, for your kindness, Martin PS. Please let me know if this discussion should be carried on a private basis instead of bothering everyone on the mailing list with a marginal problem. I think this is what the list is for. Everthing is marginal to someone. k Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA08941; Wed, 15 Nov 89 20:33:13 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 15 NOV 89 20:35:52 PST Return-Path: Redistributed: commonloops.PA Received: from Moe.McRCIM.McGill.EDU ([132.206.4.1]) by Xerox.COM ; 15 NOV 89 20:34:56 PST Received: by Moe.McRCIM.McGill.EDU (5.54) id <8911160434.AA08889@Moe.McRCIM.McGill.EDU>; Wed, 15 Nov 89 23:34:29 EST Date: Wed, 15 Nov 89 23:34:29 EST From: Martin Boyer Message-Id: <8911160434.AA08889@Moe.McRCIM.McGill.EDU> To: kanderso@dino.bbn.com Subject: Re: Getting hold of the method object currently executed Cc: commonloops.PA@Xerox.COM > So, you want a method to reason about itself while it runs? The both > versions of the code i sent you returns the effective method. Is that > what you want? [...] Perhaps, if by effective method you mean what is in most cases 'the most specific of the applicable methods'. If by effective method you mean the actual code that is executed, then the effective method is not what I'm looking for. What I need is the method object, exactly the kind returned by find-method (called get-method in Victoria Day PCL). It turns out that every generic function of interest to me is called from a macro and thus I have access to the generic-function name and arguments before the function is called. This is why I thought I could use find-method BUT, as find-method would be called with every generic-function invocation, I think it is a waste to perform method lookup twice, once in find-method and once in the generic function. Martin Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA29549; Thu, 16 Nov 89 16:24:58 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 16 NOV 89 14:52:53 PST Date: Thu, 16 Nov 89 14:50 PST From: Gregor.pa@Xerox.COM Subject: Re: Getting hold of the method object currently executed To: Martin Boyer , kanderso@DINO.BBN.COM Cc: CommonLoops.PA@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest In-Reply-To: <8911151451.AA25544@Moe.McRCIM.McGill.EDU>, The message of 15 Nov 89 12:55 PST from kanderso@DINO.BBN.COM, <8911160018.AA05116@Moe.McRCIM.McGill.EDU>, The message of 15 Nov 89 20:15 PST from kanderso@DINO.BBN.COM, <8911160434.AA08889@Moe.McRCIM.McGill.EDU> Message-Id: <19891116225046.5.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no Date: Wed, 15 Nov 89 09:51:13 EST From: Martin Boyer In Victoria Day PCL, is it possible, from the body of a method, to reference the method object itself? I will divide my reply into two messages. This message discusses the real issue, and the "right way" to get the behavior you want. This can be done with or without the metaobject protocol. By right way, I mean what you could do without the MOP if PCL supported it or what you will be able to do with the MOP when PCL supports it. The "future perfect" shall we say. A subsequent message will talk about how to do this in Victoria Day PCL. First, it is important to rephrase your question more precisely in terms of the concepts that exist in CLOS. The key point here is that method lookup in CLOS is divided into two parts. "computing the ordered list of applicable methods" This part takes the generic function and the set of arguments and returns a list of methods. This list is sorted by methods specificity with the most specific methods first. The sorting completely ignores any method qualifiers. "computing the effective method" This takes the ordered list of applicable method and produces from them an effective method. In essence, this does the method combination. The result of this phase is a weird kind of form which uses the special marker CALL-METHOD. Note that CALL-METHOD is NOT A MACRO, it isn't defined except in the body of an effective method form. In the degenerate case where you are: 1) using standard method combination 2) not using :before, :after, or :around methods 3) not using call-next-method (or using a method combination with equivalent behavior) then the effective method is always just a call to the first of the applicable methods. Another way of saying this is that within the body of a method on the generic function foo, the following form always returns to the method being run: (car (compute-applicable-methods generic-function arglist)) Of course, this form has the significant bug that it is slow. It recomputes the method from scratch which seems unfortunate. But, if this degenerate case is what you need, you could define a special kind of method combination which would give you access to the method being run: (defvar *method-being-run*) (define-method-combination runtime-access-to-method () ((all () :required t)) `(let ((*method-being-run* ',(car all))) (call-method ,(car all)))) Then you can say: (defgeneric foo (x) (:method-combination runtime-access-to-method)) (defmethod foo ((b boat)) (mumble *method-being-run*)) Because this uses a special variable, you have to be careful about funargs in the usual way. But, if you do want to use the full power of method combination, and moreover you want to use pre-defined method combination types, you are going to have to do something else. The following would do the trick, but is likely to have a more dramatic affect on performance than defining a special method combination as done above. (defmethod apply-method-function ((gf runtime-reflection-generic-function) (method method) args) (let ((*method-being-run* method)) (declare (special *method-being-run*)) (call-next-method))) (defmethod make-method-lambda ((gf runtime-reflection-generic-function) (method method) args body) (call-next-method gf method args `(let ((.method-being-run. *method-being-run*)) (flet ((this-method () .method-being-run.)) ,@body)))) Given these two definitions, the following works: (defgeneric foo (x) (:generic-function-class runtime-reflection-generic-function)) (defmethod foo ((b boat)) (mumble (this-method))) ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA29570; Thu, 16 Nov 89 16:28:42 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 16 NOV 89 15:15:12 PST Date: Thu, 16 Nov 89 15:12 PST From: Gregor.pa@Xerox.COM Subject: Re: Getting hold of the method object currently executed To: Martin Boyer , kanderso@DINO.BBN.COM Cc: CommonLoops.PA@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest In-Reply-To: <8911151451.AA25544@Moe.McRCIM.McGill.EDU>, The message of 15 Nov 89 12:55 PST from kanderso@DINO.BBN.COM, <8911160018.AA05116@Moe.McRCIM.McGill.EDU>, The message of 15 Nov 89 20:15 PST from kanderso@DINO.BBN.COM, <8911160434.AA08889@Moe.McRCIM.McGill.EDU> Message-Id: <19891116231259.6.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no Date: Wed, 15 Nov 89 09:51:13 EST From: Martin Boyer In Victoria Day PCL, is it possible, from the body of a method, to reference the method object itself? And now, for the grim truth about what you have to do in Victoria Day. Assuming that you fall into the degenerate case as described in my previous message, there is a hack change you can make which will win pretty well. It is simple, and shouldn't affect performance too much. It will also make the variable *method-being-run* available in every method in the world without having to declare the method combination type or the class of the generic function (which is good since you can't do that in victoria day PCL). But this variable will only be correct when you are in the degenerate case of course. If you don't fall into the degenerate case you will have to fix add-lexical-functions-to-method-lambda and make-code-constructor in an anlogous way. Note, I haven't tested this, sorry. ;from combin.lisp (proclaim '(special *method-being-run*)) (defun make-effective-method-function (generic-function form) (declare (ignore generic-function)) (flet ((name-function (fn) (set-function-name fn 'a-combined-method) fn)) (if (and (listp form) (eq (car form) 'call-method) (method-p (cadr form)) (every #'method-p (caddr form))) ;; The effective method is just a call to call-method. This opens ;; up a possibility of just using the method function of the method ;; being called as the effective method function. ;; ;; But we have to be careful. We must be sure to communicate the ;; next methods to the method if it needs them. If there are no ;; next methods we must communicate that fact to prevent the leaky ;; next methods bug. (let* ((method (cadr form)) (method-function (method-function method)) (next-method-functions (mapcar #'method-function (caddr form)))) (name-function #'(lambda (&rest .combined-method-args.) (let ((*method-being-run* method) (*next-methods* next-method-functions)) (apply method-function .combined-method-args.))))) (name-function (funcall (get-effective-method-code-constructor form) form))))) ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA15140; Fri, 17 Nov 89 06:29:36 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 17 NOV 89 06:32:15 PST Return-Path: Redistributed: CommonLoops.PA Received: from Moe.McRCIM.McGill.EDU ([132.206.4.1]) by Xerox.COM ; 17 NOV 89 06:30:41 PST Received: by Moe.McRCIM.McGill.EDU (5.54) id <8911171430.AA09998@Moe.McRCIM.McGill.EDU>; Fri, 17 Nov 89 09:30:33 EST Date: Fri, 17 Nov 89 09:30:33 EST From: Martin Boyer Message-Id: <8911171430.AA09998@Moe.McRCIM.McGill.EDU> To: Gregor.pa@Xerox.COM Subject: Re: Getting hold of the method object currently executed Cc: CommonLoops.PA@Xerox.COM > Date: Wed, 15 Nov 89 09:51:13 EST > From: Martin Boyer > > In Victoria Day PCL, is it possible, from the body of a method, to > reference the method object itself? > > Date: Thu, 16 Nov 89 14:50 PST > From: Gregor.pa@xerox.com > > I will divide my reply into two messages. This message discusses the > real issue, and the "right way" to get the behavior you want. This can > be done with or without the metaobject protocol. By right way, I mean > what you could do without the MOP if PCL supported it or what you will > be able to do with the MOP when PCL supports it. The "future perfect" > shall we say. > > A subsequent message will talk about how to do this in Victoria Day PCL. After reading both messages, I agree that the first one presents the "right way" to do it BUT, using the complete solution (because my application doesn't fall in the degenerate case where "the effective method is always just a call to the first of the applicable methods"), you say that it "is likely to have a more dramatic affect on performance than defining a special method combination". For reference, here is the "right way" (it does require the MOP, doesn't it?) > (defmethod apply-method-function ((gf runtime-reflection-generic-function) > (method method) > args) > (let ((*method-being-run* method)) > (declare (special *method-being-run*)) > (call-next-method))) > > (defmethod make-method-lambda ((gf runtime-reflection-generic-function) > (method method) > args > body) > (call-next-method gf > method > args > `(let ((.method-being-run. *method-being-run*)) > (flet ((this-method () .method-being-run.)) > ,@body)))) > > Given these two definitions, the following works: > > (defgeneric foo (x) > (:generic-function-class runtime-reflection-generic-function)) > > (defmethod foo ((b boat)) > (mumble (this-method))) How dramatic is the effect on performance? If having access to the method being run is common enough, would it warrant a change to the standard (gasp!) or a special extension? This is what I wanted to do when I started looking for the call-method macro (as described on page 2-11 of 88-002R). Binding the special variable *method-being-run* like you propose to do in Victoria Day seems such a big win because a) it is a trivial change to the code b) it only adds the overhead of binding a special variable c) it provides so much information for applications without crossing the twilight zone into the MOP To me, this also seems to be the "right way" (well, at least, it's the easy way). Thank you very much for your help (I know that you are working on a new version of PCL and I didn't expect you to go back to Victoria Day for "hack changes"). Martin Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA16362; Fri, 17 Nov 89 08:45:50 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 17 NOV 89 08:45:35 PST Return-Path: Redistributed: CommonLoops.PA Received: from SAIL.Stanford.EDU ([36.86.0.194]) by Xerox.COM ; 17 NOV 89 08:40:23 PST Message-Id: Date: 17 Nov 89 08:39 PST From: Dick Gabriel Subject: re: Getting hold of the method object currently executed To: gamin@MOE.MCRCIM.MCGILL.EDU, Gregor.pa@Xerox.COM Cc: CommonLoops.PA@Xerox.COM [In reply to message from gamin@Moe.McRCIM.McGill.EDU sent Fri, 17 Nov 89 09:30:33 EST.] If having access to the method being run is common enough, would it warrant a change to the standard (gasp!) or a special extension? I did not save the original comment, so this might be redundant: What is the purpose of being able to get a hold of the current method that cannot be served by *you* modifying your source code to note it whatever way you want? If you simply want to do some different control flow depending on the method, the method object itself is not particularly interesting, since I suspect you would want to discriminate on the class of the method, which implies making subclasses of STANDARD-METHOD, which is enough of the change to the innards of the meta-structure of CLOS that you would probably be in a good position to directly modify the source of methods to accomplish your goals. If what you want to do is to change the effective method dynamically, you will probably need to make your own method combination type, as Gregor suggests. Looked at another way, why aren't you also proposing to modify Lisp to note the currently executing function? -rpg- Received: from MCC.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA21908; Fri, 17 Nov 89 10:53:20 -0800 Received: from atc.boeing.com by MCC.COM with TCP/SMTP; Fri 17 Nov 89 12:52:10-CST Received: by atc.boeing.com on Fri, 17 Nov 89 10:52:44 PST Received: by tieton.atc.boeing.com (3.2/SMI-3.0DEV3) id AA01954; Fri, 17 Nov 89 10:52:50 PST Date: Fri, 17 Nov 89 10:52:50 PST From: aseem@atc.boeing.com Message-Id: <8911171852.AA01954@tieton.atc.boeing.com> To: common-lisp-object-system@mcc.com Subject: CLX toolkit and/or CLUE Contact "classes/libraries" Are there any CLX toolkits and/or CLUE Contact "libraries" available (commercially or publically) which provide a set of basic interactive objects like buttons, scrollbars, menus, forms, text etc. I am looking at writing an interface using CLUE and do not wish to build up the interface components from scratch using CLX. aseem@atc.boeing.com 206-865-3225 Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA24309; Fri, 17 Nov 89 12:16:43 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 17 NOV 89 10:50:18 PST Return-Path: Redistributed: commonloops.pa Received: from atc.boeing.com ([130.42.28.80]) by Xerox.COM ; 17 NOV 89 10:02:42 PST Received: by atc.boeing.com on Fri, 17 Nov 89 10:02:26 PST Received: by tieton.atc.boeing.com (3.2/SMI-3.0DEV3) id AA01890; Fri, 17 Nov 89 10:02:31 PST Date: Fri, 17 Nov 89 10:02:31 PST From: aseem@atc.boeing.com Message-Id: <8911171802.AA01890@tieton.atc.boeing.com> To: CommonLoops.pa@Xerox.COM, clue-review@dsg.csc.ti.com, common-lisp@mcc.com, common0-lisp-object-system@mcc.com Subject: CLX toolkit and/or CLUE Contact "classes/libraries" Are there any CLX toolkits and/or CLUE Contact "libraries" available (commercially or publically) which provide a set of basic interactive objects like buttons, scrollbars, menus, forms, text etc. I am looking at writing an interface using CLUE and do not wish to build up the interface components from scratch using CLX. aseem@atc.boeing.com 206-865-3225 Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA24353; Fri, 17 Nov 89 12:20:08 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 17 NOV 89 11:24:11 PST Return-Path: Redistributed: CommonLoops.PA Received: from Moe.McRCIM.McGill.EDU ([132.206.4.1]) by Xerox.COM ; 17 NOV 89 10:40:04 PST Received: by Moe.McRCIM.McGill.EDU (5.54) id <8911171839.AA15054@Moe.McRCIM.McGill.EDU>; Fri, 17 Nov 89 13:39:40 EST Date: Fri, 17 Nov 89 13:39:40 EST From: Martin Boyer Message-Id: <8911171839.AA15054@Moe.McRCIM.McGill.EDU> To: RPG@sail.stanford.edu Subject: re: Getting hold of the method object currently executed Cc: CommonLoops.PA@Xerox.COM, Gregor.PA@Xerox.COM > Date: 17 Nov 89 0839 PST > From: Dick Gabriel > [In reply to message from gamin@Moe.McRCIM.McGill.EDU sent Fri, 17 Nov 89 09:30:33 EST.] > > If having access to the method being run is common enough, would it > warrant a change to the standard (gasp!) or a special extension? > > I did not save the original comment, so this might be redundant: > What is the purpose of being able to get a hold of the current method > that cannot be served by *you* modifying your source code to > note it whatever way you want? I don't have my original request either, but I'll rephrase myself anyway; I'm more or less modeling a robotic system. Naturally, the *physical* objects are modeled as instances of CLOS classes and actions are modeled as methods. This was trivial. Then, we wanted to do task planning and error recovery; the way we see it, this can be achieved by modeling actions as *software* objects and reason about these objects. CLOS can handle that, since in CLOS methods are also objects. We proceeded to create a mixin class out of the standard-method class and the slots we need to reason about actions (e.g. preconditions, effects on the world, etc.). The following step is to make the relevant methods instances of this 'action-method-class'. Now, during execution, once we have the method object, we know *what* to execute and *why* it is executed. Same for planning. My request was made for the sake of efficiency; it turns out that every method of interest to me is called through a macro. Therefore I do have access to the generic function-name and to its arguments, but I'm trying to avoid redundant calls to compute-applicable-methods because I need, for monitoring purposes, to reason about *every* action-modeling method executed. Thus, calling it myself would involve performing method lookup *twice* per method invocation. > Looked at another way, why aren't you also proposing to modify Lisp > to note the currently executing function? I knew my comment would look a bit like that. The difference is that I believe one can do much more with a method object than with a 'function object'. I thought I was careful enough not to 'propose' a change because I am well aware I am dealing with concepts and implications that I don't master yet. I guess your opinion is 'no, it does not warrant such an addition' and that I should pursue another avenue. That's fine with me. I am not looking for votes, just opinions and pointers. Thanks, Martin Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA15898; Tue, 21 Nov 89 17:40:30 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 21 NOV 89 17:23:45 PST Return-Path: Redistributed: CommonLoops.pa Received: from ATHENA.MIT.EDU ([18.72.0.39]) by Xerox.COM ; 21 NOV 89 15:49:00 PST Received: from M9-520-1.MIT.EDU by ATHENA.MIT.EDU with SMTP id AA20060; Tue, 21 Nov 89 18:48:54 EST From: janson@ATHENA.MIT.EDU Received: by M9-520-1.MIT.EDU (5.61/4.7) id AA18291; Tue, 21 Nov 89 18:48:40 -0500 Message-Id: <8911212348.AA18291@M9-520-1.MIT.EDU> To: CommonLoops.pa@Xerox.COM Subject: subtypep Date: Tue, 21 Nov 89 18:48:36 EST i am using franz-allegro common lisp: "3.1.beta.28 [DEC 3100] (8/3;8/7/89)" the version of PCL is as supplied by them. i have been attempting to use subtypep to determine whether two classes are related, but it has not performed as i had expected it to. under "Integrating Types and Classes" in the 88-002R document it says: that (subtypep ) will return t t if either is a subclass of or they are the same class. shouldnt this mean that under the following circumstances subtypep should by returning t ? ... (pcl:defclass test nil nil) NIL (pcl:defclass subtest (test) nil) NIL (subtypep 'subtest 'test) NIL NIL (subtypep (pcl:find-class 'subtest) (pcl:find-class 'test)) NIL NIL i did locate an un-exported function subclassp which does what i would like. should i come to depend on it? thanks. james anderson. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA18117; Tue, 21 Nov 89 21:23:00 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 21 NOV 89 21:25:42 PST Return-Path: Redistributed: CommonLoops.pa Received: from uunet.uu.net ([192.48.96.2]) by Xerox.COM ; 21 NOV 89 21:22:57 PST Received: by uunet.uu.net (5.61/1.14) with UUCP id AA22315; Wed, 22 Nov 89 00:22:51 -0500 Received: by franz.Franz.COM (MC 2.0/FI-1.0) id AA00702; Tue, 21 Nov 89 20:40:07 PST Received: by fiona.Franz.COM (4.0/FI-1.0) id AA02291; Tue, 21 Nov 89 20:39:09 PST Date: Tue, 21 Nov 89 20:39:09 PST From: smh@franz.com (Steve Haflich) Message-Id: <8911220439.AA02291@fiona.Franz.COM> To: janson@ATHENA.MIT.EDU Cc: CommonLoops.pa@Xerox.COM In-Reply-To: janson@ATHENA.MIT.EDU's message of Tue, 21 Nov 89 18:48:36 EST <8911212348.AA18291@M9-520-1.MIT.EDU> Subject: subtypep From: janson@ATHENA.MIT.EDU i am using franz-allegro common lisp: "3.1.beta.28 [DEC 3100] (8/3;8/7/89)" the version of PCL is as supplied by them. i have been attempting to use subtypep to determine whether two classes are related, but it has not performed as i had expected it to. under "Integrating Types and Classes" in the 88-002R document it says: that (subtypep ) will return t t if either is a subclass of or they are the same class. shouldnt this mean that under the following circumstances subtypep should by returning t ? PCL is not CLOS, and "portable" PCL has no way to make class objects be recognized as types by the Common Lisp type system. The SUBTYPEP in Allegro does not yet understand classes as types. You will note that SUBTYPEP returns NIL even if its arguments aren't known or valid types. (Perhaps it would be better for SUBTYPEP to signal error for unknown types. It certainly "is an error" but there is no requirement that the error be signalled.) i did locate an un-exported function subclassp which does what i would like. should i come to depend on it? I would assume this has been provided in PCL as a stopgap until implementations have integrated implementations of CLOS. It seems reasonable for you to use it on this basis, with the understanding that someday you will probably have to do a little bit of code editing some time in the future. If you intend your code to last a long time, document this dependency. The double colons in your code will serve as an additional reminder, of course. [By the way, I'm not sure whether PCL::SUBCLASSP will do the right thing if the superclasses of a class are not yet all defined. I don't know that it will fail, but I don't know that it will work, either. If this is important to your application, check it out...] Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA23870; Tue, 28 Nov 89 02:12:01 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 27 NOV 89 16:07:28 PST Return-Path: Redistributed: commonloops.pa Received: from uc.msc.umn.edu ([128.101.1.3]) by Xerox.COM ; 27 NOV 89 16:01:53 PST Received: from [192.28.1.3] by uc.msc.umn.edu (5.59/1.14) id AA15001; Mon, 27 Nov 89 17:59:48 CST Received: by mmm.serc.3m.com ( 3M/SERC - 4.0/BDR-1.0) id AA06812; Mon, 27 Nov 89 18:01:50 CST Date: Mon, 27 Nov 89 18:01:50 CST From: us015029@serc.3m.com (John E. Collins) Message-Id: <8911280001.AA06812@mmm.serc.3m.com> To: commonloops.pa@Xerox.COM Subject: patch to victoria-day pcl Faced with a strong desire to create and use subclasses of standard-method, I encountered two problems with Victoria-Day PCL. 1. The defgeneric form does not accept options, especially the :method-class option. 2. The defmethod form (and defclass and defgeneric), at least in the Franz Allegro Common Lisp (Sun 4) port does not return its specified value, but instead returns nil. This means you have to go through compute-applicable-methods or some such to get at the method you just defined. The following patch resolves both of these problems, at least for the Franz Allegro/Sun-4 port. I have made defgeneric a top-level form, evaluated at the same times as defmethod; I parse the options list as I interpret the CLOS spec, and I modified make-top-level-form to return the value, at least in my port. This latter change may be bogus - I don't know what the purpose of the second eval-when is, but I changed it as shown below and ran all the tests, and I also compiled and tested my own extensive batch of CLOS code, and it seems to work fine. Maybe someone could enlighten me. Thanks. ------------------------------------------------------------------------ John Collins Phone: +1 (612) 736 0778 3M Company FAX: +1 (612) 733 2165 3M Center, Building 260-6A-08 Internet: jecollins@mmm.serc.3M.com St. Paul, MN 55144-1000 UUCP: ...!uiucuxc!mmm!jecollins ------------------------------------------------------------------------ ;;; -*- Package: PCL Mode: COMMON-LISP -*- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (in-package :pcl) ;;; Make defgeneric accept options (at least the ones that actually work) ;;; These are the defgeneric options that seem to work -- (defvar *working-generic-function-options* '(:generic-function-class :method-class)) (defun expand-defgeneric (function-specifier lambda-list options) (make-top-level-form `(defgeneric ,function-specifier) '(compile load eval) `(load-defgeneric ',function-specifier ',lambda-list ,(cons 'list (mapcan #'(lambda (option) (ecase option ((:generic-function-class :method-class) (let ((class-name (getf options option))) (when class-name (list option `(find-class ',class-name))))))) *working-generic-function-options*))))) (defun load-defgeneric (function-specifier lambda-list options) (apply #'ensure-generic-function `(,function-specifier :lambda-list ,lambda-list ,@options))) ;;; Change make-top-level-form so things like defclass and defmethod ;;; that use it return the correct values. All I did was to add ExCL ;;; to the #- to block the eval-when (). An alternative would be to ;;; return a prog1 form instead of the progn form; that makes the ;;; compiler complain about eval-when not at the top level, and ;;; doesn't seem to behave differently anyway, at least on the things ;;; I have tested it on. That includes everything with "test" in its ;;; name in the victoria-day distribution. (defun make-top-level-form (name times form) #+Genera `(top-level-form ,name ,times ,form) #-Genera (progn name (make-progn `(eval-when ,times ,form) #-(or GCLisp :coral ExCL) '(eval-when ())))) Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA03938; Wed, 29 Nov 89 19:49:43 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 29 NOV 89 19:49:30 PST Return-Path: Redistributed: commonloops.PA Received: from Moe.McRCIM.McGill.EDU ([132.206.4.1]) by Xerox.COM ; 29 NOV 89 19:25:43 PST Received: by Moe.McRCIM.McGill.EDU (5.54) id <8911300325.AA23963@Moe.McRCIM.McGill.EDU>; Wed, 29 Nov 89 22:25:10 EST Date: Wed, 29 Nov 89 22:25:10 EST From: Martin Boyer Message-Id: <8911300325.AA23963@Moe.McRCIM.McGill.EDU> To: us015029@serc.3m.com Subject: Defgeneric and method classes (was: patch to victoria-day pcl) Cc: commonloops.PA@Xerox.COM > Date: Mon, 27 Nov 89 18:01:50 CST > From: us015029@serc.3m.com (John E. Collins) > Faced with a strong desire to create and use subclasses of > standard-method, I encountered two problems with Victoria-Day PCL. > > 1. The defgeneric form does not accept options, especially the > :method-class option. See below for a way around this using ensure-generic-function. > 2. The defmethod form (and defclass and defgeneric), at least in the > Franz Allegro Common Lisp (Sun 4) port does not return its > specified value, but instead returns nil. This means you have to > go through compute-applicable-methods or some such to get at the > method you just defined. > > [...] mmm. That is strange, it seems to work for me (Sun/Lucid 3.1). See below how set-attributes-of-previous-method is implemented. I ran into that problem a while ago and kanderso@bbn gave me a useful hint (it's still probably somewhere in the mailing list archives on arisia); ensure-generic-function takes the proper :method-class argument you're looking for. I've been using my own method classes for a while now with great pleasure. Here are some of the functions I've hacked to play with those (the names have been changed to protect the innocent, so there may be bugs, let me know if you get stuck). MY-METHOD-CLASS is sort of a mixin, adding slots to those of the standard-method class. Look at the bottom for an example of how to use the ensure-generic-function. You might also be interested by the DESCRIBE method which shows the precedence list up to standard-method (because beyond that is uninteresting to me). I've also hacked up Victoria Day to "get hold of the method object" while executing a method (refer to the discussion of two weeks ago on this mailing list). It works fairly well, but it is a non-standard extension. I think we should be careful about that sort of "extensions" and for that reason, I'll post it only tomorrow, after I've documented it adequately. For now, I hope this can help you: NOTE: All references to internal PCL symbols are just that: references to symbols in ONE implementatino of CLOS; they are subject to change (though I suspect symbols such as generic-function-method-class are part of the unreleased Meta-Object Protocol, would anyone care to comment?). ;;; FIND-METHOD is not yet part of PCL. ;;; We use the (undocumented) get-method, which works the same way. (setf (symbol-function 'find-method) (symbol-function 'pcl::get-method)) (defclass my-method-class (pcl::standard-method) ;; This slot hold everything *I* need for the demonstration. ( (type :accessor method-type :initarg :type) ) (:documentation "Superclass of all my interesting methods.") ) ;;;; DESCRIBE ;;; Specialize DESCRIBE for MY-METHODs. ;;; (defmethod describe :before ((method my-method-class)) (format t "~&~S is an instance of my methods.~2%" method) (format t "This particular method models the class ~S of type ~S.~%" (class-name (class-of method)) (method-type method)) (let ((precedence-list (mapcar 'class-name (cdr (pcl::class-class-precedence-list (class-of method))))) (ancestors ())) (setq ancestors (loop for class in precedence-list until (eql class 'my-method-class) collecting class)) (when (> (length ancestors) 1) (format t "~%It inherits from the following:~%~{~S ~}" ancestors)) ) (values) ) ;;;; SET-ATTRIBUTES-OF-PREVIOUS-METHOD ;;; Takes any number of attributes (in the form of slot accessors) and values ;;; to define the attributes of the previously defined method (with DEFMETHOD). ;;; The attributes and values form lists. ;;; ;;; Note that since this macro uses the `*' variable, ;;; the macro must be evaluated immediately after the DEFMETHOD form. ;;; ;;; Also note that this is using the LOOP facility of Lucid Common LISP. ;;; ;;; This macro returns nothing. ;;; (defmacro SET-ATTRIBUTES-OF-PREVIOUS-METHOD (&body attributes) (let ((method *)) (loop for attribute in attributes doing (setf ((car attribute) method) (cadr attribute))) (values) ) ) ;;; AN EXAMPLE: ;;; Suppose a particular method is different from all the others in its class. ;;; Once that method is defined, one needs to change the default parameters, ;;; SET-ATTRIBUTES-OF-PREVIOUS-METHOD is used to do it in this fashion: (ensure-generic-function 'foo) (setf (pcl::generic-function-method-class *) (find-class 'my-method-class)) (defmethod foo ( (object bar) ) (values) ) ;;; Here we need to override the default values for the previous method (set-attributes-of-previous-method (method-type 'baz) ) Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA01185; Mon, 4 Dec 89 12:26:45 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 04 DEC 89 10:37:20 PST Return-Path: Redistributed: commonloops.pa Received: from arpa.att.com ([192.20.225.1]) by Xerox.COM ; 04 DEC 89 10:18:06 PST From: lgm%ihlpf.uucp@att.att.com Date: Mon, 4 Dec 89 08:44 CST >From: ihlpf!lgm (Lawrence G Mayka +1 708 713 5166) To: commonloops.pa@Xerox.COM Subject: Should SLOT-VALUE-USING-CLASS affect an :ACCESSOR? Message-Id: <891204-103720-8975@Xerox> In experimenting with SLOT-VALUE-USING-CLASS - the means of specializing slot access - in Victoria Day PCL, I've found that SLOT-VALUE-USING-CLASS affects the behavior of SLOT-VALUE but not of any accessor generic functions defined via the :ACCESSOR slot option on the slots in question. Is this intentional? That is, should the (implicit) slot access inside an accessor be subject to specialization from SLOT-VALUE-USING-CLASS? Lawrence G. Mayka AT&T Bell Laboratories lgm@ihlpf.att.com Standard disclaimer. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA14527; Mon, 11 Dec 89 12:48:02 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 11 DEC 89 11:15:05 PST Date: Mon, 11 Dec 89 11:11 PST From: Gregor.pa@Xerox.COM Subject: changes to metabraid To: CommonLoops.PA@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest Message-Id: <19891211191159.4.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no This message is of primary importance to users of the metaobject protocol. The following dialog with the forthcoming version of PCL shows that some important changes have been made to the inheritance structure of standard metaclasses. PCL> (describe (find-class 't)) # is a class, it is an instance of BUILT-IN-CLASS. Its proper name is T. The direct superclasses are: (), and the direct subclasses are: (STANDARD-OBJECT). The class precedence list is: (T) There are 120 methods specialized for this class. PCL> (describe (find-class 'standard-class)) # is a class, it is an instance of STANDARD-CLASS. Its proper name is STANDARD-CLASS. The direct superclasses are: (STD-CLASS), and the direct subclasses are: (). The class precedence list is: (STANDARD-CLASS STD-CLASS PCL-CLASS CLASS DEFINITION-SOURCE-MIXIN METAOBJECT STANDARD-OBJECT T) There are 10 methods specialized for this class. PCL> (describe (find-class 'funcallable-standard-class)) # is a class, it is an instance of STANDARD-CLASS. Its proper name is FUNCALLABLE-STANDARD-CLASS. The direct superclasses are: (STD-CLASS), and the direct subclasses are: (). The class precedence list is: (FUNCALLABLE-STANDARD-CLASS STD-CLASS PCL-CLASS CLASS DEFINITION-SOURCE-MIXIN METAOBJECT STANDARD-OBJECT T) There are 9 methods specialized for this class. PCL> (describe (find-class 'built-in-class)) # is a class, it is an instance of STANDARD-CLASS. Its proper name is BUILT-IN-CLASS. The direct superclasses are: (PCL-CLASS), and the direct subclasses are: (). The class precedence list is: (BUILT-IN-CLASS PCL-CLASS CLASS DEFINITION-SOURCE-MIXIN METAOBJECT STANDARD-OBJECT T) There are 6 methods specialized for this class. PCL> (describe (find-class 'forward-referenced-class)) # is a class, it is an instance of STANDARD-CLASS. Its proper name is FORWARD-REFERENCED-CLASS. The direct superclasses are: (CLASS), and the direct subclasses are: (). The class precedence list is: (FORWARD-REFERENCED-CLASS CLASS DEFINITION-SOURCE-MIXIN METAOBJECT STANDARD-OBJECT T) There are 3 methods specialized for this class. PCL> (describe (find-class 'pcl-class)) # is a class, it is an instance of STANDARD-CLASS. Its proper name is PCL-CLASS. The direct superclasses are: (CLASS), and the direct subclasses are: (BUILT-IN-CLASS STD-CLASS). The class precedence list is: (PCL-CLASS CLASS DEFINITION-SOURCE-MIXIN METAOBJECT STANDARD-OBJECT T) There are 4 methods specialized for this class. PCL> (describe (find-class 'std-class)) # is a class, it is an instance of STANDARD-CLASS. Its proper name is STD-CLASS. The direct superclasses are: (PCL-CLASS), and the direct subclasses are: (FUNCALLABLE-STANDARD-CLASS STANDARD-CLASS). The class precedence list is: (STD-CLASS PCL-CLASS CLASS DEFINITION-SOURCE-MIXIN METAOBJECT STANDARD-OBJECT T) There are 52 methods specialized for this class. ------- Received: from MCC.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA26680; Sun, 17 Dec 89 12:02:42 -0800 Received: from SAIL.Stanford.EDU by MCC.COM with TCP/SMTP; Sun 17 Dec 89 14:04:00-CST Received: from cs.utah.edu by SAIL.Stanford.EDU with TCP; 17 Dec 89 12:03:30 PST Received: from defun.utah.edu by cs.utah.edu (5.61/utah-2.4-cs) id AA16342; Sun, 17 Dec 89 13:03:46 -0700 Received: by defun.utah.edu (5.61/utah-2.3-leaf) id AA04104; Sun, 17 Dec 89 13:03:42 -0700 From: sandra%defun@cs.utah.edu (Sandra J Loosemore) Message-Id: <8912172003.AA04104@defun.utah.edu> Date: Sun, 17 Dec 89 13:03:41 MST Subject: names of classes in the standard? To: common-lisp-object-system@sail.stanford.edu Does anybody have a list of the standard classes that are specified by the CLOS spec? The list on pages 1-16 and 1-17 includes the ones corresponding to type names already in the language, but not things like STANDARD-OBJECT and STRUCTURE-CLASS that are implied to be standard class names elsewhere in the document. (There is also no specification of what the class precedence lists are for these classes.) I'm aware that there is another list in chapter 3 of the document, but since this was not voted in by X3J13, there is some doubt as to whether symbols like CLASS name classes and are supposed to be external symbols in the COMMON-LISP package. It would be helpful to get a reference to the place in the CLOS document where the specification of the class appears. I have not been able to locate where in the CLOS document some of the class specifiers that appear in the most recent draft of the CL standard were originally defined. -Sandra ------- Received: from MCC.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA01719; Mon, 18 Dec 89 09:32:43 -0800 Received: from SAIL.Stanford.EDU by MCC.COM with TCP/SMTP; Mon 18 Dec 89 11:32:58-CST Received: from STONY-BROOK.SCRC.Symbolics.COM by SAIL.Stanford.EDU with TCP; 18 Dec 89 09:32:22 PST Received: from KENNETH-WILLIAMS.SCRC.Symbolics.COM by STONY-BROOK.SCRC.Symbolics.COM via INTERNET with SMTP id 709431; 18 Dec 89 12:31:49 EST Date: Mon, 18 Dec 89 12:35 EST From: David A. Moon Subject: names of classes in the standard? To: Sandra J Loosemore Cc: common-lisp-object-system@sail.stanford.edu In-Reply-To: <8912172003.AA04104@defun.utah.edu> Message-Id: <19891218173500.6.MOON@KENNETH-WILLIAMS.SCRC.Symbolics.COM> Date: Sun, 17 Dec 89 13:03:41 MST From: sandra%defun@cs.utah.edu (Sandra J Loosemore) Does anybody have a list of the standard classes that are specified by the CLOS spec? Apparently not. Here's what I know about it: I'm pretty confident of the accuracy of the names in the figures on pages 2-22 through 2-24 of the Aug 29, 1989 draft of the ANSI CL spec. I think this correctly reflects various amendments to the CLOS spec that were made by X3J13 including incorporation of the proper amount of material from chapter 3. However, I have not rechecked it line-by-line today. In contrast, the list on page 2-29 has some mistakes. At least the following are missing: generic-function, standard-generic-function, style-warning OK, style-warning is missing from p.2-23 also, and "structures" on p.2-22 should be deleted (structure-object appears on p.2-23). Of course none of these figures tell you which type names are also class names, nor do they tell you what the metaclass is. But I think they do include all the classes with their names spelled correctly, except style-warning which was added in June. Were any other classes added in June or November? (There is also no specification of what the class precedence lists are for these classes.) The class precedence lists can be reconstructed from the supertypes given with the description of each type in chapter 2 of the ANSI CL spec. Would it be better to give the CPL explicitly or is that just a waste of space? Another source of information is the table on p.2-41 of the Aug 29, 1989 draft ANSI CL spec. I believe this table is correct as far as it goes, but it unfortunately fails to list all the classes. In any case it should have been integrated with the other tables. I have not been able to locate where in the CLOS document some of the class specifiers that appear in the most recent draft of the CL standard were originally defined. Some of them were probably never in the CLOS document (88-002R), but were added after that document was published. I'm afraid that the bookkeeping on this may not have been as careful as it should have been. Perhaps we can take the approach of listing all the type specifiers in the draft ANSI CL spec that are -not- supposed to be class names. I mean this as a way to collect information, not as the way the presentation should be in the document. For that, I suggest listing all the type specifier names and for each one listing either its metaclass or "not a class" if it's not a class; this could be done graphically in the type hierarchy diagrams if it wasn't so damn hard to draw such diagrams with TeX. Here's my list, as a start. This falls into three categories: things like AND that are inherently not classes, things like UNSIGNED-BYTE that are abbreviations for other types, and things like SIMPLE-ARRAY that are subtypes of classes that were not deemed critical enough to give classes of their own. AND ATOM BASE-CHARACTER BASE-STRING BIGNUM BIT BROADCAST-STREAM CONCATENATED-STREAM DOUBLE-FLOAT ECHO-STREAM EQL EXTENDED-CHARACTER FILE-STREAM FIXNUM KEYWORD LONG-FLOAT MEMBER MOD NIL NOT OR SATISFIES SHORT-FLOAT SIGNED-BYTE SIMPLE-ARRAY SIMPLE-BASE-STRING SIMPLE-BIT-VECTOR SIMPLE-STRING SIMPLE-VECTOR SINGLE-FLOAT STANDARD-CHAR STRING-STREAM SYNONYM-STREAM TWO-WAY-STREAM UNSIGNED-BYTE VALUES One could quibble with this, in particular, it's unclear why those who added the stream, character, and string subtypes did not make them classes. However, they didn't (I checked the relevant X3J13 documents). Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA04202; Tue, 19 Dec 89 09:31:32 -0800 Received: from PinotNoir.ms by ArpaGateway.ms ; 19 DEC 89 09:32:27 PST Sender: "MAZIERE_TAURAN_CHRISTOPHE.CBVMANRXF"@Xerox.COM Date: 19 Dec 89 07:59:56 PST (Tuesday) Subject: VICTORIA DAY PCL on medley From: "MAZIERE_TAURAN_CHRISTOPHE.CBVMANRXF"@Xerox.COM To: CommonLoops.PA@Xerox.COM Cc: cmt.CBVMANRXF@Xerox.COM Message-Id: <891219-093227-7883@Xerox> Hi, I am beginning to use the above mentionned PCL version which I took in the NB:PARC:XEROXMEDLEY> and PCL>VICTORIA-DAY> directories. First, I had to recompile it to make it work, now, I am doing some benchmarks to see how it compares to Loops, the results are poor, but I noticed that when using MAKE-INSTANCE and when using method calls, I can see INTERPRETED code that is executed. I think that I should be missing something, can somebody help me on that ? Also, PCL-ENV-INTERNAL requires a file ABC to be compiled, does somebody have it ? Thanks. Christophe Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA11681; Tue, 19 Dec 89 14:11:29 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 19 DEC 89 12:42:59 PST Return-Path: Redistributed: CommonLoops.pa Received: from dbl0.CES.CWRU.Edu ([129.22.16.40]) by Xerox.COM ; 19 DEC 89 11:47:25 PST Received: by dbl0.CES.CWRU.Edu (5.61/ane.03.01.89.14) id AA18431; Tue, 19 Dec 89 14:28:02 -0800 Date: Tue, 19 Dec 89 14:28:02 -0800 From: Randall D. Beer Message-Id: <8912192228.AA18431@dbl0.CES.CWRU.Edu> To: CommonLoops.pa@Xerox.COM Subject: PCL I would like to get a copy of PCL for Mac Allegro Common Lisp. Thanks, Randall D. Beer Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA02999; Thu, 21 Dec 89 10:07:06 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 21 DEC 89 10:03:42 PST Return-Path: <@dkuug.dk:normark@iesd.auc.dk> Redistributed: CommonLoops.pa Received: from dkuug.dk ([129.142.96.41]) by Xerox.COM ; 21 DEC 89 09:35:16 PST Received: from iesd.auc.dk by dkuug.dk via EUnet with UUCP (5.61++/IDA-1.2.8) id AA21350; Thu, 21 Dec 89 10:26:46 +0100 Received: by iesd.auc.dk (4.0/SMI-3.4) id AA21637; Wed, 20 Dec 89 13:32:06 +0100 Date: Wed, 20 Dec 89 13:32:06 +0100 From: normark@iesd.auc.dk (Kurt Normark) Message-Id: <8912201232.AA21637@iesd.auc.dk> To: CommonLoops.pa@Xerox.COM Cc: normark@dkuug.dk Subject: Documentation of the Meta-object Protocol Is there available information about "The Common Lisp Object System Meta-Object Protocol" (chapter three of the X3J13 Document)? It would be *very* helpful for my work if I knew something about this protocol. If you know how to get a version of this material (a draft, for instance), I would like to know. Please answer by email (normark@iesd.auc.dk). Currently, I have problems receiving the CommonLoops mailing list. Thanks, Kurt Normark. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA05213; Thu, 21 Dec 89 11:54:55 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 21 DEC 89 11:51:19 PST Return-Path: <@CUNYVM.CUNY.EDU:SARTI@ICE622.GE.CNR.IT> Redistributed: CommonLoops.pa Received: from CUNYVM.CUNY.EDU ([128.228.1.2]) by Xerox.COM ; 21 DEC 89 10:18:04 PST Received: from ICNUCEVX.CNUCE.CNR.IT by CUNYVM.CUNY.EDU (IBM VM SMTP R1.2.2MX) with BSMTP id 7265; Thu, 21 Dec 89 13:18:19 EDT Received: from ICE622 by ICNUCEVX.CNUCE.CNR.IT; Thu, 21 Dec 89 16:25 MET Date: Thu, 21 Dec 89 16:23 MET From: SARTI%ICE622.GE.CNR.IT@CUNYVM.CUNY.EDU Subject: RE: PCL on Mac Allegro To: CommonLoops.pa@Xerox.COM X-Original-To: clos, SARTI Message-Id: <891221-115119-6014@Xerox> >Date: Tue, 19 Dec 89 14:28:02 -0800 >From: Randall D. Beer >Message-Id: <8912192228.AA18431@dbl0.CES.CWRU.Edu> >To: CommonLoops.pa@Xerox.COM >Subject: PCL > >I would like to get a copy of PCL for Mac Allegro Common Lisp. > >Thanks, >Randall D. Beer We have successfully installed the PCL package on Mac Allegro Common LISP v. 1.2 from the sources available on the ftp server parcvax.xerox.com If you need more details, we can send them directly to you. Augusto Chioccariello, Luigi Sarti Istituto per le Tecnologie Didattiche Consiglio Nazionale delle Ricerche GENOA (ITALY) Reply to: SARTI@IGEICE.BITNET Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA25164; Thu, 21 Dec 89 23:52:49 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 21 DEC 89 23:57:16 PST Sender: "MAZIERE_TAURAN_CHRISTOPHE.CBVMANRXF"@Xerox.COM Date: 21 Dec 89 10:39:01 PST (Thursday) Subject: PCL on medley From: "MAZIERE_TAURAN_CHRISTOPHE.CBVMANRXF"@Xerox.COM To: CommonLoops.PA@Xerox.COM Cc: cmt.CBVMANRXF@Xerox.COM Message-Id: <891221-235716-7614@Xerox> Tanks to Yashuhiko Kiuchi and Steve Lanning for your answers I confirm that the compiled files in the {NB:PARC}VICTORIA-DAY> do NOT load correctly for some reason, the symbol |PCL:: standard-method predicate| gets interned twice ! The first time with the correct definition the second time with no function definition. This makes the loading process break while loading FIXUP when the function |PCL:: standard-method predicate| gets called. I recompiled everything, by getting rid of the reference to the ABC file in PCL-ENV-INTERNAL and loading exports.all. Question: What is ABC ? I have been able to get rid of the interpreted code by saving the classes and method to a file, then COMPILE-FILE and LOAD the resulting dfasl file. Question: how do you compile IN CORE ? Can you email me a copy of the CLOS specification ? The only document we have here is the 3 pages in the lyric lisp users documentation !! Thanks , Christophe Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA25182; Thu, 21 Dec 89 23:56:06 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 21 DEC 89 23:58:08 PST Sender: "MAZIERE_TAURAN_CHRISTOPHE.CBVMANRXF"@Xerox.COM Date: 21 Dec 89 12:01:10 PST (Thursday) Subject: VICTORIA DAY PCL on medley(suite) From: "MAZIERE_TAURAN_CHRISTOPHE.CBVMANRXF"@Xerox.COM To: CommonLoops.PA@Xerox.COM Cc: cmt.CBVMANRXF@Xerox.COM Message-Id: <891221-235808-7616@Xerox> Tanks to Yashuhiko Kiuchi and Steve Lanning for your answers I confirm that the compiled files in the {NB:PARC}VICTORIA-DAY> do NOT load correctly for some reason, the symbol |PCL:: standard-method predicate| gets interned twice ! The first time with the correct definition the second time with no function definition. This makes the loading process break while loading FIXUP when the function |PCL:: standard-method predicate| gets called. I recompiled everything, by getting rid of the reference to the ABC file in PCL-ENV-INTERNAL and loading exports.all. Question: What is ABC ? I have been able to get rid of the interpreted code by saving the classes and method to a file, then COMPILE-FILE and LOAD the resulting dfasl file. Question: how do you compile IN CORE ? Also INITIALIZE-PCL-ENV in MEDLEY-PCL-ENV refers to an unknown function: DEFMETHOD-SETF Can you email me a copy of the CLOS specification ? The only document we have here is the 3 pages in the lyric lisp users documentation !! Thanks , Christophe Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA04612; Wed, 3 Jan 90 02:03:36 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 02 JAN 90 16:30:48 PST Return-Path: Redistributed: commonloops.pa Received: from atc.boeing.com ([130.42.28.80]) by Xerox.COM ; 02 JAN 90 15:44:54 PST Received: by atc.boeing.com on Tue, 2 Jan 90 15:45:29 PST From: Ahmed Zayan Received: by satsop.atc.boeing.com (3.2/SMI-3.0DEV3) id AA10444; Tue, 2 Jan 90 15:45:55 PST Date: Tue, 2 Jan 90 15:45:55 PST Message-Id: <9001022345.AA10444@satsop.atc.boeing.com> To: commonloops.pa@Xerox.COM Subject: new user Please add my name to your mail list for clos users. Name : Ahmed B. Zayan e-mail : azayan@atc.boeing.co Thanks. AZ Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA17814; Wed, 3 Jan 90 11:47:13 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 03 JAN 90 11:06:13 PST Return-Path: Redistributed: commonloops.pa Received: from cheops.cis.ohio-state.edu ([128.146.8.62]) by Xerox.COM ; 03 JAN 90 11:02:36 PST Received: from aristotle.cis.ohio-state.edu by cheops.cis.ohio-state.edu (5.61/4.891221) id AA21511; Wed, 3 Jan 90 14:02:30 -0500 Received: by aristotle.cis.ohio-state.edu (5.61/4.890524) id AA00408; Wed, 3 Jan 90 14:02:27 -0500 Date: Wed, 3 Jan 90 14:02:27 -0500 From: Arun Welch Message-Id: <9001031902.AA00408@aristotle.cis.ohio-state.edu> To: commonloops.pa@Xerox.COM Subject: Question about methods Given a method, I'd like to put a wrapper on it such that the result of calling the method is printed out to *trace-output*. This is analogous to giving an after advice to a function (at least in the lisps I'm familiar with). Is there some way for an after method to get the results of the previous computation, or is the right way to do it to use an around method as follows: (defmethod foo :around ((bar some-object)) (prog ((result (call-next-method))) (print result *trace-output*) result)) The behaviour I'm looking for would be analogous to (advise foo :after '(print value *trace-output*)) ...arun Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA18945; Wed, 3 Jan 90 13:24:53 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 03 JAN 90 13:25:10 PST Return-Path: Redistributed: commonloops.pa Received: from lucid.com ([192.26.25.1]) by Xerox.COM ; 03 JAN 90 13:23:14 PST Received: from vesuvius ([192.31.212.11]) by lucid.com id AA23564g; Wed, 3 Jan 90 13:23:00 PST Received: by vesuvius id AA27724g; Wed, 3 Jan 90 13:20:46 PST Date: Wed, 3 Jan 90 13:20:46 PST From: Peter Benson Message-Id: <9001032120.AA27724@vesuvius> To: welch@cis.ohio-state.edu Cc: commonloops.pa@Xerox.COM In-Reply-To: Arun Welch's message of Wed, 3 Jan 90 14:02:27 -0500 <9001031902.AA00408@aristotle.cis.ohio-state.edu> Subject: Question about methods Redistributed: commonloops.pa Date: Wed, 3 Jan 90 14:02:27 -0500 From: Arun Welch Given a method, I'd like to put a wrapper on it such that the result of calling the method is printed out to *trace-output*. This is analogous to giving an after advice to a function (at least in the lisps I'm familiar with). Is there some way for an after method to get the results of the previous computation, or is the right way to do it to use an around method as follows: (defmethod foo :around ((bar some-object)) (prog ((result (call-next-method))) (print result *trace-output*) result)) The behaviour I'm looking for would be analogous to (advise foo :after '(print value *trace-output*)) ...arun In general the closest thing to "the right thing" would probably be: (defmethod foo :around ((bar some-object)) (let ((results (multiple-value-list (call-next-method)))) (print (car results) *trace-output*) ;; and anything else you want with results (values-list results))) This is not perfect because FOO may already have an :AROUND method for SOME-OBJECTs. If you know FOO on SOME-OBJECT *ALWAYS* returns one value then your definition will work. This is kind of a drag because it clearly conses. Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA02984; Thu, 4 Jan 90 02:20:34 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 04 JAN 90 00:19:56 PST Return-Path: <@CUNYVM.CUNY.EDU:PT_MAGEE@VAX.ACS.OPEN.AC.UK> Redistributed: commonloops.pa Received: from CUNYVM.CUNY.EDU ([128.228.1.2]) by Xerox.COM ; 04 JAN 90 00:18:18 PST Received: from UKACRL.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP R1.2.2MX) with BSMTP id 9862; Thu, 04 Jan 90 03:18:33 EDT Received: from RL.IB by UKACRL.BITNET (Mailer X1.25) with BSMTP id 5435; Thu, 04 Jan 90 08:16:12 GMT Received: from RL.IB by UK.AC.RL.IB (Mailer X1.25) with BSMTP id 5956; Thu, 04 Jan 90 08:16:11 GM Via: UK.AC.OU.ACSVAX; 4 JAN 90 8:16:04 GMT Date: Wed, 3 JAN 90 13:47:58 GMT From: PT_MAGEE%VAX.ACS.OPEN.AC.UK@CUNYVM.CUNY.EDU To: commonloops.pa@Xerox.COM Subject: Windows... Sender: JANET "PT_MAGEE@UK.AC.OPEN.ACS.VAX" Message-Id: <900104-001956-3467@Xerox> Anyone got any experience/views on the window wars CLUE vs CLIM? I've heard everything from CLIM being ignored to CLIM being an ANSI standard. Pete. Received: from Xerox.COM by arisia.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA11850; Thu, 4 Jan 90 15:16:20 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 04 JAN 90 13:29:52 PST Return-Path: Redistributed: commonloops.pa Received: from uxc.cso.uiuc.edu ([128.174.5.50]) by Xerox.COM ; 04 JAN 90 13:17:36 PST Received: from mmm.serc.3m.com by uxc.cso.uiuc.edu with UUCP (5.61+/IDA-1.2.8) id AA24861; Thu, 4 Jan 90 14:12:21 -0600 Received: by mmm.serc.3m.com ( 3M/SERC - 4.0/BDR-1.0) id AA01583; Thu, 4 Jan 90 12:43:54 CST Date: Thu, 4 Jan 90 12:43:54 CST From: us269574@mmm.serc.3m.com (Darryn J. Kozak) Message-Id: <9001041843.AA01583@mmm.serc.3m.com> To: PT_MAGEE@vax.acs.open.ac.uk Cc: commonloops.pa@Xerox.COM, djkozak@uxc.cso.uiuc.edu In-Reply-To: uiucuxc!vax.acs.open.ac.uk!PT_MAGEE's message of Wed, 3 JAN 90 13:47:58 GMT <900104-001956-3467@Xerox> Subject: Windows... Pete sent out the following request: > Anyone got any experience/views on the window wars CLUE vs CLIM? I've > heard everything from CLIM being ignored to CLIM being an ANSI > standard. The following message is the agenda (so far) for a "birds of a feather" meeting at the upcoming X conference in Boston. For registration information contact the X consortium: > Return-Path: > Received: from uiucuxc.UUCP by mmm.serc.3m.com ( 3M/SERC - 4.0/BDR-1.0) > id AA10415; Wed, 3 Jan 90 09:46:31 CST > Received: from STONY-BROOK.SCRC.SYMBOLICS.COM by uxc.cso.uiuc.edu with SMTP > (5.61+/IDA-1.2.8) id AA22694; Wed, 3 Jan 90 09:29:57 -0600 > Received: from SUNDOWN.SCRC.Symbolics.COM by STONY-BROOK.SCRC.Symbolics.COM via INTERNET with SMTP id 714983; 3 Jan 90 09:52:12 EST > Date: Wed, 3 Jan 90 09:52 EST > From: Charles Hornig > Subject: Lisp BOF status > To: uiucuxc!sun.com!hmuller, uiucuxc!franz.com!smh, > uiucuxc!A.GP.CS.CMU.EDU!bam, uiucuxc!rd1632.dayton.ncr.com!alr, > uiucuxc!lucid.com!yduJ, uiucuxc!dsg.csc.ti.com!Kimbrough, > uiucuxc!mmm.3m.com!djkozak > Cc: uiucuxc!STONY-BROOK.SCRC.Symbolics.COM!hornig > Message-Id: <19900103145227.1.HORNIG@SUNDOWN.SCRC.Symbolics.COM> > > *** EOOH *** > Return-Path: > Date: Wed, 3 Jan 90 09:52 EST > From: Charles Hornig > Subject: Lisp BOF status > To: uiucuxc!sun.com!hmuller, uiucuxc!franz.com!smh, > uiucuxc!A.GP.CS.CMU.EDU!bam, uiucuxc!rd1632.dayton.ncr.com!alr, > uiucuxc!lucid.com!yduJ, uiucuxc!dsg.csc.ti.com!Kimbrough, > uiucuxc!mmm.3m.com!djkozak > Cc: uiucuxc!STONY-BROOK.SCRC.Symbolics.COM!hornig > > Thank you all for your help in making this an interesting BOF. Here is > what I have lined up so far: > > Presentations from toolkit suppliers: > > (someone TBD) Sun Microsystems > Solo > > Brad Myers Carnegie Mellon University > Garnet > > Kerry Kimbrough Texas Instruments > CLUE and CLIO > > Andrew Ressler > Express Windows > > Charles Hornig Symbolics > CLIM > > Some other Lisp vendors will also be presenting on where they stand on X > toolkit issues: > > Steve Haflich Franz > Where Franz stands on X toolkit issues. > > Judy Anderson Lucid > Where Lucid stands on X toolkit issues. > > I've also had people express interest in discussing the following > issues: > > -- Using C toolkits from Lisp. > > -- Using raw CLX. > Sounds like fun - yes? Darryn Kozak 3M Center 260-6A-08 St. Paul, MN 55144 phone: 612-624-1269 leave messages: 612-733-3271 email: djkozak@mmm.3m.com FAX: 612-733-2165 Received: from MCC.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA24045; Sun, 7 Jan 90 16:37:32 -0800 Received: from SAIL.Stanford.EDU by MCC.COM with TCP/SMTP; Sun 7 Jan 90 18:38:54-CST Received: from Xerox.COM by SAIL.Stanford.EDU with TCP; 7 Jan 90 16:23:30 PST Received: from Semillon.ms by ArpaGateway.ms ; 07 JAN 90 16:23:44 PST Date: Sun, 7 Jan 90 16:17 PST From: Gregor.pa@Xerox.COM Subject: function-keywords meets &rest To: Common-Lisp-Object-System@Sail.Stanford.edu Message-Id: <19900108001758.1.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no We may have already resolved this, but what happens when fucntion-keywords gets a method where the arglist has &rest. Is the second returned value T?? ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA25563; Sun, 7 Jan 90 18:50:34 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 07 JAN 90 18:55:50 PST Date: Sun, 7 Jan 90 18:48 PST From: Gregor.pa@Xerox.COM Subject: Re: Question about methods To: Peter Benson Cc: welch@cis.ohio-state.edu, commonloops.pa@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest In-Reply-To: <9001032120.AA27724@vesuvius> Message-Id: <19900108024851.5.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no Date: Wed, 3 Jan 90 13:20:46 PST From: Peter Benson Date: Wed, 3 Jan 90 14:02:27 -0500 From: Arun Welch Given a method, I'd like to put a wrapper on it such that the result of calling the method is printed out to *trace-output*. In general the closest thing to "the right thing" would probably be: (defmethod foo :around ((bar some-object)) (let ((results (multiple-value-list (call-next-method)))) (print (car results) *trace-output*) ;; and anything else you want with results (values-list results))) This is not perfect because FOO may already have an :AROUND method for SOME-OBJECTs. If you know FOO on SOME-OBJECT *ALWAYS* returns one value then your definition will work. This is kind of a drag because it clearly conses. Personally, I don't like this solution very much. It has the problems you mention, and a number of related ones as well. What if you aren't using STANDARD method combination? Or what if the method you want to trace is itself a :BEFORE, :AFTER or :AROUND method. Following is a solution I like much better. It creates a new method object which encapsulates the one you want to trace. The new method object pretends to have the same qualifiers, specializers and all the same as the old. The one difference is that the function it returns does tracing as well. Some user interface could be added to this to make it easier to use. I haven't done that here because the vagaries of connecting to each implementations trace facility cloud the code too much. (defclass tracer-method (method) ((traced-method :initarg :traced-method :reader traced-method) (function :initarg :function :reader method-function) (generic-function :initform nil :accessor method-generic-function))) (defmethod method-lambda-list ((m tracer-method)) (with-slots (traced-method) m (method-lambda-list traced-method))) (defmethod method-specializers ((m tracer-method)) (with-slots (traced-method) m (method-specializers traced-method))) (defmethod method-qualifiers ((m tracer-method)) (with-slots (traced-method) m (method-qualifiers traced-method))) (defmethod method-qualifiers ((m tracer-method)) (with-slots (traced-method) m (method-qualifiers traced-method))) (defmethod accessor-method-slot-name ((m tracer-method)) (with-slots (traced-method) m (accessor-method-slot-name traced-method))) (defmethod trace-method ((method method)) (let ((gfun (method-generic-function method)) (mfun (method-function method)) (tracer ())) (setq tracer (make-instance 'tracer-method :traced-method method :function #'(lambda (&rest args) (format *trace-output* "Calling ~S" method) (apply-method-function gfun method mfun args)))) (remove-method gfun method) (add-method gfun tracer))) (defmethod untrace-method ((tracer tracer-method)) (let ((gf (method-generic-function tracer))) (remove-method gf tracer) (add-method gf (traced-method tracer)))) ;;; ;;; This is to win in systems without apply-method-function. ;;; (defun apply-method-function (gfun method function args) (apply function args)) ------- Received: from MCC.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA13306; Mon, 8 Jan 90 11:08:16 -0800 Received: from SAIL.Stanford.EDU by MCC.COM with TCP/SMTP; Mon 8 Jan 90 13:08:39-CST Received: from STONY-BROOK.SCRC.Symbolics.COM by SAIL.Stanford.EDU with TCP; 8 Jan 90 11:08:02 PST Received: from KENNETH-WILLIAMS.SCRC.Symbolics.COM by STONY-BROOK.SCRC.Symbolics.COM via INTERNET with SMTP id 718211; 8 Jan 90 13:27:27 EST Date: Mon, 8 Jan 90 13:31 EST From: David A. Moon Subject: function-keywords meets &rest To: Gregor.pa@Xerox.COM Cc: Common-Lisp-Object-System@Sail.Stanford.edu In-Reply-To: <19900108001758.1.GREGOR@SPIFF.parc.xerox.com> Message-Id: <19900108183153.6.MOON@KENNETH-WILLIAMS.SCRC.Symbolics.COM> Line-Fold: No Date: Sun, 7 Jan 90 16:17 PST From: Gregor.pa@Xerox.COM We may have already resolved this, but what happens when fucntion-keywords gets a method where the arglist has &rest. Is the second returned value T?? (A second returned value of T is documented as meaning the lambda-list specifies &allow-other-keys). I couldn't find any evidence of this issue having been raised before. The lambda-list congruency rules (Aug 29 1989 4:06 draft, p.4-19) don't treat &rest and &allow-other-keys the same. In rule 3 &rest without &key is the same as &allow-other-keys, but in rule 4 they are different. An implementation is not a specification, but in the Symbolics implementation of FUNCTION-KEYWORDS currently the second value is true if and only if (member '&allow-other-keys lambda-list) is true (provided that the lambda-list is syntactically valid). Unless there is a reason to change it, I would stick with the 88-002R language, which implies that the values are NIL NIL if the lambda-list does not contain &KEY, and that the values are not affected by the presence of &REST. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA07114; Wed, 10 Jan 90 21:38:15 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 10 JAN 90 11:53:33 PST Return-Path: Redistributed: CommonLoops.pa Received: from gateway.mitre.org ([128.29.31.10]) by Xerox.COM ; 10 JAN 90 11:50:49 PST Return-Path: Received: by gateway.mitre.org (5.54/SMI-2.2) id AA15299; Wed, 10 Jan 90 14:51:57 EST Received: by starbase (4.0/SMI-4.0) id AA00436; Wed, 10 Jan 90 14:46:35 EST Date: Wed, 10 Jan 90 14:46:35 EST From: rich@starbase.mitre.org (Rich Simpson) Message-Id: <9001101946.AA00436@starbase> To: CommonLoops.pa@Xerox.COM Subject: PCL Please send me information on aquiring PCL. My mail address is: rich@starbase.mitre.org Richard Simpson Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA23344; Thu, 11 Jan 90 16:59:03 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 11 JAN 90 16:57:40 PST Return-Path: Redistributed: CommonLoops.PA Received: from umbc3.umbc.edu ([130.85.1.3]) by Xerox.COM ; 11 JAN 90 16:36:17 PST Received: by umbc3.umbc.edu (5.57/Ultrix2.4-C) id AA13968; Thu, 11 Jan 90 19:36:05 EST Received: from kochab.cs.umbc.edu.cs.umbc.e by algol.cs.umbc.edu (4.0/SMI-4.0) id AA04773; Thu, 11 Jan 90 19:36:03 EST Received: by kochab.cs.umbc.edu.cs.umbc.edu (4.0/SMI-3.2-client) id AA00636; Thu, 11 Jan 90 19:40:23 EST Date: Thu, 11 Jan 90 19:40:23 EST From: cdwilli@algol.cs.umbc.edu (Chris Willianson (Guest of Al)) Message-Id: <9001120040.AA00636@kochab.cs.umbc.edu.cs.umbc.edu> To: CommonLoops.PA@Xerox.COM Subject: Problems compiling PCL under VAX LISP 3.0... I'm installing PCL on our VAX under VAX Lisp 3.0, VMS 5.1, but I've run into compilation problems. I'm passing a description of what I've done so far. (I know there's hope for all my efforts. Any help out there? I'd greatly appreciate it!) 1. I edited *pcl-directory* in defsys.lsp to reflect the directory where I had the code residing. 2. I loaded defsys.lsp, then evaluated (pcl::compile-pcl). All went well compiling and loading the following files (I received no errors and no warnings): pkg walk iterate macros low 3. The next file to be compiled was vaxl-low.lsp. It compiled, but I received warnings about two functions that are no longer defined in VAX LISP: SYSTEM::FUNCTION-LAMBDA-VARS and SYSTEM::SLISP-COMPILED-FUNCTION-P. * * * * I looked in vaxl-low for any function definition changes that occurred from version 2 to 3. SYSTEM::*CRITICAL-SECTION-P*, SYSTEM::%SP-INTERRUPT-DEQUEUER, SYSTEM::INTERRUPT-QUEUED-P, and SYSTEM::%SP-B-STORE are still defined. SYSTEM::%SP-POINTER->FIXNUM, SYSTEM::FUNCTION-LAMBDA-VARS, AND SYSTEM::SLISP-COMPILED-FUNCTION-P no longer have function definitions. SYSTEM::FUNCTION-LAMBDA-VARS seems to have been replaced by SYSTEM::FUNCTION-LAMBDA-LIST and SYSTEM::SLISP-COMPILED-FUNCTION-P by SYSTEM::COMPILE-FUNCTION-P. I can't figure out what would have replaced SYSTEM::%SP-POINTER->FIXNUM. Can anyone else from the following evaluation? Lisp> (apropos 'fixnum '(system)) Symbols in package SYSTEM containing the string "FIXNUM": SYSTEM::%SP-FIXNUM->LONG SYSTEM::%SP-FIXNUM->LONGWORD SYSTEM::%SP-SINGLE->FIXNUM SYSTEM::FIXNUMP, has a definition SYSTEM::%SP-FIXNUM->CHARACTER SYSTEM::%SP-CHARACTER->FIXNUM SYSTEM::%SP-FIXNUM->SINGLE SYSTEM::FIXNUMIZE, has a definition SYSTEM::%SP-LONG->FIXNUM SYSTEM::%SP-FIXNUM->DOUBLE SYSTEM::DUMP-FIXNUM, has a definition SYSTEM::*PRINT-FIXNUM-BUFFER*, has a value SYSTEM::%SP-DOUBLE->FIXNUM SYSTEM::%SP-POINTER->FIXNUM MOST-NEGATIVE-FIXNUM, has a value MOST-POSITIVE-FIXNUM, has a value FIXNUM) * * * * 4. Compilation continued with no errors or warnings for fin.lsp. I received several warnings for def.lsp, but they seem unrelated to the problem. Had to do with symbols bound but not used. The compiler had trouble with the next file, boot.lsp, because of the flet of "ignoredp" inside "make-parameter-references." I got the following error message: Error in MAKE-PARAMETER-REFERENCES Compile time fatal error while executing #:ADD-TO-&ENV-FOR-CLC-I2659 Error signalled by ERROR Error message would have been: "Invalid operation on lexical environment: #:G1541 #S(TYPE :NAME T :CODE 332 :BOXED-SIZE 0 :UNBOXED-SIZE 0 :CATEGORY :PREDEFINED-TYPE :COMMON NIL :LAMBDA-LIST NIL :DEFTYPE-EXPANDER NIL :PRIMITIVE-TYPE NIL :PARENT-TYPE NIL :NAMED NIL :INITIAL-OFFSET 0 :CONC-NAME NIL :CONSTRUCTOR NIL :COPIER NIL :PRINT-FUNCTION NIL :SLOT-DESCRIPTORS #() :PREDICATE NIL :TYPEP-LIST NIL :TYPE-OF NIL :ELEMENT-TYPE NIL :ELEMENT-SIZE 0 :OBJECT-LIST NIL :STANDARD-P T :TYPEP-SYMBOL SYSTEM::TRUE :CANON-ARRAY-ELEMENT-TYPE T :CANON-TYPE :SELF :TYPEP-TRANSFORM NIL :SPARE29 NIL :SPARE30 NIL :SPARE31 NIL :SPARE32 NIL)" Surrounding forms: (FLET ((IGNOREDP # #)) (GATHERING (#) (ITERATE # # #))) (BLOCK MAKE-PARAMETER-REFERENCES (FLET (#) (GATHERING # #))) Boot.lsp did compile, though, and loaded. 5. The next problems came in file "vector." Something wrong with function LOOKUP-PV-N: Error in LOOKUP-PV-N Compile time fatal error while executing #:ADD-TO-&ENV-FOR-CLC-I2659 Error signalled by ERROR Error message would have been: "Invalid operation on lexical environment: #:G1541 #S(TYPE :NAME T :CODE 332 :BOXED-SIZE 0 :UNBOXED-SIZE 0 :CATEGORY :PREDEFINED-TYPE :COMMON NIL :LAMBDA-LIST NIL :DEFTYPE-EXPANDER NIL :PRIMITIVE-TYPE NIL :PARENT-TYPE NIL :NAMED NIL :INITIAL-OFFSET 0 :CONC-NAME NIL :CONSTRUCTOR NIL :COPIER NIL :PRINT-FUNCTION NIL :SLOT-DESCRIPTORS #() :PREDICATE NIL :TYPEP-LIST NIL :TYPE-OF NIL :ELEMENT-TYPE NIL :ELEMENT-SIZE 0 :OBJECT-LIST NIL :STANDARD-P T :TYPEP-SYMBOL SYSTEM::TRUE :CANON-ARRAY-ELEMENT-TYPE T :CANON-TYPE :SELF :TYPEP-TRANSFORM NIL :SPARE29 NIL :SPARE30 NIL :SPARE31 NIL :SPARE32 NIL)"NIL Surrounding forms: (LET* ((CACHE *PV-CACHE-N*) (MASK *PV-CACHE-N-MASK*) (OFFSET #)) (DOPLIST (WRAPPER INSTANCE) WRAPPERS-AND-INSTANCES (SETQ OFFSET #)) (SETQ OFFSET (%LOGAND MASK OFFSET))...) (BLOCK LOOKUP-PV-N (LET* (# # #) (DOPLIST # WRAPPERS-AND-INSTANCES #) (SETQ OFFSET #)...)) However, the compiler continued. For the rest of this session, I received errors relating the the problem of compiling "make-parameter-references." The first of these errors came after the error above: LOOKUP-PV-MISS compiled. Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STANDARD-CLASS) SLOTS PV) (CLASS SLOTS PV) NIL LOOKUP-PV-MISS-1 (STANDARD-CLASS T T)) apparently called by: #" INTERN-PV compiled... This same error occurred a total of six times in compiling vector.lsp, and it continued throughout the compilation, popping up in files slots, init, defclass, and std-class. All these files loaded as a binary version even with the errors, except for std-class. At this point, I entered the debugger with the following error: Loading binary of STD-CLASS... Error in SYMBOL-FUNCTION: Symbol has no global function definition: MAKE-INSTANCE Control Stack Debugger Apply #48: (SYMBOL-FUNCTION MAKE-INSTANCE) Debug 1> 6. I knew I had to fix "make-parameter-references" before I could continue, so I rewrote it on the unlikely chance that VAX Lisp 3.0 was choking on the flet statement within. I rewrote the function, making "ignoredp" a function in the top-level environment: (defun ignoredp (symbol declarations) ; include "declarations" in ; parameter list (dolist (decl (cdar declarations)) (when (and (eq (car decl) 'ignore) (memq symbol (cdr decl))) (return t)))) (defun make-parameter-references (specialized-lambda-list required-parameters declarations generic-function-name specializers) (gathering ((references (collecting))) (iterate ((s (list-elements specialized-lambda-list)) (p (list-elements required-parameters))) (progn p) (cond ((not (listp s))) ;; Call ignoredp with extra parameter. ((ignoredp (car s) declarations) (warn "In defmethod ~S ~S, there is a~%~ redundant ignore declaration for the parameter ~S." generic-function-name specializers (car s))) (t (gather (car s) references)))))) 7. I saved boot.lsp with this change, deleted all binaries generated by the compilation, and tried recompiling. I got rid of the errors generated by "make-parameter-references," but I still ended up in the debugger because of "lookup-pv-n." I also still had compilation errors because of functions in vaxl-low. 8. I tried recompiling; a dribble, in all its details, and including a backtrace in the debugger, follows. Dribbling to DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]OUTPUT2.TEXT;1 Lisp> (load "defsys") ; Loading contents of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]DEFSYS.LSP;3 ; MODULE ; MAKE-MODULES ; MAKE-TRANSFORMATIONS ; MAKE-COMPILE-TRANSFORMATION ; MAKE-LOAD-TRANSFORMATION ; MAKE-LOAD-WITHOUT-DEPENDENCIES-TRANSFORMATION ; COMPILE-FILTER ; OPERATE-ON-SYSTEM ; MAKE-SOURCE-PATHNAME ; MAKE-BINARY-PATHNAME ; MAKE-PATHNAME-INTERNAL ; COMPILE-PCL ; LOAD-PCL ; BUG-REPORT-INFO ; RENAME-PCL ; Finished loading DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]DEFSYS.LSP;3 T Lisp> (pcl::compile-pcl) Compiling PKG... Starting compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]PKG.LSP;1 Finished compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]PKG.LSP;1 0 Errors, 0 Warnings Loading binary of PKG... Compiling WALK... Starting compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]WALK.LSP;1 UNBOUND-LEXICAL-FUNCTION compiled. WITH-AUGMENTED-ENVIRONMENT compiled. WITH-AUGMENTED-ENVIRONMENT-INTERNAL compiled. LOOKUP-MACRO-FUNCTION compiled. ENVIRONMENT-MACRO compiled. WITH-NEW-DEFINITION-IN-ENVIRONMENT compiled. CONVERT-MACRO-TO-LAMBDA compiled. WALKER-ENVIRONMENT-BIND compiled. ENV-LOCK compiled. WALKER-ENVIRONMENT-BIND-1 compiled. ENV-WALK-FUNCTION compiled. ENV-WALK-FORM compiled. ENV-DECLARATIONS compiled. ENV-LEXICAL-VARIABLES compiled. NOTE-DECLARATION compiled. NOTE-LEXICAL-BINDING compiled. VARIABLE-LEXICAL-P compiled. VARIABLE-DECLARATION compiled. VARIABLE-SPECIAL-P compiled. VARIABLE-GLOBALLY-SPECIAL-P compiled. GET-WALKER-TEMPLATE-INTERNAL compiled. DEFINE-WALKER-TEMPLATE compiled. GET-WALKER-TEMPLATE compiled. GET-IMPLEMENTATION-DEPENDENT-WALKER-TEMPLATE compiled. ; Starting full GC ... ; ... Full GC finished WALK-FORM compiled. NESTED-WALK-FORM compiled. WALK-FORM-INTERNAL compiled. WALK-TEMPLATE compiled. WALK-TEMPLATE-HANDLE-REPEAT compiled. WALK-TEMPLATE-HANDLE-REPEAT-1 compiled. WALK-REPEAT-EVAL compiled. RECONS compiled. RELIST compiled. RELIST* compiled. RELIST-INTERNAL compiled. WALK-DECLARATIONS compiled. WALK-UNEXPECTED-DECLARE compiled. WALK-ARGLIST compiled. WALK-LET compiled. WALK-LET* compiled. WALK-PROG compiled. WALK-PROG* compiled. WALK-DO compiled. WALK-DO* compiled. WALK-LET/LET* compiled. WALK-PROG/PROG* compiled. WALK-DO/DO* compiled. WALK-LET-IF compiled. WALK-MULTIPLE-VALUE-BIND compiled. WALK-BINDINGS-1 compiled. ; Starting full GC ... ; ... Full GC finished WALK-BINDINGS-2 compiled. WALK-LAMBDA compiled. WALK-NAMED-LAMBDA compiled. WALK-TAGBODY compiled. WALK-TAGBODY-1 compiled. WALK-COMPILER-LET compiled. WALK-MACROLET compiled. WALK-FLET compiled. WALK-LABELS compiled. WALK-IF compiled. Finished compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]WALK.LSP;1 0 Errors, 0 Warnings Loading binary of WALK... Compiling ITERATE... Starting compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]ITERATE.LSP;1 ITERATE compiled. SIMPLE-EXPAND-ITERATE-FORM compiled. ; Starting full GC ... ; ... Full GC finished OPTIMIZE-ITERATE-FORM compiled. EXPAND-INTO-LET compiled. VARIABLES-FROM-LET compiled. ITERATE-TRANSFORM-BODY compiled. PARSE-DECLARATIONS compiled. ; Starting full GC ... ; ... Full GC finished EXTRACT-SPECIAL-BINDINGS compiled. FUNCTION-LAMBDA-P compiled. RENAME-LET-BINDINGS compiled. RENAME-VARIABLES compiled. MV-SETQ compiled. VARIABLE-SAME-P compiled. MAYBE-WARN compiled. INTERVAL compiled. LIST-ELEMENTS compiled. LIST-TAILS compiled. ELEMENTS compiled. PLIST-ELEMENTS compiled. SEQUENCE-ACCESSOR compiled. EACHTIME compiled. WHILE compiled. UNTIL compiled. ; Starting full GC ... ; ... Full GC finished GATHERING compiled. WITH-GATHERING compiled. SIMPLE-EXPAND-GATHERING-FORM compiled. OPTIMIZE-GATHERING-FORM compiled. RENAME-AND-CAPTURE-VARIABLES compiled. WALK-GATHERING-BODY compiled. COLLECTING compiled. JOINING compiled. MAXIMIZING compiled. MINIMIZING compiled. SUMMING compiled. Finished compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]ITERATE.LSP;1 0 Errors, 0 Warnings Loading binary of ITERATE... Compiling MACROS... Starting compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]MACROS.LSP;1 MEMQ compiled. ; Starting full GC ... ; ... Full GC finished ASSQ compiled. RASSQ compiled. DELQ compiled. POSQ compiled. NEQ compiled. MAKE-CAXR compiled. MAKE-CDXR compiled. TRUE compiled. FALSE compiled. ZERO compiled. MAKE-PLIST compiled. REMTAIL compiled. ONCE-ONLY compiled. EXTRACT-DECLARATIONS compiled. MAKE-KEYWORD compiled. STRING-APPEND compiled. SYMBOL-APPEND compiled. CHECK-MEMBER compiled. ALIST-ENTRY compiled. DESTRUCTURING-BIND compiled. DESTRUCTURE compiled. ; Starting full GC ... ; ... Full GC finished DESTRUCTURE-INTERNAL compiled. COLLECTING-ONCE compiled. DOPLIST compiled. IF* compiled. PRINTING-RANDOM-THING compiled. PRINTING-RANDOM-THING-INTERNAL compiled. CAPITALIZE-WORDS compiled. LEGAL-CLASS-NAME-P compiled. FIND-CLASS compiled. |SETF FIND-CLASS| compiled. FIND-WRAPPER compiled. REDUCE-CONSTANT compiled. GATHERING1 compiled. *LIST-ELEMENTS compiled. *LIST-TAILS compiled. Finished compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]MACROS.LSP;1 0 Errors, 0 Warnings The following are assumed to be functions, but were not declared or defined: CLASS-WRAPPER Loading binary of MACROS... Compiling LOW... Starting compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]LOW.LSP;1 %LOGAND compiled. %LOGXOR compiled. %+ compiled. %- compiled. %* compiled. %/ compiled. %1+ compiled. %1- compiled. %ZEROP compiled. %= compiled. ; Starting full GC ... ; ... Full GC finished %< compiled. %> compiled. %ASH compiled. %MOD compiled. %FLOOR compiled. %SVREF compiled. MAKE-%+ compiled. REDUCE-VARIADIC-TO-BINARY compiled. WITHOUT-INTERRUPTS compiled. MAKE-MEMORY-BLOCK compiled. MEMORY-BLOCK-REF compiled. MAKE-CACHE-MASK compiled. MAKE-MEMORY-BLOCK-MASK compiled. CLEAR-MEMORY-BLOCK compiled. BUILT-IN-WRAPPER-OF compiled. BUILT-IN-CLASS-OF compiled. CLASS-OF-1 compiled. ; Starting full GC ... ; ... Full GC finished WRAPPER-OF-1 compiled. WRAPPER-OF-2 compiled. %%ALLOCATE-INSTANCE--CLASS compiled. %IWMC-CLASS-CLASS-WRAPPER compiled. %IWMC-CLASS-STATIC-SLOTS compiled. |SETF %IWMC-CLASS-CLASS-WRAPPER| compiled. |SETF %IWMC-CLASS-STATIC-SLOTS| compiled. IWMC-CLASS-P compiled. IWMC-CLASS-CLASS-WRAPPER compiled. IWMC-CLASS-STATIC-SLOTS compiled. PRINT-IWMC-CLASS compiled. %ALLOCATE-INSTANCE--CLASS compiled. %ALLOCATE-INSTANCE--CLASS-1 compiled. %ALLOCATE-STATIC-SLOT-STORAGE--CLASS compiled. CLASS-OF--CLASS compiled. MAKE-CLASS-WRAPPER compiled. WRAPPER-CACHE-NO compiled. WRAPPER-INSTANCE-SLOTS-LAYOUT compiled. WRAPPER-CLASS-SLOTS compiled. WRAPPER-CLASS compiled. VALIDATE-WRAPPER compiled. INVALIDATE-WRAPPER compiled. OBJECT-CACHE-NO compiled. FUNCTION-PRETTY-ARGLIST compiled. SET-FUNCTION-PRETTY-ARGLIST compiled. SET-FUNCTION-NAME compiled. SET-FUNCTION-NAME-1 compiled. INTERN-FUNCTION-NAME compiled. IN-THE-COMPILER-P compiled. COMPILE-LAMBDA compiled. COMPILE-LAMBDA-UNCOMPILED compiled. ; Starting full GC ... ; ... Full GC finished COMPILE-LAMBDA-DEFERRED compiled. DEFINE-FUNCTION-TEMPLATE compiled. RESET-TEMPLATED-FUNCTION-TYPES compiled. GET-TEMPLATED-FUNCTION-CONSTRUCTOR compiled. PRE-MAKE-TEMPLATED-FUNCTION-CONSTRUCTOR compiled. COMPILE-TEMPLATED-FUNCTION-CONSTRUCTORS compiled. PRECOMPILE-RANDOM-CODE-SEGMENTS compiled. PRE-MAKE-TEMPLATED-FUNCTION-CONSTRUCTOR-INTERNAL compiled. DONT-COMPILE compiled. COMPILE-TEMPLATED-FUNCTION-CONSTRUCTOR-CONSTRUCTORS compiled. MAKE-TEMPLATED-FUNCTION-CONSTRUCTOR-CONSTRUCTOR compiled. SHOW-TEMPLATED-FUNCTION-TYPES compiled. RECORD-DEFINITION compiled. Finished compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]LOW.LSP;1 0 Errors, 0 Warnings The following are assumed to be functions, but were not declared or defined: CLASS-WRAPPER Loading binary of LOW... Compiling VAXL-LOW... Starting compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]VAXL-LOW.LSP;1 WITHOUT-INTERRUPTS compiled. LOAD-TIME-EVAL compiled. OBJECT-CACHE-NO compiled. PRINTING-RANDOM-THING-INTERNAL compiled. FUNCTION-ARGLIST compiled. Warning in SET-FUNCTION-NAME-1 IGNORE bound but value not used. SET-FUNCTION-NAME-1 compiled. Finished compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]VAXL-LOW.LSP;1 0 Errors, 1 Warnings The following are assumed to be functions, but were not declared or defined: SYSTEM::FUNCTION-LAMBDA-VARS SYSTEM::SLISP-COMPILED-FUNCTION-P Loading binary of VAXL-LOW... Compiling FIN... Starting compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]FIN.LSP;1 FUNCALLABLE-INSTANCE-DATA-POSITION compiled. ALLOCATE-FUNCALLABLE-INSTANCE-1 compiled. ; Starting full GC ... ; ... Full GC finished FUNCALLABLE-INSTANCE-P compiled. SET-FUNCALLABLE-INSTANCE-FUNCTION compiled. MAKE-TRAMPOLINE compiled. FUNCALLABLE-INSTANCE-DATA-1 compiled. CALLED-FIN-WITHOUT-FUNCTION compiled. FUNCALLABLE-INSTANCE-CLASS compiled. FUNCALLABLE-INSTANCE-WRAPPER compiled. FUNCALLABLE-INSTANCE-STATIC-SLOTS compiled. ALLOCATE-FUNCALLABLE-INSTANCE compiled. Finished compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]FIN.LSP;1 0 Errors, 0 Warnings Loading binary of FIN... Compiling DEFS... Starting compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]DEFS.LSP;1 GET-SETF-FUNCTION-NAME compiled. DO-STANDARD-DEFSETF compiled. DO-STANDARD-DEFSETF-1 compiled. DO-DEFSETF compiled. DO-STANDARD-DEFSETFS compiled. ; Starting full GC ... ; ... Full GC finished MAKE-SETF-METHOD-LAMBDA-LIST compiled. PARSE-GSPEC compiled. UNENCAPSULATED-FDEFINITION compiled. FDEFINE-CAREFULLY compiled. GBOUNDP compiled. GMAKUNBOUND compiled. GDEFINITION compiled. |SETF GDEFINITION| compiled. GET-SETF-FUNCTION compiled. |SETF GET-SETF-FUNCTION| compiled. Warning in DO-SATISFIES-DEFTYPE EXPAND-FN bound but value not used. Surrounding forms: (LET* ((SPECIFIER `#) (EXPAND-FN #'#)) (OR (EVAL `#))) (BLOCK DO-SATISFIES-DEFTYPE (LET* (# #) (OR #))) Warning in DO-SATISFIES-DEFTYPE EXPAND-FN bound but value not used. Surrounding forms: (LET* ((SPECIFIER `#) (EXPAND-FN #'#)) (OR (EVAL `#))) (BLOCK DO-SATISFIES-DEFTYPE (LET* (# #) (OR #))) DO-SATISFIES-DEFTYPE compiled. MAKE-TYPE-PREDICATE-NAME compiled. Warning in DEFINE-EARLY-SETFS-AND-TYPE-PREDICATES SUPERS bound but value not used. Surrounding forms: (DESTRUCTURING-BIND (IGNORE NAME SUPERS SLOTS . OPTIONS) DEFCLASS (UNLESS (MEMQ NAME '#) (DO-SATISFIES-DEFTYPE NAME #)) ...) (TAGBODY (GO #:G5339) #:G5338 (DESTRUCTURING-BIND (IGNORE NAME SUPERS SLOTS . OPTIONS) DEFCLASS (UNLESS # #) ...)...) (LET* ((#:G5337 #) (DEFCLASS #)) (DECLARE (LIST #:G5337)) (TAGBODY (GO #:G5339) #:G5338 (DESTRUCTURING-BIND # DEFCLASS # ...)...)) DEFINE-EARLY-SETFS-AND-TYPE-PREDICATES compiled. Warning in #:DEFSETF-SLOT-VALUE-ALWAYS DEFAULT bound but value not used. Surrounding forms: (LET* () (LET* (# # #) (BLOCK SLOT-VALUE-ALWAYS `#))) (FUNCALL #'(LAMBDA (SYSTEM::%ACCESS-ARGLIST NEW-VALUE) (LET* # #)) SYSTEM::NEW-ACCESS-FORM SYSTEM::NEWVAL-VAR) (VALUES SYSTEM::DUMMIES (CDR SYSTEM::ACCESS-FORM) (LIST SYSTEM::NEWVAL-VAR) ...) ; Starting full GC ... ; ... Full GC finished VARIABLE-CLASS compiled. SPECIALIZER-CASE compiled. SPECIALIZER-ECASE compiled. SPECIALIZER-CROSS-CASE compiled. SPECIALIZER-EQ compiled. ; Starting full GC ... ; ... Full GC finished SPECIALIZER-ASSOC compiled. SUB-SPECIALIZER-P compiled. Finished compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]DEFS.LSP;1 0 Errors, 4 Warnings The following are assumed to be functions, but were not declared or defined: CLASS-PRECEDENCE-LIST CLASS-OF Loading binary of DEFS... Compiling BOOT... Starting compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]BOOT.LSP;2 REDIRECT-EARLY-FUNCTION-INTERNAL compiled. DEFGENERIC compiled. EXPAND-DEFGENERIC compiled. LOAD-DEFGENERIC compiled. DEFMETHOD compiled. METHOD-PROTOTYPE-FOR-GF compiled. EXPAND-DEFMETHOD compiled. ; Starting full GC ... ; ... Full GC finished EXPAND-DEFMETHOD-INTERNAL compiled. ; Starting full GC ... ; ... Full GC finished ADD-LEXICAL-FUNCTIONS-TO-METHOD-LAMBDA compiled. IGNOREDP compiled. MAKE-PARAMETER-REFERENCES compiled. METHOD-FUNCTION-PLIST compiled. |SETF METHOD-FUNCTION-PLIST| compiled. METHOD-FUNCTION-GET compiled. |SETF METHOD-FUNCTION-GET| compiled. METHOD-FUNCTION-ISL compiled. METHOD-FUNCTION-NEEDS-NEXT-METHODS-P compiled. LOAD-DEFMETHOD compiled. LOAD-DEFMETHOD-INTERNAL compiled. MAKE-METHOD-SPEC compiled. ENSURE-GENERIC-FUNCTION compiled. EARLY-ENSURE-GF-INTERNAL compiled. EARLY-GF-P compiled. EARLY-GF-METHODS compiled. EARLY-GF-DISCRIMINATOR-CODE compiled. REAL-ENSURE-GF-INTERNAL compiled. ; Starting full GC ... ; ... Full GC finished EARLY-MAKE-A-METHOD compiled. REAL-MAKE-A-METHOD compiled. EARLY-METHOD-SPECIALIZERS compiled. EARLY-METHOD-QUALIFIERS compiled. EARLY-ADD-NAMED-METHOD compiled. ADD-METHOD compiled. REMOVE-METHOD compiled. GET-METHOD compiled. EARLY-UPDATE-DISCRIMINATOR-CODE compiled. EARLY-GET-CPL compiled. EARLY-SORT-METHODS compiled. EARLY-DFUN compiled. ; Starting full GC ... ; ... Full GC finished FIX-EARLY-GENERIC-FUNCTIONS compiled. MAKE-TOP-LEVEL-FORM compiled. MAKE-PROGN compiled. PARSE-DEFMETHOD compiled. PARSE-SPECIALIZERS compiled. UNPARSE-SPECIALIZERS compiled. PARSE-METHOD-OR-SPEC compiled. SPECIALIZED-LAMBDA-LIST-PARAMETERS compiled. SPECIALIZED-LAMBDA-LIST-LAMBDA-LIST compiled. SPECIALIZED-LAMBDA-LIST-SPECIALIZERS compiled. ; Starting full GC ... ; ... Full GC finished PARSE-SPECIALIZED-LAMBDA-LIST compiled. WITH-SLOTS compiled. WITH-ACCESSORS compiled. EXPAND-WITH-SLOTS compiled. EXPAND-WITH-SLOTS-INTERNAL compiled. Finished compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]BOOT.LSP;2 0 Errors, 0 Warnings The following are assumed to be functions, but were not declared or defined: GENERIC-FUNCTION-P CLASS-PROTOTYPE GENERIC-FUNCTION-METHOD-CLASS CLASS-NAME CLASS-OF CAN-OPTIMIZE-ACCESS OPTIMIZE-SLOT-VALUE OPTIMIZE-SET-SLOT-VALUE OPTIMIZE-STANDARD-INSTANCE-ACCESS SORT-SLOTS-INTO-ISL ADD-PV-BINDING INTERN-SLOT-LISTS ADD-NAMED-METHOD MAKE-INSTANCE MAKE-A-METHOD REAL-GET-METHOD BOOTSTRAP-GET-SLOT ALLOCATE-INSTANCE CLASS-WRAPPER CLASS-NO-OF-INSTANCE-SLOTS INITIALIZE-INSTANCE REAL-ADD-METHOD SET-SLOT-VALUE |SETF GENERIC-FUNCTION-NAME| CLASSP METHOD-TYPE-SPECIFIERS METHOD-P METHOD-GENERIC-FUNCTION GENERIC-FUNCTION-NAME METHOD-QUALIFIERS COMPUTE-DISCRIMINATING-FUNCTION-ARGLIST-INFO Loading binary of BOOT... Compiling VECTOR... Starting compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]VECTOR.LSP;1 ; Starting full GC ... ; ... Full GC finished GET-NEXT-WRAPPER-CACHE-NO compiled. MAKE-WRAPPER-CACHE-MASK compiled. SHIFT-WRAPPER-CACHE-LOCATION compiled. COMPUTE-LINE-SIZE compiled. COMPUTE-WRAPPER-CACHE-LOCATION compiled. COMPUTE-WRAPPER-CACHE-LOCATION-1 compiled. COMPUTE-WRAPPER-CACHE-LOCATION-2 compiled. ; Starting full GC ... ; ... Full GC finished COMPUTE-WRAPPER-CACHE-LOCATION-FROM-LINE compiled. INSTANCE-SLOT-POSITION compiled. MAKE-INTERN-LIST-TABLE compiled. INTERN-IN-LIST-TABLE compiled. INTERN-SLOT-LISTS-1 compiled. INTERN-SLOT-LISTS-2 compiled. INTERN-SLOT-LISTS compiled. LOOKUP-PV compiled. ; Starting full GC ... ; ... Full GC finished LOOKUP-PV-1 compiled. LOOKUP-PV-2 compiled. ; Starting full GC ... ; ... Full GC finished LOOKUP-PV-3 compiled. Error in LOOKUP-PV-N Compile time fatal error while executing #:ADD-TO-&ENV-FOR-CLC-I2659 Error signalled by ERROR Error message would have been: "Invalid operation on lexical environment: #:G1541 #S(TYPE :NAME T :CODE 332 :BOXED-SIZE 0 :UNBOXED-SIZE 0 :CATEGORY :PREDEFINED-TYPE :COMMON NIL :LAMBDA-LIST NIL :DEFTYPE-EXPANDER NIL :PRIMITIVE-TYPE NIL :PARENT-TYPE NIL :NAMED NIL :INITIAL-OFFSET 0 :CONC-NAME NIL :CONSTRUCTOR NIL :COPIER NIL :PRINT-FUNCTION NIL :SLOT-DESCRIPTORS #() :PREDICATE NIL :TYPEP-LIST NIL :TYPE-OF NIL :ELEMENT-TYPE NIL :ELEMENT-SIZE 0 :OBJECT-LIST NIL :STANDARD-P T :TYPEP-SYMBOL SYSTEM::TRUE :CANON-ARRAY-ELEMENT-TYPE T :CANON-TYPE :SELF :TYPEP-TRANSFORM NIL :SPARE29 NIL :SPARE30 NIL :SPARE31 NIL :SPARE32 NIL)" Surrounding forms: (LET* ((CACHE *PV-CACHE-N*) (MASK *PV-CACHE-N-MASK*) (OFFSET #)) (DOPLIST (WRAPPER INSTANCE) WRAPPERS-AND-INSTANCES (SETQ OFFSET #)) (SETQ OFFSET (%LOGAND MASK OFFSET))...) (BLOCK LOOKUP-PV-N (LET* (# # #) (DOPLIST # WRAPPERS-AND-INSTANCES #) (SETQ OFFSET #)...)) LOOKUP-PV-MISS compiled. Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: SYSTEM::SLISP-COMPILED-FUNCTION-P with args: (#) apparently called by: #" INTERN-PV compiled. MAKE-PERMUTATION-VECTOR compiled. CAN-OPTIMIZE-ACCESS compiled. Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: SYSTEM::SLISP-COMPILED-FUNCTION-P with args: (#) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: SYSTEM::SLISP-COMPILED-FUNCTION-P with args: (#) apparently called by: #" ; Starting full GC ... ; ... Full GC finished OPTIMIZE-STANDARD-INSTANCE-ACCESS compiled. Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: SYSTEM::SLISP-COMPILED-FUNCTION-P with args: (#) apparently called by: #" SORT-SLOTS-INTO-ISL compiled. COMPUTE-PRIMARY-PV-CACHE-SIZE compiled. Error in ADD-PV-BINDING Compile time fatal error while executing #:ADD-TO-&ENV-FOR-CLC-I2659 Error signalled by ERROR Error message would have been: "Invalid operation on lexical environment: #:G1541 #S(TYPE :NAME T :CODE 332 :BOXED-SIZE 0 :UNBOXED-SIZE 0 :CATEGORY :PREDEFINED-TYPE :COMMON NIL :LAMBDA-LIST NIL :DEFTYPE-EXPANDER NIL :PRIMITIVE-TYPE NIL :PARENT-TYPE NIL :NAMED NIL :INITIAL-OFFSET 0 :CONC-NAME NIL :CONSTRUCTOR NIL :COPIER NIL :PRINT-FUNCTION NIL :SLOT-DESCRIPTORS #() :PREDICATE NIL :TYPEP-LIST NIL :TYPE-OF NIL :ELEMENT-TYPE NIL :ELEMENT-SIZE 0 :OBJECT-LIST NIL :STANDARD-P T :TYPEP-SYMBOL SYSTEM::TRUE :CANON-ARRAY-ELEMENT-TYPE T :CANON-TYPE :SELF :TYPEP-TRANSFORM NIL :SPARE29 NIL :SPARE30 NIL :SPARE31 NIL :SPARE32 NIL)" Surrounding forms: (FLET ((PARAMETER-CLASS # #)) (LET* (# # # # ...) (NCONC PLIST #) (MULTIPLE-VALUE-BIND # # #))) (BLOCK ADD-PV-BINDING (FLET (#) (LET* # # #))) Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: SYSTEM::SLISP-COMPILED-FUNCTION-P with args: (#) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: SYSTEM::SLISP-COMPILED-FUNCTION-P with args: (#) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: SYSTEM::SLISP-COMPILED-FUNCTION-P with args: (#) apparently called by: #" PRIMARY-PV-CACHE-MISS compiled. ; Starting full GC ... ; ... Full GC finished STD-INSTANCE-ACCESS-PV compiled. FSC-INSTANCE-ACCESS-PV compiled. STD-INSTANCE-ACCESS-PV-INTERNAL compiled. PV-ACCESS-TRAP compiled. Finished compilation of file DISK$SCRATCH:[SCRATCH.WILLIAMSON.PCL]VECTOR.LSP;1 9 Errors, 0 Warnings Errors were detected in the following functions: LOOKUP-PV-N ADD-PV-BINDING The following are assumed to be functions, but were not declared or defined: WRAPPER-OF OBSOLETE-INSTANCE-TRAP LOOKUP-PV-MISS-1 CLASS-WRAPPER OPTIMIZE-STANDARD-INSTANCE-ACCESS-INTERNAL CLASS-OF |SETF SLOT-VALUE-USING-CLASS| SLOT-VALUE-USING-CLASS Loading binary of VECTOR... Error in SYSTEM::%SP-BAD-FUNCTION-ERROR: Undefined function called: SYSTEM::SLISP-COMPILED-FUNCTION-P with args: (#) apparently called by: # Control Stack Debugger Apply #50: (SET-FUNCTION-NAME-1 # |(METHOD LOOKUP-PV-MISS-1 (STANDARD-CLASS T T))| (METHOD LOOKUP-PV-MISS-1 (STANDARD-CLASS T T))) Debug 1> backtrace -- Backtrace start -- Apply #50: (SET-FUNCTION-NAME-1 # |(METHOD LOOKUP-PV-MISS-1 (STANDARD-CLASS T T))| (METHOD LOOKUP-PV-MISS-1 (STANDARD-CLASS T T))) Apply #49: (SET-FUNCTION-NAME # (METHOD LOOKUP-PV-MISS-1 (STANDARD-CLASS T T))) Apply #48: (LOAD-DEFMETHOD STANDARD-METHOD LOOKUP-PV-MISS-1 NIL (STANDARD-CLASS T T) (CLASS SLOTS PV) NIL NIL NIL #) Apply #44: (LOAD #S(PATHNAME :HOST "VX8300" :DEVICE "DISK$SCRATCH" :DIRECTORY "SCRATCH.WILLIAMSON.PCL" :NAME "vector" :TYPE "FAS" :VERSION NIL)) Eval #43: (LOAD PATHNAME) Eval #42: (IF PRINT-ONLY PRINT-ONLY (LOAD PATHNAME)) Eval #41: (OR PRINT-ONLY (LOAD PATHNAME)) Eval #40: (SYSTEM::IMPLICIT-PROGN (FORMAT T "~&Loading binary of ~A..." NAME) (OR PRINT-ONLY (LOAD PATHNAME))) Eval #39: (BLOCK LOAD-BINARY (FORMAT T "~&Loading binary of ~A..." NAME) (OR PRINT-ONLY (LOAD PATHNAME))) Apply #37: (LOAD-BINARY VECTOR #S(PATHNAME :HOST "VX8300" :DEVICE "DISK$SCRATCH" :DIRECTORY "SCRATCH.WILLIAMSON.PCL" :NAME "vector" :TYPE "FAS" :VERSION NIL)) Eval #36: (LOAD-BINARY NAME BINARY) Eval #35: (IF (DOLIST (TRANS TRANSFORMATIONS) (AND (EQ (CAR TRANS) :COMPILE) (EQ (CADR TRANS) M) (RETURN TRANS))) (COND ((NULL (PROBE-FILE BINARY)) (LOAD-SOURCE NAME SOURCE)) ((NULL (PROBE-FILE SOURCE)) (LOAD-BINARY NAME BINARY)) ((NOT (YES-OR-NO-P "The definition of this system requires ~ that the module ~A be loaded now even~%~ though it will later be compiled. Should ~ the existing binary version be loaded ~%~ instead of the source?" NAME)) (LOAD-SOURCE NAME SOURCE)) (T (LOAD-BINARY NAME BINARY))) (LOAD-BINARY NAME BINARY)) Eval #34: (LET* ((NAME (MODULE-NAME M)) (*LOAD-VERBOSE* NIL) (SOURCE (MAKE-SOURCE-PATHNAME NAME)) (BINARY (MAKE-BINARY-PATHNAME NAME))) (IF (DOLIST (TRANS TRANSFORMATIONS) (AND (EQ (CAR TRANS) :COMPILE) (EQ (CADR TRANS) M) (RETURN TRANS))) (COND ((NULL (PROBE-FILE BINARY)) (LOAD-SOURCE NAME SOURCE)) ((NULL (PROBE-FILE SOURCE)) (LOAD-BINARY NAME BINARY)) ((NOT (YES-OR-NO-P "The definition of this system requires ~ that the module ~A be loaded now even~%~ though it will later be compiled. Should ~ the existing binary version be loaded ~%~ instead of the source?" NAME)) (LOAD-SOURCE NAME SOURCE)) (T (LOAD-BINARY NAME BINARY))) (LOAD-BINARY NAME BINARY))) Eval #33: (BLOCK LOAD-MODULE (LET* ((NAME (MODULE-NAME M)) (*LOAD-VERBOSE* NIL) (SOURCE (MAKE-SOURCE-PATHNAME NAME)) (BINARY (MAKE-BINARY-PATHNAME NAME))) (IF (DOLIST (TRANS TRANSFORMATIONS) (AND (EQ (CAR TRANS) :COMPILE) (EQ (CADR TRANS) M) (RETURN TRANS))) (COND ((NULL (PROBE-FILE BINARY)) (LOAD-SOURCE NAME SOURCE)) ((NULL (PROBE-FILE SOURCE)) (LOAD-BINARY NAME BINARY)) ((NOT (YES-OR-NO-P "The definition of this system requires ~ that the module ~A be loaded now even~%~ though it will later be compiled. Should ~ the existing binary version be loaded ~%~ instead of the source?" NAME)) (LOAD-SOURCE NAME SOURCE)) (T (LOAD-BINARY NAME BINARY))) (LOAD-BINARY NAME BINARY)))) Apply #31: (LOAD-MODULE #) Eval #30: (LOAD-MODULE (CADR TRANSFORM)) Eval #29: (IF (EQL #:G610 (QUOTE :LOAD)) (LOAD-MODULE (CADR TRANSFORM)) (ERROR "The value of ~S must be one of the following: ~ ~{~S~^, ~}~%Its value is: ~S" (QUOTE (CAR TRANSFORM)) (QUOTE (:COMPILE :LOAD)) (CAR TRANSFORM))) Eval #28: (IF (EQL #:G610 (QUOTE :COMPILE)) (COMPILE-MODULE (CADR TRANSFORM)) (IF (EQL #:G610 (QUOTE :LOAD)) (LOAD-MODULE (CADR TRANSFORM)) (ERROR "The value of ~S must be one of the following: ~ ~{~S~^, ~}~%Its value is: ~S" (QUOTE (CAR TRANSFORM)) (QUOTE (:COMPILE :LOAD)) (CAR TRANSFORM)))) Eval #27: (COND ((EQL #:G610 (QUOTE :COMPILE)) (COMPILE-MODULE (CADR TRANSFORM))) ((EQL #:G610 (QUOTE :LOAD)) (LOAD-MODULE (CADR TRANSFORM))) (T (ERROR "The value of ~S must be one of the following: ~ ~{~S~^, ~}~%Its value is: ~S" (QUOTE (CAR TRANSFORM)) (QUOTE (:COMPILE :LOAD)) (CAR TRANSFORM)))) Eval #26: (LET ((#:G610 (CAR TRANSFORM))) (COND ((EQL #:G610 (QUOTE :COMPILE)) (COMPILE-MODULE (CADR TRANSFORM))) ((EQL #:G610 (QUOTE :LOAD)) (LOAD-MODULE (CADR TRANSFORM))) (T (ERROR "The value of ~S must be one of the following: ~ ~{~S~^, ~}~%Its value is: ~S" (QUOTE (CAR TRANSFORM)) (QUOTE (:COMPILE :LOAD)) (CAR TRANSFORM))))) Eval #25: (ECASE (CAR TRANSFORM) (:COMPILE (COMPILE-MODULE (CADR TRANSFORM))) (:LOAD (LOAD-MODULE (CADR TRANSFORM)))) Eval #24: (LET ((TRANSFORM (POP TRANSFORMATIONS))) (ECASE (CAR TRANSFORM) (:COMPILE (COMPILE-MODULE (CADR TRANSFORM))) (:LOAD (LOAD-MODULE (CADR TRANSFORM))))) Eval #23: (TAGBODY #:G608 (WHEN (NULL TRANSFORMATIONS) (RETURN T)) (LET ((TRANSFORM (POP TRANSFORMATIONS))) (ECASE (CAR TRANSFORM) (:COMPILE (COMPILE-MODULE (CADR TRANSFORM))) (:LOAD (LOAD-MODULE (CADR TRANSFORM))))) (GO #:G608)) Eval #22: (BLOCK NIL (TAGBODY #:G608 (WHEN (NULL TRANSFORMATIONS) (RETURN T)) (LET ((TRANSFORM (POP TRANSFORMATIONS))) (ECASE (CAR TRANSFORM) (:COMPILE (COMPILE-MODULE (CADR TRANSFORM))) (:LOAD (LOAD-MODULE (CADR TRANSFORM))))) (GO #:G608))) Eval #21: (LOOP (WHEN (NULL TRANSFORMATIONS) (RETURN T)) (LET ((TRANSFORM (POP TRANSFORMATIONS))) (ECASE (CAR TRANSFORM) (:COMPILE (COMPILE-MODULE (CADR TRANSFORM))) (:LOAD (LOAD-MODULE (CADR TRANSFORM)))))) Eval #20: (PROGN (LOOP (WHEN (NULL TRANSFORMATIONS) (RETURN T)) (LET ((TRANSFORM (POP TRANSFORMATIONS))) (ECASE (CAR TRANSFORM) (:COMPILE (COMPILE-MODULE (CADR TRANSFORM))) (:LOAD (LOAD-MODULE (CADR TRANSFORM))))))) Eval #19: (SYSTEM::IMPLICIT-PROGN (SETQ TRANSFORMATIONS (ECASE MODE (:COMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION COMPILE-FILTER) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:RECOMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION TRUE) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:RECOMPILE-SOME (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (OR (MEMBER (MODULE-NAME M) ARG) (COMPILE-FILTER M TRANSFORMS)))) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:QUERY-COMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (OR (COMPILE-FILTER M TRANSFORMS) (Y-OR-N-P "Compile ~A?" (MODULE-NAME M))))) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:CONFIRM-COMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (AND (COMPILE-FILTER M TRANSFORMS) (Y-OR-N-P "Go ahead and compile ~A?" (MODULE-NAME M))))) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:LOAD (MAKE-TRANSFORMATIONS MODULES (FUNCTION TRUE) (FUNCTION MAKE-LOAD-TRANSFORMATION))) (:QUERY-LOAD (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (DECLARE (IGNORE TRANSFORMS)) (Y-OR-N-P "Load ~A?" (MODULE-NAME M)))) (FUNCTION MAKE-LOAD-WITHOUT-DEPENDENCIES-TRANSFORMATION))))) (PROGN (LOOP (WHEN (NULL TRANSFORMATIONS) (RETURN T)) (LET ((TRANSFORM (POP TRANSFORMATIONS))) (ECASE (CAR TRANSFORM) (:COMPILE (COMPILE-MODULE (CADR TRANSFORM))) (:LOAD (LOAD-MODULE (CADR TRANSFORM)))))))) Eval #18: (LABELS ((LOAD-SOURCE (NAME PATHNAME) (FORMAT T "~&Loading source of ~A..." NAME) (OR PRINT-ONLY (LOAD PATHNAME))) (LOAD-BINARY (NAME PATHNAME) (FORMAT T "~&Loading binary of ~A..." NAME) (OR PRINT-ONLY (LOAD PATHNAME))) (LOAD-MODULE (M) (LET* ((NAME (MODULE-NAME M)) (*LOAD-VERBOSE* NIL) (SOURCE (MAKE-SOURCE-PATHNAME NAME)) (BINARY (MAKE-BINARY-PATHNAME NAME))) (IF (DOLIST (TRANS TRANSFORMATIONS) (AND (EQ (CAR TRANS) :COMPILE) (EQ (CADR TRANS) M) (RETURN TRANS))) (COND ((NULL (PROBE-FILE BINARY)) (LOAD-SOURCE NAME SOURCE)) ((NULL (PROBE-FILE SOURCE)) (LOAD-BINARY NAME BINARY)) ((NOT (YES-OR-NO-P "The definition of this system requires ~ that the module ~A be loaded now even~%~ though it will later be compiled. Should ~ the existing binary version be loaded ~%~ instead of the source?" NAME)) (LOAD-SOURCE NAME SOURCE)) (T (LOAD-BINARY NAME BINARY))) (LOAD-BINARY NAME BINARY)))) (COMPILE-MODULE (M) (FORMAT T "~&Compiling ~A..." (MODULE-NAME M)) (UNLESS PRINT-ONLY (LET ((NAME (MODULE-NAME M))) (COMPILE-FILE (MAKE-SOURCE-PATHNAME NAME) :OUTPUT-FILE (MAKE-PATHNAME :DEFAULTS (MAKE-BINARY-PATHNAME NAME) :VERSION :NEWEST))))) (TRUE (&REST IGNORE) (DECLARE (IGNORE IGNORE)) (QUOTE T))) (SETQ TRANSFORMATIONS (ECASE MODE (:COMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION COMPILE-FILTER) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:RECOMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION TRUE) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:RECOMPILE-SOME (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (OR (MEMBER (MODULE-NAME M) ARG) (COMPILE-FILTER M TRANSFORMS)))) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:QUERY-COMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (OR (COMPILE-FILTER M TRANSFORMS) (Y-OR-N-P "Compile ~A?" (MODULE-NAME M))))) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:CONFIRM-COMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (AND (COMPILE-FILTER M TRANSFORMS) (Y-OR-N-P "Go ahead and compile ~A?" (MODULE-NAME M))))) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:LOAD (MAKE-TRANSFORMATIONS MODULES (FUNCTION TRUE) (FUNCTION MAKE-LOAD-TRANSFORMATION))) (:QUERY-LOAD (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (DECLARE (IGNORE TRANSFORMS)) (Y-OR-N-P "Load ~A?" (MODULE-NAME M)))) (FUNCTION MAKE-LOAD-WITHOUT-DEPENDENCIES-TRANSFORMATION))))) (PROGN (LOOP (WHEN (NULL TRANSFORMATIONS) (RETURN T)) (LET ((TRANSFORM (POP TRANSFORMATIONS))) (ECASE (CAR TRANSFORM) (:COMPILE (COMPILE-MODULE (CADR TRANSFORM))) (:LOAD (LOAD-MODULE (CADR TRANSFORM)))))))) Eval #17: (LET ((*SYSTEM-DIRECTORY* (FUNCALL (CAR SYSTEM))) (MODULES (CADR SYSTEM)) (TRANSFORMATIONS NIL)) (LABELS ((LOAD-SOURCE (NAME PATHNAME) (FORMAT T "~&Loading source of ~A..." NAME) (OR PRINT-ONLY (LOAD PATHNAME))) (LOAD-BINARY (NAME PATHNAME) (FORMAT T "~&Loading binary of ~A..." NAME) (OR PRINT-ONLY (LOAD PATHNAME))) (LOAD-MODULE (M) (LET* ((NAME (MODULE-NAME M)) (*LOAD-VERBOSE* NIL) (SOURCE (MAKE-SOURCE-PATHNAME NAME)) (BINARY (MAKE-BINARY-PATHNAME NAME))) (IF (DOLIST (TRANS TRANSFORMATIONS) (AND (EQ (CAR TRANS) :COMPILE) (EQ (CADR TRANS) M) (RETURN TRANS))) (COND ((NULL (PROBE-FILE BINARY)) (LOAD-SOURCE NAME SOURCE)) ((NULL (PROBE-FILE SOURCE)) (LOAD-BINARY NAME BINARY)) ((NOT (YES-OR-NO-P "The definition of this system requires ~ that the module ~A be loaded now even~%~ though it will later be compiled. Should ~ the existing binary version be loaded ~%~ instead of the source?" NAME)) (LOAD-SOURCE NAME SOURCE)) (T (LOAD-BINARY NAME BINARY))) (LOAD-BINARY NAME BINARY)))) (COMPILE-MODULE (M) (FORMAT T "~&Compiling ~A..." (MODULE-NAME M)) (UNLESS PRINT-ONLY (LET ((NAME (MODULE-NAME M))) (COMPILE-FILE (MAKE-SOURCE-PATHNAME NAME) :OUTPUT-FILE (MAKE-PATHNAME :DEFAULTS (MAKE-BINARY-PATHNAME NAME) :VERSION :NEWEST))))) (TRUE (&REST IGNORE) (DECLARE (IGNORE IGNORE)) (QUOTE T))) (SETQ TRANSFORMATIONS (ECASE MODE (:COMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION COMPILE-FILTER) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:RECOMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION TRUE) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:RECOMPILE-SOME (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (OR (MEMBER (MODULE-NAME M) ARG) (COMPILE-FILTER M TRANSFORMS)))) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:QUERY-COMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (OR (COMPILE-FILTER M TRANSFORMS) (Y-OR-N-P "Compile ~A?" (MODULE-NAME M))))) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:CONFIRM-COMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (AND (COMPILE-FILTER M TRANSFORMS) (Y-OR-N-P "Go ahead and compile ~A?" (MODULE-NAME M))))) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:LOAD (MAKE-TRANSFORMATIONS MODULES (FUNCTION TRUE) (FUNCTION MAKE-LOAD-TRANSFORMATION))) (:QUERY-LOAD (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (DECLARE (IGNORE TRANSFORMS)) (Y-OR-N-P "Load ~A?" (MODULE-NAME M)))) (FUNCTION MAKE-LOAD-WITHOUT-DEPENDENCIES-TRANSFORMATION))))) (PROGN (LOOP (WHEN (NULL TRANSFORMATIONS) (RETURN T)) (LET ((TRANSFORM (POP TRANSFORMATIONS))) (ECASE (CAR TRANSFORM) (:COMPILE (COMPILE-MODULE (CADR TRANSFORM))) (:LOAD (LOAD-MODULE (CADR TRANSFORM))))))))) Eval #16: (SYSTEM::IMPLICIT-PROGN (UNLESS SYSTEM (ERROR "Can't find system with name ~S." NAME)) (LET ((*SYSTEM-DIRECTORY* (FUNCALL (CAR SYSTEM))) (MODULES (CADR SYSTEM)) (TRANSFORMATIONS NIL)) (LABELS ((LOAD-SOURCE (NAME PATHNAME) (FORMAT T "~&Loading source of ~A..." NAME) (OR PRINT-ONLY (LOAD PATHNAME))) (LOAD-BINARY (NAME PATHNAME) (FORMAT T "~&Loading binary of ~A..." NAME) (OR PRINT-ONLY (LOAD PATHNAME))) (LOAD-MODULE (M) (LET* ((NAME (MODULE-NAME M)) (*LOAD-VERBOSE* NIL) (SOURCE (MAKE-SOURCE-PATHNAME NAME)) (BINARY (MAKE-BINARY-PATHNAME NAME))) (IF (DOLIST (TRANS TRANSFORMATIONS) (AND (EQ (CAR TRANS) :COMPILE) (EQ (CADR TRANS) M) (RETURN TRANS))) (COND ((NULL (PROBE-FILE BINARY)) (LOAD-SOURCE NAME SOURCE)) ((NULL (PROBE-FILE SOURCE)) (LOAD-BINARY NAME BINARY)) ((NOT (YES-OR-NO-P "The definition of this system requires ~ that the module ~A be loaded now even~%~ though it will later be compiled. Should ~ the existing binary version be loaded ~%~ instead of the source?" NAME)) (LOAD-SOURCE NAME SOURCE)) (T (LOAD-BINARY NAME BINARY))) (LOAD-BINARY NAME BINARY)))) (COMPILE-MODULE (M) (FORMAT T "~&Compiling ~A..." (MODULE-NAME M)) (UNLESS PRINT-ONLY (LET ((NAME (MODULE-NAME M))) (COMPILE-FILE (MAKE-SOURCE-PATHNAME NAME) :OUTPUT-FILE (MAKE-PATHNAME :DEFAULTS (MAKE-BINARY-PATHNAME NAME) :VERSION :NEWEST))))) (TRUE (&REST IGNORE) (DECLARE (IGNORE IGNORE)) (QUOTE T))) (SETQ TRANSFORMATIONS (ECASE MODE (:COMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION COMPILE-FILTER) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:RECOMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION TRUE) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:RECOMPILE-SOME (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (OR (MEMBER (MODULE-NAME M) ARG) (COMPILE-FILTER M TRANSFORMS)))) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:QUERY-COMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (OR (COMPILE-FILTER M TRANSFORMS) (Y-OR-N-P "Compile ~A?" (MODULE-NAME M))))) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:CONFIRM-COMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (AND (COMPILE-FILTER M TRANSFORMS) (Y-OR-N-P "Go ahead and compile ~A?" (MODULE-NAME M))))) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:LOAD (MAKE-TRANSFORMATIONS MODULES (FUNCTION TRUE) (FUNCTION MAKE-LOAD-TRANSFORMATION))) (:QUERY-LOAD (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (DECLARE (IGNORE TRANSFORMS)) (Y-OR-N-P "Load ~A?" (MODULE-NAME M)))) (FUNCTION MAKE-LOAD-WITHOUT-DEPENDENCIES-TRANSFORMATION))))) (PROGN (LOOP (WHEN (NULL TRANSFORMATIONS) (RETURN T)) (LET ((TRANSFORM (POP TRANSFORMATIONS))) (ECASE (CAR TRANSFORM) (:COMPILE (COMPILE-MODULE (CADR TRANSFORM))) (:LOAD (LOAD-MODULE (CADR TRANSFORM)))))))))) Eval #15: (LET ((SYSTEM (GET-SYSTEM NAME))) (UNLESS SYSTEM (ERROR "Can't find system with name ~S." NAME)) (LET ((*SYSTEM-DIRECTORY* (FUNCALL (CAR SYSTEM))) (MODULES (CADR SYSTEM)) (TRANSFORMATIONS NIL)) (LABELS ((LOAD-SOURCE (NAME PATHNAME) (FORMAT T "~&Loading source of ~A..." NAME) (OR PRINT-ONLY (LOAD PATHNAME))) (LOAD-BINARY (NAME PATHNAME) (FORMAT T "~&Loading binary of ~A..." NAME) (OR PRINT-ONLY (LOAD PATHNAME))) (LOAD-MODULE (M) (LET* ((NAME (MODULE-NAME M)) (*LOAD-VERBOSE* NIL) (SOURCE (MAKE-SOURCE-PATHNAME NAME)) (BINARY (MAKE-BINARY-PATHNAME NAME))) (IF (DOLIST (TRANS TRANSFORMATIONS) (AND (EQ (CAR TRANS) :COMPILE) (EQ (CADR TRANS) M) (RETURN TRANS))) (COND ((NULL (PROBE-FILE BINARY)) (LOAD-SOURCE NAME SOURCE)) ((NULL (PROBE-FILE SOURCE)) (LOAD-BINARY NAME BINARY)) ((NOT (YES-OR-NO-P "The definition of this system requires ~ that the module ~A be loaded now even~%~ though it will later be compiled. Should ~ the existing binary version be loaded ~%~ instead of the source?" NAME)) (LOAD-SOURCE NAME SOURCE)) (T (LOAD-BINARY NAME BINARY))) (LOAD-BINARY NAME BINARY)))) (COMPILE-MODULE (M) (FORMAT T "~&Compiling ~A..." (MODULE-NAME M)) (UNLESS PRINT-ONLY (LET ((NAME (MODULE-NAME M))) (COMPILE-FILE (MAKE-SOURCE-PATHNAME NAME) :OUTPUT-FILE (MAKE-PATHNAME :DEFAULTS (MAKE-BINARY-PATHNAME NAME) :VERSION :NEWEST))))) (TRUE (&REST IGNORE) (DECLARE (IGNORE IGNORE)) (QUOTE T))) (SETQ TRANSFORMATIONS (ECASE MODE (:COMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION COMPILE-FILTER) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:RECOMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION TRUE) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:RECOMPILE-SOME (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (OR (MEMBER (MODULE-NAME M) ARG) (COMPILE-FILTER M TRANSFORMS)))) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:QUERY-COMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (OR (COMPILE-FILTER M TRANSFORMS) (Y-OR-N-P "Compile ~A?" (MODULE-NAME M))))) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:CONFIRM-COMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (AND (COMPILE-FILTER M TRANSFORMS) (Y-OR-N-P "Go ahead and compile ~A?" (MODULE-NAME M))))) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:LOAD (MAKE-TRANSFORMATIONS MODULES (FUNCTION TRUE) (FUNCTION MAKE-LOAD-TRANSFORMATION))) (:QUERY-LOAD (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (DECLARE (IGNORE TRANSFORMS)) (Y-OR-N-P "Load ~A?" (MODULE-NAME M)))) (FUNCTION MAKE-LOAD-WITHOUT-DEPENDENCIES-TRANSFORMATION))))) (PROGN (LOOP (WHEN (NULL TRANSFORMATIONS) (RETURN T)) (LET ((TRANSFORM (POP TRANSFORMATIONS))) (ECASE (CAR TRANSFORM) (:COMPILE (COMPILE-MODULE (CADR TRANSFORM))) (:LOAD (LOAD-MODULE (CADR TRANSFORM)))))))))) Eval #14: (BLOCK OPERATE-ON-SYSTEM (LET ((SYSTEM (GET-SYSTEM NAME))) (UNLESS SYSTEM (ERROR "Can't find system with name ~S." NAME)) (LET ((*SYSTEM-DIRECTORY* (FUNCALL (CAR SYSTEM))) (MODULES (CADR SYSTEM)) (TRANSFORMATIONS NIL)) (LABELS ((LOAD-SOURCE (NAME PATHNAME) (FORMAT T "~&Loading source of ~A..." NAME) (OR PRINT-ONLY (LOAD PATHNAME))) (LOAD-BINARY (NAME PATHNAME) (FORMAT T "~&Loading binary of ~A..." NAME) (OR PRINT-ONLY (LOAD PATHNAME))) (LOAD-MODULE (M) (LET* ((NAME (MODULE-NAME M)) (*LOAD-VERBOSE* NIL) (SOURCE (MAKE-SOURCE-PATHNAME NAME)) (BINARY (MAKE-BINARY-PATHNAME NAME))) (IF (DOLIST (TRANS TRANSFORMATIONS) (AND (EQ (CAR TRANS) :COMPILE) (EQ (CADR TRANS) M) (RETURN TRANS))) (COND ((NULL (PROBE-FILE BINARY)) (LOAD-SOURCE NAME SOURCE)) ((NULL (PROBE-FILE SOURCE)) (LOAD-BINARY NAME BINARY)) ((NOT (YES-OR-NO-P "The definition of this system requires ~ that the module ~A be loaded now even~%~ though it will later be compiled. Should ~ the existing binary version be loaded ~%~ instead of the source?" NAME)) (LOAD-SOURCE NAME SOURCE)) (T (LOAD-BINARY NAME BINARY))) (LOAD-BINARY NAME BINARY)))) (COMPILE-MODULE (M) (FORMAT T "~&Compiling ~A..." (MODULE-NAME M)) (UNLESS PRINT-ONLY (LET ((NAME (MODULE-NAME M))) (COMPILE-FILE (MAKE-SOURCE-PATHNAME NAME) :OUTPUT-FILE (MAKE-PATHNAME :DEFAULTS (MAKE-BINARY-PATHNAME NAME) :VERSION :NEWEST))))) (TRUE (&REST IGNORE) (DECLARE (IGNORE IGNORE)) (QUOTE T))) (SETQ TRANSFORMATIONS (ECASE MODE (:COMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION COMPILE-FILTER) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:RECOMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION TRUE) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:RECOMPILE-SOME (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (OR (MEMBER (MODULE-NAME M) ARG) (COMPILE-FILTER M TRANSFORMS)))) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:QUERY-COMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (OR (COMPILE-FILTER M TRANSFORMS) (Y-OR-N-P "Compile ~A?" (MODULE-NAME M))))) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:CONFIRM-COMPILE (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (AND (COMPILE-FILTER M TRANSFORMS) (Y-OR-N-P "Go ahead and compile ~A?" (MODULE-NAME M))))) (FUNCTION MAKE-COMPILE-TRANSFORMATION))) (:LOAD (MAKE-TRANSFORMATIONS MODULES (FUNCTION TRUE) (FUNCTION MAKE-LOAD-TRANSFORMATION))) (:QUERY-LOAD (MAKE-TRANSFORMATIONS MODULES (FUNCTION (LAMBDA (M TRANSFORMS) (DECLARE (IGNORE TRANSFORMS)) (Y-OR-N-P "Load ~A?" (MODULE-NAME M)))) (FUNCTION MAKE-LOAD-WITHOUT-DEPENDENCIES-TRANSFORMATION))))) (PROGN (LOOP (WHEN (NULL TRANSFORMATIONS) (RETURN T)) (LET ((TRANSFORM (POP TRANSFORMATIONS))) (ECASE (CAR TRANSFORM) (:COMPILE (COMPILE-MODULE (CADR TRANSFORM))) (:LOAD (LOAD-MODULE (CADR TRANSFORM))))))))))) Apply #12: (OPERATE-ON-SYSTEM PCL :COMPILE 798405 #\NULL) Eval #11: (OPERATE-ON-SYSTEM (QUOTE PCL) :COMPILE) Eval #10: (IF (NULL M) (OPERATE-ON-SYSTEM (QUOTE PCL) :COMPILE) (IF (EQ M :PRINT) (OPERATE-ON-SYSTEM (QUOTE PCL) :COMPILE NIL T) (IF (EQ M :QUERY) (OPERATE-ON-SYSTEM (QUOTE PCL) :QUERY-COMPILE) (IF (EQ M :CONFIRM) (OPERATE-ON-SYSTEM (QUOTE PCL) :CONFIRM-COMPILE) (IF (EQ M (QUOTE T)) (OPERATE-ON-SYSTEM (QUOTE PCL) :RECOMPILE) (IF (LISTP M) (OPERATE-ON-SYSTEM (QUOTE PCL) :COMPILE-FROM M) (IF (SYMBOLP M) (OPERATE-ON-SYSTEM (QUOTE PCL) :RECOMPILE-SOME (SYSTEM::BACKQUOTE ((SYSTEM::UNQUOTE M)))) NIL))))))) Eval #9: (COND ((NULL M) (OPERATE-ON-SYSTEM (QUOTE PCL) :COMPILE)) ((EQ M :PRINT) (OPERATE-ON-SYSTEM (QUOTE PCL) :COMPILE NIL T)) ((EQ M :QUERY) (OPERATE-ON-SYSTEM (QUOTE PCL) :QUERY-COMPILE)) ((EQ M :CONFIRM) (OPERATE-ON-SYSTEM (QUOTE PCL) :CONFIRM-COMPILE)) ((EQ M (QUOTE T)) (OPERATE-ON-SYSTEM (QUOTE PCL) :RECOMPILE)) ((LISTP M) (OPERATE-ON-SYSTEM (QUOTE PCL) :COMPILE-FROM M)) ((SYMBOLP M) (OPERATE-ON-SYSTEM (QUOTE PCL) :RECOMPILE-SOME (SYSTEM::BACKQUOTE ((SYSTEM::UNQUOTE M)))))) Eval #8: (BLOCK COMPILE-PCL (COND ((NULL M) (OPERATE-ON-SYSTEM (QUOTE PCL) :COMPILE)) ((EQ M :PRINT) (OPERATE-ON-SYSTEM (QUOTE PCL) :COMPILE NIL T)) ((EQ M :QUERY) (OPERATE-ON-SYSTEM (QUOTE PCL) :QUERY-COMPILE)) ((EQ M :CONFIRM) (OPERATE-ON-SYSTEM (QUOTE PCL) :CONFIRM-COMPILE)) ((EQ M (QUOTE T)) (OPERATE-ON-SYSTEM (QUOTE PCL) :RECOMPILE)) ((LISTP M) (OPERATE-ON-SYSTEM (QUOTE PCL) :COMPILE-FROM M)) ((SYMBOLP M) (OPERATE-ON-SYSTEM (QUOTE PCL) :RECOMPILE-SOME (SYSTEM::BACKQUOTE ((SYSTEM::UNQUOTE M))))))) Apply #6: (COMPILE-PCL 798493) Eval #5: (COMPILE-PCL) Apply #3: (EVAL (COMPILE-PCL)) -- Backtrace end -- Apply #50: (SET-FUNCTION-NAME-1 # |(METHOD LOOKUP-PV-MISS-1 (STANDARD-CLASS T T))| (METHOD LOOKUP-PV-MISS-1 (STANDARD-CLASS T T))) Debug 1> (dribble) * * * Chris Williamson Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA29640; Fri, 12 Jan 90 00:33:24 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 12 JAN 90 00:30:14 PST Return-Path: Redistributed: CommonLoops.PA Received: from umbc3.umbc.edu ([130.85.1.3]) by Xerox.COM ; 12 JAN 90 00:27:54 PST Received: by umbc3.umbc.edu (5.57/Ultrix2.4-C) id AA17423; Fri, 12 Jan 90 03:27:35 EST Received: from kochab.cs.umbc.edu.cs.umbc.e by algol.cs.umbc.edu (4.0/SMI-4.0) id AA05608; Fri, 12 Jan 90 03:27:40 EST Received: by kochab.cs.umbc.edu.cs.umbc.edu (4.0/SMI-3.2-client) id AA01111; Fri, 12 Jan 90 03:32:03 EST Date: Fri, 12 Jan 90 03:32:03 EST From: cdwilli@algol.cs.umbc.edu (Chris Willianson (Guest of Al)) Message-Id: <9001120832.AA01111@kochab.cs.umbc.edu.cs.umbc.edu> To: CommonLoops.PA@Xerox.COM Subject: Problems compiling PCL under VAX LISP 3.0... I'm installing PCL on a VAX under VAX Lisp 3.0, VMS 5.1, but I've run into compilation problems. I'm passing a description of what I've done so far. (I know there's hope for all my efforts. Any help out there? I'd greatly appreciate it!) 1. I edited *pcl-directory* in defsys.lsp to reflect the directory where I had the code residing. 2. I loaded defsys.lsp, then evaluated (pcl::compile-pcl). All went well compiling and loading the following files (I received no errors and no warnings): pkg walk iterate macros low 3. The next file to be compiled was vaxl-low.lsp. It compiled, but I received warnings about two functions that are no longer defined in VAX LISP: SYSTEM::FUNCTION-LAMBDA-VARS and SYSTEM::SLISP-COMPILED-FUNCTION-P. * * * * I looked in vaxl-low for any function definition changes that occurred from version 2 to 3. SYSTEM::*CRITICAL-SECTION-P*, SYSTEM::%SP-INTERRUPT-DEQUEUER, SYSTEM::INTERRUPT-QUEUED-P, and SYSTEM::%SP-B-STORE are still defined. SYSTEM::%SP-POINTER->FIXNUM, SYSTEM::FUNCTION-LAMBDA-VARS, AND SYSTEM::SLISP-COMPILED-FUNCTION-P no longer have function definitions. SYSTEM::FUNCTION-LAMBDA-VARS seems to have been replaced by SYSTEM::FUNCTION-LAMBDA-LIST and SYSTEM::SLISP-COMPILED-FUNCTION-P by SYSTEM::COMPILE-FUNCTION-P. I can't figure out what would have replaced SYSTEM::%SP-POINTER->FIXNUM. Can anyone else from the following evaluation? Lisp> (apropos 'fixnum '(system)) Symbols in package SYSTEM containing the string "FIXNUM": SYSTEM::%SP-FIXNUM->LONG SYSTEM::%SP-FIXNUM->LONGWORD SYSTEM::%SP-SINGLE->FIXNUM SYSTEM::FIXNUMP, has a definition SYSTEM::%SP-FIXNUM->CHARACTER SYSTEM::%SP-CHARACTER->FIXNUM SYSTEM::%SP-FIXNUM->SINGLE SYSTEM::FIXNUMIZE, has a definition SYSTEM::%SP-LONG->FIXNUM SYSTEM::%SP-FIXNUM->DOUBLE SYSTEM::DUMP-FIXNUM, has a definition SYSTEM::*PRINT-FIXNUM-BUFFER*, has a value SYSTEM::%SP-DOUBLE->FIXNUM SYSTEM::%SP-POINTER->FIXNUM MOST-NEGATIVE-FIXNUM, has a value MOST-POSITIVE-FIXNUM, has a value FIXNUM) * * * * 4. Compilation continued with no errors or warnings for fin.lsp. I received several warnings for def.lsp, but they seem unrelated to the problem. Had to do with symbols bound but not used. The compiler had trouble with the next file, boot.lsp, because of the flet of "ignoredp" inside "make-parameter-references." I got the following error message: Error in MAKE-PARAMETER-REFERENCES Compile time fatal error while executing #:ADD-TO-&ENV-FOR-CLC-I2659 Error signalled by ERROR Error message would have been: "Invalid operation on lexical environment: #:G1541 #S(TYPE :NAME T :CODE 332 :BOXED-SIZE 0 :UNBOXED-SIZE 0 :CATEGORY :PREDEFINED-TYPE :COMMON NIL :LAMBDA-LIST NIL :DEFTYPE-EXPANDER NIL :PRIMITIVE-TYPE NIL :PARENT-TYPE NIL :NAMED NIL :INITIAL-OFFSET 0 :CONC-NAME NIL :CONSTRUCTOR NIL :COPIER NIL :PRINT-FUNCTION NIL :SLOT-DESCRIPTORS #() :PREDICATE NIL :TYPEP-LIST NIL :TYPE-OF NIL :ELEMENT-TYPE NIL :ELEMENT-SIZE 0 :OBJECT-LIST NIL :STANDARD-P T :TYPEP-SYMBOL SYSTEM::TRUE :CANON-ARRAY-ELEMENT-TYPE T :CANON-TYPE :SELF :TYPEP-TRANSFORM NIL :SPARE29 NIL :SPARE30 NIL :SPARE31 NIL :SPARE32 NIL)" Surrounding forms: (FLET ((IGNOREDP # #)) (GATHERING (#) (ITERATE # # #))) (BLOCK MAKE-PARAMETER-REFERENCES (FLET (#) (GATHERING # #))) Boot.lsp did compile, though, and loaded. 5. The next problems came in file "vector." Something wrong with function LOOKUP-PV-N: Error in LOOKUP-PV-N Compile time fatal error while executing #:ADD-TO-&ENV-FOR-CLC-I2659 Error signalled by ERROR Error message would have been: "Invalid operation on lexical environment: #:G1541 #S(TYPE :NAME T :CODE 332 :BOXED-SIZE 0 :UNBOXED-SIZE 0 :CATEGORY :PREDEFINED-TYPE :COMMON NIL :LAMBDA-LIST NIL :DEFTYPE-EXPANDER NIL :PRIMITIVE-TYPE NIL :PARENT-TYPE NIL :NAMED NIL :INITIAL-OFFSET 0 :CONC-NAME NIL :CONSTRUCTOR NIL :COPIER NIL :PRINT-FUNCTION NIL :SLOT-DESCRIPTORS #() :PREDICATE NIL :TYPEP-LIST NIL :TYPE-OF NIL :ELEMENT-TYPE NIL :ELEMENT-SIZE 0 :OBJECT-LIST NIL :STANDARD-P T :TYPEP-SYMBOL SYSTEM::TRUE :CANON-ARRAY-ELEMENT-TYPE T :CANON-TYPE :SELF :TYPEP-TRANSFORM NIL :SPARE29 NIL :SPARE30 NIL :SPARE31 NIL :SPARE32 NIL)"NIL Surrounding forms: (LET* ((CACHE *PV-CACHE-N*) (MASK *PV-CACHE-N-MASK*) (OFFSET #)) (DOPLIST (WRAPPER INSTANCE) WRAPPERS-AND-INSTANCES (SETQ OFFSET #)) (SETQ OFFSET (%LOGAND MASK OFFSET))...) (BLOCK LOOKUP-PV-N (LET* (# # #) (DOPLIST # WRAPPERS-AND-INSTANCES #) (SETQ OFFSET #)...)) However, the compiler continued. For the rest of this session, I received errors relating the the problem of compiling "make-parameter-references." The first of these errors came after the error above: LOOKUP-PV-MISS compiled. Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STANDARD-CLASS) SLOTS PV) (CLASS SLOTS PV) NIL LOOKUP-PV-MISS-1 (STANDARD-CLASS T T)) apparently called by: #" INTERN-PV compiled... This same error occurred a total of six times in compiling vector.lsp, and it continued throughout the compilation, popping up in files slots, init, defclass, and std-class. All these files loaded as a binary version even with the errors, except for std-class. At this point, I entered the debugger with the following error: Loading binary of STD-CLASS... Error in SYMBOL-FUNCTION: Symbol has no global function definition: MAKE-INSTANCE Control Stack Debugger Apply #48: (SYMBOL-FUNCTION MAKE-INSTANCE) Debug 1> 6. I knew I had to fix "make-parameter-references" before I could continue, so I rewrote it on the unlikely chance that VAX Lisp 3.0 was choking on the flet statement within. I rewrote the function, making "ignoredp" a function in the top-level environment: (defun ignoredp (symbol declarations) ; include "declarations" in ; parameter list (dolist (decl (cdar declarations)) (when (and (eq (car decl) 'ignore) (memq symbol (cdr decl))) (return t)))) (defun make-parameter-references (specialized-lambda-list required-parameters declarations generic-function-name specializers) (gathering ((references (collecting))) (iterate ((s (list-elements specialized-lambda-list)) (p (list-elements required-parameters))) (progn p) (cond ((not (listp s))) ;; Call ignoredp with extra parameter. ((ignoredp (car s) declarations) (warn "In defmethod ~S ~S, there is a~%~ redundant ignore declaration for the parameter ~S." generic-function-name specializers (car s))) (t (gather (car s) references)))))) 7. I saved boot.lsp with this change, deleted all binaries generated by the compilation, and tried recompiling. I got rid of the errors generated by "make-parameter-references," but I still ended up in the debugger because of "lookup-pv-n." I also still had compilation errors because of functions in vaxl-low. In my next message I'll send a dribble of a session after taking these steps. Chris Williamson Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA08099; Fri, 12 Jan 90 07:13:00 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 12 JAN 90 07:12:28 PST Return-Path: Redistributed: CommonLoops.PA Received: from decwrl.dec.com ([16.1.0.1]) by Xerox.COM ; 12 JAN 90 07:10:41 PST Received: by decwrl.dec.com; id AA06119; Fri, 12 Jan 90 07:10:18 -0800 Date: Fri, 12 Jan 90 07:10:16 -0800 Message-Id: <9001121510.AA06119@decwrl.dec.com> From: vanroggen@aitg.enet.dec.com (12-Jan-1990 0951) To: cdwilli@algol.cs.umbc.edu Cc: CommonLoops.PA@Xerox.COM, VANROGGEN@aitg.enet.dec.com Subject: Re: Problems compiling PCL under VAX LISP 3.0... The Victoria Day release of PCL is shipped (in both source and compiled forms) in the VAX LISP kit. Look in the LISP$EXAMPLES directory--there is a subdirectory containing PCL. It is possible that whoever installed VAX LISP decided not to install the examples, however. By the way, you might want to run with somewhat more virtual memory-- that also turns on ephemeral GC by default. EGC is turned off when space is tight. The /MEMORY qualifier controls the initial size of the heap; you can increase it at run time with ENLARGE-LISP-MEMORY. Control GC behavior with GC-MODE. Other useful functions are documented in the Implementation and Extensions manual, or try APROPOS of "space", "area", "gc", and "room". ---Walter Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA08238; Fri, 12 Jan 90 07:34:26 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 12 JAN 90 07:37:44 PST Return-Path: <@MCC.COM:loeffler@mcc.com> Redistributed: commonloops.pa Received: from MCC.COM ([128.62.11.10]) by Xerox.COM ; 12 JAN 90 07:36:13 PST Received: from daystar.aca.mcc.com by MCC.COM with TCP/SMTP; Fri 12 Jan 90 09:35:58-CST Date: Fri, 12 Jan 90 09:35:33 CST From: loeffler@mcc.com (David D. Loeffler) Posted-Date: Fri, 12 Jan 90 09:35:33 CST Message-Id: <9001121535.AA02148@daystar.aca.mcc.com> Received: by daystar.aca.mcc.com (4.0/ACAv4.1i) id AA02148; Fri, 12 Jan 90 09:35:33 CST To: azayan@atc.boeing.com Cc: commonloops.pa@Xerox.COM In-Reply-To: Ahmed Zayan's message of Tue, 2 Jan 90 15:45:55 PST <9001022345.AA10444@satsop.atc.boeing.com> Subject: new user Reply-To: David D. Loeffler You have been added to the clos mailing list. Received: from [128.62.11.10] by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA23447; Fri, 12 Jan 90 13:14:47 -0800 Received: from daystar.aca.mcc.com by MCC.COM with TCP/SMTP; Fri 12 Jan 90 13:22:45-CST Date: Fri, 12 Jan 90 13:22:39 CST Posted-Date: Fri, 12 Jan 90 13:22:39 CST Message-Id: <9001121922.AA02205@daystar.aca.mcc.com> Received: by daystar.aca.mcc.com (4.0/ACAv4.1i) id AA02205; Fri, 12 Jan 90 13:22:39 CST To: CL-Cleanup@mcc.com, CL-Window@mcc.com, Common-Lisp@mcc.com, Common-Lisp-Object-System@mcc.com Subject: TEST message from Postmaster From: Common-Lisp-Request@mcc.com Sender: loeffler@daystar.aca.mcc.com Reply-To: Common-Lisp-Request@mcc.com Please disregard this message. It is being send as a test to see how many addresses the mailer bounces. Received: from MCC.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA18168; Tue, 16 Jan 90 18:11:12 -0800 Received: from SAIL.Stanford.EDU by MCC.COM with TCP/SMTP; Tue 16 Jan 90 20:10:46-CST Received: from Xerox.COM by SAIL.Stanford.EDU with TCP; 16 Jan 90 18:10:07 PST Received: from Semillon.ms by ArpaGateway.ms ; 16 JAN 90 18:00:08 PST Date: Tue, 16 Jan 90 18:00 PST From: Gregor.pa@Xerox.COM Subject: method combinations changing To: common-lisp-object-system@sail.stanford.edu Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest Message-Id: <19900117020010.1.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no As near as I can tell, the spec doesn't say enough about long form method combinations to make it possible to do any caching of method lookups in the face of them. Specifically, it doesn't say something like the result returned by the long form method combination must be a function of only the list of applicable methods. Not the time of day or anything like that. Also, we have to deal with restrictions on changing a method combination once it is defined. As part of Common Lisp, you would think that the results of any changes are undefined. But, parts of CLOS say what happens. I think we need a restriction to prevent redefining a method combination. ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA21069; Wed, 17 Jan 90 16:47:44 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 17 JAN 90 15:27:22 PST Return-Path: Redistributed: CommonLoops.pa Received: from serc.cis.ufl.edu ([128.227.224.23]) by Xerox.COM ; 17 JAN 90 14:42:44 PST Received: by serc.cis.ufl.edu (5.61ufl/4.08) id AA12466; Wed, 17 Jan 90 17:42:28 -0500 Date: Wed, 17 Jan 90 17:42:28 -0500 From: Mark Interrante Message-Id: <9001172242.AA12466@serc.cis.ufl.edu> To: CommonLoops.pa@Xerox.COM Subject: New release? Hi, I am going to start using PCL in the near future (2-5 weeks) is there a new verion coming RSN or will it be a few months. Thanks, Mark ----------------------------------------------------------------------------- Mark Interrante Software Engineering Research Center mfi@beach.cis.ufl.edu CIS Department, University of Florida 32611 ----------------------------------------------------------------------------- "Imagine what it would be like if TV actually were good. It would be the end of everything we know." Marvin Minsky Received: from MCC.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA00183; Fri, 19 Jan 90 10:12:40 -0800 Received: from SAIL.Stanford.EDU by MCC.COM with TCP/SMTP; Fri 19 Jan 90 12:12:13-CST Received: from lucid.com by SAIL.Stanford.EDU with TCP; 19 Jan 90 10:11:33 PST Received: from challenger ([192.31.212.17]) by lucid.com id AA18994g; Fri, 19 Jan 90 10:11:05 PST Received: by challenger id AA04630g; Fri, 19 Jan 90 10:12:17 PST Date: Fri, 19 Jan 90 10:12:17 PST From: Patrick Dussud Message-Id: <9001191812.AA04630@challenger> To: Moon@STONY-BROOK.SCRC.Symbolics.COM Cc: common-lisp-object-system@sail.stanford.edu In-Reply-To: David A. Moon's message of Wed, 17 Jan 90 18:18 EST <19900117231819.3.MOON@KENNETH-WILLIAMS.SCRC.Symbolics.COM> Subject: method combinations changing Since method combination are very close to macros, could be adopt the same language about caching and calling? Patrick. Received: from MCC.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA00747; Fri, 19 Jan 90 10:31:06 -0800 Received: from SAIL.Stanford.EDU by MCC.COM with TCP/SMTP; Fri 19 Jan 90 11:41:55-CST Received: from STONY-BROOK.SCRC.Symbolics.COM by SAIL.Stanford.EDU with TCP; 19 Jan 90 09:41:12 PST Received: from KENNETH-WILLIAMS.SCRC.Symbolics.COM by STONY-BROOK.SCRC.Symbolics.COM via INTERNET with SMTP id 724909; 17 Jan 90 18:17:09 EST Date: Wed, 17 Jan 90 18:18 EST From: David A. Moon Subject: method combinations changing To: Gregor.pa@Xerox.COM Cc: common-lisp-object-system@sail.stanford.edu In-Reply-To: <19900117020010.1.GREGOR@SPIFF.parc.xerox.com> Message-Id: <19900117231819.3.MOON@KENNETH-WILLIAMS.SCRC.Symbolics.COM> Line-Fold: No Date: Tue, 16 Jan 90 18:00 PST From: Gregor.pa@Xerox.COM As near as I can tell, the spec doesn't say enough about long form method combinations to make it possible to do any caching of method lookups in the face of them. The same comments apply to short-form method combination, of course, since the operator can be a macro and it never says what happens if you redefine the macro nor does it say in what dynamic environment the macro expander function will be called. Specifically, it doesn't say something like the result returned by the long form method combination must be a function of only the list of applicable methods. Not the time of day or anything like that. 88-002R p.1-29 makes it clear that caching is allowed and expected, but never says what is the key for the cache nor when the cache needs to be recomputed. I'm sure the intent was as you say, that the result depends only on the sorted list of applicable methods (or, rather, that the consequences of changing anything else that the result depends on are unspecified). I think that CLOS as currently documented is generally pretty weak about just when a user-defined method for a system-defined generic function will be called. Also, we have to deal with restrictions on changing a method combination once it is defined. As part of Common Lisp, you would think that the results of any changes are undefined. But, parts of CLOS say what happens. I think we need a restriction to prevent redefining a method combination. I believe the original design of CLOS was that the effect of redefining anything was undefined, as in the rest of Common Lisp. Later, when the language was changed to allow redefinition, not all of the document was updated. I think it's sensible to treat method-combination types like macros, namely the language does not specify whether the new or old definition is used if you redefine it, and it would be useful for a development environment to provide some assistance when you redefine it. ANSI Common Lisp defines circumstances under which the old definition of a macro is guaranteed to be used (I'm not sure why), but I don't see any way to extend that to method-combination types. Received: from MCC.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA04521; Fri, 19 Jan 90 10:56:50 -0800 Received: from SAIL.Stanford.EDU by MCC.COM with TCP/SMTP; Fri 19 Jan 90 12:51:59-CST Received: from STONY-BROOK.SCRC.Symbolics.COM by SAIL.Stanford.EDU with TCP; 19 Jan 90 10:51:16 PST Received: from KENNETH-WILLIAMS.SCRC.Symbolics.COM by STONY-BROOK.SCRC.Symbolics.COM via INTERNET with SMTP id 726365; 19 Jan 90 13:51:19 EST Date: Fri, 19 Jan 90 13:52 EST From: David A. Moon Subject: method combinations changing To: Patrick Dussud Cc: common-lisp-object-system@sail.stanford.edu In-Reply-To: <9001191812.AA04630@challenger> Message-Id: <19900119185231.4.MOON@KENNETH-WILLIAMS.SCRC.Symbolics.COM> Date: Fri, 19 Jan 90 10:12:17 PST From: Patrick Dussud Since method combination are very close to macros, could be adopt the same language about caching and calling? No, for the obvious reason that one can look at a program and point to all the places where a macro is called, but one cannot find in the source text of a program the places where a method combination type is called. It happens inside of generic-function dispatch somewhere, and its arguments come from method definitions scattered all over the program, not from a single form at a single location in the source. Thus what ANSI CL says about when macros must be expanded cannot be reworded to apply to method combination. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA20008; Tue, 23 Jan 90 06:10:51 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 23 JAN 90 04:59:10 PST Return-Path: Redistributed: commonloops.pa Received: from gateway.mitre.org ([128.29.31.10]) by Xerox.COM ; 23 JAN 90 04:36:07 PST Return-Path: Received: by gateway.mitre.org (5.54/SMI-2.2) id AA23606; Tue, 23 Jan 90 07:37:42 EST Received: by starbase (4.0/SMI-4.0) id AA06620; Tue, 23 Jan 90 07:31:47 EST Date: Tue, 23 Jan 90 07:31:47 EST From: pab@starbase.mitre.org (Paul Birkel) Message-Id: <9001231231.AA06620@starbase> To: clos@starbase.mitre.org Subject: Benchmarking CLOS Yes, I know this is a topic fraught with contention (if not down-right obfustication). But I'm interested in comments, anyway. I'm new to CLOS, and am evaluating a commercial CLOS implementation called "MOS" from AI Technology. It is not a PCL derivative, and currently is only available on/under VAX/VMS. The Sun3 port is nearing completion. One important aspect of the product for us is its meta-class extension which integrates (among other things) CLOS objects with a production engine. I'm reasonably satisfied with the production engine aspect of things, and I'm also satisfied with the rationale for deviations ("enhancements") of MOS from CLOS. I'm not sure yet how to best evaluate the performance of MOS itself. AI Technology has implemented MOS on top of the existing VAXLisp (and soon, Lucid) compilers. Therefore they do not claim to have an "optimal" implementation; their benchmarks (very limited) are with respect to (1) object creation in PCL, and (2) defstruct creation, ... period. They intend to move onto a compiler-incorporated CLOS as such become available, so most efficiency issues will eventually be passed to the compiler designer. In the meantime, the major issue for me is whether they stack up reasonably well "across-the-board" against PCL, and decently against compiler-specific comparable defstruct capabilities. So, please help me out with some ideas (code?) for "across-the-board" capabilities which are "must-haves" (and vs. "nice-to-haves"). Thank you. Paul A. Birkel MITRE, Mailstop W418 7525 Colshire Drive McLean, VA 22102-3481 (703) 883-6399 Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA20181; Tue, 23 Jan 90 06:13:48 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 23 JAN 90 05:13:08 PST Return-Path: Redistributed: commonloops.pa Received: from gateway.mitre.org ([128.29.31.10]) by Xerox.COM ; 23 JAN 90 04:22:47 PST Return-Path: Received: by gateway.mitre.org (5.54/SMI-2.2) id AA23473; Tue, 23 Jan 90 07:24:23 EST Received: by starbase (4.0/SMI-4.0) id AA06496; Tue, 23 Jan 90 07:18:28 EST Date: Tue, 23 Jan 90 07:18:28 EST From: pab@starbase.mitre.org (Paul Birkel) Message-Id: <9001231218.AA06496@starbase> To: clos@starbase.mitre.org Subject: Persistant objects In their AAAI88 tutorial, Bobrow and Kiczales refer to an example they used which "[would] sketch how CLOS can be connected to a persistent object system". Alas, I was unable to attend, and the course notes do not mention such a topic. Although I have a couple of ideas on the subject, I'm new to CLOS and would prefer to benefit from the experiences of those who have gone before. Does anyone have any ideas, papers, ongoing research, and/or code implementing any such mechanisms? If so, would they be so kind as to share them? I know of only one commercial implementation of such an idea (Mercury, AI Technology), although various ES shells (KeeConnection, Nexpert, ART "real soon now") have similar (albeit crude) mechanisms for mirroring "objects" in their proprietary representation language into SQL DBMS tables. Thank you. Paul A. Birkel MITRE, Mailstop W418 7525 Colshire Drive McLean, VA 22102-3481 (703) 883-6399 Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA28468; Tue, 23 Jan 90 13:17:12 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 23 JAN 90 13:14:02 PST Return-Path: Redistributed: commonloops.pa Received: from gateway.mitre.org ([128.29.31.10]) by Xerox.COM ; 23 JAN 90 13:06:48 PST Received: by gateway.mitre.org (5.54/SMI-2.2) id AA02065; Tue, 23 Jan 90 16:08:15 EST Received: from mwunix.mitre.org by starbase (4.0/SMI-4.0) id AA12888; Tue, 23 Jan 90 16:02:12 EST Return-Path: Received: from arisia.Xerox.COM by mwunix.mitre.org (5.61/SMI-2.2) id AA22785; Tue, 23 Jan 90 16:05:41 -0500 Received: from pooh.parc.Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA28245; Tue, 23 Jan 90 13:05:20 -0800 Received: from bullwinkle.parc.Xerox.COM by pooh.parc.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA13553; Tue, 23 Jan 90 13:05:13 PST Date: Tue, 23 Jan 90 13:05 PST From: Danny Bobrow Subject: Re: Persistant objects To: pab@starbase.mitre.org Cc: clos@starbase.mitre.org, gregor.pa@arisia.Xerox.COM In-Reply-To: <9001231218.AA06496@starbase> Message-Id: <19900123210508.0.BOBROW@BULLWINKLE.parc.xerox.com> Date: Tue, 23 Jan 90 07:18:28 EST From: pab@starbase.mitre.org (Paul Birkel) In their AAAI88 tutorial, Bobrow and Kiczales refer to an example they used which "[would] sketch how CLOS can be connected to a persistent object system". Alas, I was unable to attend, and the course notes do not mention such a topic. Although I have a couple of ideas on the subject, I'm new to CLOS and would prefer to benefit from the experiences of those who have gone before. Does anyone have any ideas, papers, ongoing research, and/or code implementing any such mechanisms? If so, would they be so kind as to share them? I know of only one commercial implementation of such an idea (Mercury, AI Technology), although various ES shells (KeeConnection, Nexpert, ART "real soon now") have similar (albeit crude) mechanisms for mirroring "objects" in their proprietary representation language into SQL DBMS tables. Thank you. Paul A. Birkel MITRE, Mailstop W418 7525 Colshire Drive McLean, VA 22102-3481 (703) 883-6399 Another view showing how to connect an object model to a persistent store using CLOS is described is in the paper: Andreas Paepcke, "PCLOS: A Critical Review", ACM OOPSLA Conference, 1989 p221-237. You will also find other CLOS papers of interest in that conference. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA00413; Tue, 23 Jan 90 15:03:19 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 23 JAN 90 14:26:11 PST Return-Path: Redistributed: commonloops.pa Received: from CHILES.SLISP.CS.CMU.EDU ([128.2.217.11]) by Xerox.COM ; 23 JAN 90 12:58:16 PST Received: from CHILES.SLISP.CS.CMU.EDU by CHILES.SLISP.CS.CMU.EDU; 23 Jan 90 15:57:02 EST To: commonloops.pa@Xerox.COM Subject: Compiling test.lisp Date: Tue, 23 Jan 90 15:56:58 EST Message-Id: <12480.633128218@CHILES.SLISP.CS.CMU.EDU> From: Bill.Chiles@WB1.CS.CMU.EDU I recently grabbed Victoria Day PCL. I was seemingly able to compile it and load it fine, but when I try to compile test.lisp I get an unbound symbol error for *c-initform*. Has anyone dealt with this before? Can you send me any standard test patches to see if our PCL passes this test suite? This loses in CMU Common Lisp and Allegro CL 3.1.beta.28 [DEC 3100] (8/3;8/7/89). In Allegro, I loaded PCL by evaluating (REQUIRE :PCL) and, then I tried to compile the PCL test file. The pcl::*pcl-system-date* in Allegro was "5/22/89 Victoria Day PCL". Here's suspect code: (cleanup-do-test '((:classes foo1 foo2 foo3 foo4 foo5 foo6 foo7 foo8 foo9 foo10 foo11 foo12) (:variables *a-initform* *b-initform* *c-initform* *a-default* *b-default* *c-default* *a-supplied* *b-supplied* *c-supplied*) (:functions foo1-test1 foo1-test2 foo1-test3 foo2-test1 foo2-test2 foo2-test3 foo3-test1 foo3-test2 foo3-test3 foo4-test1 foo4-test2 foo4-test3 foo5-test1 foo5-test2 foo5-test3 foo6-test1 foo6-test2 foo6-test3 foo7-test1 foo7-test2 foo7-test3 foo8-test1 foo8-test2 foo8-test3 foo9-test1 foo9-test2 foo9-test3 foo10-test1 foo10-test2 foo10-test3 foo11-test1 foo11-test2 foo11-test3 foo12-test1 foo12-test2 foo12-test3))) (defvar *a-initform* 'a-initform) (defvar *b-initform* 'b-initform) (defvar *c-initform* 'c-initform) (defvar *a-default* 'a-default) (defvar *b-default* 'b-default) (defvar *c-default* 'c-default) (defvar *a-supplied* 'a-supplied) (defvar *b-supplied* 'b-supplied) (defvar *c-supplied* 'c-supplied) ;;; ;;; foo1 ;;; [methods, default/initform, slot-filing] ;;; (t, t, :class) (defclass foo1 () ((a :initarg :a :initform *a-initform*) (b :initarg :b :initform *b-initform*) (c :initarg :c :allocation :class :initform *c-initform*)) (:default-initargs :b *b-default* :c *c-default*)) Bill Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA00460; Tue, 23 Jan 90 15:05:16 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 23 JAN 90 14:35:44 PST Date: Tue, 23 Jan 90 13:30 PST From: Gregor.pa@Xerox.COM Subject: Re: Compiling test.lisp To: Bill.Chiles@WB1.CS.CMU.EDU Cc: commonloops.pa@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest In-Reply-To: <12480.633128218@CHILES.SLISP.CS.CMU.EDU> Message-Id: <19900123213047.0.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no Date: Tue, 23 Jan 90 15:56:58 EST From: Bill.Chiles@WB1.CS.CMU.EDU I recently grabbed Victoria Day PCL. I was seemingly able to compile it and load it fine, but when I try to compile test.lisp I get an unbound symbol error for *c-initform*. Has anyone dealt with this before? Can you send me any standard test patches to see if our PCL passes this test suite? Just ignore the code in test.lisp. The next release of PCL won't even include a test file because its always too hard to keep it up to date. If you can compile and load PCL, it is working. Since it is a metacircular implementation, compiling or loading it actually runs most of the code. ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA08435; Wed, 24 Jan 90 19:05:26 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 24 JAN 90 09:01:20 PST Return-Path: Redistributed: CommonLoops.PA Received: from mcsun.EU.net ([192.16.202.1]) by Xerox.COM ; 24 JAN 90 08:54:49 PST Received: by mcsun.EU.net via EUnet; Wed, 24 Jan 90 17:54:47 +0100 (MET) Received: from irst.it by i2unix.dist.unige.it with UUCP (5.51++/IDA-1.2.8) id AA20926; Wed, 24 Jan 90 17:17:45 +0100 Received: by caneva.irst.it (4.0/SMI-4.0) id AA19303; Wed, 24 Jan 90 15:33:52 +0100 From: strappa@irst.it (Carlo Strapparava) Message-Id: <9001241433.AA19303@caneva.irst.it> Subject: Clos mailing list To: CommonLoops.PA@Xerox.COM Date: Wed, 24 Jan 90 15:33:51 MET DST X-Mailer: Elm [version 2.1 PL0] I and all the natural language group are working at IRST on Xerox 1186 (medley). I would like to be inserted in the clos mailing list. My address is from ARPA strappa%irst@uunet.uu.net from BITNET strappa%irst@mcvax.bitnet Thanks Carlo Strapparava Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA08240; Wed, 24 Jan 90 19:00:54 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 24 JAN 90 15:44:40 PST Sender: "John_D._Sybalsky.mvenvos"@Xerox.COM Date: 24 Jan 90 15:35:13 PST (Wednesday) Subject: Re: PCL in Medley... From: "John_D._Sybalsky.mvenvos"@Xerox.COM To: backlund@sics.se Cc: info-1100@cis.ohio-state.EDU, commonloops.PA@Xerox.COM In-Reply-To: "backlund%sics.se":GV:Xerox's message of 24 Jan 90 12:17 Message-Id: <900124-154440-6540@Xerox> You probably only need to load EXPORTS.ALL for pcl-env-internal to compile correctly. That ought to have been in whatever distribution you got of Medley. ABC is the Xerox/Envox internal wrapper file for EXPORTS.ALL, that also sets some location-specific stuff. --John Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA09263; Wed, 24 Jan 90 19:24:04 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 24 JAN 90 12:19:00 PST Return-Path: Redistributed: commonloops.pa Received: from sics.se ([192.16.123.90]) by Xerox.COM ; 24 JAN 90 11:51:20 PST Received: from khons.sics.se by sics.se (5.61-bind 1.5+ida/SiteCap-3.0) id AA16933; Wed, 24 Jan 90 20:50:21 +0100 From: Bj|rn Backlund Received: by khons.sics.se (5.61-bind 1.4+ida/SiteCap-3.0) id AA15873; Wed, 24 Jan 90 20:50:18 +0100 Date: Wed, 24 Jan 90 20:50:18 +0100 Message-Id: <9001241950.AA15873@khons.sics.se> To: info-1100@cis.ohio-state.edu Subject: PCL in Medley... Cc: backlund@sics.se, commonloops.pa@Xerox.COM Hi folks, I've just started to use PCL (Victoria) in Medley, there is a file "pcl-env-internal" which can't be compiled without the file ABC which is part of the Medley sources which I do not have access to. Can somebody give me a pointer to a machine from which I can grab a compiled version ? ---BjornB SICS Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA19639; Thu, 25 Jan 90 07:16:37 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 25 JAN 90 07:16:05 PST Return-Path: Redistributed: commonloops.pa Received: from uunet.uu.net ([192.48.96.2]) by Xerox.COM ; 25 JAN 90 07:14:30 PST Received: from fed.UUCP by uunet.uu.net (5.61/1.14) with UUCP id AA12027; Thu, 25 Jan 90 10:14:34 -0500 Received: from arcws9.FRB.GOV by fed.. (4.0/SMI-4.0) id AA29845; Thu, 25 Jan 90 09:49:53 EST Received: from localhost by arcws9.FRB.GOV (4.0/SMI-4.0) id AA24283; Thu, 25 Jan 90 09:50:04 EST Message-Id: <9001251450.AA24283@arcws9.FRB.GOV> To: CommonLoops.pa@Xerox.COM Cc: m1rih00%arcws9.uucp@uunet.UU.NET Subject: Running PCL with AKCL Date: Thu, 25 Jan 90 09:50:02 -0500 From: Ron I. Herman We have been running PCL (*pcl-system-date* 5/22/89) with AKCL version 1.116. Recently we moved to AKCL version 1.257. However, I have been unable to get PCL to compile. It fails to compile kcl-low.lisp. At the end of Pass 2 it flags cf_start and cf_size as being undefined. Has anyone gotten this version of AKCL to work with PCL? Ron Herman Federal Reserve Board rherman@fed.frb.gov Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA19653; Thu, 25 Jan 90 07:18:43 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 25 JAN 90 07:16:39 PST Return-Path: <@CUNYVM.CUNY.EDU:KUIL@HROEUR51.BITNET> Redistributed: CommonLoops.PA Received: from CUNYVM.CUNY.EDU ([128.228.1.2]) by Xerox.COM ; 25 JAN 90 07:12:25 PST Received: from HROEUR51.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP R1.2.2MX) with BSMTP id 7558; Thu, 25 Jan 90 10:12:28 EST Date: Thu, 25 Jan 90 15:40 N From: Subject: Request for information about CLOS. To: CommonLoops.PA@Xerox.COM X-Original-To: CommonLoops, KUIL Message-Id: <900125-071639-8494@Xerox> Dear Mr. or Mrs. Your mail address was sent to me by Gert Florijn, who works at serc.nl, because of my interest in some information about CLOS. I am working at the department of Medical Informatics, Erasmus University Rotterdam. At the department we have a HP 9000/300 workstation with the HP-UX operating system and with a Common Lisp package from HP installed on it. The ultimate objective of the project is to integrate different existing software applications and database systems. To implement our designed model we would like to use CLOS, because it supports a flexible object oriented environment and because CLOS is or at least expected to be a standard. Gert Florijn told me CLOS is public domain but couldn't tell me how and where to order it, whether it is available for a HP 9000/300 workstation and what the minimal requirements are to run CLOS on top of a Common Lisp environment. I would appreciate it very much if you could possibly give me some information regarding these questions. Yours sincerely, Henk Kuil. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA20432; Thu, 25 Jan 90 08:38:58 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 25 JAN 90 08:37:26 PST Return-Path: Redistributed: CommonLoops.pa Received: from linus.mitre.org ([129.83.100.103]) by Xerox.COM ; 25 JAN 90 08:35:13 PST Return-Path: Received: from linnaeus.mitre.org by linus.mitre.org (5.61/RCF-4S) id AA03129; Thu, 25 Jan 90 11:33:26 -0500 Full-Name: Melissa P. Chase Posted-Date: Thu, 25 Jan 90 11:33:22 EST Received: by linnaeus.mitre.org (5.61/RCF-4C) id AA00700; Thu, 25 Jan 90 11:33:23 -0500 From: pc@linus.mitre.org Message-Id: <9001251633.AA00700@linnaeus.mitre.org> To: m1rih00%fed.uucp@uunet.uu.net Cc: CommonLoops.pa@Xerox.COM Subject: Re: Running PCL with AKCL In-Reply-To: Your message of Thu, 25 Jan 90 09:50:02 -0500. <9001251450.AA24283@arcws9.FRB.GOV> Date: Thu, 25 Jan 90 11:33:22 EST Later versions of AKCL have changed the C struct definitions of closures, so the code in kcl-low.lisp doesn't work. There's a version of kcl-low.lisp on rascal.ics.utexas.edu that has the fixes. Bill Schelter sent mail to the kcl mailing list about how to compile pcl in AKCL. I'm including the text of his mail below. - Penny ----------------------------------------------------------------------- >From wfs@rascal.ics.utexas.edu Tue Dec 19 10:05:17 1989 To: kcl@cli.com Subject: pcl and akcl Reply-To: wfs@cs.utexas.edu There have been various questions about PCL for AKCL. Changes to compiled functions required a couple of little changes to kcl-low.lisp. The kcl-patches file needed to be ignored. Here are complete instructions for building the victoria day version of PCL in AKCL(these are also at the bottom of kcl-low.lisp on rascal): -------------------- Instructions for compilation of pcl in AKCL * ftp the new kcl-low.lisp file from rascal (128.83.144.1) and put it in your pcl directory. % cd pcl % akcl ;; Now to compile pcl evaluate the following forms: (load "defsys.lisp") (setq pcl::*pathname-extensions* '("lisp" . "o")) (setq pcl::*pcl-directory* (truename "./")) (or (probe-file "kcl-patches.lisp-") ;replace kcl-patches.lisp by empty file (system "mv kcl-patches.lisp kcl-patches.lisp- ; echo > kcl-patches.lisp")) (pcl::compile-pcl) ;; It should compile without error. To test: % cd pcl % akcl (load "defsys.lisp") (setq pcl::*pathname-extensions* '("lisp" . "o")) (setq pcl::*pcl-directory* (truename "./")) (pcl::load-pcl) (load "test.lisp") ;; All tests should run correctly. ------------------------------------ There is a note in the kcl-low.lisp file about a change for gbc.c in akcl versions prior to 265. [The change is to remove "if (x->cc.cc_data->d.m) break;" and add turbo-closures to the feature list]. This is an optimization and is not necessary, so you may as well wait till you get a newer version of akcl, in which case you won't have to do anything. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA20584; Thu, 25 Jan 90 08:54:14 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 25 JAN 90 08:48:32 PST Return-Path: <@mitvma.mit.edu:ZSIMOPBE@DB0TUI6.BITNET> Redistributed: COMMONLOOPS.PA Received: from mitvma.mit.edu ([18.92.0.3]) by Xerox.COM ; 25 JAN 90 08:26:43 PST Received: from MITVMA.MIT.EDU by mitvma.mit.edu (IBM VM SMTP R1.2.1MX) with BSMTP id 3297; Thu, 25 Jan 90 11:27:03 EST Received: from DB0TUI6.BITNET (ZSIMOPBE) by MITVMA.MIT.EDU (Mailer R2.05) with BSMTP id 2470; Thu, 25 Jan 90 11:27:02 EST Received: by tub.UUCP; Thu, 25 Jan 90 17:22:28 +0100; AA03238 Received: by opal.cs.tu-berlin.de; Thu, 25 Jan 90 17:19:59 +0100; AA16582 Date: Thu, 25 Jan 90 17:19:59 +0100 From: Simon Leinen Message-Id: <9001251619.AA16582@opal.cs.tu-berlin.de> Received: by malung.cs.tu-berlin.de.cs.tu-berlin.de; Thu, 25 Jan 90 17:19:57 +0100; AA02117 To: gregor.pa%Xerox.com%tub.BITNET@MITVMA.MIT.EDU (Gregor, Kiczales) Cc: CommonLoops.pa%Xerox.COM%tub.BITNET@MITVMA.MIT.EDU Subject: PCL under Symbolics Genera 6 ??? Is there a possibility to get Victoria Day PCL to run under Rel. 6.1 of the Genera System? We have two Symbolicses here no-one wants to put any more money into. I think earlier versions of PCL included Genera 6 support. Maybe I could patch the old support files to work with the new PCL. How hard do you think that would be? Thank you very much in advance, -- Simon Leinen. simon%tubopal@DB0TUI6.BITNET Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA01429; Thu, 25 Jan 90 16:23:33 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 25 JAN 90 14:10:20 PST Date: Thu, 25 Jan 90 10:09 PST From: Gregor.pa@Xerox.COM Subject: Re: PCL under Symbolics Genera 6 ??? To: Simon Leinen Cc: CommonLoops.pa@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest In-Reply-To: <9001251619.AA16582@opal.cs.tu-berlin.de> Message-Id: <19900125180949.1.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no Date: Thu, 25 Jan 90 17:19:59 +0100 From: Simon Leinen Is there a possibility to get Victoria Day PCL to run under Rel. 6.1 of the Genera System? We have two Symbolicses here no-one wants to put any more money into. I think earlier versions of PCL included Genera 6 support. Maybe I could patch the old support files to work with the new PCL. How hard do you think that would be? I can't easily estimate just how hard it would be, I forget just what the differences were between 7 and 6. I would guess that it wouldn't be too hard, especially for the forthcoming PCL release which makes less use of the Common Lisp features that had to be patched. ------- Received: from [13.0.12.232] by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA24417; Sun, 28 Jan 90 11:12:27 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 28 JAN 90 11:00:10 PST Return-Path: Redistributed: commonloops.PA Received: from soleil.cs.UMD.EDU ([128.8.128.14]) by Xerox.COM ; 28 JAN 90 10:58:21 PST Received: from localhost by soleil.cs.UMD.EDU (5.61/UMIACS-0.9/04-05-88) id AA05898; Sun, 28 Jan 90 13:58:28 -0500 Message-Id: <9001281858.AA05898@soleil.cs.UMD.EDU> To: commonloops.PA@Xerox.COM Cc: lubell@cs.UMD.EDU Subject: Problem compiling PCL with Ibuki Lisp Date: Sun, 28 Jan 90 13:58:26 -0500 From: Josh Lubell I tried to compile PCL using Ibuki Common Lisp (IBCL), and I got a linkage error when attempting to load "ibcl-patches.o". Does anyone know how to solve my problem. Here are the compilation messages I got: > (load "PCL/defsys")Loading PCL/defsys.lsp Finished loading PCL/defsys.lsp T > (pcl::compile-pcl)Compiling IBCL-PATCHES... Compiling PCL/ibcl-patches.lsp. Warning: DEFMACRO is being redefined. ; (IN-PACKAGE 'SYSTEM) is being compiled. ;; Warning: The package operation (IN-PACKAGE 'SYSTEM) was in a bad place. Warning: GET-SETF-METHOD is being redefined. Warning: GET-SETF-METHOD-MULTIPLE-VALUE is being redefined. End of Pass 1. ;; Note: Tail-recursive call of GET-SETF-METHOD-MULTIPLE-VALUE was replaced by iteration. End of Pass 2. OPTIMIZE levels: Safety=2, Space=3, Speed=3 Finished compiling PCL/ibcl-patches.lsp. Loading binary of IBCL-PATCHES... >>Error: The linkage editor failed. LOAD (IHS[22]) Arg 0: #"PCL/ibcl-patches.o" Restart options (Type :C ): Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA03493; Tue, 30 Jan 90 18:05:25 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 30 JAN 90 15:34:41 PST Return-Path: Redistributed: commonloops.pa Received: from dupin.parc.xerox.com ([13.1.100.207]) by Xerox.COM ; 30 JAN 90 15:31:58 PST Received: by dupin.parc.xerox.com (5.61+/IDA-1.2.8/gandalf) id AA01676; Tue, 30 Jan 90 15:31:33 PST Message-Id: <9001302331.AA01676@dupin.parc.xerox.com> Date: Tue, 30 Jan 90 15:31:33 PST From: To: pab@starbase.mitre.org In-Reply-To: Paul Birkel's message of Tue, 23 Jan 90 07:18:28 EST <9001231218.AA06496@starbase> Subject: Re: Persistant objects Cc: commonloops.pa@Xerox.COM Date: Tue, 23 Jan 90 07:18:28 EST From: pab@starbase.mitre.org (Paul Birkel) In their AAAI88 tutorial, Bobrow and Kiczales refer to an example they used which "[would] sketch how CLOS can be connected to a persistent object system". Alas, I was unable to attend, and the course notes do not mention such a topic. Although I have a couple of ideas on the subject, I'm new to CLOS and would prefer to benefit from the experiences of those who have gone before. Does anyone have any ideas, papers, ongoing research, and/or code implementing any such mechanisms? If so, would they be so kind as to share them? I know of only one commercial implementation of such an idea (Mercury, AI Technology), although various ES shells (KeeConnection, Nexpert, ART "real soon now") have similar (albeit crude) mechanisms for mirroring "objects" in their proprietary representation language into SQL DBMS tables. Thank you. Paul A. Birkel MITRE, Mailstop W418 7525 Colshire Drive McLean, VA 22102-3481 (703) 883-6399 Symbolics has a commercial object-oriented database product called Statice which implements a persistent CLOS object system. While it really is persistent new Flavors, for practical purposes it is CLOS and in fact it uses CLOS syntax for the class definitions in anticipation of Symbolics switching over to CLOS. Unlike most "persistent object systems", Statice has a real distributed access database underlying it providing full transactional consistency and recovery, as well as a relational calculus for doing queries. There hasn't been much published about it, but you can look at a paper entitled "An Object-Oriented Database System to Support an Integrated Programming Environment" in IEEE Data Engineering, June 88, Vol. 11 No. 2. Making objects persistent is actually very difficult. The basic problem occurs when it isn't sufficient to simply make objects persist, but they also need to be shared. Adding sharing opens up the whole problem of transactional consistency, which is often ignored by "persistent object systems". Sharing objects means that access must be coordinated. This problem has been explored in depth in the database world, and a transaction model has emerged ensuring that all access to the database is synchronized, preventing data from changing out from under a process or from dirty data being visible to other processes. Statice does provide full transactional consistency, meaning that all access to persistent data is synchronized with other processes. However, the real problem has still not been solved. Transactions, by their very nature, can be aborted and potentially restarted. This means that you cannot do any side-effect inside of a transaction which cannot be undone. However, most applications need to do a very important undoable side-effect, namely communicating with a user. This introduces the whole problem of going into a transaction to get a snapshot of the state of the database, outside of the transaction presenting the snapshot to the user and modifying some parts of it, and then entering a transaction again to store the changes. However, once you are outside of the transaction all the problems of synchronizing access reappears. This problem is known in the database world as "long-lived transactions". They have been unable to provide general solutions to the problem since any solution is dependent upon the actual application. Simple locks are insufficient; I'm researching possibilities of addressing this problem by creating syncronization objects to reify the "long-lived transactions", providing a set of abstract protocols ranging from simple exclusive locks up to version management. The basic point is that given an object-oriented system, you can have "application specific knowledge" by providing abstract classes with known protocols which applications can specialize with concrete implementations of those protocols. The second problem is that just making object-oriented language persistent generally retains the notion that objects are accessed navagationally by following pointers. However, once you have a significant amount of data, which taking objects out of virtual memory makes possible, navagational access breaks down, and people need to be able to make queries. Basically, object-oriented languages provide abstract behaviors for objects, but they don't provide any data independent query facility. I tend to characterize this by saying that they don't provide abstract relationships between objects. Providing data independent queries is the whole point of relational databases, which have provided abstract relationships, but don't provide abstract datatypes and thus behaviors. As an example of what I mean by navagational access being insufficient, say you have a hypertext system with a whole lot of information stored as nodes with "links" to other nodes, and that each node has an author. To find all nodes written by "North" navagationally, you have to tree walk the whole structure. Query languages solve this by providing a language to pose this question, where the calling program does not need to know how the objects are actually organized. The query optimizer can know whether there is an index there or not, or whether it in effect has to do some full associative scan, and do the appropriate type of lookup. While you may say that you could simply add a hash table from author to node and make it persistent, without a query language you have simply added another navagational structure which the calling programs must all be changed to take advantage of (and to keep up to date). Eliminating this requirement of changing calling programs is what object oriented languages are all about by providing data abstraction. Statice does add a relational calculus to CLOS, thereby addressing this issue for at least persistent objects. However, once you have copies of objects in VM which you are manipulating, the problem is not solved by Statice. This is sort of due to a problem related to this and to the first problem of long-lived transactions. Once you have made objects persistent, you end up with a distinction between the state of an object in the persistent (and shared) database, and in a particular virtual memory. While it is inviting to try to gloss this difference over and make it transparent, you really can't succeed in doing so. You end up having to deal with the fact that you need to "snapshot" the state of the persistent data (probably using some synchronizer object to implement the long-lived transaction), and then deal with the snapshot in memory. You really want to use the same query language to access the snapshot, and in fact the snapshot sort of should look like a database itself. Statice does not do this since it didn't go the full route of really adding abstract relationships to VM objects; it just did it for persistent objects. There is some work being done in Sweden about adding query languages to VM objects. And a final problem is that existing relational algebras cannot query on behaviors, since they were designed for relational databases where there was no concept of objects or behaviors. Well, this response is already way too long. There is some work being done here to address some of these issues, especially dealing with the synchronization problems. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA13667; Wed, 31 Jan 90 00:25:49 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 30 JAN 90 23:02:38 PST Return-Path: Redistributed: commonloops.pa Received: from lanai.cs.ucla.edu ([131.179.128.13]) by Xerox.COM ; 30 JAN 90 22:57:50 PST Return-Path: Received: by lanai.cs.ucla.edu (Sendmail 5.61a+YP/2.25) id AA17044; Tue, 30 Jan 90 22:57:52 -0800 Date: Tue, 30 Jan 90 22:57:52 PST From: Trent Lange Message-Id: <900131.065752z.17041.lange@lanai.cs.ucla.edu> To: commonloops.pa@Xerox.COM Subject: Classes with forward-referenced supers. What is the official word on making instances when a class has forward-referenced super-classes? e.g. (defclass a (b) (...) (...)) (make-instance 'a) This worked in the "Can't think of a cute name PCL" (12/7/88), but caused crashes in Victoria Day PCL. Mike Thome sent out a patch to allocate-instance back in August 89 that instead signalled an error when it noticed it instead of crashing. I grabbed the 1/1/90 alpha PCL, to see what it did, and it also signalled an error rather than making the instance. I don't see anything in CLOS Document 88-002R (the latest I could find on arisia.xerox.com's pcl/doc) that mentions this. It seems to me that making instances of classes with forward-referenced supers definitely *should* be legal, simply creating an instance that is minus the features of those forward-referenced classes. When the forward-referenced supers are actually defined, of course, PCL would then have to update any previously created instances, but this is no different than when the class itself is redefined. On the other hand, it seems *quite* important to be able to make instances when all of the super-classes are not yet defined. Applying class-prototypes comes directly to mind, plus defining classes with lists of possible super-class mixins, which either may or may not be used depending upon whether a user wants to load them or not. So, is making an instance of a class with forward-referenced supers going to be an official error, or will it be considered legal, in which case it will be fixed in the next version of PCL? - Trent Lange Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA25659; Wed, 31 Jan 90 09:39:20 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 31 JAN 90 09:28:09 PST Return-Path: Redistributed: commonloops.pa Received: from DINO.BBN.COM ([128.89.3.8]) by Xerox.COM ; 31 JAN 90 09:25:47 PST Received: by DINO.BBN.COM id aa04904; 31 Jan 90 11:53 EST To: Trent Lange Cc: commonloops.pa@Xerox.COM Subject: Re: Classes with forward-referenced supers. In-Reply-To: Your message of Tue, 30 Jan 90 22:57:52 -0800. <900131.065752z.17041.lange@lanai.cs.ucla.edu> Date: Wed, 31 Jan 90 10:47:12 -0500 From: kanderso@DINO.BBN.COM Message-Id: <900131-092809-5091@Xerox> Redistributed: commonloops.pa Date: Tue, 30 Jan 90 22:57:52 PST From: Trent Lange To: commonloops.pa@xerox.com Subject: Classes with forward-referenced supers. What is the official word on making instances when a class has forward-referenced super-classes? e.g. (defclass a (b) (...) (...)) (make-instance 'a) This worked in the "Can't think of a cute name PCL" (12/7/88), but caused crashes in Victoria Day PCL. Mike Thome sent out a patch to allocate-instance back in August 89 that instead signalled an error when it noticed it instead of crashing. I grabbed the 1/1/90 alpha PCL, to see what it did, and it also signalled an error rather than making the instance. I don't see anything in CLOS Document 88-002R (the latest I could find on arisia.xerox.com's pcl/doc) that mentions this. It seems to me that making instances of classes with forward-referenced supers definitely *should* be legal, simply creating an instance that is minus the features of those forward-referenced classes. When the forward-referenced supers are actually defined, of course, PCL would then have to update any previously created instances, but this is no different than when the class itself is redefined. On the other hand, it seems *quite* important to be able to make instances when all of the super-classes are not yet defined. Applying class-prototypes comes directly to mind, plus defining classes with lists of possible super-class mixins, which either may or may not be used depending upon whether a user wants to load them or not. So, is making an instance of a class with forward-referenced supers going to be an official error, or will it be considered legal, in which case it will be fixed in the next version of PCL? I think your proposal is interesting. However, if you could create an instance of a forward referenced class, you would loose the protection that the current PCL provides. There would be no way to stop the use from making instances when some important behavior was still missing. If he never intends to use a set of mixins, redefining the class is about as easy as not loading the file containing the mixins. k Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA15812; Wed, 31 Jan 90 20:47:46 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 31 JAN 90 20:47:28 PST Return-Path: Redistributed: commonloops.pa Received: from gateway.mitre.org ([128.29.31.10]) by Xerox.COM ; 31 JAN 90 20:42:08 PST Received: by gateway.mitre.org (5.54/SMI-2.2) id AA22485; Wed, 31 Jan 90 23:43:51 EST Received: from mwunix.mitre.org by starbase (4.0/SMI-4.0) id AA25882; Wed, 31 Jan 90 23:37:37 EST Return-Path: Received: from Xerox.COM by mwunix.mitre.org (5.61/SMI-2.2) id AA08945; Wed, 31 Jan 90 23:41:19 -0500 Received: from Semillon.ms by ArpaGateway.ms ; 31 JAN 90 20:41:30 PST Date: Wed, 31 Jan 90 20:41 PST From: Gregor.pa@Xerox.COM Subject: Re: Benchmarking CLOS To: Paul Birkel Cc: clos@starbase.mitre.org Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest In-Reply-To: <9001231231.AA06620@starbase> Message-Id: <19900201044129.6.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no Because I don't know exactly what clos@starbase.mitre.org, I suspect some people will have already seen this message. I apologize for the duplication. The following is a slightly revised version of a message I sent to the CommonLoops list some time ago. Since I sent it, I have received comments from David Moon, Jon L. White and Rob McLahan. These comments have helped me to improve this message. The remaining bad ideas are my own. ---- There have been a number of messages in different forums lately about CLOS implementation. David Moon's message to the X3J13 mailing list addresses some issues having to do with the implementation of method combination. This message addresses some issues having to do with proper evaluation of the performance of CLOS in general, and PCL in particular. While I have a number of things to say about this, there are three major points I want to stress: 1) Performance comparisons are difficult. It is important to compare like functionalities, and be sure you understand the "semantics" of the operation you are measuring. 2) PCL is not CLOS. PCL is a portable implementation with some interesting architectural ideas, I believe it can be made to perform relatively well, but most of the current ports do not perform adequately. 3) Not all ports of PCL are created equal. The P in PCL means that PCL can be ported relatively easily, not that it is written in pure Common Lisp. There are many things which PCL would like to do, which Common Lisp compilers are reluctant to let me do. In any given Common Lisp, it takes work to get the compiler "out of PCL's way". In some Common Lisps this process is farther along that in others, but in no Common Lisp is it far enough along. The rest of this message discusses a number of aspects of the CLOS language and PCL implementation, providing various insights and evidence to support these three points. An important point about CLOS which this message will develop is that because CLOS is a tight integration with Common Lisp, different but similar features work together well. defstruct and defclass define different kinds of classes, but methods can be defined on both kinds -- this makes it possible to choose the kind of class based on one set of requirements and use generic functions regardless of the decision. defun and defmethod define different kinds of functions, but both are called in the same way -- this makes it possible to choose the kind of function based on one set of requirements but have the callers be able to use it the same way regardless of the decision. In short, this makes it possible for a programmer using CLOS-extended Common Lisp to choose just exactly the functionality they want in any given case. The language provides a range of functionalities which all fit together. <> So, when making performance comparisons, it is important to compare similar functionalities -- this corresponds to the common folk wisdom that you shouldn't compare apples and oranges. A performance comparison should always include a functionality comparison. Two common problem areas are field access and procedure invocation. *** Field Access *** Let's start with the example of field access. Many people try to make comparisons among the performance of defstruct field access, slot access and calling accessor generic functions. Following the principle outlined above it is important to understand the performance and functionality of the many different field access mechanisms provided: Given the following definitions: (defstruct foo (a 1)) (defclass bar () ((a :initform 1 :accessor bar-a))) (defvar *foo* (make-foo)) (defvar *bar* (make-instance 'bar)) Let us look at the following forms: (defun fun () (foo-a *foo*) ;Form 1 (slot-value *bar* 'a) ;Form 2 (bar-a *bar*)) ;Form 3 (defmethod meth ((b bar)) (slot-value b 'a) ;Form 4 (bar-a b)) ;Form 5 The rest of this section looks at comparisons among forms 1 - 5. Each of these forms has different functionality AND different performance. Form 1: This is a defstruct field access. In many implementations, this compiles open without any type checking, so the time required is about one memory read. The important points about the functionality of this operation are: it (usually) does no error checking; it only supports single inheritance, and because it compiles open you must recompile all your code if you redefine it. Form 2: This is a call to slot-value, where the object argument is a an instance of a standard class (a class defined by defclass without using the :metaclass option). Moreover, this call to slot-value appears in a context in which the compiler cannot infer anything about the class of the object argument. In the current version of PCL, this takes a long time, I don't know how long. In the next version, this should take an amount of time comparable to 3 or 4 function calls, but see my comments later about porting PCL. I haven't though very much about what the fastest one could expect this to be is. The important points about the functionality of this operation are: it does complete error checking (is its argument an object, does it have a slot by this name, is that slot bound); the class involved supports multiple inheritance; it doesn't compile open, so you can change the class definition later; you can define methods on slot-value-using-class which would affect this operation -- so the slot access is specializable. Form 3: This is a call to an automatically generated accessor of a standard class. In the next version of PCL, this call should take time between that of one and two function calls, but see my comments later about porting PCL. The important points about the functionality of this operation are: this is a full call to a real generic function -- you can define other methods on this generic function and thereby specialize it; error checking happens. Form 4: This is like form 2 with the exception that the form appears in a context where the compiler can infer a lot about the object argument. In the next version of PCL, this should take time between 2 and 3 memory reads, but see my comments later about porting PCL. Most implementations should provide performance for this on the order of two memory reads. Form 5: This is like form 3 with the exception that the form appears in a context where the compiler can infer a lot about the object argument. PCL will not do any better in this situation, but other implementations should be able to get performance similar to that for form 4. The point is that these operations have performance and functionality differences. The appropriate mechanism must be selected, by the programmer, to get the functionality/performance tradeoff needed in each situation. Because CLOS-extended Common Lisp makes it possible to define methods on classes defined by defstruct as well as classes defined by defclass, decisions about how to get field access don't affect whether it will be possible to use generic functions. This is an important point about the tight integration of CLOS in Common Lisp. *** Procedure Invocation and Type Dispatch *** The second common comparison is between generic function invocation and ordinary function invocation. This comparison is also fraught with peril. Given the following definitions: (defstruct foo) (defstruct bar) (defclass baz () ()) (defclass bee () ()) (defun f1 (x) (defun f2 (x) (defun f3 (x) (etypecase x (etypecase x (etypecase x (foo ) (baz ) (foo ) (bar ))) (bee ))) (baz ))) (defmethod gf1 ((x foo)) ) (defmethod gf1 ((x bar)) ) (defmethod gf2 ((x baz)) ) (defmethod gf2 ((x bee)) ) (defmethod gf3 ((x foo)) ) (defmethod gf3 ((x baz)) ) The most important point here is to notice that we must compare the performance of a generic function call to the performance of an ordinary function call PLUS AN ETYPECASE. It isn't appropriate to compare the performance of an ordinary function call to a generic function call because a generic function call does much more than a function call. If, in a place in your code all you need is an ordinary function, then that is what you should use, if what you need is a function call plus some form of type dispatch you usually want to use generic functions. Basically, when invoking a form like (f1 ) or (gf2 ), you should expect the time it takes to get to the corresponding mark above to be the same. In many implementations, people will do a better job of optimizing generic function call than typecase, so you may even get better performance out of generic function call than typecase. (See comments on PCL later). Returning for a moment to functionality, generic functions provide a great deal of functionality that ordinary functions plus typecase doesn't. The most obvious is that the definitions of the individual cases (the forms) above can be spread around -- individual defmethod forms can appear in separate places. Also, defmethod forms can be added later without having access to the source of the previously existing defmethod forms. Also, generic functions implement inheritance automatically. Also, generic functions implement method combination automatically. Taken together, the discussion of field access and the implementation of type specific operations show that some of the decisions a user needs to make are: Field Access: Do I want multiple or single inheritance? Do I want to be able to define methods on slot accessors? Do I want specializable primitive slot access? Procedure invocation and type dispatch? Do I want genericity or just simple procedure call? Do I want automatic implementation of inheritance? Do I want automatic implementation of method combination? It is the answers to these kinds of questions which dictate which language feature you should use in each particular case. Because CLOS is a tight integration with Common Lisp, the different language features work seamlessly together, that makes it possible for you, the programmer to choose just the semantics you want in each case. *** Some comments on PCL *** This section provides one small example of the difference between PCL's architectural performance possibilities and what happens in the current ports. By "architectural performance possibilities", I mean what PCL should be able to do if I had my hands on the sources of the underlying lisp (and I had a lot more time than I do). By "what happens in the current ports" I mean the performance of the current ports of PCL and the port-specific reasons why that is different from the architectural possibilities. This discussion is limited to PCL on stock hardware, PCL was never intended to be at all competitive on Lisp machines. In particular we will look at a small aspect of one of PCL's major tasks, implementing method lookup (forsimplicity, this discussion ignores method combination.) The essence of method lookup is that when a generic function is called, the classes of the arguments is used to select an appropriate method to be called and then that method is called. This means that in the heart of method lookup, what PCL is doing is checking the class of arguments, finding a method function to call, and then calling that method function. All of this happens inside the PCL runtime, where the datastructures floating around have already been checked for errors. This means that many of the operations involved in method lookup require no error checking. For example, PCL can be sure that the method function it will call is a legal function, and moreover (using a simple trick) can make sure that it is a compiled function. So, once the method function is looked up, the actual call to it requires no error checking. Looking in the PCL sources (this only appears in the new, unreleased version) we find the following definition: (defmacro |RUNTIME FUNCALL| (fn &rest args) `(funcall (the compiled-function ,fn) ,.args)) The use of the declaration "(the compiled-function ,fn)" corresponds to the fact that PCL is sure that this macro (|RUNTIME FUNCALL|) will never be used unless the fn argument is in fact a compiled function. Architecturally, PCL has enabled an optimization which should improve the performance of method lookup. Unfortunately, Common Lisp compilers don't respect this declaration. The compilers emit code which first checks to ensure that the first argument to funcall is a function before calling it. This one thing is just a small bit of overhead, but it directly slows down generic function call. Not tremendously all by itself, but there are, unfortunately, a number of others like it. The root of the problem is that what it takes to eliminate the error checking isn't, in practise, portable. Not all implementations interpret type declarations the same way, some require implementation specific magic to do what one might argue a portable type declaration would do. There is no existing port of PCL which is tailored enough to eliminate all the architecture--port differences. (I should also say that previous versions of PCL have not had anywhere near as good an architecture). It is reasonable to expect that better ports of newer versions of PCL will have better performance. It will be interesting to compare the performance of these to implementation specific, "hand-coded" implementations of CLOS. I don't really know what the performance differences will be. *** Appendix *** The following examples show how two, major Common Lisps for the Sun4 compile an ordinary function call and a use of funcall as shown above. These two Common Lisps were chosen for illustrative purposes only. No comparison between them or with any other is intended. No endorsement of either Common Lisp is intended. No criticism of either Common Lisp is intended. All the Common Lisps I have used generate similar code, that is the whole point. These two were just chosen to illustrate the general point. Also note that even those these two code vectors look a little different, they are substantially the same. These two functions can be used to illustrate the difference between the best out of line function call a given Lisp knows how to do and the kind of function call you get when you have to use funcall. (proclaim '(optimize (speed 3) (safety 0) (compilation-speed 0))) (defun foo (x y) (funcall (the compiled-function x) y)) (defun bar (x y) (baz y)) ;One Common Lisp ;; disassembling # ;; formals: X Y ;; constant vector: ;; code vector @ #x87344c: 0: save #x-60,%o6 4: move.l %i0,%l0 8: and #x7,%l0,%g2 12: subcc #x2,%g2,%g0 16: beq,a 84 20: move.l %l0,%g2 24: and #x7,%l0,%g2 28: subcc #x6,%g2,%g0 32: beq,a 40 36: moveu.b -6(%l0),%g2 40: subcc #x8,%g2,%g0 44: beq,a 116 48: move.l %l0,%o5 52: move.l %l0,%o0 56: move.l 219(%g4),%o7 ; FUNCALL 60: move.l %i1,%o1 64: jmpl 0(%o7),%o7 68: move.l #x2,%g3 72: jmpl 8(%i7),%g0 76: restore %g0,%o0 80: move.l %l0,%g2 84: move.l 6(%g2),%o5 88: move.l %i1,%o0 92: move.l -2(%o5),%g6 96: jmpl 0(%g6),%o7 100: xor #x1,%g0,%g3 104: bra 72 108: nop 112: move.l %l0,%o5 116: move.l %i1,%o0 120: move.l -2(%o5),%g6 124: move.l %g4,%g2 128: jmpl 0(%g6),%o7 132: xor #x1,%g0,%g3 136: bra 72 140: nop ;; disassembling # ;; formals: X Y ;; constant vector: 0: BAZ ;; code vector @ #x876784: 0: save #x-60,%o6 4: move.l 34(%i5),%g2 ; BAZ 8: move.l %i1,%o0 12: move.l 6(%g2),%o5 16: move.l -2(%o5),%g6 20: jmpl 0(%g6),%o7 24: xor #x1,%g0,%g3 28: jmpl 8(%i7),%g0 32: restore %g0,%o0 ;Another Common Lisp (disassemble 'foo) move %in0, %loc0 move %in1, %in0 move %loc0, %ncp move [%sq + 911], %nra ; SQ-COERCE-TO-PROCEDURE jmpl %nra, %nra - 2 nop move [%ncp - 2], %nra ; Function Code move 4, %u0 jmpl %0, %nra - 2 move %ncp, %cp (disassemble 'bar) move %in1, %in0 move [%cp + 30], %x0 ; BAZ move [%x0 + 13], %cp move [%cp - 2], %nra ; Function Code jmpl %0, %nra - 2 move 4, %u0 ------- ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA15875; Wed, 31 Jan 90 20:52:34 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 31 JAN 90 20:47:36 PST Return-Path: Redistributed: commonloops.pa Received: from gateway.mitre.org ([128.29.31.10]) by Xerox.COM ; 31 JAN 90 20:45:42 PST Received: by gateway.mitre.org (5.54/SMI-2.2) id AA22517; Wed, 31 Jan 90 23:47:29 EST Received: from mwunix.mitre.org by starbase (4.0/SMI-4.0) id AA25913; Wed, 31 Jan 90 23:41:17 EST Return-Path: Received: from Xerox.COM by mwunix.mitre.org (5.61/SMI-2.2) id AA08988; Wed, 31 Jan 90 23:45:03 -0500 Received: from Semillon.ms by ArpaGateway.ms ; 31 JAN 90 20:45:19 PST Date: Wed, 31 Jan 90 20:45 PST From: Gregor.pa@Xerox.COM Subject: Re: Persistant objects To: Paul Birkel Cc: clos@starbase.mitre.org Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest In-Reply-To: <9001231218.AA06496@starbase> Message-Id: <19900201044523.8.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no Date: Tue, 23 Jan 90 07:18:28 EST From: pab@starbase.mitre.org (Paul Birkel) In their AAAI88 tutorial, Bobrow and Kiczales refer to an example they used which "[would] sketch how CLOS can be connected to a persistent object system". Alas, I was unable to attend, and the course notes do not mention such a topic. The course notes do show an example in which `dynamic' slots are added to CLOS. This is done by telling the system that for a certain set of slots, the slots should be stored in a plist rather than the usual way. All we say about database connections in the tutorial is that this provides an important part of the hook you need to connect to a database. We don't address any of the interesting and hard issues about what object model you want for persistent objects and whether CLOS maps onto that very well. Those are well beyond the scope of the CLOS tutorial. We just try to show that the MOP provides a hook to do some experiments in that domain. ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA15937; Wed, 31 Jan 90 20:58:03 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 31 JAN 90 20:57:26 PST Date: Wed, 31 Jan 90 20:55 PST From: Gregor.pa@Xerox.COM Subject: Re: Classes with forward-referenced supers. To: Trent Lange Cc: commonloops.pa@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest In-Reply-To: <900131.065752z.17041.lange@lanai.cs.ucla.edu> Message-Id: <19900201045535.1.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no Date: Tue, 30 Jan 90 22:57:52 PST From: Trent Lange What is the official word on making instances when a class has forward-referenced super-classes? Until this moment, I believed that the specification said that making an instance of such a class signalled an error. Certainly the change to make PCL signal this error was a concious one on my part. But, now that I think about the class redefinition protocol, I can see that (even though it is a weird thing to do) it is easy for this to be well-defined. I wonder what other implementations do. ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA26641; Thu, 1 Feb 90 02:25:11 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 01 FEB 90 02:24:29 PST Return-Path: Redistributed: commonloops.pa Received: from lanai.cs.ucla.edu ([131.179.128.13]) by Xerox.COM ; 01 FEB 90 02:22:19 PST Return-Path: Received: by lanai.cs.ucla.edu (Sendmail 5.61a+YP/2.25) id AA12535; Thu, 1 Feb 90 02:22:23 -0800 Date: Thu, 1 Feb 90 02:22:22 PST From: Trent Lange Message-Id: <900201.102222z.12143.lange@lanai.cs.ucla.edu> To: commonloops.pa@Xerox.COM Subject: Re: Classes with forward-referenced supers. In-Reply-To: Message of Wed, 31 Jan 90 10:47:12 -0500 from "kanderso@DINO.BBN.COM" <9001311725.AA21350@lanai.cs.ucla.edu> >From kanderso@DINO.BBN.COM Wed Jan 31 09:25:41 1990 >To: Trent Lange >Cc: commonloops.pa@xerox.com >Subject: Re: Classes with forward-referenced supers. >In-Reply-To: Your message of Tue, 30 Jan 90 22:57:52 -0800. > <900131.065752z.17041.lange@lanai.cs.ucla.edu> >Date: Wed, 31 Jan 90 10:47:12 -0500 >From: kanderso@DINO.BBN.COM > > > Redistributed: commonloops.pa > Date: Tue, 30 Jan 90 22:57:52 PST > From: Trent Lange > To: commonloops.pa@xerox.com > Subject: Classes with forward-referenced supers. > > > What is the official word on making instances when a class has > forward-referenced super-classes? > > It seems to me that making instances of classes with forward-referenced > supers definitely *should* be legal, simply creating an instance that > is minus the features of those forward-referenced classes. When the > forward-referenced supers are actually defined, of course, PCL > would then have to update any previously created instances, but this is > no different than when the class itself is redefined. > > On the other hand, it seems *quite* important to be able to make instances > when all of the super-classes are not yet defined. Applying > class-prototypes comes directly to mind, plus defining classes with lists > of possible super-class mixins, which either may or may not be used > depending upon whether a user wants to load them or not. > >I think your proposal is interesting. However, if you could create an >instance of a forward referenced class, you would loose the protection >that the current PCL provides. There would be no way to stop the use >from making instances when some important behavior was still missing. >If he never intends to use a set of mixins, redefining the class is >about as easy as not loading the file containing the mixins. > >k Of course, generally one would want to have defined all of the mixins before making instances, as is done now. However, I can easily envisage large packages developed in CLOS (such as the connectionist simulator we're now developing) in which one could explicitly tell a naive, non-CLOS user the capabilities that loading each file (and thus forward-referenced mixins) will give to his "objects". These kinds of instructions would be very clear to such a user, and would provide flexibility to load only necessary files/mixins, which would be especially important for very large packages running on small computers. It would also give a simple way for a user to purposefully exclude behaviors that are not wanted. The alternative is, as you said, making the user redefine the classes. This is no problem for the package's developer, but could be quite confusing for naive non-CLOS users. After all, in addition to learning the basics of object-oriented programming and how to define classes in CLOS, they would have to know the behaviors of each of the mixins in the package and which ones to combine to give their objects the desired capabilities. The legal forward-referenced class option thus seems much simpler for naive users of large packages that have many behavior options. The result of trying to use a behavior of a forward-referenced mixin that has not yet been "loaded" is clearly defined, being simply an error. Of course, I don't know if this is a point that has already been debated in creation of the specifications. If not, it might be an interesting question to discuss. - Trent Lange Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA12106; Thu, 1 Feb 90 09:42:46 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 01 FEB 90 09:30:17 PST Return-Path: Redistributed: commonloops.pa Received: from hplms2.hpl.hp.com ([15.255.176.66]) by Xerox.COM ; 01 FEB 90 09:28:47 PST Received: from hplap.HPL.HP.COM (hplap.hpl.hp.com) by hplms2.hp.com; Thu, 1 Feb 90 09:28:43 pst Received: from localhost by hplap.HPL.HP.COM; Thu, 1 Feb 90 09:28:10 pst Full-Name: Andreas Paepcke Message-Id: <9002011728.AA08227@hplap.HPL.HP.COM> To: commonloops.pa@Xerox.COM Subject: Metaobject Protocol Usage X-Mailer: mh6.5 Date: Thu, 01 Feb 90 09:28:08 PST From: Andreas Paepcke I plan to submit a paper to TOOL 90 about my use of the MOP to implement persistent objects (something like my paper in the '89 CLOS Workshop). I'd like to include references to work others have done with the MOP. These won't be limited to the issue of persistence. Possibles are use of the MOP for "trimming" the delivery environment or for modifying the language in interesting ways. I'd appreciate pointers. Thanks, Andreas Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA12206; Thu, 1 Feb 90 09:46:46 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 01 FEB 90 09:38:24 PST Return-Path: Redistributed: commonloops.pa Received: from lucid.com ([192.26.25.1]) by Xerox.COM ; 01 FEB 90 09:35:47 PST Received: from kent-state ([192.31.212.24]) by heavens-gate.lucid.com id AA12075g; Thu, 1 Feb 90 09:32:42 PST Received: by kent-state id AA00729g; Thu, 1 Feb 90 09:27:27 PST Date: Thu, 1 Feb 90 09:27:27 PST From: Jon L White Message-Id: <9002011727.AA00729@kent-state> To: Gregor.pa@Xerox.COM Cc: lange@CS.UCLA.EDU, commonloops.pa@Xerox.COM In-Reply-To: Gregor.pa@Xerox.COM's message of Wed, 31 Jan 90 20:55 PST <19900201045535.1.GREGOR@SPIFF.parc.xerox.com> Subject: Classes with forward-referenced supers. re: Until this moment, I believed that the specification said that making an instance of such a class signalled an error. . . . See X3J13 Document 88-002R, page 2-24, where it says of metaclass StandardClass: "All the superclasses of a class must be defined before an instance of the class can be made". I interpret "defined" to mean "finalized" as that term has been subsequently used. -- JonL -- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA09286; Thu, 1 Feb 90 18:23:17 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 01 FEB 90 11:00:47 PST Return-Path: Redistributed: commonloops.pa Received: from pooh.parc.xerox.com ([13.2.16.167]) by Xerox.COM ; 01 FEB 90 10:57:07 PST Received: from bullwinkle.parc.Xerox.COM by pooh.parc.xerox.com with SMTP (5.61+/IDA-1.2.8/gandalf) id AA08734; Thu, 1 Feb 90 10:56:46 PST Date: Thu, 1 Feb 90 10:56 PST From: Danny Bobrow Subject: Re: Classes with forward-referenced supers. To: lange@CS.UCLA.EDU Cc: commonloops.pa@Xerox.COM In-Reply-To: <900201.102222z.12143.lange@lanai.cs.ucla.edu> Message-Id: <19900201185645.3.BOBROW@BULLWINKLE.parc.xerox.com> .... However, I can easily envisage large packages developed in CLOS (such as the connectionist simulator we're now developing) in which one could explicitly tell a naive, non-CLOS user the capabilities that loading each file (and thus forward-referenced mixins) will give to his "objects". These kinds of instructions would be very clear to such a user, and would provide flexibility to load only necessary files/mixins, which would be especially important for very large packages running on small computers. It would also give a simple way for a user to purposefully exclude behaviors that are not wanted. The alternative is, as you said, making the user redefine the classes. This is no problem for the package's developer, but could be quite confusing for naive non-CLOS users. After all, in addition to learning the basics of object-oriented programming and how to define classes in CLOS, they would have to know the behaviors of each of the mixins in the package and which ones to combine to give their objects the desired capabilities. The legal forward-referenced class option thus seems much simpler for naive users of large packages that have many behavior options. The result of trying to use a behavior of a forward-referenced mixin that has not yet been "loaded" is clearly defined, being simply an error. - Trent Lange The simple solution for the developer of a package is simply to define as empty classes the full set of classes that may possibly exist for the application. No forward referenced classes are needed. When a naive user then loads a particular file, the class gets redefined. This is identical to what you proposed above, with the exception that the package developer must provide two definitions for optional classes -- the empty one, and then the package one. These leaves the protection in place for forward referenced classes, and the ease of use for naive users. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA09889; Thu, 1 Feb 90 18:50:01 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 01 FEB 90 13:33:19 PST Return-Path: <@CUNYVM.CUNY.EDU:CLAR@FRESE51.BITNET> Redistributed: COMMONLOOPS.PA Received: from CUNYVM.CUNY.EDU ([128.228.1.2]) by Xerox.COM ; 01 FEB 90 13:31:56 PST Received: from FRESE51.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP R1.2.2MX) with BSMTP id 1692; Thu, 01 Feb 90 16:31:59 EST Date: 1 FEB 90 10:09:43.51-GMT From: CLAR%FRESE51.BITNET@CUNYVM.CUNY.EDU Subject: PCL To: COMMONLOOPS.PA@Xerox.COM Message-Id: <900201-133319-10608@Xerox> We are a French School of Electrical Engineering and we are interested by PCL. How can we obtain it? I thank you in advance Sincerely yours, Daniel Clar clar@frese51.bitnet Computer Operations Manager Ecole Superieur d'Electricite Plateau de Moulon 91192 Gif-sur-Yvette Cedex France Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA09991; Thu, 1 Feb 90 18:53:07 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 01 FEB 90 17:54:24 PST Return-Path: Redistributed: commonloops.pa Received: from uc.msc.umn.edu ([128.101.1.3]) by Xerox.COM ; 01 FEB 90 17:52:29 PST Received: from molbio.cbs.umn.edu by uc.msc.umn.edu (5.59/1.14) id AA06954; Thu, 1 Feb 90 19:52:34 CST Date: Thu, 1 Feb 90 19:52:05 CST From: "Peter N. Saurugger" Message-Id: <9002020152.AA00732@molbio.cbs.umn.edu> Received: by molbio.cbs.umn.edu; Thu, 1 Feb 90 19:52:05 CST To: commonloops.pa@Xerox.COM Subject: accessing default values in classes Cc: norbert@molbio.cbs.umn.edu I would like to find out whether there is a defined way of accessing the default values in classes. The accessors seem to work only with instances for me. I probably should point out why I would like to have this feature: I am currently building a blackboard-based system. This system reasons about strings of instances of pre-defined classes. Under certain circumstances (e.g. data input) I need to create an object which matches to the default value of a certain slot. It seems that I have to create a dummy instance for each class to be able to access these values ...? Any enlightenment is appreciated, Peter N. Saurugger Molecular Biology Computing Center UofMinnesota Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA27321; Fri, 2 Feb 90 08:05:21 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 02 FEB 90 08:01:51 PST Return-Path: Redistributed: commonloops.pa Received: from DINO.BBN.COM ([128.89.3.8]) by Xerox.COM ; 02 FEB 90 07:58:56 PST To: "Peter N. Saurugger" Cc: commonloops.pa@Xerox.COM, norbert@molbio.cbs.umn.edu Subject: Re: accessing default values in classes In-Reply-To: Your message of Thu, 01 Feb 90 19:52:05 -0600. <9002020152.AA00732@molbio.cbs.umn.edu> Date: Fri, 02 Feb 90 11:12:46 -0500 From: kanderso@DINO.BBN.COM Message-Id: <900202-080151-13238@Xerox> Redistributed: commonloops.pa Date: Thu, 1 Feb 90 19:52:05 CST From: "Peter N. Saurugger" To: commonloops.pa@xerox.com Subject: accessing default values in classes Cc: norbert@molbio.cbs.umn.edu I would like to find out whether there is a defined way of accessing the default values in classes. The accessors seem to work only with instances for me. I probably should point out why I would like to have this feature: I am currently building a blackboard-based system. This system reasons about strings of instances of pre-defined classes. Under certain circumstances (e.g. data input) I need to create an object which matches to the default value of a certain slot. It seems that I have to create a dummy instance for each class to be able to access these values ...? Slot descriptions are kept on the class, so you can access the default value with something like: (defun default-value (slot-name class) (slotd-initform (find-slotd 'name (class-slots class)))) Alternatively you could create a default instance, as you suggested, and then just get a slot value using an accessor. k Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA02002; Fri, 2 Feb 90 09:32:00 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 02 FEB 90 09:23:34 PST Return-Path: Redistributed: commonloops.pa Received: from LABS-N.BBN.COM ([128.89.0.100]) by Xerox.COM ; 02 FEB 90 09:20:20 PST To: lange@cs.ucla.edu Cc: commonloops.pa@Xerox.COM Subject: Re: Classes with forward-referenced supers. In-Reply-To: Your message of Thu, 01 Feb 90 10:56:00 -0800. <19900201185645.3.BOBROW@BULLWINKLE.parc.xerox.com> Date: Fri, 02 Feb 90 12:11:50 -0500 From: Mike Thome Message-Id: <900202-092334-13514@Xerox> RE: Using forward-referenced supers to implement a sort of functional modularity. I think I have to object to the use of forward-referenced classes or even empty classes in this way. The problem is that these functional "features" which might be added in by loading in extra files cannot be removed with anywhere near the same efficacy. Given your view that you do not wish to expose your naive users to Lisp, a much more aestheticly pleasing solution might be to provide a small front end for mixing together (and incrementally loading) base classes into useful end-products. A few macros should be sufficient for a lisp-like programmatic interface. -mik (mthome@bbn.com) Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA25654; Fri, 2 Feb 90 20:34:18 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 02 FEB 90 20:34:12 PST Return-Path: Redistributed: commonloops.pa Received: from uxc.cso.uiuc.edu ([128.174.5.50]) by Xerox.COM ; 02 FEB 90 20:29:44 PST Received: from mmm.serc.3m.com by uxc.cso.uiuc.edu with UUCP (5.61+/IDA-1.2.8) id AA03991; Fri, 2 Feb 90 21:16:55 -0600 Received: by mmm.serc.3m.com ( 3M/SERC - 4.0/BDR-1.0) id AA25061; Fri, 2 Feb 90 14:32:48 CST Date: Fri, 2 Feb 90 14:32:48 CST From: us015029@mmm.serc.3m.com (John E. Collins) Message-Id: <9002022032.AA25061@mmm.serc.3m.com> To: peter-s@molbio.cbs.umn.edu Cc: commonloops.pa@Xerox.COM, norbert@molbio.cbs.umn.edu In-Reply-To: "Peter N. Saurugger"'s message of Thu, 1 Feb 90 19:52:05 CST <9002020152.AA00732@molbio.cbs.umn.edu> Subject: accessing default values in classes I would like to find out whether there is a defined way of accessing the default values in classes. The accessors seem to work only with instances for me. Isn't this what class-prototype is for? It seems to me that (class-prototype some-class-object) returns something that looks like a "default" instance of the class in question. You can then access it as a normal instance. I have several times used this to get at class-allocation slots when I didn't have ready access to an instance of the class. ------------------------------------------------------------------------ John Collins Phone: +1 (612) 736 0778 3M Company FAX: +1 (612) 733 2165 3M Center, Building 260-6A-08 Internet: jecollins@serc.3M.com St. Paul, MN 55144-1000 UUCP: ...!uiucuxc!mmm!jecollins ------------------------------------------------------------------------ Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA14049; Sun, 4 Feb 90 18:03:20 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 04 FEB 90 17:58:53 PST Return-Path: Redistributed: commonloops.pa Received: from uc.msc.umn.edu ([128.101.1.3]) by Xerox.COM ; 04 FEB 90 17:57:29 PST Received: from molbio.cbs.umn.edu by uc.msc.umn.edu (5.59/1.14) id AA21748; Sun, 4 Feb 90 19:57:11 CST Date: Sun, 4 Feb 90 19:30:01 CST From: "Peter N. Saurugger" Message-Id: <9002050130.AA04671@molbio.cbs.umn.edu> Received: by molbio.cbs.umn.edu; Sun, 4 Feb 90 19:30:01 CST To: commonloops.pa@Xerox.COM Subject: RE: accessing default values in classes Cc: kanderso@dino.bbn.com, norbert@molbio.cbs.umn.edu, us015029@mmm.serc.3m.com Here is my original question: I would like to find out whether there is a defined way of accessing the default values in classes. The accessors seem to work only with instances for me. I probably should point out why I would like to have this feature: I am currently building a blackboard-based system. This system reasons about strings of instances of pre-defined classes. Under certain circumstances (e.g. data input) I need to create an object which matches to the default value of a certain slot. It seems that I have to create a dummy instance for each class to be able to access these values ...? Here is a suggestion by kanderso@dino.bbn.com : Slot descriptions are kept on the class, so you can access the default value with something like: (defun default-value (slot-name class) (slotd-initform (find-slotd 'name (class-slots class)))) Alternatively you could create a default instance, as you suggested, and then just get a slot value using an accessor. k -- this works nicely in the case where I used the :initform slot option, but slotd-initform does not access default-values (a class-option). Anyway, this brought me on the track to a possible route, using the accessor class-options on a class-object. Here is another suggestion by John E. Collins (us015029@mmm.serc.3m.com) Isn't this what class-prototype is for? It seems to me that (class-prototype some-class-object) returns something that looks like a "default" instance of the class in question. You can then access it as a normal instance. I have several times used this to get at class-allocation slots when I didn't have ready access to an instance of the class. -- This doesn't work in the version of pcl (Victoria day) I have up. The method class-prototype was redefined to use allocate-instance instead of make-instance (as it had been before). ALLOCATE-INSTANCE leaves the slots of the returned prototype unbound. Thank you for your suggestions, --Peter N. Saurugger Molecular Biology Computing Center UofMN Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA16580; Mon, 5 Feb 90 18:31:16 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 05 FEB 90 18:27:49 PST Return-Path: Redistributed: CommonLoops.pa Received: from scslwide.sony.co.jp ([133.138.199.1]) by Xerox.COM ; 05 FEB 90 18:23:41 PST Received: from socslgw.csl.sony.co.jp by scslwide.sony.co.jp with SMTP (4.0/2.7W) id AA05668; Tue, 6 Feb 90 11:25:22 JST Received: from osawa.csl.sony.co.jp by socslgw.csl.sony.co.jp (4.0/6.4J.5) id AA02980; Tue, 6 Feb 90 11:24:48 JST Received: by osawa.csl.sony.co.jp (4.0/6.4J.4) id AA15892; Tue, 6 Feb 90 11:25:47+090 Return-Path: Message-Id: <9002060225.AA15892@osawa.csl.sony.co.jp> To: CommonLoops.pa@Xerox.COM Subject: PCL compilation problem under Allegro CL 1.3.1 Date: Tue, 06 Feb 90 11:25:47 +0900 From: Ei-ichi Osawa I'm installing PCL (12/7/88) on a Macintosh II under Allegro Common Lisp 1.3.1, but I've got the following warning message and compilation error. Does anyone have any idea to fix this problem? Thanks in advance. ----------------------------------------------------- Ei-ichi Osawa (CSNet: osawa%csl.sony.jp@RELAY.CS.NET) Sony Computer Science Laboratory Inc., Tokyo, Japan Transcript of compilation session follows. -------------------------------------------------------------------- Welcome to Macintosh Allegro Common Lisp 1.3.1! ? (load ":PCL:defsys.lisp") "KazKun:Languages:AllegroCommonLisp:PCL:defsys.lisp" ? (pcl::compile-pcl) Compiling PKG... Loading binary of PKG... Compiling WALK... Loading binary of WALK... Compiling ITERATE... Compiler warnings for file "KazKun:Languages:AllegroCommonLisp:PCL:iterate.lisp" : In function OPTIMIZE-ITERATE-FORM : Variable not ignored (V) Loading binary of ITERATE... Compiling MACROS... Loading binary of MACROS... Compiling LOW... Loading binary of LOW... Compiling CORAL-LOW... Loading binary of CORAL-LOW... > Warning: FUNCTION OBJECT-CACHE-NO originally defined in: (CCL;PCL:low.lisp) is now being redefined in: CCL;PCL:coral-low.lisp > While executing: CCL::RECORD-SOURCE-FILE > Warning: FUNCTION PRINTING-RANDOM-THING-INTERNAL originally defined in: (CCL; PCL:macros.lisp) is now being redefined in: CCL;PCL:coral-low.lisp > While executing: CCL::RECORD-SOURCE-FILE > Warning: FUNCTION SET-FUNCTION-NAME-1 originally defined in: (CCL;PCL:low.lisp) is now being redefined in: CCL;PCL:coral-low.lisp > While executing: CCL::RECORD-SOURCE-FILE Compiling FIN... Loading binary of FIN... Compiling DEFS... Compiler warnings for file "KazKun:Languages:AllegroCommonLisp:PCL:defs.lisp" : In function SUB-SPECIALIZER-P : Unused lexical variable (#:G1322) Loading binary of DEFS... Compiling BOOT... Loading binary of BOOT... Compiling VECTOR... Loading binary of VECTOR... Compiling SLOTS... Loading binary of SLOTS... Compiling INIT... Loading binary of INIT... Compiling DEFCLASS... Loading binary of DEFCLASS... Compiling STD-CLASS... Loading binary of STD-CLASS... Compiling POINTS... Loading binary of POINTS... Compiling BRAID1... Loading binary of BRAID1... Compiling FSC... > Error: Can't determine class of # > While executing: CLASS-OF > Type Command-/ to continue, Command-. to abort. 1 > Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA01156; Tue, 6 Feb 90 23:43:20 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 06 FEB 90 21:44:22 PST Date: Tue, 6 Feb 90 21:43 PST From: Gregor.pa@Xerox.COM Subject: new version of PCL To: CommonLoops.pa@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest Message-Id: <19900207054327.4.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no There were times I never thought it would happen, but there is a new version of pcl on arisia.xerox.com. The *pcl-system-date* for this version is: "2/6/90 A PCL for the 90's (beta)" The files are in the /pcl/beta directory. You can access them with anonymous ftp. People at PARC can get this version in ~gregor/pcl. This version is different in a lot of ways from previous versions. The entire runtime machine has been reimplemented, almost all of the metaobject protocol has been reimplemented, and a number of other changes have been made as well. This version conforms more closely to the spec than previous versions and will complain about things you used to be able to get away with in previous versions. All in all, I expect this version to be faster for all programs and much faster for some programs. This will become more true as the port-specific performance problems get worked out. This version has received some pretty significant testing, but I am sure bugs remain. There are also some known performance problems in some ports, these are being worked out. I would like to encourage the more brave among you to try this version out soon. I would like to get feedback on it, and at some point soon we would like to gather more performance data on the new runtime machinery. That will require that some user applications be running in the new one. P.S. I have only tried Genera 7.2, Lucid 3.0 and Franz 3.0. Good luck and enjoy. ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA24532; Wed, 7 Feb 90 14:26:15 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 07 FEB 90 14:12:07 PST Date: Wed, 7 Feb 90 14:10 PST From: Gregor.pa@Xerox.COM Subject: first patch To: CommonLoops.pa@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest Message-Id: <19900207221015.7.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no Here is the first patch to the new beta test PCL. This is in the file patch1.text in the /pcl/alpha directory. ;from low.lisp Towards the end of the file, there are a number of definitions related to templated functions. These are all commented out by being enclosed in #| ... |#. Replace that entire commented out definition with the following: (defmacro precompile-random-code-segments (&optional system) `(progn (precompile-function-generators ,system) (precompile-dfun-constructors ,system))) ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA24584; Wed, 7 Feb 90 14:28:27 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 07 FEB 90 14:13:45 PST Date: Wed, 7 Feb 90 14:11 PST From: Gregor.pa@Xerox.COM Subject: first patch To: CommonLoops.pa@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest Supersedes: <19900207221015.7.GREGOR@SPIFF.parc.xerox.com> Comments: fixed a typo Message-Id: <19900207221117.8.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no Here is the first patch to the new beta test PCL. This is in the file patch1.text in the /pcl/beta directory. ;from low.lisp Towards the end of the file, there are a number of definitions related to templated functions. These are all commented out by being enclosed in #| ... |#. Replace that entire commented out definition with the following: (defmacro precompile-random-code-segments (&optional system) `(progn (precompile-function-generators ,system) (precompile-dfun-constructors ,system))) ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA25078; Wed, 7 Feb 90 14:44:02 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 07 FEB 90 14:32:32 PST Return-Path: Redistributed: CommonLoops.PA Received: from boulder.Colorado.EDU ([128.138.238.18]) by Xerox.COM ; 07 FEB 90 14:05:12 PST Return-Path: Received: by boulder.Colorado.EDU (cu-hub.890824) Received: by newsigi.colorado.edu (cu.generic.890828) From: Andreas Girgensohn Message-Id: <9002072204.AA09750@newsigi.colorado.edu> Subject: New PCL To: CommonLoops.PA@Xerox.COM Date: Wed, 7 Feb 90 15:04:03 MDT X-Mailer: ELM [version 2.2 PL0] I found a call to intern in the new PCL that might lead to problems if the value of *print-case* is not :upcase. Here is a fix: *** braid.lisp Wed Feb 7 14:49:21 1990 --- braid.lisp.ORIG Wed Feb 7 10:38:07 1990 *************** *** 198,204 **** (setq *the-wrapper-of-t* wrapper *the-class-t* class)) ((memq name '(standard-object standard-class)) ! (set (intern (format nil "*THE-CLASS-~A*" (string name)) *the-pcl-package*) class))) (dolist (slot slots) --- 198,204 ---- (setq *the-wrapper-of-t* wrapper *the-class-t* class)) ((memq name '(standard-object standard-class)) ! (set (intern (format nil "*THE-CLASS-~A*" name) *the-pcl-package*) class))) (dolist (slot slots) The new version of PCL works fine. I have one minor complaint: the progress bar in Genera 7.2 shows now all the time "Compiling #:top-level-formNNNN", in Victoria Day PCL one could see which class or method would be compiled. One question: is the following a proper way for undefining a class? (defmethod kill-pcl-class ((class pcl::class)) (let ((name (class-name class))) (when name (setf (find-class name) nil))) (dolist (super (pcl::class-direct-superclasses class)) (pcl::remove-direct-subclass super class))) Andreas Girgensohn andreasg@boulder.colorado.edu Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA26740; Wed, 7 Feb 90 15:49:24 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 07 FEB 90 15:47:46 PST Return-Path: <@SKAGIT.atc.boeing.com.ARPANET:snicoud@atc.boeing.com> Redistributed: commonloops.PA Received: from atc.boeing.com ([130.42.28.80]) by Xerox.COM ; 07 FEB 90 15:41:38 PST Received: by atc.boeing.com on Wed, 7 Feb 90 15:41:47 PST Date: Wed, 7 Feb 90 15:49 PST From: Stephen Nicoud Subject: RE: new version of PCL To: Gregor.pa@Xerox.COM Cc: CommonLoops.PA@Xerox.COM, bug-clx@expo.lcs.mit.edu Message-Id: <19900207234921.6.SLN@SKAGIT.atc.boeing.com> Date: 7 Feb 90 08:33:13 GMT From: Gregor.pa@Xerox.COM There were times I never thought it would happen, but there is a new version of pcl on arisia.xerox.com. The *pcl-system-date* for this version is: "2/6/90 A PCL for the 90's (beta)" I have been unable to compile CLX (R4) on a Symbolics 3650 (Genera 7.2.) or on a Sun 3/60 (Lucid 3.0.2) using this new version of PCL. Curiously, though, they each crash in different places. On the Symbolics, clx.lisp bombs with error: "Error: The operand 400 was beyond the limit, 400 for CONSTANT-OPERAND Your function probably has too many constants or external functions." while compiling the form: "(DEF-CLX-CLASS (DISPLAY # ...) ...)". In Lucid, image.lisp bombs with error: ">>Error: IMAGE-X is an unknown type." while compiling the form: "(LUCID-COMMON-LISP:DEFINE-FUNCTION (QUOTE PUT-IMAGE) (FUNCTION (LAMBDA # # #)))". Can anyone else verify this behavior? I have detailed bug reports for those who want them. Steve -- Stephen Nicoud snicoud@atc.boeing.com Boeing Advanced Technology Center for Computer Sciences Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA27428; Wed, 7 Feb 90 16:25:27 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 07 FEB 90 16:18:10 PST Date: Wed, 7 Feb 90 16:15 PST From: Gregor.pa@Xerox.COM Subject: patch2.text To: CommonLoops.pa@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest Message-Id: <19900208001542.1.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no The following is the contents of /pcl/alpha/patch2.text. Make these changes to the indicated files. ;---------------- ;from defsys.lisp (defun compile-pcl (&optional m) (let (#+:coral(ccl::*warn-if-redefine-kernel* nil) ) (cond ((null m) (operate-on-system 'pcl :compile)) ((eq m :print) (operate-on-system 'pcl :compile () t)) ((eq m :query) (operate-on-system 'pcl :query-compile)) ((eq m :confirm) (operate-on-system 'pcl :confirm-compile)) ((eq m 't) (operate-on-system 'pcl :recompile)) ((listp m) (operate-on-system 'pcl :compile-from m)) ((symbolp m) (operate-on-system 'pcl :recompile-some `(,m)))))) (defun load-pcl (&optional m) (let (#+:coral(ccl::*warn-if-redefine-kernel* nil) ) (cond ((null m) (operate-on-system 'pcl :load)) ((eq m :query) (operate-on-system 'pcl :query-load))) (pushnew :pcl *features*) (pushnew :portable-commonloops *features*))) ;---------------- ;from braid.lisp (defun bootstrap-meta-braid () (let* ((std-class-size (length *std-class-slots*)) (std-class (%allocate-instance--class std-class-size)) (std-class-wrapper (make-wrapper std-class)) (built-in-class (%allocate-instance--class std-class-size)) (built-in-class-wrapper (make-wrapper built-in-class)) (direct-slotd (%allocate-instance--class std-class-size)) (effective-slotd (%allocate-instance--class std-class-size)) (direct-slotd-wrapper (make-wrapper direct-slotd)) (effective-slotd-wrapper (make-wrapper effective-slotd))) ;; ;; First, make a class metaobject for each of the early classes. For ;; each metaobject we also set its wrapper. Except for the class T, ;; the wrapper is always that of STANDARD-CLASS. ;; (dolist (definition *early-class-definitions*) (let* ((name (ecd-class-name definition)) (meta (ecd-metaclass definition)) (class (case name (standard-class std-class) (standard-direct-slot-definition direct-slotd) (standard-effective-slot-definition effective-slotd) (built-in-class built-in-class) (otherwise (%allocate-instance--class std-class-size))))) (unless (eq name t) (inform-type-system-about-class class name)) (setf (std-instance-wrapper class) (ecase meta (standard-class std-class-wrapper) (built-in-class built-in-class-wrapper))) (setf (find-class name) class))) ;; ;; ;; (dolist (definition *early-class-definitions*) (let ((name (ecd-class-name definition)) (source (ecd-source definition)) (direct-supers (ecd-superclass-names definition)) (direct-slots (ecd-canonical-slots definition)) (other-initargs (ecd-other-initargs definition))) (let ((direct-default-initargs (getf other-initargs :default-initargs))) (multiple-value-bind (slots cpl default-initargs direct-subclasses) (early-collect-inheritance name) (let* ((class (find-class name)) (wrapper (cond ((eq class std-class) std-class-wrapper) ((eq class direct-slotd) direct-slotd-wrapper) ((eq class effective-slotd) effective-slotd-wrapper) ((eq class built-in-class) built-in-class-wrapper) (t (make-wrapper class)))) (proto nil)) (cond ((eq name 't) (setq *the-wrapper-of-t* wrapper *the-class-t* class)) ((memq name '(standard-object standard-class)) (set (intern (format nil "*THE-CLASS-~A*" (symbol-name name)) *the-pcl-package*) class))) (dolist (slot slots) (unless (eq (getf slot :allocation :instance) :instance) (error "Slot allocation ~S not supported in bootstrap."))) (setf (wrapper-instance-slots-layout wrapper) (mapcar #'canonical-slot-name slots)) (setf (wrapper-class-slots wrapper) ()) (setq proto (%allocate-instance--class (length slots))) (setf (std-instance-wrapper proto) wrapper) (setq direct-slots (bootstrap-make-slot-definitions direct-slots direct-slotd-wrapper)) (setq slots (bootstrap-make-slot-definitions slots effective-slotd-wrapper)) (bootstrap-initialize-std-class class name source direct-supers direct-subclasses cpl wrapper direct-slots slots direct-default-initargs default-initargs proto) (dolist (slotd direct-slots) (bootstrap-accessor-definitions name (bootstrap-get-slot 'std-slotd slotd 'name) (bootstrap-get-slot 'std-slotd slotd 'readers) (bootstrap-get-slot 'std-slotd slotd 'writers)))))))))) ;---------------- ;from defclass.lisp (defun make-top-level-form (name times form) (flet ((definition-name () (if (and (listp name) (memq (car name) '(class method method-combination))) (format nil "~A~{ ~S~}" (capitalize-words (car name) ()) (cdr name)) (format nil "~S" name)))) (definition-name) #+Genera (let ((thunk-name (gensym "TOP-LEVEL-FORM"))) `(eval-when ,times (defun ,thunk-name () (declare (sys:function-parent ,@name)) ,form) (,thunk-name))) #+Lucid3.0 `(compiler-let ((system:*compiler-message-string* (or system:*compiler-message-string* ,(definition-name)))) (eval-when ,times ,form)) #-(or Genera GCLisp :coral Lucid3.0) (make-progn `',name `(eval-when ,times ,form)))) ;---------------- ;from defs.lisp (defun setfboundp (symbol) #+Genera nil #+Lucid (locally (declare (special lucid::*setf-inverse-table* lucid::*simple-setf-method-table* lucid::*setf-method-expander-table*)) (or (gethash symbol lucid::*setf-inverse-table*) (gethash symbol lucid::*simple-setf-method-table*) (gethash symbol lucid::*setf-method-expander-table*))) #+kcl (or (get symbol 'si::setf-method) (get symbol 'si::setf-update-fn) (get symbol 'si::setf-lambda)) #+Xerox (or (get symbol :setf-inverse) (get symbol 'il:setf-inverse) (get symbol 'il:setfn) (get symbol :shared-setf-inverse) (get symbol :setf-method-expander) (get symbol 'il:setf-method-expander)) #+:coral (or (get symbol 'ccl::setf-inverse) (get symbol 'ccl::setf-method-expander)) #-(or Genera Lucid KCL Xerox :coral) nil) ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA27631; Wed, 7 Feb 90 16:34:41 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 07 FEB 90 16:27:36 PST Return-Path: Redistributed: CommonLoops.pa Received: from src.honeywell.com ([129.30.1.10]) by Xerox.COM ; 07 FEB 90 16:25:39 PST Return-Path: Received: by src.honeywell.com (4.0/smail2.6.3/SRCv0.25); Wed, 7 Feb 90 18:25:41 CST id AA26975 for CommonLoops.pa@xerox.com at xerox.com Posted-Date: 8 Feb 90 00:25:40 GMT To: CommonLoops.pa@Xerox.COM Path: srcsip!gendibal!alarson From: alarson@SRC.Honeywell.COM (Aaron Larson) Newsgroups: ext.commonloops Subject: pcl 2-6-90 handling of &key Message-Id: <57420@srcsip.UUCP> Date: 8 Feb 90 00:25:40 GMT Sender: news@src.honeywell.COM Lines: 28 According to my reading of the lambda list congruency rules, the following should be permitted, but isn't. Allegro CL 3.1.4 [Sun4] (12/1/89) Copyright (C) 1985-1989, Franz Inc., Berkeley, CA, USA (defmethod bar ((a integer) &key)) # (defmethod bar ((a symbol) &key x)) Error: Attempt to add the method # to the generic function #. But the method and generic function differ in whether they accept rest or keyword arguments. [1] :zo Evaluation stack: ->(ERROR "Attempt to add the method ~S to the generic function ~S.~%~ But ~A" # ...) (#:|.ADD-ARG-INFO.a97aa869| "the method and generic function differ in whether they accept~%~ rest or keyword arguments.") (ADD-ARG-INFO # # ...) (REAL-ADD-METHOD # #) (ADD-METHOD # #) (REAL-ADD-NAMED-METHOD BAR NIL ...) (LOAD-DEFMETHOD-INTERNAL BAR NIL ...) (LOAD-DEFMETHOD STANDARD-METHOD BAR ...) ... more older frames ... [1] Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA14196; Thu, 8 Feb 90 22:51:35 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 08 FEB 90 15:08:37 PST Date: Thu, 8 Feb 90 15:06 PST From: Gregor.pa@Xerox.COM Subject: beta 2 available To: CommonLoops.PA@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest Message-Id: <19900208230602.3.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no All of the recent patches, plus some more changes are in a new pcl now in /pcl/beta. This includes a couple of additional changes to make things work in Coral. It also includes a number of syntactic cleanups to files, removing dead code and the like. The lambda list congruency patch is coming. ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA18291; Fri, 9 Feb 90 02:29:51 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 08 FEB 90 18:27:16 PST Date: Thu, 8 Feb 90 18:26 PST From: Gregor.pa@Xerox.COM Subject: Re: pcl 2-6-90 handling of &key To: Aaron Larson Cc: CommonLoops.pa@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest In-Reply-To: <57420@srcsip.UUCP> Message-Id: <19900209022612.7.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no Date: 8 Feb 90 00:25:40 GMT From: alarson@SRC.Honeywell.COM (Aaron Larson) According to my reading of the lambda list congruency rules, the following should be permitted, but isn't. (defmethod bar ((a integer) &key)) # (defmethod bar ((a symbol) &key x)) Error: ... This is now fixed. Rather than making a patch file, I just wrote out a new version of the file methods.lisp. Grab that file and use (compile-pcl) to recompile. Keep those cards and letters coming. ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA18315; Fri, 9 Feb 90 02:32:43 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 08 FEB 90 10:39:42 PST Return-Path: Redistributed: CommonLoops.pa Received: from watstat.waterloo.edu ([129.97.129.33]) by Xerox.COM ; 08 FEB 90 08:14:56 PST Received: by watstat.waterloo.edu id ; Thu, 8 Feb 90 11:14:08 EST Date: Thu, 8 Feb 90 11:14:08 EST From: Greg Anglin Message-Id: <9002081614.AA09808@watstat.waterloo.edu> To: CommonLoops.pa@Xerox.COM Subject: 2/6/90 PCL under Coral ACL 1.2.2 Hi -- I've been attempting to compile "2/6/90 A PCL for the 90's (beta)" under Mac (ie Coral) Allegro Common Lisp 1.2.2. I have made the changes required by patch1 and patch2. The output resulting from the failed compile is below. For the moment, ACL 1.2.2 is the only LISP I have available, so I haven't tried other environments. I don't know who is taking care of the coral port; if there is a better email address to contact on coral pcl issues, please let me know. Thanks, Greg Anglin (dganglin@watstat.waterloo.edu) Department of Statistics University of Waterloo Waterloo, Ontario ******************************************************************************* Welcome to Allegro CL Version 1.2.2! ? (load "ccl;pcl-beta:defsys.lisp") ;Loading "HardDisk:Common Lisp:pcl-beta:defsys.lisp"... "HardDisk:Common Lisp:pcl-beta:defsys.lisp" ? (pcl::compile-pcl) Compiling PKG... Loading binary of PKG... Compiling WALK... Loading binary of WALK... Compiling ITERATE... Compiler warnings for file "HardDisk:Common Lisp:pcl-beta:iterate.lisp" : In function ITERATE::OPTIMIZE-ITERATE-FORM : Variable not ignored (ITERATE::V) Loading binary of ITERATE... Compiling MACROS... Loading binary of MACROS... Compiling LOW... Loading binary of LOW... Compiling CORAL-LOW... Loading binary of CORAL-LOW... > Warning: FUNCTION PRINTING-RANDOM-THING-INTERNAL originally defined in: (CCL; pcl-beta:macros.lisp) is now being redefined in: CCL;pcl-beta:coral-low.lisp > While executing: CCL::RECORD-SOURCE-FILE > Warning: FUNCTION SET-FUNCTION-NAME-1 originally defined in: (CCL;pcl-beta:lo w.lisp) is now being redefined in: CCL;pcl-beta:coral-low.lisp > While executing: CCL::RECORD-SOURCE-FILE Compiling FIN... Loading binary of FIN... Compiling DEFCLASS... Compiler warnings for file "HardDisk:Common Lisp:pcl-beta:defclass.lisp" : In function PCL::MAKE-TOP-LEVEL-FORM : Unused lexical variables (PCL::FORM PCL::TIMES) In function PCL::EXPAND-DEFCLASS : Undeclared free variable (PCL::*DEFCLASS-TIMES*) Loading binary of DEFCLASS... Compiling DEFS... Loading binary of DEFS... Compiling FNGEN... Loading binary of FNGEN... Compiling LAP... Loading binary of LAP... Compiling PLAP... Loading binary of PLAP... Compiling CACHE... Compiler warnings for file "HardDisk:Common Lisp:pcl-beta:cache.lisp" : In function PCL::EXPAND-CACHE : Unused lexical variable (IGNORE) Loading binary of CACHE... Compiling DLAP... Loading binary of DLAP... Compiling BOOT... Loading binary of BOOT... Compiling VECTOR... Compiler warnings for file "HardDisk:Common Lisp:pcl-beta:vector.lisp" : In function PCL::OPTIMIZE-SLOT-VALUE : Unused lexical variable (IGNORE) In function PCL::OPTIMIZE-SET-SLOT-VALUE : Unused lexical variable (IGNORE) Loading binary of VECTOR... Compiling SLOTS... Loading binary of SLOTS... Compiling INIT... Loading binary of INIT... Compiling STD-CLASS... Compiler warnings for file "HardDisk:Common Lisp:pcl-beta:std-class.lisp" : In function PCL::ENSURE-CLASS-VALUES : Unused lexical variable (PCL::PROTO) Loading binary of STD-CLASS... > Error: Undefined function: MAKE-INSTANCE . > While executing: CCL::%FUNCTION > Type Command-/ to continue, Command-. to abort. 1 > -------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA14605; Fri, 9 Feb 90 17:43:18 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 09 FEB 90 11:56:27 PST Return-Path: Redistributed: commonloops.pa Received: from usc.edu ([128.125.1.45]) by Xerox.COM ; 09 FEB 90 10:45:37 PST Received: from alcor.usc.edu by usc.edu (5.59/SMI-3.0DEV3) id AA27798; Fri, 9 Feb 90 06:29:09 PST Received: by alcor.usc.edu (4.1/SMI-3.0DEV3) id AA06805; Fri, 9 Feb 90 06:29:07 PST Date: Fri, 9 Feb 90 06:29:07 PST From: ctan%alcor.usc.edu@usc.edu (Chee-Weei Tan) Message-Id: <9002091429.AA06805@alcor.usc.edu> To: commonloops.pa@Xerox.COM Subject: tar file for new pcl I would like to enquire if the pcr.tar.Z file in the pub directory contains the archive for the new release of PCL. If not, is there one made available. Thanks. Chee Weei. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA17352; Fri, 9 Feb 90 19:27:36 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 09 FEB 90 12:51:38 PST Return-Path: Redistributed: commonloops.pa Received: from gateway.mitre.org ([128.29.31.10]) by Xerox.COM ; 09 FEB 90 11:00:52 PST Return-Path: Received: by gateway.mitre.org (5.54/SMI-2.2) id AA11196; Fri, 9 Feb 90 07:32:10 EST Received: by starbase (4.0/SMI-4.0) id AA17495; Fri, 9 Feb 90 07:30:12 EST Date: Fri, 9 Feb 90 07:30:12 EST From: sanborn@starbase.mitre.org (Jim Sanborn) Message-Id: <9002091230.AA17495@starbase> To: clos@starbase.mitre.org Subject: new pcl Not sure whether this is a repeat, sorry if so... I tried compiling the new PCL on ares Wed. nite with no luck, it complains for quite awhile then finally dies loading a file with something or other undefined. Since then I've seen several patches from Gregor, which he has assembled them into a "new" version. As all this has happened in a matter of days, I suggest we wait until most of the *major* bugs have been shaken from the latest 'n' greatest PCL before beginning to use it here. We should probably wait at least until the complaints are about *using* the new version and not trying to get it running. (grumble, grumble) -Jim Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA17813; Fri, 9 Feb 90 19:43:32 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 09 FEB 90 14:15:03 PST Return-Path: Redistributed: CommonLoops.pa Received: from fs3.cs.rpi.edu ([128.213.4.10]) by Xerox.COM ; 09 FEB 90 11:39:16 PST Received: by fs3.cs.rpi.edu (5.54/1.2-RPI-CS-Dept) id AA02009; Fri, 9 Feb 90 14:37:13 EST Date: Fri, 9 Feb 90 14:37:04 EST From: harrisr@turing.cs.rpi.edu (Richard Harris) Received: by turing.cs.rpi.edu (4.0/1.2-RPI-CS-Dept) id AA21353; Fri, 9 Feb 90 14:37:04 EST Message-Id: <9002091937.AA21353@turing.cs.rpi.edu> To: CommonLoops.pa@Xerox.COM, wfs@cs.utexas.edu Subject: A bug in KCL affecting the 2/6/90 PCL There is a bug in KCL and in every version of AKCL that prevents the new PCL ("2/6/90 A PCL for the 90's (beta)") from compiling. Below are two test cases for this bug which return 1 when uncompiled, and return NIL when compiled; and also the fix for this bug. (defun z () (let ((v 1)) (labels ((f (&aux r) (multiple-value-prog1 nil (setq r (g))) r) (g () v)) (f)))) (defun q () (let ((z 1)) (labels ((f () (labels ((g () (h))) (g))) (h () z)) (f)))) compiler::c2-call-local (at the end of cmpnew/flet.lsp) change the lines: (t (push-args args) (wt-nl "L" (fun-cfun (car fd)) "(") (dotimes** (n (fun-level (car fd))) (wt "base" n ",")) (wt "base") (unless (= (fun-level (car fd)) *level*) (wt (1- *level*))) (wt ");") (base-used))) to: (t (push-args args) (wt-nl "L" (fun-cfun (car fd)) "(") (dotimes** (n (fun-level (car fd))) (wt "base" n ",")) (wt "base") (unless (= (fun-level (car fd)) *level*) (wt (fun-level (car fd)))) (wt ");") (base-used))) ---- Rick Harris Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA17863; Fri, 9 Feb 90 19:45:22 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 09 FEB 90 14:48:51 PST Date: Fri, 9 Feb 90 14:47 PST From: Gregor.pa@Xerox.COM Subject: Re: Next PCL bug To: Volker Haarslev Cc: commonloops.PA@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest In-Reply-To: <9002082120.AA04328@hocket.parc.xerox.com> Message-Id: <19900209224754.9.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no Date: Thu, 8 Feb 90 13:20:54 PST From: Volker Haarslev ... problem with slot-exists-p ... The following patch fixes this bug. The patch is the beta 2 version of A PCL for the 90's. This patch is also found in the file patch1.text in the /pcl/beta directory. ;from slots.lisp (defmethod slot-exists-p-using-class ((class std-class) (object standard-object) slot-name) (not (null (find-slot-definition class slot-name)))) ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA17880; Fri, 9 Feb 90 19:46:44 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 09 FEB 90 14:59:35 PST Return-Path: Redistributed: CommonLoops.PA Received: from lanai.cs.ucla.edu ([131.179.128.13]) by Xerox.COM ; 09 FEB 90 12:12:56 PST Return-Path: Received: by lanai.cs.ucla.edu (Sendmail 5.61a+YP/2.25) id AA27394; Fri, 9 Feb 90 03:21:02 -0800 Date: Fri, 9 Feb 90 03:21:02 PST From: Trent Lange Message-Id: <900209.112102z.27390.lange@lanai.cs.ucla.edu> To: Gregor.pa@Xerox.COM Cc: CommonLoops.PA@Xerox.COM Subject: Defclass crash in beta 2 The new beta version in pcl/beta crashes in Lucid 3.0 when :documentation is used as the first or only class-option (interestingly it works if :default-initargs or :metaclass is used *before* it). It also crashes if :documentation is included (at all) as a slot-option. Both of these worked in the original version of pcl/beta. - Trent Lange > (defclass a () () (:documentation "")) >>Error: Invalid initialization argument :DOCUMENTATION for class STANDARD-CLASS PCL::CHECK-INITARGS-1: Required arg 0 (CLASS): # Required arg 1 (INITARGS): (:NAME A :DIRECT-SUPERCLASSES NIL :DIRECT-SLOTS NIL :DEFINITION-SOURCE ((DEFCLASS A) NIL) :DOCUMENTATION ("")) Required arg 2 (METHODS): (# # # # #) :A 0: Abort to Lisp Top Level Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA18034; Fri, 9 Feb 90 19:54:27 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 09 FEB 90 15:11:43 PST Return-Path: <@ugw.utcs.utoronto.ca:JACKSON@NRCCIT.NRC.CA> Redistributed: CommonLoops.pa Received: from ugw.utcs.utoronto.ca ([128.100.100.3]) by Xerox.COM ; 09 FEB 90 12:25:16 PST Received: from VM.NRC.CA (stdin) by ugw.utcs.utoronto.ca with BSMTP id 58588; Fri, 9 Feb 90 15:24:44 EST Received: from NRCNET.NRC.CA by VM.NRC.CA (Mailer R2.05) with BSMTP id 5612; Fri, 09 Feb 90 15:09:36 EST Date: Fri, 9 Feb 90 15:00:00 EST From: JACKSON@nrccit.nrc.ca Subject: Accessing PCL Directories To: CommonLoops.pa@Xerox.COM X-Vms-To: BITNET::"CommonLoops.pa@Xerox.com" Message-Id: <90Feb9.152444est.58588@ugw.utcs.utoronto.ca> Dear Sir or Madam: Could you give me directions on how to access the directories which contain the PCL files? I'm not sure exactly what other networking options I have access to here, but I receive the mailing list documents through BITNET. Thanks for your time! Dick Jackson National Research Council Canada Winnipeg, Manitoba JACKSON@NRCCIT.NRC.CA Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA18121; Fri, 9 Feb 90 19:56:50 -0800 Received: from Cabernet.ms by ArpaGateway.ms ; 09 FEB 90 12:10:40 PST Return-Path: Redistributed: CommonLoops.pa Received: from src.honeywell.com ([129.30.1.10]) by Xerox.COM ; 09 FEB 90 10:51:33 PST Return-Path: Received: by src.honeywell.com (4.0/smail2.6.3/SRCv0.25); Fri, 9 Feb 90 12:25:32 CST id AA17756 for CommonLoops.pa@xerox.com at xerox.com Posted-Date: 9 Feb 90 18:25:30 GMT To: CommonLoops.pa@Xerox.COM Path: srcsip!gendibal!alarson From: alarson@SRC.Honeywell.COM (Aaron Larson) Newsgroups: ext.commonloops Subject: 2-8-90 pcl doesn't grok :documentation Message-Id: <57715@srcsip.UUCP> Date: 9 Feb 90 18:25:30 GMT Sender: news@src.honeywell.COM Lines: 9 said PCL doesn't handle :DOCUMENTATION as a DEFCLASS slot or class option, other defined slot and class options work fine. Allegro CL 3.1.4 [Sun4] (12/1/89) (defclass foo1 () ((a :documentation "hi there")) ) Error: Invalid initialization argument :DOCUMENTATION for class STANDARD-DIRECT-SLOT-DEFINITION (defclass foo1 () () (:documentation "hi there")) Error: Invalid initialization argument :DOCUMENTATION for class STANDARD-CLASS Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA24603; Fri, 9 Feb 90 23:49:06 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 09 FEB 90 23:47:29 PST Return-Path: Redistributed: commonloops.pa Received: from LABS-N.BBN.COM ([128.89.0.100]) by Xerox.COM ; 09 FEB 90 14:27:33 PST To: commonloops.pa@Xerox.COM Subject: PCL enhancement for Genera (7.x: x>2) Date: Fri, 09 Feb 90 17:25:06 -0500 From: Mike Thome Message-Id: <900209-234729-2088@Xerox> Below is a patch for PCL which teaches Genera 7.2 (&7.4) to understand pcl-method function specs of the form `(METHOD ,gf-name ,@method-qualifiers (,@method-specializers)) and PCL (2/8/90 Beta 2) to use 'em. These mods may be used in a base compile to get rid of all those ugly gensymed top-level-form symbols in warnings, and (as a side effect) makes M-. and who-calls work nicely. Enjoy! -mik (mthome@bbn.com, mthome@thalamus.bu.edu) . . . . . . . . . . . . . . . . . . . . . . . . ;;; -*- Package: PCL -*- ;;; This set of mods alters the behavior of defmethod so that it works ;;; correctly with the symbolics debugging & loading systems. ;;; ;;; Based on Beta2 2/8/90 PCL ;;; ;;; Notes: ;;; 1. we no longer need to rely on the TOP-LEVEL hack. ;;; 2. defmethods expand into DEFUNs (which get thier bodies compiled... even on ;;; smbx!) and we rely on the fspec mechanism to do the load-defmethod. ;;; 3. This is a (working) second cut, so the code is pretty ugly, and only ;;; minimally modifies original code (leaving various warnings, etc). ;;; 4. See code for more details ;;; ;;; -mike thome (mthome@bbn.com): 6 Feb 90 ;;; ;; New (& complete) fspec handler. ;; 1. uses a single #'equal htable where stored elements are (fn . plist) ;; (maybe we should store the method object instead) ;; 2. also implements the fspec-plist operators here. ;; 3. fdefine not only stores the method, but actually does the loading here! ;; ;;; ;;; genera-low.lisp (replaces old method-function-spec-handler) ;;; ;; New (& complete) fspec handler. ;; 1. uses a single #'equal htable where stored elements are (fn . plist) ;; (maybe we should store the method object instead) ;; 2. also implements the fspec-plist operators here. ;; 3. fdefine not only stores the method, but actually does the loading here! ;; (defvar *method-htable* (make-hash-table :test #'equal :size 500)) (si:define-function-spec-handler method (op spec &optional arg1 arg2) (if (eq op 'sys:validate-function-spec) (and (let ((gspec (cadr spec))) (or (symbolp gspec) (and (listp gspec) (eq (car gspec) 'setf) (symbolp (cadr gspec)) (null (cddr gspec))))) (let ((tail (cddr spec))) (loop (cond ((null tail) (return nil)) ((listp (car tail)) (return t)) ((atom (pop tail))) (t (return nil)))))) (let ((table *method-htable*) (key spec)) (case op ((si:fdefinedp si:fdefinition) (car (gethash key table nil))) (si:fundefine (remhash key table)) (si:fdefine (let ((old (gethash key table nil)) (gspec (cadr spec)) (quals nil) (specs nil) (ptr (cddr spec))) (setq specs (loop (cond ((null ptr) (return nil)) ((listp (car ptr)) (return (car ptr))) (t (push (pop ptr) quals))))) (pcl-fdefine-helper gspec (nreverse quals) specs arg1) (setf (gethash key table) (cons arg1 (cdr old))))) (si:get (let ((old (gethash key table nil))) (getf (cdr old) arg1))) (si:plist (let ((old (gethash key table nil))) (cdr old))) (si:putprop (let ((old (gethash key table nil))) (unless old (setf old (cons nil nil)) (setf (gethash key table) old)) (setf (getf (cdr old) arg2) arg1))) (si:remprop (let ((old (gethash key table nil))) (when old (remf (cdr old) arg1)))) (otherwise (si:function-spec-default-handler op spec arg1 arg2)))))) ;; this guy is just a stub to make the fspec handler simpler (and so I could trace it ;; easier). (defun pcl-fdefine-helper (gspec qualifiers specializers fn) (let* ((dlist (scl:debugging-info fn)) (class (cadr (assoc 'pcl-method-class dlist))) (doc (cadr (assoc 'pcl-documentation dlist))) (plist (cadr (assoc 'pcl-plist dlist)))) (load-defmethod (or class 'standard-method) gspec qualifiers specializers (arglist fn) doc (getf plist :isl-cache-symbol) plist fn))) ;; define a few special declarations to get pushed onto the function's debug-info ;; list... note that we do not need to do a (proclaim (declarations ...)) here. ;; (eval-when (compile load eval) (setf (get 'pcl-plist 'si:debug-info) t) (setf (get 'pcl-documentation 'si:debug-info) t) (setf (get 'pcl-method-class 'si:debug-info) t) (setf (get 'pcl-lambda-list 'si:debug-info) t) ) ;;; ;;; boot.lisp (expand-defmethod for genera *only*, and addition to ;;; expand-defmethod-internal) ;;; #+Genera (defun expand-defmethod (proto-method name qualifiers lambda-list body env) (when (listp name) (do-standard-defsetf-1 (cadr name))) (multiple-value-bind (fn-form specializers doc plist) (expand-defmethod-internal name qualifiers lambda-list body env) (declare (ignore doc plist)) (let ((fn-args (cadadr fn-form)) (fn-body (cddadr fn-form))) `(defun (method ,name ,@qualifiers ,specializers) ,fn-args (declare ,@(when proto-method `((pcl-method-class ,(class-name (class-of proto-method))))) (pcl-lambda-list ,(specialized-lambda-list-lambda-list lambda-list))) ,@fn-body)))) ;; this is also modified (mt) (defun expand-defmethod-internal (generic-function-name qualifiers specialized-lambda-list body env) (declare (values fn-form specializers doc) (ignore qualifiers)) (when (listp generic-function-name) (do-standard-defsetf-1 (cadr generic-function-name))) (multiple-value-bind (documentation declarations real-body) (extract-declarations body) (multiple-value-bind (parameters lambda-list specializers) (parse-specialized-lambda-list specialized-lambda-list) (let* ((required-parameters (mapcar #'(lambda (r s) (declare (ignore s)) r) parameters specializers)) (parameters-to-reference (make-parameter-references specialized-lambda-list required-parameters declarations generic-function-name specializers)) (class-declarations `(declare ,@(remove nil (mapcar #'(lambda (a s) (and (symbolp s) (neq s 't) `(class ,a ,s))) parameters specializers)))) (method-lambda ;; Remove the documentation string and insert the ;; appropriate class declarations. The documentation ;; string is removed to make it easy for us to insert ;; new declarations later, they will just go after the ;; cadr of the method lambda. The class declarations ;; are inserted to communicate the class of the method's ;; arguments to the code walk. (let () `(lambda ,lambda-list ,class-declarations ,@declarations (progn ,@parameters-to-reference) (block ,(if (listp generic-function-name) (cadr generic-function-name) generic-function-name) ,@real-body)))) (call-next-method-p nil) ;flag indicating that call-next-method ;should be in the method definition (next-method-p-p nil) ;flag indicating that next-method-p ;should be in the method definition (save-original-args nil) ;flag indicating whether or not the ;original arguments to the method ;must be preserved. This happens ;for two reasons: ; - the method takes &mumble args, ; so one of the lexical functions ; might be used in a default value ; form ; - call-next-method is used without ; arguments at least once in the ; body of the method (original-args ()) (applyp nil) ;flag indicating whether or not the ;method takes &mumble arguments. If ;it does, it means call-next-method ;without arguments must be APPLY'd ;to original-args. If this gets set ;true, save-original-args is set so ;as well (aux-bindings ()) ;Suffice to say that &aux is one of ;damndest things to have put in a ;language. (slots (mapcar #'list required-parameters)) (plist ()) (walked-lambda nil)) (flet ((walk-function (form context env) (cond ((not (eq context ':eval)) form) ((not (listp form)) form) ((eq (car form) 'call-next-method) (setq call-next-method-p 't) (setq save-original-args (not (cdr form))) form) ((eq (car form) 'next-method-p) (setq next-method-p-p 't) form) ((and (eq (car form) 'function) (cond ((eq (cadr form) 'call-next-method) (setq call-next-method-p 't) (setq save-original-args 't) form) ((eq (cadr form) 'next-method-p) (setq next-method-p-p 't) form) (t nil)))) ((and (or (eq (car form) 'slot-value) (eq (car form) 'set-slot-value)) (symbolp (cadr form)) (constantp (caddr form))) (let ((parameter (can-optimize-access (cadr form) required-parameters env))) (if (null parameter) form (ecase (car form) (slot-value (optimize-slot-value slots parameter form)) (set-slot-value (optimize-set-slot-value slots parameter form)))))) (t form)))) (setq walked-lambda (walk-form method-lambda env #'walk-function)) ;; ;; Add &allow-other-keys to the lambda list as an interim ;; way of implementing lambda list congruence rules. ;; (when (and (memq '&key lambda-list) (not (memq '&allow-other-keys lambda-list))) (let* ((rll (reverse lambda-list)) (aux (memq '&aux rll))) (setq lambda-list (if aux (progn (setf (cdr aux) (cons '&allow-other-keys (cdr aux))) (nreverse rll)) (nconc (nreverse rll) (list '&allow-other-keys)))))) ;; Scan the lambda list to determine whether this method ;; takes &mumble arguments. If it does, we set applyp and ;; save-original-args true. ;; ;; This is also the place where we construct the original ;; arguments lambda list if there has to be one. (dolist (p lambda-list) (if (memq p lambda-list-keywords) (if (eq p '&aux) (progn (setq aux-bindings (cdr (memq '&aux lambda-list))) (return nil)) (progn (setq applyp t save-original-args t) (push '&rest original-args) (push (make-symbol "AMPERSAND-ARGS") original-args) (return nil))) (push (make-symbol (symbol-name p)) original-args))) (setq original-args (if save-original-args (nreverse original-args) ())) (multiple-value-bind (ignore walked-declarations walked-lambda-body) (extract-declarations (cddr walked-lambda)) (declare (ignore ignore)) (when (some #'cdr slots) (setq slots (slot-name-lists-from-slots slots)) (setq plist (list* :isl slots plist)) (setq walked-lambda-body (add-pv-binding walked-lambda-body plist required-parameters))) (when (or next-method-p-p call-next-method-p) (setq plist (list* :needs-next-methods-p 't plist))) ;;; changes are here... (mt) (let ((fn-body (if (or call-next-method-p next-method-p-p) (add-lexical-functions-to-method-lambda walked-declarations walked-lambda-body `(lambda ,lambda-list ,@walked-declarations ,.walked-lambda-body) original-args lambda-list save-original-args applyp aux-bindings call-next-method-p next-method-p-p) `(lambda ,lambda-list ,@walked-declarations ,.walked-lambda-body)))) #+Genera (setq fn-body `(lambda ,(cadr fn-body) (declare (pcl-documentation ,documentation) (pcl-plist ,plist)) ,@(cddr fn-body))) (values `(function ,fn-body) specializers documentation plist)))))))) ;;;;;;; ;;;;;;; Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA13139; Sat, 10 Feb 90 19:59:24 -0800 Received: from Chardonnay.ms by ArpaGateway.ms ; 10 FEB 90 19:44:33 PST Return-Path: Redistributed: CommonLoops.pa Received: from Princeton.EDU ([128.112.129.117]) by Xerox.COM ; 10 FEB 90 19:42:09 PST Received: from winnie.Princeton.EDU by Princeton.EDU (5.58+++/2.29/mailrelay) id AA06692; Sat, 10 Feb 90 22:40:25 EST Received: by winnie (4.12/1.98) id AA18639; Sat, 10 Feb 90 22:38:09 est Date: Sat, 10 Feb 90 22:38:09 est From: eliot@winnie.Princeton.EDU (eliot handelman) Message-Id: <9002110338.AA18639@winnie> To: CommonLoops.pa@Xerox.COM, harrisr@turing.cs.rpi.edu, wfs@cs.utexas.edu Subject: Re: A bug in KCL affecting the 2/6/90 PCL Date: Fri, 9 Feb 90 14:37:04 EST From: harrisr@turing.cs.rpi.edu (Richard Harris) Subject: A bug in KCL affecting the 2/6/90 PCL There is a bug in KCL and in every version of AKCL that prevents the new PCL ("2/6/90 A PCL for the 90's (beta)") from compiling. Below are two test cases for this bug which return 1 when uncompiled, and return NIL when compiled; and also the fix for this bug. I don't know about that -- vanilla KCl returned the correct values both interpreted and compiled. (I haven't tried compiling the new PCL yet). --Eliot Handelman Princeton U., Music Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA17214; Sat, 10 Feb 90 23:16:44 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 10 FEB 90 23:13:57 PST Return-Path: Redistributed: CommonLoops.pa Received: from emx.utexas.edu ([128.83.1.33]) by Xerox.COM ; 10 FEB 90 23:12:04 PST Received: from nicolas.ma.utexas.edu by emx.utexas.edu (5.61/1.6) id AA06567; Sun, 11 Feb 90 01:10:00 -0600 Date: Sun, 11 Feb 90 01:10:53 -0600 From: wfs@nicolas.ma.utexas.edu (Bill Schelter) Posted-Date: Sun, 11 Feb 90 01:10:53 -0600 Message-Id: <9002110710.AA00766@nicolas.ma.utexas.edu> Received: by nicolas.ma.utexas.edu (5.61/5.51) id AA00766; Sun, 11 Feb 90 01:10:53 -0600 To: eliot@winnie.Princeton.EDU Cc: CommonLoops.pa@Xerox.COM, harrisr@turing.cs.rpi.edu In-Reply-To: eliot handelman's message of Sat, 10 Feb 90 22:38:09 est <9002110338.AA18639@winnie> Subject: Re: A bug in KCL affecting the 2/6/90 PCL Reply-To: wfs@nicolas.ma.utexas.edu I don't know about that -- vanilla KCl returned the correct values both interpreted and compiled. (I haven't tried compiling the new PCL yet). The point is that KCL and AKCL handle constants differently, and so the bug would not show up with (let ((v 1)) but would show up for (let ((v (list 1))) in the original KCL. I believe Harris has already distributed the correct soln to the bug, and this will certainly be in the next release of AKCL. You should have also realized that this bug was clearly in your plain vanilla version of KCL, even though as luck would have it, it did not show up in the exact example posted. Bill Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA28655; Sun, 11 Feb 90 16:56:05 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 11 FEB 90 16:55:40 PST Return-Path: <@RELAY.CS.NET:BUSDIECKER@cgi.com> Redistributed: commonloops.pa Received: from RELAY.CS.NET ([192.31.103.4]) by Xerox.COM ; 11 FEB 90 16:47:23 PST Received: from relay2.cs.net by RELAY.CS.NET id aa20283; 11 Feb 90 18:47 EST Received: from cgi.com by RELAY.CS.NET id ar20558; 11 Feb 90 19:34 EST Date: Sat, 10 Feb 90 13:40 EDT From: Rick Busdiecker Subject: Problems building 90's PCL in VaxLisp To: commonloops.pa@Xerox.COM X-Vms-To: IN%"commonloops.pa@xerox.com" Message-Id: <900211-165540-4462@Xerox> I tried to build PCL in a beta release of DEC's VAXLISP and ran into problems. I'm including a log of the build here in the hopes that someone can help me past these problems and/or create a patch file for PCL. A quick summary of the problem is that when loading the binary of std-class, a call to MAKE-INSTANCE is made at a time when it doesn't have a definition. The compilation of std-class included 62 errors. Rick Busdiecker ---------------- Log of PCL build attempt: 2683 lines long ---------------- VAX LISP[TM] T3.1 ) Digital Equipment Corporation. 1989, 1990. All Rights Reserved. Lisp> (load "defsys") ; Loading contents of file DISK$CRL:[RICK.PCL]DEFSYS.LSP;1 ; MODULE ; MAKE-MODULES ; MAKE-TRANSFORMATIONS ; MAKE-COMPILE-TRANSFORMATION ; MAKE-LOAD-TRANSFORMATION ; MAKE-LOAD-WITHOUT-DEPENDENCIES-TRANSFORMATION ; COMPILE-FILTER ; OPERATE-ON-SYSTEM ; MAKE-SOURCE-PATHNAME ; MAKE-BINARY-PATHNAME ; MAKE-PATHNAME-INTERNAL ; LOAD-TRUENAME ; COMPILE-PCL ; LOAD-PCL ; BUG-REPORT-INFO ; RENAME-PCL ; Finished loading DISK$CRL:[RICK.PCL]DEFSYS.LSP;1 T Lisp> (load (compile-file "defsys")) Starting compilation of file DISK$CRL:[RICK.PCL]DEFSYS.LSP;1 GET-SYSTEM compiled. SET-SYSTEM compiled. DEFSYSTEM compiled. MAKE-MODULE compiled. MODULE-NAME compiled. MODULE-LOAD-ENV compiled. MODULE-COMP-ENV compiled. MODULE-RECOMP-REASONS compiled. |SETF MODULE-NAME| compiled. |SETF MODULE-LOAD-ENV| compiled. |SETF MODULE-COMP-ENV| compiled. |SETF MODULE-RECOMP-REASONS| compiled. MODULE-P compiled. MAKE-MODULES compiled. MAKE-TRANSFORMATIONS compiled. MAKE-COMPILE-TRANSFORMATION compiled. ; Starting full GC ... ; ... Full GC finished MAKE-LOAD-TRANSFORMATION compiled. MAKE-LOAD-WITHOUT-DEPENDENCIES-TRANSFORMATION compiled. COMPILE-FILTER compiled. OPERATE-ON-SYSTEM compiled. MAKE-SOURCE-PATHNAME compiled. MAKE-BINARY-PATHNAME compiled. MAKE-PATHNAME-INTERNAL compiled. LOAD-TRUENAME compiled. COMPILE-PCL compiled. LOAD-PCL compiled. BUG-REPORT-INFO compiled. RENAME-PCL compiled. Finished compilation of file DISK$CRL:[RICK.PCL]DEFSYS.LSP;1 0 Errors, 0 Warnings ; Loading contents of file DISK$CRL:[RICK.PCL]DEFSYS.FAS;1 ; GET-SYSTEM ; SET-SYSTEM ; DEFSYSTEM ; MAKE-MODULE ; MODULE-NAME ; MODULE-LOAD-ENV ; MODULE-COMP-ENV ; MODULE-RECOMP-REASONS ; |SETF MODULE-NAME| ; |SETF MODULE-LOAD-ENV| ; |SETF MODULE-COMP-ENV| ; |SETF MODULE-RECOMP-REASONS| ; MODULE-P ; MAKE-MODULES ; MAKE-TRANSFORMATIONS ; MAKE-COMPILE-TRANSFORMATION ; MAKE-LOAD-TRANSFORMATION ; MAKE-LOAD-WITHOUT-DEPENDENCIES-TRANSFORMATION ; COMPILE-FILTER ; OPERATE-ON-SYSTEM ; MAKE-SOURCE-PATHNAME ; MAKE-BINARY-PATHNAME ; MAKE-PATHNAME-INTERNAL ; LOAD-TRUENAME ; COMPILE-PCL ; LOAD-PCL ; BUG-REPORT-INFO ; RENAME-PCL ; Finished loading DISK$CRL:[RICK.PCL]DEFSYS.FAS;1 T Lisp> pcl::*pcl-directory* #S(PATHNAME :HOST "CGIVB" :DEVICE "DISK$CRL" :DIRECTORY "RICK.PCL" :NAME "DEFSYS " :TYPE "LSP" :VERSION 1) Lisp> (namestring *) "DISK$CRL:[RICK.PCL]DEFSYS.LSP;1" Lisp> (pcl::compile-pcl) Compiling PKG... Starting compilation of file DISK$CRL:[RICK.PCL]PKG.LSP;1 Finished compilation of file DISK$CRL:[RICK.PCL]PKG.LSP;1 0 Errors, 0 Warnings Loading binary of PKG... Compiling WALK... Starting compilation of file DISK$CRL:[RICK.PCL]WALK.LSP;1 UNBOUND-LEXICAL-FUNCTION compiled. WITH-AUGMENTED-ENVIRONMENT compiled. WITH-AUGMENTED-ENVIRONMENT-INTERNAL compiled. LOOKUP-MACRO-FUNCTION compiled. ENVIRONMENT-MACRO compiled. ; Starting full GC ... ; ... Full GC finished WITH-NEW-DEFINITION-IN-ENVIRONMENT compiled. CONVERT-MACRO-TO-LAMBDA compiled. WALKER-ENVIRONMENT-BIND compiled. ENV-LOCK compiled. WALKER-ENVIRONMENT-BIND-1 compiled. ENV-WALK-FUNCTION compiled. ENV-WALK-FORM compiled. ENV-DECLARATIONS compiled. ENV-LEXICAL-VARIABLES compiled. NOTE-DECLARATION compiled. NOTE-LEXICAL-BINDING compiled. VARIABLE-LEXICAL-P compiled. VARIABLE-DECLARATION compiled. VARIABLE-SPECIAL-P compiled. VARIABLE-GLOBALLY-SPECIAL-P compiled. GET-WALKER-TEMPLATE-INTERNAL compiled. DEFINE-WALKER-TEMPLATE compiled. GET-WALKER-TEMPLATE compiled. GET-IMPLEMENTATION-DEPENDENT-WALKER-TEMPLATE compiled. WALK-FORM compiled. NESTED-WALK-FORM compiled. WALK-FORM-INTERNAL compiled. WALK-TEMPLATE compiled. ; Starting full GC ... ; ... Full GC finished WALK-TEMPLATE-HANDLE-REPEAT compiled. WALK-TEMPLATE-HANDLE-REPEAT-1 compiled. WALK-REPEAT-EVAL compiled. RECONS compiled. RELIST compiled. RELIST* compiled. RELIST-INTERNAL compiled. WALK-DECLARATIONS compiled. WALK-UNEXPECTED-DECLARE compiled. WALK-ARGLIST compiled. WALK-LET compiled. WALK-LET* compiled. WALK-PROG compiled. WALK-PROG* compiled. WALK-DO compiled. WALK-DO* compiled. WALK-LET/LET* compiled. WALK-PROG/PROG* compiled. WALK-DO/DO* compiled. WALK-LET-IF compiled. WALK-MULTIPLE-VALUE-BIND compiled. WALK-BINDINGS-1 compiled. WALK-BINDINGS-2 compiled. WALK-LAMBDA compiled. WALK-NAMED-LAMBDA compiled. WALK-TAGBODY compiled. WALK-TAGBODY-1 compiled. WALK-COMPILER-LET compiled. WALK-MACROLET compiled. WALK-FLET compiled. ; Starting full GC ... ; ... Full GC finished WALK-LABELS compiled. WALK-IF compiled. Finished compilation of file DISK$CRL:[RICK.PCL]WALK.LSP;1 0 Errors, 0 Warnings Loading binary of WALK... Compiling ITERATE... Starting compilation of file DISK$CRL:[RICK.PCL]ITERATE.LSP;1 ITERATE compiled. SIMPLE-EXPAND-ITERATE-FORM compiled. ; Starting full GC ... ; ... Full GC finished OPTIMIZE-ITERATE-FORM compiled. EXPAND-INTO-LET compiled. VARIABLES-FROM-LET compiled. ITERATE-TRANSFORM-BODY compiled. PARSE-DECLARATIONS compiled. EXTRACT-SPECIAL-BINDINGS compiled. FUNCTION-LAMBDA-P compiled. RENAME-LET-BINDINGS compiled. RENAME-VARIABLES compiled. MV-SETQ compiled. VARIABLE-SAME-P compiled. MAYBE-WARN compiled. ; Starting full GC ... ; ... Full GC finished INTERVAL compiled. LIST-ELEMENTS compiled. LIST-TAILS compiled. ELEMENTS compiled. PLIST-ELEMENTS compiled. SEQUENCE-ACCESSOR compiled. EACHTIME compiled. WHILE compiled. UNTIL compiled. GATHERING compiled. WITH-GATHERING compiled. SIMPLE-EXPAND-GATHERING-FORM compiled. ; Starting full GC ... ; ... Full GC finished OPTIMIZE-GATHERING-FORM compiled. RENAME-AND-CAPTURE-VARIABLES compiled. WALK-GATHERING-BODY compiled. COLLECTING compiled. JOINING compiled. MAXIMIZING compiled. MINIMIZING compiled. SUMMING compiled. Finished compilation of file DISK$CRL:[RICK.PCL]ITERATE.LSP;1 0 Errors, 0 Warnings Loading binary of ITERATE... Compiling MACROS... Starting compilation of file DISK$CRL:[RICK.PCL]MACROS.LSP;1 MEMQ compiled. ASSQ compiled. RASSQ compiled. DELQ compiled. POSQ compiled. NEQ compiled. MAKE-CAXR compiled. MAKE-CDXR compiled. TRUE compiled. FALSE compiled. ZERO compiled. MAKE-PLIST compiled. REMTAIL compiled. ONCE-ONLY compiled. EXTRACT-DECLARATIONS compiled. ; Starting full GC ... ; ... Full GC finished MAKE-KEYWORD compiled. STRING-APPEND compiled. SYMBOL-APPEND compiled. CHECK-MEMBER compiled. ALIST-ENTRY compiled. DESTRUCTURING-BIND compiled. DESTRUCTURE compiled. DESTRUCTURE-INTERNAL compiled. COLLECTING-ONCE compiled. DOPLIST compiled. IF* compiled. PRINTING-RANDOM-THING compiled. PRINTING-RANDOM-THING-INTERNAL compiled. ; Starting full GC ... ; ... Full GC finished CAPITALIZE-WORDS compiled. LEGAL-CLASS-NAME-P compiled. FIND-CLASS compiled. |SETF PCL FIND-CLASS| compiled. FIND-WRAPPER compiled. REDUCE-CONSTANT compiled. GATHERING1 compiled. VECTORIZING compiled. *LIST-ELEMENTS compiled. *LIST-TAILS compiled. Finished compilation of file DISK$CRL:[RICK.PCL]MACROS.LSP;1 0 Errors, 0 Warnings The following are assumed to be functions, but were not declared or defined: CLASS-WRAPPER Loading binary of MACROS... Compiling LOW... Starting compilation of file DISK$CRL:[RICK.PCL]LOW.LSP;1 %LOGAND compiled. %+ compiled. %1+ compiled. %1- compiled. %ZEROP compiled. %= compiled. %SVREF compiled. REDUCE-VARIADIC-TO-BINARY compiled. WITHOUT-INTERRUPTS compiled. MAKE-MEMORY-BLOCK compiled. MEMORY-BLOCK-REF compiled. CLEAR-MEMORY-BLOCK compiled. %%ALLOCATE-INSTANCE--CLASS compiled. %STD-INSTANCE-WRAPPER compiled. ; Starting full GC ... ; ... Full GC finished %STD-INSTANCE-SLOTS compiled. |SETF %STD-INSTANCE-WRAPPER| compiled. |SETF %STD-INSTANCE-SLOTS| compiled. STD-INSTANCE-P compiled. STD-INSTANCE-WRAPPER compiled. STD-INSTANCE-SLOTS compiled. PRINT-STD-INSTANCE compiled. %ALLOCATE-INSTANCE--CLASS compiled. %ALLOCATE-INSTANCE--CLASS-1 compiled. %ALLOCATE-STATIC-SLOT-STORAGE--CLASS compiled. STD-INSTANCE-CLASS compiled. FUNCTION-PRETTY-ARGLIST compiled. SET-FUNCTION-PRETTY-ARGLIST compiled. SET-FUNCTION-NAME compiled. SET-FUNCTION-NAME-1 compiled. INTERN-FUNCTION-NAME compiled. IN-THE-COMPILER-P compiled. COMPILE-LAMBDA compiled. COMPILE-LAMBDA-UNCOMPILED compiled. COMPILE-LAMBDA-DEFERRED compiled. PRECOMPILE-RANDOM-CODE-SEGMENTS compiled. RECORD-DEFINITION compiled. DOCTOR-DFUN-FOR-THE-DEBUGGER compiled. Finished compilation of file DISK$CRL:[RICK.PCL]LOW.LSP;1 0 Errors, 0 Warnings Loading binary of LOW... Compiling VAXL-LOW... Starting compilation of file DISK$CRL:[RICK.PCL]VAXL-LOW.LSP;1 WITHOUT-INTERRUPTS compiled. LOAD-TIME-EVAL compiled. OBJECT-CACHE-NO compiled. PRINTING-RANDOM-THING-INTERNAL compiled. FUNCTION-ARGLIST compiled. Warning in SET-FUNCTION-NAME-1 IGNORE bound but value not used. SET-FUNCTION-NAME-1 compiled. Finished compilation of file DISK$CRL:[RICK.PCL]VAXL-LOW.LSP;1 0 Errors, 1 Warnings The following are assumed to be functions, but were not declared or defined: SYSTEM::FUNCTION-LAMBDA-VARS SYSTEM::SLISP-COMPILED-FUNCTION-P Loading binary of VAXL-LOW... Compiling FIN... Starting compilation of file DISK$CRL:[RICK.PCL]FIN.LSP;1 FUNCALLABLE-INSTANCE-DATA-POSITION compiled. CALLED-FIN-WITHOUT-FUNCTION compiled. ALLOCATE-FUNCALLABLE-INSTANCE-1 compiled. FUNCALLABLE-INSTANCE-P compiled. ; Starting full GC ... ; ... Full GC finished SET-FUNCALLABLE-INSTANCE-FUNCTION compiled. MAKE-TRAMPOLINE compiled. FUNCALLABLE-INSTANCE-DATA-1 compiled. FSC-INSTANCE-P compiled. FSC-INSTANCE-CLASS compiled. FSC-INSTANCE-WRAPPER compiled. FSC-INSTANCE-SLOTS compiled. ALLOCATE-FUNCALLABLE-INSTANCE compiled. Finished compilation of file DISK$CRL:[RICK.PCL]FIN.LSP;1 0 Errors, 0 Warnings Loading binary of FIN... Compiling DEFCLASS... Starting compilation of file DISK$CRL:[RICK.PCL]DEFCLASS.LSP;1 MAKE-TOP-LEVEL-FORM compiled. MAKE-PROGN compiled. DEFCLASS compiled. Warning in EXPAND-DEFCLASS *DEFCLASS-TIMES* not declared special or bound lexically, assuming special. Surrounding forms: *DEFCLASS-TIMES* (MAKE-TOP-LEVEL-FORM `(DEFCLASS ,NAME) *DEFCLASS-TIMES* `(LET (SYSTEM::UNQUOTE #) (LOAD-DEFCLASS ',NAME ',METACLASS ',SUPERS ...))) (LET ((CANONICAL-SLOTS #) (OTHER-INITARGS #)) (DO-STANDARD-DEFSETFS-FOR-DEFCLASS *ACCESSORS*) (MAKE-TOP-LEVEL-FORM `(DEFCLASS ,NAME) *DEFCLASS-TIMES* `(LET # #))) EXPAND-DEFCLASS compiled. MAKE-INITFUNCTION compiled. ; Starting full GC ... ; ... Full GC finished CANONICALIZE-SLOT-SPECIFICATION compiled. CANONICALIZE-DEFCLASS-OPTION compiled. MAKE-EARLY-CLASS-DEFINITION compiled. ECD-CLASS-NAME compiled. ECD-SOURCE compiled. ECD-METACLASS compiled. ECD-SUPERCLASS-NAMES compiled. ECD-CANONICAL-SLOTS compiled. ECD-OTHER-INITARGS compiled. LOAD-DEFCLASS compiled. Finished compilation of file DISK$CRL:[RICK.PCL]DEFCLASS.LSP;1 0 Errors, 1 Warnings The following are assumed to be functions, but were not declared or defined: DO-STANDARD-DEFSETFS-FOR-DEFCLASS The following are assumed to be special variables, but were referenced free without being declared or defined: *DEFCLASS-TIMES* Loading binary of DEFCLASS... Compiling DEFS... Starting compilation of file DISK$CRL:[RICK.PCL]DEFS.LSP;1 GET-SETF-FUNCTION-NAME compiled. DO-STANDARD-DEFSETF compiled. DO-STANDARD-DEFSETFS-FOR-DEFCLASS compiled. DO-STANDARD-DEFSETF-1 compiled. Warning in SETFBOUNDP SYMBOL bound but value not used. SETFBOUNDP compiled. PARSE-GSPEC compiled. UNENCAPSULATED-FDEFINITION compiled. FDEFINE-CAREFULLY compiled. GBOUNDP compiled. GMAKUNBOUND compiled. GDEFINITION compiled. |SETF PCL GDEFINITION| compiled. *TYPEP compiled. *SUBTYPEP compiled. Warning in DO-SATISFIES-DEFTYPE EXPAND-FN bound but value not used. Surrounding forms: (LET* ((SPECIFIER `#) (EXPAND-FN #'#)) (OR (EVAL `#))) (BLOCK DO-SATISFIES-DEFTYPE (LET* (# #) (OR #))) Warning in DO-SATISFIES-DEFTYPE EXPAND-FN bound but value not used. Surrounding forms: (LET* ((SPECIFIER `#) (EXPAND-FN #'#)) (OR (EVAL `#))) (BLOCK DO-SATISFIES-DEFTYPE (LET* (# #) (OR #))) DO-SATISFIES-DEFTYPE compiled. ; Starting full GC ... ; ... Full GC finished MAKE-TYPE-PREDICATE-NAME compiled. GET-BUILT-IN-CLASS-SYMBOL compiled. GET-BUILT-IN-WRAPPER-SYMBOL compiled. VARIABLE-CLASS compiled. DEFINE-GF-PREDICATE compiled. DOLIST-CAREFULLY compiled. LEGAL-STD-DOCUMENTATION-P compiled. LEGAL-STD-LAMBDA-LIST-P compiled. LEGAL-STD-METHOD-FUNCTION-P compiled. ; Starting full GC ... ; ... Full GC finished LEGAL-STD-QUALIFIERS-P compiled. LEGAL-STD-QUALIFIER-P compiled. LEGAL-STD-SLOT-NAME-P compiled. LEGAL-STD-SPECIALIZERS-P compiled. LEGAL-STD-SPECIALIZER-P compiled. Finished compilation of file DISK$CRL:[RICK.PCL]DEFS.LSP;1 0 Errors, 3 Warnings The following are assumed to be functions, but were not declared or defined: CLASSP CLASS-OF CLASS-PRECEDENCE-LIST EQL-SPECIALIZER-P Loading binary of DEFS... Compiling FNGEN... Starting compilation of file DISK$CRL:[RICK.PCL]FNGEN.LSP;1 GET-FUNCTION compiled. DEFAULT-TEST-CONVERTER compiled. DEFAULT-CODE-CONVERTER compiled. DEFAULT-CONSTANT-CONVERTER compiled. STORE-FGEN compiled. LOOKUP-FGEN compiled. MAKE-FGEN compiled. FGEN-TEST compiled. FGEN-GENSYMS compiled. FGEN-GENERATOR compiled. FGEN-GENERATOR-LAMBDA compiled. FGEN-SYSTEM compiled. GET-FUNCTION-GENERATOR compiled. GET-NEW-FUNCTION-GENERATOR compiled. GET-NEW-FUNCTION-GENERATOR-INTERNAL compiled. COMPUTE-TEST compiled. COMPUTE-CODE compiled. Error in COMPUTE-CONSTANTS Compile time fatal error while executing #:MAKE-&ENV-FOR-CLC-I2642 Error signalled by ERROR Error message would have been: "Invalid operation on lexical environment: #:G2183 #" Surrounding forms: (GATHERING1 (APPENDING) (WALK-FORM LAMBDA NIL #'(LAMBDA # # #))) (MACROLET ((APPENDING NIL `#)) (GATHERING1 (APPENDING) (WALK-FORM LAMBDA NIL #'#))) (BLOCK COMPUTE-CONSTANTS (MACROLET (#) (GATHERING1 # #))) PRECOMPILE-FUNCTION-GENERATORS compiled. LOAD-FUNCTION-GENERATOR compiled. Finished compilation of file DISK$CRL:[RICK.PCL]FNGEN.LSP;1 1 Errors, 0 Warnings Errors were detected in the following functions: COMPUTE-CONSTANTS The following are assumed to be functions, but were not declared or defined: COMPUTE-CONSTANTS Loading binary of FNGEN... Compiling LAP... Starting compilation of file DISK$CRL:[RICK.PCL]LAP.LSP;1 GENERATING-LAP compiled. GENERATING-LAP-IN-LISP compiled. Error in WITH-LAP-REGISTERS Compile time fatal error while executing #:ADD-TO-&ENV-FOR-CLC-I2659 Error signalled by ERROR Error message would have been: "Invalid operation on lexical environment: #:G2183 #S(TYPE :NAME T :CODE 332 :BO XED-SIZE 0 :UNBOXED-SIZE 0 :CATEGORY :PREDEFINED-TYPE :COMMON NIL :LAMBDA-LIST N IL :DEFTYPE-EXPANDER NIL :PRIMITIVE-TYPE NIL :PARENT-TYPE NIL :NAMED NIL :INITIA L-OFFSET 0 :CONC-NAME NIL :CONSTRUCTOR NIL :COPIER NIL :PRINT-FUNCTION NIL :SLOT -DESCRIPTORS #() :PREDICATE NIL :TYPEP-LIST NIL :TYPE-OF NIL :ELEMENT-TYPE NIL : ELEMENT-SIZE 0 :OBJECT-LIST NIL :STANDARD-P T :TYPEP-SYMBOL SYSTEM::TRUE :CANON- ARRAY-ELEMENT-TYPE T :CANON-TYPE :SELF :TYPEP-TRANSFORM NIL :SPARE29 NIL :SPARE3 0 NIL :SPARE31 NIL :SPARE32 NIL)" Surrounding forms: (LET* ((REGISTER-SPECIFICATIONS #) (BODY #)) NIL (PROGN 'NIL (FLET # `#))) (IF (< (LENGTH SYSTEM::) 2) (ERROR SYSTEM::*MACRO-ARG-COUNT-MESSAGE* 'WITH-LAP-REGISTERS (- # 1)) (LET* (# #) NIL (PROGN 'NIL #))) (BLOCK WITH-LAP-REGISTERS (IF (< # 2) (ERROR SYSTEM::*MACRO-ARG-COUNT-MESSAGE* 'WITH-LAP-REGISTERS #) (LET* # NIL #))) ALLOCATE-REGISTER compiled. ; Starting full GC ... ; ... Full GC finished DEALLOCATE-REGISTER compiled. FINALIZE-LAP-GENERATION compiled. FLATTEN-LAP compiled. FLATTENING-LAP compiled. OPCODE compiled. OPERAND compiled. DEFOPCODE compiled. DEFOPERAND compiled. LOAD-DEFOPCODE compiled. LOAD-DEFOPERAND compiled. DEFOPCODE-1 compiled. DEFOPERAND-1 compiled. CHECK-OPCODE-ARG compiled. CHECK-OPERAND-ARG compiled. |LAP Opcode BREAK| compiled. |LAP Opcode BEEP| compiled. ; Starting full GC ... ; ... Full GC finished |LAP Opcode PRINT| compiled. |LAP Opcode MOVE| compiled. |LAP Opcode EQ| compiled. |LAP Opcode NEQ| compiled. |LAP Opcode FIX=| compiled. |LAP Opcode IZEROP| compiled. |LAP Opcode STD-INSTANCE-P| compiled. |LAP Opcode FSC-INSTANCE-P| compiled. |LAP Opcode BUILT-IN-INSTANCE-P| compiled. |LAP Opcode STRUCTURE-INSTANCE-P| compiled. |LAP Opcode JMP| compiled. |LAP Opcode LABEL| compiled. |LAP Opcode GO| compiled. |LAP Opcode RETURN| compiled. |LAP Opcode EXIT-LAP-IN-LISP| compiled. |LAP Operand REG| compiled. |LAP Operand CVAR| compiled. |LAP Operand ARG| compiled. |LAP Operand CDR| compiled. |LAP Operand CONSTANT| compiled. |LAP Operand STD-WRAPPER| compiled. |LAP Operand FSC-WRAPPER| compiled. |LAP Operand BUILT-IN-WRAPPER| compiled. |LAP Operand STRUCTURE-WRAPPER| compiled. |LAP Operand OTHER-WRAPPER| compiled. |LAP Operand STD-SLOTS| compiled. |LAP Operand FSC-SLOTS| compiled. |LAP Operand CREF| compiled. |LAP Operand IREF| compiled. |LAP Operand ISET| compiled. |LAP Operand I1+| compiled. |LAP Operand I+| compiled. |LAP Operand I-| compiled. |LAP Operand ILOGAND| compiled. |LAP Operand ILOGXOR| compiled. |LAP Operand ISHIFT| compiled. |LAP Operand LISP| compiled. |LAP Operand LISP-VARIABLE| compiled. Finished compilation of file DISK$CRL:[RICK.PCL]LAP.LSP;1 1 Errors, 0 Warnings Errors were detected in the following functions: WITH-LAP-REGISTERS The following are assumed to be functions, but were not declared or defined: MAKE-LAP-CLOSURE-GENERATOR Loading binary of LAP... ; Starting full GC ... ; ... Full GC finished Compiling PLAP... Starting compilation of file DISK$CRL:[RICK.PCL]PLAP.LSP;1 LAP-CASE compiled. MAKE-LAP-CLOSURE-GENERATOR compiled. PRECOMPILE-LAP-CLOSURE-GENERATOR compiled. LAP-IN-LISP compiled. MAKE-LAP-CLOSURE-GENERATOR-LAMBDA compiled. MAKE-LAP-PROG compiled. MAKE-LAP-PROG-INTERNAL compiled. LAP-REG-INITIAL-VALUE-FORM compiled. ; Starting full GC ... ; ... Full GC finished LAP-OPCODE compiled. LAP-OPERAND compiled. LAP-OPERANDS compiled. LAP-REG compiled. |RUNTIME FUNCALL| compiled. |RUNTIME APPLY| compiled. |RUNTIME STD-WRAPPER| compiled. |RUNTIME FSC-WRAPPER| compiled. |RUNTIME BUILT-IN-WRAPPER| compiled. |RUNTIME STRUCTURE-WRAPPER| compiled. |RUNTIME STD-SLOTS| compiled. |RUNTIME FSC-SLOTS| compiled. |RUNTIME STD-INSTANCE-P| compiled. |RUNTIME FSC-INSTANCE-P| compiled. |RUNTIME IREF| compiled. |RUNTIME ISET| compiled. |RUNTIME SVREF| compiled. |RUNTIME I+| compiled. |RUNTIME I-| compiled. |RUNTIME I1+| compiled. |RUNTIME ILOGAND| compiled. |RUNTIME ILOGXOR| compiled. ; Starting full GC ... ; ... Full GC finished INDEX-VALUE->INDEX compiled. INDEX->INDEX-VALUE compiled. MAKE-INDEX-MASK compiled. Finished compilation of file DISK$CRL:[RICK.PCL]PLAP.LSP;1 0 Errors, 0 Warnings Loading binary of PLAP... Compiling CACHE... Starting compilation of file DISK$CRL:[RICK.PCL]CACHE.LSP;1 CACHE-REF compiled. EMIT-CACHE-REF compiled. CACHE-SIZE compiled. ALLOCATE-CACHE compiled. CACHE-LOCK-COUNT compiled. FLUSH-CACHE-INTERNAL compiled. MODIFY-CACHE compiled. GET-CACHE compiled. FREE-CACHE compiled. SHOW-FREE-CACHES compiled. GET-WRAPPER-CACHE-NUMBER compiled. WRAPPER-FIELD compiled. NEXT-WRAPPER-FIELD compiled. WRAPPER-REF compiled. EMIT-WRAPPER-REF compiled. ; Starting full GC ... ; ... Full GC finished WRAPPER-STATE compiled. WRAPPER-INSTANCE-SLOTS-LAYOUT compiled. WRAPPER-CLASS-SLOTS compiled. WRAPPER-CLASS compiled. MAKE-WRAPPER-INTERNAL compiled. Error in MAKE-WRAPPER Compile time fatal error while executing #:MAKE-LEXICAL-ENVIRONMENT-I4519 Error signalled by ERROR Error message would have been: "Invalid operation on lexical environment: #:G2183 #S(TYPE :NAME T :CODE 332 :BO XED-SIZE 0 :UNBOXED-SIZE 0 :CATEGORY :PREDEFINED-TYPE :COMMON NIL :LAMBDA-LIST N IL :DEFTYPE-EXPANDER NIL :PRIMITIVE-TYPE NIL :PARENT-TYPE NIL :NAMED NIL :INITIA L-OFFSET 0 :CONC-NAME NIL :CONSTRUCTOR NIL :COPIER NIL :PRINT-FUNCTION NIL :SLOT -DESCRIPTORS #() :PREDICATE NIL :TYPEP-LIST NIL :TYPE-OF NIL :ELEMENT-TYPE NIL : ELEMENT-SIZE 0 :OBJECT-LIST NIL :STANDARD-P T :TYPEP-SYMBOL SYSTEM::TRUE :CANON- ARRAY-ELEMENT-TYPE T :CANON-TYPE :SELF :TYPEP-TRANSFORM NIL :SPARE29 NIL :SPARE3 0 NIL :SPARE31 NIL :SPARE32 NIL)" Surrounding forms: (LET ((WRAPPER #)) (SETF (WRAPPER-CLASS WRAPPER) CLASS) WRAPPER) (BLOCK MAKE-WRAPPER (LET (#) (SETF # CLASS) WRAPPER)) INVALID-WRAPPER-P compiled. INVALIDATE-WRAPPER compiled. CHECK-WRAPPER-VALIDITY compiled. COMPUTE-LINE-SIZE compiled. COMPUTE-CACHE-PARAMETERS compiled. COMPUTE-PRIMARY-CACHE-LOCATION compiled. COMPUTE-PRIMARY-CACHE-LOCATION-FROM-LOCATION compiled. Error in EMIT-1-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION Function must be a symbol or lambda form: (MASK INDEX) Surrounding forms: ((MASK INDEX)) (WITH-LAP-REGISTERS ((MASK INDEX)) (LET (#) (FLATTEN-LAP # # # ...))) (BLOCK EMIT-1-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION (WITH-LAP-REGISTERS (#) (LET # #))) Warning in EMIT-1-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION MASK not declared special or bound lexically, assuming special. Surrounding forms: MASK (OPCODE :MOVE (OPERAND :CVAR 'MASK) MASK) (FLATTEN-LAP (OPCODE :MOVE (OPERAND :CVAR 'MASK) MASK) (OPCODE :MOVE (OPERAND :CVAR 'FIELD) FIELD) (OPCODE :MOVE (EMIT-WRAPPER-REF WRAPPER FIELD) WRAPPER-CACHE-NO) ...) EMIT-1-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION not compiled due to errors. ; Starting full GC ... ; ... Full GC finished Error in EMIT-N-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION Compile time fatal error while executing WALKER::GET-WALKER-TEMPLATE Error signalled by ERROR Error message would have been: "Can't get template for (WRAPPER-CACHE-NO INDEX)" Surrounding forms: (WITH-LAP-REGISTERS ((FIELD INDEX) (MASK INDEX)) (LET (#) (FLATTEN-LAP # # # ...))) (BLOCK EMIT-N-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION (WITH-LAP-REGISTERS (# #) (LET # #))) RAISE-METATYPE compiled. Error in EMIT-FETCH-WRAPPER Function must be a symbol or lambda form: (ARG T) Surrounding forms: ((ARG T)) (WITH-LAP-REGISTERS ((ARG T)) (ECASE METATYPE (STANDARD-INSTANCE #) (CLASS # #) ...)) (LET ((EXIT-EMIT-FETCH-WRAPPER #)) (WITH-LAP-REGISTERS (#) (ECASE METATYPE # # ...))) Warning in EMIT-FETCH-WRAPPER ARG not declared special or bound lexically, assuming special. Surrounding forms: ARG (OPCODE :MOVE (OPERAND :ARG ARGUMENT) ARG) (FLATTEN-LAP (OPCODE :MOVE (OPERAND :ARG ARGUMENT) ARG) (OPCODE :STD-INSTANCE-P ARG GET-STD-INST-WRAPPER) (OPCODE :FSC-INSTANCE-P ARG GET-FSC-INST-WRAPPER) ...) EMIT-FETCH-WRAPPER not compiled due to errors. DFUN-ARG-SYMBOL compiled. SLOT-VECTOR-SYMBOL compiled. MAKE-DFUN-LAMBDA-LIST compiled. MAKE-DLAP-LAMBDA-LIST compiled. MAKE-DFUN-CALL compiled. FILL-CACHE compiled. DEFAULT-LIMIT-FN compiled. ; Starting full GC ... ; ... Full GC finished WITH-LOCAL-CACHE-FUNCTIONS compiled. PICKUP-LOCAL-CACHE-FUNCTIONS compiled. FILL-CACHE-INTERNAL compiled. Error in FILL-CACHE-P Compile time fatal error while executing #:ADD-TO-&ENV-FOR-CLC-I2659 Error signalled by ERROR Error message would have been: "Invalid operation on lexical environment: #:G2183 #" Surrounding forms: (WITH-LOCAL-CACHE-FUNCTIONS (CACHE) (LET* (#) (MULTIPLE-VALUE-BIND # # #))) (BLOCK FILL-CACHE-P (WITH-LOCAL-CACHE-FUNCTIONS (CACHE) (LET* # #))) ; Starting full GC ... ; ... Full GC finished FILL-CACHE-FROM-CACHE-P compiled. Error in ENTRY-IN-CACHE-P Compile time fatal error while executing #:ADD-TO-&ENV-FOR-CLC-I2659 Error signalled by ERROR Error message would have been: "Invalid operation on lexical environment: #:G2183 #S(TYPE :NAME T :CODE 332 :BO XED-SIZE 0 :UNBOXED-SIZE 0 :CATEGORY :PREDEFINED-TYPE :COMMON NIL :LAMBDA-LIST N IL :DEFTYPE-EXPANDER NIL :PRIMITIVE-TYPE NIL :PARENT-TYPE NIL :NAMED NIL :INITIA L-OFFSET 0 :CONC-NAME NIL :CONSTRUCTOR NIL :COPIER NIL :PRINT-FUNCTION NIL :SLOT -DESCRIPTORS #() :PREDICATE NIL :TYPEP-LIST NIL :TYPE-OF NIL :ELEMENT-TYPE NIL : ELEMENT-SIZE 0 :OBJECT-LIST NIL :STANDARD-P T :TYPEP-SYMBOL SYSTEM::TRUE :CANON- ARRAY-ELEMENT-TYPE T :CANON-TYPE :SELF :TYPEP-TRANSFORM NIL :SPARE29 NIL :SPARE3 0 NIL :SPARE31 NIL :SPARE32 NIL)" Surrounding forms: (WITH-LOCAL-CACHE-FUNCTIONS (CACHE) (DOTIMES (I #) (UNLESS # #))) (BLOCK ENTRY-IN-CACHE-P (WITH-LOCAL-CACHE-FUNCTIONS (CACHE) (DOTIMES # #))) ; Starting full GC ... ; ... Full GC finished ADJUST-CACHE compiled. Error in EXPAND-CACHE Compile time fatal error while executing #:ADD-TO-&ENV-FOR-CLC-I2659 Error signalled by ERROR Error message would have been: "Invalid operation on lexical environment: #:G2183 #S(TYPE :NAME T :CODE 332 :BO XED-SIZE 0 :UNBOXED-SIZE 0 :CATEGORY :PREDEFINED-TYPE :COMMON NIL :LAMBDA-LIST N IL :DEFTYPE-EXPANDER NIL :PRIMITIVE-TYPE NIL :PARENT-TYPE NIL :NAMED NIL :INITIA L-OFFSET 0 :CONC-NAME NIL :CONSTRUCTOR NIL :COPIER NIL :PRINT-FUNCTION NIL :SLOT -DESCRIPTORS #() :PREDICATE NIL :TYPEP-LIST NIL :TYPE-OF NIL :ELEMENT-TYPE NIL : ELEMENT-SIZE 0 :OBJECT-LIST NIL :STANDARD-P T :TYPEP-SYMBOL SYSTEM::TRUE :CANON- ARRAY-ELEMENT-TYPE T :CANON-TYPE :SELF :TYPEP-TRANSFORM NIL :SPARE29 NIL :SPARE3 0 NIL :SPARE31 NIL :SPARE32 NIL)" Surrounding forms: (WITH-LOCAL-CACHE-FUNCTIONS (CACHE) (MULTIPLE-VALUE-BIND (IGNORE SIZE) (COMPUTE-CACHE-PARAMETERS # # #) (LET* # #))) (BLOCK EXPAND-CACHE (WITH-LOCAL-CACHE-FUNCTIONS (CACHE) (MULTIPLE-VALUE-BIND # # #))) ; Starting full GC ... ; ... Full GC finished ; Starting full GC ... ; ... Full GC finished ; Starting full GC ... ; ... Full GC finished FIND-FREE-CACHE-LINE compiled. Finished compilation of file DISK$CRL:[RICK.PCL]CACHE.LSP;1 7 Errors, 2 Warnings Errors were detected in the following functions: MAKE-WRAPPER EMIT-1-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION EMIT-N-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION EMIT-FETCH-WRAPPER FILL-CACHE-P ENTRY-IN-CACHE-P EXPAND-CACHE The following are assumed to be functions, but were not declared or defined: WRAPPER-OF FLUSH-CACHE-TRAP OBSOLETE-INSTANCE-TRAP WITH-LAP-REGISTERS EQL-SPECIALIZER-P CLASS-OF EQL-SPECIALIZER-OBJECT FILL-CACHE-P EXPAND-CACHE The following are assumed to be special variables, but were referenced free without being declared or defined: MASK ARG Loading binary of CACHE... Warning in SYSTEM::SET-SYMBOL-CONSTANT-VALUE: Redefining the constant WRAPPER-LAYOUT. Compiling DLAP... Starting compilation of file DISK$CRL:[RICK.PCL]DLAP.LSP;1 EMIT-ONE-CLASS-READER compiled. EMIT-ONE-CLASS-WRITER compiled. EMIT-TWO-CLASS-READER compiled. EMIT-TWO-CLASS-WRITER compiled. ; Starting full GC ... ; ... Full GC finished Error in EMIT-READER/WRITER Function must be a symbol or lambda form: (INST T) Surrounding forms: ((INST T) (WRAPPER VECTOR) (CACHE-NO INDEX)) (WITH-LAP-REGISTERS ((INST T) (WRAPPER VECTOR) (CACHE-NO INDEX)) (LET (# #) (PROG1 # #))) (PROGN (WITH-LAP-REGISTERS (# # #) (LET # #))) Warning in EMIT-READER/WRITER CACHE-NO not declared special or bound lexically, assuming special. Surrounding forms: CACHE-NO (LET ((INDEX CACHE-NO) (SLOTS #)) (PROG1 (FLATTEN-LAP # # # ...) (WHEN SLOTS #))) (WITH-LAP-REGISTERS ((INST T) (WRAPPER VECTOR) (CACHE-NO INDEX)) (LET (# #) (PROG1 # #))) Warning in EMIT-READER/WRITER INST not declared special or bound lexically, assuming special. Surrounding forms: INST (OPCODE :MOVE (OPERAND :ARG INSTANCE) INST) (FLATTEN-LAP (OPCODE :MOVE (OPERAND :ARG INSTANCE) INST) (OPCODE :STD-INSTANCE-P INST 'STD-INSTANCE) (OPCODE :FSC-INSTANCE-P INST 'FSC-INSTANCE) ...) Warning in EMIT-READER/WRITER WRAPPER not declared special or bound lexically, assuming special. Surrounding forms: WRAPPER (OPCODE :MOVE (OPERAND :FSC-WRAPPER INST) WRAPPER) (FLATTEN-LAP (OPCODE :MOVE (OPERAND :ARG INSTANCE) INST) (OPCODE :STD-INSTANCE-P INST 'STD-INSTANCE) (OPCODE :FSC-INSTANCE-P INST 'FSC-INSTANCE) ...) EMIT-READER/WRITER not compiled due to errors. Error in EMIT-ONE-INDEX-READERS Function must be a symbol or lambda form: (SLOTS VECTOR) Surrounding forms: ((SLOTS VECTOR)) (WITH-LAP-REGISTERS ((SLOTS VECTOR)) (EMIT-DLAP ARGLIST '(STANDARD-INSTANCE) 'TRAP ...)) (PROGN (WITH-LAP-REGISTERS (#) (EMIT-DLAP ARGLIST '# 'TRAP ...))) Error in EMIT-ONE-INDEX-READERS Function must be a symbol or lambda form: (INDEX INDEX) Surrounding forms: ((INDEX INDEX)) (WITH-LAP-REGISTERS ((INDEX INDEX)) (FLATTEN-LAP (OPCODE :MOVE # INDEX) (IF CLASS-SLOT-P # #))) (EMIT-DLAP ARGLIST '(STANDARD-INSTANCE) 'TRAP ...) Warning in EMIT-ONE-INDEX-READERS INDEX not declared special or bound lexically, assuming special. Surrounding forms: INDEX (OPCODE :MOVE (OPERAND :CVAR 'INDEX) INDEX) (FLATTEN-LAP (OPCODE :MOVE (OPERAND :CVAR 'INDEX) INDEX) (IF CLASS-SLOT-P (EMIT-GET-CLASS-SLOT INDEX 'TRAP SLOTS) (EMIT-GET-SLOT SLOTS INDEX 'TRAP))) Warning in EMIT-ONE-INDEX-READERS SLOTS not declared special or bound lexically, assuming special. Surrounding forms: SLOTS (EMIT-GET-CLASS-SLOT INDEX 'TRAP SLOTS) (IF CLASS-SLOT-P (EMIT-GET-CLASS-SLOT INDEX 'TRAP SLOTS) (EMIT-GET-SLOT SLOTS INDEX 'TRAP)) EMIT-ONE-INDEX-READERS not compiled due to errors. Error in EMIT-ONE-INDEX-WRITERS Function must be a symbol or lambda form: (SLOTS VECTOR) Surrounding forms: ((SLOTS VECTOR)) (WITH-LAP-REGISTERS ((SLOTS VECTOR)) (EMIT-DLAP ARGLIST '(T STANDARD-INSTANCE) 'TRAP ...)) (PROGN (WITH-LAP-REGISTERS (#) (EMIT-DLAP ARGLIST '# 'TRAP ...))) Error in EMIT-ONE-INDEX-WRITERS Function must be a symbol or lambda form: (INDEX INDEX) Surrounding forms: ((INDEX INDEX)) (WITH-LAP-REGISTERS ((INDEX INDEX)) (FLATTEN-LAP (OPCODE :MOVE # INDEX) (IF CLASS-SLOT-P # #))) (EMIT-DLAP ARGLIST '(T STANDARD-INSTANCE) 'TRAP ...) Warning in EMIT-ONE-INDEX-WRITERS INDEX not declared special or bound lexically, assuming special. Surrounding forms: INDEX (OPCODE :MOVE (OPERAND :CVAR 'INDEX) INDEX) (FLATTEN-LAP (OPCODE :MOVE (OPERAND :CVAR 'INDEX) INDEX) (IF CLASS-SLOT-P (EMIT-SET-CLASS-SLOT INDEX # SLOTS) (EMIT-SET-SLOT SLOTS INDEX #))) Warning in EMIT-ONE-INDEX-WRITERS SLOTS not declared special or bound lexically, assuming special. Surrounding forms: SLOTS (EMIT-SET-CLASS-SLOT INDEX (DFUN-ARG-SYMBOL 0) SLOTS) (IF CLASS-SLOT-P (EMIT-SET-CLASS-SLOT INDEX (DFUN-ARG-SYMBOL 0) SLOTS) (EMIT-SET-SLOT SLOTS INDEX (DFUN-ARG-SYMBOL 0))) EMIT-ONE-INDEX-WRITERS not compiled due to errors. Error in EMIT-N-N-READERS Function must be a symbol or lambda form: (SLOTS VECTOR) Surrounding forms: ((SLOTS VECTOR) (INDEX INDEX)) (WITH-LAP-REGISTERS ((SLOTS VECTOR) (INDEX INDEX)) (EMIT-DLAP ARGLIST '(STANDARD-INSTANCE) 'TRAP ...)) (PROGN (WITH-LAP-REGISTERS (# #) (EMIT-DLAP ARGLIST '# 'TRAP ...))) Warning in EMIT-N-N-READERS SLOTS not declared special or bound lexically, assuming special. Surrounding forms: SLOTS (EMIT-GET-SLOT SLOTS INDEX 'TRAP) (EMIT-DLAP ARGLIST '(STANDARD-INSTANCE) 'TRAP ...) Warning in EMIT-N-N-READERS INDEX not declared special or bound lexically, assuming special. Surrounding forms: INDEX (EMIT-GET-SLOT SLOTS INDEX 'TRAP) (EMIT-DLAP ARGLIST '(STANDARD-INSTANCE) 'TRAP ...) EMIT-N-N-READERS not compiled due to errors. Error in EMIT-N-N-WRITERS Function must be a symbol or lambda form: (SLOTS VECTOR) Surrounding forms: ((SLOTS VECTOR) (INDEX INDEX)) (WITH-LAP-REGISTERS ((SLOTS VECTOR) (INDEX INDEX)) (FLATTEN-LAP (EMIT-DLAP ARGLIST '# 'TRAP ...))) (PROGN (WITH-LAP-REGISTERS (# #) (FLATTEN-LAP #))) Warning in EMIT-N-N-WRITERS SLOTS not declared special or bound lexically, assuming special. Surrounding forms: SLOTS (EMIT-SET-SLOT SLOTS INDEX (DFUN-ARG-SYMBOL 0)) (EMIT-DLAP ARGLIST '(T STANDARD-INSTANCE) 'TRAP ...) Warning in EMIT-N-N-WRITERS INDEX not declared special or bound lexically, assuming special. Surrounding forms: INDEX (EMIT-SET-SLOT SLOTS INDEX (DFUN-ARG-SYMBOL 0)) (EMIT-DLAP ARGLIST '(T STANDARD-INSTANCE) 'TRAP ...) EMIT-N-N-WRITERS not compiled due to errors. Error in EMIT-CHECKING Function must be a symbol or lambda form: (FUNCTION T) Surrounding forms: (#'T) (WITH-LAP-REGISTERS (#'T) (FLATTEN-LAP (OPCODE :MOVE # FUNCTION) (OPCODE :JMP FUNCTION))) (EMIT-DLAP (REMOVE '&REST DLAP-LAMBDA-LIST) METATYPES 'TRAP ...) Warning in EMIT-CHECKING FUNCTION not declared special or bound lexically, assuming special. Surrounding forms: FUNCTION (OPCODE :MOVE (OPERAND :CVAR 'FUNCTION) FUNCTION) (FLATTEN-LAP (OPCODE :MOVE (OPERAND :CVAR 'FUNCTION) FUNCTION) (OPCODE :JMP FUNCTION)) Error in EMIT-CHECKING Function must be a symbol or lambda form: (MISS-FUNCTION T) Surrounding forms: ((MISS-FUNCTION T)) (WITH-LAP-REGISTERS ((MISS-FUNCTION T)) (FLATTEN-LAP (OPCODE :LABEL 'TRAP) (OPCODE :MOVE # MISS-FUNCTION) (OPCODE :JMP MISS-FUNCTION))) (EMIT-DLAP (REMOVE '&REST DLAP-LAMBDA-LIST) METATYPES 'TRAP ...) Warning in EMIT-CHECKING MISS-FUNCTION not declared special or bound lexically, assuming special. Surrounding forms: MISS-FUNCTION (OPCODE :MOVE (OPERAND :CVAR 'MISS-FN) MISS-FUNCTION) (FLATTEN-LAP (OPCODE :LABEL 'TRAP) (OPCODE :MOVE (OPERAND :CVAR 'MISS-FN) MISS-FUNCTION) (OPCODE :JMP MISS-FUNCTION)) EMIT-CHECKING not compiled due to errors. Error in EMIT-CACHING Function must be a symbol or lambda form: (FUNCTION T) Surrounding forms: (#'T) (WITH-LAP-REGISTERS (#'T) (EMIT-DLAP (REMOVE '&REST DLAP-LAMBDA-LIST) METATYPES 'TRAP ...)) (PROGN (WITH-LAP-REGISTERS (#'T) (EMIT-DLAP # METATYPES 'TRAP ...))) Warning in EMIT-CACHING FUNCTION not declared special or bound lexically, assuming special. Surrounding forms: FUNCTION (OPCODE :JMP FUNCTION) (FLATTEN-LAP (OPCODE :JMP FUNCTION)) Error in EMIT-CACHING Function must be a symbol or lambda form: (MISS-FUNCTION T) Surrounding forms: ((MISS-FUNCTION T)) (WITH-LAP-REGISTERS ((MISS-FUNCTION T)) (FLATTEN-LAP (OPCODE :LABEL 'TRAP) (OPCODE :MOVE # MISS-FUNCTION) (OPCODE :JMP MISS-FUNCTION))) (EMIT-DLAP (REMOVE '&REST DLAP-LAMBDA-LIST) METATYPES 'TRAP ...) Warning in EMIT-CACHING MISS-FUNCTION not declared special or bound lexically, assuming special. Surrounding forms: MISS-FUNCTION (OPCODE :MOVE (OPERAND :CVAR 'MISS-FN) MISS-FUNCTION) (FLATTEN-LAP (OPCODE :LABEL 'TRAP) (OPCODE :MOVE (OPERAND :CVAR 'MISS-FN) MISS-FUNCTION) (OPCODE :JMP MISS-FUNCTION)) EMIT-CACHING not compiled due to errors. Error in EMIT-CHECK-1-CLASS-WRAPPER Function must be a symbol or lambda form: (CWRAPPER VECTOR) Surrounding forms: ((CWRAPPER VECTOR)) (WITH-LAP-REGISTERS ((CWRAPPER VECTOR)) (FLATTEN-LAP (OPCODE :MOVE # CWRAPPER) (OPCODE :NEQ WRAPPER CWRAPPER ...))) (BLOCK EMIT-CHECK-1-CLASS-WRAPPER (WITH-LAP-REGISTERS (#) (FLATTEN-LAP # #))) Warning in EMIT-CHECK-1-CLASS-WRAPPER CWRAPPER not declared special or bound lexically, assuming special. Surrounding forms: CWRAPPER (OPCODE :MOVE (OPERAND :CVAR CWRAPPER-0) CWRAPPER) (FLATTEN-LAP (OPCODE :MOVE (OPERAND :CVAR CWRAPPER-0) CWRAPPER) (OPCODE :NEQ WRAPPER CWRAPPER ...)) EMIT-CHECK-1-CLASS-WRAPPER not compiled due to errors. Error in EMIT-CHECK-2-CLASS-WRAPPER Function must be a symbol or lambda form: (CWRAPPER VECTOR) Surrounding forms: ((CWRAPPER VECTOR)) (WITH-LAP-REGISTERS ((CWRAPPER VECTOR)) (FLATTEN-LAP (OPCODE :MOVE # CWRAPPER) (OPCODE :EQ WRAPPER CWRAPPER ...) (OPCODE :MOVE # CWRAPPER) ...)) (BLOCK EMIT-CHECK-2-CLASS-WRAPPER (WITH-LAP-REGISTERS (#) (FLATTEN-LAP # # # ...))) Warning in EMIT-CHECK-2-CLASS-WRAPPER CWRAPPER not declared special or bound lexically, assuming special. Surrounding forms: CWRAPPER (OPCODE :MOVE (OPERAND :CVAR CWRAPPER-0) CWRAPPER) (FLATTEN-LAP (OPCODE :MOVE (OPERAND :CVAR CWRAPPER-0) CWRAPPER) (OPCODE :EQ WRAPPER CWRAPPER ...) (OPCODE :MOVE (OPERAND :CVAR CWRAPPER-1) CWRAPPER) ...) EMIT-CHECK-2-CLASS-WRAPPER not compiled due to errors. Error in EMIT-GET-SLOT Function must be a symbol or lambda form: (VAL T :REUSE TEMP) Surrounding forms: ((VAL T :REUSE TEMP)) (WITH-LAP-REGISTERS ((VAL T :REUSE TEMP)) (FLATTEN-LAP (OPCODE :MOVE # VAL) (OPCODE :EQ VAL SLOT-UNBOUND ...) (OPCODE :RETURN VAL))) (LET ((SLOT-UNBOUND #)) (WITH-LAP-REGISTERS (#) (FLATTEN-LAP # # #))) Warning in EMIT-GET-SLOT VAL not declared special or bound lexically, assuming special. Surrounding forms: VAL (OPCODE :MOVE (OPERAND :IREF SLOTS INDEX) VAL) (FLATTEN-LAP (OPCODE :MOVE (OPERAND :IREF SLOTS INDEX) VAL) (OPCODE :EQ VAL SLOT-UNBOUND ...) (OPCODE :RETURN VAL)) Warning in EMIT-GET-SLOT TEMP bound but value not used. EMIT-GET-SLOT not compiled due to errors. Error in EMIT-SET-SLOT Function must be a symbol or lambda form: (NEW-VAL T :REUSE TEMP) Surrounding forms: ((NEW-VAL T :REUSE TEMP)) (WITH-LAP-REGISTERS ((NEW-VAL T :REUSE TEMP)) (FLATTEN-LAP (OPCODE :MOVE # NEW-VAL) (OPCODE :MOVE NEW-VAL #) (OPCODE :RETURN NEW-VAL))) (BLOCK EMIT-SET-SLOT (WITH-LAP-REGISTERS (#) (FLATTEN-LAP # # #))) Warning in EMIT-SET-SLOT NEW-VAL not declared special or bound lexically, assuming special. Surrounding forms: NEW-VAL (OPCODE :MOVE (OPERAND :ARG NEW-VALUE-ARG) NEW-VAL) (FLATTEN-LAP (OPCODE :MOVE (OPERAND :ARG NEW-VALUE-ARG) NEW-VAL) (OPCODE :MOVE NEW-VAL (OPERAND :IREF SLOTS INDEX)) (OPCODE :RETURN NEW-VAL)) Warning in EMIT-SET-SLOT TEMP bound but value not used. EMIT-SET-SLOT not compiled due to errors. Error in EMIT-GET-CLASS-SLOT Function must be a symbol or lambda form: (VAL T :REUSE TEMP) Surrounding forms: ((VAL T :REUSE TEMP)) (WITH-LAP-REGISTERS ((VAL T :REUSE TEMP)) (FLATTEN-LAP (OPCODE :MOVE # VAL) (OPCODE :EQ VAL SLOT-UNBOUND ...) (OPCODE :RETURN VAL))) (LET ((SLOT-UNBOUND #)) (WITH-LAP-REGISTERS (#) (FLATTEN-LAP # # #))) Warning in EMIT-GET-CLASS-SLOT VAL not declared special or bound lexically, assuming special. Surrounding forms: VAL (OPCODE :MOVE (OPERAND :CDR INDEX) VAL) (FLATTEN-LAP (OPCODE :MOVE (OPERAND :CDR INDEX) VAL) (OPCODE :EQ VAL SLOT-UNBOUND ...) (OPCODE :RETURN VAL)) Warning in EMIT-GET-CLASS-SLOT TEMP bound but value not used. EMIT-GET-CLASS-SLOT not compiled due to errors. Error in EMIT-SET-CLASS-SLOT Function must be a symbol or lambda form: (NEW-VAL T :REUSE TEMP) Surrounding forms: ((NEW-VAL T :REUSE TEMP)) (WITH-LAP-REGISTERS ((NEW-VAL T :REUSE TEMP)) (FLATTEN-LAP (OPCODE :MOVE # NEW-VAL) (OPCODE :MOVE NEW-VAL #) (OPCODE :RETURN NEW-VAL))) (BLOCK EMIT-SET-CLASS-SLOT (WITH-LAP-REGISTERS (#) (FLATTEN-LAP # # #))) Warning in EMIT-SET-CLASS-SLOT NEW-VAL not declared special or bound lexically, assuming special. Surrounding forms: NEW-VAL (OPCODE :MOVE (OPERAND :ARG NEW-VALUE-ARG) NEW-VAL) (FLATTEN-LAP (OPCODE :MOVE (OPERAND :ARG NEW-VALUE-ARG) NEW-VAL) (OPCODE :MOVE NEW-VAL (OPERAND :CDR INDEX)) (OPCODE :RETURN NEW-VAL)) Warning in EMIT-SET-CLASS-SLOT TEMP bound but value not used. EMIT-SET-CLASS-SLOT not compiled due to errors. Error in EMIT-MISS Function must be a symbol or lambda form: (MISS-FN-REG T) Surrounding forms: ((MISS-FN-REG T)) (WITH-LAP-REGISTERS ((MISS-FN-REG T)) (FLATTEN-LAP (OPCODE :MOVE # MISS-FN-REG) (OPCODE :JMP MISS-FN-REG))) (BLOCK EMIT-MISS (WITH-LAP-REGISTERS (#) (FLATTEN-LAP # #))) Warning in EMIT-MISS MISS-FN-REG not declared special or bound lexically, assuming special. Surrounding forms: MISS-FN-REG (OPCODE :MOVE (OPERAND :CVAR MISS-FN) MISS-FN-REG) (FLATTEN-LAP (OPCODE :MOVE (OPERAND :CVAR MISS-FN) MISS-FN-REG) (OPCODE :JMP MISS-FN-REG)) EMIT-MISS not compiled due to errors. EMIT-DLAP compiled. EMIT-DLAP-INTERNAL compiled. ; Starting full GC ... ; ... Full GC finished Error in EMIT-1-NIL-DLAP Function must be a symbol or lambda form: (LOCATION INDEX) Surrounding forms: ((LOCATION INDEX) (PRIMARY INDEX) (CACHE VECTOR)) (WITH-LAP-REGISTERS ((LOCATION INDEX) (PRIMARY INDEX) (CACHE VECTOR)) (FLATTEN-LAP WRAPPER-MOVE (OPCODE :MOVE # CACHE) (WITH-LAP-REGISTERS # #) ...)) (BLOCK EMIT-1-NIL-DLAP (WITH-LAP-REGISTERS (# # #) (FLATTEN-LAP WRAPPER-MOVE # # ...))) Warning in EMIT-1-NIL-DLAP CACHE not declared special or bound lexically, assuming special. Surrounding forms: CACHE (OPCODE :MOVE (OPERAND :CVAR 'CACHE) CACHE) (FLATTEN-LAP WRAPPER-MOVE (OPCODE :MOVE (OPERAND :CVAR 'CACHE) CACHE) (WITH-LAP-REGISTERS (#) (FLATTEN-LAP # # # ...)) ...) Error in EMIT-1-NIL-DLAP Function must be a symbol or lambda form: (WRAPPER-CACHE-NO INDEX) Surrounding forms: ((WRAPPER-CACHE-NO INDEX)) (WITH-LAP-REGISTERS ((WRAPPER-CACHE-NO INDEX)) (FLATTEN-LAP (EMIT-1-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION WRAPPER PRIMARY WRAPPER-CACHE-NO) (OPCODE :MOVE PRIMARY LOCATION) (EMIT-CHECK-1-WRAPPER-IN-CACHE CACHE LOCATION WRAPPER ...) ...)) (FLATTEN-LAP WRAPPER-MOVE (OPCODE :MOVE (OPERAND :CVAR 'CACHE) CACHE) (WITH-LAP-REGISTERS (#) (FLATTEN-LAP # # # ...)) ...) Warning in EMIT-1-NIL-DLAP PRIMARY not declared special or bound lexically, assuming special. Surrounding forms: PRIMARY (EMIT-1-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION WRAPPER PRIMARY WRAPPER-CACHE-NO) (FLATTEN-LAP (EMIT-1-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION WRAPPER PRIMARY WRAPPER-CACHE-NO) (OPCODE :MOVE PRIMARY LOCATION) (EMIT-CHECK-1-WRAPPER-IN-CACHE CACHE LOCATION WRAPPER ...) ...) Warning in EMIT-1-NIL-DLAP WRAPPER-CACHE-NO not declared special or bound lexically, assuming special. Surrounding forms: WRAPPER-CACHE-NO (EMIT-1-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION WRAPPER PRIMARY WRAPPER-CACHE-NO) (FLATTEN-LAP (EMIT-1-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION WRAPPER PRIMARY WRAPPER-CACHE-NO) (OPCODE :MOVE PRIMARY LOCATION) (EMIT-CHECK-1-WRAPPER-IN-CACHE CACHE LOCATION WRAPPER ...) ...) Warning in EMIT-1-NIL-DLAP LOCATION not declared special or bound lexically, assuming special. Surrounding forms: LOCATION (OPCODE :MOVE PRIMARY LOCATION) (FLATTEN-LAP (EMIT-1-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION WRAPPER PRIMARY WRAPPER-CACHE-NO) (OPCODE :MOVE PRIMARY LOCATION) (EMIT-CHECK-1-WRAPPER-IN-CACHE CACHE LOCATION WRAPPER ...) ...) Error in EMIT-1-NIL-DLAP Function must be a symbol or lambda form: (SIZE INDEX) Surrounding forms: ((SIZE INDEX)) (WITH-LAP-REGISTERS ((SIZE INDEX)) (FLATTEN-LAP (OPCODE :MOVE # SIZE) (OPCODE :LABEL 'LOOP) (OPCODE :MOVE # LOCATION) ...)) (FLATTEN-LAP WRAPPER-MOVE (OPCODE :MOVE (OPERAND :CVAR 'CACHE) CACHE) (WITH-LAP-REGISTERS (#) (FLATTEN-LAP # # # ...)) ...) Warning in EMIT-1-NIL-DLAP SIZE not declared special or bound lexically, assuming special. Surrounding forms: SIZE (OPCODE :MOVE (OPERAND :CVAR 'SIZE) SIZE) (FLATTEN-LAP (OPCODE :MOVE (OPERAND :CVAR 'SIZE) SIZE) (OPCODE :LABEL 'LOOP) (OPCODE :MOVE (OPERAND :I1+ LOCATION) LOCATION) ...) EMIT-1-NIL-DLAP not compiled due to errors. Error in EMIT-1-T-DLAP Function must be a symbol or lambda form: (LOCATION INDEX) Surrounding forms: ((LOCATION INDEX) (PRIMARY INDEX) (CACHE VECTOR) (INITIAL-LOCK-COUNT INDEX)) (WITH-LAP-REGISTERS ((LOCATION INDEX) (PRIMARY INDEX) (CACHE VECTOR) (INITIAL-LOCK-COUNT INDEX)) (FLATTEN-LAP WRAPPER-MOVE (OPCODE :MOVE # CACHE) (WITH-LAP-REGISTERS # #) ...)) (BLOCK EMIT-1-T-DLAP (WITH-LAP-REGISTERS (# # # #) (FLATTEN-LAP WRAPPER-MOVE # # ...))) Warning in EMIT-1-T-DLAP CACHE not declared special or bound lexically, assuming special. Surrounding forms: CACHE (OPCODE :MOVE (OPERAND :CVAR 'CACHE) CACHE) (FLATTEN-LAP WRAPPER-MOVE (OPCODE :MOVE (OPERAND :CVAR 'CACHE) CACHE) (WITH-LAP-REGISTERS (#) (FLATTEN-LAP # # # ...)) ...) Error in EMIT-1-T-DLAP Function must be a symbol or lambda form: (WRAPPER-CACHE-NO INDEX) Surrounding forms: ((WRAPPER-CACHE-NO INDEX)) (WITH-LAP-REGISTERS ((WRAPPER-CACHE-NO INDEX)) (FLATTEN-LAP (EMIT-1-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION WRAPPER PRIMARY WRAPPER-CACHE-NO) (OPCODE :MOVE PRIMARY LOCATION) (OPCODE :MOVE # INITIAL-LOCK-COUNT) ...)) (FLATTEN-LAP WRAPPER-MOVE (OPCODE :MOVE (OPERAND :CVAR 'CACHE) CACHE) (WITH-LAP-REGISTERS (#) (FLATTEN-LAP # # # ...)) ...) Warning in EMIT-1-T-DLAP PRIMARY not declared special or bound lexically, assuming special. Surrounding forms: PRIMARY (EMIT-1-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION WRAPPER PRIMARY WRAPPER-CACHE-NO) (FLATTEN-LAP (EMIT-1-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION WRAPPER PRIMARY WRAPPER-CACHE-NO) (OPCODE :MOVE PRIMARY LOCATION) (OPCODE :MOVE (OPERAND :CREF CACHE 0) INITIAL-LOCK-COUNT) ...) Warning in EMIT-1-T-DLAP WRAPPER-CACHE-NO not declared special or bound lexically, assuming special. Surrounding forms: WRAPPER-CACHE-NO (EMIT-1-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION WRAPPER PRIMARY WRAPPER-CACHE-NO) (FLATTEN-LAP (EMIT-1-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION WRAPPER PRIMARY WRAPPER-CACHE-NO) (OPCODE :MOVE PRIMARY LOCATION) (OPCODE :MOVE (OPERAND :CREF CACHE 0) INITIAL-LOCK-COUNT) ...) Warning in EMIT-1-T-DLAP LOCATION not declared special or bound lexically, assuming special. Surrounding forms: LOCATION (OPCODE :MOVE PRIMARY LOCATION) (FLATTEN-LAP (EMIT-1-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION WRAPPER PRIMARY WRAPPER-CACHE-NO) (OPCODE :MOVE PRIMARY LOCATION) (OPCODE :MOVE (OPERAND :CREF CACHE 0) INITIAL-LOCK-COUNT) ...) Warning in EMIT-1-T-DLAP INITIAL-LOCK-COUNT not declared special or bound lexically, assuming special. Surrounding forms: INITIAL-LOCK-COUNT (OPCODE :MOVE (OPERAND :CREF CACHE 0) INITIAL-LOCK-COUNT) (FLATTEN-LAP (EMIT-1-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION WRAPPER PRIMARY WRAPPER-CACHE-NO) (OPCODE :MOVE PRIMARY LOCATION) (OPCODE :MOVE (OPERAND :CREF CACHE 0) INITIAL-LOCK-COUNT) ...) Error in EMIT-1-T-DLAP Function must be a symbol or lambda form: (SIZE INDEX) Surrounding forms: ((SIZE INDEX)) (WITH-LAP-REGISTERS ((SIZE INDEX)) (FLATTEN-LAP (OPCODE :MOVE # SIZE) (OPCODE :LABEL 'LOOP) (OPCODE :MOVE # LOCATION) ...)) (FLATTEN-LAP WRAPPER-MOVE (OPCODE :MOVE (OPERAND :CVAR 'CACHE) CACHE) (WITH-LAP-REGISTERS (#) (FLATTEN-LAP # # # ...)) ...) Warning in EMIT-1-T-DLAP SIZE not declared special or bound lexically, assuming special. Surrounding forms: SIZE (OPCODE :MOVE (OPERAND :CVAR 'SIZE) SIZE) (FLATTEN-LAP (OPCODE :MOVE (OPERAND :CVAR 'SIZE) SIZE) (OPCODE :LABEL 'LOOP) (OPCODE :MOVE (OPERAND :I1+ LOCATION) LOCATION) ...) EMIT-1-T-DLAP not compiled due to errors. Error in EMIT-GREATER-THAN-1-DLAP Function must be a symbol or lambda form: (LOCATION INDEX) Surrounding forms: ((LOCATION INDEX) (PRIMARY INDEX) (CACHE VECTOR) (INITIAL-LOCK-COUNT INDEX) ...) (WITH-LAP-REGISTERS ((LOCATION INDEX) (PRIMARY INDEX) (CACHE VECTOR) (INITIAL-LOCK-COUNT INDEX) ...) (FLATTEN-LAP (APPLY #'FLATTEN-LAP WRAPPER-MOVES) (OPCODE :MOVE # LINE-SIZE) (OPCODE :MOVE # CACHE) ...)) (LET ((CACHE-LINE-SIZE #)) (WITH-LAP-REGISTERS (# # # # ...) (FLATTEN-LAP # # # ...))) Warning in EMIT-GREATER-THAN-1-DLAP LINE-SIZE not declared special or bound lexically, assuming special. Surrounding forms: LINE-SIZE (OPCODE :MOVE (OPERAND :CONSTANT CACHE-LINE-SIZE) LINE-SIZE) (FLATTEN-LAP (APPLY #'FLATTEN-LAP WRAPPER-MOVES) (OPCODE :MOVE (OPERAND :CONSTANT CACHE-LINE-SIZE) LINE-SIZE) (OPCODE :MOVE (OPERAND :CVAR 'CACHE) CACHE) ...) Warning in EMIT-GREATER-THAN-1-DLAP CACHE not declared special or bound lexically, assuming special. Surrounding forms: CACHE (OPCODE :MOVE (OPERAND :CVAR 'CACHE) CACHE) (FLATTEN-LAP (APPLY #'FLATTEN-LAP WRAPPER-MOVES) (OPCODE :MOVE (OPERAND :CONSTANT CACHE-LINE-SIZE) LINE-SIZE) (OPCODE :MOVE (OPERAND :CVAR 'CACHE) CACHE) ...) Warning in EMIT-GREATER-THAN-1-DLAP PRIMARY not declared special or bound lexically, assuming special. Surrounding forms: PRIMARY (EMIT-N-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION WRAPPERS PRIMARY MISS-LABEL) (FLATTEN-LAP (APPLY #'FLATTEN-LAP WRAPPER-MOVES) (OPCODE :MOVE (OPERAND :CONSTANT CACHE-LINE-SIZE) LINE-SIZE) (OPCODE :MOVE (OPERAND :CVAR 'CACHE) CACHE) ...) Warning in EMIT-GREATER-THAN-1-DLAP LOCATION not declared special or bound lexically, assuming special. Surrounding forms: LOCATION (OPCODE :MOVE PRIMARY LOCATION) (FLATTEN-LAP (APPLY #'FLATTEN-LAP WRAPPER-MOVES) (OPCODE :MOVE (OPERAND :CONSTANT CACHE-LINE-SIZE) LINE-SIZE) (OPCODE :MOVE (OPERAND :CVAR 'CACHE) CACHE) ...) Warning in EMIT-GREATER-THAN-1-DLAP NEXT-LOCATION not declared special or bound lexically, assuming special. Surrounding forms: NEXT-LOCATION (OPCODE :MOVE LOCATION NEXT-LOCATION) (FLATTEN-LAP (APPLY #'FLATTEN-LAP WRAPPER-MOVES) (OPCODE :MOVE (OPERAND :CONSTANT CACHE-LINE-SIZE) LINE-SIZE) (OPCODE :MOVE (OPERAND :CVAR 'CACHE) CACHE) ...) Warning in EMIT-GREATER-THAN-1-DLAP INITIAL-LOCK-COUNT not declared special or bound lexically, assuming special. Surrounding forms: INITIAL-LOCK-COUNT (OPCODE :MOVE (OPERAND :CREF CACHE 0) INITIAL-LOCK-COUNT) (FLATTEN-LAP (APPLY #'FLATTEN-LAP WRAPPER-MOVES) (OPCODE :MOVE (OPERAND :CONSTANT CACHE-LINE-SIZE) LINE-SIZE) (OPCODE :MOVE (OPERAND :CVAR 'CACHE) CACHE) ...) Error in EMIT-GREATER-THAN-1-DLAP Function must be a symbol or lambda form: (SIZE INDEX) Surrounding forms: ((SIZE INDEX)) (WITH-LAP-REGISTERS ((SIZE INDEX)) (FLATTEN-LAP (OPCODE :MOVE # SIZE) (OPCODE :LABEL 'CONTINUE) (OPCODE :MOVE # NEXT-LOCATION) ...)) (FLATTEN-LAP (APPLY #'FLATTEN-LAP WRAPPER-MOVES) (OPCODE :MOVE (OPERAND :CONSTANT CACHE-LINE-SIZE) LINE-SIZE) (OPCODE :MOVE (OPERAND :CVAR 'CACHE) CACHE) ...) Warning in EMIT-GREATER-THAN-1-DLAP SIZE not declared special or bound lexically, assuming special. Surrounding forms: SIZE (OPCODE :MOVE (OPERAND :CVAR 'SIZE) SIZE) (FLATTEN-LAP (OPCODE :MOVE (OPERAND :CVAR 'SIZE) SIZE) (OPCODE :LABEL 'CONTINUE) (OPCODE :MOVE (OPERAND :I+ LOCATION LINE-SIZE) NEXT-LOCATION) ...) EMIT-GREATER-THAN-1-DLAP not compiled due to errors. Error in EMIT-CHECK-1-WRAPPER-IN-CACHE Function must be a symbol or lambda form: (CWRAPPER VECTOR) Surrounding forms: ((CWRAPPER VECTOR)) (WITH-LAP-REGISTERS ((CWRAPPER VECTOR)) (FLATTEN-LAP (OPCODE :MOVE # CWRAPPER) (OPCODE :NEQ CWRAPPER WRAPPER ...) HIT-CODE ...)) (LET ((EXIT-EMIT-CHECK-1-WRAPPER-IN-CACHE #)) (WITH-LAP-REGISTERS (#) (FLATTEN-LAP # # HIT-CODE ...))) Warning in EMIT-CHECK-1-WRAPPER-IN-CACHE CWRAPPER not declared special or bound lexically, assuming special. Surrounding forms: CWRAPPER (OPCODE :MOVE (EMIT-CACHE-REF CACHE LOCATION) CWRAPPER) (FLATTEN-LAP (OPCODE :MOVE (EMIT-CACHE-REF CACHE LOCATION) CWRAPPER) (OPCODE :NEQ CWRAPPER WRAPPER ...) HIT-CODE ...) EMIT-CHECK-1-WRAPPER-IN-CACHE not compiled due to errors. Error in EMIT-CHECK-CACHE-ENTRY Function must be a symbol or lambda form: (CWRAPPER VECTOR) Surrounding forms: ((CWRAPPER VECTOR)) (WITH-LAP-REGISTERS ((CWRAPPER VECTOR)) (FLATTEN-LAP (OPCODE :MOVE # CWRAPPER) (OPCODE :EQ CWRAPPER WRAPPER ...))) (BLOCK EMIT-CHECK-CACHE-ENTRY (WITH-LAP-REGISTERS (#) (FLATTEN-LAP # #))) Warning in EMIT-CHECK-CACHE-ENTRY CWRAPPER not declared special or bound lexically, assuming special. Surrounding forms: CWRAPPER (OPCODE :MOVE (EMIT-CACHE-REF CACHE LOCATION) CWRAPPER) (FLATTEN-LAP (OPCODE :MOVE (EMIT-CACHE-REF CACHE LOCATION) CWRAPPER) (OPCODE :EQ CWRAPPER WRAPPER ...)) EMIT-CHECK-CACHE-ENTRY not compiled due to errors. Error in EMIT-CHECK-CACHE-LINE Compile time fatal error while executing WALKER::GET-WALKER-TEMPLATE Error signalled by ERROR Error message would have been: "Can't get template for (CWRAPPER VECTOR)" Surrounding forms: (LET ((CHECKS #)) (FLATTEN-LAP CHECKS (OPCODE :GO HIT-LABEL) (OPCODE :LABEL 'EXIT-EMIT-CHECK-CACHE-LINE))) (BLOCK EMIT-CHECK-CACHE-LINE (LET (#) (FLATTEN-LAP CHECKS # #))) Error in EMIT-LOCK-COUNT-TEST Function must be a symbol or lambda form: (NEW-LOCK-COUNT T) Surrounding forms: ((NEW-LOCK-COUNT T)) (WITH-LAP-REGISTERS ((NEW-LOCK-COUNT T)) (FLATTEN-LAP (OPCODE :MOVE # NEW-LOCK-COUNT) (OPCODE :FIX= NEW-LOCK-COUNT INITIAL-LOCK-COUNT ...))) (BLOCK EMIT-LOCK-COUNT-TEST (WITH-LAP-REGISTERS (#) (FLATTEN-LAP # #))) Warning in EMIT-LOCK-COUNT-TEST NEW-LOCK-COUNT not declared special or bound lexically, assuming special. Surrounding forms: NEW-LOCK-COUNT (OPCODE :MOVE (OPERAND :CREF CACHE 0) NEW-LOCK-COUNT) (FLATTEN-LAP (OPCODE :MOVE (OPERAND :CREF CACHE 0) NEW-LOCK-COUNT) (OPCODE :FIX= NEW-LOCK-COUNT INITIAL-LOCK-COUNT ...)) EMIT-LOCK-COUNT-TEST not compiled due to errors. EMIT-ADJUST-LOCATION compiled. Finished compilation of file DISK$CRL:[RICK.PCL]DLAP.LSP;1 30 Errors, 47 Warnings Errors were detected in the following functions: EMIT-READER/WRITER EMIT-ONE-INDEX-READERS EMIT-ONE-INDEX-WRITERS EMIT-N-N-READERS EMIT-N-N-WRITERS EMIT-CHECKING EMIT-CACHING EMIT-CHECK-1-CLASS-WRAPPER EMIT-CHECK-2-CLASS-WRAPPER EMIT-GET-SLOT EMIT-SET-SLOT EMIT-GET-CLASS-SLOT EMIT-SET-CLASS-SLOT EMIT-MISS EMIT-1-NIL-DLAP EMIT-1-T-DLAP EMIT-GREATER-THAN-1-DLAP EMIT-CHECK-1-WRAPPER-IN-CACHE EMIT-CHECK-CACHE-ENTRY EMIT-CHECK-CACHE-LINE EMIT-LOCK-COUNT-TEST The following are assumed to be functions, but were not declared or defined: WITH-LAP-REGISTERS EMIT-N-WRAPPER-COMPUTE-PRIMARY-CACHE-LOCATION EMIT-CHECK-CACHE-LINE The following are assumed to be special variables, but were referenced free without being declared or defined: CACHE-NO INST WRAPPER INDEX SLOTS FUNCTION MISS-FUNCTION CWRAPPER VAL NEW-VAL MISS-FN-REG CACHE PRIMARY WRAPPER-CACHE-NO LOCATION SIZE INITIAL-LOCK-COUNT LINE-SIZE NEXT-LOCATION NEW-LOCK-COUNT Loading binary of DLAP... Compiling BOOT... Starting compilation of file DISK$CRL:[RICK.PCL]BOOT.LSP;1 REDIRECT-EARLY-FUNCTION-INTERNAL compiled. DEFGENERIC compiled. ; Starting full GC ... ; ... Full GC finished EXPAND-DEFGENERIC compiled. LOAD-DEFGENERIC compiled. DEFMETHOD compiled. METHOD-PROTOTYPE-FOR-GF compiled. ; Starting full GC ... ; ... Full GC finished EXPAND-DEFMETHOD compiled. ; Starting full GC ... ; ... Full GC finished EXPAND-DEFMETHOD-INTERNAL compiled. ADD-LEXICAL-FUNCTIONS-TO-METHOD-LAMBDA compiled. Error in MAKE-PARAMETER-REFERENCES Compile time fatal error while executing #:ADD-TO-&ENV-FOR-CLC-I2659 Error signalled by ERROR Error message would have been: "Invalid operation on lexical environment: #:G2183 #S(TYPE :NAME T :CODE 332 :BO XED-SIZE 0 :UNBOXED-SIZE 0 :CATEGORY :PREDEFINED-TYPE :COMMON NIL :LAMBDA-LIST N IL :DEFTYPE-EXPANDER NIL :PRIMITIVE-TYPE NIL :PARENT-TYPE NIL :NAMED NIL :INITIA L-OFFSET 0 :CONC-NAME NIL :CONSTRUCTOR NIL :COPIER NIL :PRINT-FUNCTION NIL :SLOT -DESCRIPTORS #() :PREDICATE NIL :TYPEP-LIST NIL :TYPE-OF NIL :ELEMENT-TYPE NIL : ELEMENT-SIZE 0 :OBJECT-LIST NIL :STANDARD-P T :TYPEP-SYMBOL SYSTEM::TRUE :CANON- ARRAY-ELEMENT-TYPE T :CANON-TYPE :SELF :TYPEP-TRANSFORM NIL :SPARE29 NIL :SPARE3 0 NIL :SPARE31 NIL :SPARE32 NIL)" Surrounding forms: (FLET ((IGNOREDP # #)) (GATHERING (#) (ITERATE # # #))) (BLOCK MAKE-PARAMETER-REFERENCES (FLET (#) (GATHERING # #))) METHOD-FUNCTION-PLIST compiled. |SETF PCL METHOD-FUNCTION-PLIST| compiled. METHOD-FUNCTION-GET compiled. |SETF PCL METHOD-FUNCTION-GET| compiled. METHOD-FUNCTION-ISL compiled. METHOD-FUNCTION-NEEDS-NEXT-METHODS-P compiled. LOAD-DEFMETHOD compiled. ; Starting full GC ... ; ... Full GC finished LOAD-DEFMETHOD-INTERNAL compiled. MAKE-METHOD-SPEC compiled. ENSURE-GENERIC-FUNCTION compiled. GENERIC-CLOBBERS-FUNCTION compiled. ENSURE-GENERIC-FUNCTION-USING-CLASS compiled. EARLY-GF-P compiled. EARLY-GF-METHODS compiled. EARLY-GF-DISCRIMINATOR-CODE compiled. REAL-ENSURE-GF-INTERNAL compiled. REAL-ENSURE-GF-USING-CLASS--GENERIC-FUNCTION compiled. ; Starting full GC ... ; ... Full GC finished REAL-ENSURE-GF-USING-CLASS--NULL compiled. EARLY-MAKE-A-METHOD compiled. REAL-MAKE-A-METHOD compiled. EARLY-METHOD-FUNCTION compiled. EARLY-METHOD-SPECIALIZERS compiled. EARLY-METHOD-QUALIFIERS compiled. EARLY-ADD-NAMED-METHOD compiled. ADD-METHOD compiled. REMOVE-METHOD compiled. GET-METHOD compiled. EARLY-UPDATE-DISCRIMINATOR-CODE compiled. EARLY-GET-CPL compiled. EARLY-SORT-METHODS compiled. ; Starting full GC ... ; ... Full GC finished EARLY-DFUN compiled. ; Starting full GC ... ; ... Full GC finished ; Starting full GC ... ; ... Full GC finished FIX-EARLY-GENERIC-FUNCTIONS compiled. PARSE-DEFMETHOD compiled. PARSE-SPECIALIZERS compiled. UNPARSE-SPECIALIZERS compiled. PARSE-METHOD-OR-SPEC compiled. SPECIALIZED-LAMBDA-LIST-PARAMETERS compiled. SPECIALIZED-LAMBDA-LIST-LAMBDA-LIST compiled. SPECIALIZED-LAMBDA-LIST-SPECIALIZERS compiled. SPECIALIZED-LAMBDA-LIST-REQUIRED-PARAMETERS compiled. PARSE-SPECIALIZED-LAMBDA-LIST compiled. WITH-SLOTS compiled. ; Starting full GC ... ; ... Full GC finished WITH-ACCESSORS compiled. EXPAND-WITH-SLOTS compiled. EXPAND-WITH-SLOTS-INTERNAL compiled. Finished compilation of file DISK$CRL:[RICK.PCL]BOOT.LSP;1 1 Errors, 0 Warnings Errors were detected in the following functions: MAKE-PARAMETER-REFERENCES The following are assumed to be functions, but were not declared or defined: GENERIC-FUNCTION-P CLASS-PROTOTYPE GENERIC-FUNCTION-METHOD-CLASS CLASS-NAME CLASS-OF MAKE-PARAMETER-REFERENCES CAN-OPTIMIZE-ACCESS OPTIMIZE-SLOT-VALUE OPTIMIZE-SET-SLOT-VALUE SLOT-NAME-LISTS-FROM-SLOTS ADD-PV-BINDING INTERN-SLOT-NAME-LISTS ADD-NAMED-METHOD CLASSP FIND-METHOD-COMBINATION CHANGE-CLASS MAKE-INSTANCE MAKE-A-METHOD REAL-GET-METHOD BOOTSTRAP-GET-SLOT ALLOCATE-INSTANCE CLASS-WRAPPER CLASS-NO-OF-INSTANCE-SLOTS DEFAULT-INITARGS REAL-ADD-METHOD SET-SLOT-VALUE FIXUP-MAGIC-GENERIC-FUNCTION |SETF PCL GENERIC-FUNCTION-NAME| EQL-SPECIALIZER-P EQL-SPECIALIZER-OBJECT METHOD-SPECIALIZERS METHOD-P METHOD-GENERIC-FUNCTION GENERIC-FUNCTION-NAME METHOD-QUALIFIERS COMPUTE-DISCRIMINATING-FUNCTION-ARGLIST-INFO Loading binary of BOOT... Compiling VECTOR... Starting compilation of file DISK$CRL:[RICK.PCL]VECTOR.LSP;1 ; Starting full GC ... ; ... Full GC finished INSTANCE-SLOT-INDEX compiled. %ISL-CACHE compiled. %ISL-FIELD compiled. %ISL-MASK compiled. %ISL-SIZE compiled. %ISL-SLOT-NAME-LISTS compiled. MAKE-ISL compiled. MAKE-ISL-INTERNAL compiled. MAKE-ISL-TYPE-DECLARATION compiled. ISLP compiled. INTERN-SLOT-NAME-LISTS compiled. ; Starting full GC ... ; ... Full GC finished LOOKUP-PV compiled. MAKE-PERMUTATION-VECTOR compiled. MAKE-PV-TYPE-DECLARATION compiled. PVREF compiled. CAN-OPTIMIZE-ACCESS compiled. OPTIMIZE-SLOT-VALUE compiled. OPTIMIZE-SET-SLOT-VALUE compiled. OPTIMIZE-INSTANCE-ACCESS compiled. ; Starting full GC ... ; ... Full GC finished INSTANCE-READ compiled. INSTANCE-WRITE compiled. PV-ACCESS-TRAP compiled. SLOT-NAME-LISTS-FROM-SLOTS compiled. MUTATE-SLOTS compiled. SORT-SLOTS compiled. ; Starting full GC ... ; ... Full GC finished ADD-PV-BINDING compiled. COMPUTE-PRIMARY-PV-CACHE-SIZE compiled. PV-CACHE-LIMIT-FN compiled. ; Starting full GC ... ; ... Full GC finished PRIMARY-PV-CACHE-MISS compiled. Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STANDARD-CLASS)) (CLASS) NIL WRAPPER-FETCHER (STANDARD-CLA SS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STANDARD-CLASS)) (CLASS) NIL SLOTS-FETCHER (STANDARD-CLASS )) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STANDARD-CLASS)) (CLASS) NIL RAW-INSTANCE-ALLOCATOR (STAND ARD-CLASS)) apparently called by: #" Finished compilation of file DISK$CRL:[RICK.PCL]VECTOR.LSP;1 3 Errors, 0 Warnings The following are assumed to be functions, but were not declared or defined: CLASS-OF |SETF PCL SLOT-VALUE-USING-CLASS| SLOT-VALUE-USING-CLASS Loading binary of VECTOR... Compiling SLOTS... Starting compilation of file DISK$CRL:[RICK.PCL]SLOTS.LSP;1 GET-WRAPPER compiled. GET-SLOTS compiled. SET-WRAPPER compiled. SET-SLOTS compiled. GET-SLOT-VALUE-2 compiled. SET-SLOT-VALUE-2 compiled. GET-CLASS-SLOT-VALUE-1 compiled. SET-CLASS-SLOT-VALUE-1 compiled. Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) SLOT-NAME) (CLASS SLOT-NAME) NIL CLASS-SLOT-VAL UE (STD-CLASS T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: ((NV (CLASS STD-CLASS) SLOT-NAME) (NV CLASS SLOT-NAME) NIL (SETF CL ASS-SLOT-VALUE) (T STD-CLASS T)) apparently called by: #" SLOT-VALUE compiled. SET-SLOT-VALUE compiled. SLOT-BOUNDP compiled. SLOT-MAKUNBOUND compiled. SLOT-EXISTS-P compiled. SLOT-VALUE-OR-DEFAULT compiled. Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) (OBJECT STANDARD-OBJECT) SLOT-NAME) (CLASS OBJE CT SLOT-NAME) NIL SLOT-VALUE-USING-CLASS (STD-CLASS STANDARD-OBJECT T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: ((NEW-VALUE (CLASS STD-CLASS) (OBJECT STANDARD-OBJECT) SLOT-NAME) ( NEW-VALUE CLASS OBJECT SLOT-NAME) NIL (SETF SLOT-VALUE-USING-CLASS) (T STD-CLASS STANDARD-OBJECT T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) (OBJECT STANDARD-OBJECT) SLOT-NAME) (CLASS OBJE CT SLOT-NAME) NIL SLOT-BOUNDP-USING-CLASS (STD-CLASS STANDARD-OBJECT T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) (OBJECT STANDARD-OBJECT) SLOT-NAME) (CLASS OBJE CT SLOT-NAME) NIL SLOT-MAKUNBOUND-USING-CLASS (STD-CLASS STANDARD-OBJECT T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) (OBJECT STANDARD-OBJECT) SLOT-NAME) (CLASS OBJE CT SLOT-NAME) NIL SLOT-EXISTS-P-USING-CLASS (STD-CLASS STANDARD-OBJECT T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS T) INSTANCE SLOT-NAME OPERATION &OPTIONAL NEW-VALUE) (CLAS S INSTANCE SLOT-NAME OPERATION) NIL SLOT-MISSING (T T T T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS T) INSTANCE SLOT-NAME) (CLASS INSTANCE SLOT-NAME) NIL SLOT -UNBOUND (T T T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STANDARD-CLASS) &REST INITARGS) (CLASS) ((DECLARE (IGNORE INITARGS))) ALLOCATE-INSTANCE (STANDARD-CLASS)) apparently called by: #" Finished compilation of file DISK$CRL:[RICK.PCL]SLOTS.LSP;1 10 Errors, 0 Warnings The following are assumed to be functions, but were not declared or defined: SLOT-MISSING SLOT-UNBOUND SLOT-VALUE-USING-CLASS CLASS-OF |SETF PCL SLOT-VALUE-USING-CLASS| SLOT-BOUNDP-USING-CLASS SLOT-MAKUNBOUND-USING-CLASS SLOT-EXISTS-P-USING-CLASS ; Starting full GC ... ; ... Full GC finished Loading binary of SLOTS... Compiling INIT... Starting compilation of file DISK$CRL:[RICK.PCL]INIT.LSP;1 Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) &REST INITARGS) (CLASS) NIL MAKE-INSTANCE (STD- CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS-NAME SYMBOL) &REST INITARGS) (CLASS-NAME) NIL MAKE-INSTANC E (SYMBOL)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) SUPPLIED-INITARGS) (CLASS SUPPLIED-INITARGS) NI L DEFAULT-INITARGS (STD-CLASS T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((INSTANCE STANDARD-OBJECT) &REST INITARGS) (INSTANCE) NIL INITIAL IZE-INSTANCE (STANDARD-OBJECT)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((INSTANCE STANDARD-OBJECT) &REST INITARGS) (INSTANCE) NIL REINITI ALIZE-INSTANCE (STANDARD-OBJECT)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((PREVIOUS STANDARD-OBJECT) (CURRENT STANDARD-OBJECT) &REST INITAR GS) (PREVIOUS CURRENT) NIL UPDATE-INSTANCE-FOR-DIFFERENT-CLASS (STANDARD-OBJECT STANDARD-OBJECT)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((INSTANCE STANDARD-OBJECT) ADDED-SLOTS DISCARDED-SLOTS PROPERTY-L IST &REST INITARGS) (INSTANCE ADDED-SLOTS DISCARDED-SLOTS PROPERTY-LIST) ((DECLA RE (IGNORE DISCARDED-SLOTS PROPERTY-LIST))) UPDATE-INSTANCE-FOR-REDEFINED-CLASS (STANDARD-OBJECT T T T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((INSTANCE STANDARD-OBJECT) SLOT-NAMES &REST INITARGS) (INSTANCE S LOT-NAMES) NIL SHARED-INITIALIZE (STANDARD-OBJECT T)) apparently called by: #" Warning in CHECK-INITARGS-1 VAL bound but value not used. Surrounding forms: (DOPLIST (KEY VAL) INITARGS (UNLESS (MEMQ KEY LEGAL) (ERROR "Invalid initialization argument ~S for class ~S" KEY #))) (PROGN (DOLIST (METHOD METHODS) (MULTIPLE-VALUE-BIND # # # ...)) (DOPLIST (KEY VAL) INITARGS (UNLESS # #))) (UNLESS (GETF INITARGS :ALLOW-OTHER-KEYS) (DOLIST (METHOD METHODS) (MULTIPLE-VALUE-BIND # # # ...)) (DOPLIST (KEY VAL) INITARGS (UNLESS # #))) CHECK-INITARGS-1 compiled. Finished compilation of file DISK$CRL:[RICK.PCL]INIT.LSP;1 8 Errors, 1 Warnings The following are assumed to be functions, but were not declared or defined: CLASS-SLOTS SLOTD-INITARGS FUNCTION-KEYWORDS CLASS-NAME Loading binary of INIT... Compiling STD-CLASS... Starting compilation of file DISK$CRL:[RICK.PCL]STD-CLASS.LSP;1 Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((X T)) (X) NIL CLASSP (T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((X T)) (X) NIL STANDARD-CLASS-P (T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((X T)) (X) NIL FORWARD-REFERENCED-CLASS-P (T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS PCL-CLASS)) (CLASS) NIL CLASS-WRAPPER (PCL-CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS PCL-CLASS)) (CLASS) NIL CLASS-PRECEDENCE-LIST (PCL-CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS PCL-CLASS)) (CLASS) NIL CLASS-FINALIZED-P (PCL-CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS)) (CLASS) NIL CLASS-PROTOTYPE (STD-CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS)) (CLASS) NIL CLASS-DIRECT-DEFAULT-INITARGS (STD -CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS)) (CLASS) NIL CLASS-DEFAULT-INITARGS (STD-CLASS) ) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS)) (CLASS) NIL CLASS-CONSTRUCTORS (STD-CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS)) (CLASS) NIL CLASS-SLOT-CELLS (STD-CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) SLOT-NAME) (CLASS SLOT-NAME) NIL FIND-SLOT-DEFI NITION (STD-CLASS T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS CLASS) (SUBCLASS CLASS)) (CLASS SUBCLASS) NIL ADD-DIRECT-S UBCLASS (CLASS CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS CLASS) (SUBCLASS CLASS)) (CLASS SUBCLASS) NIL REMOVE-DIREC T-SUBCLASS (CLASS CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((METHOD METHOD) (SPECIALIZER CLASS)) (METHOD SPECIALIZER) NIL ADD -METHOD-ON-SPECIALIZER (METHOD CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((METHOD METHOD) (SPECIALIZER CLASS)) (METHOD SPECIALIZER) NIL REM OVE-METHOD-ON-SPECIALIZER (METHOD CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((SPECIALIZER CLASS)) (SPECIALIZER) NIL SPECIALIZER-METHODS (CLASS )) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((SPECIALIZER CLASS)) (SPECIALIZER) NIL SPECIALIZER-GENERIC-FUNCTI ONS (CLASS)) apparently called by: #" ; Starting full GC ... ; ... Full GC finished Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((METHOD METHOD) (SPECIALIZER EQL-SPECIALIZER)) (METHOD SPECIALIZE R) NIL ADD-METHOD-ON-SPECIALIZER (METHOD EQL-SPECIALIZER)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((METHOD METHOD) (SPECIALIZER EQL-SPECIALIZER)) (METHOD SPECIALIZE R) NIL REMOVE-METHOD-ON-SPECIALIZER (METHOD EQL-SPECIALIZER)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((SPECIALIZER EQL-SPECIALIZER)) (SPECIALIZER) NIL SPECIALIZER-METH ODS (EQL-SPECIALIZER)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((SPECIALIZER EQL-SPECIALIZER)) (SPECIALIZER) NIL SPECIALIZER-GENE RIC-FUNCTIONS (EQL-SPECIALIZER)) apparently called by: #" REAL-LOAD-DEFCLASS compiled. ENSURE-CLASS compiled. Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: ((NAME (CLASS NULL) &REST ARGS &KEY) (NAME CLASS) NIL ENSURE-CLASS- USING-CLASS (T NULL)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: ((NAME (CLASS PCL-CLASS) &REST ARGS &KEY) (NAME CLASS) NIL ENSURE-C LASS-USING-CLASS (T PCL-CLASS)) apparently called by: #" ; Starting full GC ... ; ... Full GC finished Warning in ENSURE-CLASS-VALUES PROTO bound but value not used. Surrounding forms: (LET* ((INITARGS #) (UNSUPPLIED #) (SUPPLIED-META #) (SUPPLIED-SUPERS #) ...) (FLET (#) (LOOP #) (LOOP #)...)) (BLOCK ENSURE-CLASS-VALUES (LET* (# # # # ...) (FLET # # #...))) ENSURE-CLASS-VALUES compiled. Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) SLOT-NAMES &KEY DIRECT-SUPERCLASSES) (CLASS SLO T-NAMES) ((DECLARE (IGNORE SLOT-NAMES))) SHARED-INITIALIZE (STD-CLASS T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) SLOT-NAMES &KEY DIRECT-SUPERCLASSES DIRECT-SLOT S DIRECT-DEFAULT-INITARGS) (CLASS SLOT-NAMES) ((DECLARE (IGNORE SLOT-NAMES))) SH ARED-INITIALIZE (STD-CLASS T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) &KEY DIRECT-SUPERCLASSES DIRECT-SLOTS DIRECT-DE FAULT-INITARGS) (CLASS) ((DECLARE (IGNORE DIRECT-DEFAULT-INITARGS))) REINITIALIZ E-INSTANCE (STD-CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) &REST INITARGS &KEY) (CLASS) NIL REINITIALIZE-I NSTANCE (STD-CLASS)) apparently called by: #" ADD-SLOT-ACCESSORS compiled. REMOVE-SLOT-ACCESSORS compiled. FIX-SLOT-ACCESSORS compiled. ADD-DIRECT-SUBCLASSES compiled. REMOVE-DIRECT-SUBCLASSES compiled. Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS)) (CLASS) NIL FINALIZE-INHERITANCE (STD-CLASS)) apparently called by: #" UPDATE-CLASS compiled. UPDATE-CPL compiled. ; Starting full GC ... ; ... Full GC finished UPDATE-SLOTS compiled. COMPUTE-STORAGE-INFO compiled. ; Starting full GC ... ; ... Full GC finished COMPUTE-LAYOUT compiled. COMPUTE-CLASS-SLOTS compiled. UPDATE-INITS compiled. Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) CPL DIRECT) (CLASS CPL DIRECT) NIL COMPUTE-DEFA ULT-INITARGS (STD-CLASS T T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) INITARGS) (CLASS INITARGS) ((DECLARE (IGNORE IN ITARGS))) DIRECT-SLOT-DEFINITION-CLASS (STD-CLASS T)) apparently called by: #" MAKE-DIRECT-SLOTD compiled. Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) CPL CLASS-DIRECT-SLOTS) (CLASS CPL CLASS-DIRECT -SLOTS) NIL COMPUTE-SLOTS (STD-CLASS T T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) DSLOTDS) (CLASS DSLOTDS) NIL COMPUTE-EFFECTIVE- SLOT-DEFINITION (STD-CLASS T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) INITARGS) (CLASS INITARGS) ((DECLARE (IGNORE IN ITARGS))) EFFECTIVE-SLOT-DEFINITION-CLASS (STD-CLASS T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) DIRECT-SLOTDS) (CLASS DIRECT-SLOTDS) NIL COMPUT E-EFFECTIVE-SLOT-DEFINITION-INITARGS (STD-CLASS T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) GENERIC-FUNCTION SLOT-NAME) (CLASS GENERIC-FUNC TION SLOT-NAME) NIL ADD-READER-METHOD (STD-CLASS T T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) GENERIC-FUNCTION SLOT-NAME) (CLASS GENERIC-FUNC TION SLOT-NAME) NIL ADD-WRITER-METHOD (STD-CLASS T T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) GENERIC-FUNCTION) (CLASS GENERIC-FUNCTION) NIL REMOVE-READER-METHOD (STD-CLASS T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) GENERIC-FUNCTION) (CLASS GENERIC-FUNCTION) NIL REMOVE-WRITER-METHOD (STD-CLASS T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STANDARD-CLASS) SLOT-NAME) (CLASS SLOT-NAME) NIL MAKE-READ ER-METHOD-FUNCTION (STANDARD-CLASS T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STANDARD-CLASS) SLOT-NAME) (CLASS SLOT-NAME) NIL MAKE-WRIT ER-METHOD-FUNCTION (STANDARD-CLASS T)) apparently called by: #" MAKE-STD-READER-METHOD-FUNCTION compiled. MAKE-STD-WRITER-METHOD-FUNCTION compiled. Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS) NAME) (CLASS NAME) NIL INFORM-TYPE-SYSTEM-ABOUT -CLASS (STD-CLASS T)) apparently called by: #" ; Starting full GC ... ; ... Full GC finished MAKE-TYPE-PREDICATE compiled. Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((GENERIC-FUNCTION GENERIC-FUNCTION) (METHOD METHOD)) (GENERIC-FUN CTION METHOD) NIL MAYBE-UPDATE-CONSTRUCTORS (GENERIC-FUNCTION METHOD)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS)) (CLASS) NIL UPDATE-CONSTRUCTORS (STD-CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS CLASS)) (CLASS) NIL UPDATE-CONSTRUCTORS (CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: ((CLASS PROTO-NEW-CLASS) (CLASS PROTO-NEW-CLASS) NIL COMPATIBLE-MET A-CLASS-CHANGE-P (T T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS T) (NEW-SUPER T)) (CLASS NEW-SUPER) NIL CHECK-SUPER-METACL ASS-COMPATIBILITY (T T)) apparently called by: #" FORCE-CACHE-FLUSHES compiled. FLUSH-CACHE-TRAP compiled. Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS STD-CLASS)) (CLASS) NIL MAKE-INSTANCES-OBSOLETE (STD-CLASS )) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS SYMBOL)) (CLASS) NIL MAKE-INSTANCES-OBSOLETE (SYMBOL)) apparently called by: #" ; Starting full GC ... ; ... Full GC finished OBSOLETE-INSTANCE-TRAP compiled. CHANGE-CLASS-INTERNAL compiled. Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((INSTANCE STANDARD-OBJECT) (NEW-CLASS STANDARD-CLASS)) (INSTANCE NEW-CLASS) NIL CHANGE-CLASS (STANDARD-OBJECT STANDARD-CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((INSTANCE STANDARD-OBJECT) (NEW-CLASS FUNCALLABLE-STANDARD-CLASS) ) (INSTANCE NEW-CLASS) NIL CHANGE-CLASS (STANDARD-OBJECT FUNCALLABLE-STANDARD-CL ASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((INSTANCE T) (NEW-CLASS-NAME SYMBOL)) (INSTANCE NEW-CLASS-NAME) N IL CHANGE-CLASS (T SYMBOL)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS BUILT-IN-CLASS) SLOT-NAMES &REST INITARGS) (CLASS SLOT-NAM ES) ((DECLARE (IGNORE SLOT-NAMES))) SHARED-INITIALIZE (BUILT-IN-CLASS T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS BUILT-IN-CLASS)) (CLASS) NIL CLASS-DIRECT-SLOTS (BUILT-IN- CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS BUILT-IN-CLASS)) (CLASS) NIL CLASS-SLOTS (BUILT-IN-CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS BUILT-IN-CLASS)) (CLASS) NIL CLASS-DIRECT-DEFAULT-INITARGS (BUILT-IN-CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((CLASS BUILT-IN-CLASS)) (CLASS) NIL CLASS-DEFAULT-INITARGS (BUILT -IN-CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((C CLASS) (S BUILT-IN-CLASS)) (C S) NIL CHECK-SUPER-METACLASS-COM PATIBILITY (CLASS BUILT-IN-CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((C STD-CLASS) (F FORWARD-REFERENCED-CLASS)) (C F) NIL CHECK-SUPER -METACLASS-COMPATIBILITY (STD-CLASS FORWARD-REFERENCED-CLASS)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((METAOBJECT DEPENDENT-UPDATE-MIXIN) DEPENDENT) (METAOBJECT DEPEND ENT) NIL ADD-DEPENDENT (DEPENDENT-UPDATE-MIXIN T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((METAOBJECT DEPENDENT-UPDATE-MIXIN) DEPENDENT) (METAOBJECT DEPEND ENT) NIL REMOVE-DEPENDENT (DEPENDENT-UPDATE-MIXIN T)) apparently called by: #" Error between functions Compile time fatal error while executing SYSTEM::%SP-BAD-FUNCTION-ERROR Error signalled by ERROR Error message would have been: "Undefined function called: MAKE-PARAMETER-REFERENCES with args: (((METAOBJECT DEPENDENT-UPDATE-MIXIN) FUNCTION) (METAOBJECT FUNCTIO N) NIL MAP-DEPENDENTS (DEPENDENT-UPDATE-MIXIN T)) apparently called by: #" Finished compilation of file DISK$CRL:[RICK.PCL]STD-CLASS.LSP;1 62 Errors, 1 Warnings The following are assumed to be functions, but were not declared or defined: FORWARD-REFERENCED-CLASS-P CLASS-OF CLASS-PROTOTYPE CLASSP MAKE-INSTANCE ADD-READER-METHOD REMOVE-READER-METHOD ADD-WRITER-METHOD REMOVE-WRITER-METHOD SLOTD-NAME SLOTD-READERS SLOTD-WRITERS CLASS-DIRECT-SUBCLASSES ADD-DIRECT-SUBCLASS CLASS-DIRECT-SUPERCLASSES REMOVE-DIRECT-SUBCLASS CLASS-FINALIZED-P CLASS-DIRECT-SLOTS CLASS-DIRECT-DEFAULT-INITARGS COMPUTE-CLASS-PRECEDENCE-LIST COMPUTE-SLOTS COMPUTE-DEFAULT-INITARGS UPDATE-CONSTRUCTORS CLASS-PRECEDENCE-LIST CLASS-WRAPPER MAKE-WRAPPER MAKE-INSTANCES-OBSOLETE SLOTD-ALLOCATION CLASS-SLOTS CLASS-SLOT-CELLS DIRECT-SLOT-DEFINITION-CLASS SLOT-VALUE-USING-CLASS |SETF PCL SLOT-VALUE-USING-CLASS| ALLOCATE-INSTANCE UPDATE-INSTANCE-FOR-REDEFINED-CLASS Loading binary of STD-CLASS... ; Starting full GC ... ; ... Full GC finished Error in SYMBOL-FUNCTION: Symbol has no global function definition: MAKE-INSTANCE Control Stack Debugger Apply #13: (SYMBOL-FUNCTION MAKE-INSTANCE) Debug 1> back -- Backtrace start -- Apply #13: (SYMBOL-FUNCTION MAKE-INSTANCE) Apply #9: (LOAD #S(PATHNAME :HOST "CGIVB" :DEVICE "DISK$CRL" :DIRECTORY "RICK.PC L" :NAME "std-class" :TYPE "FAS" :VERSION 1)) Apply #7: (OPERATE-ON-SYSTEM PCL :COMPILE NIL NIL) Apply #6: (COMPILE-PCL NIL) Eval #5: (COMPILE-PCL) Apply #3: (EVAL (COMPILE-PCL)) Apply #1: (READ-EVAL-PRINT-LOOP "Lisp> ") -- Backtrace end -- Apply #13: (SYMBOL-FUNCTION MAKE-INSTANCE) Debug 1> show here It is a compiled-function Lambda-list: SYMBOL-FUNCTION system::a SYMBOL-FUNCTION symbol This function returns the current global function definition named by symbol. Note that the definition may be a function, or may be an object representing a special form or macro. In the latter cases, it is an error to attempt to invoke the object as a function. -- Arguments -- SYSTEM::A : MAKE-INSTANCE Debug 1> down Apply #9: (LOAD #S(PATHNAME :HOST "CGIVB" :DEVICE "DISK$CRL" :DIRECTORY "RICK.PC L" :NAME "std-class" :TYPE "FAS" :VERSION 1)) Debug 1> show here It is a compiled-function Lambda-list: LOAD system::a &REST system::b LOAD filename &KEY :VERBOSE :PRINT :IF-DOES-NOT-EXIST This function loads the file named by filename into the LISP environment. The file can contain LISP source code or object (fastload) code produced by the compiler. Defaults for the filename are taken from *DEFAULT-PATHNAME-DEFAULTS*. The :VERBOSE argument (which defaults to *LOAD-VERBOSE*), if true, causes a log of the major loaded forms to be printed to *STANDARD-OUTPUT*. The :PRINT argument (default *LOAD-PRINT*), if true, causes the value of each loaded form to be printed. See the reference book for details. -- Arguments -- SYSTEM::B : NIL Debug 1> down Apply #7: (OPERATE-ON-SYSTEM PCL :COMPILE NIL NIL) Debug 1> show here It is a compiled-function Lambda-list: OPERATE-ON-SYSTEM name mode &OPTIONAL arg print-only -- Arguments -- NAME : PCL MODE : :COMPILE ARG : NIL PRINT-ONLY : NIL Debug 1> down Apply #6: (COMPILE-PCL NIL) Debug 1> show here It is a compiled-function Lambda-list: COMPILE-PCL &OPTIONAL m -- Arguments -- M : NIL Debug 1> down Eval #5: (COMPILE-PCL) Debug 1> show here It is a compiled-function Lambda-list: SYSTEM::INTERPRET system::a system::b system::c Interpreter frame--can't see internal args Debug 1> down Apply #3: (EVAL (COMPILE-PCL)) Debug 1> top Apply #13: (SYMBOL-FUNCTION MAKE-INSTANCE) Debug 1> (exit) Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA05987; Mon, 12 Feb 90 00:22:29 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 12 FEB 90 00:22:20 PST Sender: "MAZIERE_TAURAN_CHRISTOPHE.CBVMANRXF"@Xerox.COM Date: 12 Feb 90 00:15:13 PST (Monday) Subject: Re:New version of PCL From: "MAZIERE_TAURAN_CHRISTOPHE.CBVMANRXF"@Xerox.COM To: CommonLoops.PA@Xerox.COM Message-Id: <900212-002220-4945@Xerox> Hi, Would you please put the new version of PCL on {NB:PARC:XEROX} XNS server so we can access it via the Xerox Internet. We would like to use it on Medley. Thanks Christophe. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA15090; Mon, 12 Feb 90 08:49:53 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 12 FEB 90 08:25:34 PST Sender: "MAZIERE_TAURAN_CHRISTOPHE.CBVMANRXF"@Xerox.COM Date: 12 Feb 90 08:22:12 PST (Monday) Subject: Re:New version of PCL From: "MAZIERE_TAURAN_CHRISTOPHE.CBVMANRXF"@Xerox.COM To: CommonLoops.PA@Xerox.COM Message-Id: <900212-082534-5638@Xerox> Hi, Would you please put the new version of PCL on {NB:PARC:XEROX} XNS server so we can access it via the Xerox Internet. We would like to use it on Medley. Thanks Christophe. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA11339; Mon, 12 Feb 90 13:04:56 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 12 FEB 90 12:01:23 PST Date: Mon, 12 Feb 90 11:59 PST From: Gregor.pa@Xerox.COM Subject: ECOOP/OOPSLA'90 To: CommonLoops.PA@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest Message-Id: <19900212195901.7.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no CALL FOR PAPERS --- ECOOP/OOPSLA'90 Joint ACM OOPSLA/ECOOP'90 Conference on Object-Oriented Programming: Systems, Languages, and Applications 21-25 October 1990 The Westin & The Chateau Laurier Hotels, Ottawa, Canada Chaired by: D. Thomas (Carleton University) and P. Cointe (Rank Xerox France) Research and Experience papers are invited in the topics listed below and in closely related areas. Research papers should describe original work. Experience papers should present new insights into the nature and application of object-oriented programming. Theory User Interfaces Software Engineering Languages Implementation Tools and Environments Applications Concurrency Databases Papers will be selected on the basis of their originality, the significance of their contribution to the state of the art, and the quality of their presentation. Papers must be written in English and may not exceed 5000 words. Papers must be accompanied by a separate cover sheet giving the title, authors' names, affiliations, addresses (postal and electronic), telephone numbers, 100-word abstract, numbers of words in the paper, and a list of keywords. Authors must also indicate the topic areas of the paper and type of paper - research or experience. The title , abstract and type of paper will be used to distribute papers to appropriate reviewers and should accurately describe the contribution of the paper. All accepted papers will be published in the conference proceedings, and authors will be required to sign an ACM copyright release form. Late papers, papers that exceed 5000 words, and papers that are not accompanied with the requested cover sheet information will not be reviewed. Important Information for Authors: Papers Received by Program Chairman - March 1, 1990. Authors Notified of Acceptance - May 18, 1990. Camera Ready Papers - June 30, 1990. Proposals for Workshops, Panels, Tutorials and Demos - March 15, 1990. Submit six copies of papers accompanied with cover sheets to: Akinori Yonezawa, ECOOP/OOPSLA90 Program Chair Department of Information Science, Faculty of Science University of Tokyo, 7-3-1 Hongo, Bunkyo-ku Tokyo, 113 Japan In addition, authors are requested to send an electronic copy of separate cover sheets (NOT whole papers) to: oopsla90@u-tokyo.ac.jp The Program Committee includes: A. Yonezawa, Chair (Univ. of Tokyo) K. Beck (Apple) A. Borning (Univ. of Washington) L. Cardelli (Digital Equipment) S. Cook (Queen Mary College) J.-M. Hullot (NeXT) K. Kahn (Xerox) W. Lalonde (Carleton Univ.) H. Lieberman (MIT / Univ. of Paris) O. Madsen (Aarhus Univ.) A. Snyder (Hewlett Packard) L. Steels (Brussel Free Univ.) B. Stroustrup (AT\&T) D. Tsichritzis (Univ. of Geneva) M. Tokoro (Keio Univ.) J. White (Lucid) B. Barry (DREO) Roy Campbell (Univ. of Illinois) Francois Bancilhon (Altair) James Rumbaugh (General Electric) Requests for additional information can be submitted by fax: (613) 723-2087 answering machine: (613) 723-1495 ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA17674; Mon, 12 Feb 90 18:25:24 -0800 Received: from Cabernet.ms by ArpaGateway.ms ; 12 FEB 90 13:45:51 PST Return-Path: Redistributed: CommonLoops.pa Received: from cssun.albany.edu ([128.204.1.5]) by Xerox.COM ; 12 FEB 90 13:05:43 PST Received: from berry.ALBANY.EDU by cssun.albany.edu (5.61/SMI-3.2) id ; Mon, 12 Feb 90 16:04:11 -0500 Received: by berry.albany.edu (5.61/ALBANY_CS-1.1) id AA13073; Mon, 12 Feb 90 16:04:09 -0500 Date: Mon, 12 Feb 90 16:04:09 -0500 From: nie@cs.albany.edu Message-Id: <9002122104.AA13073@berry.albany.edu> To: CommonLoops.pa@Xerox.COM Subject: PCL Please add my name to the PCL mailing list. My e-mail address is nie@cs.albany.edu My U.S. postal address is Xumin Nie Institute of Programming and Logic Computer Science Department SUNY at Albany Albany, NY 12222 Thank you for your attention. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA19132; Mon, 12 Feb 90 19:22:38 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 12 FEB 90 14:25:27 PST Return-Path: Redistributed: commonloops.pa Received: from cheops.cis.ohio-state.edu ([128.146.8.62]) by Xerox.COM ; 12 FEB 90 13:55:32 PST Received: from aristotle.cis.ohio-state.edu by cheops.cis.ohio-state.edu (5.61-kk/4.891221) id AA21394; Mon, 12 Feb 90 16:55:28 -0500 Received: by aristotle.cis.ohio-state.edu (5.61/4.890524) id AA02136; Mon, 12 Feb 90 16:55:25 -0500 Date: Mon, 12 Feb 90 16:55:25 -0500 From: Arun Welch Message-Id: <9002122155.AA02136@aristotle.cis.ohio-state.edu> To: commonloops.pa@Xerox.COM Subject: Patches for Xerox lisp? The definition for do-standard-defsetf-1 for Xerox Lisp/Envos Medley in the file defs.lisp refers to the unbound variables NAME and SETF-METHOD-EXPANDER. Is there a correct version of this function? ...arun Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA19287; Mon, 12 Feb 90 19:28:37 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 12 FEB 90 13:37:17 PST Return-Path: <@CUNYVM.CUNY.EDU:BALL@YALEMED.BITNET> Redistributed: CommonLoops.pa Received: from CUNYVM.CUNY.EDU ([128.228.1.2]) by Xerox.COM ; 12 FEB 90 12:43:52 PST Received: from YALEMED.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP R1.2.2MX) with BSMTP id 5843; Mon, 12 Feb 90 15:42:27 EST Date: Mon, 12 Feb 90 15:44 EST From: Subject: add to mailing list To: CommonLoops.pa@Xerox.COM X-Original-To: CommonLoops.pa@Xerox.COM, BALL Message-Id: <900212-133717-1983@Xerox> Please add me to the PCL mailing list. Thank you. S. Ball Received: from MCC.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA12995; Tue, 13 Feb 90 10:11:47 -0800 Received: from STONY-BROOK.SCRC.Symbolics.COM by MCC.COM with TCP/SMTP; Tue 13 Feb 90 12:05:54-CST Received: from BOBOLINK.SCRC.Symbolics.COM by STONY-BROOK.SCRC.Symbolics.COM via CHAOS with CHAOS-MAIL id 742332; 13 Feb 90 13:02:06 EST Date: Tue, 13 Feb 90 13:02 EST From: Kent M Pitman Subject: generic-function, generic-flet, generic-labels To: Common-Lisp-Object-System@MCC.COM Cc: KMP@STONY-BROOK.SCRC.Symbolics.COM Message-Id: <19900213180207.7.KMP@BOBOLINK.SCRC.Symbolics.COM> Kim Barrett called me to ask about this. Does anyone remember why at the last meeting we decided it was `probably ok' to flush WITH-ADDED-METHODS, but it was not ok to flush GENERIC-FUNCTION, GENERIC-FLET, and GENERIC-LABELS. Who professes to be the champion of these last three. I couldn't find any record of this in my notes, so figured I'd ask you guys. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA19698; Tue, 13 Feb 90 13:10:49 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 13 FEB 90 10:48:18 PST Return-Path: Redistributed: commonloops.pa Received: from sunic.sunet.se ([192.36.125.2]) by Xerox.COM ; 13 FEB 90 10:44:09 PST Received: from majestix.ida.liu.se by sunic.sunet.se (5.61+IDA/KTH/LTH/1.115) id AAsunic10803; Tue, 13 Feb 90 19:43:53 +0100 Received: from LISBET.IDA.LIU.SE by majestix.ida.liu.se; Tue, 13 Feb 90 19:43:50 +0100 Date: Tue, 13 Feb 90 19:43:10 From: Henrik Eriksson Subject: Compiling 2/8/90 PCL beta on EnvOS Medley To: commonloops.pa@Xerox.COM Organization: Dept. of Comp. and Info. Sc., Linkoping University, Sweden Message-Id: <6T8VC4G.17.H-ERIKSSON@LISBET.IDA.LIU.SE> Here comes a set of patches which make 2/8/90 beta PCL compile on EnvOS Medley, at least on the 1186. Changes are marked with ****. I hope this won't introduce other problems. -- Henrik ;---------------- ;from cache.lisp (defun find-free-cache-line (primary field cache) (declare (values line empty?)) (with-local-cache-functions (cache) (let ((limit (funcall (limit-fn) (nlines))) (wrappedp nil)) (when (line-reserved-p primary) (setq primary (next-line primary))) (labels (;; ;; Try to find a free line starting at . ;; is the primary line of the entry we are finding a free ;; line for, it is used to compute the seperations. ;; (find-free (p s) (do* ((line s (next-line line)) (nsep (line-separation p s) (1+ nsep))) (()) (if (null (line-valid-p line)) ;If this line is empty or (return (values line t)) ;invalid, just use it. (let ((osep (line-separation (line-primary field line) line))) (if (and wrappedp (>= line primary)) ;; ;; have gone all the way around the cache, time to quit ;; (return (values line nil)) (when (cond ((or (= nsep limit)) t) ((= nsep osep) (zerop (random 2))) ((> nsep osep) t) (t nil)) ;; ;; Try to displace what is in this line so that we ;; can use the line. ;; ;; **** Due to a bug in the Medley compiler. (return (values line (displace line))))))) (if (= line (1- (nlines))) (setq wrappedp t)))) ;; ;; Given a line, attempt to free up that line by moving its ;; contents elsewhere. Returns nil when it wasn't possible to ;; move the contents of the line without dumping something on ;; the floor. ;; (displace (line) (if (= line (1- (nlines))) (setq wrappedp t)) (multiple-value-bind (dline dempty?) (find-free (line-primary field line) (next-line line)) (when dempty? (copy-line line dline) t)))) (find-free primary primary))))) ;---------------- ;from defs.lisp (defun do-standard-defsetf-1 (function-name) (unless (setfboundp function-name) (let* ((setf-function-name (get-setf-function-name function-name))) #+Genera (let ((fn #'(lambda (form) (lt::help-defsetf '(&rest accessor-args) '(new-value) function-name 'nil `(`(,',setf-function-name ,new-value .,accessor-args)) form)))) (setf (get function-name 'lt::setf-method) fn (get function-name 'lt::setf-method-internal) fn)) #+Lucid (lucid::set-simple-setf-method function-name #'(lambda (form new-value) (let* ((bindings (mapcar #'(lambda (x) `(,(gensym) ,x)) (cdr form))) (vars (mapcar #'car bindings))) ;; This may wrap spurious LET bindings around some form, ;; but the PQC compiler will unwrap then. `(LET (,.bindings) (,setf-function-name ,new-value . ,vars))))) #+kcl (let ((helper (gensym))) ;; ;; KCL's setf macro generates better code when setf methods are ;; defined by (defsetf x y) than when they are defined by the ;; long form of defsetf or by define-setf-method. ;; (setf (macro-function helper) #'(lambda (form env &aux (args (cdr form))) (declare (ignore env)) `(,setf-function-name ,(car (last args)) ,@(butlast args)))) (eval `(defsetf ,function-name ,helper))) ;; Due to wrong arguments: (this makes sense to me) ;; **** name -> function-name ;; **** expander-name -> setf-method-expander #+Xerox (flet ((setf-expander (body env) (declare (ignore env)) (let ((temps (mapcar #'(lambda (x) (declare (ignore x)) (gensym)) (cdr body))) (forms (cdr body)) (vars (list (gensym)))) (values temps forms vars `(,setf-function-name ,@vars ,@temps) `(,function-name ,@temps))))) (let ((setf-method-expander (intern (concatenate 'string (symbol-name function-name) "-setf-expander") (symbol-package function-name)))) (setf (get function-name :setf-method-expander) setf-method-expander (symbol-function setf-method-expander) #'setf-expander))) #-(or Genera Lucid kcl Xerox) (eval `(defsetf ,function-name (&rest accessor-args) (new-value) `(,',setf-function-name ,new-value ,@accessor-args))) ))) ;---------------- ;from fin.lisp (defvar *mattress-pad-code* (binary-assemble #+MC68000 '(#x2A6D #x11 #x246D #x1 #x4EEA #x5) #+SPARC (ecase (lucid::procedure-length #'lucid::false) (5 '(#xFA07 #x6012 #xDE07 #x7FFE #x81C3 #xFFFE #x100 #x0)) (8 `(#xFA07 #x601E #xDE07 #x7FFE #x81C3 #xFFFE #x100 #x0))) ;; **** Due to a bug in the Medley reader #+(and BSP (not LCL3.0)) ; **** '(#xCD33 #x11 #xCDA3 #x1 #xC19A #x5 #xE889) #+(and BSP LCL3.0) ; **** '(#x7733 #x7153 #xC155 #x5 #xE885) #+I386 '(#x87 #xD2 #x8B #x76 #xE #xFF #x66 #xFE) #+VAX '(#xD0 #xAC #x11 #x5C #xD0 #xAC #x1 #x57 #x17 #xA7 #x5) #+PA '(#x4891 #x3C #xE461 #x6530 #x48BF #x3FF9) #-(or MC68000 SPARC BSP I386 VAX PA) '(0 0 0 0))) ;---------------- ;from plap.lisp ; **** Due to misspelled function name (defun index-value->index (index-value) index-value) ;---------------- ;from pcl-env.lisp ; **** object -> standard-object (defmethod il:inspect/as/function ((name standard-object) stkp window) (when (il:menu (il:|create| il:menu il:items il:_ '(("Inspect" t "Inspect this object")))) (inspect name))) ------- Received: from MCC.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA19872; Tue, 13 Feb 90 13:20:18 -0800 Received: from SAIL.Stanford.EDU by MCC.COM with TCP/SMTP; Tue 13 Feb 90 15:08:36-CST Message-Id: Date: 13 Feb 90 1307 PST From: Dick Gabriel Subject: re: generic-function, generic-flet, generic-labels To: KMP@STONY-BROOK.SCRC.SYMBOLICS.COM, Common-Lisp-Object-System@MCC.COM [In reply to message from KMP@STONY-BROOK.SCRC.Symbolics.COM sent Tue, 13 Feb 90 13:02 EST.] I am the champion of them. I believe that for unimportant reasons their syntax was misdesigned, but I think they are very important. I wish we had a CLASS-LET as well. There is a tension between placing functionality in a language for the purposes of achieving environmental goals and demanding that the environment handle those goals. There is no need in CLOS for DEFMETHOD except to be able to display methods near the classes to which they apply. However, with multi-methods, one is forced to choose one of those classes, and maybe not all of them. An environment should let you look at these methods anyway you like. The real linguistic need is for constructs to build generic functions, which is what those three constructs do. Incremental redefinition can be handled by the environment or by ADD-METHOD, FIND-METHOD, and REMOVE-METHOD -rpg- Received: from MCC.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA04564; Wed, 14 Feb 90 13:26:56 -0800 Received: from SAIL.Stanford.EDU by MCC.COM with TCP/SMTP; Wed 14 Feb 90 15:20:13-CST Received: from STONY-BROOK.SCRC.Symbolics.COM by SAIL.Stanford.EDU with TCP; 14 Feb 90 13:19:18 PST Received: from KENNETH-WILLIAMS.SCRC.Symbolics.COM by STONY-BROOK.SCRC.Symbolics.COM via INTERNET with SMTP id 743424; 14 Feb 90 16:19:05 EST Date: Wed, 14 Feb 90 16:21 EST From: David A. Moon Subject: function-keywords meets &rest To: Gregor.pa@Xerox.COM Cc: Common-Lisp-Object-System@Sail.Stanford.edu In-Reply-To: <19900108183153.6.MOON@KENNETH-WILLIAMS.SCRC.Symbolics.COM> Message-Id: <19900214212148.9.MOON@KENNETH-WILLIAMS.SCRC.Symbolics.COM> Line-Fold: No Date: Mon, 8 Jan 90 13:31 EST From: David A. Moon Date: Sun, 7 Jan 90 16:17 PST From: Gregor.pa@Xerox.COM We may have already resolved this, but what happens when fucntion-keywords gets a method where the arglist has &rest. Is the second returned value T?? (A second returned value of T is documented as meaning the lambda-list specifies &allow-other-keys). I couldn't find any evidence of this issue having been raised before. The lambda-list congruency rules (Aug 29 1989 4:06 draft, p.4-19) don't treat &rest and &allow-other-keys the same. In rule 3 &rest without &key is the same as &allow-other-keys, but in rule 4 they are different. An implementation is not a specification, but in the Symbolics implementation of FUNCTION-KEYWORDS currently the second value is true if and only if (member '&allow-other-keys lambda-list) is true (provided that the lambda-list is syntactically valid). Unless there is a reason to change it, I would stick with the 88-002R language, which implies that the values are NIL NIL if the lambda-list does not contain &KEY, and that the values are not affected by the presence of &REST. After being confused about this myself last week, I've found another reason not to change it. The proposal was that FUNCTION-KEYWORDS of a method with &REST should do the same thing as FUNCTION-KEYWORDS of a method with &ALLOW-OTHER-KEYS. The problem is that &REST and &ALLOW-OTHER-KEYS do not actually mean the same thing in a method arglist. &ALLOW-OTHER-KEYS in a method arglist means that the generic function should accept any keywords whatsoever, but does not by itself make those keyword arguments visible to the method. &REST in a method arglist has no effect on what keywords are accepted by the generic function, but makes all the keyword arguments that were supplied visible to the method. Thus the two lambda-list-keywords are almost opposite in meaning. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA14400; Wed, 14 Feb 90 16:23:16 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 14 FEB 90 10:03:48 PST Return-Path: Redistributed: commonloops.PA Received: from uunet.uu.net ([192.48.96.2]) by Xerox.COM ; 14 FEB 90 09:41:04 PST Received: by uunet.uu.net (5.61/1.14) with UUCP id AA12234; Wed, 14 Feb 90 07:34:32 -0500 Received: by franz.Franz.COM (MC 2.0/FI-1.0) id AA17822; Tue, 13 Feb 90 17:28:06 PST Received: by fiona.Franz.COM (4.0/FI-1.0) id AA03687; Tue, 13 Feb 90 17:27:02 PST Date: Tue, 13 Feb 90 17:27:02 PST From: smh@franz.com (Steve Haflich) Message-Id: <9002140127.AA03687@fiona.Franz.COM> To: commonloops.PA@Xerox.COM Subject: bug with initialized class slots In (defvar *pcl-system-date* "2/8/90 A PCL for the 90's (beta 2)") grabbed from arisia on 12feb90: I believe there is a bug with class-allocated slots that have no specified initialization. In Allegro 3.1 the first of these defclass runs OK while the second blows up at DEFCLASS time: (defclass win () ((y :allocation :class :initform '123))) # (defclass lose () ((x :allocation :class))) Error: attempt to call `nil' which is an undefined function. [1c] :zo Evaluation stack: ->(cerror "prompt for a new function, instead of `~s'." "attempt to call `~s' which is an undefined function." ...) (pcl::|(method shared-initialize :after (std-class t))| # t ...) (pcl::a-combined-method # t ...) ((:internal # 0) # t ...) (pcl::|(method initialize-instance (standard-object))| # :name ...) ((:internal # 0) # :name ...) (pcl::|(method make-instance (std-class))| # :name ...) ((:internal # 0) # :name ...) ... more older frames ... I know of nothing in the spec that requires class slots to be initialized... Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA20646; Wed, 14 Feb 90 21:19:36 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 14 FEB 90 08:57:50 PST Return-Path: Redistributed: commonloops.pa Received: from att-in.att.com ([192.20.239.129]) by Xerox.COM ; 14 FEB 90 08:54:23 PST From: lgm@ihlpf.att.com Date: Wed, 14 Feb 90 09:39 CST >From: ihlpf!lgm (Lawrence G Mayka +1 708 713 5166) To: commonloops.pa@Xerox.COM Subject: Difficulty with lambda-list congruence, specifically &KEY Message-Id: <900214-085750-8227@Xerox> Our group is attempting to use CLOS to maintain plug-compatible, upward-compatible interfaces between the components of a large, complex, long-lived, evolving software system. We are having difficulty, however, with lambda-list congruence; specifically, with the requirement that If any lambda-list mentions &REST or &KEY, each lambda-list must mention one or both of them. This restriction means that if someone defines a method on a generic function FUNC to take, say, a single (required) argument, then no one else's later FUNC method can extend the FUNC interface to accept additional (keyword) arguments; at least, not without modifying the original FUNC method (which is not desirable from a methodological point of view). One (methodological) workaround is to dictate the inclusion of &KEY in the lambda-list of every method of every publicly advertised generic function. This, however, is not possible for automatically generated methods; in particular, slot accessors (including readers and writers) take only required arguments. Thus, either any publicly advertised generic function which counts a slot accessor as one of its methods must be billed as "nonextensible" in our terminology, or we must generate our own accessors via DEFMETHOD (and thereby lose the benefit of any accessor optimizations provided by the CLOS vendor). Presumably we could use the meta-object protocol to define the object system behavior we desire, but we're reluctant to take such a step just yet. Does anyone have any comments or ideas about our difficulty? Lawrence G. Mayka AT&T Bell Laboratories lgm@ihlpf.att.com Standard disclaimer. Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA20782; Wed, 14 Feb 90 21:23:49 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 14 FEB 90 09:15:24 PST Return-Path: <@CUNYVM.CUNY.EDU:SARTI@ICE622.GE.CNR.IT> Redistributed: CommonLoops.pa Received: from CUNYVM.CUNY.EDU ([128.228.1.2]) by Xerox.COM ; 14 FEB 90 09:03:42 PST Received: from ICNUCEVX.CNUCE.CNR.IT by CUNYVM.CUNY.EDU (IBM VM SMTP R1.2.2MX) with BSMTP id 3194; Wed, 14 Feb 90 12:02:18 EST Received: from ICE622 by ICNUCEVX.CNUCE.CNR.IT; Wed, 14 Feb 90 18:01 MET Date: Wed, 14 Feb 90 17:58 MET From: SARTI%ICE622.GE.CNR.IT@CUNYVM.CUNY.EDU Subject: bug report To: CommonLoops.pa@Xerox.COM Message-Id: X-Original-To: clos, SARTI X-Envelope-To: CommonLoops.pa@Xerox.com We discovered the following bug: shared slots need the :initform option to work. We have carefully followed all the instructions given in patch1.text and patch2.text. > (defclass foo () ((bar :allocation :class))) >>Error: NIL has no global function definition to funcall or apply PCL::|(METHOD SHARED-INITIALIZE :AFTER (STD-CLASS T))|: Required arg 0 (CLASS): # Required arg 1 (SLOT-NAMES): T Keyword arg 2 (DIRECT-SUPERCLASSES): ( ;;; You are using the compiler in development mode (compilation-speed = 3) ;;; Generation of full safety checking code is enabled (safety = 3) ;;; Optimization of tail calls is disabled (speed = 2) #) Keyword arg 3 (DIRECT-SLOTS): (#) Keyword arg 4 (DIRECT-DEFAULT-INITARGS): NIL :C 0: Supply a new function :A 1: Abort to Lisp Top Level -> :a Abort to Lisp Top Level Back to Lisp Top Level > (defclass foo1 () ((bar1 :initform () :allocation :class))) # ;;;;;;;;;;;;;;;;;;;;;;;;;;;; System: Apollo Domain/OS SR10.1 LISP: Lucid Common LISP 3.0 PCL: 2/8/90 (beta 2) Luigi Sarti,Maurizio De Michele Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA25481; Thu, 15 Feb 90 00:36:15 -0800 Received: from Cabernet.ms by ArpaGateway.ms ; 14 FEB 90 11:33:30 PST Return-Path: Redistributed: commonloops.pa Received: from uunet.uu.net ([192.48.96.2]) by Xerox.COM ; 14 FEB 90 11:32:24 PST Received: from fed.UUCP by uunet.uu.net (5.61/1.14) with UUCP id AA24100; Wed, 14 Feb 90 11:28:58 -0500 Received: from arcws9.FRB.GOV by fed.FRB.GOV (4.0/SMI-4.0) id AA26889; Tue, 13 Feb 90 16:02:28 EST Received: from localhost by arcws9.FRB.GOV (4.0/SMI-4.0) id AA00691; Tue, 13 Feb 90 16:03:05 EST Message-Id: <9002132103.AA00691@arcws9.FRB.GOV> To: CommonLoops.pa@Xerox.COM Cc: m1rih00%arcws9.uucp@uunet.UU.NET Subject: PCL and AKCL Date: Tue, 13 Feb 90 16:03:03 -0500 From: Ron I. Herman I'm having a problem trying to compile 5/22/89 PCL with AKCL(version 1.313). It's not able to compile std-class.lsp Does anyone help? Thanks, Ron Herman Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA05014; Thu, 15 Feb 90 10:58:55 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 15 FEB 90 10:55:38 PST Return-Path: Redistributed: commonloops.pa Received: from ames.arc.nasa.gov ([128.102.18.3]) by Xerox.COM ; 15 FEB 90 10:53:13 PST Received: by ames.arc.nasa.gov (5.61/1.2); Thu, 15 Feb 90 10:53:22 -0800 Received: from herald. by ntmtv.com (3.2/SMI-3.2) id AA18247; Thu, 15 Feb 90 10:05:59 PST Received: by herald. (4.0/SMI-4.0) id AA15784; Thu, 15 Feb 90 10:01:30 PST From: irvine%ntmtv.uucp@ames.arc.nasa.gov (Chuck Irvine) Message-Id: <9002151801.AA15784@herald.> Date: Thu, 15 Feb 90 09:53:33 PST Subject: coral patches To: commonloops.pa@Xerox.COM Would it be too much trouble for someone to post as mail the necessary patches to make the new version of pcl work with the new version of coral (apple) allegro common lisp? I don't know how much work this would entail; hopefully not too much. You see, alas, I don't have the capability to do anonymous FTP. Your efforts would be much appreciated! Chuck Irvine Northern Telecom Technology ntmtv!irvine@ames.arc.nasa.gov Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA12440; Thu, 15 Feb 90 15:55:25 -0800 Received: from Cabernet.ms by ArpaGateway.ms ; 15 FEB 90 12:07:58 PST Return-Path: Redistributed: CommonLoops.pa Received: from Aslan.RPAL.COM ([132.154.1.1]) by Xerox.COM ; 15 FEB 90 12:05:17 PST Received: from NIKABRIK.RPAL.Com by Aslan.RPAL.COM via CHAOS with CHAOS-MAIL id 31143; Thu 15-Feb-90 11:27:12 PST Date: Thu, 15 Feb 90 11:27 PST From: Philip L. Stubblefield Subject: Slot Definitions To: CommonLoops.pa@Xerox.COM Message-Id: <19900215192715.2.PHIL@NIKABRIK.RPAL.Com> At this point I'm trying to make some informed guesses about the CLOS metaobject kernel so that the code at our lab will require mininal modification when the final version comes out. Realizing that X3J13 hasn't yet agreed on everything [understatement of the day? :) ], and that PCL is not CLOS, I still have two questions regarding slot definition objects: 1) The most recent documentation I have is "The CLOS Metaobject Kernel: A Status Report" by Bobrow and Kiczales, April '88. According to this, the correct class precedence for slotds is: (standard-slot-definition slot-definition standard-object ...) "A PCL for the 90's" has switched to slot-description's instead of slot-definition's, and has further added a distinction between *direct* slotds (the abbreviation still works!), and *effective* slotds. Are these changes a harbinger of Things To Come? 2) In any case, the direct slotds reflect the slot definition given in the defclass form, while the effective slotds incorporate any additional information due to inheritance. Unfortunately for my needs, the effective slotds keep track of everything *but* the readers and writes defined for the slot? Is there a reason for this omission? It would seem simple to patch the function compute-effective-slot-definition-initargs (in "std-class.lisp") to add this information, but would that cause problems? Phil Stubblefield phil@rpal.com Rockwell Palo Alto Laboratory (415) 325-7165 Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA12475; Thu, 15 Feb 90 15:58:03 -0800 Received: from Cabernet.ms by ArpaGateway.ms ; 15 FEB 90 12:34:55 PST Return-Path: Redistributed: CommonLoops.pa Received: from life.ai.mit.edu ([128.52.32.80]) by Xerox.COM ; 15 FEB 90 12:28:19 PST Received: from zurich.ai.mit.edu ([18.43.0.157]) by life.ai.mit.edu (4.0/AI-4.10) id AA24491; Thu, 15 Feb 90 15:28:17 EST Received: from localhost by zurich.ai.mit.edu; Thu, 15 Feb 90 15:27:31 est Date: Thu, 15 Feb 90 15:27:31 est From: seth@zurich.ai.mit.edu (Seth Goldstein) Message-Id: <9002152027.AA02352@zurich.ai.mit.edu> To: CommonLoops.pa@Xerox.COM Subject: Please add me to list Thanks, Seth Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA12504; Thu, 15 Feb 90 15:59:48 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 15 FEB 90 12:46:57 PST Return-Path: Redistributed: commonloops.pa Received: from life.ai.mit.edu ([128.52.32.80]) by Xerox.COM ; 15 FEB 90 12:15:24 PST Received: from wheaties (wheaties.ai.mit.edu) by life.ai.mit.edu (4.0/AI-4.10) id AA24192; Thu, 15 Feb 90 15:15:21 EST From: gillett@ai.mit.edu (Walter E. Gillett) Received: by wheaties (4.0/AI-4.10) id AA02783; Thu, 15 Feb 90 15:15:16 EST Date: Thu, 15 Feb 90 15:15:16 EST Message-Id: <9002152015.AA02783@wheaties> To: her@ida.liu.se Cc: commonloops.pa@Xerox.COM In-Reply-To: Henrik Eriksson's message of Tue, 13 Feb 90 19:43:10 <6T8VC4G.17.H-ERIKSSON@LISBET.IDA.LIU.SE> Subject: Compiling 2/8/90 PCL beta on EnvOS Medley Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA17444; Thu, 15 Feb 90 19:39:20 -0800 Received: from Cabernet.ms by ArpaGateway.ms ; 15 FEB 90 19:33:38 PST Return-Path: Redistributed: commonloops.pa Received: from uunet.uu.net ([192.48.96.2]) by Xerox.COM ; 15 FEB 90 19:32:22 PST Received: by uunet.uu.net (5.61/1.14) with UUCP id AA07389; Thu, 15 Feb 90 17:33:23 -0500 Received: by franz.Franz.COM (MC 2.0/FI-1.0) id AA21072; Wed, 14 Feb 90 13:34:42 PST Received: by fiona.Franz.COM (4.0/FI-1.0) id AA05379; Wed, 14 Feb 90 13:33:33 PST Date: Wed, 14 Feb 90 13:33:33 PST From: smh@franz.com (Steve Haflich) Message-Id: <9002142133.AA05379@fiona.Franz.COM> To: commonloops.pa@Xerox.COM Subject: 90's PCL -- a very minor bug In defclass.lisp there is a space after the ~ at the end of the line, causing format to fail on the error message. (defun expand-defclass (name supers slots options) ... (when (eq (car option) ':metaclass) (unless (legal-class-name-p (cadr option)) (error "The value of the :metaclass option (~S) is not a~%~ legal class name." ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;HERE;;;;;;;;;;;;;;;;^ ... Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA17571; Thu, 15 Feb 90 19:57:45 -0800 Received: from Cabernet.ms by ArpaGateway.ms ; 15 FEB 90 19:52:52 PST Return-Path: Redistributed: commonloops.pa Received: from p.lanl.gov ([128.165.4.4]) by Xerox.COM ; 15 FEB 90 19:51:53 PST Received: by p.lanl.gov (5.54/1.14) id AA22105; Thu, 15 Feb 90 20:52:01 MST Received: by zaphod.lanl.gov.lanl.gov (4.0/SMI-4.0) id AA00655; Thu, 15 Feb 90 20:49:57 MST Date: Thu, 15 Feb 90 20:49:57 MST From: egdorf%zaphod@LANL.GOV (Skip Egdorf at Los Alamos National Laboratory) Message-Id: <9002160349.AA00655@zaphod.lanl.gov.lanl.gov> To: commonloops.pa@Xerox.COM Subject: 90's PCL on Lucid 4.0 With *pcl-system-date* "2/8/90 A PCL for the 90's (beta 2)" Sun 4/260 SunOS 4.0.3 Lucid Lisp / Sun Common Lisp 4.0 Alpha. One of the projects in my Division must use Sun Common Lisp 4.0 alpha as provided by Intellicorp for use with KEE. This system uses both CLOS and KEE. After loading "defsys.lisp" a (compile-pcl) gives the following: > (pcl::compile-pcl) Loading binary of PKG... Loading binary of WALK... Loading binary of ITERATE... Loading binary of MACROS... Loading binary of LOW... Loading binary of LUCID-LOW... ;;; Warning: %POINTER is being imported from the LUCID package into ;;; the "PCL" package, but it isn't external in LUCID. ;;; Warning: DEFSTRUCT-SIMPLE-PREDICATE is being imported from the LUCID package into ;;; the "PCL" package, but it isn't external in LUCID. ;;; Warning: ARGLIST is being imported from the LUCID package into ;;; the "PCL" package, but it isn't external in LUCID. ;;; Warning: NAMED-LAMBDA is being imported from the LUCID package into ;;; the "PCL" package, but it isn't external in LUCID. ;;; Warning: *PRINT-STRUCTURE* is being imported from the LUCID package into ;;; the "PCL" package, but it isn't external in LUCID. ;;; Warning: NEW-STRUCTURE is being imported from the LUCID package into ;;; the "PCL" package, but it isn't external in LUCID. ;;; Warning: STRUCTURE-REF is being imported from the LUCID package into ;;; the "PCL" package, but it isn't external in LUCID. ;;; Warning: PROCEDUREP is being imported from the LUCID package into ;;; the "PCL" package, but it isn't external in LUCID. ;;; Warning: PROCEDURE-SYMBOL is being imported from the LUCID package into ;;; the "PCL" package, but it isn't external in LUCID. ;;; Warning: PROCEDURE-REF is being imported from the LUCID package into ;;; the "PCL" package, but it isn't external in LUCID. ;;; Warning: SET-PROCEDURE-REF is being imported from the LUCID package into ;;; the "PCL" package, but it isn't external in LUCID. Loading binary of FIN... Loading binary of DEFCLASS... Loading binary of DEFS... Loading binary of FNGEN... Loading binary of LAP... Loading binary of PLAP... Loading binary of CACHE... Loading binary of DLAP... Loading binary of BOOT... Loading binary of VECTOR... Loading binary of SLOTS... Loading binary of INIT... Loading binary of STD-CLASS... Loading binary of CPL... Loading binary of BRAID... >>Error: (:INTERNAL FIND-FREE-CACHE-LINE LINE-RESERVED-P) called with 2 arguments, but only 1 argument is allowed (:INTERNAL FIND-FREE-CACHE-LINE LINE-RESERVED-P): Required arg 0 (LINE): -33655826 :C 0: Ignore extra arguments :A 1: Abort to Lisp Top Level -> As this PCL compiles and loads correctly on our Sun Common Lisp (Lucid) 3.0 systems, and before attempting to find the differences with the little that Intellicorp has provided us, has anyone else attempted to use this PCL with Lucid's 4.0? Any hints? Skip Egdorf hwe@lanl.gov Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA17646; Thu, 15 Feb 90 20:07:14 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 15 FEB 90 20:06:55 PST Return-Path: Redistributed: commonloops.pa Received: from uunet.uu.net ([192.48.96.2]) by Xerox.COM ; 15 FEB 90 20:05:13 PST Received: from fed.UUCP by uunet.uu.net (5.61/1.14) with UUCP id AA06648; Thu, 15 Feb 90 19:03:42 -0500 Received: from arcws9.FRB.GOV by fed.FRB.GOV (4.0/SMI-4.0) id AA04321; Thu, 15 Feb 90 12:23:15 EST Received: from localhost by arcws9.FRB.GOV (4.0/SMI-4.0) id AA23855; Thu, 15 Feb 90 12:23:54 EST Message-Id: <9002151723.AA23855@arcws9.FRB.GOV> To: commonloops.pa%xerox.com%uunet.uucp@uunet.UU.NET Cc: m1rih00%arcws9.uucp@uunet.UU.NET Subject: PCL and AKCL Date: Thu, 15 Feb 90 12:23:52 -0500 From: Ron I. Herman I'm having trouble trying to compile 5/22/89 PCL with AKCL(version 1.313). It fails to compile std-class.lsp. Can anyone help? Thanks, Ron Herman Federal Reserve Board Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA09087; Fri, 16 Feb 90 13:57:26 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 16 FEB 90 09:17:28 PST Return-Path: <@NSFNET-RELAY.AC.UK,@ai.leeds.ac.uk:REEDER@kebc.icl.stc.co.uk> Redistributed: commonloops.pa Received: from RELAY.CS.NET ([192.31.103.4]) by Xerox.COM ; 16 FEB 90 09:14:48 PST Received: from nsfnet-relay.ac.uk by RELAY.CS.NET id aa14988; 16 Feb 90 11:14 EST Received: from sun.nsfnet-relay.ac.uk by vax.NSFnet-Relay.AC.UK via Janet with NIFTP id aa23394; 16 Feb 90 16:13 GMT Via: kebc.icl.stc.co.uk (ss0.ARPA); Fri, 16 Feb 90 11:46:19 GMT Received: from sparc4.kebc.icl.stc.co.uk by kebc.icl.stc.co.uk; Fri, 16 Feb 90 11:39:28 GMT From: REEDER%kebc.icl.stc.co.uk@NSFNET-RELAY.AC.UK Date: Fri, 16 Feb 90 11:44:03 GMT Message-Id: <6650.9002161144@sparc4.kebc.icl.stc.co.uk> To: "commonloops.pa" Subject: Re: Difficulty with lambda-list congruence... Cc: mwr%kebc.icl.stc.co.uk@NSFNET-RELAY.AC.UK Recent Experience ================= Our Esprit project (just) survived with an *old* version of PCL and Lucid until last December - we didn't have the resources to keep every new PCL/CLUE/CL in-step & debug them. Just recently we have been evaluating Harlequin's Lispworks environment with integrated (strict) CLOS... Congruence hadn't been a problem before!! ...so we re-read the 'manual' and discovered the "true way". Coming from a Loops background, we just "sort of made these methods". There being *NO "global"* limitations other than that the call corresponded to the actual "method". Indeed, after some mid-project restructuring of classes, we had actually EXPLOITED the ability to re-use a method name with different arguments on a new class as follows: OLD>> (defclass tool () (...) ) (setq ti (make-instance 'tool...)) (defclass manager () (...) ) (setq mi (make-instance 'manager...)) (defmethod close ((man manager)(tool-inst tool) l)...) (close (manager ti) ti '(1 2 3)) NEW>> (defclass tool () ((mgr :accessor manager) ) (setq ti (make-instance 'tool...)) (defclass manager () (...) ) (setq mi (make-instance 'manager...)) (defmethod close ((man manager)(tool-inst tool) l)...) (defmethod CLOSE ((self tool) l)...(close (manager ti) self l) ) (close ti '(6 7 8)) ========>> which is NON-CONGRUENT on the GENERIC function CLOSE =====>> i.e. "illegal". *BUT* we didn't have to be thorough in finding the (OLD) calls of the form (close (manager ti) ti '(1 2 3)) as they would STILL WORK! This was a substantial consideration when a review was imminent. OK, we've now made the names different and it wasn't that hard when the various component files had stabilized. I had an illusion shattered - i.e. that an advantage of CLOS (over (say) LOOPS ) was that "methods" were selected on the combination of method name & arguments. My over-interpretation was arose from just considering the leading arguments (typically objects) and forgetting implementation problems such as &optional parameters. So, I was forced to think again about the relationship between the Generic function approach and the LOOPS-like class + methods approach. (Ignoring any "package"-smarts...) What seems to have been LOST by divorcing method-interface-definition from class-definition (& thus having this congruence requirement ) is the ability to define classes and associated methods INDEPENDENTLY. So, inevitably, there will be problems when combining modules into a large system because the same method name has been re-used... USER 5 > (in-package 'a :use '(CLOS LISP)) # A 6 > (defclass z () (zz)) # A 7 > (defmethod grr((s z) p) 42) # A 8 > (defclass w () (ww)) # A 9 > (defmethod grr((s w)) 69) Error: Inconsistent ordering #, (S),(0 1) 1 (abort) return to top loop level 0. Type :c followed by a number to proceed A 10 : 1 > Which makes me very sad. ...and so, Lawrence G. Mayka you have my sympathy w.r.t. &REST &KEY etc maintenance and I eagerly await to read any ensuing e-mail in this regard. Mark Reeder, ICL Future Systems, Manchester M3 2NL Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA09308; Fri, 16 Feb 90 14:01:34 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 16 FEB 90 11:00:50 PST Date: Fri, 16 Feb 90 10:57 PST From: Gregor.pa@Xerox.COM Subject: Re: bug with initialized class slots To: Steve Haflich Cc: commonloops.PA@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest In-Reply-To: <9002140127.AA03687@fiona.Franz.COM> Message-Id: <19900216185755.3.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no Date: Tue, 13 Feb 90 17:27:02 PST From: smh@Franz.COM (Steve Haflich) In (defvar *pcl-system-date* "2/8/90 A PCL for the 90's (beta 2)") I believe there is a bug with class-allocated slots that have no specified initialization. In Allegro 3.1 the first of these defclass runs OK while the second blows up at DEFCLASS time: Many people have complained about this bug. I am about to put out a new set of sources which fixes this and several other bugs, but the following fixes just this bug. ;from std-class.lisp (defmethod shared-initialize :after ((class std-class) slot-names &key direct-superclasses direct-slots direct-default-initargs) (declare (ignore slot-names)) (when (null direct-superclasses) (setq direct-superclasses (list *the-class-standard-object*))) (setq direct-slots (mapcar #'(lambda (pl) (make-direct-slotd class pl)) direct-slots)) (setf (slot-value class 'direct-superclasses) direct-superclasses (slot-value class 'direct-slots) direct-slots) (setf (plist-value class 'direct-default-initargs) direct-default-initargs) (setf (plist-value class 'class-slot-cells) (gathering1 (collecting) (dolist (dslotd direct-slots) (when (eq (slotd-allocation dslotd) class) (let ((initfunction (slotd-initfunction dslotd))) (gather1 (cons (slotd-name dslotd) (if initfunction (funcall initfunction) *slot-unbound*)))))))) (add-direct-subclasses class direct-superclasses) (add-slot-accessors class direct-slots)) ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA09840; Fri, 16 Feb 90 14:24:49 -0800 Received: from Salvador.ms by ArpaGateway.ms ; 16 FEB 90 09:15:19 PST Return-Path: Redistributed: commonloops.pa Received: from lucid.com ([192.26.25.1]) by Xerox.COM ; 16 FEB 90 08:53:35 PST Received: from kent-state ([192.31.212.24]) by heavens-gate.lucid.com id AA23573g; Fri, 16 Feb 90 08:53:05 PST Received: by kent-state id AA00234g; Fri, 16 Feb 90 08:47:41 PST Date: Fri, 16 Feb 90 08:47:41 PST From: Jon L White Message-Id: <9002161647.AA00234@kent-state> To: egdorf%zaphod@LANL.GOV Cc: commonloops.pa@Xerox.COM In-Reply-To: egdorf%zaphod@LANL.GOV (Skip Egdorf's message of Thu, 15 Feb 90 20:49:57 MST <9002160349.AA00655@zaphod.lanl.gov.lanl.gov> Subject: 90's PCL on Lucid 4.0 I've compiled and run the most recent PCL without incident here at Lucid, using the 4.0 "Beta" version. First, you should check to see that you have all the PCL bug patches that came out just after the "for the 90's" release. If that doesn't fix it, then perhaps you should just abandon the "Alpha" 4.0, and push as fast as possible into the "Beta". -- JonL -- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA11785; Fri, 16 Feb 90 16:15:50 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 16 FEB 90 16:08:56 PST Date: Fri, 16 Feb 90 16:06 PST From: Gregor.pa@Xerox.COM Subject: new version of PCL To: CommonLoops.pa@Xerox.COM Fcc: BD:>Gregor>mail>outgoing-mail-8.text.newest Message-Id: <19900217000637.5.GREGOR@SPIFF.parc.xerox.com> Line-Fold: no There is a new version of PCL on arisia.xerox.com. (for PARC users it is in ~gregor/pcl) The *pcl-system-date* for this version is "2/16/90 Rainy Day PCL (beta 3)". This version fixes all the bugs reported in the past week including: eql methods :class slots :documentation option congruence checking It does not fix a bug where a generic function with a large number of EQL methods can create functions which exceed lambda-paramters-limit. With this version, we begin a new mode of distributing PCL. Specifically, the /pcl directory now contains a single tarfile which contains all of the sources for this release. To get this version of PCL, you should copy this single file (it is called tarfile). Once you have copied the file, you can use the Unix `tar' progam to extract each of the individual source files. Do this by saying: tar -xf tarfile * where `tarfile' is the name you have given the tarfile in your directory. One advantage of this is that people who do not have FTP access to arisia can now use the BITFTP server at Princeton to get access to the PCL sources. Following are the directions from get-pcl.text. Please let me know if there are problems with these directions. *** Using the BITFTP server at Princeton *** For people who can't FTP from Internet (Arpanet) hosts, but who have mail access to the BITNET, there exists a way to get the PCL files using the BITFTP service provided by Princeton Univerity. If you know exactly where to find the files that interest you, this is quite easy. In particular, you have to know: * the Internet host name of the host that maintains the files (such as `arisia.Xerox.COM') * the directory where to find the files, relative to the root of the FTP tree (i.E. `pub') * whether the files are binary or ASCII text. * the names of the files (say `pcl90.tar.Z' and `pcl90.README') To do this, send a message to BITFTP@PUCC (or BITFTP@PUCC.BITNET if you aren't on BITNET itself). The subject line of the message will be ignored. The text (body) of the message should be: FTP arisia.xerox.com UUENCODE CD pub CD pcl BINARY GET tarfile QUIT Then you wait (probably for about a day when you are in Europe) and eventually you will receive E-Mail messages from BITFTP@PUCC (or BITFTP2%PUCC...) with subject lines like `uudecoded file tarfile part 13'. Then you have to carefully concatenate the contents of ALL of these files in the correct order. Note: The following works on our Suns and should work on any Berkeley UNIX machine. If you don't have the `compress' or `zcat' program, you can get a free version (with MIT's X Window System distribution, for example). The resulting file can be `uudecode'd like this: dagobert% uudecode name-of-the-assembled-file This will give you a file tarfile.Z (it may actually have a different name; then you may want to rename it in the first place). The `.Z' at the end means that the file you now have is compressed. You can uncompress it with `uncompress tarfile. You can untar the uncompressed file with `tar xvf tarfile. This will write all files in the tarfile to the current directory. If you want to know more about the BITFTP service, send a letter to `BITFTP@PUCC' that contains the single line `HELP'. ------- Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA03864; Sat, 17 Feb 90 14:30:55 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 17 FEB 90 14:26:31 PST Return-Path: Redistributed: CommonLoops.PA Received: from boulder.Colorado.EDU ([128.138.238.18]) by Xerox.COM ; 17 FEB 90 14:02:11 PST Return-Path: Received: by boulder.Colorado.EDU (cu-hub.890824) Received: by newsigi.colorado.edu (cu.generic.890828) From: Andreas Girgensohn Message-Id: <9002172202.AA16426@newsigi.colorado.edu> Subject: Mike Thome's Enhancement for Genera To: CommonLoops.PA@Xerox.COM (PCL Mailing List) Date: Sat, 17 Feb 90 15:02:07 MDT X-Mailer: ELM [version 2.2 PL0] I would really like it if Mike Thome's enhancement for Genera (posted 2/10/90) could become part of the PCL distribution. It is really annoying to see all these #:TOP-LEVEL-FORMnnnn in a backtrace. The enhancement still works for the new PCL version. Andreas Girgensohn andreasg@boulder.colorado.edu Received: from Xerox.COM by arisia.Xerox.COM with SMTP (5.61+/IDA-1.2.8/gandalf) id AA06329; Tue, 20 Feb 90 02:23:32 -0800 Received: from Semillon.ms by ArpaGateway.ms ; 20 FEB 90 02:15:06 PST Return-Path: Redistributed: commonloops.PA Received: from Warbucks.AI.SRI.COM ([128.18.3.1]) by Xerox.COM ; 20 FEB 90 02:05:01 PST Received: from sunset.ai.sri.com by Warbucks.AI.SRI.COM with INTERNET ; Tue, 20 Feb 90 02:04:13 PST Received: from cam.sri.com by sunset.ai.sri.com (4.1/4.16) id AA02005 for commonloops@xerox.com; Tue, 20 Feb 90 02:05:09 PST Received: from chepstow.cam.sri.com by cam.sri.com (4.1/4.16) id AA29388 for cl-bugs@franz.com; Tue, 20 Feb 90 10:04:23 GMT Received: by chepstow.cam.sri.com (4.1/4.16) id AA01226 for commonloops@xerox.com; Tue, 20 Feb 90 10:04:20 GMT Date: Tue, 20 Feb 90 10:04:20 GMT From: smith%cam.sri.com@Warbucks.AI.SRI.COM (Arnold Smith) Message-Id: <9002201004.AA01226@chepstow.cam.sri.com> To: cl-bugs@franz.com Subject: Allegro-tailored PCL Cc: smith%cam.sri.com@Warbucks.AI.SRI.COM, commonloops.PA@Xerox.COM As Franz has been in the habit of tailoring the released versions of PCL to Allegro (particularly with regard to case-sensitivity, I think), will there in due course be a directory from which we Allegro users can ftp the new version of PCL with the Franz mods already installed?