leanprover / leanprover/lean4

Lake build cycle errors are not human-readable

Open
#3,350 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

bug Lake P-medium
Dominant language
Lean
Stars
9.2k
Forks
990
Avg merge
1d 17h
Merged PRs (30d)
175

Description

A typical lake build cycle error looks like:

% lake build            
error: build cycle detected:
  +Std.Lean.Meta.BoolExpr:lean.precompileImports
  +Std:lean.precompileImports
  +Std.Lean.Meta.BoolExpr:deps
  +Std.Lean.Meta.BoolExpr:leanArts
  std/Std:leanLib.leanArts
  +Std.Lean.Meta.BoolExpr:lean.precompileImports

This includes Lake internals that a user shouldn't see. The output should be a list of files, like A.lean ▸ B.lean ▸ C.lean ▸ A.lean, and there should not be any mention of build steps like precompileImports, deps, leanArts, etc.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the example with lake build and trace how the build-cycle error is assembled. Done means the report presents a readable file cycle such as A.lean ▸ B.lean ▸ C.lean ▸ A.lean without internal steps such as precompileImports, deps, or leanArts.

Written by the indexing model from the issue text.

Assessment

Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.