1 /*
2  * list of all objects known to the C-program ("program-constants")
3  * Bruno Haible 1990-2005, 2009, 2017-2018
4  * Sam Steingold 1998-2011, 2017
5  * German comments translated into English: Stefan Kain 2002-02-20
6 
7  The symbols are already treated specially in CONSTSYM.
8  A table of all other objects known to the C-program is maintained here.
9 
10  The macro LISPOBJ declares a LISP object.
11  LISPOBJ(name,initstring)
12  > name: object is addressable as object_tab.name or as O(name)
13  > initstring: initialization-string in LISP syntax */
14 
15 /* expander for the declaration of the object-table: */
16 #define LISPOBJ_A(name,initstring)              \
17     gcv_object_t name;
18 
19 /* expander for the initialization of the object-table: */
20 #define LISPOBJ_B(name,initstring)              \
21     NIL,
22 #define LISPOBJ_C(name,initstring)              \
23     initstring,
24 
25 /* Which expander is used, must be configured by the main file.
26 
27  The macro LISPOBJ_S declares a LISP string.
28  > name: object is addressable as object_tab.name or as O(name)
29  > initstring: initialization-string in C-syntax, may not contain
30                backslashes */
31 #define LISPOBJ_S(name,initstring)              \
32     LISPOBJ(name,"\"" initstring "\"")
33 
34 /* for SPVW.D:
35    chained list of all active weak-pointers: */
36   LISPOBJ(all_weakpointers,"0")
37   /* list of all finalizers: */
38   LISPOBJ(all_finalizers,"0")
39   /* During GC: the list of finalizers to be processed after the GC: */
40   LISPOBJ(pending_finalizers,"0")
41 /* for ENCODING.D:
42    Encodings for which both the charset and the line-terminator matter:
43    The default encoding for file streams, pipe streams, socket streams. */
44   LISPOBJ(default_file_encoding,".")
45   /* The encoding of the terminal stream. */
46   LISPOBJ(terminal_encoding,".")
47   /* Encodings for which only the charset matters: */
48   #ifdef ENABLE_UNICODE
49     /* The encoding of the C strings compiled into the executable. */
50     LISPOBJ(internal_encoding,".")
51     /* The encoding of pathnames on the file system. */
52     LISPOBJ(pathname_encoding,".")
53     #if defined(HAVE_FFI)
54       /* The encoding of strings passed through the FFI. */
55       LISPOBJ(foreign_encoding,".")
56       /* The encoding of characters passed through the FFI.
57        Must be 1:1, i.e. one of the nls_* encodings. */
58       LISPOBJ(foreign_8bit_encoding,".")
59     #endif
60     /* The encoding for everything else (environment variables, command-line
61      options etc.) */
62     LISPOBJ(misc_encoding,".")
63   #endif
64   LISPOBJ(type_line_terminator,"(MEMBER :DEFAULT :UNIX :MAC :DOS)")
65   LISPOBJ(type_input_error_action,"(OR (MEMBER :ERROR :IGNORE) CHARACTER)")
66   LISPOBJ(type_output_error_action,"(OR (MEMBER :ERROR :IGNORE) CHARACTER (UNSIGNED-BYTE 8))")
67 /* for CHARSTRG.D:
68    On change of character-names except of CONSTOBJ.D, also
69    readjust CHARSTRG.D, FORMAT.LISP, IMPNOTES.HTML! */
70   #ifdef WIN32_CHARNAMES
71     /* names of characters with codes 0,7,...,13,26,27,32,8,10: */
72     LISPOBJ(charname_0,"\"Null\"")
73     LISPOBJ(charname_7,"\"Bell\"")
74     LISPOBJ(charname_8,"\"Backspace\"")
75     LISPOBJ(charname_9,"\"Tab\"")
76     LISPOBJ(charname_10,"\"Newline\"")
77     LISPOBJ(charname_11,"\"Code11\"")
78     LISPOBJ(charname_12,"\"Page\"")
79     LISPOBJ(charname_13,"\"Return\"")
80     LISPOBJ(charname_26,"\"Code26\"")
81     LISPOBJ(charname_27,"\"Escape\"")
82     LISPOBJ(charname_32,"\"Space\"")
83     LISPOBJ(charname_127,"\"Rubout\"")
84     LISPOBJ(charname_10_1,"\"Linefeed\"")
85     LISPOBJ(charname_27_1,"\"Esc\"")
86   #endif
87   #ifdef UNIX_CHARNAMES
88     LISPOBJ(charname_0_1,"\"Null\"")
89     LISPOBJ(charname_7_1,"\"Bell\"")
90     LISPOBJ(charname_8_1,"\"Backspace\"")
91     LISPOBJ(charname_9_1,"\"Tab\"")
92     LISPOBJ(charname_10_1,"\"Newline\"")
93     LISPOBJ(charname_10_2,"\"Linefeed\"")
94     LISPOBJ(charname_10_3,"\"Lf\"")
95     LISPOBJ(charname_12_1,"\"Page\"")
96     LISPOBJ(charname_12_2,"\"Ff\"")
97     LISPOBJ(charname_13_1,"\"Return\"")
98     LISPOBJ(charname_27_1,"\"Escape\"")
99     LISPOBJ(charname_32_1,"\"Space\"")
100     LISPOBJ(charname_127_1,"\"Rubout\"")
101     LISPOBJ(charname_127_2,"\"Delete\"")
102     LISPOBJ(charname_0,"\"Nul\"")
103     LISPOBJ(charname_1,"\"Soh\"")
104     LISPOBJ(charname_2,"\"Stx\"")
105     LISPOBJ(charname_3,"\"Etx\"")
106     LISPOBJ(charname_4,"\"Eot\"")
107     LISPOBJ(charname_5,"\"Enq\"")
108     LISPOBJ(charname_6,"\"Ack\"")
109     LISPOBJ(charname_7,"\"Bel\"")
110     LISPOBJ(charname_8,"\"Bs\"")
111     LISPOBJ(charname_9,"\"Ht\"")
112     LISPOBJ(charname_10,"\"Nl\"")
113     LISPOBJ(charname_11,"\"Vt\"")
114     LISPOBJ(charname_12,"\"Np\"")
115     LISPOBJ(charname_13,"\"Cr\"")
116     LISPOBJ(charname_14,"\"So\"")
117     LISPOBJ(charname_15,"\"Si\"")
118     LISPOBJ(charname_16,"\"Dle\"")
119     LISPOBJ(charname_17,"\"Dc1\"")
120     LISPOBJ(charname_18,"\"Dc2\"")
121     LISPOBJ(charname_19,"\"Dc3\"")
122     LISPOBJ(charname_20,"\"Dc4\"")
123     LISPOBJ(charname_21,"\"Nak\"")
124     LISPOBJ(charname_22,"\"Syn\"")
125     LISPOBJ(charname_23,"\"Etb\"")
126     LISPOBJ(charname_24,"\"Can\"")
127     LISPOBJ(charname_25,"\"Em\"")
128     LISPOBJ(charname_26,"\"Sub\"")
129     LISPOBJ(charname_27,"\"Esc\"")
130     LISPOBJ(charname_28,"\"Fs\"")
131     LISPOBJ(charname_29,"\"Gs\"")
132     LISPOBJ(charname_30,"\"Rs\"")
133     LISPOBJ(charname_31,"\"Us\"")
134     LISPOBJ(charname_32,"\"Sp\"")
135     LISPOBJ(charname_127,"\"Del\"")
136     /* The proposal to add:
137       constobj.d (UNIX_CHARNAMES): #\Erik is a synonym for #\Null.
138       LISPOBJ(charname_0_2,"\"Erik\"") - special "honour" for Mr. Nutgum
139      has been rejected because of a seriousness attack. */
140   #endif
141 /* for ARRAY.D: */
142   LISPOBJ(type_vector_with_fill_pointer,"(AND VECTOR (SATISFIES ARRAY-HAS-FILL-POINTER-P))") /* type for error message */
143 /* for HASHTABL.D: */
144  #ifdef GENERATIONAL_GC
145   LISPOBJ(gc_count,"0")
146  #endif
147   LISPOBJ(type_eq_hashfunction,"(MEMBER EXT::FASTHASH-EQ EXT::STABLEHASH-EQ)")
148   LISPOBJ(type_eql_hashfunction,"(MEMBER EXT::FASTHASH-EQL EXT::STABLEHASH-EQL)")
149   LISPOBJ(type_equal_hashfunction,"(MEMBER EXT::FASTHASH-EQUAL EXT::STABLEHASH-EQUAL)")
150   LISPOBJ(type_weak_ht,"(MEMBER :KEY :VALUE :KEY-AND-VALUE :KEY-OR-VALUE NIL)")
151 /* for RECORD.D: */
152   LISPOBJ(constant_initfunction_code,".")
153   LISPOBJ(endless_loop_code,".")
154 /* for WEAK.D: */
155   LISPOBJ(type_weak_alist,"(MEMBER :KEY :VALUE :KEY-AND-VALUE :KEY-OR-VALUE)")
156 /* for SEQUENCE.D:
157    internal list of all defined sequence-types: */
158   LISPOBJ(seq_types,"NIL")
159   LISPOBJ(type_recognizable_sequence_type,"(SATISFIES SYSTEM::RECOGNIZABLE-SEQUENCE-TYPE-P)") /* type for error message */
160   /* keyword-pairs for test_start_end (do not separate pairs!): */
161   LISPOBJ(kwpair_start,":START")
162   LISPOBJ(kwpair_end,":END")
163   LISPOBJ(kwpair_start1,":START1")
164   LISPOBJ(kwpair_end1,":END1")
165   LISPOBJ(kwpair_start2,":START2")
166   LISPOBJ(kwpair_end2,":END2")
167 /* for PREDTYPE.D:
168    distinctive marks for classes, are filled by CLOS::%DEFCLOS */
169   LISPOBJ(class_version_standard_class,"#()")
170   LISPOBJ(class_version_structure_class,"#()")
171   LISPOBJ(class_version_built_in_class,"#()")
172   LISPOBJ(class_defined_class,"CLOS::DEFINED-CLASS")
173   LISPOBJ(class_potential_class,"CLOS::POTENTIAL-CLASS")
174   /* some built-in-classes, are filled by CLOS::%DEFCLOS */
175   LISPOBJ(class_array,"ARRAY")           /* ---+ */
176   LISPOBJ(class_bit_vector,"BIT-VECTOR") /*    |   order */
177   LISPOBJ(class_character,"CHARACTER")   /*    |   coordinated */
178   LISPOBJ(class_complex,"COMPLEX")       /*    |   with clos-class3.lisp! */
179   LISPOBJ(class_cons,"CONS")
180   LISPOBJ(class_float,"FLOAT")
181   LISPOBJ(class_function,"FUNCTION")
182   LISPOBJ(class_hash_table,"HASH-TABLE")
183   LISPOBJ(class_integer,"INTEGER")
184   LISPOBJ(class_list,"LIST")
185   LISPOBJ(class_null,"NULL")
186   LISPOBJ(class_package,"PACKAGE")
187   LISPOBJ(class_pathname,"PATHNAME")
188   LISPOBJ(class_logical_pathname,"LOGICAL-PATHNAME")
189   LISPOBJ(class_random_state,"RANDOM-STATE")
190   LISPOBJ(class_ratio,"RATIO")
191   LISPOBJ(class_readtable,"READTABLE")
192   LISPOBJ(class_stream,"STREAM")
193   LISPOBJ(class_file_stream,"FILE-STREAM")
194   LISPOBJ(class_synonym_stream,"SYNONYM-STREAM")
195   LISPOBJ(class_broadcast_stream,"BROADCAST-STREAM")
196   LISPOBJ(class_concatenated_stream,"CONCATENATED-STREAM")
197   LISPOBJ(class_two_way_stream,"TWO-WAY-STREAM")
198   LISPOBJ(class_echo_stream,"ECHO-STREAM")
199   LISPOBJ(class_string_stream,"STRING-STREAM")
200   LISPOBJ(class_string,"STRING")
201   LISPOBJ(class_symbol,"SYMBOL")         /*    | */
202   LISPOBJ(class_t,"T")                   /*    | */
203   LISPOBJ(class_vector,"VECTOR")         /* ---+ */
204   LISPOBJ(type_designator_character,"(EXT::DESIGNATOR CHARACTER)")
205   #if (base_char_code_limit < char_code_limit)
206   LISPOBJ(type_designator_base_char,"(EXT::DESIGNATOR BASE-CHAR)")
207   #endif
208   LISPOBJ(type_designator_function,"(OR FUNCTION SYMBOL (CONS (EQL SETF) (CONS SYMBOL NULL)) (CONS (EQL LAMBDA)))")
209   /* Upper bound for the number of structure classes present in the system: */
210   LISPOBJ(structure_class_count_max,"0")
211   /* Upper bound for the number of standard classes present in the system: */
212   LISPOBJ(standard_class_count_max,"0")
213   /* built-in-types for HEAP-STATISTICS */
214   LISPOBJ(hs_t,"T")                       /* ---+ */
215   LISPOBJ(hs_cons,"CONS")                 /*    |  order */
216   LISPOBJ(hs_null,"NULL")                 /*    |  coordinated */
217   LISPOBJ(hs_symbol,"SYMBOL")             /*    |  with enum_hs_... */
218   LISPOBJ(hs_simple_bit_vector,"SIMPLE-BIT-VECTOR") /*    |  in predtype.d! */
219   LISPOBJ(hs_simple_2bit_vector,"EXT::SIMPLE-2BIT-VECTOR")
220   LISPOBJ(hs_simple_4bit_vector,"EXT::SIMPLE-4BIT-VECTOR")
221   LISPOBJ(hs_simple_8bit_vector,"EXT::SIMPLE-8BIT-VECTOR")
222   LISPOBJ(hs_simple_16bit_vector,"EXT::SIMPLE-16BIT-VECTOR")
223   LISPOBJ(hs_simple_32bit_vector,"EXT::SIMPLE-32BIT-VECTOR")
224   LISPOBJ(hs_simple_nilvector,"EXT::SIMPLE-NIL-VECTOR")
225   LISPOBJ(hs_simple_string,"SIMPLE-STRING")
226   LISPOBJ(hs_simple_vector,"SIMPLE-VECTOR")
227   LISPOBJ(hs_bit_vector,"BIT-VECTOR")
228   LISPOBJ(hs_2bit_vector,"EXT::2BIT-VECTOR")
229   LISPOBJ(hs_4bit_vector,"EXT::4BIT-VECTOR")
230   LISPOBJ(hs_8bit_vector,"EXT::8BIT-VECTOR")
231   LISPOBJ(hs_16bit_vector,"EXT::16BIT-VECTOR")
232   LISPOBJ(hs_32bit_vector,"EXT::32BIT-VECTOR")
233   LISPOBJ(hs_nilvector,"EXT::NIL-VECTOR")
234   LISPOBJ(hs_string,"STRING")
235   LISPOBJ(hs_vector,"VECTOR")
236   LISPOBJ(hs_simple_array,"SIMPLE-ARRAY")
237   LISPOBJ(hs_array,"ARRAY")
238   LISPOBJ(hs_function,"FUNCTION")
239   LISPOBJ(hs_file_stream,"FILE-STREAM")
240   LISPOBJ(hs_synonym_stream,"SYNONYM-STREAM")
241   LISPOBJ(hs_broadcast_stream,"BROADCAST-STREAM")
242   LISPOBJ(hs_concatenated_stream,"CONCATENATED-STREAM")
243   LISPOBJ(hs_two_way_stream,"TWO-WAY-STREAM")
244   LISPOBJ(hs_echo_stream,"ECHO-STREAM")
245   LISPOBJ(hs_string_stream,"STRING-STREAM")
246   LISPOBJ(hs_stream,"STREAM")
247   LISPOBJ(hs_hash_table,"HASH-TABLE")
248   LISPOBJ(hs_package,"PACKAGE")
249   LISPOBJ(hs_readtable,"READTABLE")
250   LISPOBJ(hs_pathname,"PATHNAME")
251   LISPOBJ(hs_logical_pathname,"LOGICAL-PATHNAME")
252   LISPOBJ(hs_random_state,"RANDOM-STATE")
253   LISPOBJ(hs_byte,"BYTE")
254   LISPOBJ(hs_special_operator,"EXT::SPECIAL-OPERATOR")
255   LISPOBJ(hs_load_time_eval,"EXT::LOAD-TIME-EVAL")
256   LISPOBJ(hs_symbol_macro,"EXT::SYMBOL-MACRO")
257   LISPOBJ(hs_global_symbol_macro,"EXT::GLOBAL-SYMBOL-MACRO")
258   LISPOBJ(hs_macro,"SYS::MACRO")
259   LISPOBJ(hs_function_macro,"EXT::FUNCTION-MACRO")
260   LISPOBJ(hs_big_read_label,"SYS::READ-LABEL")
261   LISPOBJ(hs_encoding,"EXT::ENCODING")
262   #ifdef FOREIGN
263   LISPOBJ(hs_foreign_pointer,"EXT::FOREIGN-POINTER")
264   #endif
265   #ifdef DYNAMIC_FFI
266   LISPOBJ(hs_foreign_address,"FFI::FOREIGN-ADDRESS")
267   LISPOBJ(hs_foreign_variable,"FFI::FOREIGN-VARIABLE")
268   LISPOBJ(hs_foreign_function,"FFI::FOREIGN-FUNCTION")
269   #endif
270   #ifdef HAVE_SMALL_SSTRING
271   LISPOBJ(hs_realloc_simple_string,"EXT::FORWARD-POINTER-SIMPLE-STRING")
272   #endif
273   LISPOBJ(hs_realloc_instance,"EXT::FORWARD-POINTER-INSTANCE")
274   LISPOBJ(hs_weakpointer,"EXT::WEAK-POINTER")
275   LISPOBJ(hs_weak_list,"EXT::WEAK-LIST")
276   LISPOBJ(hs_weak_alist,"EXT::WEAK-ALIST")
277   LISPOBJ(hs_weakmapping,"EXT::WEAK-MAPPING")
278   LISPOBJ(hs_finalizer,"EXT::FINALIZER")
279   #ifdef SOCKET_STREAMS
280   LISPOBJ(hs_socket_server,"SOCKET::SOCKET-SERVER")
281   #endif
282   #ifdef MULTITHREAD
283   LISPOBJ(hs_thread,"THREADS::THREAD")
284   LISPOBJ(hs_mutex,"THREADS::MUTEX")
285   LISPOBJ(hs_exemption,"THREADS::EXEMPTION")
286   #endif
287   #ifdef YET_ANOTHER_RECORD
288   LISPOBJ(hs_yetanother,"SYS::YETANOTHER")
289   #endif
290   LISPOBJ(hs_internal_weak_list,"SYS::INTERNAL-WEAK-LIST")
291   LISPOBJ(hs_weak_and_relation,"EXT::WEAK-AND-RELATION")
292   LISPOBJ(hs_weak_or_relation,"EXT::WEAK-OR-RELATION")
293   LISPOBJ(hs_weak_and_mapping,"EXT::WEAK-AND-MAPPING")
294   LISPOBJ(hs_weak_or_mapping,"EXT::WEAK-OR-MAPPING")
295   LISPOBJ(hs_internal_weak_alist,"SYS::INTERNAL-WEAK-ALIST")
296   LISPOBJ(hs_internal_weak_hashed_alist,"SYS::INTERNAL-WEAK-HASHED-ALIST")
297   LISPOBJ(hs_system_function,"EXT::SYSTEM-FUNCTION")
298   LISPOBJ(hs_bignum,"BIGNUM")
299   LISPOBJ(hs_ratio,"RATIO")
300   #ifndef IMMEDIATE_FFLOAT
301   LISPOBJ(hs_single_float,"SINGLE-FLOAT")
302   #endif                                  /*    | */
303   LISPOBJ(hs_double_float,"DOUBLE-FLOAT") /*    | */
304   LISPOBJ(hs_long_float,"LONG-FLOAT")     /*    | */
305   LISPOBJ(hs_complex,"COMPLEX")           /* ---+ */
306   LISPOBJ(gc_statistics_list,"NIL")
307 /* for PACKAGE.D:
308    internal list of all packages: */
309   LISPOBJ(all_packages,".")
310   /* the keyword-package: */
311   LISPOBJ(keyword_package,".")
312   /* the charset-package: */
313   LISPOBJ(charset_package,".")
314   /* the default-package for *PACKAGE*: */
315   LISPOBJ(default_package,".")
316   /* default-use-list: */
317   LISPOBJ(use_default,"(\"COMMON-LISP\")")
318   /* default-package for -modern: */
319   LISPOBJ(modern_user_package,".")
320 /* for SYMBOL.D: */
321   LISPOBJ_S(gensym_prefix,"G") /* prefix for gensym */
322   LISPOBJ_S(gentemp_prefix, "T") /* prefix for gentemp */
323   LISPOBJ(gentemp_counter, "0") /* gentemp internal counter */
324 /* for MISC.D:
325    basic knowledge: */
326   LISPOBJ_S(lisp_implementation_type_string,"CLISP")
327   LISPOBJ_S(lisp_implementation_package_version,PACKAGE_VERSION)
328   /* we want here the _LINK_ time, but I have no idea about how to get it */
329   LISPOBJ_S(lisp_implementation_version_built_string,__DATE__ __TIME__)
330   LISPOBJ(lisp_implementation_version_string,"NIL") /* cache */
331   LISPOBJ(memory_image_timestamp,"NIL") /* the dump date of the current image */
332   LISPOBJ(memory_image_host,"NIL") /* the host on which this image was dumped */
333   /* The date of the last change of the bytecode interpreter
334      or the arglist of any built-in function in FUNTAB or FUNTABR */
335   /* when changing, remove legacy ABI! */
336   LISPOBJ(version,"(20100806)")
337   LISPOBJ(machine_type_string,"NIL")
338   LISPOBJ(machine_version_string,"NIL")
339   LISPOBJ(machine_instance_string,"NIL")
340   LISPOBJ(software_type,"NIL")  /* initialized later */
341  #if defined(GNU)
342   LISPOBJ_S(c_compiler_version,__VERSION__)
343  #endif
344   LISPOBJ(argv,"NIL")
345 /* for I18N.D: */
346   LISPOBJ(current_language,".")
347   LISPOBJ(ansi,"NIL")
348 /* for ERROR.D:
349    error-message-startstring: */
350   LISPOBJ_S(error_string1,"*** - ")
351   /* vector with conditions and simple-conditions: */
352   LISPOBJ(error_types,"#()")
353   /* for errors of type TYPE-ERROR: */
354   LISPOBJ(type_function_name,"(OR SYMBOL (CONS (EQL SETF) (CONS SYMBOL NULL)))")
355   /* the following 8 object order should be in sync with error.d:prepare_c_integer_signal() */
356   LISPOBJ(type_uint8,"(INTEGER 0 255)")    /* or "(UNSIGNED-BYTE 8)" */
357   LISPOBJ(type_sint8,"(INTEGER -128 127)") /* or "(SIGNED-BYTE 8)" */
358   LISPOBJ(type_uint16,"(INTEGER 0 65535)") /* or "(UNSIGNED-BYTE 16)" */
359   LISPOBJ(type_sint16,"(INTEGER -32768 32767)") /* or "(SIGNED-BYTE 16)" */
360   LISPOBJ(type_uint32,"(INTEGER 0 4294967295)") /* or "(UNSIGNED-BYTE 32)" */
361   LISPOBJ(type_sint32,"(INTEGER -2147483648 2147483647)") /* or "(SIGNED-BYTE 32)" */
362   LISPOBJ(type_uint64,"(INTEGER 0 18446744073709551615)") /* or "(UNSIGNED-BYTE 64)" */
363   LISPOBJ(type_sint64,"(INTEGER -9223372036854775808 9223372036854775807)") /* or "(SIGNED-BYTE 64)" */
364   LISPOBJ(type_array_index,"(INTEGER 0 (#.ARRAY-DIMENSION-LIMIT))")
365   LISPOBJ(type_array_length,"(INTEGER 0 #.ARRAY-DIMENSION-LIMIT)")
366   LISPOBJ(type_array_bit,"(ARRAY BIT)")
367   LISPOBJ(type_posfixnum,"(INTEGER 0 #.MOST-POSITIVE-FIXNUM)")
368   LISPOBJ(type_negfixnum,"(INTEGER #.MOST-NEGATIVE-FIXNUM (0))")
369   LISPOBJ(type_posbignum,"(INTEGER (#.MOST-POSITIVE-FIXNUM))")
370   LISPOBJ(type_negbignum,"(INTEGER * (#.MOST-NEGATIVE-FIXNUM))")
371   LISPOBJ(type_posfixnum1,"(INTEGER (0) #.MOST-POSITIVE-FIXNUM)")
372   LISPOBJ(type_array_rank,"(INTEGER 0 (#.ARRAY-RANK-LIMIT))")
373   LISPOBJ(type_radix,"(INTEGER 2 36)")
374   LISPOBJ(type_end_index,"(OR NULL INTEGER)")
375   LISPOBJ(type_posinteger,"(INTEGER 0 *)")
376   LISPOBJ(type_stringsymchar,"(OR STRING SYMBOL CHARACTER)")
377   LISPOBJ(type_proper_list,"(SATISFIES EXT::PROPER-LIST-P)")
378   LISPOBJ(type_svector2,"(SIMPLE-VECTOR 2)")
379   LISPOBJ(type_svector5,"(SIMPLE-VECTOR 5)")
380   LISPOBJ(type_climb_mode,"(INTEGER 1 5)")
381   LISPOBJ(type_hashtable_test,"(MEMBER EQ EQL EQUAL EQUALP #.#'EQ #.#'EQL #.#'EQUAL #.#'EQUALP)")
382   LISPOBJ(type_hashtable_size,"(INTEGER 0 #.(ASH MOST-POSITIVE-FIXNUM -1))")
383   LISPOBJ(type_hashtable_rehash_size,"(OR (INTEGER 1 *) (FLOAT (1.0) *))")
384   LISPOBJ(type_hashtable_rehash_threshold,"(REAL 0 1)")
385   LISPOBJ(type_boole,"(INTEGER 0 15)")
386   LISPOBJ(type_not_digit,"(AND CHARACTER (NOT (SATISFIES DIGIT-CHAR-P)))")
387   LISPOBJ(type_rtcase,"(MEMBER :UPCASE :DOWNCASE :PRESERVE :INVERT)")
388   LISPOBJ(type_peektype,"(OR BOOLEAN CHARACTER)")
389   LISPOBJ(type_printcase,"(MEMBER :UPCASE :DOWNCASE :CAPITALIZE)")
390   LISPOBJ(type_pprint_newline,"(MEMBER :LINEAR :FILL :MISER :MANDATORY)")
391   LISPOBJ(type_pprint_indent,"(MEMBER :BLOCK :CURRENT)")
392   LISPOBJ(type_random_arg,"(OR (INTEGER (0) *) (FLOAT (0.0) *))")
393   LISPOBJ(type_packname,"(OR PACKAGE STRING SYMBOL CHARACTER)")
394   LISPOBJ(type_posint16,"(INTEGER (0) (65536))")
395   LISPOBJ(type_string_integer,"(OR STRING INTEGER)")
396   LISPOBJ(type_stringsize,"(INTEGER 0 (#.SYS::STRING-DIMENSION-LIMIT))")
397   LISPOBJ(type_uint8_vector,"(ARRAY (UNSIGNED-BYTE 8) (*))")
398   LISPOBJ(type_position,"(OR (MEMBER :START :END) (INTEGER 0 4294967295))")
399   LISPOBJ(type_host,"(OR NULL STRING)")
400   LISPOBJ(type_version,"(OR (MEMBER NIL :WILD :NEWEST) (INTEGER (0) #.MOST-POSITIVE-FIXNUM) PATHNAME)")
401   LISPOBJ(type_direction,"(MEMBER :INPUT :INPUT-IMMUTABLE :OUTPUT :IO :PROBE)")
402   LISPOBJ(type_if_exists,"(MEMBER :ERROR :NEW-VERSION :RENAME :RENAME-AND-DELETE :OVERWRITE :APPEND :SUPERSEDE NIL)")
403   LISPOBJ(type_if_does_not_exist,"(MEMBER :ERROR :CREATE NIL)")
404   LISPOBJ(type_directory_not_exist,"(MEMBER :DISCARD :ERROR :KEEP :IGNORE)")
405   LISPOBJ(type_external_format,"(OR EXT::ENCODING (MEMBER :DEFAULT :UNIX :MAC :DOS))")
406   LISPOBJ(type_pathname_field_key,"(MEMBER :HOST :DEVICE :DIRECTORY :NAME :TYPE :VERSION NIL)")
407  #ifdef SOCKET_STREAMS
408   LISPOBJ(type_socket_option,"(MEMBER :SO-DEBUG :SO-ACCEPTCONN :SO-BROADCAST :SO-REUSEADDR :SO-DONTROUTE :SO-KEEPALIVE :SO-ERROR :SO-LINGER :SO-OOBINLINE :SO-TYPE :SO-RCVBUF :SO-SNDBUF :SO-RCVLOWAT :SO-SNDLOWAT :SO-RCVTIMEO :SO-SNDTIMEO)")
409  #endif
410   LISPOBJ(type_logical_pathname,"(OR LOGICAL-PATHNAME STRING STREAM SYMBOL)")
411   LISPOBJ(type_builtin_stream,"(SATISFIES SYSTEM::BUILT-IN-STREAM-P)")
412 /* for PATHNAME.D: */
413   LISPOBJ(lib_dir,"NIL")     /* must be set via a command line option */
414   LISPOBJ(type_designator_pathname,"(OR STRING FILE-STREAM PATHNAME)")
415  #if defined(UNIX) || defined (WIN32_NATIVE)
416   LISPOBJ(type_priority,"(OR (MEMBER :HIGH :NORMAL :LOW) INTEGER)")
417  #endif
418   LISPOBJ(empty_logical_pathname,".") /* (already initialized) */
419   LISPOBJ(handler_for_parse_error,"(#(PARSE-ERROR NIL))")
420   LISPOBJ(type_logical_pathname_string,"(AND STRING (SATISFIES SYSTEM::VALID-LOGICAL-PATHNAME-STRING-P))")
421   LISPOBJ_S(default_logical_pathname_host,"SYS")
422   LISPOBJ_S(empty_string,"")
423   LISPOBJ_S(wild_string,"*")
424   LISPOBJ_S(colon_string,":")
425   LISPOBJ_S(semicolon_string,";")
426  #ifdef PATHNAME_WIN32
427   LISPOBJ(backslash_string,"\"\\\\\"")
428  #endif
429  #if defined(PATHNAME_WIN32)
430   LISPOBJ(backslashbackslash_string,"\"\\\\\\\\\"")
431   LISPOBJ_S(lnk_string,"lnk") /* for woe32 shell link resolution */
432  #endif
433  #if defined(PATHNAME_UNIX)
434   LISPOBJ_S(slash_string,"/")
435  #endif
436   LISPOBJ_S(dot_string,".")
437  #if defined(PATHNAME_WIN32) || defined(PATHNAME_UNIX)
438   LISPOBJ_S(dotdot_string,"..")
439   LISPOBJ_S(dotdotdot_string,"...")
440  #endif
441  #ifdef PATHNAME_WIN32
442   LISPOBJ_S(backupextend_string,".bak") /* name-extension of backupfiles */
443  #endif
444  #ifdef PATHNAME_UNIX
445   LISPOBJ_S(backupextend_string,"%") /* name-extension of backupfiles */
446  #endif
447  #ifdef PATHNAME_WIN32
448   /* default-drive (as string of length 1): */
449   LISPOBJ(default_drive,"NIL")
450  #endif
451  #if defined(PATHNAME_UNIX) || defined(PATHNAME_WIN32)
452   LISPOBJ_S(wildwild_string,"**")
453   LISPOBJ(directory_absolute,"(:ABSOLUTE)") /* directory of the empty absolute pathname */
454  #endif
455   LISPOBJ(user_homedir,"#\".\"") /* user-homedir-pathname */
456  #ifdef UNIX
457   LISPOBJ(command_shell, "\"" SHELL "\"") /* command-shell as string */
458   LISPOBJ(command_shell_option,"\"-c\"") /* command-shell-option for command */
459   LISPOBJ(user_shell,"\"/bin/csh\"")     /* user-shell as string */
460  #elif defined(WIN32_NATIVE)
461   LISPOBJ(command_shell,"NIL")  /* command-interpreter as string */
462  #else
463   #error command_shell is not defined
464  #endif
465   /* list of all open channel-streams, terminal-streams: */
466   LISPOBJ(open_files,"NIL")
467  #ifdef GC_CLOSES_FILES
468   /* During the GC: the list of file-streams to be closed after the GC: */
469   LISPOBJ(files_to_close,"NIL")
470  #endif
471   /* defaults for COMPILE-FILE-call in SPVW: */
472   LISPOBJ(source_file_type,"#\".lisp\"")
473   LISPOBJ(compiled_file_type,"#\".fas\"")
474   LISPOBJ(listing_file_type,"#\".lis\"")
475 /* for STREAM.D: */
476   LISPOBJ(class_fundamental_stream,"NIL") /* #<STANDARD-CLASS FUNDAMENTAL-STREAM> */
477   LISPOBJ(class_fundamental_input_stream,"NIL") /* #<STANDARD-CLASS FUNDAMENTAL-INPUT-STREAM> */
478   LISPOBJ(class_fundamental_output_stream,"NIL") /* #<STANDARD-CLASS FUNDAMENTAL-OUTPUT-STREAM> */
479   LISPOBJ(type_input_stream,"(SATISFIES INPUT-STREAM-P)") /* type for error-message */
480   LISPOBJ(type_output_stream,"(SATISFIES OUTPUT-STREAM-P)") /* type for error-message */
481   LISPOBJ(type_string_with_fill_pointer,"(AND STRING (SATISFIES ARRAY-HAS-FILL-POINTER-P))") /* type for error-message */
482   /* also used in PATHNAME */
483   LISPOBJ(handler_for_charset_type_error,"(#(SYSTEM::CHARSET-TYPE-ERROR NIL))")
484   LISPOBJ(handler_for_error,"(#(ERROR NIL))")
485   LISPOBJ(setf_stream_element_type,"(SETF STREAM-ELEMENT-TYPE)")
486   LISPOBJ(type_endianness,"(MEMBER :LITTLE :BIG)") /* type for error-message */
487   LISPOBJ(type_open_file_stream,"(AND FILE-STREAM (SATISFIES OPEN-STREAM-P))") /* type for error-message */
488   LISPOBJ(strmtype_ubyte8,"(UNSIGNED-BYTE 8)") /* as stream-element-type */
489   LISPOBJ(standard_input_file_stream,"NIL")
490   LISPOBJ(standard_output_file_stream,"NIL")
491   LISPOBJ(standard_error_file_stream,"NIL")
492   LISPOBJ(type_buffered_arg,"(MEMBER :DEFAULT T NIL)")
493 /* for IO.D:
494    four readtable-case-values: */
495   LISPOBJ(rtcase_0,":UPCASE")
496   LISPOBJ(rtcase_1,":DOWNCASE")
497   LISPOBJ(rtcase_2,":PRESERVE")
498   LISPOBJ(rtcase_3,":INVERT")
499  /* for reader:
500    standard-readtable of Common Lisp */
501   LISPOBJ(standard_readtable,".")
502   /* prototype of the dispatch-reader-functions */
503   LISPOBJ(dispatch_reader,"NIL")
504   LISPOBJ(dispatch_reader_index,"0")
505   /* prefix for character-names: */
506   LISPOBJ(charname_prefix,"\"Code\"")
507   /* handler-types: */
508   LISPOBJ(handler_for_arithmetic_error,"(#(ARITHMETIC-ERROR NIL))")
509   LISPOBJ_S(tildeA,"~A")
510  /* for printer:
511    substrings used for output of objects: */
512   LISPOBJ_S(printstring_array,"ARRAY")
513   LISPOBJ_S(printstring_fill_pointer,"FILL-POINTER=")
514   LISPOBJ_S(printstring_address,"ADDRESS")
515   LISPOBJ_S(printstring_system,"SYSTEM-POINTER")
516   LISPOBJ_S(printstring_frame_pointer,"FRAME-POINTER")
517   LISPOBJ_S(printstring_read_label,"READ-LABEL")
518   LISPOBJ_S(printstring_unbound,"#<UNBOUND>")
519   LISPOBJ_S(printstring_unbound_readably,"#.(SYS::%UNBOUND)")
520   LISPOBJ_S(printstring_special_reference,"#<SPECIAL REFERENCE>")
521   LISPOBJ_S(printstring_implementation_dependent,"#<IMPLEMENTATION-DEPENDENT>")
522   LISPOBJ_S(printstring_disabled_pointer,"#<DISABLED POINTER>")
523   LISPOBJ_S(printstring_dot,"#<DOT>")
524   LISPOBJ_S(printstring_eof,"#<END OF FILE>")
525   LISPOBJ_S(printstring_deleted,"DELETED ")
526   LISPOBJ_S(printstring_package,"PACKAGE")
527   LISPOBJ_S(printstring_readtable,"READTABLE")
528   LISPOBJ(pathname_slotlist,"#.(list (cons :HOST #'pathname-host) (cons :DEVICE #'pathname-device) (cons :DIRECTORY #'pathname-directory) (cons :NAME #'pathname-name) (cons :TYPE #'pathname-type) (cons :VERSION #'pathname-version))")
529   LISPOBJ(byte_slotlist,"#.(list (cons :SIZE #'byte-size) (cons :POSITION #'byte-position))")
530   LISPOBJ_S(printstring_symbolmacro,"SYMBOL-MACRO")
531   LISPOBJ_S(printstring_globalsymbolmacro,"GLOBAL SYMBOL-MACRO")
532   LISPOBJ_S(printstring_macro,"MACRO")
533   LISPOBJ_S(printstring_functionmacro,"FUNCTION-MACRO")
534   LISPOBJ_S(printstring_encoding,"ENCODING")
535   #ifdef FOREIGN
536   LISPOBJ_S(printstring_invalid,"INVALID ")
537   LISPOBJ_S(printstring_fpointer,"FOREIGN-POINTER")
538   #endif
539   #ifdef DYNAMIC_FFI
540   LISPOBJ_S(printstring_faddress,"FOREIGN-ADDRESS")
541   LISPOBJ_S(printstring_fvariable,"FOREIGN-VARIABLE")
542   LISPOBJ_S(printstring_ffunction,"FOREIGN-FUNCTION")
543   #endif
544   LISPOBJ_S(printstring_weakpointer,"WEAK-POINTER")
545   LISPOBJ_S(printstring_broken_weakpointer,"#<BROKEN WEAK-POINTER>")
546   LISPOBJ_S(printstring_weak_list,"WEAK-LIST")
547   LISPOBJ_S(printstring_weak_alist,"WEAK-ALIST")
548   LISPOBJ_S(printstring_weakmapping,"WEAK-MAPPING")
549   LISPOBJ_S(printstring_broken_weakmapping,"#<BROKEN WEAK-MAPPING>")
550   LISPOBJ_S(printstring_finalizer,"#<FINALIZER>")
551   #ifdef SOCKET_STREAMS
552   LISPOBJ_S(printstring_socket_server,"SOCKET-SERVER")
553   #endif
554   #ifdef YET_ANOTHER_RECORD
555   LISPOBJ_S(printstring_yetanother,"YET-ANOTHER")
556   #endif
557   LISPOBJ_S(printstring_internal_weak_list,"#<INTERNAL-WEAK-LIST>")
558   LISPOBJ_S(printstring_weak_and_relation,"WEAK-AND-RELATION")
559   LISPOBJ_S(printstring_broken_weak_and_relation,"#<BROKEN WEAK-AND-RELATION>")
560   LISPOBJ_S(printstring_weak_or_relation,"WEAK-OR-RELATION")
561   LISPOBJ_S(printstring_broken_weak_or_relation,"#<BROKEN WEAK-OR-RELATION>")
562   LISPOBJ_S(printstring_weak_and_mapping,"WEAK-AND-MAPPING")
563   LISPOBJ_S(printstring_broken_weak_and_mapping,"#<BROKEN WEAK-AND-MAPPING>")
564   LISPOBJ_S(printstring_weak_or_mapping,"WEAK-OR-MAPPING")
565   LISPOBJ_S(printstring_broken_weak_or_mapping,"#<BROKEN WEAK-OR-MAPPING>")
566   LISPOBJ_S(printstring_internal_weak_alist,"#<INTERNAL-WEAK-ALIST>")
567   LISPOBJ_S(printstring_internal_weak_hashed_alist,"#<INTERNAL-WEAK-HASHED-ALIST>")
568   LISPOBJ_S(printstring_closure,"FUNCTION")
569   LISPOBJ_S(printstring_compiled_closure,"COMPILED-FUNCTION")
570   LISPOBJ_S(printstring_subr,"SYSTEM-FUNCTION")
571   LISPOBJ_S(printstring_addon_subr,"ADD-ON-SYSTEM-FUNCTION")
572   LISPOBJ_S(printstring_fsubr,"SPECIAL-OPERATOR")
573   LISPOBJ_S(printstring_closed,"CLOSED ")
574   LISPOBJ_S(printstring_input,"INPUT ")
575   LISPOBJ_S(printstring_output,"OUTPUT ")
576   LISPOBJ_S(printstring_io,"IO ")
577   /* Buffering mode, addressed by
578    (bit(1) if input-buffered) | (bit(0) if output-buffered). */
579   LISPOBJ_S(printstring_buffered_00,"UNBUFFERED ")
580   LISPOBJ_S(printstring_buffered_01,"OUTPUT-BUFFERED ")
581   LISPOBJ_S(printstring_buffered_10,"INPUT-BUFFERED ")
582   LISPOBJ_S(printstring_buffered_11,"BUFFERED ")
583     /* name-string for each streamtype, addressed by streamtype: */
584     LISPOBJ_S(printstring_strmtype_synonym,"SYNONYM")
585     LISPOBJ_S(printstring_strmtype_broad,"BROADCAST")
586     LISPOBJ_S(printstring_strmtype_concat,"CONCATENATED")
587     LISPOBJ_S(printstring_strmtype_twoway,"TWO-WAY")
588     LISPOBJ_S(printstring_strmtype_echo,"ECHO")
589     LISPOBJ_S(printstring_strmtype_str_in,"STRING-INPUT")
590     LISPOBJ_S(printstring_strmtype_str_out,"STRING-OUTPUT")
591     LISPOBJ_S(printstring_strmtype_str_push,"STRING-PUSH")
592     LISPOBJ_S(printstring_strmtype_pphelp,"PRETTY-PRINTER-HELP")
593     LISPOBJ_S(printstring_strmtype_buff_in,"BUFFERED-INPUT")
594     LISPOBJ_S(printstring_strmtype_buff_out,"BUFFERED-OUTPUT")
595     #ifdef GENERIC_STREAMS
596     LISPOBJ_S(printstring_strmtype_generic,"GENERIC")
597     #endif
598     LISPOBJ_S(printstring_strmtype_file,"FILE")
599     #ifdef KEYBOARD
600     LISPOBJ_S(printstring_strmtype_keyboard,"KEYBOARD")
601     #endif
602     LISPOBJ_S(printstring_strmtype_terminal,"TERMINAL")
603     #ifdef SCREEN
604     LISPOBJ_S(printstring_strmtype_window,"WINDOW")
605     #endif
606     #ifdef PRINTER
607     LISPOBJ_S(printstring_strmtype_printer,"PRINTER")
608     #endif
609     #ifdef PIPES
610     LISPOBJ_S(printstring_strmtype_pipe_in,"PIPE-INPUT")
611     LISPOBJ_S(printstring_strmtype_pipe_out,"PIPE-OUTPUT")
612     #endif
613     #ifdef X11SOCKETS
614     LISPOBJ_S(printstring_strmtype_x11socket,"X11-SOCKET")
615     #endif
616     #ifdef SOCKET_STREAMS
617     LISPOBJ_S(printstring_strmtype_socket,"SOCKET")
618     LISPOBJ_S(printstring_strmtype_twoway_socket,"SOCKET")
619     #endif
620   LISPOBJ_S(printstring_stream,"-STREAM")
621 #ifdef MULTITHREAD
622   LISPOBJ_S(printstring_thread,"THREAD")
623   LISPOBJ_S(printstring_mutex,"MUTEX")
624   LISPOBJ_S(printstring_exemption,"EXEMPTION")
625   LISPOBJ_S(printstring_inactive,"INACTIVE ")
626   LISPOBJ_S(printstring_recursive,"RECURSIVE ")
627   LISPOBJ_S(thread_break_description,"Ctrl-C: User break")
628   LISPOBJ(all_threads,"NIL")
629   LISPOBJ(threads_to_release,"NIL")
630   /* init_package() adds package mutexes here, so later we do
631      not want it re-initialzied */
632   LISPOBJ(all_mutexes,".")
633   LISPOBJ(mutexes_to_release,"NIL")
634   LISPOBJ(all_exemptions,"NIL")
635   LISPOBJ(exemptions_to_release,"NIL")
636   /* tag at the bottom of each thread stack. used for killing thread via
637    (THROW thread_exit_tag) */
638   LISPOBJ(thread_exit_tag,"(GENSYM)")
639   LISPOBJ(type_name_arg,"(OR STRING SYMBOL INTEGER)")
640 #endif
641 /* for LISPARIT.D:
642    various constant numbers: */
643   #ifndef IMMEDIATE_FFLOAT
644   LISPOBJ(FF_zero,"0.0F0")
645   LISPOBJ(FF_one,"1.0F0")
646   LISPOBJ(FF_minusone,"-1.0F0")
647   #endif
648   LISPOBJ(DF_zero,"0.0D0")
649   LISPOBJ(DF_one,"1.0D0")
650   LISPOBJ(DF_minusone,"-1.0D0")
651   /* defaultlength for reading of long-floats (Integer >=LF_minlen, <2^intWCsize): */
652   LISPOBJ(LF_digits,".")   /* (already initialized) */
653   /* variable long-floats: (already initialized) */
654   LISPOBJ(SF_pi,".")          /* value of pi as Short-Float */
655   LISPOBJ(FF_pi,".")          /* value of pi as Single-Float */
656   LISPOBJ(DF_pi,".")          /* value of pi as Double-Float */
657   LISPOBJ(pi,".")         /* value of pi, Long-Float of default length */
658   LISPOBJ(LF_pi,".")      /* value of pi, as exact as known */
659   LISPOBJ(LF_ln2,".")     /* value of ln 2, as exact as known */
660   LISPOBJ(LF_ln10,".")    /* value of ln 10, as exact as known */
661 /* for EVAL.D:
662    toplevel-declaration-environment: */
663   LISPOBJ(top_decl_env,"(NIL)") /* list of O(declaration_types) (is initialized later) */
664   /* decl-spec with list of declaration-types to be recognized: */
665   LISPOBJ(declaration_types,"(DECLARATION OPTIMIZE DECLARATION CLOS::DYNAMICALLY-MODIFIABLE SYS::IMPLEMENTATION-DEPENDENT)")
666 /* for DEBUG.D: */
667   LISPOBJ_S(newline_string,NLstring)
668   /* prompts: */
669   LISPOBJ_S(prompt_string,"> ")
670   LISPOBJ_S(breakprompt_string,". Break> ")
671   /* various strings for description of the stack: */
672   LISPOBJ_S(showstack_string_lisp_obj,"- ")
673   LISPOBJ_S(showstack_string_bindung,NLstring "  | ")
674   LISPOBJ_S(showstack_string_zuord," <--> ")
675   LISPOBJ_S(showstack_string_zuordtag," --> ")
676   LISPOBJ_S(showstack_string_VENV_frame,NLstring "  VAR_ENV <--> ")
677   LISPOBJ_S(showstack_string_FENV_frame,NLstring "  FUN_ENV <--> ")
678   LISPOBJ_S(showstack_string_BENV_frame,NLstring "  BLOCK_ENV <--> ")
679   LISPOBJ_S(showstack_string_GENV_frame,NLstring "  GO_ENV <--> ")
680   LISPOBJ_S(showstack_string_DENV_frame,NLstring "  DECL_ENV <--> ")
681 /* for SPVW.D: */
682  #ifdef WIN32_NATIVE
683   LISPOBJ(load_extra_file_types,"(\"BAT\")")
684  #endif
685 /* for control & io, function seclass_object(): */
686   LISPOBJ(seclass_no_se,"(NIL NIL NIL)")
687   LISPOBJ(seclass_read,"(T NIL NIL)")
688   LISPOBJ(seclass_rd_sig,"(T T NIL)")
689   LISPOBJ(seclass_write,"(NIL T T)")
690   LISPOBJ(seclass_default,"(T T T)")
691  #ifdef DYNAMIC_MODULES
692    LISPOBJ_S(unknown_error,"Unknown error")
693    LISPOBJ_S(oomst_error,"Out of memory for subr_tab")
694  #endif
695 /* for FOREIGN.D: */
696  #ifdef DYNAMIC_FFI
697   LISPOBJ(fp_zero,"NIL")
698   LISPOBJ(foreign_variable_table,"#.(make-hash-table :test #'equal)")
699   LISPOBJ(foreign_function_table,"#.(make-hash-table :test #'equal)")
700   LISPOBJ(foreign_inttype_table,"#.(make-hash-table :test #'equal)")
701   LISPOBJ(type_foreign_variable,"(OR FFI::FOREIGN-VARIABLE FFI::FOREIGN-ADDRESS)")
702   LISPOBJ(type_foreign_function,"(OR FFI::FOREIGN-FUNCTION FFI::FOREIGN-ADDRESS)")
703  #if defined(WIN32_NATIVE) || defined(HAVE_DLOPEN)
704   LISPOBJ(foreign_libraries,"NIL")
705  #endif
706   LISPOBJ(foreign_callin_table,"#.(make-hash-table :test #'eq)")
707   LISPOBJ(foreign_callin_vector,"#.(let ((array (make-array 1 :adjustable t :fill-pointer 1))) (sys::store array 0 0) array)")
708  #endif
709 #if !defined(MULTITHREAD)
710 #define LISPOBJ_TL(n,initstring)  LISPOBJ(n,initstring)
711 #include "constobj_tl.c"
712 #endif
713