Allocate symbols into permgen if enabled
[sbcl.git] / src / code / early-full-eval.lisp
blobe24f06c23f0c0f678f679639d3d84e98de574a3b
1 ;;;; An interpreting EVAL
3 ;;;; This software is part of the SBCL system. See the README file for
4 ;;;; more information.
5 ;;;;
6 ;;;; This software is derived from the CMU CL system, which was
7 ;;;; written at Carnegie Mellon University and released into the
8 ;;;; public domain. The software is in the public domain and is
9 ;;;; provided with absolutely no warranty. See the COPYING and CREDITS
10 ;;;; files for more information.
12 (in-package "SB-EVAL")
14 ;; !defstruct-with-alternate-metaclass is unslammable and the
15 ;; RECOMPILE restart doesn't work on it. This is the main reason why
16 ;; this stuff is split out into its own file. Also, it lets the
17 ;; INTERPRETED-FUNCTION type be declared before it is used in
18 ;; compiler/main and code/deftypes-for-target.
19 #-sb-xc-host
20 (sb-kernel:!defstruct-with-alternate-metaclass
21 interpreted-function
22 ;; DEBUG-NAME and DEBUG-LAMBDA-LIST are initially a copies of the proper
23 ;; ones, but is analogous to SIMPLE-FUN-NAME and ARGLIST in the sense that it
24 ;; is they are there only for debugging, and do not affect behaviour of the
25 ;; function -- so DEFMACRO can set them to more informative values.
26 :slot-names (name debug-name lambda-list debug-lambda-list env
27 declarations documentation body source-location)
28 :constructor %make-interpreted-function
29 :superclass-name function
30 :metaclass-name static-classoid
31 :metaclass-constructor make-static-classoid
32 :dd-type funcallable-structure)