From 9fc98f14bd2fcf88706bd9028d3637361bdf960e Mon Sep 17 00:00:00 2001 From: jjgarcia Date: Mon, 20 Dec 2004 08:50:35 +0000 Subject: [PATCH] List all interesting functions created by the lisp->C compiler in external.h and leave the task of building function objects for these functions to all_symbols2.o --- src/Makefile.in | 2 +- src/c/Makefile.in | 7 +- src/c/symbols_list.h | 275 ++++++++++++++++++++++--------------------- src/cmp/cmpmain.lsp | 18 ++- src/cmp/cmptop.lsp | 3 + src/cmp/sysfun.lsp | 138 +++++++++++++--------- src/compile.lsp.in | 1 + src/h/external.h | 201 +++++++++++++++++++++++++++++++ 8 files changed, 450 insertions(+), 195 deletions(-) diff --git a/src/Makefile.in b/src/Makefile.in index 1d3cbc5d9..cb06fb9c4 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -57,7 +57,7 @@ ecl_min$(EXE): $(LIBRARIES) .gdbinit @LIBPREFIX@eclmin.@LIBEXT@ if [ -f CROSS-COMPILER ]; then \ touch $@; \ else \ - $(CC) $(LDFLAGS) -o $@ cinit.o -L./ @LIBPREFIX@eclmin.@LIBEXT@ $(LIBS);\ + $(CC) $(LDFLAGS) -o $@ cinit.o c/all_symbols.o -L./ @LIBPREFIX@eclmin.@LIBEXT@ $(LIBS);\ fi .gdbinit: $(srcdir)/util/gdbinit diff --git a/src/c/Makefile.in b/src/c/Makefile.in index 6ab3564cf..0ab46b27e 100644 --- a/src/c/Makefile.in +++ b/src/c/Makefile.in @@ -47,7 +47,7 @@ OBJS = main.o symbol.o package.o list.o\ time.o unixint.o\ mapfun.o multival.o hash.o format.o pathname.o\ structure.o load.o unixfsys.o unixsys.o \ - all_symbols.o ffi.o @EXTRA_OBJS@ + ffi.o @EXTRA_OBJS@ .SUFFIXES: .c .o .d @@ -81,7 +81,7 @@ flatinstall: $(HFILES) rm $(prefix)/h/config.h mv $(prefix)/h/config-install.h $(prefix)/h/config.h -../libeclmin.a: $(OBJS) +../libeclmin.a: $(OBJS) all_symbols.o all_symbols2.o $(RM) $@ ar cr $@ $(OBJS) ranlib $@ @@ -116,6 +116,9 @@ apply.o: apply.c $(HFILES) $(HDIR)/cs.h # all_symbols.o: all_symbols.c $(CC) $(CFLAGS) -I./ all_symbols.c -o $@ +all_symbols2.o: all_symbols.c + $(CC) $(CFLAGS) -DECL_FINAL -I./ all_symbols.c -o $@ + # # This is in another directory # diff --git a/src/c/symbols_list.h b/src/c/symbols_list.h index 1816faaf2..cdec2cf86 100644 --- a/src/c/symbols_list.h +++ b/src/c/symbols_list.h @@ -1,3 +1,8 @@ +#ifdef ECL_FINAL +#define _D(x) x +#else +#define _D(x) NULL +#endif #ifdef DPP #define EXT_ "EXT::" #define SYS_ "SI::" @@ -99,20 +104,20 @@ cl_symbols[] = { {">", CL_ORDINARY, cl_G, -1, OBJNULL}, {">=", CL_ORDINARY, cl_GE, -1, OBJNULL}, {"ABORT", CL_ORDINARY, NULL, -1, OBJNULL}, -{"ABS", CL_ORDINARY, NULL, -1, OBJNULL}, +{"ABS", CL_ORDINARY, _D(cl_abs), -1, OBJNULL}, {"ACONS", CL_ORDINARY, cl_acons, 3, OBJNULL}, -{"ACOS", CL_ORDINARY, NULL, -1, OBJNULL}, -{"ACOSH", CL_ORDINARY, NULL, -1, OBJNULL}, +{"ACOS", CL_ORDINARY, _D(cl_acos), -1, OBJNULL}, +{"ACOSH", CL_ORDINARY, _D(cl_acosh), -1, OBJNULL}, {"ADJOIN", CL_ORDINARY, cl_adjoin, -1, OBJNULL}, -{"ADJUST-ARRAY", CL_ORDINARY, NULL, -1, OBJNULL}, +{"ADJUST-ARRAY", CL_ORDINARY, _D(cl_adjust_array), -1, OBJNULL}, {"ADJUSTABLE-ARRAY-P", CL_ORDINARY, cl_adjustable_array_p, 1, OBJNULL}, {"ALPHA-CHAR-P", CL_ORDINARY, cl_alpha_char_p, 1, OBJNULL}, {"ALPHANUMERICP", CL_ORDINARY, cl_alphanumericp, 1, OBJNULL}, {"AND", CL_ORDINARY, NULL, -1, OBJNULL}, {"APPEND", CL_ORDINARY, cl_append, -1, OBJNULL}, {"APPLY", CL_ORDINARY, cl_apply, -1, OBJNULL}, -{"APROPOS", CL_ORDINARY, NULL, -1, OBJNULL}, -{"APROPOS-LIST", CL_ORDINARY, NULL, -1, OBJNULL}, +{"APROPOS", CL_ORDINARY, _D(cl_apropos), -1, OBJNULL}, +{"APROPOS-LIST", CL_ORDINARY, _D(cl_apropos_list), -1, OBJNULL}, {"AREF", CL_ORDINARY, cl_aref, -1, OBJNULL}, {"ARITHMETIC-ERROR", CL_ORDINARY, NULL, -1, OBJNULL}, {"ARITHMETIC-ERROR-OPERANDS", CL_ORDINARY, NULL, -1, OBJNULL}, @@ -120,44 +125,44 @@ cl_symbols[] = { {"ARRAY", CL_ORDINARY, NULL, -1, OBJNULL}, {"ARRAY-DIMENSION", CL_ORDINARY, cl_array_dimension, 2, OBJNULL}, {"ARRAY-DIMENSION-LIMIT", CL_CONSTANT, NULL, -1, MAKE_FIXNUM(ADIMLIM)}, -{"ARRAY-DIMENSIONS", CL_ORDINARY, NULL, -1, OBJNULL}, +{"ARRAY-DIMENSIONS", CL_ORDINARY, _D(cl_array_dimensions), -1, OBJNULL}, {"ARRAY-DISPLACEMENT", CL_ORDINARY, cl_array_displacement, 1, OBJNULL}, {"ARRAY-ELEMENT-TYPE", CL_ORDINARY, cl_array_element_type, 1, OBJNULL}, {"ARRAY-HAS-FILL-POINTER-P", CL_ORDINARY, cl_array_has_fill_pointer_p, 1, OBJNULL}, -{"ARRAY-IN-BOUNDS-P", CL_ORDINARY, NULL, -1, OBJNULL}, +{"ARRAY-IN-BOUNDS-P", CL_ORDINARY, _D(cl_array_in_bounds_p), -1, OBJNULL}, {"ARRAY-RANK", CL_ORDINARY, cl_array_rank, 1, OBJNULL}, {"ARRAY-RANK-LIMIT", CL_CONSTANT, NULL, -1, MAKE_FIXNUM(ARANKLIM)}, -{"ARRAY-ROW-MAJOR-INDEX", CL_ORDINARY, NULL, -1, OBJNULL}, +{"ARRAY-ROW-MAJOR-INDEX", CL_ORDINARY, _D(cl_array_row_major_index), -1, OBJNULL}, {"ARRAY-TOTAL-SIZE", CL_ORDINARY, cl_array_total_size, 1, OBJNULL}, {"ARRAY-TOTAL-SIZE-LIMIT", CL_CONSTANT, NULL, -1, MAKE_FIXNUM(ATOTLIM)}, {"ARRAYP", CL_ORDINARY, cl_arrayp, 1, OBJNULL}, {"ASH", CL_ORDINARY, cl_ash, 2, OBJNULL}, -{"ASIN", CL_ORDINARY, NULL, -1, OBJNULL}, -{"ASINH", CL_ORDINARY, NULL, -1, OBJNULL}, +{"ASIN", CL_ORDINARY, _D(cl_asin), -1, OBJNULL}, +{"ASINH", CL_ORDINARY, _D(cl_asinh), -1, OBJNULL}, {"ASSERT", CL_ORDINARY, NULL, -1, OBJNULL}, {"ASSOC", CL_ORDINARY, cl_assoc, -1, OBJNULL}, -{"ASSOC-IF", CL_ORDINARY, NULL, -1, OBJNULL}, -{"ASSOC-IF-NOT", CL_ORDINARY, NULL, -1, OBJNULL}, +{"ASSOC-IF", CL_ORDINARY, _D(cl_assoc_if), -1, OBJNULL}, +{"ASSOC-IF-NOT", CL_ORDINARY, _D(cl_assoc_if_not), -1, OBJNULL}, {"ATAN", CL_ORDINARY, cl_atan, -1, OBJNULL}, -{"ATANH", CL_ORDINARY, NULL, -1, OBJNULL}, +{"ATANH", CL_ORDINARY, _D(cl_atanh), -1, OBJNULL}, {"ATOM", CL_ORDINARY, cl_atom, 1, OBJNULL}, {"BASE-CHAR", CL_ORDINARY, NULL, -1, OBJNULL}, {"BASE-STRING", CL_ORDINARY, NULL, -1, OBJNULL}, {"BIGNUM", CL_ORDINARY, NULL, -1, OBJNULL}, -{"BIT", CL_ORDINARY, NULL, -1, OBJNULL}, -{"BIT-AND", CL_ORDINARY, NULL, -1, OBJNULL}, -{"BIT-ANDC1", CL_ORDINARY, NULL, -1, OBJNULL}, -{"BIT-ANDC2", CL_ORDINARY, NULL, -1, OBJNULL}, -{"BIT-EQV", CL_ORDINARY, NULL, -1, OBJNULL}, -{"BIT-IOR", CL_ORDINARY, NULL, -1, OBJNULL}, -{"BIT-NAND", CL_ORDINARY, NULL, -1, OBJNULL}, -{"BIT-NOR", CL_ORDINARY, NULL, -1, OBJNULL}, -{"BIT-NOT", CL_ORDINARY, NULL, -1, OBJNULL}, -{"BIT-ORC1", CL_ORDINARY, NULL, -1, OBJNULL}, -{"BIT-ORC2", CL_ORDINARY, NULL, -1, OBJNULL}, +{"BIT", CL_ORDINARY, _D(cl_bit), -1, OBJNULL}, +{"BIT-AND", CL_ORDINARY, _D(cl_bit_and), -1, OBJNULL}, +{"BIT-ANDC1", CL_ORDINARY, _D(cl_bit_andc1), -1, OBJNULL}, +{"BIT-ANDC2", CL_ORDINARY, _D(cl_bit_andc2), -1, OBJNULL}, +{"BIT-EQV", CL_ORDINARY, _D(cl_bit_eqv), -1, OBJNULL}, +{"BIT-IOR", CL_ORDINARY, _D(cl_bit_ior), -1, OBJNULL}, +{"BIT-NAND", CL_ORDINARY, _D(cl_bit_nand), -1, OBJNULL}, +{"BIT-NOR", CL_ORDINARY, _D(cl_bit_nor), -1, OBJNULL}, +{"BIT-NOT", CL_ORDINARY, _D(cl_bit_not), -1, OBJNULL}, +{"BIT-ORC1", CL_ORDINARY, _D(cl_bit_orc1), -1, OBJNULL}, +{"BIT-ORC2", CL_ORDINARY, _D(cl_bit_orc2), -1, OBJNULL}, {"BIT-VECTOR", CL_ORDINARY, NULL, -1, OBJNULL}, {"BIT-VECTOR-P", CL_ORDINARY, cl_bit_vector_p, 1, OBJNULL}, -{"BIT-XOR", CL_ORDINARY, NULL, -1, OBJNULL}, +{"BIT-XOR", CL_ORDINARY, _D(cl_bit_xor), -1, OBJNULL}, {"BLOCK", CL_FORM, NULL, -1, OBJNULL}, {"BOOLE", CL_ORDINARY, cl_boole, 3, OBJNULL}, {"BOOLE-1", CL_CONSTANT, NULL, -1, MAKE_FIXNUM(BOOL1)}, @@ -183,9 +188,9 @@ cl_symbols[] = { {"BROADCAST-STREAM", CL_ORDINARY, NULL, -1, OBJNULL}, {"BROADCAST-STREAM-STREAMS", CL_ORDINARY, cl_broadcast_stream_streams, 1, OBJNULL}, {"BUTLAST", CL_ORDINARY, cl_butlast, -1, OBJNULL}, -{"BYTE", CL_ORDINARY, NULL, -1, OBJNULL}, -{"BYTE-POSITION", CL_ORDINARY, NULL, -1, OBJNULL}, -{"BYTE-SIZE", CL_ORDINARY, NULL, -1, OBJNULL}, +{"BYTE", CL_ORDINARY, _D(cl_byte), -1, OBJNULL}, +{"BYTE-POSITION", CL_ORDINARY, _D(cl_byte_position), -1, OBJNULL}, +{"BYTE-SIZE", CL_ORDINARY, _D(cl_byte_size), -1, OBJNULL}, {"CAAAAR", CL_ORDINARY, cl_caaaar, 1, OBJNULL}, {"CAAADR", CL_ORDINARY, cl_caaadr, 1, OBJNULL}, {"CAAAR", CL_ORDINARY, cl_caaar, 1, OBJNULL}, @@ -246,13 +251,13 @@ cl_symbols[] = { {"CHARACTER", CL_ORDINARY, cl_character, 1, OBJNULL}, {"CHARACTERP", CL_ORDINARY, cl_characterp, 1, OBJNULL}, {"CHECK-TYPE", CL_ORDINARY, NULL, -1, OBJNULL}, -{"CIS", CL_ORDINARY, NULL, -1, OBJNULL}, +{"CIS", CL_ORDINARY, _D(cl_cis), -1, OBJNULL}, {"CLEAR-INPUT", CL_ORDINARY, cl_clear_input, -1, OBJNULL}, {"CLEAR-OUTPUT", CL_ORDINARY, cl_clear_output, -1, OBJNULL}, {"CLOSE", CL_ORDINARY, cl_close, -1, OBJNULL}, {"CLRHASH", CL_ORDINARY, cl_clrhash, 1, OBJNULL}, {"CODE-CHAR", CL_ORDINARY, cl_code_char, 1, OBJNULL}, -{"COERCE", CL_ORDINARY, NULL, -1, OBJNULL}, +{"COERCE", CL_ORDINARY, _D(cl_coerce), -1, OBJNULL}, {"COMPILATION-SPEED", CL_ORDINARY, NULL, -1, OBJNULL}, {"COMPILE", CL_ORDINARY, NULL, -1, OBJNULL}, {"COMPILE-FILE", CL_ORDINARY, NULL, -1, OBJNULL}, @@ -265,7 +270,7 @@ cl_symbols[] = { {"COMPLEX", CL_ORDINARY, cl_complex, -1, OBJNULL}, {"COMPLEXP", CL_ORDINARY, cl_complexp, 1, OBJNULL}, {"COMPUTE-RESTARTS", CL_ORDINARY, NULL, 1, OBJNULL}, -{"CONCATENATE", CL_ORDINARY, NULL, -1, OBJNULL}, +{"CONCATENATE", CL_ORDINARY, _D(cl_concatenate), -1, OBJNULL}, {"CONCATENATED-STREAM", CL_ORDINARY, NULL, -1, OBJNULL}, {"CONCATENATED-STREAM-STREAMS", CL_ORDINARY, cl_concatenated_stream_streams, 1, OBJNULL}, {"COND", CL_FORM, NULL, -1, OBJNULL}, @@ -274,12 +279,12 @@ cl_symbols[] = { {"CONTINUE", CL_ORDINARY, NULL, -1, OBJNULL}, {"CONS", CL_ORDINARY, cl_cons, 2, OBJNULL}, {"CONSP", CL_ORDINARY, cl_consp, 1, OBJNULL}, -{"CONSTANTLY", CL_ORDINARY, NULL, -1, OBJNULL}, +{"CONSTANTLY", CL_ORDINARY, _D(cl_constantly), -1, OBJNULL}, {"CONSTANTP", CL_ORDINARY, cl_constantp, -1, OBJNULL}, {"CONTROL-ERROR", CL_ORDINARY, NULL, -1, OBJNULL}, {"COPY-ALIST", CL_ORDINARY, cl_copy_alist, 1, OBJNULL}, {"COPY-LIST", CL_ORDINARY, cl_copy_list, 1, OBJNULL}, -{"COPY-PPRINT-DISPATCH", CL_ORDINARY, NULL, -1, OBJNULL}, +{"COPY-PPRINT-DISPATCH", CL_ORDINARY, _D(cl_copy_pprint_dispatch), -1, OBJNULL}, {"COPY-READTABLE", CL_ORDINARY, cl_copy_readtable, -1, OBJNULL}, {"COPY-SEQ", CL_ORDINARY, cl_copy_seq, 1, OBJNULL}, {"COPY-STRUCTURE", CL_ORDINARY, cl_copy_structure, 1, OBJNULL}, @@ -287,9 +292,9 @@ cl_symbols[] = { {"COPY-TREE", CL_ORDINARY, cl_copy_tree, 1, OBJNULL}, {"COS", CL_ORDINARY, cl_cos, 1, OBJNULL}, {"COSH", CL_ORDINARY, cl_cosh, 1, OBJNULL}, -{"COUNT", CL_ORDINARY, NULL, -1, OBJNULL}, -{"COUNT-IF", CL_ORDINARY, NULL, -1, OBJNULL}, -{"COUNT-IF-NOT", CL_ORDINARY, NULL, -1, OBJNULL}, +{"COUNT", CL_ORDINARY, _D(cl_count), -1, OBJNULL}, +{"COUNT-IF", CL_ORDINARY, _D(cl_count_if), -1, OBJNULL}, +{"COUNT-IF-NOT", CL_ORDINARY, _D(cl_count_if_not), -1, OBJNULL}, {"CTYPECASE", CL_ORDINARY, NULL, -1, OBJNULL}, {"DEBUG", CL_ORDINARY, NULL, -1, OBJNULL}, {"DECF", CL_ORDINARY, NULL, -1, OBJNULL}, @@ -297,7 +302,7 @@ cl_symbols[] = { {"DECLARATION", CL_ORDINARY, NULL, -1, OBJNULL}, {"DECLARE", CL_ORDINARY, NULL, -1, OBJNULL}, {"DECODE-FLOAT", CL_ORDINARY, cl_decode_float, 1, OBJNULL}, -{"DECODE-UNIVERSAL-TIME", CL_ORDINARY, NULL, -1, OBJNULL}, +{"DECODE-UNIVERSAL-TIME", CL_ORDINARY, _D(cl_decode_universal_time), -1, OBJNULL}, {"DEFCONSTANT", CL_ORDINARY, NULL, -1, OBJNULL}, {"DEFINE-CONDITION", CL_ORDINARY, NULL, -1, OBJNULL}, {"DEFINE-COMPILER-MACRO", CL_ORDINARY, NULL, -1, OBJNULL}, @@ -312,14 +317,14 @@ cl_symbols[] = { {"DEFTYPE", CL_ORDINARY, NULL, -1, OBJNULL}, {"DEFUN", CL_ORDINARY, NULL, -1, OBJNULL}, {"DEFVAR", CL_ORDINARY, NULL, -1, OBJNULL}, -{"DELETE", CL_ORDINARY, NULL, -1, OBJNULL}, -{"DELETE-DUPLICATES", CL_ORDINARY, NULL, -1, OBJNULL}, +{"DELETE", CL_ORDINARY, _D(cl_delete), -1, OBJNULL}, +{"DELETE-DUPLICATES", CL_ORDINARY, _D(cl_delete_duplicates), -1, OBJNULL}, {"DELETE-FILE", CL_ORDINARY, cl_delete_file, 1, OBJNULL}, -{"DELETE-IF", CL_ORDINARY, NULL, -1, OBJNULL}, -{"DELETE-IF-NOT", CL_ORDINARY, NULL, -1, OBJNULL}, +{"DELETE-IF", CL_ORDINARY, _D(cl_delete_if), -1, OBJNULL}, +{"DELETE-IF-NOT", CL_ORDINARY, _D(cl_delete_if_not), -1, OBJNULL}, {"DELETE-PACKAGE", CL_ORDINARY, cl_delete_package, 1, OBJNULL}, {"DENOMINATOR", CL_ORDINARY, cl_denominator, 1, OBJNULL}, -{"DEPOSIT-FIELD", CL_ORDINARY, NULL, -1, OBJNULL}, +{"DEPOSIT-FIELD", CL_ORDINARY, _D(cl_deposit_field), -1, OBJNULL}, {"DESCRIBE", CL_ORDINARY, NULL, -1, OBJNULL}, {"DESTRUCTURING-BIND", CL_ORDINARY, NULL, -1, OBJNULL}, {"DIGIT-CHAR", CL_ORDINARY, cl_digit_char, -1, OBJNULL}, @@ -339,7 +344,7 @@ cl_symbols[] = { {"DOUBLE-FLOAT", CL_ORDINARY, NULL, -1, OBJNULL}, {"DOUBLE-FLOAT-EPSILON", CL_CONSTANT, NULL, -1, OBJNULL}, {"DOUBLE-FLOAT-NEGATIVE-EPSILON", CL_CONSTANT, NULL, -1, OBJNULL}, -{"DPB", CL_ORDINARY, NULL, -1, OBJNULL}, +{"DPB", CL_ORDINARY, _D(cl_dpb), -1, OBJNULL}, {"DRIBBLE", CL_ORDINARY, NULL, -1, OBJNULL}, {"DYNAMIC-EXTENT", CL_ORDINARY, NULL, -1, OBJNULL}, {"ECASE", CL_ORDINARY, NULL, -1, OBJNULL}, @@ -349,11 +354,11 @@ cl_symbols[] = { {"ED", CL_ORDINARY, NULL, -1, OBJNULL}, {"EIGHTH", CL_ORDINARY, cl_eighth, 1, OBJNULL}, {"ELT", CL_ORDINARY, cl_elt, 2, OBJNULL}, -{"ENCODE-UNIVERSAL-TIME", CL_ORDINARY, NULL, -1, OBJNULL}, +{"ENCODE-UNIVERSAL-TIME", CL_ORDINARY, _D(cl_encode_universal_time), -1, OBJNULL}, {"END-OF-FILE", CL_ORDINARY, NULL, -1, OBJNULL}, {"ENDP", CL_ORDINARY, cl_endp, 1, OBJNULL}, {"ENOUGH-NAMESTRING", CL_ORDINARY, cl_enough_namestring, -1, OBJNULL}, -{"ENSURE-DIRECTORIES-EXIST", CL_ORDINARY, NULL, -1, OBJNULL}, +{"ENSURE-DIRECTORIES-EXIST", CL_ORDINARY, _D(cl_ensure_directories_exist), -1, OBJNULL}, {"EQ", CL_ORDINARY, cl_eq, 2, OBJNULL}, {"EQL", CL_ORDINARY, cl_eql, 2, OBJNULL}, {"EQUAL", CL_ORDINARY, cl_equal, 2, OBJNULL}, @@ -363,15 +368,15 @@ cl_symbols[] = { {"EVAL", CL_ORDINARY, cl_eval, 1, OBJNULL}, {"EVAL-WHEN", CL_FORM, NULL, -1, OBJNULL}, {"EVENP", CL_ORDINARY, cl_evenp, 1, OBJNULL}, -{"EVERY", CL_ORDINARY, NULL, -1, OBJNULL}, +{"EVERY", CL_ORDINARY, _D(cl_every), -1, OBJNULL}, {"EXP", CL_ORDINARY, cl_exp, 1, OBJNULL}, {"EXPORT", CL_ORDINARY, cl_export, -1, OBJNULL}, {"EXPT", CL_ORDINARY, cl_expt, 2, OBJNULL}, {"EXTENDED-CHAR", CL_ORDINARY, NULL, -1, OBJNULL}, {"FBOUNDP", CL_ORDINARY, cl_fboundp, 1, OBJNULL}, -{"FCEILING", CL_ORDINARY, NULL, -1, OBJNULL}, +{"FCEILING", CL_ORDINARY, _D(cl_fceiling), -1, OBJNULL}, {"FDEFINITION", CL_ORDINARY, cl_fdefinition, 1, OBJNULL}, -{"FFLOOR", CL_ORDINARY, NULL, -1, OBJNULL}, +{"FFLOOR", CL_ORDINARY, _D(cl_ffloor), -1, OBJNULL}, {"FIFTH", CL_ORDINARY, cl_fifth, 1, OBJNULL}, {"FILE-AUTHOR", CL_ORDINARY, cl_file_author, 1, OBJNULL}, {"FILE-ERROR", CL_ORDINARY, NULL, -1, OBJNULL}, @@ -382,12 +387,12 @@ cl_symbols[] = { {"FILE-STREAM", CL_ORDINARY, NULL, -1, OBJNULL}, {"FILE-STRING-LENGTH", CL_ORDINARY, cl_file_string_length, 2, OBJNULL}, {"FILE-WRITE-DATE", CL_ORDINARY, cl_file_write_date, 1, OBJNULL}, -{"FILL", CL_ORDINARY, NULL, -1, OBJNULL}, +{"FILL", CL_ORDINARY, _D(cl_fill), -1, OBJNULL}, {"FILL-POINTER", CL_ORDINARY, cl_fill_pointer, 1, OBJNULL}, -{"FIND", CL_ORDINARY, NULL, -1, OBJNULL}, -{"FIND-ALL-SYMBOLS", CL_ORDINARY, NULL, -1, OBJNULL}, -{"FIND-IF", CL_ORDINARY, NULL, -1, OBJNULL}, -{"FIND-IF-NOT", CL_ORDINARY, NULL, -1, OBJNULL}, +{"FIND", CL_ORDINARY, _D(cl_find), -1, OBJNULL}, +{"FIND-ALL-SYMBOLS", CL_ORDINARY, _D(cl_find_all_symbols), -1, OBJNULL}, +{"FIND-IF", CL_ORDINARY, _D(cl_find_if), -1, OBJNULL}, +{"FIND-IF-NOT", CL_ORDINARY, _D(cl_find_if_not), -1, OBJNULL}, {"FIND-PACKAGE", CL_ORDINARY, cl_find_package, 1, OBJNULL}, {"FIND-RESTART", CL_ORDINARY, NULL, -1, OBJNULL}, {"FIND-SYMBOL", CL_ORDINARY, cl_find_symbol, -1, OBJNULL}, @@ -412,8 +417,8 @@ cl_symbols[] = { {"FORMATTER", CL_ORDINARY, NULL, -1, OBJNULL}, {"FOURTH", CL_ORDINARY, cl_cadddr, 1, OBJNULL}, {"FRESH-LINE", CL_ORDINARY, cl_fresh_line, -1, OBJNULL}, -{"FROUND", CL_ORDINARY, NULL, -1, OBJNULL}, -{"FTRUNCATE", CL_ORDINARY, NULL, -1, OBJNULL}, +{"FROUND", CL_ORDINARY, _D(cl_fround), -1, OBJNULL}, +{"FTRUNCATE", CL_ORDINARY, _D(cl_ftruncate), -1, OBJNULL}, {"FTYPE", CL_ORDINARY, NULL, -1, OBJNULL}, {"FUNCALL", CL_ORDINARY, cl_funcall, -1, OBJNULL}, {"FUNCTION-LAMBDA-EXPRESSION", CL_ORDINARY, cl_function_lambda_expression, 1, OBJNULL}, @@ -424,7 +429,7 @@ cl_symbols[] = { {"GENSYM", CL_ORDINARY, cl_gensym, -1, OBJNULL}, {"GENTEMP", CL_ORDINARY, cl_gentemp, -1, OBJNULL}, {"GET", CL_ORDINARY, cl_get, -1, OBJNULL}, -{"GET-DECODED-TIME", CL_ORDINARY, NULL, -1, OBJNULL}, +{"GET-DECODED-TIME", CL_ORDINARY, _D(cl_get_decoded_time), -1, OBJNULL}, {"GET-DISPATCH-MACRO-CHARACTER", CL_ORDINARY, cl_get_dispatch_macro_character, -1, OBJNULL}, {"GET-INTERNAL-REAL-TIME", CL_ORDINARY, cl_get_internal_real_time, 0, OBJNULL}, {"GET-INTERNAL-RUN-TIME", CL_ORDINARY, cl_get_internal_run_time, 0, OBJNULL}, @@ -465,11 +470,11 @@ cl_symbols[] = { {"INTERACTIVE-STREAM-P", CL_ORDINARY, cl_interactive_stream_p, 1, OBJNULL}, {"INTERN", CL_ORDINARY, cl_intern, -1, OBJNULL}, {"INTERNAL-TIME-UNITS-PER-SECOND", CL_CONSTANT, NULL, -1, OBJNULL}, -{"INTERSECTION", CL_ORDINARY, NULL, -1, OBJNULL}, +{"INTERSECTION", CL_ORDINARY, _D(cl_intersection), -1, OBJNULL}, {"INVOKE-DEBUGGER", CL_ORDINARY, NULL, -1, OBJNULL}, {"INVOKE-RESTART", CL_ORDINARY, NULL, -1, OBJNULL}, {"INVOKE-RESTART-INTERACTIVELY", CL_ORDINARY, NULL, -1, OBJNULL}, -{"ISQRT", CL_ORDINARY, NULL, -1, OBJNULL}, +{"ISQRT", CL_ORDINARY, _D(cl_isqrt), -1, OBJNULL}, {"KEYWORD", CL_ORDINARY, NULL, -1, OBJNULL}, {"KEYWORDP", CL_ORDINARY, cl_keywordp, 1, OBJNULL}, {"LABELS", CL_FORM, NULL, -1, OBJNULL}, @@ -478,8 +483,8 @@ cl_symbols[] = { {"LAMBDA-PARAMETERS-LIMIT", CL_CONSTANT, NULL, -1, MAKE_FIXNUM(LAMBDA_PARAMETERS_LIMIT)}, {"LAST", CL_ORDINARY, cl_last, -1, OBJNULL}, {"LCM", CL_ORDINARY, cl_lcm, -1, OBJNULL}, -{"LDB", CL_ORDINARY, NULL, -1, OBJNULL}, -{"LDB-TEST", CL_ORDINARY, NULL, -1, OBJNULL}, +{"LDB", CL_ORDINARY, _D(cl_ldb), -1, OBJNULL}, +{"LDB-TEST", CL_ORDINARY, _D(cl_ldb_test), -1, OBJNULL}, {"LDIFF", CL_ORDINARY, cl_ldiff, 2, OBJNULL}, {"LEAST-NEGATIVE-DOUBLE-FLOAT", CL_CONSTANT, NULL, -1, OBJNULL}, {"LEAST-NEGATIVE-LONG-FLOAT", CL_CONSTANT, NULL, -1, OBJNULL}, @@ -509,7 +514,7 @@ cl_symbols[] = { {"LISTEN", CL_ORDINARY, cl_listen, -1, OBJNULL}, {"LISTP", CL_ORDINARY, cl_listp, 1, OBJNULL}, {"LOAD", CL_ORDINARY, cl_load, -1, OBJNULL}, -{"LOAD-LOGICAL-PATHNAME-TRANSLATIONS", CL_ORDINARY, NULL, -1, OBJNULL}, +{"LOAD-LOGICAL-PATHNAME-TRANSLATIONS", CL_ORDINARY, _D(cl_load_logical_pathname_translations), -1, OBJNULL}, {"LOAD-TIME-VALUE", CL_FORM, NULL, -1, OBJNULL}, {"LOCALLY", CL_FORM, NULL, -1, OBJNULL}, {"LOG", CL_ORDINARY, cl_log, -1, OBJNULL}, @@ -520,14 +525,14 @@ cl_symbols[] = { {"LOGCOUNT", CL_ORDINARY, cl_logcount, 1, OBJNULL}, {"LOGEQV", CL_ORDINARY, cl_logeqv, -1, OBJNULL}, {"LOGICAL-PATHNAME", CL_ORDINARY, cl_logical_pathname, 1, OBJNULL}, -{"LOGICAL-PATHNAME-TRANSLATIONS", CL_ORDINARY, NULL, -1, OBJNULL}, +{"LOGICAL-PATHNAME-TRANSLATIONS", CL_ORDINARY, _D(cl_logical_pathname_translations), -1, OBJNULL}, {"LOGIOR", CL_ORDINARY, cl_logior, -1, OBJNULL}, {"LOGNAND", CL_ORDINARY, cl_lognand, 2, OBJNULL}, {"LOGNOR", CL_ORDINARY, cl_lognor, 2, OBJNULL}, {"LOGNOT", CL_ORDINARY, cl_lognot, 1, OBJNULL}, {"LOGORC1", CL_ORDINARY, cl_logorc1, 2, OBJNULL}, {"LOGORC2", CL_ORDINARY, cl_logorc2, 2, OBJNULL}, -{"LOGTEST", CL_ORDINARY, NULL, -1, OBJNULL}, +{"LOGTEST", CL_ORDINARY, _D(cl_logtest), -1, OBJNULL}, {"LOGXOR", CL_ORDINARY, cl_logxor, -1, OBJNULL}, {"LONG-FLOAT", CL_ORDINARY, NULL, -1, OBJNULL}, {"LONG-FLOAT-EPSILON", CL_CONSTANT, NULL, -1, OBJNULL}, @@ -543,7 +548,7 @@ cl_symbols[] = { {"MACROEXPAND", CL_ORDINARY, cl_macroexpand, -1, OBJNULL}, {"MACROEXPAND-1", CL_ORDINARY, cl_macroexpand_1, -1, OBJNULL}, {"MACROLET", CL_FORM, NULL, -1, OBJNULL}, -{"MAKE-ARRAY", CL_ORDINARY, NULL, -1, OBJNULL}, +{"MAKE-ARRAY", CL_ORDINARY, _D(cl_make_array), -1, OBJNULL}, {"MAKE-BROADCAST-STREAM", CL_ORDINARY, cl_make_broadcast_stream, -1, OBJNULL}, {"MAKE-CONDITION", CL_ORDINARY, NULL, -1, OBJNULL}, {"MAKE-CONCATENATED-STREAM", CL_ORDINARY, cl_make_concatenated_stream, -1, OBJNULL}, @@ -554,7 +559,7 @@ cl_symbols[] = { {"MAKE-PACKAGE", CL_ORDINARY, cl_make_package, -1, OBJNULL}, {"MAKE-PATHNAME", CL_ORDINARY, cl_make_pathname, -1, OBJNULL}, {"MAKE-RANDOM-STATE", CL_ORDINARY, cl_make_random_state, -1, OBJNULL}, -{"MAKE-SEQUENCE", CL_ORDINARY, NULL, -1, OBJNULL}, +{"MAKE-SEQUENCE", CL_ORDINARY, _D(cl_make_sequence), -1, OBJNULL}, {"MAKE-STRING", CL_ORDINARY, cl_make_string, -1, OBJNULL}, {"MAKE-STRING-INPUT-STREAM", CL_ORDINARY, cl_make_string_input_stream, -1, OBJNULL}, {"MAKE-STRING-OUTPUT-STREAM", CL_ORDINARY, cl_make_string_output_stream, -1, OBJNULL}, @@ -562,8 +567,8 @@ cl_symbols[] = { {"MAKE-SYNONYM-STREAM", CL_ORDINARY, cl_make_synonym_stream, 1, OBJNULL}, {"MAKE-TWO-WAY-STREAM", CL_ORDINARY, cl_make_two_way_stream, 2, OBJNULL}, {"MAKUNBOUND", CL_ORDINARY, cl_makunbound, 1, OBJNULL}, -{"MAP", CL_ORDINARY, NULL, -1, OBJNULL}, -{"MAP-INTO", CL_ORDINARY, NULL, -1, OBJNULL}, +{"MAP", CL_ORDINARY, _D(cl_map), -1, OBJNULL}, +{"MAP-INTO", CL_ORDINARY, _D(cl_map_into), -1, OBJNULL}, {"MAPC", CL_ORDINARY, cl_mapc, -1, OBJNULL}, {"MAPCAN", CL_ORDINARY, cl_mapcan, -1, OBJNULL}, {"MAPCAR", CL_ORDINARY, cl_mapcar, -1, OBJNULL}, @@ -571,16 +576,16 @@ cl_symbols[] = { {"MAPHASH", CL_ORDINARY, cl_maphash, 2, OBJNULL}, {"MAPL", CL_ORDINARY, cl_mapl, -1, OBJNULL}, {"MAPLIST", CL_ORDINARY, cl_maplist, -1, OBJNULL}, -{"MASK-FIELD", CL_ORDINARY, NULL, -1, OBJNULL}, +{"MASK-FIELD", CL_ORDINARY, _D(cl_mask_field), -1, OBJNULL}, {"MAX", CL_ORDINARY, cl_max, -1, OBJNULL}, {"MEMBER", CL_ORDINARY, cl_member, -1, OBJNULL}, -{"MEMBER-IF", CL_ORDINARY, NULL, -1, OBJNULL}, -{"MEMBER-IF-NOT", CL_ORDINARY, NULL, -1, OBJNULL}, -{"MERGE", CL_ORDINARY, NULL, -1, OBJNULL}, +{"MEMBER-IF", CL_ORDINARY, _D(cl_member_if), -1, OBJNULL}, +{"MEMBER-IF-NOT", CL_ORDINARY, _D(cl_member_if_not), -1, OBJNULL}, +{"MERGE", CL_ORDINARY, _D(cl_merge), -1, OBJNULL}, {"MERGE-PATHNAMES", CL_ORDINARY, cl_merge_pathnames, -1, OBJNULL}, {"MIN", CL_ORDINARY, cl_min, -1, OBJNULL}, {"MINUSP", CL_ORDINARY, cl_minusp, 1, OBJNULL}, -{"MISMATCH", CL_ORDINARY, NULL, -1, OBJNULL}, +{"MISMATCH", CL_ORDINARY, _D(cl_mismatch), -1, OBJNULL}, {"MOD", CL_ORDINARY, cl_mod, 2, OBJNULL}, {"MOST-NEGATIVE-DOUBLE-FLOAT", CL_CONSTANT, NULL, -1, OBJNULL}, {"MOST-NEGATIVE-FIXNUM", CL_CONSTANT, NULL, -1, MAKE_FIXNUM(MOST_NEGATIVE_FIXNUM)}, @@ -603,26 +608,26 @@ cl_symbols[] = { {"NAMESTRING", CL_ORDINARY, cl_namestring, 1, OBJNULL}, {"NBUTLAST", CL_ORDINARY, cl_nbutlast, -1, OBJNULL}, {"NCONC", CL_ORDINARY, cl_nconc, -1, OBJNULL}, -{"NINTERSECTION", CL_ORDINARY, NULL, -1, OBJNULL}, +{"NINTERSECTION", CL_ORDINARY, _D(cl_nintersection), -1, OBJNULL}, {"NINTH", CL_ORDINARY, cl_ninth, 1, OBJNULL}, {"NOT", CL_ORDINARY, cl_not, 1, OBJNULL}, -{"NOTANY", CL_ORDINARY, NULL, -1, OBJNULL}, -{"NOTEVERY", CL_ORDINARY, NULL, -1, OBJNULL}, +{"NOTANY", CL_ORDINARY, _D(cl_notany), -1, OBJNULL}, +{"NOTEVERY", CL_ORDINARY, _D(cl_notevery), -1, OBJNULL}, {"NOTINLINE", CL_ORDINARY, NULL, -1, OBJNULL}, {"NRECONC", CL_ORDINARY, cl_nreconc, 2, OBJNULL}, {"NREVERSE", CL_ORDINARY, cl_nreverse, 1, OBJNULL}, -{"NSET-DIFFERENCE", CL_ORDINARY, NULL, -1, OBJNULL}, -{"NSET-EXCLUSIVE-OR", CL_ORDINARY, NULL, -1, OBJNULL}, +{"NSET-DIFFERENCE", CL_ORDINARY, _D(cl_nset_difference), -1, OBJNULL}, +{"NSET-EXCLUSIVE-OR", CL_ORDINARY, _D(cl_nset_exclusive_or), -1, OBJNULL}, {"NSTRING-CAPITALIZE", CL_ORDINARY, cl_nstring_capitalize, -1, OBJNULL}, {"NSTRING-DOWNCASE", CL_ORDINARY, cl_nstring_downcase, -1, OBJNULL}, {"NSTRING-UPCASE", CL_ORDINARY, cl_nstring_upcase, -1, OBJNULL}, {"NSUBLIS", CL_ORDINARY, cl_nsublis, -1, OBJNULL}, {"NSUBST", CL_ORDINARY, cl_nsubst, -1, OBJNULL}, -{"NSUBST-IF", CL_ORDINARY, NULL, -1, OBJNULL}, -{"NSUBST-IF-NOT", CL_ORDINARY, NULL, -1, OBJNULL}, -{"NSUBSTITUTE", CL_ORDINARY, NULL, -1, OBJNULL}, -{"NSUBSTITUTE-IF", CL_ORDINARY, NULL, -1, OBJNULL}, -{"NSUBSTITUTE-IF-NOT", CL_ORDINARY, NULL, -1, OBJNULL}, +{"NSUBST-IF", CL_ORDINARY, _D(cl_nsubst_if), -1, OBJNULL}, +{"NSUBST-IF-NOT", CL_ORDINARY, _D(cl_nsubst_if_not), -1, OBJNULL}, +{"NSUBSTITUTE", CL_ORDINARY, _D(cl_nsubstitute), -1, OBJNULL}, +{"NSUBSTITUTE-IF", CL_ORDINARY, _D(cl_nsubstitute_if), -1, OBJNULL}, +{"NSUBSTITUTE-IF-NOT", CL_ORDINARY, _D(cl_nsubstitute_if_not), -1, OBJNULL}, {"NTH", CL_ORDINARY, cl_nth, 2, OBJNULL}, {"NTH-VALUE", CL_FORM, NULL, -1, OBJNULL}, {"NTHCDR", CL_ORDINARY, cl_nthcdr, 2, OBJNULL}, @@ -630,7 +635,7 @@ cl_symbols[] = { {"NUMBER", CL_ORDINARY, NULL, -1, OBJNULL}, {"NUMBERP", CL_ORDINARY, cl_numberp, 1, OBJNULL}, {"NUMERATOR", CL_ORDINARY, cl_numerator, 1, OBJNULL}, -{"NUNION", CL_ORDINARY, NULL, -1, OBJNULL}, +{"NUNION", CL_ORDINARY, _D(cl_nunion), -1, OBJNULL}, {"ODDP", CL_ORDINARY, cl_oddp, 1, OBJNULL}, {"OPEN", CL_ORDINARY, cl_open, -1, OBJNULL}, {"OPEN-STREAM-P", CL_ORDINARY, cl_open_stream_p, 1, OBJNULL}, @@ -661,28 +666,28 @@ cl_symbols[] = { {"PATHNAME-VERSION", CL_ORDINARY, cl_pathname_version, 1, OBJNULL}, {"PATHNAMEP", CL_ORDINARY, cl_pathnamep, 1, OBJNULL}, {"PEEK-CHAR", CL_ORDINARY, cl_peek_char, -1, OBJNULL}, -{"PHASE", CL_ORDINARY, NULL, -1, OBJNULL}, +{"PHASE", CL_ORDINARY, _D(cl_phase), -1, OBJNULL}, {"PI", CL_CONSTANT, NULL, -1, OBJNULL}, {"PLUSP", CL_ORDINARY, cl_plusp, 1, OBJNULL}, {"POP", CL_ORDINARY, NULL, -1, OBJNULL}, -{"POSITION", CL_ORDINARY, NULL, -1, OBJNULL}, -{"POSITION-IF", CL_ORDINARY, NULL, -1, OBJNULL}, -{"POSITION-IF-NOT", CL_ORDINARY, NULL, -1, OBJNULL}, +{"POSITION", CL_ORDINARY, _D(cl_position), -1, OBJNULL}, +{"POSITION-IF", CL_ORDINARY, _D(cl_position_if), -1, OBJNULL}, +{"POSITION-IF-NOT", CL_ORDINARY, _D(cl_position_if_not), -1, OBJNULL}, {"PPRINT", CL_ORDINARY, cl_pprint, -1, OBJNULL}, -{"PPRINT-DISPATCH", CL_ORDINARY, NULL, -1, OBJNULL}, +{"PPRINT-DISPATCH", CL_ORDINARY, _D(cl_pprint_dispatch), -1, OBJNULL}, {"PPRINT-EXIT-IF-LIST-EXHAUSTED", CL_ORDINARY, NULL, -1, OBJNULL}, -{"PPRINT-FILL", CL_ORDINARY, NULL, -1, OBJNULL}, -{"PPRINT-INDENT", CL_ORDINARY, NULL, -1, OBJNULL}, -{"PPRINT-LINEAR", CL_ORDINARY, NULL, -1, OBJNULL}, +{"PPRINT-FILL", CL_ORDINARY, _D(cl_pprint_fill), -1, OBJNULL}, +{"PPRINT-INDENT", CL_ORDINARY, _D(cl_pprint_indent), -1, OBJNULL}, +{"PPRINT-LINEAR", CL_ORDINARY, _D(cl_pprint_linear), -1, OBJNULL}, {"PPRINT-LOGICAL-BLOCK", CL_ORDINARY, NULL, -1, OBJNULL}, -{"PPRINT-NEWLINE", CL_ORDINARY, NULL, -1, OBJNULL}, +{"PPRINT-NEWLINE", CL_ORDINARY, _D(cl_pprint_newline), -1, OBJNULL}, {"PPRINT-POP", CL_ORDINARY, NULL, -1, OBJNULL}, -{"PPRINT-TAB", CL_ORDINARY, NULL, -1, OBJNULL}, -{"PPRINT-TABULAR", CL_ORDINARY, NULL, -1, OBJNULL}, +{"PPRINT-TAB", CL_ORDINARY, _D(cl_pprint_tab), -1, OBJNULL}, +{"PPRINT-TABULAR", CL_ORDINARY, _D(cl_pprint_tabular), -1, OBJNULL}, {"PRIN1", CL_ORDINARY, cl_prin1, -1, OBJNULL}, -{"PRIN1-TO-STRING", CL_ORDINARY, NULL, -1, OBJNULL}, +{"PRIN1-TO-STRING", CL_ORDINARY, _D(cl_prin1_to_string), -1, OBJNULL}, {"PRINC", CL_ORDINARY, cl_princ, -1, OBJNULL}, -{"PRINC-TO-STRING", CL_ORDINARY, NULL, -1, OBJNULL}, +{"PRINC-TO-STRING", CL_ORDINARY, _D(cl_princ_to_string), -1, OBJNULL}, {"PRINT", CL_ORDINARY, cl_print, -1, OBJNULL}, {"PRINT-NOT-READABLE", CL_ORDINARY, NULL, -1, OBJNULL}, {"PRINT-NOT-READABLE-OBJECT", CL_ORDINARY, NULL, -1, OBJNULL}, @@ -695,7 +700,7 @@ cl_symbols[] = { {"PROGN", CL_FORM, NULL, -1, OBJNULL}, {"PROGRAM-ERROR", CL_ORDINARY, NULL, -1, OBJNULL}, {"PROGV", CL_FORM, NULL, -1, OBJNULL}, -{"PROVIDE", CL_ORDINARY, NULL, -1, OBJNULL}, +{"PROVIDE", CL_ORDINARY, _D(cl_provide), -1, OBJNULL}, {"PSETF", CL_ORDINARY, NULL, -1, OBJNULL}, {"PSETQ", CL_FORM, NULL, -1, OBJNULL}, {"PUSH", CL_ORDINARY, NULL, -1, OBJNULL}, @@ -705,8 +710,8 @@ cl_symbols[] = { {"RANDOM-STATE", CL_ORDINARY, NULL, -1, OBJNULL}, {"RANDOM-STATE-P", CL_ORDINARY, cl_random_state_p, 1, OBJNULL}, {"RASSOC", CL_ORDINARY, cl_rassoc, -1, OBJNULL}, -{"RASSOC-IF", CL_ORDINARY, NULL, -1, OBJNULL}, -{"RASSOC-IF-NOT", CL_ORDINARY, NULL, -1, OBJNULL}, +{"RASSOC-IF", CL_ORDINARY, _D(cl_rassoc_if), -1, OBJNULL}, +{"RASSOC-IF-NOT", CL_ORDINARY, _D(cl_rassoc_if_not), -1, OBJNULL}, {"RATIO", CL_ORDINARY, NULL, -1, OBJNULL}, {"RATIONAL", CL_ORDINARY, cl_rational, 1, OBJNULL}, {"RATIONALIZE", CL_ORDINARY, cl_rationalize, 1, OBJNULL}, @@ -716,7 +721,7 @@ cl_symbols[] = { {"READ-CHAR", CL_ORDINARY, cl_read_char, -1, OBJNULL}, {"READ-CHAR-NO-HANG", CL_ORDINARY, cl_read_char_no_hang, -1, OBJNULL}, {"READ-DELIMITED-LIST", CL_ORDINARY, cl_read_delimited_list, -1, OBJNULL}, -{"READ-FROM-STRING", CL_ORDINARY, NULL, -1, OBJNULL}, +{"READ-FROM-STRING", CL_ORDINARY, _D(cl_read_from_string), -1, OBJNULL}, {"READ-LINE", CL_ORDINARY, cl_read_line, -1, OBJNULL}, {"READ-PRESERVING-WHITESPACE", CL_ORDINARY, cl_read_preserving_whitespace, -1, OBJNULL}, {"READ-SEQUENCE", CL_ORDINARY, cl_read_sequence, -1, OBJNULL}, @@ -727,19 +732,19 @@ cl_symbols[] = { {"REAL", CL_ORDINARY, NULL, -1, OBJNULL}, {"REALP", CL_ORDINARY, cl_realp, 1, OBJNULL}, {"REALPART", CL_ORDINARY, cl_realpart, 1, OBJNULL}, -{"REDUCE", CL_ORDINARY, NULL, -1, OBJNULL}, +{"REDUCE", CL_ORDINARY, _D(cl_reduce), -1, OBJNULL}, {"REM", CL_ORDINARY, cl_rem, 2, OBJNULL}, {"REMF", CL_ORDINARY, NULL, -1, OBJNULL}, {"REMHASH", CL_ORDINARY, cl_remhash, 2, OBJNULL}, -{"REMOVE", CL_ORDINARY, NULL, -1, OBJNULL}, -{"REMOVE-DUPLICATES", CL_ORDINARY, NULL, -1, OBJNULL}, -{"REMOVE-IF", CL_ORDINARY, NULL, -1, OBJNULL}, -{"REMOVE-IF-NOT", CL_ORDINARY, NULL, -1, OBJNULL}, +{"REMOVE", CL_ORDINARY, _D(cl_remove), -1, OBJNULL}, +{"REMOVE-DUPLICATES", CL_ORDINARY, _D(cl_remove_duplicates), -1, OBJNULL}, +{"REMOVE-IF", CL_ORDINARY, _D(cl_remove_if), -1, OBJNULL}, +{"REMOVE-IF-NOT", CL_ORDINARY, _D(cl_remove_if_not), -1, OBJNULL}, {"REMPROP", CL_ORDINARY, cl_remprop, 2, OBJNULL}, {"RENAME-FILE", CL_ORDINARY, cl_rename_file, 2, OBJNULL}, {"RENAME-PACKAGE", CL_ORDINARY, cl_rename_package, -1, OBJNULL}, -{"REPLACE", CL_ORDINARY, NULL, -1, OBJNULL}, -{"REQUIRE", CL_ORDINARY, NULL, -1, OBJNULL}, +{"REPLACE", CL_ORDINARY, _D(cl_replace), -1, OBJNULL}, +{"REQUIRE", CL_ORDINARY, _D(cl_require), -1, OBJNULL}, {"REST", CL_ORDINARY, cl_cdr, 1, OBJNULL}, {"RESTART", CL_ORDINARY, NULL, 1, OBJNULL}, {"RESTART-BIND", CL_ORDINARY, NULL, 1, OBJNULL}, @@ -757,19 +762,19 @@ cl_symbols[] = { {"RPLACD", CL_ORDINARY, cl_rplacd, 2, OBJNULL}, {"SAFETY", CL_ORDINARY, NULL, -1, OBJNULL}, {"SATISFIES", CL_ORDINARY, NULL, -1, OBJNULL}, -{"SBIT", CL_ORDINARY, NULL, -1, OBJNULL}, +{"SBIT", CL_ORDINARY, _D(cl_sbit), -1, OBJNULL}, {"SCALE-FLOAT", CL_ORDINARY, cl_scale_float, 2, OBJNULL}, {"SCHAR", CL_ORDINARY, cl_char, 2, OBJNULL}, -{"SEARCH", CL_ORDINARY, NULL, -1, OBJNULL}, +{"SEARCH", CL_ORDINARY, _D(cl_search), -1, OBJNULL}, {"SECOND", CL_ORDINARY, cl_cadr, 1, OBJNULL}, {"SEQUENCE", CL_ORDINARY, NULL, -1, OBJNULL}, {"SERIOUS-CONDITION", CL_ORDINARY, NULL, -1, OBJNULL}, {"SET", CL_ORDINARY, cl_set, 2, OBJNULL}, -{"SET-DIFFERENCE", CL_ORDINARY, NULL, -1, OBJNULL}, +{"SET-DIFFERENCE", CL_ORDINARY, _D(cl_set_difference), -1, OBJNULL}, {"SET-DISPATCH-MACRO-CHARACTER", CL_ORDINARY, cl_set_dispatch_macro_character, -1, OBJNULL}, -{"SET-EXCLUSIVE-OR", CL_ORDINARY, NULL, -1, OBJNULL}, +{"SET-EXCLUSIVE-OR", CL_ORDINARY, _D(cl_set_exclusive_or), -1, OBJNULL}, {"SET-MACRO-CHARACTER", CL_ORDINARY, cl_set_macro_character, -1, OBJNULL}, -{"SET-PPRINT-DISPATCH", CL_ORDINARY, NULL, -1, OBJNULL}, +{"SET-PPRINT-DISPATCH", CL_ORDINARY, _D(cl_set_pprint_dispatch), -1, OBJNULL}, {"SET-SYNTAX-FROM-CHAR", CL_ORDINARY, cl_set_syntax_from_char, -1, OBJNULL}, {"SETF", CL_ORDINARY, NULL, -1, OBJNULL}, {"SETQ", CL_FORM, NULL, -1, OBJNULL}, @@ -783,7 +788,7 @@ cl_symbols[] = { {"SHORT-SITE-NAME", CL_ORDINARY, NULL, -1, OBJNULL}, {"SIGNAL", CL_ORDINARY, NULL, -1, OBJNULL}, {"SIGNED-BYTE", CL_ORDINARY, NULL, -1, OBJNULL}, -{"SIGNUM", CL_ORDINARY, NULL, -1, OBJNULL}, +{"SIGNUM", CL_ORDINARY, _D(cl_signum), -1, OBJNULL}, {"SIMPLE-ARRAY", CL_ORDINARY, NULL, -1, OBJNULL}, {"SIMPLE-BASE-STRING", CL_ORDINARY, NULL, -1, OBJNULL}, {"SIMPLE-BIT-VECTOR", CL_ORDINARY, NULL, -1, OBJNULL}, @@ -807,14 +812,14 @@ cl_symbols[] = { {"SLEEP", CL_ORDINARY, cl_sleep, 1, OBJNULL}, {"SOFTWARE-TYPE", CL_ORDINARY, NULL, -1, OBJNULL}, {"SOFTWARE-VERSION", CL_ORDINARY, NULL, -1, OBJNULL}, -{"SOME", CL_ORDINARY, NULL, -1, OBJNULL}, -{"SORT", CL_ORDINARY, NULL, -1, OBJNULL}, +{"SOME", CL_ORDINARY, _D(cl_some), -1, OBJNULL}, +{"SORT", CL_ORDINARY, _D(cl_sort), -1, OBJNULL}, {"SPACE", CL_ORDINARY, NULL, -1, OBJNULL}, {"SPECIAL", CL_ORDINARY, NULL, -1, OBJNULL}, {"SPECIAL-OPERATOR-P", CL_ORDINARY, cl_special_operator_p, 1, OBJNULL}, {"SPEED", CL_ORDINARY, NULL, -1, OBJNULL}, {"SQRT", CL_ORDINARY, cl_sqrt, 1, OBJNULL}, -{"STABLE-SORT", CL_ORDINARY, NULL, -1, OBJNULL}, +{"STABLE-SORT", CL_ORDINARY, _D(cl_stable_sort), -1, OBJNULL}, {"STANDARD-CHAR", CL_ORDINARY, NULL, -1, OBJNULL}, {"STANDARD-CHAR-P", CL_ORDINARY, cl_standard_char_p, 1, OBJNULL}, {"STEP", CL_ORDINARY, NULL, -1, OBJNULL}, @@ -851,14 +856,14 @@ cl_symbols[] = { {"STYLE-WARNING", CL_ORDINARY, NULL, -1, OBJNULL}, {"SUBLIS", CL_ORDINARY, cl_sublis, -1, OBJNULL}, {"SUBSEQ", CL_ORDINARY, cl_subseq, -1, OBJNULL}, -{"SUBSETP", CL_ORDINARY, NULL, -1, OBJNULL}, +{"SUBSETP", CL_ORDINARY, _D(cl_subsetp), -1, OBJNULL}, {"SUBST", CL_ORDINARY, cl_subst, -1, OBJNULL}, -{"SUBST-IF", CL_ORDINARY, NULL, -1, OBJNULL}, -{"SUBST-IF-NOT", CL_ORDINARY, NULL, -1, OBJNULL}, -{"SUBSTITUTE", CL_ORDINARY, NULL, -1, OBJNULL}, -{"SUBSTITUTE-IF", CL_ORDINARY, NULL, -1, OBJNULL}, -{"SUBSTITUTE-IF-NOT", CL_ORDINARY, NULL, -1, OBJNULL}, -{"SUBTYPEP", CL_ORDINARY, NULL, -1, OBJNULL}, +{"SUBST-IF", CL_ORDINARY, _D(cl_subst_if), -1, OBJNULL}, +{"SUBST-IF-NOT", CL_ORDINARY, _D(cl_subst_if_not), -1, OBJNULL}, +{"SUBSTITUTE", CL_ORDINARY, _D(cl_substitute), -1, OBJNULL}, +{"SUBSTITUTE-IF", CL_ORDINARY, _D(cl_substitute_if), -1, OBJNULL}, +{"SUBSTITUTE-IF-NOT", CL_ORDINARY, _D(cl_substitute_if_not), -1, OBJNULL}, +{"SUBTYPEP", CL_ORDINARY, _D(cl_subtypep), -1, OBJNULL}, {"SVREF", CL_ORDINARY, cl_svref, 2, OBJNULL}, {"SXHASH", CL_ORDINARY, cl_sxhash, 1, OBJNULL}, {"SYMBOL", CL_ORDINARY, NULL, -1, OBJNULL}, @@ -896,22 +901,22 @@ cl_symbols[] = { {"TYPE-ERROR-EXPECTED-TYPE", CL_ORDINARY, NULL, -1, OBJNULL}, {"TYPE-OF", CL_ORDINARY, cl_type_of, 1, OBJNULL}, {"TYPECASE", CL_ORDINARY, NULL, -1, OBJNULL}, -{"TYPEP", CL_ORDINARY, NULL, -1, OBJNULL}, +{"TYPEP", CL_ORDINARY, _D(cl_typep), -1, OBJNULL}, {"UNBOUND-SLOT", CL_ORDINARY, NULL, -1, OBJNULL}, {"UNBOUND-SLOT-INSTANCE", CL_ORDINARY, NULL, -1, OBJNULL}, {"UNBOUND-VARIABLE", CL_ORDINARY, NULL, -1, OBJNULL}, {"UNDEFINED-FUNCTION", CL_ORDINARY, NULL, -1, OBJNULL}, {"UNEXPORT", CL_ORDINARY, cl_unexport, -1, OBJNULL}, {"UNINTERN", CL_ORDINARY, cl_unintern, -1, OBJNULL}, -{"UNION", CL_ORDINARY, NULL, -1, OBJNULL}, +{"UNION", CL_ORDINARY, _D(cl_union), -1, OBJNULL}, {"UNLESS", CL_FORM, NULL, -1, OBJNULL}, {"UNREAD-CHAR", CL_ORDINARY, cl_unread_char, -1, OBJNULL}, {"UNSIGNED-BYTE", CL_ORDINARY, NULL, -1, OBJNULL}, {"UNTRACE", CL_ORDINARY, NULL, -1, OBJNULL}, {"UNUSE-PACKAGE", CL_ORDINARY, cl_unuse_package, -1, OBJNULL}, {"UNWIND-PROTECT", CL_FORM, NULL, -1, OBJNULL}, -{"UPGRADED-ARRAY-ELEMENT-TYPE", CL_ORDINARY, NULL, -1, OBJNULL}, -{"UPGRADED-COMPLEX-PART-TYPE", CL_ORDINARY, NULL, -1, OBJNULL}, +{"UPGRADED-ARRAY-ELEMENT-TYPE", CL_ORDINARY, _D(cl_upgraded_array_element_type), -1, OBJNULL}, +{"UPGRADED-COMPLEX-PART-TYPE", CL_ORDINARY, _D(cl_upgraded_complex_part_type), -1, OBJNULL}, {"UPPER-CASE-P", CL_ORDINARY, cl_upper_case_p, 1, OBJNULL}, {"USE-PACKAGE", CL_ORDINARY, cl_use_package, -1, OBJNULL}, {"USE-VALUE", CL_ORDINARY, NULL, -1, OBJNULL}, @@ -919,10 +924,10 @@ cl_symbols[] = { {"VALUES", CL_ORDINARY, cl_values, -1, OBJNULL}, {"VALUES-LIST", CL_ORDINARY, cl_values_list, 1, OBJNULL}, {"VARIABLE", CL_ORDINARY, NULL, -1, OBJNULL}, -{"VECTOR", CL_ORDINARY, NULL, -1, OBJNULL}, -{"VECTOR-POP", CL_ORDINARY, NULL, -1, OBJNULL}, -{"VECTOR-PUSH", CL_ORDINARY, NULL, -1, OBJNULL}, -{"VECTOR-PUSH-EXTEND", CL_ORDINARY, NULL, -1, OBJNULL}, +{"VECTOR", CL_ORDINARY, _D(cl_vector), -1, OBJNULL}, +{"VECTOR-POP", CL_ORDINARY, _D(cl_vector_pop), -1, OBJNULL}, +{"VECTOR-PUSH", CL_ORDINARY, _D(cl_vector_push), -1, OBJNULL}, +{"VECTOR-PUSH-EXTEND", CL_ORDINARY, _D(cl_vector_push_extend), -1, OBJNULL}, {"VECTORP", CL_ORDINARY, cl_vectorp, 1, OBJNULL}, {"WARN", CL_ORDINARY, NULL, -1, OBJNULL}, {"WARNING", CL_ORDINARY, NULL, -1, OBJNULL}, @@ -944,9 +949,9 @@ cl_symbols[] = { {"WRITE-LINE", CL_ORDINARY, cl_write_line, -1, OBJNULL}, {"WRITE-SEQUENCE", CL_ORDINARY, cl_write_sequence, -1, OBJNULL}, {"WRITE-STRING", CL_ORDINARY, cl_write_string, -1, OBJNULL}, -{"WRITE-TO-STRING", CL_ORDINARY, NULL, -1, OBJNULL}, -{"Y-OR-N-P", CL_ORDINARY, NULL, -1, OBJNULL}, -{"YES-OR-NO-P", CL_ORDINARY, NULL, -1, OBJNULL}, +{"WRITE-TO-STRING", CL_ORDINARY, _D(cl_write_to_string), -1, OBJNULL}, +{"Y-OR-N-P", CL_ORDINARY, _D(cl_y_or_n_p), -1, OBJNULL}, +{"YES-OR-NO-P", CL_ORDINARY, _D(cl_yes_or_no_p), -1, OBJNULL}, {"ZEROP", CL_ORDINARY, cl_zerop, 1, OBJNULL}, #ifdef CLOS diff --git a/src/cmp/cmpmain.lsp b/src/cmp/cmpmain.lsp index 41c8aa40b..5574a923d 100644 --- a/src/cmp/cmpmain.lsp +++ b/src/cmp/cmpmain.lsp @@ -143,6 +143,16 @@ coprocessor).") ") +;; +;; This format string contains the structure of the code that initializes +;; a program, a library, a module, etc. Basically, it processes a codeblock +;; just like in a normal compiled file, but then adds all the codeblocks of +;; its corresponding modules. +;; +;; IMPORTANT: Notice how the modules are linked to the parent forming a +;; circular chain. This disables the garbage collection of the library until +;; _ALL_ functions in all modules are unlinked. +;; (defconstant +lisp-program-init+ " #ifdef __cplusplus extern \"C\" @@ -150,7 +160,6 @@ extern \"C\" void ~A(cl_object cblock) { static cl_object Cblock; - cl_object subblock; if (!FIXNUMP(cblock)) { Cblock = cblock; cblock->cblock.data_text = compiler_data_text; @@ -165,9 +174,12 @@ void ~A(cl_object cblock) VV = Cblock->cblock.data; #endif ~A -~:[~{ subblock = read_VV(OBJNULL, ~A); subblock->cblock.next = Cblock;~%~} +{ + cl_object current, next = Cblock; +~:[~{ current = read_VV(OBJNULL, ~A); current->cblock.next = next; next = current; ~%~} + Cblock->cblock.next = current; ~;~{ ~A(Cblock);~%~}~] - +} ~A }") diff --git a/src/cmp/cmptop.lsp b/src/cmp/cmptop.lsp index 72519ad36..06bb21576 100644 --- a/src/cmp/cmptop.lsp +++ b/src/cmp/cmptop.lsp @@ -252,6 +252,9 @@ (si::process-declarations (rest lambda-list-and-body) nil) (cond ((and *allow-c-local-declaration* (assoc 'si::c-local decl)) (setq no-entry t)) + #+ecl-min + ((member fname c::*in-all-symbols-functions*) + (setq no-entry t)) ((setq doc (si::expand-set-documentation fname 'function doc)) (t1expr `(progn ,@doc))))) (add-load-time-values) diff --git a/src/cmp/sysfun.lsp b/src/cmp/sysfun.lsp index b0741e3c6..d7132f1df 100644 --- a/src/cmp/sysfun.lsp +++ b/src/cmp/sysfun.lsp @@ -1066,58 +1066,88 @@ type_of(#0)==t_bitvector")) )) ; end of of #+clos (in-package "SI") -(proclaim '(si::c-export-fname - make-array vector array-dimensions - array-in-bounds-p array-row-major-index bit sbit bit-and bit-ior - bit-xor bit-eqv bit-nand bit-nor bit-andc1 bit-andc2 bit-orc1 bit-not - vector-push vector-push-extend vector-pop adjust-array si::ecase-error si::etypecase-error - ccase-error typecase-error-string find-documentation find-declarations - si::check-keyword si::check-arg-length si::dm-too-few-arguments si::dm-bad-key - remove-documentation si::get-documentation - si::set-documentation si::expand-set-documentation read-from-string - write-to-string prin1-to-string princ-to-string union nunion - intersection nintersection set-difference nset-difference - set-exclusive-or nset-exclusive-or subsetp - logical-pathname-translations decode-universal-time - encode-universal-time get-decoded-time isqrt abs phase signum cis asin - acos asinh acosh atanh ffloor fceiling ftruncate fround - logtest byte byte-size byte-position ldb ldb-test mask-field dpb - deposit-field upgraded-array-element-type typep subtypep coerce make-sequence - concatenate map some every notany notevery map-into reduce fill - replace remove remove-if remove-if-not delete delete-if delete-if-not - count count-if count-if-not substitute substitute-if substitute-if-not - nsubstitute nsubstitute-if nsubstitute-if-not find find-if find-if-not - position position-if position-if-not remove-duplicates - delete-duplicates mismatch search sort stable-sort merge - pprint-fill copy-pprint-dispatch pprint-dispatch - pprint-linear pprint-newline pprint-tab pprint-tabular - set-pprint-dispatch pprint-indent - si::simple-program-error - si::closest-vector-type si::packages-iterator - si::define-structure . - #-clos - nil - #+clos - (clos::ensure-class clos::install-method - clos::standard-instance-set - clos::class-id - clos::class-direct-superclasses - clos::class-direct-subclasses - clos::class-slots - clos::class-precedence-list - clos::slot-index-table - clos::class-direct-slots - clos::class-shared-slots - clos::default-initargs-of - clos::generic-function-lambda-list - clos::generic-function-argument-precedence-order - clos::generic-function-method-combination - clos::generic-function-method-class - clos::generic-function-methods - clos::method-generic-function - clos::method-lambda-list - clos::method-specializers - clos::method-qualifiers - clos::method-function - clos::method-plist))) + +(defvar c::*in-all-symbols-functions* + '(;; arraylib.lsp + make-array vector array-dimensions array-in-bounds-p array-row-major-index + bit sbit bit-and bit-ior bit-xor bit-eqv bit-nand bit-nor bit-andc1 + bit-andc2 bit-orc1 bit-orc2 bit-not + vector-push vector-push-extend vector-pop adjust-array + ;; iolib.lsp + read-from-string write-to-string prin1-to-string princ-to-string + y-or-n-p yes-or-no-p + ;; listlib.lsp + union nunion intersection nintersection set-difference nset-difference + set-exclusive-or nset-exclusive-or subsetp rassoc-if rassoc-if-not + assoc-if assoc-if-not member-if member-if-not subst-if subst-if-not + nsubst-if nsubst-if-not + ;; mislib.lsp + logical-pathname-translations load-logical-pathname-translations decode-universal-time + encode-universal-time get-decoded-time + ensure-directories-exist + ;; module.lsp + provide require + ;; numlib.lsp + isqrt abs phase signum cis + asin acos asinh acosh atanh ffloor fceiling ftruncate fround + logtest byte byte-size byte-position ldb ldb-test mask-field dpb + deposit-field + ;; packlib.lsp + find-all-symbols apropos apropos-list + ;; predlib.lsp + upgraded-array-element-type upgraded-complex-part-type typep subtypep coerce + ;; seq.lsp + make-sequence concatenate map some every notany notevery map-into + ;; seqlib.lsp + reduce fill replace + remove remove-if remove-if-not delete delete-if delete-if-not + count count-if count-if-not substitute substitute-if substitute-if-not + nsubstitute nsubstitute-if nsubstitute-if-not find find-if find-if-not + position position-if position-if-not remove-duplicates + delete-duplicates mismatch search sort stable-sort merge constantly + ;; pprint.lsp + pprint-fill copy-pprint-dispatch pprint-dispatch + pprint-linear pprint-newline pprint-tab pprint-tabular + set-pprint-dispatch pprint-indent +)) + +(proclaim + `(si::c-export-fname #+ecl-min ,@c::*in-all-symbols-functions* + si::ecase-error si::etypecase-error + ccase-error typecase-error-string find-documentation find-declarations + si::check-keyword si::check-arg-length si::dm-too-few-arguments si::dm-bad-key + remove-documentation si::get-documentation + si::set-documentation si::expand-set-documentation + si::simple-program-error + si::closest-vector-type si::packages-iterator + si::define-structure . + #-clos + nil + #+clos + (;; defclass.lsp + clos::ensure-class + ;; standard.lsp + clos::standard-instance-set + ;; kernel.lsp + clos::install-method + clos::class-id + clos::class-direct-superclasses + clos::class-direct-subclasses + clos::class-slots + clos::class-precedence-list + clos::slot-index-table + clos::class-direct-slots + clos::class-shared-slots + clos::default-initargs-of + clos::generic-function-lambda-list + clos::generic-function-argument-precedence-order + clos::generic-function-method-combination + clos::generic-function-method-class + clos::generic-function-methods + clos::method-generic-function + clos::method-lambda-list + clos::method-specializers + clos::method-qualifiers + clos::method-function + clos::method-plist))) diff --git a/src/compile.lsp.in b/src/compile.lsp.in index 31d13df50..503d2f271 100644 --- a/src/compile.lsp.in +++ b/src/compile.lsp.in @@ -93,6 +93,7 @@ ranlib ../@LIBPREFIX@ecl.@LIBEXT@'") (c::*cc-flags* (concatenate 'string "-I@true_builddir@/c " c::*cc-flags*))) (c::shared-cc (compile-file-pathname "ecl" :type :dll) "c/main.@OBJEXT@" + "c/all_symbols2.@OBJEXT@" "@LIBPREFIX@lsp.@LIBEXT@" "@LIBPREFIX@eclmin.@LIBEXT@" . #.(unless (equalp "@LDINSTALLNAME@" "") diff --git a/src/h/external.h b/src/h/external.h index 9dd9e46bc..109e2e742 100644 --- a/src/h/external.h +++ b/src/h/external.h @@ -1468,6 +1468,207 @@ extern cl_object si_open_pipe(cl_object cmd); extern cl_object si_close_pipe(cl_object stream); extern cl_object si_run_program _ARGS((cl_narg narg, cl_object command, cl_object args, ...)); +/********************************************************************** + * FUNCTIONS GENERATED BY THE LISP COMPILER + */ +#define _ARGS(x) x + +/* arraylib.lsp */ +extern cl_object cl_make_array _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_vector _ARGS((cl_narg narg, ...)); +extern cl_object cl_array_dimensions _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_array_in_bounds_p _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_array_row_major_index _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_bit _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_sbit _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_bit_and _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_bit_ior _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_bit_xor _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_bit_eqv _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_bit_nand _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_bit_nor _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_bit_andc1 _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_bit_andc2 _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_bit_orc1 _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_bit_orc2 _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_bit_not _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_vector_push _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_vector_push_extend _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_vector_pop _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_adjust_array _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); + +/* iolib.lsp */ + +extern cl_object cl_read_from_string _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_write_to_string _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_prin1_to_string _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_princ_to_string _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_y_or_n_p _ARGS((cl_narg narg, ...)); +extern cl_object cl_yes_or_no_p _ARGS((cl_narg narg, ...)); + +/* listlib.lsp */ + +extern cl_object cl_union _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_nunion _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_intersection _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_nintersection _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_set_difference _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_nset_difference _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_set_exclusive_or _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_nset_exclusive_or _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_subsetp _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_rassoc_if _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_rassoc_if_not _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_assoc_if _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_assoc_if_not _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_member_if _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_member_if_not _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_subst_if _ARGS((cl_narg narg, cl_object V1, cl_object V2, cl_object V3, ...)); +extern cl_object cl_subst_if_not _ARGS((cl_narg narg, cl_object V1, cl_object V2, cl_object V3, ...)); +extern cl_object cl_nsubst_if _ARGS((cl_narg narg, cl_object V1, cl_object V2, cl_object V3, ...)); +extern cl_object cl_nsubst_if_not _ARGS((cl_narg narg, cl_object V1, cl_object V2, cl_object V3, ...)); + +/* mislib.lsp */ + +extern cl_object cl_logical_pathname_translations _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_load_logical_pathname_translations _ARGS((cl_narg, cl_object V1, ...)); +extern cl_object cl_decode_universal_time _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_encode_universal_time _ARGS((cl_narg narg, cl_object V1, cl_object V2, cl_object V3, cl_object V4, cl_object V5, cl_object V6, ...)); +extern cl_object cl_get_decoded_time _ARGS((cl_narg narg, ...)); +extern cl_object cl_ensure_directories_exist _ARGS((cl_narg narg, cl_object V1, ...)); + +/* module.lsp */ + +extern cl_object cl_provide _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_require _ARGS((cl_narg narg, cl_object V1, ...)); + +/* numlib.lsp */ + +extern cl_object cl_isqrt _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_abs _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_phase _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_signum _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_cis _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_asin _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_acos _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_asinh _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_acosh _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_atanh _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_ffloor _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_fceiling _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_ftruncate _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_fround _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_logtest _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_byte _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_byte_size _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_byte_position _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_ldb _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_ldb_test _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_mask_field _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_dpb _ARGS((cl_narg narg, cl_object V1, cl_object V2, cl_object V3, ...)); +extern cl_object cl_deposit_field _ARGS((cl_narg narg, cl_object V1, cl_object V2, cl_object V3, ...)); + +/* packlib.lsp */ + +extern cl_object cl_find_all_symbols _ARGS((cl_narg, cl_object V1, ...)); +extern cl_object cl_apropos _ARGS((cl_narg arg, cl_object V1, ...)); +extern cl_object cl_apropos_list _ARGS((cl_narg arg, cl_object V1, ...)); + +/* predlib.lsp */ + +extern cl_object cl_upgraded_array_element_type _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_upgraded_complex_part_type _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_typep _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_coerce _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_subtypep _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); + +/* seq.lsp */ + +extern cl_object cl_make_sequence _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_concatenate _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_map _ARGS((cl_narg narg, cl_object V1, cl_object V2, cl_object V3, ...)); +extern cl_object cl_some _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_every _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_notany _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_notevery _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_map_into _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); + +/* seqlib.lsp */ + +extern cl_object cl_reduce _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_fill _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_replace _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_remove _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_remove_if _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_remove_if_not _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_delete _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_delete_if _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_delete_if_not _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_count _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_count_if _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_count_if_not _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_substitute _ARGS((cl_narg narg, cl_object V1, cl_object V2, cl_object V3, ...)); +extern cl_object cl_substitute_if _ARGS((cl_narg narg, cl_object V1, cl_object V2, cl_object V3, ...)); +extern cl_object cl_substitute_if_not _ARGS((cl_narg narg, cl_object V1, cl_object V2, cl_object V3, ...)); +extern cl_object cl_nsubstitute _ARGS((cl_narg narg, cl_object V1, cl_object V2, cl_object V3, ...)); +extern cl_object cl_nsubstitute_if _ARGS((cl_narg narg, cl_object V1, cl_object V2, cl_object V3, ...)); +extern cl_object cl_nsubstitute_if_not _ARGS((cl_narg narg, cl_object V1, cl_object V2, cl_object V3, ...)); +extern cl_object cl_find _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_find_if _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_find_if_not _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_position _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_position_if _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_position_if_not _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_remove_duplicates _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_delete_duplicates _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_mismatch _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_search _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_sort _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_stable_sort _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_merge _ARGS((cl_narg narg, cl_object V1, cl_object V2, cl_object V3, cl_object V4, ...)); +extern cl_object cl_constantly _ARGS((cl_narg narg, cl_object V1, ...)); + +/* pprint.lsp */ + +extern cl_object cl_pprint_newline _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_pprint_indent _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_pprint_tab _ARGS((cl_narg narg, cl_object V1, cl_object V2, cl_object V3, ...)); +extern cl_object cl_pprint_fill _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_pprint_linear _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_pprint_tabular _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); +extern cl_object cl_copy_pprint_dispatch _ARGS((cl_narg narg, ...)); +extern cl_object cl_pprint_dispatch _ARGS((cl_narg narg, cl_object V1, ...)); +extern cl_object cl_set_pprint_dispatch _ARGS((cl_narg narg, cl_object V1, cl_object V2, ...)); + +#ifdef CLOS +/* defclass.lsp */ +extern cl_object clos_ensure_class(cl_narg narg, cl_object V1, ...); + +/* kernel.lsp */ +extern cl_object clos_class_id(cl_narg narg, cl_object V1, ...); +extern cl_object clos_class_direct_superclasses(cl_narg narg, cl_object V1, ...); +extern cl_object clos_class_direct_subclasses(cl_narg narg, cl_object V1, ...); +extern cl_object clos_class_slots(cl_narg narg, cl_object V1, ...); +extern cl_object clos_class_precedence_list(cl_narg narg, cl_object V1, ...); +extern cl_object clos_class_direct_slots(cl_narg narg, cl_object V1, ...); +extern cl_object clos_slot_index_table(cl_narg narg, cl_object V1, ...); +extern cl_object clos_class_shared_slots(cl_narg narg, cl_object V1, ...); +extern cl_object clos_generic_function_method_combination(cl_narg narg, cl_object V1, ...); +extern cl_object clos_generic_function_lambda_list(cl_narg narg, cl_object V1, ...); +extern cl_object clos_generic_function_argument_precedence_order(cl_narg narg, cl_object V1, ...); +extern cl_object clos_generic_function_method_class(cl_narg narg, cl_object V1, ...); +extern cl_object clos_generic_function_methods(cl_narg narg, cl_object V1, ...); +extern cl_object clos_method_generic_function(cl_narg narg, cl_object V1, ...); +extern cl_object clos_method_lambda_list(cl_narg narg, cl_object V1, ...); +extern cl_object clos_method_specializers(cl_narg narg, cl_object V1, ...); +extern cl_object cl_method_qualifiers(cl_narg narg, cl_object V1, ...); +extern cl_object clos_method_function(cl_narg narg, cl_object V1, ...); +extern cl_object clos_method_plist(cl_narg narg, cl_object V1, ...); +extern cl_object clos_install_method(cl_narg narg, cl_object V1, cl_object V2, cl_object V3, cl_object V4, cl_object V5, cl_object V6, cl_object V7, ...); + +/* standard.lsp */ +extern cl_object clos_standard_instance_set(cl_narg narg, cl_object V1, cl_object V2, cl_object V3, ...); + #ifdef __cplusplus } #endif