src/Pure/ML/ml_init.ML
author wenzelm
Wed, 06 Sep 2023 20:51:28 +0200
changeset 78650 47d0c333d155
parent 75594 303f885d4a8c
child 78740 45ff003d337c
permissions -rw-r--r--
clarified signature: retain original Poly/ML names Thread.Thread, Thread.Mutex, Thread.ConditionVar and de-emphasize them for Isabelle/ML;
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
62923
3a122e1e352a clarified bootstrap;
wenzelm
parents: 62883
diff changeset
    22
datatype illegal = Interrupt;
3a122e1e352a clarified bootstrap;
wenzelm
parents: 62883
diff changeset
    23
3a122e1e352a clarified bootstrap;
wenzelm
parents: 62883
diff changeset
    24
structure Basic_Exn: BASIC_EXN = Exn;
3a122e1e352a clarified bootstrap;
wenzelm
parents: 62883
diff changeset
    25
open Basic_Exn;
67206
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    26
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    27
structure String =
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    28
struct
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    29
  open String;
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    30
  fun substring (s, i, n) =
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    31
    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
    32
    else String.substring (s, i, n);
b8f30228a55b minor performance tuning, notably for Library.fold_string etc.;
wenzelm
parents: 67205
diff changeset
    33
end;
75594
303f885d4a8c clarified signature: more operations;
wenzelm
parents: 73384
diff changeset
    34
303f885d4a8c clarified signature: more operations;
wenzelm
parents: 73384
diff changeset
    35
structure Substring =
303f885d4a8c clarified signature: more operations;
wenzelm
parents: 73384
diff changeset
    36
struct
303f885d4a8c clarified signature: more operations;
wenzelm
parents: 73384
diff changeset
    37
  open Substring;
303f885d4a8c clarified signature: more operations;
wenzelm
parents: 73384
diff changeset
    38
  val empty = full "";
303f885d4a8c clarified signature: more operations;
wenzelm
parents: 73384
diff changeset
    39
end;