mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 11:40:18 +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:
parent
935aa279f6
commit
ee33f8faed
1 changed files with 15 additions and 15 deletions
|
@ -1664,7 +1664,6 @@ dispatch:
|
|||
RETURN (SCM_UNSPECIFIED);
|
||||
|
||||
|
||||
|
||||
/* new syntactic forms go here. */
|
||||
case (127 & SCM_MAKISYM (0)):
|
||||
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_definedp (x, env)
|
||||
SCM x;
|
||||
SCM env;
|
||||
scm_definedp (sym)
|
||||
SCM sym;
|
||||
{
|
||||
SCM proc = SCM_CAR (x = SCM_CDR (x));
|
||||
if (SCM_ISYMP (proc))
|
||||
SCM vcell;
|
||||
|
||||
if (SCM_ISYMP (sym))
|
||||
return SCM_BOOL_T;
|
||||
else if(SCM_IMP(proc) || !SCM_SYMBOLP(proc))
|
||||
return SCM_BOOL_F;
|
||||
else
|
||||
{
|
||||
SCM vcell = scm_sym2vcell(proc, env_top_level(env), SCM_BOOL_F);
|
||||
return (vcell == SCM_BOOL_F || SCM_UNBNDP(SCM_CDR(vcell))) ? SCM_BOOL_F : SCM_BOOL_T;
|
||||
}
|
||||
|
||||
SCM_ASSERT (SCM_NIMP (sym) && SCM_SYMBOLP (sym), sym, SCM_ARG1, s_definedp);
|
||||
|
||||
vcell = scm_sym2vcell(sym,
|
||||
SCM_CDR (scm_top_level_lookup_thunk_var),
|
||||
SCM_BOOL_F);
|
||||
return (vcell == SCM_BOOL_F || SCM_UNBNDP(SCM_CDR(vcell))) ?
|
||||
SCM_BOOL_F : SCM_BOOL_T;
|
||||
}
|
||||
|
||||
static scm_smobfuns promsmob =
|
||||
|
@ -2923,8 +2925,6 @@ scm_init_eval ()
|
|||
scm_i_atcall_cc = scm_make_synt ("@call-with-current-continuation",
|
||||
scm_makmmacro, scm_m_cont);
|
||||
|
||||
scm_make_synt ("defined?", scm_makmmacro, scm_definedp);
|
||||
|
||||
#ifdef DEBUG_EXTENSIONS
|
||||
scm_i_enter_frame = SCM_CAR (scm_sysintern ("enter-frame", SCM_UNDEFINED));
|
||||
scm_i_apply_frame = SCM_CAR (scm_sysintern ("apply-frame", SCM_UNDEFINED));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue