mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-15 08:10:17 +02:00
* guile-doc-snarf.awk: Removed.
* guile-doc-snarf.awk.in: Added. * ports.c (s_scm_pt_member): Fixed validation. * guile-doc-snarf.in (filename): Use basename in order to strip away path. * debug.c (scm_make_iloc, s_scm_proc_to_mem): Added missing semicolon. (scm_memcons, scm_memcons, mem_to_proc): Renamed function name strings to new form. * backtrace.c (set_print_params_x): Fixed GUILE_PROC macro. * tags.h (SCM_UNBOUND): New iflag which is needed for some time to mark the unboundness of a GOOPS slot. (Added now in order to correct a oversight. Should probably be removed again and replaced with SCM_UNDEFINED when the corresponding code in GOOPS is rewritten.) * print.c (scm_isymnames): Added printed representation for SCM_UNBOUND. * eval.c (SCM_CEVAL): Bugfix: Added check for unbound slot in SCM_IM_SLOT_REF.
This commit is contained in:
parent
763a67161f
commit
5623a9b459
9 changed files with 62 additions and 14 deletions
|
@ -1,3 +1,33 @@
|
||||||
|
1999-12-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||||||
|
|
||||||
|
* guile-doc-snarf.awk: Removed.
|
||||||
|
|
||||||
|
* guile-doc-snarf.awk.in: Added.
|
||||||
|
|
||||||
|
* ports.c (s_scm_pt_member): Fixed validation.
|
||||||
|
|
||||||
|
* guile-doc-snarf.in (filename): Use basename in order to strip
|
||||||
|
away path.
|
||||||
|
|
||||||
|
* debug.c (scm_make_iloc, s_scm_proc_to_mem): Added missing
|
||||||
|
semicolon.
|
||||||
|
(scm_memcons, scm_memcons, mem_to_proc): Renamed function name
|
||||||
|
strings to new form.
|
||||||
|
|
||||||
|
* backtrace.c (set_print_params_x): Fixed GUILE_PROC macro.
|
||||||
|
|
||||||
|
* tags.h (SCM_UNBOUND): New iflag which is needed for some time to
|
||||||
|
mark the unboundness of a GOOPS slot. (Added now in order to
|
||||||
|
correct a oversight. Should probably be removed again and
|
||||||
|
replaced with SCM_UNDEFINED when the corresponding code in GOOPS
|
||||||
|
is rewritten.)
|
||||||
|
|
||||||
|
* print.c (scm_isymnames): Added printed representation for
|
||||||
|
SCM_UNBOUND.
|
||||||
|
|
||||||
|
* eval.c (SCM_CEVAL): Bugfix: Added check for unbound slot in
|
||||||
|
SCM_IM_SLOT_REF.
|
||||||
|
|
||||||
Mon Dec 13 17:23:22 1999 Greg J. Badros <gjb@cs.washington.edu>
|
Mon Dec 13 17:23:22 1999 Greg J. Badros <gjb@cs.washington.edu>
|
||||||
|
|
||||||
* strings.c: Fixed mistaken default value in
|
* strings.c: Fixed mistaken default value in
|
||||||
|
|
|
@ -286,7 +286,8 @@ static print_params_t *print_params = default_print_params;
|
||||||
|
|
||||||
#ifdef GUILE_DEBUG
|
#ifdef GUILE_DEBUG
|
||||||
GUILE_PROC(set_print_params_x, "set-print-params!", 1, 0, 0,
|
GUILE_PROC(set_print_params_x, "set-print-params!", 1, 0, 0,
|
||||||
(SCM params)
|
(SCM params),
|
||||||
|
"")
|
||||||
#define FUNC_NAME s_set_print_params_x
|
#define FUNC_NAME s_set_print_params_x
|
||||||
{
|
{
|
||||||
int i, n = scm_ilength (params);
|
int i, n = scm_ilength (params);
|
||||||
|
|
|
@ -286,7 +286,7 @@ GUILE_PROC (scm_make_iloc, "make-iloc", 3, 0, 0,
|
||||||
#define FUNC_NAME s_scm_make_iloc
|
#define FUNC_NAME s_scm_make_iloc
|
||||||
{
|
{
|
||||||
SCM_VALIDATE_INT(1,frame);
|
SCM_VALIDATE_INT(1,frame);
|
||||||
SCM_VALIDATE_INT(2,binding)
|
SCM_VALIDATE_INT(2,binding);
|
||||||
return (SCM_ILOC00
|
return (SCM_ILOC00
|
||||||
+ SCM_IFRINC * SCM_INUM (frame)
|
+ SCM_IFRINC * SCM_INUM (frame)
|
||||||
+ (SCM_NFALSEP (cdrp) ? SCM_ICDR : 0)
|
+ (SCM_NFALSEP (cdrp) ? SCM_ICDR : 0)
|
||||||
|
@ -312,7 +312,7 @@ GUILE_PROC (scm_memcons, "memcons", 2, 1, 0,
|
||||||
{
|
{
|
||||||
/*fixme* environments may be two different but equal top-level envs */
|
/*fixme* environments may be two different but equal top-level envs */
|
||||||
if (!SCM_UNBNDP (env) && SCM_MEMOIZED_ENV (car) != env)
|
if (!SCM_UNBNDP (env) && SCM_MEMOIZED_ENV (car) != env)
|
||||||
scm_misc_error (s_memcons,
|
scm_misc_error (s_scm_memcons,
|
||||||
"environment mismatch arg1 <-> arg3",
|
"environment mismatch arg1 <-> arg3",
|
||||||
scm_cons2 (car, env, SCM_EOL));
|
scm_cons2 (car, env, SCM_EOL));
|
||||||
else
|
else
|
||||||
|
@ -322,7 +322,7 @@ GUILE_PROC (scm_memcons, "memcons", 2, 1, 0,
|
||||||
if (SCM_NIMP (cdr) && SCM_MEMOIZEDP (cdr))
|
if (SCM_NIMP (cdr) && SCM_MEMOIZEDP (cdr))
|
||||||
{
|
{
|
||||||
if (!SCM_UNBNDP (env) && SCM_MEMOIZED_ENV (cdr) != env)
|
if (!SCM_UNBNDP (env) && SCM_MEMOIZED_ENV (cdr) != env)
|
||||||
scm_misc_error (s_memcons,
|
scm_misc_error (s_scm_memcons,
|
||||||
"environment mismatch arg2 <-> arg3",
|
"environment mismatch arg2 <-> arg3",
|
||||||
scm_cons2 (cdr, env, SCM_EOL));
|
scm_cons2 (cdr, env, SCM_EOL));
|
||||||
else
|
else
|
||||||
|
@ -335,7 +335,7 @@ GUILE_PROC (scm_memcons, "memcons", 2, 1, 0,
|
||||||
SCM_ASSERT (SCM_NULLP (env) || (SCM_NIMP (env) && SCM_CONSP (env)),
|
SCM_ASSERT (SCM_NULLP (env) || (SCM_NIMP (env) && SCM_CONSP (env)),
|
||||||
env,
|
env,
|
||||||
SCM_ARG3,
|
SCM_ARG3,
|
||||||
s_make_iloc);
|
s_scm_make_iloc);
|
||||||
return scm_make_memoized (scm_cons (car, cdr), env);
|
return scm_make_memoized (scm_cons (car, cdr), env);
|
||||||
}
|
}
|
||||||
#undef FUNC_NAME
|
#undef FUNC_NAME
|
||||||
|
@ -350,7 +350,7 @@ GUILE_PROC (scm_mem_to_proc, "mem->proc", 1, 0, 0,
|
||||||
env = SCM_MEMOIZED_ENV (obj);
|
env = SCM_MEMOIZED_ENV (obj);
|
||||||
obj = SCM_MEMOIZED_EXP (obj);
|
obj = SCM_MEMOIZED_EXP (obj);
|
||||||
if (!(SCM_NIMP (obj) && SCM_CAR (obj) == SCM_IM_LAMBDA))
|
if (!(SCM_NIMP (obj) && SCM_CAR (obj) == SCM_IM_LAMBDA))
|
||||||
scm_misc_error (s_mem_to_proc,
|
scm_misc_error (s_scm_mem_to_proc,
|
||||||
"expected lambda expression",
|
"expected lambda expression",
|
||||||
scm_cons (obj, SCM_EOL));
|
scm_cons (obj, SCM_EOL));
|
||||||
return scm_closure (SCM_CDR (obj), env);
|
return scm_closure (SCM_CDR (obj), env);
|
||||||
|
@ -362,7 +362,7 @@ GUILE_PROC (scm_proc_to_mem, "proc->mem", 1, 0, 0,
|
||||||
"")
|
"")
|
||||||
#define FUNC_NAME s_scm_proc_to_mem
|
#define FUNC_NAME s_scm_proc_to_mem
|
||||||
{
|
{
|
||||||
SCM_VALIDATE_CLOSURE(1,obj)
|
SCM_VALIDATE_CLOSURE (1, obj);
|
||||||
return scm_make_memoized (scm_cons (SCM_IM_LAMBDA, SCM_CODE (obj)),
|
return scm_make_memoized (scm_cons (SCM_IM_LAMBDA, SCM_CODE (obj)),
|
||||||
SCM_ENV (obj));
|
SCM_ENV (obj));
|
||||||
}
|
}
|
||||||
|
|
|
@ -2340,7 +2340,12 @@ dispatch:
|
||||||
case (SCM_ISYMNUM (SCM_IM_SLOT_REF)):
|
case (SCM_ISYMNUM (SCM_IM_SLOT_REF)):
|
||||||
x = SCM_CDR (x);
|
x = SCM_CDR (x);
|
||||||
t.arg1 = EVALCAR (x, env);
|
t.arg1 = EVALCAR (x, env);
|
||||||
RETURN (SCM_STRUCT_DATA (t.arg1)[SCM_INUM (SCM_CADR (x))]);
|
proc = SCM_STRUCT_DATA (t.arg1)[SCM_INUM (SCM_CADR (x))];
|
||||||
|
if (proc == SCM_UNBOUND)
|
||||||
|
scm_misc_error (NULL,
|
||||||
|
"Reference to unbound slot in %S",
|
||||||
|
SCM_LIST1 (t.arg1));
|
||||||
|
RETURN (proc)
|
||||||
|
|
||||||
case (SCM_ISYMNUM (SCM_IM_SLOT_SET_X)):
|
case (SCM_ISYMNUM (SCM_IM_SLOT_SET_X)):
|
||||||
x = SCM_CDR (x);
|
x = SCM_CDR (x);
|
||||||
|
@ -2349,7 +2354,7 @@ dispatch:
|
||||||
proc = SCM_CDR (x);
|
proc = SCM_CDR (x);
|
||||||
SCM_STRUCT_DATA (t.arg1)[SCM_INUM (SCM_CAR (x))]
|
SCM_STRUCT_DATA (t.arg1)[SCM_INUM (SCM_CAR (x))]
|
||||||
= EVALCAR (proc, env);
|
= EVALCAR (proc, env);
|
||||||
RETURN (SCM_UNSPECIFIED);
|
RETURN (SCM_UNSPECIFIED)
|
||||||
|
|
||||||
case (SCM_ISYMNUM (SCM_IM_NIL_COND)):
|
case (SCM_ISYMNUM (SCM_IM_NIL_COND)):
|
||||||
proc = SCM_CDR (x);
|
proc = SCM_CDR (x);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Extract the initialization actions for builtin things.
|
# Extract the initialization actions for builtin things.
|
||||||
|
|
||||||
filename=$1; shift
|
filename=`basename $1`; shift
|
||||||
|
|
||||||
# we need to be sure that the .x file exists
|
# we need to be sure that the .x file exists
|
||||||
# since the .c/.cc file may include it
|
# since the .c/.cc file may include it
|
||||||
|
|
|
@ -454,7 +454,7 @@ GUILE_PROC(scm_pt_member, "pt-member", 1, 0, 0,
|
||||||
#define FUNC_NAME s_scm_pt_member
|
#define FUNC_NAME s_scm_pt_member
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
SCM_VALIDATE_INT_copy(1,member,i);
|
SCM_VALIDATE_INT_COPY (1,member,i);
|
||||||
if (i < 0 || i >= scm_port_table_size)
|
if (i < 0 || i >= scm_port_table_size)
|
||||||
return SCM_BOOL_F;
|
return SCM_BOOL_F;
|
||||||
else
|
else
|
||||||
|
|
|
@ -116,7 +116,9 @@ char *scm_isymnames[] =
|
||||||
"#@1-ify",
|
"#@1-ify",
|
||||||
"#@bind",
|
"#@bind",
|
||||||
|
|
||||||
"#@delay"
|
"#@delay",
|
||||||
|
|
||||||
|
"#<unbound>"
|
||||||
};
|
};
|
||||||
|
|
||||||
scm_option scm_print_opts[] = {
|
scm_option scm_print_opts[] = {
|
||||||
|
|
|
@ -500,12 +500,22 @@ extern char *scm_isymnames[]; /* defined in print.c */
|
||||||
|
|
||||||
#define SCM_IM_DELAY SCM_MAKISYM(32)
|
#define SCM_IM_DELAY SCM_MAKISYM(32)
|
||||||
|
|
||||||
|
/* When a variable is unbound this is marked by the SCM_UNDEFINED
|
||||||
|
* value. The following is an unbound value which can be handled on
|
||||||
|
* the Scheme level, i.e., it can be stored in and retrieved from a
|
||||||
|
* Scheme variable. This value is only intended to mark an unbound
|
||||||
|
* slot in GOOPS. It is needed now, but we should probably rewrite
|
||||||
|
* the code which handles this value in C so that SCM_UNDEFINED can be
|
||||||
|
* used instead. It is not ideal to let this kind of unique and
|
||||||
|
* strange values loose on the Scheme level.
|
||||||
|
*/
|
||||||
|
#define SCM_UNBOUND SCM_MAKIFLAG(33)
|
||||||
|
|
||||||
#define SCM_UNBNDP(x) (SCM_UNDEFINED==(x))
|
#define SCM_UNBNDP(x) (SCM_UNDEFINED==(x))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Dispatching aids:
|
/* Dispatching aids: */
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/* For cons pairs with immediate values in the CAR
|
/* For cons pairs with immediate values in the CAR
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue