Henrik
35aa2c91a2
feat: LLVM backend: implement the equivalent of -fstack-clash-protection
2023-08-15 14:45:58 +02:00
Siddharth Bhat
0054f6bfac
feat: link 'llvm.h.bc' and then set linkage to internal
...
This obviates the need to play weak linkage games when
we build `lean.h.bc` from `lean.h`. We perform the following steps:
1. We remove the `static` modifier from all definitions in `lean.h`.
This makes all definitions have `extern` linkage. Thus, when we build
a `lean.h.bc` using `clang`, we will actually get definitions
(instead of an empty file)
2. We build `lean.h.bc` from `lean.h` using `clang`.
3. When it comes time to link, we link
`current_module.bc := LLVMLinkModules2(current_module.bc, lean.h.bc)`.
4. We loop over every symbol that arrived from `lean.h.bc`
in `current_module.bc` and we then set this symbol to have
`internal` linkage. This simulates the effect of
`#include <lean.h>` where every definition in `lean.h`
has internal linkage.
This yajna, one hopes, pleases the linker gods.
2023-08-14 13:33:46 +02:00
Scott Morrison
61fea57e73
feat: add failIfUnchanged flag to simp
2023-08-13 09:49:25 -07:00
Tobias Grosser
736a21cd5a
chore: remove trailing whitespaces in EmitLLVM
...
For some reason, these two were missed in the last commit.
2023-08-13 16:18:23 +02:00
Tobias Grosser
a0c0c486fd
chore: remove trailing whitespace in EmitLLVM
...
This patch should not result in any functional changes, but
will reduce the diff of an upcoming PR.
2023-08-13 11:07:14 +02:00
Siddharth Bhat
0eddc167b9
feat: LLVM linkage bindings
2023-08-12 16:51:58 +02:00
Sebastian Ullrich
ff45efe3fa
doc: one more enableInitializersExecution remark
2023-08-11 11:45:58 -07:00
Eric Wieser
1f3ef28a1d
fix: correct universe polymorphism in Lean.instFromJsonProd
...
The previous type was
```
Lean.instFromJsonProd.{u, v} {α β : Type (max u v)} [FromJson α] [FromJson β] :
FromJson (α × β)
```
where universe metavariable assignment assigned the wrong universe to both types!
2023-08-06 07:32:30 -07:00
Scott Morrison
ca4d824d75
chore: correct doc-string for elabTerm
2023-08-03 06:52:08 -07:00
Siddharth
b9ec36d089
chore: get rid of all inline C annotations for LLVM ( #2363 )
2023-07-30 10:39:40 +02:00
Sebastian Ullrich
2eaa400b8e
fix: do not unnecessarily wait on additional snapshot in server request handlers ( #2370 )
...
Co-authored-by: Wojciech Nawrocki <wjnawrocki+gh@protonmail.com>
2023-07-30 05:58:46 +00:00
Sebastian Ullrich
8fc1af650a
fix: symmetry in orelse antiquotation parsing
2023-07-28 08:36:33 -07:00
Sebastian Ullrich
eceac9f12a
perf: avoid syntax stack copy at orelseFn
2023-07-28 08:36:33 -07:00
Scott Morrison
b3fa4fd053
chore: revert #2317
2023-07-28 08:33:49 -07:00
Wojciech Nawrocki
74e0f09009
fix: handle error in withTraceNode message action ( #2364 )
...
* fix: handle error in withTrace message action
* Update src/Lean/Util/Trace.lean
Co-authored-by: Gabriel Ebner <gebner@gebner.org>
* Update Trace.lean
---------
Co-authored-by: Gabriel Ebner <gebner@gebner.org>
2023-07-28 08:01:13 -07:00
Sebastian Ullrich
aeb60764c1
feat: auto-complete declaration names in arbitrary namespaces
2023-07-28 07:50:09 -07:00
Sebastian Ullrich
687f50ab33
fix: never show private names in completion
2023-07-28 07:50:09 -07:00
Sebastian Ullrich
b15d6d41b8
fix: missing mkCIdents in Lean.Elab.Deriving.Util
2023-07-28 07:48:34 -07:00
Siddharth Bhat
073c8fed86
feat: LLVM backend: support for visibility Style & DLL storage
...
Changes peeled from:
https://github.com/leanprover/lean4/pull/2340
to allow a `stage0` bump on master before merging in the
changes that allow LLVM to build in stage1+.
2023-07-25 11:03:16 +02:00
Alex J Best
808bb9b579
perf: dont repeatedly elab term in rw at multiple locations #2317
2023-07-24 08:47:52 -07:00
Jannis Limperg
6407197e54
chore: better error message for loose bvar in whnf
2023-07-20 13:47:20 -07:00
Wojciech Nawrocki
e1b3f10250
doc: fix contradictory docstring
2023-07-19 10:53:47 +02:00
Leonardo de Moura
634193328b
fix: fixes #2327
2023-07-18 07:18:27 -07:00
Leonardo de Moura
212cd9c3e6
fix: fixes #2321
2023-07-13 14:41:32 -07:00
Scott Morrison
0d5c5e0191
feat: relax test in checkLocalInstanceParameters to allow instance implicits
2023-07-13 10:54:06 -07:00
Leonardo de Moura
6d857a93b5
perf: pointer set for traversing DAGs
2023-07-11 19:19:42 -07:00
Mario Carneiro
76023a7c6f
fix: don't run [builtin_init] when builtin = false
2023-07-10 08:58:02 -07:00
Sebastian Ullrich
c268d7e97b
fix: kill descendant processes on worker exit
2023-07-05 23:42:53 +02:00
Mario Carneiro
f1b2a8acce
fix: lazy_binop + coercion bug
...
fixes #2300
2023-07-01 06:05:25 -07:00
Leonardo de Moura
94d4a427e2
fix: fixes #2115
2023-06-30 19:54:38 -07:00
Leonardo de Moura
a002ce6d0d
fix: fixes #2077
2023-06-30 19:26:00 -07:00
Leonardo de Moura
ec42581d1f
perf: use Core.transform instead of Meta.transform at betaReduceLetRecApps
...
Observed big performance improvement on files containing big proofs
generated using tactics.
2023-06-28 12:29:12 -07:00
Leonardo de Moura
eece499da9
fix: fixes #2282
2023-06-27 16:46:38 -07:00
Sebastian Ullrich
f0583c3fd6
feat: trace nodes for SizeOf and injectivity theorem generation
2023-06-27 16:17:46 -07:00
Wojciech Nawrocki
ba4bfe26f2
fix: add missing instantiateMVars
2023-06-27 16:13:56 -07:00
Sebastian Ullrich
e1999ada7f
fix: make "elaboration" metric work in language server
2023-06-27 15:56:34 +01:00
Leonardo de Moura
4036be4f50
fix: add missing check at IR checker
2023-06-23 08:43:39 -07:00
Mario Carneiro
123c1ff7f0
fix: basic ident fallback in identComponents
2023-06-22 09:50:24 +01:00
Mario Carneiro
e0893b70e5
fix: incorrect type for SpecInfo.argKinds
2023-06-21 22:50:29 -07:00
Leonardo de Moura
425f42cd83
feat: better support for Nat literals at DiscrTree.lean
2023-06-21 22:30:09 -07:00
Leonardo de Moura
bebf1927f8
chore: remove workarounds
2023-06-21 20:35:33 -07:00
Leonardo de Moura
184f2ed597
chore: improve isNonTrivialProof
2023-06-21 20:28:17 -07:00
Leonardo de Moura
7367f2edc6
fix: unfold constant theorems when transparency is set to .all
2023-06-21 20:28:17 -07:00
Leonardo de Moura
9df2f6b0c9
fix: bump transparency to .all when reducing the major premise of Acc.rec and WellFounded.rec
2023-06-21 20:28:17 -07:00
Leonardo de Moura
2b8e55c2f1
fix: Nat literal bug at DiscrTree.lean
2023-06-21 20:28:17 -07:00
Leonardo de Moura
d6695a7a2e
fix: use mkAuxTheoremFor when creating helper proof_n theorems
2023-06-21 20:28:17 -07:00
Scott Morrison
a44dd71ad6
feat: add flag for apply to defer failed typeclass syntheses as goals
2023-06-19 20:07:07 -07:00
Scott Morrison
82196b5b94
feat: allow upper case single character identifiers when relaxedAutoImplicit false ( #2277 )
...
* feat: allow upper case single character identifiers when relaxedAutoImplicit false
* update tests
* fix tests
* fix another test
---------
Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au>
2023-06-19 20:04:09 -07:00
Mario Carneiro
2348fb37d3
fix: use Lean.initializing instead of IO.initializing
2023-06-17 06:57:14 -07:00
Mario Carneiro
e64a2e1a12
fix: misleading indentation
2023-06-17 06:56:53 -07:00