mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
* tags.h: Update tag system docs.
(scm_tc3_cons_gloc): Renamed to scm_tc3_struct. Changed all uses. (scm_tcs_cons_gloc): Renamed to scm_tcs_struct. Changed all uses. (SCM_ECONSP, SCM_NECONSP): Removed. Changed all uses to SCM_CONSP or SCM_NCONSP, respectively. * struct.c, struct.h, srcprop.c, procs.c, procprop.c, print.c, objects.c. modules.c, goops.c, eval.c, debug.c: Changed all uses of scm_tc3_cond_gloc and scm_tcs_cons_gloc. See above. * print.c (scm_iprin1): Remove printing of glocs. Do not try to tell glocs from structs. * gc.c (scm_gc_mark, scm_gc_sweep): Remove handling of glocs. * eval.c (scm_m_atbind): Make a list of variables, not glocs. (scm_ceval, scm_deval): For SCM_IM_BIND, fiddle with variables instead of with glocs. (EVALCAR): Do not test for glocs. (scm_lookupcar, scm_lookupcar1): Do not handle glocs in race condition. (scm_unmemocar): Do not handle glocs. (scm_m_atfop): Memoize as a variable, not as a gloc. (scm_eval_args, scm_deval_args): Do not handle glocs. (scm_ceval, scm_deval): Likewise. * eval.h (SCM_XEVALCAR): Do not test for glocs. (SCM_GLOC_VAR, SCM_GLOC_VAL, SCM_GLOC_SET_VAL, SCM_GLOC_VAL_LOC): Removed. * debug.h, debug.c (scm_make_gloc, scm_gloc_p): Removed. * dynwind.c (scm_swap_bindings): Likewise. (scm_dowinds): Updated to recognize lists of variables instead of lists of glocs. * __scm.h (SCM_CAUTIOS, SCM_RECKLESS): Update comments.
This commit is contained in:
parent
5b54c4daa1
commit
904a077df1
17 changed files with 201 additions and 391 deletions
|
@ -196,17 +196,6 @@ scm_make_memoized (SCM exp, SCM env)
|
|||
* specified, the top-level environment of the current module will
|
||||
* be assumed. All environments must match.
|
||||
*
|
||||
* - procedure: make-gloc VARIABLE [ENV]
|
||||
*
|
||||
* Return a gloc, encapsulated in a memoized object.
|
||||
*
|
||||
* (Glocs can't exist in normal list structures, since they will
|
||||
* be mistaken for structs.)
|
||||
*
|
||||
* - procedure: gloc? OBJECT
|
||||
*
|
||||
* Return #t if OBJECT is a memoized gloc.
|
||||
*
|
||||
* - procedure: make-iloc FRAME BINDING CDRP
|
||||
*
|
||||
* Return an iloc referring to frame no. FRAME, binding
|
||||
|
@ -252,32 +241,6 @@ scm_make_memoized (SCM exp, SCM env)
|
|||
#include "libguile/variable.h"
|
||||
#include "libguile/procs.h"
|
||||
|
||||
SCM_DEFINE (scm_make_gloc, "make-gloc", 1, 1, 0,
|
||||
(SCM var, SCM env),
|
||||
"Create a gloc for variable @var{var} in the environment\n"
|
||||
"@var{env}.")
|
||||
#define FUNC_NAME s_scm_make_gloc
|
||||
{
|
||||
SCM_VALIDATE_VARIABLE (1,var);
|
||||
if (SCM_UNBNDP (env))
|
||||
env = scm_top_level_env (SCM_TOP_LEVEL_LOOKUP_CLOSURE);
|
||||
else
|
||||
SCM_VALIDATE_NULLORCONS (2,env);
|
||||
return scm_make_memoized (SCM_PACK (SCM_UNPACK (var) + scm_tc3_cons_gloc), env);
|
||||
}
|
||||
#undef FUNC_NAME
|
||||
|
||||
SCM_DEFINE (scm_gloc_p, "gloc?", 1, 0, 0,
|
||||
(SCM obj),
|
||||
"Return @code{#t} if @var{obj} is a gloc.")
|
||||
#define FUNC_NAME s_scm_gloc_p
|
||||
{
|
||||
return
|
||||
SCM_BOOL (SCM_MEMOIZEDP (obj)
|
||||
&& ((SCM_UNPACK(SCM_MEMOIZED_EXP(obj))&7) == scm_tc3_cons_gloc));
|
||||
}
|
||||
#undef FUNC_NAME
|
||||
|
||||
SCM_DEFINE (scm_make_iloc, "make-iloc", 3, 0, 0,
|
||||
(SCM frame, SCM binding, SCM cdrp),
|
||||
"Return a new iloc with frame offset @var{frame}, binding\n"
|
||||
|
@ -538,8 +501,8 @@ scm_m_start_stack (SCM exp, SCM env)
|
|||
#define FUNC_NAME s_start_stack
|
||||
{
|
||||
exp = SCM_CDR (exp);
|
||||
if (!SCM_ECONSP (exp)
|
||||
|| !SCM_ECONSP (SCM_CDR (exp))
|
||||
if (!SCM_CONSP (exp)
|
||||
|| !SCM_CONSP (SCM_CDR (exp))
|
||||
|| !SCM_NULLP (SCM_CDDR (exp)))
|
||||
SCM_WRONG_NUM_ARGS ();
|
||||
return scm_start_stack (scm_eval_car (exp, env), SCM_CADR (exp), env);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue