/* -*-C-*-
-$Id: cmpint.c,v 1.101 2003/05/17 20:55:31 cph Exp $
+$Id: cmpint.c,v 1.102 2004/11/18 18:13:58 cph Exp $
Copyright 1989,1990,1991,1992,1993,1994 Massachusetts Institute of Technology
Copyright 1995,1996,2000,2001,2002,2003 Massachusetts Institute of Technology
#include "interp.h" /* Interpreter state and primitive destructuring */
#include "default.h" /* various definitions */
#include "extern.h" /* External decls (missing Cont_Debug, etc.) */
-#include "trap.h" /* UNASSIGNED_OBJECT, CACHE_TYPE */
+#include "trap.h" /* CACHE_TYPE */
#include "prims.h" /* LEXPR */
#include "prim.h" /* Primitive_Procedure_Table, etc. */
delta = (- delta);
while ((--delta) >= 0)
{
- STACK_LOCATIVE_POP (gap_location) = UNASSIGNED_OBJECT;
+ STACK_LOCATIVE_POP (gap_location) = DEFAULT_OBJECT;
}
return (source_location);
}
\f
/* ARITY Mismatch handling
These receive the entry point as an argument and must fill the
- Scheme stack with the missing unassigned values.
+ Scheme stack with the missing default values.
They are invoked by TRAMPOLINE_K_n_m where n and m are the same
as in the name of the procedure.
The single item of information in the trampoline data area is
{
SCHEME_OBJECT * tramp_data = (SCHEME_ADDR_TO_ADDR (tramp_data_raw));
- STACK_PUSH (UNASSIGNED_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
RETURN_TO_SCHEME (OBJECT_ADDRESS (tramp_data[0]));
}
SCHEME_OBJECT * tramp_data = (SCHEME_ADDR_TO_ADDR (tramp_data_raw));
Top = (STACK_POP ());
- STACK_PUSH (UNASSIGNED_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
STACK_PUSH (Top);
RETURN_TO_SCHEME (OBJECT_ADDRESS (tramp_data[0]));
}
{
SCHEME_OBJECT * tramp_data = (SCHEME_ADDR_TO_ADDR (tramp_data_raw));
- STACK_PUSH (UNASSIGNED_OBJECT);
- STACK_PUSH (UNASSIGNED_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
RETURN_TO_SCHEME (OBJECT_ADDRESS (tramp_data[0]));
}
Top = (STACK_POP ());
Next = (STACK_POP ());
- STACK_PUSH (UNASSIGNED_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
STACK_PUSH (Next);
STACK_PUSH (Top);
RETURN_TO_SCHEME (OBJECT_ADDRESS (tramp_data[0]));
SCHEME_OBJECT * tramp_data = (SCHEME_ADDR_TO_ADDR (tramp_data_raw));
Top = (STACK_POP ());
- STACK_PUSH (UNASSIGNED_OBJECT);
- STACK_PUSH (UNASSIGNED_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
STACK_PUSH (Top);
RETURN_TO_SCHEME (OBJECT_ADDRESS (tramp_data[0]));
}
{
SCHEME_OBJECT * tramp_data = (SCHEME_ADDR_TO_ADDR (tramp_data_raw));
- STACK_PUSH (UNASSIGNED_OBJECT);
- STACK_PUSH (UNASSIGNED_OBJECT);
- STACK_PUSH (UNASSIGNED_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
RETURN_TO_SCHEME (OBJECT_ADDRESS (tramp_data[0]));
}
Middle = (STACK_POP ());
Bottom = (STACK_POP ());
- STACK_PUSH (UNASSIGNED_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
STACK_PUSH (Bottom);
STACK_PUSH (Middle);
STACK_PUSH (Top);
Top = (STACK_POP ());
Next = (STACK_POP ());
- STACK_PUSH (UNASSIGNED_OBJECT);
- STACK_PUSH (UNASSIGNED_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
STACK_PUSH (Next);
STACK_PUSH (Top);
RETURN_TO_SCHEME (OBJECT_ADDRESS (tramp_data[0]));
SCHEME_OBJECT * tramp_data = (SCHEME_ADDR_TO_ADDR (tramp_data_raw));
Top = (STACK_POP ());
- STACK_PUSH (UNASSIGNED_OBJECT);
- STACK_PUSH (UNASSIGNED_OBJECT);
- STACK_PUSH (UNASSIGNED_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
STACK_PUSH (Top);
RETURN_TO_SCHEME (OBJECT_ADDRESS (tramp_data[0]));
}
DEFINE_SCHEME_UTILITY_1 (comutil_operator_4_0_trap, tramp_data_raw)
{
SCHEME_OBJECT * tramp_data = (SCHEME_ADDR_TO_ADDR (tramp_data_raw));
- STACK_PUSH (UNASSIGNED_OBJECT);
- STACK_PUSH (UNASSIGNED_OBJECT);
- STACK_PUSH (UNASSIGNED_OBJECT);
- STACK_PUSH (UNASSIGNED_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
+ STACK_PUSH (DEFAULT_OBJECT);
RETURN_TO_SCHEME (OBJECT_ADDRESS (tramp_data[0]));
}
\f
/* -*-C-*-
-$Id: const.h,v 9.48 2003/02/14 18:28:18 cph Exp $
+$Id: const.h,v 9.49 2004/11/18 18:14:02 cph Exp $
Copyright (c) 1987-2000 Massachusetts Institute of Technology
#define PI 3.1415926535
#define STACK_FRAME_HEADER 1
-/* Precomputed typed pointers */
-#if (SIZEOF_UNSIGNED_LONG == 4) /* 32 bit word */
-# if (TYPE_CODE_LENGTH == 8)
-# define SHARP_F 0x00000000
-# define SHARP_T 0x08000000
-# define UNSPECIFIC 0x08000001
-# define FIXNUM_ZERO 0x1A000000
-# define BROKEN_HEART_ZERO 0x22000000
-# endif
-# if (TYPE_CODE_LENGTH == 6)
-# define SHARP_F 0x00000000
-# define SHARP_T 0x20000000
-# define UNSPECIFIC 0x20000001
-# define FIXNUM_ZERO 0x68000000
-# define BROKEN_HEART_ZERO 0x88000000
-# endif
-#endif
+/* Assigned TC_CONSTANT datum values:
+ 0 #t
+ 1 unspecific
+ 2 [non-object]
+ 3 #!optional
+ 4 #!rest
+ 5 #!key
+ 6 #!eof
+ 7 #!default
+ */
-#ifndef SHARP_F /* Safe version */
-# define SHARP_F MAKE_OBJECT (TC_NULL, 0)
-# define SHARP_T MAKE_OBJECT (TC_CONSTANT, 0)
-# define UNSPECIFIC MAKE_OBJECT (TC_CONSTANT, 1)
-# define FIXNUM_ZERO MAKE_OBJECT (TC_FIXNUM, 0)
-# define BROKEN_HEART_ZERO MAKE_OBJECT (TC_BROKEN_HEART, 0)
-#endif /* SHARP_F */
+#define SHARP_F MAKE_OBJECT (TC_NULL, 0)
+#define SHARP_T MAKE_OBJECT (TC_CONSTANT, 0)
+#define UNSPECIFIC MAKE_OBJECT (TC_CONSTANT, 1)
+#define DEFAULT_OBJECT MAKE_OBJECT (TC_CONSTANT, 7)
+#define FIXNUM_ZERO MAKE_OBJECT (TC_FIXNUM, 0)
+#define BROKEN_HEART_ZERO MAKE_OBJECT (TC_BROKEN_HEART, 0)
#define EMPTY_LIST SHARP_F
\f
/* -*-C-*-
-$Id: interp.c,v 9.100 2003/03/06 05:41:19 cph Exp $
+$Id: interp.c,v 9.101 2004/11/18 18:14:06 cph Exp $
Copyright 1986,1987,1988,1989,1990,1991 Massachusetts Institute of Technology
Copyright 1992,2000,2001,2002,2003 Massachusetts Institute of Technology
for (i = (nargs + 1); (--i) >= 0; )
(*scan++) = (STACK_POP ());
for (i = (params - nargs); (--i) >= 0; )
- (*scan++) = UNASSIGNED_OBJECT;
+ (*scan++) = DEFAULT_OBJECT;
if (rest_flag)
(*scan++) = EMPTY_LIST;
for (i = auxes; (--i) >= 0; )
- (*scan++) = UNASSIGNED_OBJECT;
+ (*scan++) = DEFAULT_OBJECT;
}
else
{
(*scan++) = (STACK_POP ());
(*scan++) = list;
for (i = auxes; (--i) >= 0; )
- (*scan++) = UNASSIGNED_OBJECT;
+ (*scan++) = DEFAULT_OBJECT;
/* Now scan == OBJECT_ADDRESS (list) */
for (i = (nargs - params); (--i) >= 0; )
{