summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c34
1 files changed, 14 insertions, 20 deletions
diff --git a/eval.c b/eval.c
index 748880dc..107f623d 100644
--- a/eval.c
+++ b/eval.c
@@ -672,7 +672,7 @@ val func_get_name(val fun, val env)
if ((name = hash_revget(top_fb, fun, eq_f, nil)))
return name;
- if ((name = hash_revget(top_mb, fun, eq_f, cdr_f)))
+ if ((name = hash_revget(top_mb, fun, eq_f, nil)))
return list(macro_s, name, nao);
if ((name = method_name(fun)))
@@ -690,8 +690,8 @@ static val lookup_mac(val menv, val sym)
uses_or2;
if (nilp(menv)) {
- return or2(gethash(top_mb, sym),
- if2(autoload_try_fun(sym), gethash(top_mb, sym)));
+ return or2(gethash_d(top_mb, sym),
+ if2(autoload_try_fun(sym), gethash_d(top_mb, sym)));
} else {
type_check(lit("macro lookup"), menv, ENV);
@@ -709,8 +709,8 @@ static val lookup_symac(val menv, val sym)
uses_or2;
if (nilp(menv)) {
- return or2(gethash(top_smb, sym),
- if2(autoload_try_var(sym), gethash(top_smb, sym)));
+ return or2(gethash_d(top_smb, sym),
+ if2(autoload_try_var(sym), gethash_d(top_smb, sym)));
} else {
type_check(lit("symacro lookup"), menv, ENV);
@@ -728,8 +728,8 @@ static val lookup_symac_lisp1(val menv, val sym)
uses_or2;
if (nilp(menv)) {
- return or2(gethash(top_smb, sym),
- if2(autoload_try_var(sym), gethash(top_smb, sym)));
+ return or2(gethash_d(top_smb, sym),
+ if2(autoload_try_var(sym), gethash_d(top_smb, sym)));
} else {
type_check(lit("symacro lookup"), menv, ENV);
@@ -2161,7 +2161,7 @@ static val op_defsymacro(val form, val env)
remhash(top_vb, sym);
if (!opt_compat || opt_compat > 143)
remhash(special, sym);
- sethash(top_smb, sym, cons(sym, second(args)));
+ sethash(top_smb, sym, second(args));
return sym;
}
@@ -2170,7 +2170,7 @@ static val rt_defsymacro(val sym, val def)
autoload_try_var(sym);
remhash(top_vb, sym);
remhash(special, sym);
- sethash(top_smb, sym, cons(sym, def));
+ sethash(top_smb, sym, def);
return sym;
}
@@ -2199,7 +2199,7 @@ static val rt_defun(val name, val function)
static val rt_defmacro(val sym, val name, val function)
{
autoload_try_fun(sym);
- sethash(top_mb, sym, cons(name, function));
+ sethash(top_mb, sym, function);
return name;
}
@@ -2276,8 +2276,8 @@ static val op_defmacro(val form, val env)
/* defmacro captures lexical environment, so env is passed */
sethash(top_mb, name,
- rlcp_tree(cons(name, func_f2(cons(env, cons(params, cons(block, nil))),
- me_interp_macro)),
+ rlcp_tree(func_f2(cons(env, cons(params, cons(block, nil))),
+ me_interp_macro),
block));
return name;
}
@@ -6624,7 +6624,7 @@ void reg_fun(val sym, val fun)
void reg_mac(val sym, val fun)
{
assert (sym != 0);
- sethash(top_mb, sym, cons(sym, fun));
+ sethash(top_mb, sym, fun);
sethash(builtin, sym, defmacro_s);
}
@@ -6642,13 +6642,7 @@ void reg_var(val sym, val val)
void reg_symacro(val sym, val form)
{
- loc pcdr = gethash_l(lit("internal initialization"), top_smb, sym, nulloc);
- val binding = deref(pcdr);
-
- if (binding)
- rplacd(binding, form);
- else
- set(pcdr, cons(sym, form));
+ sethash(top_smb, sym, form);
}
static val if_fun(val cond, val then, val alt)