From 9ce21b91f95674309fa7f8352abeb33935f465b3 Mon Sep 17 00:00:00 2001
From: pw <pw>
Date: Sat, 22 Sep 2001 13:57:42 +0000
Subject: [PATCH] This revision turns on INFORM-TYPE-SYSTEM-ABOUT-STD-CLASS
 which represses compiler warnings about undefined class when compiling
 defmethods in the same file as the defclass forms. It does this by calling
 (lisp:make-class :name class-name) which creates a minimal entry such that
 lisp:find-class will return non-nil. The class entry is filled out at load
 time. A consequence of this is that until load time, any attempt to treat
 that minimal class as valid will fail, probably because lisp:class-layout =>
 NIL. This doesn't seem a problem in current practice.

---
 pcl/defs.lisp | 3 +--
 pcl/low.lisp  | 5 ++++-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/pcl/defs.lisp b/pcl/defs.lisp
index e738353b8..80394262f 100644
--- a/pcl/defs.lisp
+++ b/pcl/defs.lisp
@@ -1,4 +1,4 @@
-;;;-*-Mode:LISP; Package:(PCL LISP 1000); Base:10; Syntax:Common-lisp -*-
+;;;-*-Mode:LISP; Package:PCL  -*-
 ;;;
 ;;; *************************************************************************
 ;;; Copyright (c) 1985, 1986, 1987, 1988, 1989, 1990 Xerox Corporation.
@@ -192,7 +192,6 @@
   ;; skeleton class will be replaced at load-time with the correct object.
   ;; Earlier revisions (<= 1.17) of this function were essentially NOOPs.
   (declare (ignorable name))
-  #+nil ;; This is causing problems with native compile of defcombin.lisp
   (when (and (eq *boot-state* 'complete)
 	     (null (lisp:find-class name nil)))
     (setf (lisp:find-class name)
diff --git a/pcl/low.lisp b/pcl/low.lisp
index 077ba46ab..425955643 100644
--- a/pcl/low.lisp
+++ b/pcl/low.lisp
@@ -26,7 +26,7 @@
 ;;;
 
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/low.lisp,v 1.14 2001/04/17 17:30:14 pw Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/low.lisp,v 1.15 2001/09/22 13:57:42 pw Exp $")
 
 ;;; 
 ;;; This file contains optimized low-level constructs for PCL.
@@ -332,6 +332,9 @@ the compiler as completely as possible.  Currently this means that
   (and (symbolp type)
        (let ((class  (lisp:find-class type nil)))
 	 (and class
+	      ;; class may not be complete if created by
+	      ;; inform-type-system-aboutd-std-class
+	      (kernel:class-layout class)
 	      (typep (kernel:layout-info (kernel:class-layout class))
 		     'kernel:defstruct-description)))))
 
-- 
GitLab