src/Pure/Build/build.scala
changeset 79642 1b0668acf319
parent 79639 8b8591820bd8
child 79643 51e9d1a80e39
equal deleted inserted replaced
79641:bc6033faa229 79642:1b0668acf319
    26   /* context */
    26   /* context */
    27 
    27 
    28   sealed case class Context(
    28   sealed case class Context(
    29     store: Store,
    29     store: Store,
    30     build_deps: isabelle.Sessions.Deps,
    30     build_deps: isabelle.Sessions.Deps,
    31     engine: Engine = Default_Engine,
    31     engine: Engine = Engine.Default,
    32     afp_root: Option[Path] = None,
    32     afp_root: Option[Path] = None,
    33     build_hosts: List[Build_Cluster.Host] = Nil,
    33     build_hosts: List[Build_Cluster.Host] = Nil,
    34     ml_platform: String = Isabelle_System.getenv("ML_PLATFORM"),
    34     ml_platform: String = Isabelle_System.getenv("ML_PLATFORM"),
    35     hostname: String = Isabelle_System.hostname(),
    35     hostname: String = Isabelle_System.hostname(),
    36     numa_shuffling: Boolean = false,
    36     numa_shuffling: Boolean = false,
   102     lazy val services: List[Engine] =
   102     lazy val services: List[Engine] =
   103       Isabelle_System.make_services(classOf[Engine])
   103       Isabelle_System.make_services(classOf[Engine])
   104 
   104 
   105     def apply(name: String): Engine =
   105     def apply(name: String): Engine =
   106       services.find(_.name == name).getOrElse(error("Bad build engine " + quote(name)))
   106       services.find(_.name == name).getOrElse(error("Bad build engine " + quote(name)))
       
   107 
       
   108     class Default extends Engine("") { override def toString: String = "<default>" }
       
   109     object Default extends Default
   107   }
   110   }
   108 
   111 
   109   class Engine(val name: String) extends Isabelle_System.Service {
   112   class Engine(val name: String) extends Isabelle_System.Service {
   110     override def toString: String = name
   113     override def toString: String = name
   111 
   114 
   139         using(open_build_process(context, progress, server))(_.run())
   142         using(open_build_process(context, progress, server))(_.run())
   140       }
   143       }
   141     }
   144     }
   142   }
   145   }
   143 
   146 
   144   class Default_Engine extends Engine("") { override def toString: String = "<default>" }
       
   145   object Default_Engine extends Default_Engine
       
   146 
   147 
   147 
   148 
   148   /* build */
   149   /* build */
   149 
   150 
   150   def build(
   151   def build(