* 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.
+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>
* strings.c: Fixed mistaken default value in
#ifdef GUILE_DEBUG
GUILE_PROC(set_print_params_x, "set-print-params!", 1, 0, 0,
- (SCM params)
+ (SCM params),
+"")
#define FUNC_NAME s_set_print_params_x
{
int i, n = scm_ilength (params);
#define FUNC_NAME s_scm_make_iloc
{
SCM_VALIDATE_INT(1,frame);
- SCM_VALIDATE_INT(2,binding)
+ SCM_VALIDATE_INT(2,binding);
return (SCM_ILOC00
+ SCM_IFRINC * SCM_INUM (frame)
+ (SCM_NFALSEP (cdrp) ? SCM_ICDR : 0)
{
/*fixme* environments may be two different but equal top-level envs */
if (!SCM_UNBNDP (env) && SCM_MEMOIZED_ENV (car) != env)
- scm_misc_error (s_memcons,
+ scm_misc_error (s_scm_memcons,
"environment mismatch arg1 <-> arg3",
scm_cons2 (car, env, SCM_EOL));
else
if (SCM_NIMP (cdr) && SCM_MEMOIZEDP (cdr))
{
if (!SCM_UNBNDP (env) && SCM_MEMOIZED_ENV (cdr) != env)
- scm_misc_error (s_memcons,
+ scm_misc_error (s_scm_memcons,
"environment mismatch arg2 <-> arg3",
scm_cons2 (cdr, env, SCM_EOL));
else
SCM_ASSERT (SCM_NULLP (env) || (SCM_NIMP (env) && SCM_CONSP (env)),
env,
SCM_ARG3,
- s_make_iloc);
+ s_scm_make_iloc);
return scm_make_memoized (scm_cons (car, cdr), env);
}
#undef FUNC_NAME
env = SCM_MEMOIZED_ENV (obj);
obj = SCM_MEMOIZED_EXP (obj);
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",
scm_cons (obj, SCM_EOL));
return scm_closure (SCM_CDR (obj), env);
"")
#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)),
SCM_ENV (obj));
}
case (SCM_ISYMNUM (SCM_IM_SLOT_REF)):
x = SCM_CDR (x);
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)):
x = SCM_CDR (x);
proc = SCM_CDR (x);
SCM_STRUCT_DATA (t.arg1)[SCM_INUM (SCM_CAR (x))]
= EVALCAR (proc, env);
- RETURN (SCM_UNSPECIFIED);
+ RETURN (SCM_UNSPECIFIED)
case (SCM_ISYMNUM (SCM_IM_NIL_COND)):
proc = SCM_CDR (x);
#!/bin/sh
# Extract the initialization actions for builtin things.
-filename=$1; shift
+filename=`basename $1`; shift
# we need to be sure that the .x file exists
# since the .c/.cc file may include it
#define FUNC_NAME s_scm_pt_member
{
int i;
- SCM_VALIDATE_INT_copy(1,member,i);
+ SCM_VALIDATE_INT_COPY (1,member,i);
if (i < 0 || i >= scm_port_table_size)
return SCM_BOOL_F;
else
"#@1-ify",
"#@bind",
- "#@delay"
+ "#@delay",
+
+ "#<unbound>"
};
scm_option scm_print_opts[] = {
#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))
\f
-/* Dispatching aids:
- */
+/* Dispatching aids: */
/* For cons pairs with immediate values in the CAR