src/Pure/RAW/ml_system.ML
author wenzelm
Mon, 15 Feb 2016 14:55:44 +0100
changeset 62337 d3996d5873dd
parent 61925 ab52f183f020
child 62354 fdd6989cc8a0
permissions -rw-r--r--
proper syntax;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
61925
ab52f183f020 clarified directory structure;
wenzelm
parents: 60989
diff changeset
     1
(*  Title:      Pure/RAW/ml_system.ML
43948
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
     2
    Author:     Makarius
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
     3
48416
5787e1c911d0 more ML_System operations;
wenzelm
parents: 43948
diff changeset
     4
ML system and platform operations.
43948
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
     5
*)
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
     6
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
     7
signature ML_SYSTEM =
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
     8
sig
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
     9
  val name: string
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
    10
  val is_polyml: bool
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
    11
  val is_smlnj: bool
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
    12
  val platform: string
60962
faa452d8e265 basic setup for native Windows (RAW session without image);
wenzelm
parents: 48416
diff changeset
    13
  val platform_is_windows: bool
48416
5787e1c911d0 more ML_System operations;
wenzelm
parents: 43948
diff changeset
    14
  val share_common_data: unit -> unit
5787e1c911d0 more ML_System operations;
wenzelm
parents: 43948
diff changeset
    15
  val save_state: string -> unit
43948
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
    16
end;
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
    17
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
    18
structure ML_System: ML_SYSTEM =
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
    19
struct
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
    20
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
    21
val SOME name = OS.Process.getEnv "ML_SYSTEM";
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
    22
val is_polyml = String.isPrefix "polyml" name;
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
    23
val is_smlnj = String.isPrefix "smlnj" name;
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
    24
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
    25
val SOME platform = OS.Process.getEnv "ML_PLATFORM";
60962
faa452d8e265 basic setup for native Windows (RAW session without image);
wenzelm
parents: 48416
diff changeset
    26
val platform_is_windows = String.isSuffix "windows" platform;
43948
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
    27
48416
5787e1c911d0 more ML_System operations;
wenzelm
parents: 43948
diff changeset
    28
fun share_common_data () = ();
5787e1c911d0 more ML_System operations;
wenzelm
parents: 43948
diff changeset
    29
fun save_state _ = raise Fail "Cannot save state -- undefined operation";
5787e1c911d0 more ML_System operations;
wenzelm
parents: 43948
diff changeset
    30
43948
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
    31
end;
8f5add916a99 explicit structure ML_System;
wenzelm
parents:
diff changeset
    32