diff --git a/src/c/assignment.d b/src/c/assignment.d index 55727b554..3dd92a7df 100644 --- a/src/c/assignment.d +++ b/src/c/assignment.d @@ -135,14 +135,10 @@ cl_fmakunbound(cl_object sym) void clear_compiler_properties(cl_object sym) { - si_unlink_symbol(sym); - funcall(2, @'si::clear-compiler-properties', sym); -} - -cl_object -si_clear_compiler_properties(cl_object sym) -{ - @(return sym) + if (ecl_booted) { + si_unlink_symbol(sym); + funcall(2, @'si::clear-compiler-properties', sym); + } } #ifdef PDE diff --git a/src/c/init.d b/src/c/init.d index b1ac955e3..13a9e0625 100644 --- a/src/c/init.d +++ b/src/c/init.d @@ -17,6 +17,8 @@ /******************************* ------- ******************************/ +extern bool ecl_booted = 0; + #ifdef __cplusplus extern "C" void init_LSP(void); extern "C" void init_CLOS(void); @@ -110,4 +112,6 @@ init_lisp(void) lex_env = Cnil; init_LSP(); init_CLOS(); + + ecl_booted = 1; } diff --git a/src/c/symbols_list.h b/src/c/symbols_list.h index e806f6c34..04dbb9a1c 100644 --- a/src/c/symbols_list.h +++ b/src/c/symbols_list.h @@ -945,7 +945,7 @@ cl_symbols[] = { {"SI::C-ARGUMENTS-LIMIT", SI_ORDINARY, NULL, -1}, {"SI::CHAR-SET", SI_ORDINARY, si_char_set, 3}, {"SI::CHDIR", SI_ORDINARY, si_chdir, 1}, -{"SI::CLEAR-COMPILER-PROPERTIES", SI_ORDINARY, si_clear_compiler_properties, 1}, +{"SI::CLEAR-COMPILER-PROPERTIES", SI_ORDINARY, cl_identity, 1}, {"SI::COERCE-TO-FUNCTION", SI_ORDINARY, si_coerce_to_function, 1}, {"SI::COERCE-TO-PACKAGE", SI_ORDINARY, si_coerce_to_package, 1}, {"SI::COMPILED-FUNCTION-BLOCK", SI_ORDINARY, si_compiled_function_block, 1}, diff --git a/src/cmp/cmputil.lsp b/src/cmp/cmputil.lsp index be514adc5..9111b489c 100644 --- a/src/cmp/cmputil.lsp +++ b/src/cmp/cmputil.lsp @@ -144,7 +144,7 @@ ((*break-on-errors* *compiler-break-enable*)) (eval form))) -(defun compiler-clear-compiler-properties (symbol) +(defun si::compiler-clear-compiler-properties (symbol) #-:CCL ;(sys::unlink-symbol symbol) (remprop symbol 'package-operation) diff --git a/src/h/external.h b/src/h/external.h index 999de93e5..3f04af4e8 100644 --- a/src/h/external.h +++ b/src/h/external.h @@ -118,7 +118,6 @@ extern cl_object cl_set(cl_object var, cl_object val); extern cl_object si_setf_namep(cl_object arg); extern cl_object cl_makunbound(cl_object sym); extern cl_object cl_fmakunbound(cl_object sym); -extern cl_object si_clear_compiler_properties(cl_object sym); extern cl_object si_fset _ARGS((int narg, cl_object fun, cl_object def, ...)); extern cl_object setf_namep(cl_object fun_spec); @@ -484,6 +483,7 @@ extern void cl_clear_hashtable(cl_object hashtable); /* init.c */ +extern bool ecl_booted; extern void init_lisp(void); extern void init_libs(void); @@ -605,7 +605,6 @@ extern cl_object cl_rassoc_if _ARGS((int narg, cl_object pred, cl_object arg, cl extern cl_object cl_rassoc_if_not _ARGS((int narg, cl_object pred, cl_object arg, cl_object key, cl_object val)); extern cl_object list_length(cl_object x); -extern cl_object identity(cl_object x); extern cl_object cl_car(cl_object x); extern cl_object cl_cdr(cl_object x); extern cl_object append(cl_object x, cl_object y); diff --git a/src/lsp/evalmacros.lsp b/src/lsp/evalmacros.lsp index 1228d05ca..47d98eba2 100644 --- a/src/lsp/evalmacros.lsp +++ b/src/lsp/evalmacros.lsp @@ -10,8 +10,6 @@ (si::select-package "SYSTEM") -(eval-when (eval compile) (defun sys:clear-compiler-properties (symbol))) - (defmacro defun (name vl &body body &aux doc-string) "Syntax: (defun name lambda-list {decl | doc}* {form}*) Defines a global function named by NAME. diff --git a/src/lsp/setf.lsp b/src/lsp/setf.lsp index 5dd3ccd65..51eef4a6f 100644 --- a/src/lsp/setf.lsp +++ b/src/lsp/setf.lsp @@ -12,8 +12,6 @@ (in-package "SYSTEM") -(eval-when (eval compile) (defun sys::clear-compiler-properties (symbol))) - ;;; DEFSETF macro. (defmacro defsetf (access-fn &rest rest &aux doc) "Syntax: (defsetf symbol update-fun [doc])