utilities vector correctly.
/* -*-C-*-
-$Id: bintopsb.c,v 9.62 1993/11/09 16:47:01 gjr Exp $
+$Id: bintopsb.c,v 9.63 1993/11/16 04:50:02 gjr Exp $
Copyright (c) 1987-1993 Massachusetts Institute of Technology
Heap_Objects_Start = (Heap_Start + Heap_Count);
Mem_Base[(Heap_Start - NROOTS) + 0]
= dumped_utilities;
+ if (dumped_utilities != SHARP_F)
+ {
+ /* This knows the format of the utilities vector. */
+ SCHEME_OBJECT * uv = (relocate (dumped_utilities));
+ unsigned long len = (OBJECT_DATUM (uv[0]));
+
+ uv[len - 1] = ((SCHEME_OBJECT)
+ (((unsigned long) uv[len - 1])
+ / (sizeof (SCHEME_OBJECT))));
+ uv[len - 0] = ((SCHEME_OBJECT)
+ (((unsigned long) uv[len - 0])
+ / (sizeof (SCHEME_OBJECT))));
+ }
Mem_Base[(Heap_Start - NROOTS) + 1]
= (OBJECT_NEW_TYPE (TC_CELL, Dumped_Object));
Scan = (Heap_Start - NROOTS);
/* -*-C-*-
-$Id: psbtobin.c,v 9.54 1993/11/11 22:19:06 cph Exp $
+$Id: psbtobin.c,v 9.55 1993/11/16 04:49:56 gjr Exp $
Copyright (c) 1987-1993 Massachusetts Institute of Technology
.bin (and .psb) files can contain multiple objects.
*/
+ compiler_utilities = SHARP_F;
READ_HEADER_NO_ERROR ("Portable Version", "%ld", Portable_Version, ok);
if (! ok)
return (-1);
DEBUGGING (fprintf (stderr, "Primitive_Table_Size = %ld\n",
(primitive_table_end - primitive_table)));
+ if (Dumped_Compiler_Utilities != 0)
+ {
+ /* This knows the format of the utilities vector. */
+ SCHEME_OBJECT * uv = (Relocate (Dumped_Compiler_Utilities));
+ unsigned long len = uv[0];
+
+ uv[len - 1] = ((SCHEME_OBJECT)
+ (((unsigned long) uv[len - 1])
+ * (sizeof (SCHEME_OBJECT))));
+ uv[len - 0] = ((SCHEME_OBJECT)
+ (((unsigned long) uv[len - 0])
+ * (sizeof (SCHEME_OBJECT))));
+ compiler_utilities = (MAKE_POINTER_OBJECT (TC_COMPILED_CODE_BLOCK, uv));
+ }
+
/* Is there a Pure/Constant block? */
if ((Const_Objects == 0) && (Const_Count == 0)
/* -*-C-*-
-$Id: bintopsb.c,v 9.62 1993/11/09 16:47:01 gjr Exp $
+$Id: bintopsb.c,v 9.63 1993/11/16 04:50:02 gjr Exp $
Copyright (c) 1987-1993 Massachusetts Institute of Technology
Heap_Objects_Start = (Heap_Start + Heap_Count);
Mem_Base[(Heap_Start - NROOTS) + 0]
= dumped_utilities;
+ if (dumped_utilities != SHARP_F)
+ {
+ /* This knows the format of the utilities vector. */
+ SCHEME_OBJECT * uv = (relocate (dumped_utilities));
+ unsigned long len = (OBJECT_DATUM (uv[0]));
+
+ uv[len - 1] = ((SCHEME_OBJECT)
+ (((unsigned long) uv[len - 1])
+ / (sizeof (SCHEME_OBJECT))));
+ uv[len - 0] = ((SCHEME_OBJECT)
+ (((unsigned long) uv[len - 0])
+ / (sizeof (SCHEME_OBJECT))));
+ }
Mem_Base[(Heap_Start - NROOTS) + 1]
= (OBJECT_NEW_TYPE (TC_CELL, Dumped_Object));
Scan = (Heap_Start - NROOTS);
/* -*-C-*-
-$Id: psbtobin.c,v 9.54 1993/11/11 22:19:06 cph Exp $
+$Id: psbtobin.c,v 9.55 1993/11/16 04:49:56 gjr Exp $
Copyright (c) 1987-1993 Massachusetts Institute of Technology
.bin (and .psb) files can contain multiple objects.
*/
+ compiler_utilities = SHARP_F;
READ_HEADER_NO_ERROR ("Portable Version", "%ld", Portable_Version, ok);
if (! ok)
return (-1);
DEBUGGING (fprintf (stderr, "Primitive_Table_Size = %ld\n",
(primitive_table_end - primitive_table)));
+ if (Dumped_Compiler_Utilities != 0)
+ {
+ /* This knows the format of the utilities vector. */
+ SCHEME_OBJECT * uv = (Relocate (Dumped_Compiler_Utilities));
+ unsigned long len = uv[0];
+
+ uv[len - 1] = ((SCHEME_OBJECT)
+ (((unsigned long) uv[len - 1])
+ * (sizeof (SCHEME_OBJECT))));
+ uv[len - 0] = ((SCHEME_OBJECT)
+ (((unsigned long) uv[len - 0])
+ * (sizeof (SCHEME_OBJECT))));
+ compiler_utilities = (MAKE_POINTER_OBJECT (TC_COMPILED_CODE_BLOCK, uv));
+ }
+
/* Is there a Pure/Constant block? */
if ((Const_Objects == 0) && (Const_Count == 0)