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
- One or more equations did not get rendered due to their size.
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
Equations
- Lake.instInhabitedBundledJob = { default := Lake.BundledJob.mk default }
Equations
- Lake.instCoeOutJobBundledJob = { coe := Lake.BundledJob.mk }
Equations
- Lake.OpaqueJob.instCoeBundledJob = { coe := Lake.OpaqueJob.mk }
Equations
- Lake.OpaqueJob.unsafeMk = unsafeCast
Instances For
Equations
- Lake.OpaqueJob.instInhabitedOfBundledJob = { default := Lake.OpaqueJob.mk default }
Equations
Equations
- Lake.OpaqueJob.unsafeGet = unsafeCast
Instances For
Equations
- Lake.instCoeDepOpaqueJobJobType = { coe := job.toJob }
Equations
- Lake.Job.ofTask task caption = { task := task, caption := caption }
Instances For
Equations
- Lake.Job.error log caption = { task := { get := Lake.EResult.error 0 { log := log, action := Lake.JobAction.unknown } }, caption := caption }
Instances For
Equations
- Lake.Job.pure a log caption = { task := { get := Lake.EResult.ok a { log := log, action := Lake.JobAction.unknown } }, caption := caption }
Instances For
Equations
- Lake.Job.instPure = { pure := fun {α : Type u_1} (a : α) => Lake.Job.pure a ∅ }
Sets the job's caption.
Equations
- Lake.Job.setCaption caption job = { task := job.task, caption := caption }
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 } else job
Instances For
Equations
- Lake.Job.mapResult f self prio sync = { task := Task.map f self.task prio sync, caption := self.caption }
Instances For
Equations
- Lake.Job.bindTask f self = do let __do_lift ← f self.task pure { task := __do_lift, caption := self.caption }
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_1} => 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_1} => Lake.BuildJob.map, mapConst := fun {α β : Type u_1} => 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 Task.Priority.default)
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 0)