src/Pure/ML/ml_compiler1.ML
author wenzelm
Wed, 02 Mar 2022 21:14:09 +0100
changeset 75189 f304a2a5080f
parent 62902 3c0f53eae166
permissions -rw-r--r--
tuned signature;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
62817
744bfd770123 clarified modules;
wenzelm
parents:
diff changeset
     1
(*  Title:      Pure/ML/ml_compiler1.ML
744bfd770123 clarified modules;
wenzelm
parents:
diff changeset
     2
    Author:     Makarius
744bfd770123 clarified modules;
wenzelm
parents:
diff changeset
     3
62902
3c0f53eae166 more conventional theory syntax for ML bootstrap, with 'ML_file' instead of 'use';
wenzelm
parents: 62817
diff changeset
     4
Refined ML file operations for bootstrap.
62817
744bfd770123 clarified modules;
wenzelm
parents:
diff changeset
     5
*)
744bfd770123 clarified modules;
wenzelm
parents:
diff changeset
     6
62902
3c0f53eae166 more conventional theory syntax for ML bootstrap, with 'ML_file' instead of 'use';
wenzelm
parents: 62817
diff changeset
     7
val {ML_file, ML_file_debug, ML_file_no_debug} =
62817
744bfd770123 clarified modules;
wenzelm
parents:
diff changeset
     8
  let
744bfd770123 clarified modules;
wenzelm
parents:
diff changeset
     9
    val context: ML_Compiler0.context =
744bfd770123 clarified modules;
wenzelm
parents:
diff changeset
    10
     {name_space = ML_Name_Space.global,
744bfd770123 clarified modules;
wenzelm
parents:
diff changeset
    11
      print_depth = NONE,
744bfd770123 clarified modules;
wenzelm
parents:
diff changeset
    12
      here = Position.here oo Position.line_file,
744bfd770123 clarified modules;
wenzelm
parents:
diff changeset
    13
      print = writeln,
744bfd770123 clarified modules;
wenzelm
parents:
diff changeset
    14
      error = error};
744bfd770123 clarified modules;
wenzelm
parents:
diff changeset
    15
  in
62902
3c0f53eae166 more conventional theory syntax for ML bootstrap, with 'ML_file' instead of 'use';
wenzelm
parents: 62817
diff changeset
    16
    ML_Compiler0.ML_file_operations (fn opt_debug => fn file =>
62817
744bfd770123 clarified modules;
wenzelm
parents:
diff changeset
    17
      Position.setmp_thread_data (Position.file_only file)
744bfd770123 clarified modules;
wenzelm
parents:
diff changeset
    18
        (fn () =>
62902
3c0f53eae166 more conventional theory syntax for ML bootstrap, with 'ML_file' instead of 'use';
wenzelm
parents: 62817
diff changeset
    19
          ML_Compiler0.ML_file context
62817
744bfd770123 clarified modules;
wenzelm
parents:
diff changeset
    20
            {verbose = true, debug = ML_Compiler0.debug_option opt_debug} file
744bfd770123 clarified modules;
wenzelm
parents:
diff changeset
    21
          handle ERROR msg => (writeln msg; error "ML error")) ())
744bfd770123 clarified modules;
wenzelm
parents:
diff changeset
    22
  end;