lean4-htt/src
Cameron Zwarich 2e627d3692 feat: move constructor layout to Lean and add a few optimizations
This PR moves the constructor layout code from C++ to Lean. When
writing the new compiler, we just reused the existing C++ code,
even though it was a bit inconvenient, because we wanted to
ensure that constructor layout always matched the existing
compiler.

This fixes #2589 by handling struct field types just like any
other type being lowered, and thus applying the trivial structure
optimization in the process. Originally, I wanted to port the
code to Lean without any functional changes, but I found that
it took less code to just implement it "correctly" and get this
fix as a consequence than to emulate the bugs of the existing
C++ implementation.
2025-06-30 15:39:58 +02:00
..
bin feat: API to avoid deadlocks from dropped promises (#6958) 2025-02-07 15:33:10 +00:00
cmake chore: fix spelling mistakes (#7328) 2025-04-07 01:15:48 +00:00
include/lean perf: inline lean_inc_ref_cold (#4978) 2025-06-27 15:58:00 +00:00
Init refactor: module-ize Std.Classes (#9079) 2025-06-30 09:45:24 +00:00
initialize
kernel feat: add the nondep field of Expr.letE to the C++ data model (#8751) 2025-06-14 23:10:27 +00:00
lake refactor: lake: fix local artifact cache bugs, opt-in, & related cleanup (#9068) 2025-06-30 01:02:55 +00:00
Lean feat: move constructor layout to Lean and add a few optimizations 2025-06-30 15:39:58 +02:00
library perf: do not import non-meta IR 2025-06-27 08:13:31 -07:00
runtime feat: add system information functions to the standard library (#8109) 2025-06-27 16:31:34 +00:00
shell fix: lake: import-related bugs (#8026) 2025-04-19 21:02:38 +00:00
Std refactor: module-ize Std.Classes (#9079) 2025-06-30 09:45:24 +00:00
util feat: ignore lean -R if module name is in setup (#8874) 2025-06-23 17:55:52 +00:00
cadical.mk fix: cadical distribution on Linux (#8201) 2025-05-02 18:25:16 +00:00
CMakeLists.txt chore: remove old LEAN_AUTO_THREAD_FINALIZATION workaround (#8885) 2025-06-20 08:52:17 +00:00
config.h.in perf: use mimalloc by default (#7710) 2025-03-30 22:40:41 +00:00
githash.h.in
Init.lean chore: module-ize Init.lean 2025-06-29 16:52:13 +02:00
lakefile.toml.in chore: allow use of the module system in all of core (#9078) 2025-06-29 13:49:27 +00:00
lean-toolchain
Lean.lean feat: add initial error explanations (#8934) 2025-06-23 17:24:09 +00:00
lean.mk.in chore: USE_LAKE: integrate into CMake (#4466) 2025-03-15 08:58:01 +00:00
Leanc.lean
Std.lean feat: Upstream MPL.SPred.* from mpl (#8928) 2025-06-26 11:15:11 +00:00
stdlib.make.in chore: fix LEAN_PATH for building stage2+ Leanc.lean (#8705) 2025-06-10 17:11:23 +00:00
stdlib_flags.h chore: remove old documentation site (#7974) 2025-05-14 14:31:33 +00:00
version.h.in feat: language reference links and examples in docstrings (#7240) 2025-03-12 09:17:27 +00:00