Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: split Lean.Kernel.Environment from Lean.Environment #5145

Open
wants to merge 3 commits into
base: kernel-env-base
Choose a base branch
from

Conversation

Kha
Copy link
Member

@Kha Kha commented Aug 23, 2024

This PR clarifies Lean's Trusted Code Base (TCB) by splitting the data used by the kernel from the data used by general elaboration and code generation, and in the future asynchronously elaborated declarations.

  • kernel diagnostics are moved from an environment extension to a direct environment as they are the only extension used by the kernel
  • initQuot is moved from an environment header field to a direct environment as it is the only header field used by the kernel; this also makes the remaining header immutable after import
  • the status of native reduction as a TCB extension is made explicit in the code by moving it into an optional callback the kernel uses to call into the richer environment with access to the interpreter. This would also allow us to correctly forward Options to the interpreter such as preferNative (not implemented yet).

@tobiasgrosser
Copy link
Contributor

Hi @Kha, this sounds exciting. I don't understand the appreciation (TCB); spelling it out may help others here. Most importantly, let me not distract you from your mission towards more parallelism in the lean compilation. It is exciting to see progress here.

@tobiasgrosser
Copy link
Contributor

I got it. TCB = Trusted Code Base

@github-actions github-actions bot added the toolchain-available A toolchain is available for this PR, at leanprover/lean4-pr-releases:pr-release-NNNN label Aug 26, 2024
leanprover-community-mathlib4-bot added a commit to leanprover-community/batteries that referenced this pull request Aug 26, 2024
leanprover-community-mathlib4-bot added a commit to leanprover-community/batteries that referenced this pull request Aug 27, 2024
@Kha Kha marked this pull request as ready for review August 27, 2024 11:32
@Kha Kha force-pushed the kernel-env branch 2 times, most recently from 4aebbe2 to 4ba7bdc Compare November 8, 2024 15:41
@Kha Kha requested a review from tydeu as a code owner November 8, 2024 15:41
@Kha
Copy link
Member Author

Kha commented Nov 8, 2024

!bench

@Kha Kha added the changelog-language Language features, tactics, and metaprograms label Nov 8, 2024
@leanprover-bot
Copy link
Collaborator

Here are the benchmark results for commit 4ba7bdc.
There were significant changes against commit c779f3a:

  Benchmark             Metric          Change
  =====================================================
- big_omega.lean MT     task-clock       13.7% (12.0 σ)
- big_omega.lean MT     wall-clock       13.7% (12.4 σ)
- bv_decide_mul         branch-misses     2.0% (12.3 σ)
- bv_decide_realworld   branch-misses     1.2% (31.5 σ)
- rbmap_fbip            task-clock        4.1% (18.2 σ)
- rbmap_fbip            wall-clock        4.1% (18.2 σ)

leanprover-community-mathlib4-bot added a commit to leanprover-community/batteries that referenced this pull request Nov 8, 2024
leanprover-community-mathlib4-bot added a commit to leanprover-community/mathlib4 that referenced this pull request Nov 8, 2024
@leanprover-community-bot leanprover-community-bot added the breaks-mathlib This is not necessarily a blocker for merging: but there needs to be a plan label Nov 8, 2024
src/Lean/Message.lean Outdated Show resolved Hide resolved
@leodemoura
Copy link
Member

@Kha This PR has update stage0 commits. So, squash should not be used, and the commit messages should be fixed.

@Kha Kha changed the base branch from master to nightly-with-mathlib November 19, 2024 16:05
leanprover-community-mathlib4-bot added a commit to leanprover-community/mathlib4 that referenced this pull request Nov 19, 2024
@leanprover-community-bot
Copy link
Collaborator

leanprover-community-bot commented Nov 19, 2024

Mathlib CI status (docs):

@leanprover-bot
Copy link
Collaborator

Here are the benchmark results for commit e0353ed.
There were significant changes against commit 4600bb1:

  Benchmark       Metric          Change
  ===============================================
- bv_decide_mul   branch-misses     1.0% (13.8 σ)

leanprover-community-mathlib4-bot added a commit to leanprover-community/batteries that referenced this pull request Nov 19, 2024
leanprover-community-mathlib4-bot added a commit to leanprover-community/mathlib4 that referenced this pull request Nov 19, 2024
leanprover-community-mathlib4-bot added a commit to leanprover-community/batteries that referenced this pull request Nov 20, 2024
leanprover-community-mathlib4-bot added a commit to leanprover-community/mathlib4 that referenced this pull request Nov 20, 2024
leanprover-community-mathlib4-bot added a commit to leanprover-community/batteries that referenced this pull request Nov 20, 2024
leanprover-community-mathlib4-bot added a commit to leanprover-community/mathlib4 that referenced this pull request Nov 20, 2024
leanprover-community-mathlib4-bot added a commit to leanprover-community/batteries that referenced this pull request Nov 20, 2024
leanprover-community-mathlib4-bot added a commit to leanprover-community/mathlib4 that referenced this pull request Nov 20, 2024
leanprover-community-mathlib4-bot added a commit to leanprover-community/batteries that referenced this pull request Nov 20, 2024
leanprover-community-mathlib4-bot added a commit to leanprover-community/mathlib4 that referenced this pull request Nov 20, 2024
@leanprover-community-bot leanprover-community-bot added builds-mathlib CI has verified that Mathlib builds against this PR and removed breaks-mathlib This is not necessarily a blocker for merging: but there needs to be a plan labels Nov 20, 2024
leanprover-community-mathlib4-bot added a commit to leanprover-community/batteries that referenced this pull request Nov 20, 2024
leanprover-community-mathlib4-bot added a commit to leanprover-community/mathlib4 that referenced this pull request Nov 20, 2024
@Kha Kha changed the base branch from nightly-with-mathlib to kernel-env-base November 25, 2024 13:17
leanprover-community-mathlib4-bot added a commit to leanprover-community/batteries that referenced this pull request Nov 25, 2024
leanprover-community-mathlib4-bot added a commit to leanprover-community/mathlib4 that referenced this pull request Nov 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
builds-mathlib CI has verified that Mathlib builds against this PR changelog-language Language features, tactics, and metaprograms toolchain-available A toolchain is available for this PR, at leanprover/lean4-pr-releases:pr-release-NNNN
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants