/* -*-C-*-
-$Id: boot.c,v 9.85 1993/10/14 19:20:09 gjr Exp $
+$Id: boot.c,v 9.86 1993/10/26 03:04:06 jawilson Exp $
Copyright (c) 1988-1993 Massachusetts Institute of Technology
extern void EXFUN (Clear_Memory, (int, int, int));
extern void EXFUN (Setup_Memory, (int, int, int));
extern void EXFUN (compiler_initialize, (long fasl_p));
-extern SCHEME_OBJECT EXFUN (make_primitive, (char *));
+extern SCHEME_OBJECT EXFUN (make_primitive, (char *, int));
\f
static void EXFUN (Start_Scheme, (int, CONST char *));
static void EXFUN (Enter_Interpreter, (void));
FAST_VECTOR_SET
(fixed_objects_vector,
GENERIC_TRAMPOLINE_ZERO_P,
- (make_primitive ("INTEGER-ZERO?")));
+ (make_primitive ("INTEGER-ZERO?", 1)));
FAST_VECTOR_SET
(fixed_objects_vector,
GENERIC_TRAMPOLINE_POSITIVE_P,
- (make_primitive ("INTEGER-POSITIVE?")));
+ (make_primitive ("INTEGER-POSITIVE?", 1)));
FAST_VECTOR_SET
(fixed_objects_vector,
GENERIC_TRAMPOLINE_NEGATIVE_P,
- (make_primitive ("INTEGER-NEGATIVE?")));
+ (make_primitive ("INTEGER-NEGATIVE?", 1)));
FAST_VECTOR_SET
(fixed_objects_vector,
GENERIC_TRAMPOLINE_SUCCESSOR,
- (make_primitive ("INTEGER-ADD-1")));
+ (make_primitive ("INTEGER-ADD-1", 1)));
FAST_VECTOR_SET
(fixed_objects_vector,
GENERIC_TRAMPOLINE_PREDECESSOR,
- (make_primitive ("INTEGER-SUBTRACT-1")));
+ (make_primitive ("INTEGER-SUBTRACT-1", 1)));
FAST_VECTOR_SET
(fixed_objects_vector,
GENERIC_TRAMPOLINE_EQUAL_P,
- (make_primitive ("INTEGER-EQUAL?")));
+ (make_primitive ("INTEGER-EQUAL?", 2)));
FAST_VECTOR_SET
(fixed_objects_vector,
GENERIC_TRAMPOLINE_LESS_P,
- (make_primitive ("INTEGER-LESS?")));
+ (make_primitive ("INTEGER-LESS?", 2)));
FAST_VECTOR_SET
(fixed_objects_vector,
GENERIC_TRAMPOLINE_GREATER_P,
- (make_primitive ("INTEGER-GREATER?")));
+ (make_primitive ("INTEGER-GREATER?", 2)));
FAST_VECTOR_SET
(fixed_objects_vector,
GENERIC_TRAMPOLINE_ADD,
- (make_primitive ("INTEGER-ADD")));
+ (make_primitive ("INTEGER-ADD", 2)));
FAST_VECTOR_SET
(fixed_objects_vector,
GENERIC_TRAMPOLINE_SUBTRACT,
- (make_primitive ("INTEGER-SUBTRACT")));
+ (make_primitive ("INTEGER-SUBTRACT", 2)));
FAST_VECTOR_SET
(fixed_objects_vector,
GENERIC_TRAMPOLINE_MULTIPLY,
- (make_primitive ("INTEGER-MULTIPLY")));
+ (make_primitive ("INTEGER-MULTIPLY", 2)));
FAST_VECTOR_SET
(fixed_objects_vector,
GENERIC_TRAMPOLINE_DIVIDE,
{
case BOOT_FASLOAD: /* (SCODE-EVAL (BINARY-FASLOAD <file>) GLOBAL-ENV) */
FName = (char_pointer_to_string ((unsigned char *) File_Name));
- prim = (make_primitive ("BINARY-FASLOAD"));
+ prim = (make_primitive ("BINARY-FASLOAD", 1));
inner_arg = Free;
*Free++ = prim;
*Free++ = FName;
- prim = (make_primitive ("SCODE-EVAL"));
+ prim = (make_primitive ("SCODE-EVAL", 2));
expr = MAKE_POINTER_OBJECT (TC_PCOMB2, Free);
*Free++ = prim;
*Free++ = MAKE_POINTER_OBJECT (TC_PCOMB1, inner_arg);
case BOOT_LOAD_BAND: /* (LOAD-BAND <file>) */
FName = (char_pointer_to_string ((unsigned char *) File_Name));
- prim = make_primitive ("LOAD-BAND");
+ prim = (make_primitive ("LOAD-BAND", 1));
inner_arg = Free;
*Free++ = prim;
*Free++ = FName;
break;
\f
case BOOT_GET_WORK: /* ((GET-WORK)) */
- prim = make_primitive ("GET-WORK");
+ prim = (make_primitive ("GET-WORK", 0));
inner_arg = Free;
*Free++ = prim;
*Free++ = SHARP_F;
case BOOT_EXECUTE:
/* (SCODE-EVAL (INITIALIZE-C-COMPILED-BLOCK <file>) GLOBAL-ENV) */
FName = (char_pointer_to_string ((unsigned char *) File_Name));
- prim = (make_primitive ("INITIALIZE-C-COMPILED-BLOCK"));
+ prim = (make_primitive ("INITIALIZE-C-COMPILED-BLOCK", 1));
inner_arg = Free;
*Free++ = prim;
*Free++ = FName;
- prim = (make_primitive ("SCODE-EVAL"));
+ prim = (make_primitive ("SCODE-EVAL", 2));
expr = (MAKE_POINTER_OBJECT (TC_PCOMB2, Free));
*Free++ = prim;
*Free++ = (MAKE_POINTER_OBJECT (TC_PCOMB1, inner_arg));
/* -*-C-*-
-$Id: c.c,v 1.3 1993/06/15 19:02:11 gjr Exp $
+$Id: c.c,v 1.4 1993/10/26 03:05:43 jawilson Exp $
Copyright (c) 1992-1993 Massachusetts Institute of Technology
extern SCHEME_OBJECT EXFUN (long_to_integer, (long));
extern SCHEME_OBJECT EXFUN (digit_string_to_integer, (Boolean, long, char *));
extern SCHEME_OBJECT EXFUN (digit_string_to_bit_string, (long, long, char *));
-extern SCHEME_OBJECT EXFUN (search_for_primitive,
- (SCHEME_OBJECT, char *, Boolean, Boolean, int));
+extern SCHEME_OBJECT EXFUN (make_primitive, (char *, int));
SCHEME_OBJECT EXFUN ((* (constructor_kludge [10])), ()) =
{
((SCHEME_OBJECT EXFUN ((*), ())) long_to_integer),
((SCHEME_OBJECT EXFUN ((*), ())) digit_string_to_integer),
((SCHEME_OBJECT EXFUN ((*), ())) digit_string_to_bit_string),
- ((SCHEME_OBJECT EXFUN ((*), ())) search_for_primitive)
+ ((SCHEME_OBJECT EXFUN ((*), ())) make_primitive)
};
#endif /* BUG_GCC_LONG_CALLS */
/* -*-C-*-
-$Id: dosconio.c,v 1.11 1993/07/18 22:25:57 gjr Exp $
+$Id: dosconio.c,v 1.12 1993/10/26 03:04:07 jawilson Exp $
Copyright (c) 1992-1993 Massachusetts Institute of Technology
{
int ctr, in;
SCHEME_OBJECT iv, imv, prim, mask;
- extern SCHEME_OBJECT EXFUN (make_primitive, (char *));
+ extern SCHEME_OBJECT EXFUN (make_primitive, (char *, int));
static int interrupt_numbers[] = {
Global_GC_Level,
Global_1_Level
iv = (FAST_VECTOR_REF (fov, System_Interrupt_Vector));
imv = (FAST_VECTOR_REF (fov, FIXOBJ_INTERRUPT_MASK_VECTOR));
- prim = (make_primitive ("MICROCODE-POLL-INTERRUPT-HANDLER"));
+ prim = (make_primitive ("MICROCODE-POLL-INTERRUPT-HANDLER", 2));
for (ctr = 0; ctr < ((sizeof (interrupt_numbers)) / (sizeof (int))); ctr++)
{
return (0);
}
\f
-DEFINE_PRIMITIVE ("MICROCODE-POLL-INTERRUPT-HANDLER", Prim_dos_high_priority_timer, 2, 2,
- "DOS Polling interrupt handler---timer and keyboard.")
+DEFINE_PRIMITIVE ("MICROCODE-POLL-INTERRUPT-HANDLER", Prim_dos_high_priority_timer,
+ 2, 2, "DOS Polling interrupt handler---timer and keyboard.")
{
extern void EXFUN (dos_process_timer_interrupt, (void));
PRIMITIVE_HEADER (2);
/* -*-C-*-
-$Id: intercom.c,v 9.29 1993/06/24 07:08:51 gjr Exp $
+$Id: intercom.c,v 9.30 1993/10/26 03:04:08 jawilson Exp $
-Copyright (c) 1987, 1988, 1989, 1990 Massachusetts Institute of Technology
+Copyright (c) 1987-1993 Massachusetts Institute of Technology
This material was developed by the Scheme project at the Massachusetts
Institute of Technology, Department of Electrical Engineering and
DEFINE_PRIMITIVE ("MASTER-GC-LOOP", Prim_master_gc, 1, 1, 0)
{
static SCHEME_OBJECT gc_prim = SHARP_F;
- extern SCHEME_OBJECT make_primitive ();
+ extern SCHEME_OBJECT EXFUN (make_primitive, (char *, int));
PRIMITIVE_HEADER (1);
PRIMITIVE_CANONICALIZE_CONTEXT();
/* This primitive caches the Scheme object for the garbage collector
primitive so that it does not have to perform a potentially
expensive search each time. */
if (gc_prim == SHARP_F)
- gc_prim = (make_primitive ("GARBAGE-COLLECT"));
+ gc_prim = (make_primitive ("GARBAGE-COLLECT", 1));
{
SCHEME_OBJECT argument = (ARG_REF (1));
POP_PRIMITIVE_FRAME (1);
/* -*-C-*-
-$Id: liarc.h,v 1.2 1993/06/24 05:46:01 gjr Exp $
+$Id: liarc.h,v 1.3 1993/10/26 03:04:10 jawilson Exp $
Copyright (c) 1992-1993 Massachusetts Institute of Technology
#define C_SYM_INTERN(len,str) \
(MEMORY_TO_SYMBOL ((len), ((unsigned char *) str)))
-#define MAKE_PRIMITIVE_PROCEDURE(name,arity) \
- (SEARCH_FOR_PRIMITIVE (SHARP_F, name, true, true, arity))
+#define MAKE_PRIMITIVE_PROCEDURE(name,arity) (MAKE_PRIMITIVE (name, arity))
#define MAKE_LINKER_HEADER(kind,count) \
(OBJECT_NEW_TYPE (TC_FIXNUM, \
? (- ((source1) / (- (source2)))) \
: ((- (source1)) / (- (source2)))))
\f
+extern double EXFUN (acos, (double));
+extern double EXFUN (asin, (double));
+extern double EXFUN (atan, (double));
+extern double EXFUN (ceil, (double));
+extern double EXFUN (cos, (double));
+extern double EXFUN (exp, (double));
+extern double EXFUN (floor, (double));
+extern double EXFUN (log, (double));
+extern double EXFUN (sin, (double));
+extern double EXFUN (sqrt, (double));
+extern double EXFUN (tan, (double));
+extern double EXFUN (double_truncate, (double));
+
+#define DOUBLE_ACOS acos
+#define DOUBLE_ASIN asin
+#define DOUBLE_ATAN atan
+#define DOUBLE_CEILING ceil
+#define DOUBLE_COS cos
+#define DOUBLE_EXP exp
+#define DOUBLE_FLOOR floor
+#define DOUBLE_LOG log
+#define DOUBLE_ROUND(dx) (double_truncate ((dx < 0) ? (dx - 0.5) : (dx + 0.5)))
+#define DOUBLE_SIN sin
+#define DOUBLE_SQRT sqrt
+#define DOUBLE_TAN tan
+#define DOUBLE_TRUNCATE double_truncate
+
+extern double EXFUN (atan2, (double, double));
+#define DOUBLE_ATAN2 atan2
+\f
#define CLOSURE_HEADER(offset) do \
{ \
SCHEME_OBJECT * entry = ((SCHEME_OBJECT *) my_pc[1]); \
extern SCHEME_OBJECT EXFUN (long_to_integer, (long));
extern SCHEME_OBJECT EXFUN (digit_string_to_integer, (Boolean, long, char *));
extern SCHEME_OBJECT EXFUN (digit_string_to_bit_string, (long, long, char *));
-extern SCHEME_OBJECT EXFUN (search_for_primitive,
- (SCHEME_OBJECT, char *, Boolean, Boolean, int));
+extern SCHEME_OBJECT EXFUN (make_primitive, (char *, int));
#define MEMORY_TO_STRING memory_to_string
#define MEMORY_TO_SYMBOL memory_to_symbol
#define LONG_TO_INTEGER long_to_integer
#define DIGIT_STRING_TO_INTEGER digit_string_to_integer
#define DIGIT_STRING_TO_BIT_STRING digit_string_to_bit_string
-#define SEARCH_FOR_PRIMITIVE search_for_primitive
+#define MAKE_PRIMITIVE make_primitive
-#else /* GCC on Specturm has a strange bug so do thing differently .... */
+#else /* GCC on Spectrum has a strange bug so do thing differently .... */
extern SCHEME_OBJECT EXFUN ((* (constructor_kludge [10])), ());
#define DIGIT_STRING_TO_BIT_STRING \
((SCHEME_OBJECT EXFUN ((*), (long, long, char *))) (constructor_kludge[8]))
-#define SEARCH_FOR_PRIMITIVE \
- ((SCHEME_OBJECT EXFUN ((*), (SCHEME_OBJECT, char *, \
- Boolean, Boolean, int))) \
- (constructor_kludge[9]))
+#define MAKE_PRIMITIVE \
+ ((SCHEME_OBJECT EXFUN ((*), (char *, int))) (constructor_kludge[9]))
#endif /* BUG_GCC_LONG_CALLS */
/* -*-C-*-
-$Id: ntsig.c,v 1.14 1993/09/13 18:38:57 gjr Exp $
+$Id: ntsig.c,v 1.15 1993/10/26 03:04:10 jawilson Exp $
Copyright (c) 1992-1993 Massachusetts Institute of Technology
{
int ctr, in;
SCHEME_OBJECT iv, imv, prim;
- extern SCHEME_OBJECT EXFUN (make_primitive, (char *));
+ extern SCHEME_OBJECT EXFUN (make_primitive, (char *, int));
static int interrupt_numbers[2] =
{
Global_GC_Level,
iv = (FAST_VECTOR_REF (fov, System_Interrupt_Vector));
imv = (FAST_VECTOR_REF (fov, FIXOBJ_INTERRUPT_MASK_VECTOR));
- prim = (make_primitive ("MICROCODE-POLL-INTERRUPT-HANDLER"));
+ prim = (make_primitive ("MICROCODE-POLL-INTERRUPT-HANDLER", 2));
for (ctr = 0; ctr < ((sizeof (interrupt_numbers)) / (sizeof (int))); ctr++)
{
/* -*-C-*-
-$Id: primutl.c,v 9.66 1993/08/28 20:01:08 gjr Exp $
+$Id: primutl.c,v 9.67 1993/10/26 03:04:12 jawilson Exp $
Copyright (c) 1988-1993 Massachusetts Institute of Technology
EXFUN (install_primitive_table, (SCHEME_OBJECT *, long));
extern SCHEME_OBJECT
- EXFUN (make_primitive, (char *)),
+ EXFUN (make_primitive, (char *, int)),
EXFUN (find_primitive, (SCHEME_OBJECT, Boolean, Boolean, int)),
EXFUN (declare_primitive, (char *, primitive_procedure_t, int, int, char *)),
EXFUN (install_primitive, (char *, primitive_procedure_t, int, int, char *)),
extern int
EXFUN (strcmp_ci, (char *, char *));
-
\f
/* Common utilities. */
if (orig == ((node) NULL))
{
- SCHEME_OBJECT old = (make_primitive (primitive_aliases[counter].name));
+ SCHEME_OBJECT old = (make_primitive (primitive_aliases[counter].name,
+ UNKNOWN_PRIMITIVE_ARITY));
if (old == SHARP_F)
{
*/
SCHEME_OBJECT
-DEFUN (make_primitive, (name), char * name)
+DEFUN (make_primitive, (name, arity), char * name AND int arity)
{
SCHEME_OBJECT result;
result = (declare_primitive (name,
Prim_unimplemented,
- UNKNOWN_PRIMITIVE_ARITY,
- UNKNOWN_PRIMITIVE_ARITY,
+ arity,
+ arity,
((char *) NULL)));
return ((result == SHARP_F)
? SHARP_F
/* -*-C-*-
-$Id: liarc.h,v 1.2 1993/06/24 05:46:01 gjr Exp $
+$Id: liarc.h,v 1.3 1993/10/26 03:04:10 jawilson Exp $
Copyright (c) 1992-1993 Massachusetts Institute of Technology
#define C_SYM_INTERN(len,str) \
(MEMORY_TO_SYMBOL ((len), ((unsigned char *) str)))
-#define MAKE_PRIMITIVE_PROCEDURE(name,arity) \
- (SEARCH_FOR_PRIMITIVE (SHARP_F, name, true, true, arity))
+#define MAKE_PRIMITIVE_PROCEDURE(name,arity) (MAKE_PRIMITIVE (name, arity))
#define MAKE_LINKER_HEADER(kind,count) \
(OBJECT_NEW_TYPE (TC_FIXNUM, \
? (- ((source1) / (- (source2)))) \
: ((- (source1)) / (- (source2)))))
\f
+extern double EXFUN (acos, (double));
+extern double EXFUN (asin, (double));
+extern double EXFUN (atan, (double));
+extern double EXFUN (ceil, (double));
+extern double EXFUN (cos, (double));
+extern double EXFUN (exp, (double));
+extern double EXFUN (floor, (double));
+extern double EXFUN (log, (double));
+extern double EXFUN (sin, (double));
+extern double EXFUN (sqrt, (double));
+extern double EXFUN (tan, (double));
+extern double EXFUN (double_truncate, (double));
+
+#define DOUBLE_ACOS acos
+#define DOUBLE_ASIN asin
+#define DOUBLE_ATAN atan
+#define DOUBLE_CEILING ceil
+#define DOUBLE_COS cos
+#define DOUBLE_EXP exp
+#define DOUBLE_FLOOR floor
+#define DOUBLE_LOG log
+#define DOUBLE_ROUND(dx) (double_truncate ((dx < 0) ? (dx - 0.5) : (dx + 0.5)))
+#define DOUBLE_SIN sin
+#define DOUBLE_SQRT sqrt
+#define DOUBLE_TAN tan
+#define DOUBLE_TRUNCATE double_truncate
+
+extern double EXFUN (atan2, (double, double));
+#define DOUBLE_ATAN2 atan2
+\f
#define CLOSURE_HEADER(offset) do \
{ \
SCHEME_OBJECT * entry = ((SCHEME_OBJECT *) my_pc[1]); \
extern SCHEME_OBJECT EXFUN (long_to_integer, (long));
extern SCHEME_OBJECT EXFUN (digit_string_to_integer, (Boolean, long, char *));
extern SCHEME_OBJECT EXFUN (digit_string_to_bit_string, (long, long, char *));
-extern SCHEME_OBJECT EXFUN (search_for_primitive,
- (SCHEME_OBJECT, char *, Boolean, Boolean, int));
+extern SCHEME_OBJECT EXFUN (make_primitive, (char *, int));
#define MEMORY_TO_STRING memory_to_string
#define MEMORY_TO_SYMBOL memory_to_symbol
#define LONG_TO_INTEGER long_to_integer
#define DIGIT_STRING_TO_INTEGER digit_string_to_integer
#define DIGIT_STRING_TO_BIT_STRING digit_string_to_bit_string
-#define SEARCH_FOR_PRIMITIVE search_for_primitive
+#define MAKE_PRIMITIVE make_primitive
-#else /* GCC on Specturm has a strange bug so do thing differently .... */
+#else /* GCC on Spectrum has a strange bug so do thing differently .... */
extern SCHEME_OBJECT EXFUN ((* (constructor_kludge [10])), ());
#define DIGIT_STRING_TO_BIT_STRING \
((SCHEME_OBJECT EXFUN ((*), (long, long, char *))) (constructor_kludge[8]))
-#define SEARCH_FOR_PRIMITIVE \
- ((SCHEME_OBJECT EXFUN ((*), (SCHEME_OBJECT, char *, \
- Boolean, Boolean, int))) \
- (constructor_kludge[9]))
+#define MAKE_PRIMITIVE \
+ ((SCHEME_OBJECT EXFUN ((*), (char *, int))) (constructor_kludge[9]))
#endif /* BUG_GCC_LONG_CALLS */