diff --git a/src/c/character.d b/src/c/character.d index f087badb4..5e084bf94 100644 --- a/src/c/character.d +++ b/src/c/character.d @@ -324,6 +324,7 @@ cl_character(cl_object x) case t_string: if (x->string.fillp == 1) x = CODE_CHAR(x->string.self[0]); + break; default: FEtype_error_character(x); } diff --git a/src/c/hash.d b/src/c/hash.d index 53e1002e6..3ebb8d969 100644 --- a/src/c/hash.d +++ b/src/c/hash.d @@ -89,7 +89,7 @@ static const cl_hashkey crc_table[256] = { #define DO4(crc,buf) DO2(crc,buf); DO2(crc,buf); #define DO8(crc,buf) DO4(crc,buf); DO4(crc,buf); -cl_hashkey +static cl_hashkey update_crc32(cl_hashkey crc, const char *buf, cl_index len) { while (len >= 8) { diff --git a/src/c/list.d b/src/c/list.d index becd9f85d..bc682fdab 100644 --- a/src/c/list.d +++ b/src/c/list.d @@ -74,7 +74,7 @@ apply_key_function(cl_object x) return funcall(2, key_function, x); } -cl_object +static cl_object identity(cl_object x) { return(x); @@ -98,7 +98,7 @@ setupTEST(cl_object item, cl_object test, cl_object test_not, cl_object key) key_function = key; kf = apply_key_function; } else - kf = identity; + kf = cl_identity; } #define PREDICATE2(f,name) \ diff --git a/src/c/package.d b/src/c/package.d index 95cfaab7c..c821c46b6 100644 --- a/src/c/package.d +++ b/src/c/package.d @@ -19,7 +19,6 @@ /******************************* EXPORTS ******************************/ -bool lisp_package_locked = FALSE; cl_object lisp_package; cl_object user_package; cl_object keyword_package; diff --git a/src/c/pathname.d b/src/c/pathname.d index 821a53f3c..7f900c65a 100644 --- a/src/c/pathname.d +++ b/src/c/pathname.d @@ -457,11 +457,7 @@ coerce_to_filename(cl_object pathname) return namestring; } -cl_object -default_device(cl_object host) -{ - return Cnil; -} +#define default_device(host) Cnil cl_object merge_pathnames(cl_object path, cl_object defaults, cl_object default_version) @@ -936,32 +932,27 @@ path_list_match(cl_object a, cl_object mask) { return TRUE; } -bool -pathname_match_p(cl_object path, cl_object mask) +cl_object +cl_pathname_match_p(cl_object path, cl_object mask) { path = cl_pathname(path); mask = cl_pathname(mask); if (path->pathname.logical != mask->pathname.logical) - return FALSE; + return Cnil; #if 0 /* INV: This was checked in the calling routine */ if (!path_item_match(path->pathname.host, mask->pathname.host)) - return FALSE; + return Cnil; #endif if (!path_list_match(path->pathname.directory, mask->pathname.directory)) - return FALSE; + return Cnil; if (!path_item_match(path->pathname.name, mask->pathname.name)) - return FALSE; + return Cnil; if (!path_item_match(path->pathname.type, mask->pathname.type)) - return FALSE; + return Cnil; if (!path_item_match(path->pathname.version, mask->pathname.version)) - return FALSE; - return TRUE; -} - -cl_object cl_pathname_match_p(cl_object path, cl_object mask) -{ - @(return (pathname_match_p(path, mask)? Ct : Cnil)) + return Cnil; + return Ct; } /* --------------- PATHNAME TRANSLATIONS ------------------ */ @@ -1248,7 +1239,7 @@ cl_translate_logical_pathname(cl_object source) l = @si::pathname-translations(1, source->pathname.host, Cnil); for(; !endp(l); l = CDR(l)) { pair = CAR(l); - if (pathname_match_p(source, CAR(pair))) { + if (!Null(cl_pathname_match_p(source, CAR(pair)))) { source = cl_translate_pathname(source, CAR(pair), CADR(pair)); if (source->pathname.logical) goto begin; diff --git a/src/c/read.d b/src/c/read.d index ac14487d1..b74470602 100644 --- a/src/c/read.d +++ b/src/c/read.d @@ -66,7 +66,7 @@ cl_object peek_char(bool pt, cl_object in) { int c; - cl_object rtbl = cl_current_readtable(); + cl_object rtbl = ecl_current_readtable(); c = readc_stream(in); if (pt) @@ -112,7 +112,7 @@ read_object(cl_object in) cl_index length, i, colon; int colon_type, intern_flag; bool df; - cl_object rtbl = cl_current_readtable(); + cl_object rtbl = ecl_current_readtable(); cs_check(in); @@ -211,7 +211,7 @@ BEGIN: } N: - base = cl_current_read_base(); + base = ecl_current_read_base(); if (escape_flag || (base <= 10 && isalpha(cl_token->string.self[0]))) goto SYMBOL; x = parse_number(cl_token->string.self, cl_token->string.fillp, &i, base); @@ -454,7 +454,7 @@ MAKE_FLOAT: switch (exponent_marker) { case 'e': case 'E': - exponent_marker = cl_current_read_default_float_format(); + exponent_marker = ecl_current_read_default_float_format(); goto MAKE_FLOAT; case 's': case 'S': @@ -517,7 +517,7 @@ left_parenthesis_reader(cl_object in, cl_object character) cl_object x, y; cl_object *p; int c; - cl_object rtbl = cl_current_readtable(); + cl_object rtbl = ecl_current_readtable(); y = Cnil; for (p = &y ; ; p = &(CDR(*p))) { @@ -552,7 +552,7 @@ static void read_string(int delim, cl_object in) { int c; - cl_object rtbl = cl_current_readtable(); + cl_object rtbl = ecl_current_readtable(); cl_token->string.fillp = 0; for (;;) { @@ -574,7 +574,7 @@ static void read_constituent(cl_object in) { int c; - cl_object rtbl = cl_current_readtable(); + cl_object rtbl = ecl_current_readtable(); cl_token->string.fillp = 0; for (;;) { @@ -599,7 +599,7 @@ dispatch_reader_fun(cl_object in, cl_object dc) { cl_object x, y; int i, d, c; - cl_object rtbl = cl_current_readtable(); + cl_object rtbl = ecl_current_readtable(); if (rtbl->readtable.table[char_code(dc)].dispatch_table == NULL) FEerror("~C is not a dispatching macro character", 1, dc); @@ -848,7 +848,7 @@ sharp_asterisk_reader(cl_object in, cl_object c, cl_object d) static cl_object sharp_colon_reader(cl_object in, cl_object ch, cl_object d) { - cl_object rtbl = cl_current_readtable(); + cl_object rtbl = ecl_current_readtable(); enum chattrib a; int c; @@ -1258,7 +1258,7 @@ copy_readtable(cl_object from, cl_object to) } cl_object -cl_current_readtable(void) +ecl_current_readtable(void) { cl_object r; @@ -1273,7 +1273,7 @@ cl_current_readtable(void) } int -cl_current_read_base(void) +ecl_current_read_base(void) { cl_object x; @@ -1289,7 +1289,7 @@ cl_current_read_base(void) } char -cl_current_read_default_float_format(void) +ecl_current_read_default_float_format(void) { cl_object x; @@ -1343,7 +1343,7 @@ stream_or_default_input(cl_object stream) (eof_errorp Ct) eof_value recursivep) - cl_object x, rtbl = cl_current_readtable(); + cl_object x, rtbl = ecl_current_readtable(); int c; @ strm = stream_or_default_input(strm); @@ -1458,7 +1458,7 @@ do_read_delimited_list(cl_object d, cl_object strm) @(defun peek_char (&optional peek_type (strm Cnil) (eof_errorp Ct) eof_value recursivep) int c; - cl_object rtbl = cl_current_readtable(); + cl_object rtbl = ecl_current_readtable(); @ strm = stream_or_default_input(strm); if (Null(peek_type)) { @@ -1540,7 +1540,7 @@ do_read_delimited_list(cl_object d, cl_object strm) junk_allowed &aux x) cl_index s, e, ep; - cl_object rtbl = cl_current_readtable(); + cl_object rtbl = ecl_current_readtable(); @ assert_type_string(strng); get_string_start_end(strng, start, end, &s, &e); @@ -1612,7 +1612,7 @@ si_read_bytes(cl_object stream, cl_object string, cl_object start, cl_object end -@(defun copy_readtable (&o (from cl_current_readtable()) to) +@(defun copy_readtable (&o (from ecl_current_readtable()) to) @ if (Null(from)) { from = standard_readtable; @@ -1645,7 +1645,7 @@ read_table_entry(cl_object rdtbl, cl_object c) } @(defun set_syntax_from_char (tochr fromchr - &o (tordtbl cl_current_readtable()) + &o (tordtbl ecl_current_readtable()) fromrdtbl) struct readtable_entry*torte, *fromrte; @ @@ -1667,7 +1667,7 @@ read_table_entry(cl_object rdtbl, cl_object c) @(defun set_macro_character (chr fnc &optional ntp - (rdtbl cl_current_readtable())) + (rdtbl ecl_current_readtable())) struct readtable_entry*entry; @ /* INV: read_table_entry() checks our arguments */ @@ -1680,7 +1680,7 @@ read_table_entry(cl_object rdtbl, cl_object c) @(return Ct) @) -@(defun get_macro_character (chr &o (rdtbl cl_current_readtable())) +@(defun get_macro_character (chr &o (rdtbl ecl_current_readtable())) struct readtable_entry*entry; cl_object m; @ @@ -1700,7 +1700,7 @@ read_table_entry(cl_object rdtbl, cl_object c) @) @(defun make_dispatch_macro_character (chr - &optional ntp (rdtbl cl_current_readtable())) + &optional ntp (rdtbl ecl_current_readtable())) struct readtable_entry*entry; cl_object *table; int i; @@ -1720,7 +1720,7 @@ read_table_entry(cl_object rdtbl, cl_object c) @) @(defun set_dispatch_macro_character (dspchr subchr fnc - &optional (rdtbl cl_current_readtable())) + &optional (rdtbl ecl_current_readtable())) struct readtable_entry*entry; cl_fixnum subcode; @ @@ -1735,7 +1735,7 @@ read_table_entry(cl_object rdtbl, cl_object c) @) @(defun get_dispatch_macro_character (dspchr subchr - &optional (rdtbl cl_current_readtable())) + &optional (rdtbl ecl_current_readtable())) struct readtable_entry*entry; cl_fixnum subcode; @ diff --git a/src/c/structure.d b/src/c/structure.d index e91b4db9e..1d87fcc83 100644 --- a/src/c/structure.d +++ b/src/c/structure.d @@ -20,7 +20,7 @@ /******************************* ------- ******************************/ #ifdef CLOS -bool +static bool structure_subtypep(cl_object x, cl_object y) { cl_object superiors; if (CLASS_NAME(x) == y) @@ -33,7 +33,7 @@ structure_subtypep(cl_object x, cl_object y) return(FALSE); } #else -bool +static bool structure_subtypep(cl_object x, cl_object y) { do { @@ -71,11 +71,6 @@ structure_to_list(cl_object x) } return(r); } -#else -cl_object -structure_to_list(cl_object x) -{ FEerror("Should never be called!",0); -} #endif /* CLOS */ @(defun si::make_structure (type &rest args) diff --git a/src/c/symbol.d b/src/c/symbol.d index 6b1f83641..37708d092 100644 --- a/src/c/symbol.d +++ b/src/c/symbol.d @@ -267,16 +267,10 @@ cl_get_properties(cl_object place, cl_object indicator_list) } cl_object -symbol_name(cl_object x) +cl_symbol_name(cl_object x) { assert_type_symbol(x); - return x->symbol.name; -} - -cl_object -cl_symbol_name(cl_object sym) -{ - @(return symbol_name(sym)) + @(return x->symbol.name) } @(defun copy_symbol (sym &optional cp &aux x) diff --git a/src/c/tclBasic.d b/src/c/tclBasic.d index 26c0672db..690e9b3bd 100644 --- a/src/c/tclBasic.d +++ b/src/c/tclBasic.d @@ -504,7 +504,8 @@ Tcl_GetCommandInfo(Tcl_Interp *interp, /* Interpreter in which to look { cl_object v = _intern(cmdName, tk_package); - if (!structure_subtypep(cl_type_of(SYM_VAL(v)), TkWidgetType)) return 0; + if (!Null(si_structure_subtypep(cl_type_of(SYM_VAL(v)), TkWidgetType))) + return 0; infoPtr->proc = (Tcl_CmdProc *)fix(SLOT(SYM_VAL(v), 0)); infoPtr->clientData = (ClientData)fix(SLOT(SYM_VAL(v), 1)); diff --git a/src/cmp/sysfun.lsp b/src/cmp/sysfun.lsp index a4a8682a2..53275a095 100644 --- a/src/cmp/sysfun.lsp +++ b/src/cmp/sysfun.lsp @@ -852,7 +852,7 @@ type_of(#0)==t_bitvector")) (SI::STRING-TO-OBJECT (T) T) (si::STANDARD-READTABLE (T) T) (SYMBOL-FUNCTION (T) T NIL NIL - :inline-always ((t) t nil t "symbol_function(#0)")) + :inline-always ((t) t nil t "cl_symbol_function(#0)")) (FBOUNDP (symbol) T nil t) (SYMBOL-VALUE (symbol) T) (BOUNDP (symbol) T nil t @@ -975,7 +975,7 @@ type_of(#0)==t_bitvector")) (GET-PROPERTIES (T T) *) (SYMBOL-NAME (symbol) string nil nil :inline-always ((symbol) t nil t "((#0)->symbol.name)") - :inline-always ((t) t nil t "symbol_name(#0)")) + :inline-always ((t) t nil t "cl_symbol_name(#0)")) (MAKE-SYMBOL (string) symbol) (COPY-SYMBOL (symbol *) symbol) (GENSYM (*) symbol) diff --git a/src/h/external.h b/src/h/external.h index 07d1d0431..f5a7d743b 100644 --- a/src/h/external.h +++ b/src/h/external.h @@ -279,7 +279,7 @@ extern void cl_stack_pop_values(int n); extern cl_object lex_env; extern cl_object lambda_apply(int narg, cl_object fun); -extern cl_object *interpret(cl_object *memory) __attribute__((regparm(1))); +extern cl_object *interpret(cl_object *memory); extern void init_interpreter(void); /* conditional.c */ @@ -470,7 +470,6 @@ extern cl_object cl_hash_table_rehash_threshold(cl_object ht); extern cl_object cl_make_hash_table _ARGS((int narg, ...)); extern cl_object cl_gethash _ARGS((int narg, cl_object key, cl_object ht, ...)); -extern cl_hashkey update_crc32(cl_hashkey crc, const char *buffer, cl_index len); extern cl_hashkey hash_eq(cl_object x); extern cl_hashkey hash_eql(cl_object x); extern cl_hashkey hash_equal(cl_object x); @@ -613,9 +612,6 @@ extern cl_object append(cl_object x, cl_object y); extern bool endp(cl_object x); extern cl_object nth(cl_fixnum n, cl_object x); extern cl_object nthcdr(cl_fixnum n, cl_object x); -extern cl_object copy_list(cl_object x); -extern cl_object copy_alist(cl_object x); -extern cl_object copy_tree(cl_object x); extern cl_object nconc(cl_object x, cl_object y); extern cl_object subst(cl_object new_object, cl_object tree); extern void nsubst(cl_object new_object, cl_object *treep); @@ -914,7 +910,6 @@ extern cl_object cl_shadow _ARGS((int narg, cl_object symbols, ...)); extern cl_object cl_use_package _ARGS((int narg, cl_object pack, ...)); extern cl_object cl_unuse_package _ARGS((int narg, cl_object pack, ...)); -extern bool lisp_package_locked; extern cl_object lisp_package; extern cl_object user_package; extern cl_object keyword_package; @@ -971,11 +966,8 @@ extern cl_object parse_namestring(const char *s, cl_index start, cl_index end, c extern cl_object coerce_to_physical_pathname(cl_object x); extern cl_object coerce_to_file_pathname(cl_object pathname); extern cl_object coerce_to_filename(cl_object pathname); -extern cl_object default_device(cl_object host); extern cl_object merge_pathnames(cl_object path, cl_object defaults, cl_object default_version); -extern bool pathname_match_p(cl_object path, cl_object mask); extern bool logical_hostname_p(cl_object host); -extern cl_object translate_pathname(cl_object path, cl_object from, cl_object to); extern void init_pathname(void); @@ -1044,7 +1036,6 @@ extern void write_string(cl_object strng, cl_object strm); extern void princ_str(const char *s, cl_object sym); extern void princ_char(int c, cl_object sym); extern void init_print(void); -extern void init_print_function(void); /* profile.c */ @@ -1096,7 +1087,6 @@ extern cl_object delimiting_char; extern bool detect_eos_flag; extern cl_object sharp_eq_context; #endif -extern cl_object interactive_readc(cl_object stream); extern cl_object read_char(cl_object in); extern void unread_char(cl_object c, cl_object in); extern cl_object peek_char(bool pt, cl_object in); @@ -1105,12 +1095,11 @@ extern cl_object read_object(cl_object in); extern cl_object parse_number(const char *s, cl_index end, cl_index *ep, int radix); extern cl_object parse_integer(const char *s, cl_index end, cl_index *ep, int radix); extern cl_object copy_readtable(cl_object from, cl_object to); -extern cl_object cl_current_readtable(void); -extern int cl_current_read_base(void); -extern char cl_current_read_default_float_format(void); +extern cl_object ecl_current_readtable(void); +extern int ecl_current_read_base(void); +extern char ecl_current_read_default_float_format(void); extern cl_object c_string_to_object(const char *s); extern void init_read(void); -extern void init_read_function(void); extern void read_VV(cl_object block, void *entry); @@ -1229,8 +1218,9 @@ extern cl_object si_rplaca_nthcdr(cl_object x, cl_object idx, cl_object v); extern cl_object si_list_nth(cl_object idx, cl_object x); extern cl_object si_make_structure _ARGS((int narg, cl_object type, ...)); -extern bool structure_subtypep(cl_object x, cl_object y); +#ifndef CLOS extern cl_object structure_to_list(cl_object x); +#endif extern cl_object structure_ref(cl_object x, cl_object name, int n); extern cl_object structure_set(cl_object x, cl_object name, int n, cl_object v); extern void init_structure(void); @@ -1275,7 +1265,6 @@ extern cl_object remprop(cl_object s, cl_object p); extern bool keywordp(cl_object s); extern cl_object symbol_name(cl_object x); extern void init_symbol(void); -extern void init_symbol_function(void); /* tclBasic.c */ @@ -1334,7 +1323,6 @@ extern cl_object cl_get_internal_real_time(); extern cl_object si_get_local_time_zone(); extern cl_object si_daylight_saving_time_p _ARGS((int narg, ...)); -extern int runtime(void); extern cl_object UTC_time_to_universal_time(int i); extern void init_unixtime(void); @@ -1380,7 +1368,6 @@ extern void assert_type_list(cl_object p); extern void assert_type_proper_list(cl_object p); extern cl_object cl_type_of(cl_object x); extern void init_typespec(void); -extern void init_typespec_function(void); extern void FEtype_error_character(cl_object x) __attribute__((noreturn,regparm(2))); extern void FEtype_error_cons(cl_object x) __attribute__((noreturn,regparm(2))); @@ -1414,7 +1401,6 @@ extern cl_object si_file_exists (cl_object pathname); extern const char *expand_pathname(const char *name); extern cl_object string_to_pathname(char *s); -extern cl_object truename(cl_object pathname); extern bool file_exists(cl_object file); extern FILE *backup_fopen(const char *filename, const char *option); extern int file_len(FILE *fp); @@ -1440,10 +1426,6 @@ extern cl_object si_system(cl_object cmd); extern cl_object si_open_pipe(cl_object cmd); extern void init_unixsys(void); -/* unexec.c */ - -extern int unexec(char *new_name, char *a_name, unsigned, unsigned, unsigned); - #ifdef __cplusplus } #endif