src/Pure/ML/ml_init.ML
author wenzelm
Wed, 08 Mar 2023 22:22:35 +0100
changeset 77591 3f3dcf9f53f1
parent 75594 303f885d4a8c
child 78650 47d0c333d155
permissions -rw-r--r--
more robust transactions;
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
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
     7
val seconds = Time.fromReal;
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
     8
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
     9
val _ =
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    10
  List.app ML_Name_Space.forget_val
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    11
    ["isSome", "getOpt", "valOf", "foldl", "foldr", "print", "explode", "concat"];
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    12
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    13
val ord = SML90.ord;
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    14
val chr = SML90.chr;
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    15
val raw_explode = SML90.explode;
63925
500646ef617a avoid old SML90;
wenzelm
parents: 62943
diff changeset
    16
val implode = String.concat;
62818
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    17
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    18
val pointer_eq = PolyML.pointerEq;
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    19
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    20
val error_depth = PolyML.error_depth;
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    21
2733b240bfea clarified modules;
wenzelm
parents:
diff changeset
    22
open Thread;
62923
3a122e1e352a clarified bootstrap;
wenzelm
parents: 62883
diff changeset
    23
3a122e1e352a clarified bootstrap;
wenzelm
parents: 62883
diff changeset
    24
datatype illegal = Interrupt;
3a122e1e352a clarified bootstrap;
wenzelm
parents: 62883
diff changeset
    25
3a122e1e352a clarified bootstrap;
wenzelm
parents: 62883
diff changeset
    26
structure Basic_Exn: BASIC_EXN = Exn;
3a122e1e352a clarified bootstrap;
wenzelm
parents: 62883
diff changeset
    27
open Basic_Exn;
67206
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    28
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    29
structure String =
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    30
struct
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    31
  open String;
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    32
  fun substring (s, i, n) =
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    33
    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
    34
    else String.substring (s, i, n);
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    35
end;
75594
303f885d4a8c clarified signature: more operations;
wenzelm
parents: 73384
diff changeset
    36
303f885d4a8c clarified signature: more operations;
wenzelm
parents: 73384
diff changeset
    37
structure Substring =
303f885d4a8c clarified signature: more operations;
wenzelm
parents: 73384
diff changeset
    38
struct
303f885d4a8c clarified signature: more operations;
wenzelm
parents: 73384
diff changeset
    39
  open Substring;
303f885d4a8c clarified signature: more operations;
wenzelm
parents: 73384
diff changeset
    40
  val empty = full "";
303f885d4a8c clarified signature: more operations;
wenzelm
parents: 73384
diff changeset
    41
end;