Recursive Building #
This module defines Lake's top-level build monad, FetchM, used
for performing recursive builds. A recursive build is a build function
which can fetch the results of other (recursive) builds. This is done
using the fetch function defined in this module.
Run the action x with pkg? as the current package or no package if none.
Equations
- Lake.withCurrPackage? pkg? x = withReader (fun (x : Option Lake.Package) => pkg?) x
Instances For
Run the action x with pkg as the current package.
Equations
- Lake.withCurrPackage pkg x = Lake.withCurrPackage? (some pkg) x
Instances For
Get the package of the context (if any).
Equations
Instances For
A recursive build of a Lake build store that may encounter a cycle.
An internal monad. Not intended for user use.
Equations
Instances For
Build cycle error message.
Equations
- Lake.buildCycleError cycle = toString "build cycle detected:\n" ++ toString (inline (Lake.formatCycle cycle))
Instances For
Equations
- One or more equations did not get rendered due to their size.
A recursive build of a Lake build store that may encounter a cycle.
An internal monad. Not intended for user use.
Equations
Instances For
Run a recursive build.
Equations
- Lake.RecBuildT.run stack store build = (build none stack).run store
Instances For
Run a recursive build in a fresh build store.
Equations
- build.run' = (fun (x : α × Lake.BuildStore) => x.fst) <$> Lake.RecBuildT.run ∅ ∅ build
Instances For
A build function for any element of the Lake build index.
Equations
- Lake.IndexBuildFn m = ((info : Lake.BuildInfo) → m (Lake.Job (Lake.BuildData info.key)))
Instances For
A transformer to equip a monad with a build function for the Lake index.
Equations
Instances For
The top-level monad transformer for Lake build functions.
Equations
Instances For
The top-level monad for Lake build functions.
Equations
Instances For
Construct a FetchM monad from its full functional representation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Convert a FetchM monad to its full functional representation.
Equations
- self.toFn fetch pkg? stack store ctx log = Lake.ELogT.run (Lake.EquipT.run self fetch pkg? stack store ctx) log
Instances For
Fetch the result associated with the info using the Lake build index.
Equations
- self.fetch = Lake.EquipT.mk fun (build : Lake.IndexBuildFn Lake.RecBuildM) => cast ⋯ (build self)
Instances For
Fetch the result of this facet of a module.
Equations
- self.fetch mod = (Lake.Module.facetCore self.name mod).fetch