src/Pure/ML/ml_init.ML
author wenzelm
Thu, 14 Jun 2018 17:50:23 +0200
changeset 68449 6d0f1a5a16ea
parent 67206 b8f30228a55b
child 68918 3a0db30e5d87
permissions -rw-r--r--
auto update;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
67205
06c91eac25f2 clarified file name;
wenzelm
parents: 63925
diff changeset
     1
(*  Title:      Pure/ML/ml_init.ML
62818
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
     2
    Author:     Makarius
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
     3
67205
06c91eac25f2 clarified file name;
wenzelm
parents: 63925
diff changeset
     4
Initial ML environment.
62818
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
     5
*)
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
     6
62823
751bcf0473a7 tuned signature;
wenzelm
parents: 62818
diff changeset
     7
structure PolyML_Pretty =
751bcf0473a7 tuned signature;
wenzelm
parents: 62818
diff changeset
     8
struct
751bcf0473a7 tuned signature;
wenzelm
parents: 62818
diff changeset
     9
  datatype context = datatype PolyML.context;
751bcf0473a7 tuned signature;
wenzelm
parents: 62818
diff changeset
    10
  datatype pretty = datatype PolyML.pretty;
751bcf0473a7 tuned signature;
wenzelm
parents: 62818
diff changeset
    11
end;
751bcf0473a7 tuned signature;
wenzelm
parents: 62818
diff changeset
    12
62818
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    13
val seconds = Time.fromReal;
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    14
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    15
val _ =
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    16
  List.app ML_Name_Space.forget_val
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    17
    ["isSome", "getOpt", "valOf", "foldl", "foldr", "print", "explode", "concat"];
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    18
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    19
val ord = SML90.ord;
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    20
val chr = SML90.chr;
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    21
val raw_explode = SML90.explode;
63925
500646ef617a avoid old SML90;
wenzelm
parents: 62943
diff changeset
    22
val implode = String.concat;
62818
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    23
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    24
val pointer_eq = PolyML.pointerEq;
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    25
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    26
val error_depth = PolyML.error_depth;
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    27
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    28
open Thread;
62923
3a122e1e352a clarified bootstrap;
wenzelm
parents: 62883
diff changeset
    29
3a122e1e352a clarified bootstrap;
wenzelm
parents: 62883
diff changeset
    30
datatype illegal = Interrupt;
3a122e1e352a clarified bootstrap;
wenzelm
parents: 62883
diff changeset
    31
3a122e1e352a clarified bootstrap;
wenzelm
parents: 62883
diff changeset
    32
structure Basic_Exn: BASIC_EXN = Exn;
3a122e1e352a clarified bootstrap;
wenzelm
parents: 62883
diff changeset
    33
open Basic_Exn;
67206
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    34
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    35
structure String =
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    36
struct
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    37
  open String;
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    38
  fun substring (s, i, n) =
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    39
    if n = 1 then String.str (String.sub (s, i))
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    40
    else String.substring (s, i, n);
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    41
end;