Removed si::*inhibit-macro-special*.

This commit is contained in:
jjgarcia 2002-11-18 12:45:41 +00:00
parent 2f2a05798d
commit 632312cfcb
7 changed files with 15 additions and 48 deletions

View file

@ -57,11 +57,15 @@ si_setf_namep(cl_object arg)
@(defun si::fset (fun def &optional macro pprint)
cl_type t;
bool mflag;
@
mflag = !Null(macro);
if (!SYMBOLP(fun)) {
cl_object sym = setf_namep(fun);
if (sym == OBJNULL)
FEtype_error_symbol(fun);
if (mflag)
FEerror("Cannot define a macro with name (SETF ~S).", 1, fun);
fun = CADR(fun);
putprop(fun, sym, @'si::setf-symbol');
remprop(fun, @'si::setf-lambda');
@ -69,13 +73,9 @@ si_setf_namep(cl_object arg)
remprop(fun, @'si::setf-update');
fun = sym;
}
if (fun->symbol.isform) {
if (fun->symbol.mflag) {
if (symbol_value(@'si::*inhibit-macro-special*') != Cnil)
fun->symbol.isform = FALSE;
} else if (symbol_value(@'si::*inhibit-macro-special*') != Cnil)
FEerror("~S, a special form, cannot be redefined.", 1, fun);
}
if (fun->symbol.isform && !mflag)
FEerror("~S, a special form, cannot be redefined as a function.",
1, fun);
clear_compiler_properties(fun);
if (fun->symbol.hpack->pack.locked && SYM_FUN(fun) != OBJNULL)
funcall(3, @'warn', make_simple_string("~S is being redefined."), fun);
@ -121,13 +121,6 @@ cl_fmakunbound(cl_object sym)
cl_fmakunbound(sym1);
@(return sym)
}
if (sym->symbol.isform) {
if (sym->symbol.mflag) {
if (symbol_value(@'si::*inhibit-macro-special*') != Cnil)
sym->symbol.isform = FALSE;
} else if (symbol_value(@'si::*inhibit-macro-special*') != Cnil)
FEerror("~S, a special form, cannot be redefined.", 1, sym);
}
clear_compiler_properties(sym);
#ifdef PDE
remprop(sym, @'defun');
@ -143,8 +136,7 @@ void
clear_compiler_properties(cl_object sym)
{
si_unlink_symbol(sym);
if (symbol_value(@'si::*inhibit-macro-special*') != Cnil)
(void)funcall(2, @'si::clear-compiler-properties', sym);
funcall(2, @'si::clear-compiler-properties', sym);
}
cl_object
@ -165,7 +157,6 @@ record_source_pathname(cl_object sym, cl_object def)
void
init_assignment(void)
{
SYM_VAL(@'si::*inhibit-macro-special*') = Cnil;
#ifdef PDE
SYM_VAL(@'si::*record-source-pathname-p*') = Cnil;
#endif

View file

@ -60,42 +60,22 @@ cl_make_cclosure_va(cl_objectfn self, cl_object env, cl_object block)
void
cl_def_c_function(cl_object sym, cl_object (*self)(), int narg)
{
if (!SYMBOLP(sym))
FEtype_error_symbol(sym);
if (sym->symbol.isform && sym->symbol.mflag)
sym->symbol.isform = FALSE;
clear_compiler_properties(sym);
SYM_FUN(sym) = cl_make_cfun(self, sym, symbol_value(@'si::*cblock*'), narg);
sym->symbol.mflag = FALSE;
si_fset(2, sym,
cl_make_cfun(self, sym, symbol_value(@'si::*cblock*'), narg));
}
void
cl_def_c_macro_va(cl_object sym, cl_objectfn self)
{
cl_object cf;
if (!SYMBOLP(sym))
FEtype_error_symbol(sym);
if (sym->symbol.isform && sym->symbol.mflag)
sym->symbol.isform = FALSE;
clear_compiler_properties(sym);
#ifdef PDE
record_source_pathname(sym, @'defmacro');
#endif
SYM_FUN(sym) = cl_make_cfun_va(self, sym, symbol_value(@'si::*cblock*'));
sym->symbol.mflag = TRUE;
si_fset(3, sym, cl_make_cfun_va(self, sym, symbol_value(@'si::*cblock*')),
Ct);
}
void
cl_def_c_function_va(cl_object sym, cl_objectfn self)
{
if (!SYMBOLP(sym))
FEtype_error_symbol(sym);
if (sym->symbol.isform && sym->symbol.mflag)
sym->symbol.isform = FALSE;
clear_compiler_properties(sym);
SYM_FUN(sym) = cl_make_cfun_va(self, sym, symbol_value(@'si::*cblock*'));
sym->symbol.mflag = FALSE;
si_fset(2, sym,
cl_make_cfun_va(self, sym, symbol_value(@'si::*cblock*')));
}
cl_object

View file

@ -132,5 +132,4 @@ void
init_macros(void)
{
SYM_VAL(@'*macroexpand-hook*') = @'funcall';
SYM_VAL(@'si::*inhibit-macro-special*') = Cnil;
}

View file

@ -920,7 +920,6 @@ cl_symbols[] = {
{"SI::*IGNORE-ERRORS*", SI_SPECIAL, NULL, -1},
{"SI::*IGNORE-EOF-ON-TERMINAL-IO*", SI_SPECIAL, NULL, -1},
{"SI::*INDENT-FORMATTED-OUTPUT*", SI_SPECIAL, NULL, -1},
{"SI::*INHIBIT-MACRO-SPECIAL*", SI_SPECIAL, NULL, -1},
{"SI::*INIT-FUNCTION-PREFIX*", SI_SPECIAL, NULL, -1},
{"SI::*INTERRUPT-ENABLE*", SI_SPECIAL, NULL, 1},
{"SI::*KEEP-DEFINITIONS*", SI_SPECIAL, NULL, -1},

View file

@ -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 "cl_symbol_function(#0)"))
:inline-always ((t) t nil t "symbol_function(#0)"))
(FBOUNDP (symbol) T nil t)
(SYMBOL-VALUE (symbol) T)
(BOUNDP (symbol) T nil t

View file

@ -11,7 +11,6 @@
(si::select-package "SYSTEM")
(eval-when (eval compile) (defun sys:clear-compiler-properties (symbol)))
(eval-when (eval compile) (setq sys:*inhibit-macro-special* nil))
(defmacro defun (name vl &body body &aux doc-string)
"Syntax: (defun name lambda-list {decl | doc}* {form}*)

View file

@ -13,7 +13,6 @@
(in-package "SYSTEM")
(eval-when (eval compile) (defun sys::clear-compiler-properties (symbol)))
(eval-when (eval compile) (setq sys:*inhibit-macro-special* nil))
;;; DEFSETF macro.
(defmacro defsetf (access-fn &rest rest &aux doc)