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:
parent
935aa279f6
commit
ee33f8faed
1 changed files with 15 additions and 15 deletions
|
@ -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));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue