1
Fork 0
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:
Marius Vollmer 2001-07-26 21:40:18 +00:00
parent 5b54c4daa1
commit 904a077df1
17 changed files with 201 additions and 391 deletions

View file

@ -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);