Information on what this job did.
- unknown: Lake.JobAction
No information about this job's action is available.
- replay: Lake.JobAction
Tried to replay a cached build action (set by
buildFileUnlessUpToDate
) - fetch: Lake.JobAction
Tried to fetch a build from a store (can be set by
buildUnlessUpToDate?
) - build: Lake.JobAction
Tried to perform a build action (set by
buildUnlessUpToDate?
)
Instances For
Equations
- Lake.instInhabitedJobAction = { default := Lake.JobAction.unknown }
Equations
- Lake.instReprJobAction = { reprPrec := Lake.reprJobAction✝ }
Equations
- Lake.instDecidableEqJobAction x y = if h : x.toCtorIdx = y.toCtorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Lake.instOrdJobAction = { compare := Lake.ordJobAction✝ }
Instances For
Equations
- Lake.JobAction.verb failed Lake.JobAction.unknown = if failed = true then "Running" else "Ran"
- Lake.JobAction.verb failed Lake.JobAction.replay = if failed = true then "Replaying" else "Replayed"
- Lake.JobAction.verb failed Lake.JobAction.fetch = if failed = true then "Fetching" else "Fetched"
- Lake.JobAction.verb failed Lake.JobAction.build = if failed = true then "Building" else "Built"
Instances For
Mutable state of a Lake job.
- log : Lake.Log
The job's log.
- action : Lake.JobAction
Tracks whether this job performed any significant build action.
Instances For
Equations
- Lake.instInhabitedJobState = { default := { log := default, action := default } }
Resets the job state after a checkpoint (e.g., registering the job). Preserves state that downstream jobs want to depend on while resetting job-local state that should not be inherited by downstream jobs.
Equations
- x.renew = { log := ∅, action := Lake.JobAction.unknown }
Instances For
Instances For
Equations
- Lake.JobState.modifyLog f s = { log := f s.log, action := s.action }
Instances For
The result of a Lake job.
Equations
Instances For
The monad of asynchronous Lake jobs.
While this can be lifted into FetchM
, job action should generally
be wrapped into an asynchronous job (e.g., via Job.async
) instead of being
run directly in FetchM
.
Equations
Instances For
Equations
- Lake.instMonadLiftLakeMBuildTOfPure = { monadLift := fun {α : Type} (x : Lake.LakeM α) (ctx : Lake.BuildContext) => pure (Lake.LakeM.run ctx.toContext x) }
Equations
- One or more equations did not get rendered due to their size.
Equations
- Lake.instMonadStateOfJobStateJobM = inferInstance
Equations
- Lake.instMonadLogJobM = Lake.MonadLog.ofMonadState
Equations
- Lake.instMonadErrorJobM = Lake.ELog.monadError
Equations
- Lake.instAlternativeJobM = Lake.ELog.alternative
Equations
- Lake.instMonadLiftLogIOJobM = { monadLift := fun {α : Type} => Lake.ELogT.takeAndRun }
Record that this job is trying to perform some action.
Equations
- Lake.updateAction action = modify fun (s : Lake.JobState) => { log := s.log, action := s.action.merge action }
Instances For
The monad used to spawn asynchronous Lake build jobs. Lifts into FetchM
.
Equations
Instances For
The monad used to spawn asynchronous Lake build jobs. Replaced by SpawnM
.
Equations
Instances For
- Result : Type u
- task : Lake.JobTask self.Result
Instances For
Equations
- Lake.instInhabitedBundledJobTask = { default := Lake.BundledJobTask.mk default }
Equations
- Lake.instCoeOutJobTaskBundledJobTask = { coe := Lake.BundledJobTask.mk }
Instances For
Equations
- Lake.OpaqueJobTask.instInhabitedOfBundledJobTask = { default := Lake.OpaqueJobTask.mk default }
Equations
- Lake.OpaqueJob.ofJob job = { task := Lake.OpaqueJobTask.mk (Lake.BundledJobTask.mk job.task), caption := job.caption, optional := job.optional }
Instances For
Equations
- Lake.instCoeOutJobOpaqueJob = { coe := Lake.OpaqueJob.ofJob }
Equations
- job.toJob = { task := job.task, caption := job.caption, optional := job.optional }
Instances For
Equations
- Lake.instCoeDepOpaqueJobJobResult = { coe := job.toJob }
Equations
- Lake.Job.ofTask task caption = { task := task, caption := caption, optional := false }
Instances For
Equations
- Lake.Job.error log caption = { task := { get := Lake.EResult.error 0 { log := log, action := Lake.JobAction.unknown } }, caption := caption, optional := false }
Instances For
Equations
- Lake.Job.pure a log caption = { task := { get := Lake.EResult.ok a { log := log, action := Lake.JobAction.unknown } }, caption := caption, optional := false }
Instances For
Equations
- Lake.Job.instPure = { pure := fun {α : Type ?u.6} (a : α) => Lake.Job.pure a }
Sets the job's caption.
Equations
- Lake.Job.setCaption caption job = { task := job.task, caption := caption, optional := job.optional }
Instances For
Sets the job's caption if the job's current caption is empty.
Equations
- Lake.Job.setCaption? caption job = if job.caption.isEmpty = true then { task := job.task, caption := caption, optional := job.optional } else job
Instances For
Equations
- Lake.Job.mapResult f self prio sync = { task := Task.map f self.task prio sync, caption := self.caption, optional := self.optional }
Instances For
Equations
- Lake.Job.bindTask f self = do let __do_lift ← f self.task pure { task := __do_lift, caption := self.caption, optional := self.optional }
Instances For
Equations
- Lake.Job.map f self prio sync = Lake.Job.mapResult (fun (x : Lake.JobResult α) => Lake.EResult.map f x) self prio sync
Instances For
Equations
- One or more equations did not get rendered due to their size.
Resets the job's state after a checkpoint (e.g., registering the job). Preserves information that downstream jobs want to depend on while resetting job-local information that should not be inherited by downstream jobs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Spawn a job that asynchronously performs act
.
Equations
- Lake.Job.async act prio ctx = (fun (task : Lake.JobTask α) => Lake.Job.ofTask task) <$> (Lake.withLoggedIO act ctx { log := ∅, action := Lake.JobAction.unknown }).asTask prio
Instances For
Wait a the job to complete and return the result.
Instances For
Wait for a job to complete and return the produced value.
If an error occurred, return none
and discarded any logs produced.
Equations
- self.wait? = do let __do_lift ← self.wait pure (Lake.EResult.result? __do_lift)
Instances For
Wait for a job to complete and return the produced value. Logs the job's log and throws if there was an error.
Equations
- One or more equations did not get rendered due to their size.
Instances For
let c ← a.bindSync b
asynchronously performs the action b
after the job a
completes.
Equations
- One or more equations did not get rendered due to their size.
Instances For
let c ← a.bindAsync b
asynchronously performs the action b
after the job a
completes and then merges into the job produced by b
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
a.zipWith f b
produces a new job c
that applies f
to the
results of a
and b
. The job c
errors if either a
or b
error.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A Lake build job.
Equations
- Lake.BuildJob α = Lake.Job (α × Lake.BuildTrace)
Instances For
Equations
- Lake.BuildJob.ofJob self = Lake.BuildJob.mk ((fun (x : Lake.BuildTrace) => ((), x)) <$> self)
Instances For
Equations
- Lake.BuildJob.instPure = { pure := fun {α : Type ?u.5} => Lake.BuildJob.pure }
Equations
- Lake.BuildJob.map f self = Lake.BuildJob.mk ((fun (x : α × Lake.BuildTrace) => match x with | (a, t) => (f a, t)) <$> self.toJob)
Instances For
Equations
- Lake.BuildJob.instFunctor = { map := fun {α β : Type ?u.10} => Lake.BuildJob.map, mapConst := fun {α β : Type ?u.10} => Lake.BuildJob.map ∘ Function.const β }
Equations
- Lake.BuildJob.mapWithTrace f self = Lake.BuildJob.mk ((fun (x : α × Lake.BuildTrace) => match x with | (a, t) => f a t) <$> self.toJob)
Instances For
Equations
- self.bindSync f prio sync = self.toJob.bindSync (fun (x : α × Lake.BuildTrace) => match x with | (a, t) => f a t) prio sync
Instances For
Equations
- self.bindAsync f prio sync = self.toJob.bindAsync (fun (x : α × Lake.BuildTrace) => match x with | (a, t) => f a t) prio sync
Instances For
Equations
- self.wait? = (fun (x : Option (α × Lake.BuildTrace)) => Option.map (fun (x : α × Lake.BuildTrace) => x.fst) x) <$> self.toJob.wait?
Instances For
Equations
- t1.add t2 = Lake.BuildJob.mk (Lake.Job.zipWith (fun (a : α × Lake.BuildTrace) (x : β × Lake.BuildTrace) => a) t1.toJob t2.toJob)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lake.BuildJob.collectList jobs = pure (List.foldr (Lake.BuildJob.zipWith List.cons) (pure []) jobs)
Instances For
Equations
- Lake.BuildJob.collectArray jobs = pure (Array.foldl (Lake.BuildJob.zipWith Array.push) (pure #[]) jobs)