simplified bootstrap: critical structures remain accessible in ML_Root context;
authorwenzelm
Wed, 06 Apr 2016 11:57:21 +0200
changeset 62886 72c475e03e22
parent 62885 108630498c00
child 62887 6b2c60ebd915
simplified bootstrap: critical structures remain accessible in ML_Root context;
NEWS
etc/options
src/Pure/ML/ml_compiler0.ML
src/Pure/ML/ml_pervasive1.ML
src/Pure/ROOT1.ML
--- a/NEWS	Wed Apr 06 11:50:07 2016 +0200
+++ b/NEWS	Wed Apr 06 11:57:21 2016 +0200
@@ -235,8 +235,7 @@
 requiring separate files.
 
 * Low-level ML system structures (like PolyML and RunCall) are no longer
-exposed to Isabelle/ML user-space. The system option ML_system_bootstrap
-allows to override this for special test situations.
+exposed to Isabelle/ML user-space. Potential INCOMPATIBILITY.
 
 * Antiquotation @{make_string} is available during Pure bootstrap --
 with approximative output quality.
--- a/etc/options	Wed Apr 06 11:50:07 2016 +0200
+++ b/etc/options	Wed Apr 06 11:57:21 2016 +0200
@@ -126,9 +126,6 @@
 public option ML_system_64 : bool = false
   -- "ML system for 64bit platform is used if possible (change requires restart)"
 
-option ML_system_bootstrap : bool = false
-  -- "provide access to low-level ML system structures (unsafe!)"
-
 
 section "Editor Reactivity"
 
--- a/src/Pure/ML/ml_compiler0.ML	Wed Apr 06 11:50:07 2016 +0200
+++ b/src/Pure/ML/ml_compiler0.ML	Wed Apr 06 11:57:21 2016 +0200
@@ -154,4 +154,4 @@
        ("addPrettyPrinter", "ML_system_pp"),
        ("addOverload", "ML_system_overload")]))
   {debug = false, file = "", line = 0, verbose = false}
-  "open PolyML RunCall";
+  "open PolyML RunCall" handle ERROR _ => ();
--- a/src/Pure/ML/ml_pervasive1.ML	Wed Apr 06 11:50:07 2016 +0200
+++ b/src/Pure/ML/ml_pervasive1.ML	Wed Apr 06 11:57:21 2016 +0200
@@ -4,11 +4,10 @@
 Pervasive ML environment: final setup.
 *)
 
-if Options.default_bool "ML_system_bootstrap" then ()
-else
-  (List.app ML_Name_Space.forget_structure
-    (remove (op =) "PolyML" ML_Name_Space.bootstrap_structures);
-   ML \<open>structure PolyML = struct structure IntInf = PolyML.IntInf end\<close>);
+List.app ML_Name_Space.forget_structure
+  (remove (op =) "PolyML" ML_Name_Space.bootstrap_structures);
+
+structure PolyML = struct structure IntInf = PolyML.IntInf end;
 
 Proofterm.proofs := 0;
 
--- a/src/Pure/ROOT1.ML	Wed Apr 06 11:50:07 2016 +0200
+++ b/src/Pure/ROOT1.ML	Wed Apr 06 11:57:21 2016 +0200
@@ -1,6 +1,6 @@
 (*** Isabelle/Pure bootstrap: final setup ***)
 
 use_thy "Pure";
+use_thy "ML_Root";
 
 use "ML/ml_pervasive1.ML";
-use_thy "ML_Root";