# HG changeset patch # User wenzelm # Date 1515447362 -3600 # Node ID 8bef51521f217e2f192242795f748bbf0c28e704 # Parent c2dfc510a38c6b0f33a6f980e132f73b986ec89f clarified implicit Pure.thy; diff -r c2dfc510a38c -r 8bef51521f21 src/Pure/ML/ml_pp.ML --- a/src/Pure/ML/ml_pp.ML Mon Jan 08 16:45:30 2018 +0100 +++ b/src/Pure/ML/ml_pp.ML Mon Jan 08 22:36:02 2018 +0100 @@ -12,19 +12,19 @@ val _ = ML_system_pp (fn depth => fn _ => - ML_Pretty.to_polyml o Pretty.to_ML depth o Proof_Display.pp_thm Thy_Info.pure_theory); + ML_Pretty.to_polyml o Pretty.to_ML depth o Proof_Display.pp_thm Theory.get_pure); val _ = ML_system_pp (fn depth => fn _ => - ML_Pretty.to_polyml o Pretty.to_ML depth o Proof_Display.pp_cterm Thy_Info.pure_theory); + ML_Pretty.to_polyml o Pretty.to_ML depth o Proof_Display.pp_cterm Theory.get_pure); val _ = ML_system_pp (fn depth => fn _ => - ML_Pretty.to_polyml o Pretty.to_ML depth o Proof_Display.pp_ctyp Thy_Info.pure_theory); + ML_Pretty.to_polyml o Pretty.to_ML depth o Proof_Display.pp_ctyp Theory.get_pure); val _ = ML_system_pp (fn depth => fn _ => - ML_Pretty.to_polyml o Pretty.to_ML depth o Proof_Display.pp_typ Thy_Info.pure_theory); + ML_Pretty.to_polyml o Pretty.to_ML depth o Proof_Display.pp_typ Theory.get_pure); local diff -r c2dfc510a38c -r 8bef51521f21 src/Pure/PIDE/document.ML --- a/src/Pure/PIDE/document.ML Mon Jan 08 16:45:30 2018 +0100 +++ b/src/Pure/PIDE/document.ML Mon Jan 08 22:36:02 2018 +0100 @@ -574,7 +574,7 @@ |> Option.map (fn thy => (thy, (pos, Theory.get_markup thy)))); val parents = - if null parents_reports then [Thy_Info.pure_theory ()] else map #1 parents_reports; + if null parents_reports then [Theory.get_pure ()] else map #1 parents_reports; val _ = Position.reports (map #2 parents_reports); in Resources.begin_theory master_dir header parents end; diff -r c2dfc510a38c -r 8bef51521f21 src/Pure/Thy/thy_info.ML --- a/src/Pure/Thy/thy_info.ML Mon Jan 08 16:45:30 2018 +0100 +++ b/src/Pure/Thy/thy_info.ML Mon Jan 08 22:36:02 2018 +0100 @@ -10,7 +10,6 @@ val get_names: unit -> string list val lookup_theory: string -> theory option val get_theory: string -> theory - val pure_theory: unit -> theory val master_directory: string -> Path.T val remove_thy: string -> unit val use_theories: @@ -102,8 +101,6 @@ SOME theory => theory | _ => error ("Theory loader: undefined entry for theory " ^ quote name)); -fun pure_theory () = get_theory Context.PureN; - val get_imports = Resources.imports_of o get_theory; diff -r c2dfc510a38c -r 8bef51521f21 src/Pure/Tools/build.scala --- a/src/Pure/Tools/build.scala Mon Jan 08 16:45:30 2018 +0100 +++ b/src/Pure/Tools/build.scala Mon Jan 08 22:36:02 2018 +0100 @@ -265,7 +265,8 @@ val eval = "Command_Line.tool0 (fn () => (" + "Build.build " + ML_Syntax.print_string_bytes(File.standard_path(args_file)) + - (if (do_output) "; " + save_heap else "") + "));" + (if (Sessions.is_pure(name)) "; Theory.install_pure (Thy_Info.get_theory Context.PureN)" + else "") + (if (do_output) "; " + save_heap else "") + "));" val process = if (Sessions.is_pure(name)) { diff -r c2dfc510a38c -r 8bef51521f21 src/Pure/theory.ML --- a/src/Pure/theory.ML Mon Jan 08 16:45:30 2018 +0100 +++ b/src/Pure/theory.ML Mon Jan 08 22:36:02 2018 +0100 @@ -11,6 +11,8 @@ val nodes_of: theory -> theory list val setup: (theory -> theory) -> unit val local_setup: (Proof.context -> Proof.context) -> unit + val get_pure: unit -> theory + val install_pure: theory -> unit val get_markup: theory -> Markup.T val check: Proof.context -> string * Position.T -> theory val axiom_table: theory -> term Name_Space.table @@ -45,6 +47,10 @@ fun setup f = Context.>> (Context.map_theory f); fun local_setup f = Context.>> (Context.map_proof f); +val pure: theory Single_Assignment.var = Single_Assignment.var "pure"; +fun get_pure () = the (Single_Assignment.peek pure); +fun install_pure thy = Single_Assignment.assign pure thy; + (** datatype thy **)