# HG changeset patch # User wenzelm # Date 1257798654 -3600 # Node ID edf497b5b5d29e615b57d54bf3a082a9b4c845bd # Parent 06c87d2c5b5a975ea76c90de97cffb55e4fab352 setup for official Poly/ML 5.3.0, which is now the default; diff -r 06c87d2c5b5a -r edf497b5b5d2 etc/settings --- a/etc/settings Mon Nov 09 20:47:39 2009 +0100 +++ b/etc/settings Mon Nov 09 21:30:54 2009 +0100 @@ -29,23 +29,18 @@ ML_OPTIONS="-H 200" ML_SOURCES="$ML_HOME/../src" -# Poly/ML 5.2.1 +# Poly/ML 5.3.0 #ML_PLATFORM=x86-linux #ML_HOME=/usr/local/polyml/x86-linux -#ML_SYSTEM=polyml-5.2.1 +#ML_SYSTEM=polyml-5.3.0 #ML_OPTIONS="-H 500" +#ML_SOURCES="$ML_HOME/../src" -# Poly/ML 5.2.1 (64 bit) +# Poly/ML 5.3.0 (64 bit) #ML_PLATFORM=x86_64-linux #ML_HOME=/usr/local/polyml/x86_64-linux -#ML_SYSTEM=polyml-5.2.1 +#ML_SYSTEM=polyml-5.3.0 #ML_OPTIONS="-H 1000" - -# Poly/ML 5.3 (experimental) -#ML_PLATFORM=x86-linux -#ML_HOME=/usr/local/polyml/x86-linux -#ML_SYSTEM=polyml-experimental -#ML_OPTIONS="-H 500" #ML_SOURCES="$ML_HOME/../src" # Standard ML of New Jersey (slow!) diff -r 06c87d2c5b5a -r edf497b5b5d2 src/Pure/IsaMakefile --- a/src/Pure/IsaMakefile Mon Nov 09 20:47:39 2009 +0100 +++ b/src/Pure/IsaMakefile Mon Nov 09 21:30:54 2009 +0100 @@ -27,9 +27,10 @@ ML-Systems/ml_pretty.ML ML-Systems/mosml.ML \ ML-Systems/multithreading.ML ML-Systems/multithreading_polyml.ML \ ML-Systems/overloading_smlnj.ML ML-Systems/polyml-5.0.ML \ - ML-Systems/polyml-5.1.ML ML-Systems/polyml-experimental.ML \ - ML-Systems/polyml.ML ML-Systems/polyml_common.ML \ - ML-Systems/pp_polyml.ML ML-Systems/proper_int.ML ML-Systems/smlnj.ML \ + ML-Systems/polyml-5.1.ML ML-Systems/polyml-5.2.ML \ + ML-Systems/polyml-5.2.1.ML ML-Systems/polyml.ML \ + ML-Systems/polyml_common.ML ML-Systems/pp_polyml.ML \ + ML-Systems/proper_int.ML ML-Systems/smlnj.ML \ ML-Systems/system_shell.ML ML-Systems/thread_dummy.ML \ ML-Systems/timing.ML ML-Systems/time_limit.ML \ ML-Systems/universal.ML ML-Systems/unsynchronized.ML diff -r 06c87d2c5b5a -r edf497b5b5d2 src/Pure/ML-Systems/compiler_polyml-5.3.ML --- a/src/Pure/ML-Systems/compiler_polyml-5.3.ML Mon Nov 09 20:47:39 2009 +0100 +++ b/src/Pure/ML-Systems/compiler_polyml-5.3.ML Mon Nov 09 21:30:54 2009 +0100 @@ -1,6 +1,6 @@ (* Title: Pure/ML-Systems/compiler_polyml-5.3.ML -Runtime compilation for Poly/ML 5.3. +Runtime compilation for Poly/ML 5.3.0. *) local diff -r 06c87d2c5b5a -r edf497b5b5d2 src/Pure/ML-Systems/install_pp_polyml-5.3.ML --- a/src/Pure/ML-Systems/install_pp_polyml-5.3.ML Mon Nov 09 20:47:39 2009 +0100 +++ b/src/Pure/ML-Systems/install_pp_polyml-5.3.ML Mon Nov 09 21:30:54 2009 +0100 @@ -1,6 +1,6 @@ (* Title: Pure/ML-Systems/install_pp_polyml-5.3.ML -Extra toplevel pretty-printing for Poly/ML 5.3. +Extra toplevel pretty-printing for Poly/ML 5.3.0. *) PolyML.addPrettyPrinter (fn depth => fn pretty => fn x => diff -r 06c87d2c5b5a -r edf497b5b5d2 src/Pure/ML-Systems/polyml-5.2.1.ML --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/Pure/ML-Systems/polyml-5.2.1.ML Mon Nov 09 21:30:54 2009 +0100 @@ -0,0 +1,28 @@ +(* Title: Pure/ML-Systems/polyml-5.2.1.ML + +Compatibility wrapper for Poly/ML 5.2.1. +*) + +use "ML-Systems/unsynchronized.ML"; + +open Thread; + +structure ML_Name_Space = +struct + open PolyML.NameSpace; + type T = PolyML.NameSpace.nameSpace; + val global = PolyML.globalNameSpace; +end; + +fun reraise exn = raise exn; + +use "ML-Systems/polyml_common.ML"; +use "ML-Systems/multithreading_polyml.ML"; + +val pointer_eq = PolyML.pointerEq; + +fun share_common_data () = PolyML.shareCommonData PolyML.rootFunction; + +use "ML-Systems/compiler_polyml-5.2.ML"; +use "ML-Systems/pp_polyml.ML"; + diff -r 06c87d2c5b5a -r edf497b5b5d2 src/Pure/ML-Systems/polyml-5.2.ML --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/Pure/ML-Systems/polyml-5.2.ML Mon Nov 09 21:30:54 2009 +0100 @@ -0,0 +1,30 @@ +(* Title: Pure/ML-Systems/polyml-5.2.ML + +Compatibility wrapper for Poly/ML 5.2. +*) + +use "ML-Systems/unsynchronized.ML"; + +open Thread; + +structure ML_Name_Space = +struct + open PolyML.NameSpace; + type T = PolyML.NameSpace.nameSpace; + val global = PolyML.globalNameSpace; +end; + +fun reraise exn = raise exn; + +use "ML-Systems/polyml_common.ML"; + +use "ML-Systems/thread_dummy.ML"; +use "ML-Systems/multithreading.ML"; + +val pointer_eq = PolyML.pointerEq; + +fun share_common_data () = PolyML.shareCommonData PolyML.rootFunction; + +use "ML-Systems/compiler_polyml-5.2.ML"; +use "ML-Systems/pp_polyml.ML"; + diff -r 06c87d2c5b5a -r edf497b5b5d2 src/Pure/ML-Systems/polyml-experimental.ML --- a/src/Pure/ML-Systems/polyml-experimental.ML Mon Nov 09 20:47:39 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -(* Title: Pure/ML-Systems/polyml-experimental.ML - -Compatibility wrapper for Poly/ML 5.3. -*) - -use "ML-Systems/unsynchronized.ML"; - -open Thread; - -structure ML_Name_Space = -struct - open PolyML.NameSpace; - type T = PolyML.NameSpace.nameSpace; - val global = PolyML.globalNameSpace; -end; - -fun reraise exn = - (case PolyML.exceptionLocation exn of - NONE => raise exn - | SOME location => PolyML.raiseWithLocation (exn, location)); - -use "ML-Systems/polyml_common.ML"; -use "ML-Systems/multithreading_polyml.ML"; - -val pointer_eq = PolyML.pointerEq; - -fun share_common_data () = PolyML.shareCommonData PolyML.rootFunction; - -use "ML-Systems/compiler_polyml-5.3.ML"; -PolyML.Compiler.reportUnreferencedIds := true; - - -(* toplevel pretty printing *) - -val pretty_ml = - let - fun convert len (PolyML.PrettyBlock (ind, _, context, prts)) = - let - fun property name default = - (case List.find (fn PolyML.ContextProperty (a, _) => name = a | _ => false) context of - SOME (PolyML.ContextProperty (_, b)) => b - | NONE => default); - val bg = property "begin" ""; - val en = property "end" ""; - val len' = property "length" len; - in ML_Pretty.Block ((bg, en), map (convert len') prts, ind) end - | convert len (PolyML.PrettyString s) = - ML_Pretty.String (s, case Int.fromString len of SOME i => i | NONE => size s) - | convert _ (PolyML.PrettyBreak (wd, _)) = - ML_Pretty.Break (if wd < 99999 then (false, wd) else (true, 2)); - in convert "" end; - -fun ml_pretty (ML_Pretty.Block ((bg, en), prts, ind)) = - let val context = - (if bg = "" then [] else [PolyML.ContextProperty ("begin", bg)]) @ - (if en = "" then [] else [PolyML.ContextProperty ("end", en)]) - in PolyML.PrettyBlock (ind, false, context, map ml_pretty prts) end - | ml_pretty (ML_Pretty.String (s, len)) = - if len = size s then PolyML.PrettyString s - else PolyML.PrettyBlock - (0, false, [PolyML.ContextProperty ("length", Int.toString len)], [PolyML.PrettyString s]) - | ml_pretty (ML_Pretty.Break (false, wd)) = PolyML.PrettyBreak (wd, 0) - | ml_pretty (ML_Pretty.Break (true, _)) = PolyML.PrettyBreak (99999, 0); - -fun toplevel_pp context (_: string list) pp = - use_text context (1, "pp") false - ("PolyML.addPrettyPrinter (fn _ => fn _ => ml_pretty o Pretty.to_ML o (" ^ pp ^ "))"); - diff -r 06c87d2c5b5a -r edf497b5b5d2 src/Pure/ML-Systems/polyml.ML --- a/src/Pure/ML-Systems/polyml.ML Mon Nov 09 20:47:39 2009 +0100 +++ b/src/Pure/ML-Systems/polyml.ML Mon Nov 09 21:30:54 2009 +0100 @@ -1,6 +1,6 @@ (* Title: Pure/ML-Systems/polyml.ML -Compatibility wrapper for Poly/ML 5.2 and 5.2.1. +Compatibility wrapper for Poly/ML 5.3.0. *) use "ML-Systems/unsynchronized.ML"; @@ -14,18 +14,55 @@ val global = PolyML.globalNameSpace; end; -fun reraise exn = raise exn; +fun reraise exn = + (case PolyML.exceptionLocation exn of + NONE => raise exn + | SOME location => PolyML.raiseWithLocation (exn, location)); use "ML-Systems/polyml_common.ML"; - -if ml_system = "polyml-5.2" -then (use "ML-Systems/thread_dummy.ML"; use "ML-Systems/multithreading.ML") -else use "ML-Systems/multithreading_polyml.ML"; +use "ML-Systems/multithreading_polyml.ML"; val pointer_eq = PolyML.pointerEq; fun share_common_data () = PolyML.shareCommonData PolyML.rootFunction; -use "ML-Systems/compiler_polyml-5.2.ML"; -use "ML-Systems/pp_polyml.ML"; +use "ML-Systems/compiler_polyml-5.3.ML"; +PolyML.Compiler.reportUnreferencedIds := true; + +(* toplevel pretty printing *) + +val pretty_ml = + let + fun convert len (PolyML.PrettyBlock (ind, _, context, prts)) = + let + fun property name default = + (case List.find (fn PolyML.ContextProperty (a, _) => name = a | _ => false) context of + SOME (PolyML.ContextProperty (_, b)) => b + | NONE => default); + val bg = property "begin" ""; + val en = property "end" ""; + val len' = property "length" len; + in ML_Pretty.Block ((bg, en), map (convert len') prts, ind) end + | convert len (PolyML.PrettyString s) = + ML_Pretty.String (s, case Int.fromString len of SOME i => i | NONE => size s) + | convert _ (PolyML.PrettyBreak (wd, _)) = + ML_Pretty.Break (if wd < 99999 then (false, wd) else (true, 2)); + in convert "" end; + +fun ml_pretty (ML_Pretty.Block ((bg, en), prts, ind)) = + let val context = + (if bg = "" then [] else [PolyML.ContextProperty ("begin", bg)]) @ + (if en = "" then [] else [PolyML.ContextProperty ("end", en)]) + in PolyML.PrettyBlock (ind, false, context, map ml_pretty prts) end + | ml_pretty (ML_Pretty.String (s, len)) = + if len = size s then PolyML.PrettyString s + else PolyML.PrettyBlock + (0, false, [PolyML.ContextProperty ("length", Int.toString len)], [PolyML.PrettyString s]) + | ml_pretty (ML_Pretty.Break (false, wd)) = PolyML.PrettyBreak (wd, 0) + | ml_pretty (ML_Pretty.Break (true, _)) = PolyML.PrettyBreak (99999, 0); + +fun toplevel_pp context (_: string list) pp = + use_text context (1, "pp") false + ("PolyML.addPrettyPrinter (fn _ => fn _ => ml_pretty o Pretty.to_ML o (" ^ pp ^ "))"); + diff -r 06c87d2c5b5a -r edf497b5b5d2 src/Pure/ML/ml_compiler_polyml-5.3.ML --- a/src/Pure/ML/ml_compiler_polyml-5.3.ML Mon Nov 09 20:47:39 2009 +0100 +++ b/src/Pure/ML/ml_compiler_polyml-5.3.ML Mon Nov 09 21:30:54 2009 +0100 @@ -1,7 +1,7 @@ (* Title: Pure/ML/ml_compiler_polyml-5.3.ML Author: Makarius -Advanced runtime compilation for Poly/ML 5.3 (SVN 839). +Advanced runtime compilation for Poly/ML 5.3.0. *) signature ML_COMPILER = diff -r 06c87d2c5b5a -r edf497b5b5d2 src/Pure/ROOT.ML --- a/src/Pure/ROOT.ML Mon Nov 09 20:47:39 2009 +0100 +++ b/src/Pure/ROOT.ML Mon Nov 09 21:30:54 2009 +0100 @@ -169,7 +169,7 @@ use "ML/ml_syntax.ML"; use "ML/ml_env.ML"; use "Isar/runtime.ML"; -if ml_system = "polyml-experimental" +if ml_system = "polyml-5.3.0" then use "ML/ml_compiler_polyml-5.3.ML" else use "ML/ml_compiler.ML"; use "ML/ml_context.ML"; diff -r 06c87d2c5b5a -r edf497b5b5d2 src/Pure/pure_setup.ML --- a/src/Pure/pure_setup.ML Mon Nov 09 20:47:39 2009 +0100 +++ b/src/Pure/pure_setup.ML Mon Nov 09 21:30:54 2009 +0100 @@ -33,7 +33,7 @@ toplevel_pp ["Path", "T"] "Pretty.str o quote o Path.implode"; toplevel_pp ["File", "ident"] "Pretty.str o quote o File.rep_ident"; -if ml_system = "polyml-experimental" +if ml_system = "polyml-5.3.0" then use "ML-Systems/install_pp_polyml-5.3.ML" else if String.isPrefix "polyml" ml_system then use "ML-Systems/install_pp_polyml.ML"