1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 19:50:24 +02:00

* eval.c (scm_definedp): Incompatibly changed to be a builtin

Scheme function, instead of syntax. Single argument is now a
symbol.
This commit is contained in:
Marius Vollmer 1996-11-27 13:22:58 +00:00
parent 935aa279f6
commit ee33f8faed

View file

@ -1664,7 +1664,6 @@ dispatch:
RETURN (SCM_UNSPECIFIED); RETURN (SCM_UNSPECIFIED);
/* new syntactic forms go here. */ /* new syntactic forms go here. */
case (127 & SCM_MAKISYM (0)): case (127 & SCM_MAKISYM (0)):
proc = SCM_CAR (x); proc = SCM_CAR (x);
@ -2830,21 +2829,24 @@ scm_macro_eval_x (exp, env)
} }
SCM_PROC (s_definedp, "defined?", 1, 0, 0, scm_definedp);
SCM SCM
scm_definedp (x, env) scm_definedp (sym)
SCM x; SCM sym;
SCM env;
{ {
SCM proc = SCM_CAR (x = SCM_CDR (x)); SCM vcell;
if (SCM_ISYMP (proc))
if (SCM_ISYMP (sym))
return SCM_BOOL_T; return SCM_BOOL_T;
else if(SCM_IMP(proc) || !SCM_SYMBOLP(proc))
return SCM_BOOL_F; SCM_ASSERT (SCM_NIMP (sym) && SCM_SYMBOLP (sym), sym, SCM_ARG1, s_definedp);
else
{ vcell = scm_sym2vcell(sym,
SCM vcell = scm_sym2vcell(proc, env_top_level(env), SCM_BOOL_F); SCM_CDR (scm_top_level_lookup_thunk_var),
return (vcell == SCM_BOOL_F || SCM_UNBNDP(SCM_CDR(vcell))) ? SCM_BOOL_F : SCM_BOOL_T; SCM_BOOL_F);
} return (vcell == SCM_BOOL_F || SCM_UNBNDP(SCM_CDR(vcell))) ?
SCM_BOOL_F : SCM_BOOL_T;
} }
static scm_smobfuns promsmob = static scm_smobfuns promsmob =
@ -2923,8 +2925,6 @@ scm_init_eval ()
scm_i_atcall_cc = scm_make_synt ("@call-with-current-continuation", scm_i_atcall_cc = scm_make_synt ("@call-with-current-continuation",
scm_makmmacro, scm_m_cont); scm_makmmacro, scm_m_cont);
scm_make_synt ("defined?", scm_makmmacro, scm_definedp);
#ifdef DEBUG_EXTENSIONS #ifdef DEBUG_EXTENSIONS
scm_i_enter_frame = SCM_CAR (scm_sysintern ("enter-frame", SCM_UNDEFINED)); scm_i_enter_frame = SCM_CAR (scm_sysintern ("enter-frame", SCM_UNDEFINED));
scm_i_apply_frame = SCM_CAR (scm_sysintern ("apply-frame", SCM_UNDEFINED)); scm_i_apply_frame = SCM_CAR (scm_sysintern ("apply-frame", SCM_UNDEFINED));