use_text replaces use_strings;
authorwenzelm
Mon, 15 Jun 1998 11:06:00 +0200
changeset 5038 301c37df931d
parent 5037 224887671646
child 5039 28c18f9e106e
use_text replaces use_strings;
src/Pure/ML-Systems/mlworks.ML
src/Pure/ML-Systems/polyml.ML
src/Pure/ML-Systems/smlnj-0.93.ML
src/Pure/ML-Systems/smlnj.ML
src/Pure/Thy/thm_database.ML
src/Pure/Thy/thy_read.ML
--- a/src/Pure/ML-Systems/mlworks.ML	Mon Jun 15 11:05:25 1998 +0200
+++ b/src/Pure/ML-Systems/mlworks.ML	Mon Jun 15 11:06:00 1998 +0200
@@ -66,14 +66,15 @@
 (* ML command execution *)
 
 (*Can one redirect 'use' directly to an instream?*)
-fun use_strings strs =
+fun use_text txt =
   let
     val tmp_name = OS.FileSys.tmpName ();
     val tmp_file = TextIO.openOut tmp_name;
-  in app (fn s => TextIO.output (tmp_file, s)) strs;
-     TextIO.closeOut tmp_file;
-     use tmp_name;
-     OS.FileSys.remove tmp_name
+  in
+    TextIO.output (tmp_file, txt);
+    TextIO.closeOut tmp_file;
+    use tmp_name;
+    OS.FileSys.remove tmp_name
   end;
 
 
--- a/src/Pure/ML-Systems/polyml.ML	Mon Jun 15 11:05:25 1998 +0200
+++ b/src/Pure/ML-Systems/polyml.ML	Mon Jun 15 11:06:00 1998 +0200
@@ -41,22 +41,18 @@
 
 (* ML command execution -- 'eval' *)
 
-val use_strings =
+fun use_text txt =
   let
-    fun exec line =
-      let
-        val is_first = ref true;
-
-        fun get_line () =
-          if ! is_first then (is_first := false; line)
-          else raise Io "use_strings: buffer exhausted";
-      in
-        PolyML.compiler (get_line, print) ()
-      end;
-
-    fun execs [] = ()
-      | execs (line :: lines) = (exec line; execs lines);
-  in execs end;
+    val buffer = ref (explode txt);
+    fun get () =
+      (case ! buffer of
+        [] => ""
+      | c :: cs => (buffer := cs; c));
+    fun exec () =
+      (case ! buffer of
+        [] => ()
+      | _ => (PolyML.compiler (get, print) (); exec ()));
+  in exec () end;
 
 
 
--- a/src/Pure/ML-Systems/smlnj-0.93.ML	Mon Jun 15 11:05:25 1998 +0200
+++ b/src/Pure/ML-Systems/smlnj-0.93.ML	Mon Jun 15 11:06:00 1998 +0200
@@ -81,8 +81,7 @@
 
 (* ML command execution *)
 
-fun use_strings commands =
-  System.Compile.use_stream (open_string (implode commands));
+val use_text = System.Compile.use_stream o open_string;
 
 
 
--- a/src/Pure/ML-Systems/smlnj.ML	Mon Jun 15 11:05:25 1998 +0200
+++ b/src/Pure/ML-Systems/smlnj.ML	Mon Jun 15 11:06:00 1998 +0200
@@ -82,7 +82,7 @@
 
 (* ML command execution *)
 
-val use_strings = Compiler.Interact.useStream o TextIO.openString o implode;
+val use_text = Compiler.Interact.useStream o TextIO.openString;
 
 
 
--- a/src/Pure/Thy/thm_database.ML	Mon Jun 15 11:05:25 1998 +0200
+++ b/src/Pure/Thy/thm_database.ML	Mon Jun 15 11:06:00 1998 +0200
@@ -52,7 +52,7 @@
   let val thm' = store_thm (name, thm) in
     if is_ml_identifier name then
       (qed_thm := Some thm';
-        use_strings ["val " ^ name ^ " = the (! ThmDatabase.qed_thm);"])
+        use_text ("val " ^ name ^ " = the (! ThmDatabase.qed_thm);"))
     else warning ("Cannot bind thm " ^ quote name ^ " as ML value")
   end;
 
--- a/src/Pure/Thy/thy_read.ML	Mon Jun 15 11:05:25 1998 +0200
+++ b/src/Pure/Thy/thy_read.ML	Mon Jun 15 11:06:00 1998 +0200
@@ -267,7 +267,7 @@
              Use.use ml_file);
 
        (*Store theory again because it could have been redefined*)
-       use_strings ["val _ = store_theory " ^ tname ^ ".thy;"];
+       use_text ("val _ = store_theory " ^ tname ^ ".thy;");
 
        (*Add theory to list of all loaded theories (for index.html)
          and add it to its parents' sub-charts*)