Eliminate all traces of the archaic microcode state space support.
authorTaylor R Campbell <campbell@mumble.net>
Mon, 9 Aug 2010 16:47:03 +0000 (16:47 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Mon, 9 Aug 2010 16:47:03 +0000 (16:47 +0000)
16 files changed:
src/microcode/boot.c
src/microcode/extern.h
src/microcode/fasload.c
src/microcode/fixobj.h
src/microcode/hooks.c
src/microcode/interp.c
src/microcode/memmag.c
src/microcode/ntutl/makefile
src/microcode/os2utl/makefile.cmn
src/microcode/returns.h
src/microcode/storage.c
src/microcode/utabmd.c
src/microcode/utils.c
src/microcode/winder.h [deleted file]
src/runtime/conpar.scm
src/runtime/framex.scm

index a46aa455649607c91c7875e8c2db8aa7ac26812c..52599650457f228209e2e5936e12c8dc112a3399 100644 (file)
@@ -145,7 +145,6 @@ start_scheme (void)
       outf_console ("\n");
       outf_flush_console ();
     }
-  current_state_point = SHARP_F;
   initialize_fixed_objects_vector ();
 
   if (option_fasl_file != 0)
index 3fef79c09824063ee093d0a3ee1961e1a47d6d8f..9876b6ddc3ea4d9651b44aa47ea27374468160e7 100644 (file)
@@ -149,8 +149,6 @@ extern SCHEME_OBJECT * stack_end;
 extern SCHEME_OBJECT * constant_alloc_next;
 extern SCHEME_OBJECT * constant_start;
 extern SCHEME_OBJECT * constant_end;
-
-extern SCHEME_OBJECT current_state_point;
 \f
 /* Address of the most recent return code in the stack.  This is
    only meaningful while in compiled code.  */
@@ -344,8 +342,6 @@ extern SCHEME_OBJECT * control_point_start (SCHEME_OBJECT);
 extern SCHEME_OBJECT * control_point_end (SCHEME_OBJECT);
 extern void unpack_control_point (SCHEME_OBJECT);
 
-extern SCHEME_OBJECT Find_State_Space (SCHEME_OBJECT);
-
 /* Debugging utilities */
 
 extern void Back_Trace (outf_channel);
index 3915f1f1b7fa7e10ebdf26375af3ebc55a1e7669..faa21b6f65e91e162fb63ae9e56c23b3fc36162b 100644 (file)
@@ -202,7 +202,6 @@ can, however, be any file which can be loaded with BINARY-FASLOAD.")
     compiler_initialize (true);
 #endif
   fixed_objects = SHARP_F;
-  current_state_point = SHARP_F;
 
   /* Setup initial program */
   SET_RC (RC_END_OF_COMPUTATION);
index ea16df24c02503d732894b6ceaebbde46ea7cb11..7889f72486f7681755e1cc7917f5ce38ea47bb49 100644 (file)
@@ -46,8 +46,8 @@ USA.
 #define STEPPER_STATE          0x0E
 #define FIXED_OBJECTS_SLOTS    0x0F    /* Names of these slots. */
 #define FIXOBJ_FILES_TO_DELETE 0x10    /* Temporary files to delete. */
-#define State_Space_Tag                0x11    /* Tag for state spaces. */
-#define State_Point_Tag                0x12    /* Tag for state points. */
+/* #define UNUSED              0x11 */
+/* #define UNUSED              0x12 */
 #define DUMMY_HISTORY          0x13    /* Empty history structure. */
 #define Bignum_One              0x14    /* Cache for bignum one. */
 /* #define UNUSED              0x15 */
@@ -63,7 +63,7 @@ USA.
 /* #define UNUSED              0x1F */
 #define CC_ERROR_PROCEDURE     0x20    /* Error handler for compiled code. */
 /* #define UNUSED              0x21 */
-#define State_Space_Root       0x22    /* Root of state space. */
+/* #define UNUSED              0x22 */
 #define Primitive_Profiling_Table 0x23 /* Table of profile counts for
                                           primitives. */
 
@@ -143,8 +143,8 @@ USA.
   /* 0x0E */   "stepper-state",                                        \
   /* 0x0F */   "microcode-fixed-objects-slots",                        \
   /* 0x10 */   "files-to-delete",                                      \
-  /* 0x11 */   "state-space-tag",                                      \
-  /* 0x12 */   "state-point-tag",                                      \
+  /* 0x11 */   0,                                                      \
+  /* 0x12 */   0,                                                      \
   /* 0x13 */   "dummy-history",                                        \
   /* 0x14 */   "bignum-one",                                           \
   /* 0x15 */   0,                                                      \
@@ -160,7 +160,7 @@ USA.
   /* 0x1F */   0,                                                      \
   /* 0x20 */   "compiler-error-procedure",                             \
   /* 0x21 */   0,                                                      \
-  /* 0x22 */   "state-space-root",                                     \
+  /* 0x22 */   0,                                                      \
   /* 0x23 */   "primitive-profiling-table",                            \
   /* 0x24 */   "generic-trampoline-zero?",                             \
   /* 0x25 */   "generic-trampoline-positive?",                         \
index 982182e2ee16e2506e71b68ab9a523d5f20430c3..b0d0f3664f5d447f4192c4949e8e12c6b7d820d1 100644 (file)
@@ -28,7 +28,6 @@ USA.
 
 #include "scheme.h"
 #include "prims.h"
-#include "winder.h"
 #include "history.h"
 
 static SCHEME_OBJECT allocate_control_point (unsigned long, bool);
@@ -363,152 +362,6 @@ memoized yet.")
   }
 }
 \f
-/* State Space Implementation */
-
-DEFINE_PRIMITIVE ("EXECUTE-AT-NEW-STATE-POINT",
-                 Prim_execute_at_new_point, 4, 4,
-                 "(OLD-STATE-POINT BEFORE-THUNK DURING-THUNK AFTER-THUNK)\n\
-Invoke DURING-THUNK in a new state point defined by the transition\n\
-<BEFORE-THUNK, AFTER-THUNK> from OLD-STATE-POINT.\n\
-If OLD-STATE-POINT is #F, the current state point in the global state\n\
-space is used as the starting point.")
-{
-  PRIMITIVE_HEADER (4);
-
-  canonicalize_primitive_context ();
-  {
-    SCHEME_OBJECT old_point;
-    if ((ARG_REF (1)) == SHARP_F)
-      old_point = current_state_point;
-    else
-      {
-       CHECK_ARG (1, STATE_SPACE_P);
-       old_point = (MEMORY_REF ((ARG_REF (1)), STATE_SPACE_NEAREST_POINT));
-      }
-    {
-      SCHEME_OBJECT new_point =
-       (allocate_marked_vector (TC_VECTOR, STATE_POINT_LENGTH, true));
-      SCHEME_OBJECT during_thunk = (ARG_REF (3));
-      MEMORY_SET (new_point, STATE_POINT_TAG,
-                 (VECTOR_REF (fixed_objects, State_Point_Tag)));
-      MEMORY_SET (new_point, STATE_POINT_BEFORE_THUNK, (ARG_REF (2)));
-      MEMORY_SET (new_point, STATE_POINT_AFTER_THUNK, (ARG_REF (4)));
-      MEMORY_SET (new_point, STATE_POINT_NEARER_POINT, old_point);
-      MEMORY_SET
-       (new_point,
-        STATE_POINT_DISTANCE_TO_ROOT,
-        (1 + (MEMORY_REF (old_point, STATE_POINT_DISTANCE_TO_ROOT))));
-
-      POP_PRIMITIVE_FRAME (4);
-    Will_Push((2 * CONTINUATION_SIZE) + (STACK_ENV_EXTRA_SLOTS + 1));
-      /* Push a continuation to go back to the current state after the
-        body is evaluated */
-      SET_EXP (old_point);
-      SET_RC (RC_RESTORE_TO_STATE_POINT);
-      SAVE_CONT ();
-      /* Push a stack frame which will call the body after we have moved
-        into the new state point */
-      STACK_PUSH (during_thunk);
-      PUSH_APPLY_FRAME_HEADER (0);
-      /* Push the continuation to go with the stack frame */
-      SET_EXP (SHARP_F);
-      SET_RC (RC_INTERNAL_APPLY);
-      SAVE_CONT ();
-    Pushed ();
-      Translate_To_Point (new_point);
-      /*NOTREACHED*/
-      PRIMITIVE_RETURN (UNSPECIFIC);
-    }
-  }
-}
-
-DEFINE_PRIMITIVE ("TRANSLATE-TO-STATE-POINT", Prim_translate_to_point, 1, 1,
-                 "(STATE-POINT)\nRestore the dynamic state to STATE-POINT.")
-{
-  PRIMITIVE_HEADER (1);
-  canonicalize_primitive_context ();
-  CHECK_ARG (1, STATE_POINT_P);
-  {
-    SCHEME_OBJECT state_point = (ARG_REF (1));
-    POP_PRIMITIVE_FRAME (1);
-    Translate_To_Point (state_point);
-    /*NOTREACHED*/
-    PRIMITIVE_RETURN (UNSPECIFIC);
-  }
-}
-\f
-DEFINE_PRIMITIVE ("MAKE-STATE-SPACE", Prim_make_state_space, 1, 1,
-                 "(MUTABLE?)\n\
-Return a newly-allocated state-space.\n\
-Argument MUTABLE?, if not #F, means return a mutable state-space.\n\
-Otherwise, -the- immutable state-space is saved internally.")
-{
-  PRIMITIVE_HEADER (1);
-  {
-    SCHEME_OBJECT new_point =
-      (allocate_marked_vector (TC_VECTOR, STATE_POINT_LENGTH, true));
-    MEMORY_SET (new_point, STATE_POINT_TAG,
-                    (VECTOR_REF (fixed_objects, State_Point_Tag)));
-    MEMORY_SET (new_point, STATE_POINT_BEFORE_THUNK, SHARP_F);
-    MEMORY_SET (new_point, STATE_POINT_AFTER_THUNK, SHARP_F);
-    MEMORY_SET
-      (new_point, STATE_POINT_DISTANCE_TO_ROOT, (LONG_TO_UNSIGNED_FIXNUM (0)));
-    if ((ARG_REF (1)) == SHARP_F)
-      {
-       MEMORY_SET (new_point, STATE_POINT_NEARER_POINT, SHARP_F);
-       current_state_point = new_point;
-       PRIMITIVE_RETURN (SHARP_F);
-      }
-    else
-      {
-       SCHEME_OBJECT new_space =
-         (allocate_marked_vector (TC_VECTOR, STATE_SPACE_LENGTH, true));
-       MEMORY_SET (new_space, STATE_SPACE_TAG,
-                        (VECTOR_REF (fixed_objects, State_Space_Tag)));
-       MEMORY_SET (new_space, STATE_SPACE_NEAREST_POINT, new_point);
-       MEMORY_SET (new_point, STATE_POINT_NEARER_POINT, new_space);
-       PRIMITIVE_RETURN (new_space);
-      }
-  }
-}
-
-DEFINE_PRIMITIVE ("CURRENT-DYNAMIC-STATE", Prim_current_dynamic_state, 1, 1,
-                 "(STATE-SPACE)\n\
-Return the current state point in STATE-SPACE. If STATE-SPACE is #F,\n\
-return the current state point in the global state space.")
-{
-  PRIMITIVE_HEADER (1);
-
-  if ((ARG_REF (1)) == SHARP_F)
-    PRIMITIVE_RETURN (current_state_point);
-  CHECK_ARG (1, STATE_SPACE_P);
-  PRIMITIVE_RETURN (MEMORY_REF ((ARG_REF (1)), STATE_SPACE_NEAREST_POINT));
-}
-
-DEFINE_PRIMITIVE ("SET-CURRENT-DYNAMIC-STATE!", Prim_set_dynamic_state, 1, 1,
-                 "(STATE-POINT)\n\
-Set the current dynamic state point to STATE-POINT.")
-{
-  PRIMITIVE_HEADER (1);
-  CHECK_ARG (1, STATE_POINT_P);
-  {
-    SCHEME_OBJECT state_point = (ARG_REF (1));
-    SCHEME_OBJECT state_space = (Find_State_Space (state_point));
-    SCHEME_OBJECT result;
-    if (state_space == SHARP_F)
-      {
-       result = current_state_point;
-       current_state_point = state_point;
-      }
-    else
-      {
-       result = (MEMORY_REF (state_space, STATE_SPACE_NEAREST_POINT));
-       MEMORY_SET (state_space, STATE_SPACE_NEAREST_POINT, state_point);
-      }
-    PRIMITIVE_RETURN (result);
-  }
-}
-\f
 /* Interrupts */
 
 DEFINE_PRIMITIVE ("GET-INTERRUPT-ENABLES", Prim_get_interrupt_enables, 0, 0,
index 14058a871774b879736e07bd67c1127844a536df..9cffb914f70a4525a1a8d92aefc5d0a9b57996d3 100644 (file)
@@ -28,7 +28,6 @@ USA.
 #include "scheme.h"
 #include "trap.h"
 #include "lookup.h"
-#include "winder.h"
 #include "history.h"
 
 extern void * obstack_chunk_alloc (size_t);
@@ -1142,66 +1141,6 @@ Interpret (int pop_return_p)
          }
       }
 
-    case RC_MOVE_TO_ADJACENT_POINT:
-      /* GET_EXP contains the space in which we are moving */
-      {
-       long From_Count;
-       SCHEME_OBJECT Thunk;
-       SCHEME_OBJECT New_Location;
-
-       From_Count
-         = (UNSIGNED_FIXNUM_TO_LONG (STACK_REF (TRANSLATE_FROM_DISTANCE)));
-       if (From_Count != 0)
-         {
-           SCHEME_OBJECT Current = STACK_REF (TRANSLATE_FROM_POINT);
-           STACK_REF (TRANSLATE_FROM_DISTANCE)
-             = (LONG_TO_UNSIGNED_FIXNUM (From_Count - 1));
-           Thunk = (MEMORY_REF (Current, STATE_POINT_AFTER_THUNK));
-           New_Location
-             = (MEMORY_REF (Current, STATE_POINT_NEARER_POINT));
-           (STACK_REF (TRANSLATE_FROM_POINT)) = New_Location;
-           if ((From_Count == 1)
-               && ((STACK_REF (TRANSLATE_TO_DISTANCE))
-                   == (LONG_TO_UNSIGNED_FIXNUM (0))))
-             stack_pointer = (STACK_LOC (4));
-           else
-             SAVE_CONT ();
-         }
-       else
-         {
-           long To_Count;
-           SCHEME_OBJECT To_Location;
-           long i;
-
-           To_Count
-             = ((UNSIGNED_FIXNUM_TO_LONG (STACK_REF (TRANSLATE_TO_DISTANCE)))
-                - 1);
-           To_Location = (STACK_REF (TRANSLATE_TO_POINT));
-           for (i = 0; (i < To_Count); i += 1)
-             To_Location
-               = (MEMORY_REF (To_Location, STATE_POINT_NEARER_POINT));
-           Thunk = (MEMORY_REF (To_Location, STATE_POINT_BEFORE_THUNK));
-           New_Location = To_Location;
-           (STACK_REF (TRANSLATE_TO_DISTANCE))
-             = (LONG_TO_UNSIGNED_FIXNUM (To_Count));
-           if (To_Count == 0)
-             stack_pointer = (STACK_LOC (4));
-           else
-             SAVE_CONT ();
-         }
-       if (GET_EXP != SHARP_F)
-         {
-           MEMORY_SET (GET_EXP, STATE_SPACE_NEAREST_POINT, New_Location);
-         }
-       else
-         current_state_point = New_Location;
-       Will_Push (2);
-       STACK_PUSH (Thunk);
-       PUSH_APPLY_FRAME_HEADER (0);
-       Pushed ();
-       goto internal_apply;
-      }
-
     case RC_INVOKE_STACK_THREAD:
       /* Used for WITH_THREADED_STACK primitive.  */
       Will_Push (3);
@@ -1355,19 +1294,6 @@ Interpret (int pop_return_p)
       stack_pointer = (STACK_LOCATIVE_OFFSET (stack_pointer, 1));
       break;
 
-    case RC_RESTORE_TO_STATE_POINT:
-      {
-       SCHEME_OBJECT Where_To_Go = GET_EXP;
-       Will_Push (CONTINUATION_SIZE);
-       /* Restore the contents of GET_VAL after moving to point */
-       SET_EXP (GET_VAL);
-       SET_RC (RC_RESTORE_VALUE);
-       SAVE_CONT ();
-       Pushed ();
-       Translate_To_Point (Where_To_Go);
-       break;                  /* We never get here.... */
-      }
-
     case RC_SEQ_2_DO_2:
       END_SUBPROBLEM ();
       POP_ENV ();
index ea8b921c46d392ebc35a88c77117f30a7c484709..657f759ecba74b821d7b63ddd3ea161aad134506 100644 (file)
@@ -294,7 +294,6 @@ std_gc_pt1 (void)
   add_to_tospace (fixed_objects);
   add_to_tospace
     (MAKE_POINTER_OBJECT (UNMARKED_HISTORY_TYPE, history_register));
-  add_to_tospace (current_state_point);
 
   current_gc_table = (std_gc_table ());
   gc_scan_oldspace (stack_pointer, stack_end);
@@ -316,7 +315,6 @@ std_gc_pt2 (void)
 
   fixed_objects = (*saved_to++);
   history_register = (OBJECT_ADDRESS (*saved_to++));
-  current_state_point = (*saved_to++);
   saved_to = 0;
 
   CC_TRANSPORT_END ();
index 7b7d45a122d997e2d603e9535a865b727f04de06..8f30b1be6cec2c1bbd182c9354accebed9933523 100644 (file)
@@ -421,7 +421,6 @@ TRAP_H = trap.h
 TYPES_H = types.h
 USRDEF_H = usrdef.h $(SCHEME_H) $(PRIMS_H)
 UXSOCK_H = uxsock.h $(OSIO_H)
-WINDER_H = winder.h
 ZONES_H = zones.h
 
 PSBMAP_H = psbmap.h $(CONFIG_H) $(TYPES_H) $(OBJECT_H) $(BIGNUM_H) \
@@ -463,10 +462,10 @@ fasload.obj: fasload.c $(SCHEME_H) $(PRIMS_H) $(OSSCHEME_H) $(OSFILE_H) \
 fixnum.obj: fixnum.c $(SCHEME_H) $(PRIMS_H) $(MUL_C)
 flonum.obj: flonum.c $(SCHEME_H) $(PRIMS_H) $(ZONES_H)
 generic.obj: generic.c $(SCHEME_H) $(PRIMS_H)
-hooks.obj: hooks.c $(SCHEME_H) $(PRIMS_H) $(WINDER_H) $(HISTORY_H)
+hooks.obj: hooks.c $(SCHEME_H) $(PRIMS_H) $(HISTORY_H)
 hunk.obj: hunk.c $(SCHEME_H) $(PRIMS_H)
 intern.obj: intern.c $(SCHEME_H) $(PRIMS_H) $(TRAP_H)
-interp.obj: interp.c $(SCHEME_H) $(LOCKS_H) $(TRAP_H) $(LOOKUP_H) $(WINDER_H) \
+interp.obj: interp.c $(SCHEME_H) $(LOCKS_H) $(TRAP_H) $(LOOKUP_H) \
        $(HISTORY_H) $(CMPINT_H) $(ZONES_H) $(PRMCON_H)
 intprm.obj: intprm.c $(SCHEME_H) $(PRIMS_H) $(ZONES_H)
 list.obj: list.c $(SCHEME_H) $(PRIMS_H)
@@ -496,7 +495,7 @@ term.obj: term.c $(SCHEME_H) $(OSTOP_H) $(OSIO_H) $(OSFS_H) $(OSFILE_H) \
        $(EDWIN_H)
 tparam.obj: tparam.c ansidecl.h
 transact.obj: transact.c ansidecl.h $(OUTF_H) $(DSTACK_H)
-utils.obj: utils.c $(SCHEME_H) $(PRIMS_H) $(WINDER_H) $(HISTORY_H) \
+utils.obj: utils.c $(SCHEME_H) $(PRIMS_H) $(HISTORY_H) \
        $(CMPINT_H) $(SYSCALL_H)
 vector.obj: vector.c $(SCHEME_H) $(PRIMS_H)
 wind.obj: wind.c $(OBSTACK_H) $(DSTACK_H) $(OUTF_H)
index a84b509533a47d97e3051d731e36bbcdfac0fd50..904183d8bc7a9aa755a300a182434a3a765efd59 100644 (file)
@@ -357,7 +357,6 @@ TRAP_H = trap.h
 TYPES_H = types.h
 USRDEF_H = usrdef.h $(SCHEME_H) $(PRIMS_H)
 UXSOCK_H = uxsock.h $(OSIO_H)
-WINDER_H = winder.h
 ZONES_H = zones.h
 
 PSBMAP_H = psbmap.h $(CONFIG_H) $(TYPES_H) $(OBJECT_H) $(BIGNUM_H) \
@@ -401,11 +400,11 @@ fasload.$(OBJ): fasload.c $(SCHEME_H) $(PRIMS_H) $(OSSCHEME_H) $(OSFILE_H) \
 fixnum.$(OBJ): fixnum.c $(SCHEME_H) $(PRIMS_H) $(MUL_C)
 flonum.$(OBJ): flonum.c $(SCHEME_H) $(PRIMS_H) $(ZONES_H)
 generic.$(OBJ): generic.c $(SCHEME_H) $(PRIMS_H)
-hooks.$(OBJ): hooks.c $(SCHEME_H) $(PRIMS_H) $(WINDER_H) $(HISTORY_H)
+hooks.$(OBJ): hooks.c $(SCHEME_H) $(PRIMS_H) $(HISTORY_H)
 hunk.$(OBJ): hunk.c $(SCHEME_H) $(PRIMS_H)
 intern.$(OBJ): intern.c $(SCHEME_H) $(PRIMS_H) $(TRAP_H)
 interp.$(OBJ): interp.c $(SCHEME_H) $(LOCKS_H) $(TRAP_H) $(LOOKUP_H) \
-       $(WINDER_H) $(HISTORY_H) $(CMPINT_H) $(ZONES_H) $(PRMCON_H)
+       $(HISTORY_H) $(CMPINT_H) $(ZONES_H) $(PRMCON_H)
 intprm.$(OBJ): intprm.c $(SCHEME_H) $(PRIMS_H) $(ZONES_H)
 list.$(OBJ): list.c $(SCHEME_H) $(PRIMS_H)
 lookprm.$(OBJ): lookprm.c $(SCHEME_H) $(PRIMS_H) $(LOCKS_H) $(TRAP_H) \
@@ -435,7 +434,7 @@ term.$(OBJ): term.c $(SCHEME_H) $(OSTOP_H) $(OSIO_H) $(OSFS_H) $(OSFILE_H) \
        $(EDWIN_H)
 tparam.$(OBJ): tparam.c ansidecl.h
 transact.$(OBJ): transact.c $(CONFIG_H) $(OUTF_H) $(DSTACK_H)
-utils.$(OBJ): utils.c $(SCHEME_H) $(PRIMS_H) $(WINDER_H) $(HISTORY_H) \
+utils.$(OBJ): utils.c $(SCHEME_H) $(PRIMS_H) $(HISTORY_H) \
        $(CMPINT_H) $(SYSCALL_H)
 vector.$(OBJ): vector.c $(SCHEME_H) $(PRIMS_H)
 wind.$(OBJ): wind.c $(OBSTACK_H) $(DSTACK_H) $(OUTF_H)
index 8c59d5a088589d948009d8563085d8166cf19b7f..e1641133f78ecd9df10fb962ec35df163473826a 100644 (file)
@@ -66,8 +66,8 @@ USA.
 #define RC_POP_FROM_COMPILED_CODE      0x29
 #define RC_RETURN_TRAP_POINT           0x2A
 /* unused                              0x2B */
-#define RC_RESTORE_TO_STATE_POINT      0x2C
-#define RC_MOVE_TO_ADJACENT_POINT      0x2D
+/* unused                              0x2C */
+/* unused                              0x2D */
 #define RC_RESTORE_VALUE               0x2E
 #define RC_RESTORE_DONT_COPY_HISTORY    0x2F
 /* unused                              0x30 through 0x3F */
@@ -146,8 +146,8 @@ USA.
 /* 0x29 */             "pop-from-compiled-code",                       \
 /* 0x2a */             "return-trap-point",                            \
 /* 0x2b */             0,                                              \
-/* 0x2c */             "restore-to-state-point",                       \
-/* 0x2d */             "move-to-adjacent-point",                       \
+/* 0x2c */             0,                                              \
+/* 0x2d */             0,                                              \
 /* 0x2e */             "restore-value",                                \
 /* 0x2f */             "restore-dont-copy-history",                    \
 /* 0x30 */             0,                                              \
index 39909b96c1a62fac94d3a0cc42f44e07e2033e90..f72b5e1e4e997fefb6ee10e81c7911b823872eeb 100644 (file)
@@ -58,9 +58,6 @@ SCHEME_OBJECT * constant_alloc_next;
 SCHEME_OBJECT * constant_start;
 SCHEME_OBJECT * constant_end;
 
-/* dynamic state point */
-SCHEME_OBJECT current_state_point;
-
 /* Address of the most recent return code in the stack.
    This is only meaningful while in compiled code.  */
 SCHEME_OBJECT * last_return_code;
index a2c712a073223c41b112c3fded42f1fec39094ad..4d29a3ec4cc3325e9b7c1990727b4d2a5ee46cda 100644 (file)
@@ -155,7 +155,6 @@ initialize_fixed_objects_vector (void)
   STORE_NAME_VECTOR (IDENTIFICATION_VECTOR, identity_names, N_IDENTITY_NAMES);
 
   STORE_FIXOBJ (DUMMY_HISTORY, (initialize_history ()));
-  STORE_FIXOBJ (State_Space_Tag, SHARP_T);
   STORE_FIXOBJ (Bignum_One, (long_to_bignum (1)));
   STORE_FIXOBJ (FIXOBJ_EDWIN_AUTO_SAVE, EMPTY_LIST);
   STORE_FIXOBJ (FIXOBJ_FILES_TO_DELETE, EMPTY_LIST);
index 7c8a64d8abf2befaf67f690fb5b9606555cb6f1e..5eac8950b6de11134f265bda13cfc751c6648f4f 100644 (file)
@@ -27,7 +27,6 @@ USA.
 
 #include "scheme.h"
 #include "prims.h"
-#include "winder.h"
 #include "history.h"
 #include "syscall.h"
 
@@ -921,128 +920,6 @@ record_primitive_entry (SCHEME_OBJECT primitive)
 
 #endif /* ENABLE_PRIMITIVE_PROFILING */
 \f
-/* Dynamic Winder support code */
-
-SCHEME_OBJECT
-Find_State_Space (SCHEME_OBJECT State_Point)
-{
-  long How_Far =
-    (UNSIGNED_FIXNUM_TO_LONG
-     (MEMORY_REF (State_Point, STATE_POINT_DISTANCE_TO_ROOT)));
-  long i;
-  SCHEME_OBJECT Point = State_Point;
-
-  for (i=0; i <= How_Far; i++)
-  {
-#ifdef ENABLE_DEBUGGING_TOOLS
-    if (Point == SHARP_F)
-    {
-      outf_fatal("\nState_Point %#lx wrong: count was %ld, #F at %ld\n",
-             ((long) State_Point), ((long) How_Far), ((long) i));
-      Microcode_Termination(TERM_EXIT);
-      /*NOTREACHED*/
-    }
-#endif /* ENABLE_DEBUGGING_TOOLS */
-    Point = MEMORY_REF (Point, STATE_POINT_NEARER_POINT);
-  }
-  return (Point);
-}
-
-/* Assumptions:
-
-     (1) On a single processor, things should work with multiple state
-        spaces.  The microcode variable current_state_point tracks
-        the location in the "boot" space (i.e. the one whose space is
-        #F) and the state spaces themselves (roots of the space
-        trees) track the other spaces.
-     (2) On multi-processors, multiple spaces DO NOT work.  Only the
-        initial space (#F) is tracked by the microcode (it is
-        swapped on every task switch), but no association with trees
-        is kept.  This will work since the initial tree has no space
-        at the root, indicating that the microcode variable rather
-        than the state space contains the current state space
-        location.
-
-   NOTE: This procedure is invoked both by primitives and the interpreter
-   itself.  As such, it is using the pun that PRIMITIVE_ABORT is just a
-   (non-local) return to the interpreter.  This should be cleaned up.
-   NOTE: Any primitive that invokes this procedure must do a
-   canonicalize_primitive_context() first!  */
-
-void
-Translate_To_Point (SCHEME_OBJECT Target)
-{
-  SCHEME_OBJECT State_Space, Current_Location, *Path;
-  SCHEME_OBJECT Path_Point, *Path_Ptr;
-  long Distance, Merge_Depth, From_Depth, i;
-
-  State_Space = Find_State_Space(Target);
-  Path = Free;
-  Distance =
-    (UNSIGNED_FIXNUM_TO_LONG
-     (MEMORY_REF (Target, STATE_POINT_DISTANCE_TO_ROOT)));
-  if (State_Space == SHARP_F)
-    Current_Location = current_state_point;
-  else
-    Current_Location = MEMORY_REF (State_Space, STATE_SPACE_NEAREST_POINT);
-
-  if (Target == Current_Location)
-  {
-    PRIMITIVE_ABORT (PRIM_POP_RETURN);
-    /*NOTREACHED*/
-  }
-
-  for (Path_Ptr = (&(Path[Distance])), Path_Point = Target, i = 0;
-       i <= Distance;
-       i++)
-  {
-    *Path_Ptr-- = Path_Point;
-    Path_Point = MEMORY_REF (Path_Point, STATE_POINT_NEARER_POINT);
-  }
-
-  From_Depth =
-    (UNSIGNED_FIXNUM_TO_LONG
-     (MEMORY_REF (Current_Location, STATE_POINT_DISTANCE_TO_ROOT)));
-
-  for (Path_Point = Current_Location, Merge_Depth = From_Depth;
-       Merge_Depth > Distance;
-       Merge_Depth--)
-    Path_Point = MEMORY_REF (Path_Point, STATE_POINT_NEARER_POINT);
-
-  for (Path_Ptr = (&(Path[Merge_Depth]));
-       Merge_Depth >= 0;
-       Merge_Depth--, Path_Ptr--)
-  {
-    if (*Path_Ptr == Path_Point)
-      break;
-    Path_Point = MEMORY_REF (Path_Point, STATE_POINT_NEARER_POINT);
-  }
-
-#ifdef ENABLE_DEBUGGING_TOOLS
-  if (Merge_Depth < 0)
-  {
-    outf_fatal ("\nMerge_Depth went negative: %ld\n", Merge_Depth);
-    Microcode_Termination (TERM_EXIT);
-  }
-#endif /* ENABLE_DEBUGGING_TOOLS */
-
-  preserve_interrupt_mask ();
- Will_Push(CONTINUATION_SIZE + 4);
-  STACK_PUSH (LONG_TO_UNSIGNED_FIXNUM((Distance - Merge_Depth)));
-  STACK_PUSH (Target);
-  STACK_PUSH (LONG_TO_UNSIGNED_FIXNUM((From_Depth - Merge_Depth)));
-  STACK_PUSH (Current_Location);
-  SET_EXP (State_Space);
-  SET_RC(RC_MOVE_TO_ADJACENT_POINT);
-  SAVE_CONT();
- Pushed();
-
-  /* Disable lower than GC level */
-  SET_INTERRUPT_MASK (GET_INT_MASK & ((INT_GC << 1) - 1));
-  PRIMITIVE_ABORT (PRIM_POP_RETURN);
-  /*NOTREACHED*/
-}
-\f
 #ifdef __WIN32__
 
 #include <windows.h>
diff --git a/src/microcode/winder.h b/src/microcode/winder.h
deleted file mode 100644 (file)
index 1a6312a..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*-C-*-
-
-Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-    1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-    2006, 2007, 2008, 2009, 2010 Massachusetts Institute of Technology
-
-This file is part of MIT/GNU Scheme.
-
-MIT/GNU Scheme is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or (at
-your option) any later version.
-
-MIT/GNU Scheme is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with MIT/GNU Scheme; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
-USA.
-
-*/
-
-/* Header file for dynamic winder. */
-
-#define STATE_SPACE_P(object)                                          \
-  ((VECTOR_P (object))                                                 \
-   && ((VECTOR_LENGTH (object)) == STATE_SPACE_LENGTH)                 \
-   && ((MEMORY_REF ((object), STATE_SPACE_TAG))                                \
-       == (VECTOR_REF (fixed_objects, State_Space_Tag))))
-
-#define STATE_SPACE_TAG                        1
-#define STATE_SPACE_NEAREST_POINT      2
-#define STATE_SPACE_LENGTH             2
-
-#define STATE_POINT_P(object)                                          \
-  ((VECTOR_P (object))                                                 \
-   && ((VECTOR_LENGTH (object)) == STATE_POINT_LENGTH)                 \
-   && ((MEMORY_REF ((object), STATE_POINT_TAG))                                \
-       == (VECTOR_REF (fixed_objects, State_Point_Tag))))
-
-#define STATE_POINT_TAG                        1
-#define STATE_POINT_BEFORE_THUNK       2
-#define STATE_POINT_AFTER_THUNK                3
-#define STATE_POINT_NEARER_POINT       4
-#define STATE_POINT_DISTANCE_TO_ROOT   5
-#define STATE_POINT_LENGTH             5
index 27e61c2a0d39c3365df476fef1a7767f9581d025..6a9844d4a0c1bb310947e98827014d801379385f 100644 (file)
@@ -825,7 +825,6 @@ USA.
     (standard-subproblem 'REPEAT-DISPATCH 4)
     (standard-subproblem 'PRIMITIVE-COMBINATION-3-FIRST-OPERAND 4)
     (standard-subproblem 'PRIMITIVE-COMBINATION-3-APPLY 4)
-    (standard-subproblem 'MOVE-TO-ADJACENT-POINT 6)
     (standard-subproblem 'COMBINATION-SAVE-VALUE length/combination-save-value)
 
     (let ((length (length/application-frame 2 0)))
index 94348694397b3d97b7003e97a556f9033c055768..fc58b50e4b75154743a79d685d7fa6987d984f16 100644 (file)
@@ -274,7 +274,6 @@ USA.
        (microcode-return/name->type 'POP-RETURN-ERROR))
   (record-method 'COMBINATION-APPLY method/null)
   (record-method 'GC-CHECK method/null)
-  (record-method 'MOVE-TO-ADJACENT-POINT method/null)
   (record-method 'REENTER-COMPILED-CODE method/null)
   (record-method 'REPEAT-DISPATCH method/environment-only)
   (let ((method (method/standard &pair-car)))