Documentation

Lake.Build.Fetch

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.

@[reducible, inline, deprecated "Deprecated without replacement." (since := "2025-02-22")]
abbrev Lake.CoreBuildM (α : Type) :

The internal core monad of Lake builds. Not intended for user use.

Equations
@[reducible, inline]
abbrev Lake.RecBuildT (m : TypeType) (α : Type) :

A recursive build of a Lake build store that may encounter a cycle.

An internal monad. Not intended for user use.

Equations
Instances For
@[specialize #[]]
def Lake.buildCycleError {m : Type u_1 → Type u_2} {α : Type u_1} [MonadError m] (cycle : Cycle BuildKey) :
m α

Log build cycle and error.

Equations
  • One or more equations did not get rendered due to their size.
@[reducible, inline]
abbrev Lake.RecBuildM (α : Type) :

A recursive build of a Lake build store that may encounter a cycle.

An internal monad. Not intended for user use.

Equations
@[inline]
def Lake.RecBuildT.run {m : TypeType} {α : Type} [Monad m] [MonadLiftT (ST IO.RealWorld) m] (stack : CallStack BuildKey) (store : BuildStore) (build : RecBuildT m α) :

Run a recursive build.

Equations
@[inline]
def Lake.RecBuildT.run' {m : TypeType} {α : Type} [Monad m] [MonadLiftT (ST IO.RealWorld) m] (build : RecBuildT m α) :
BuildT m α

Run a recursive build in a fresh build store.

Equations
@[reducible, inline]
abbrev Lake.IndexBuildFn (m : TypeType v) :

A build function for any element of the Lake build index.

Equations
@[reducible, inline]
abbrev Lake.IndexT (m : TypeType v) (α : Type) :

A transformer to equip a monad with a build function for the Lake index.

Equations
@[reducible, inline]
abbrev Lake.FetchT (m : TypeType) (α : Type) :

The top-level monad transformer for Lake build functions.

Equations
@[reducible, inline]
abbrev Lake.FetchM (α : Type) :

The top-level monad for Lake build functions.

Equations
Instances For
@[inline]
def Lake.BuildInfo.fetch {α : Type} (self : BuildInfo) [FamilyOut BuildData self.key α] :
FetchM (Job α)

Fetch the result associated with the info using the Lake build index.

Equations
def Lake.ModuleFacet.fetch {α : Type} (self : ModuleFacet α) (mod : Module) :
FetchM (Job α)

Fetch the result of this facet of a module.

Equations