src/Pure/ML/ml_recursive.ML
author wenzelm
Thu, 07 Apr 2016 21:27:17 +0200
changeset 62910 f37878ebba65
child 62941 5612ec9f0f49
permissions -rw-r--r--
explicit handling of recursive ML name space, e.g. relevant for ML_Bootstrap; handle bootstrap signatures as well;

(*  Title:      Pure/ML/ml_recursive.ML
    Author:     Makarius

ML name space for recursive compiler invocation.
*)

signature ML_RECURSIVE =
sig
  val get: unit -> PolyML.NameSpace.nameSpace option
  val recursive: PolyML.NameSpace.nameSpace -> (unit -> 'a) -> 'a
end;

structure ML_Recursive: ML_RECURSIVE =
struct

val var = Thread_Data.var () : PolyML.NameSpace.nameSpace Thread_Data.var;

fun get () = Thread_Data.get var;
fun recursive space e = Thread_Data.setmp var (SOME space) e ();

end;