From cbbc532331449d71edf5d52a7b94a5507958b01e Mon Sep 17 00:00:00 2001
From: wlott <wlott>
Date: Thu, 12 Mar 1992 15:23:20 +0000
Subject: [PATCH] Added FDEFN object, and removed raw-function-address and
 setf-function from symbols.

---
 compiler/generic/objdef.lisp | 34 +++++++++++++++++++++-------------
 1 file changed, 21 insertions(+), 13 deletions(-)

diff --git a/compiler/generic/objdef.lisp b/compiler/generic/objdef.lisp
index acd1e9340..ba3e1557c 100644
--- a/compiler/generic/objdef.lisp
+++ b/compiler/generic/objdef.lisp
@@ -7,11 +7,11 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/objdef.lisp,v 1.16 1992/02/26 00:56:53 wlott Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/objdef.lisp,v 1.17 1992/03/12 15:23:20 wlott Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
-;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/objdef.lisp,v 1.16 1992/02/26 00:56:53 wlott Exp $
+;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/objdef.lisp,v 1.17 1992/03/12 15:23:20 wlott Exp $
 ;;;
 ;;; This file contains the machine independent aspects of the object
 ;;; representation.
@@ -39,7 +39,7 @@
 	  value-cell-header-type symbol-header-type base-char-type
 	  sap-type unbound-marker-type weak-pointer-type
 	  structure-header-type funcallable-instance-header-type
-	  vector-normal-subtype
+	  fdefn-type vector-normal-subtype
 	  vector-valid-hashing-subtype vector-must-rehash-subtype
 	  primitive-object primitive-object-p
 	  primitive-object-name primitive-object-header
@@ -141,8 +141,8 @@
   sap
   unbound-marker
   weak-pointer
-  structure-header)
-
+  structure-header
+  fdefn)
 
 ;;; The different vector subtypes.
 ;;; 
@@ -357,6 +357,12 @@
   (trace-table-offset)
   (constants :rest-p t))
 
+(define-primitive-object (fdefn :lowtag other-pointer-type
+				:header fdefn-type)
+  (name :ref-trans fdefn-name)
+  (function :ref-trans fdefn-function)
+  (raw-addr :c-type "char *"))
+
 (define-primitive-object (function-header :lowtag function-pointer-type
 					  :header function-header-type)
   (self :ref-vop c::function-self :set-vop c::set-function-self)
@@ -411,19 +417,21 @@
 	 :init :arg))
 
 (define-primitive-object (symbol :lowtag other-pointer-type
-				 :header symbol-header-type)
+				 :header symbol-header-type
+				 :alloc-trans make-symbol)
   (value :set-trans %set-symbol-value
-	 :setf-vop set)
-  (function)
-  (raw-function-addr :c-type "char *")
-  (setf-function)
+	 :setf-vop set
+	 :init :arg)
+  unused
   (plist :ref-trans symbol-plist
 	 :setf-vop %set-symbol-plist
-	 :set-trans %set-symbol-plist)
-  (name :ref-trans symbol-name)
+	 :set-trans %set-symbol-plist
+	 :init :null)
+  (name :ref-trans symbol-name :init :null)
   (package :ref-trans symbol-package
 	   :setf-vop %set-symbol-package
-	   :set-trans %set-symbol-package))
+	   :set-trans %set-symbol-package
+	   :init :null))
 
 (define-primitive-object (sap :lowtag other-pointer-type
 			      :header sap-type)
-- 
GitLab