Commit graph

757 commits

Author SHA1 Message Date
Leonardo de Moura
0b585d6f3d fix: bug at Compiler/Check.lean 2022-08-12 13:59:56 -07:00
Leonardo de Moura
37057fdd31 feat: eagerly inline simple join points 2022-08-12 11:15:12 -07:00
Leonardo de Moura
84d9c6ed8b fix: bug at TerminalCases.lean 2022-08-12 10:59:15 -07:00
Leonardo de Moura
cfbefd993b fix: lambdaBoundedTelescope at Compiler/Check.lean 2022-08-12 10:20:54 -07:00
Leonardo de Moura
104196e599 feat: add profileitM to compiler new entry point 2022-08-11 19:04:33 -07:00
Leonardo de Moura
e04453a89e chore: improve getMaxLetVarIdx 2022-08-11 19:01:41 -07:00
Leonardo de Moura
6d5272a404 fix: new compiler type checker 2022-08-11 18:57:06 -07:00
Leonardo de Moura
2eab711308 chore: add trace.Compiler.step 2022-08-11 18:40:13 -07:00
Leonardo de Moura
77735e62f5 chore: remove leftovers 2022-08-11 18:40:13 -07:00
Leonardo de Moura
623e0e9af9 feat: TerminalCases for new LCNF 2022-08-11 18:40:13 -07:00
Leonardo de Moura
073e72181d fix: bug at Compiler.inferType
Check whether declaration type mismatch at `Compiler.Decl.check`
2022-08-11 18:40:13 -07:00
Leonardo de Moura
5dbb907b56 feat: new toLCNF 2022-08-11 18:40:13 -07:00
Leonardo de Moura
6a67c13044 feat: generalize helper functions 2022-08-11 18:40:13 -07:00
Leonardo de Moura
4361eef907 fix: improve compatibleTypes and Compiler.check 2022-08-11 18:40:13 -07:00
Leonardo de Moura
3d79581f6b feat: basic LCNF conversion 2022-08-11 18:40:13 -07:00
Leonardo de Moura
e67a43ab01 refactor: disable old LCNF and TerminalCases
TODO: finish porting them to the new format.
2022-08-10 20:25:59 -07:00
Leonardo de Moura
66eb47d21a feat: type checker for LCNF 2022-08-10 20:22:38 -07:00
Leonardo de Moura
d61b8fc68d test: for LCNF types 2022-08-10 11:07:13 -07:00
Leonardo de Moura
646b2d3b83 feat: add Lean.Compiler.compatibleTypes 2022-08-10 10:30:24 -07:00
Leonardo de Moura
18ccc01cf1 feat: add inferType for LCNF 2022-08-09 17:33:24 -07:00
Leonardo de Moura
9e00cbd6d8 feat: add LCNFTypes.lean 2022-08-09 15:47:58 -07:00
Leonardo de Moura
3c6c395e44 feat: add TerminalCases.lean 2022-08-07 22:05:19 -07:00
Leonardo de Moura
7359f95088 refactor: treat casesOn and matcher applications uniformly 2022-08-07 18:04:38 -07:00
Leonardo de Moura
c16bec6e30 refactor: move auxiliary let declaration support to CompilerM.lean 2022-08-07 17:27:40 -07:00
Leonardo de Moura
ee70805c35 feat: add LCNF missing cases 2022-08-06 20:23:29 -07:00
Leonardo de Moura
c5b5a1c6f9 chore: generate auxiliary variable names manually at LCNF.lean 2022-08-06 20:20:50 -07:00
Leonardo de Moura
bf59ad0efc feat: add new compiler entry point function 2022-08-06 08:05:07 -07:00
Leonardo de Moura
9a16d4afce feat: add CompilerM.lean and LCNF.lean 2022-08-05 21:14:39 -07:00
Mario Carneiro
603b7486e3 feat: add go-to-def for simple attributes 2022-07-31 16:36:54 +02:00
Leonardo de Moura
3896244c55 chore: cleanup 2022-07-25 22:39:56 -07:00
Leonardo de Moura
f19b122ab1 feat: add support for "jump-to-definition" at [implementedBy] attribute
see #1350
2022-07-25 12:06:55 -07:00
Leonardo de Moura
f1f5a4b39e chore: naming convention 2022-07-24 17:44:29 -07:00
Leonardo de Moura
8de798c4a6 feat: reject [macroInline] declarations in recursive declarations
closes #1363
2022-07-24 07:26:35 -07:00
Mario Carneiro
f6211b1a74
chore: convert doc/mod comments from /- to /--//-! (#1354) 2022-07-22 12:05:31 -07:00
Gabriel Ebner
a8cab84735 refactor: use computed fields for Expr 2022-07-11 14:19:41 -07:00
Gabriel Ebner
eba400543d refactor: use computed fields for Name 2022-07-11 14:19:41 -07:00
Gabriel Ebner
b48061ed23 feat: expose lower level compile function 2022-07-11 12:26:53 -07:00
Leonardo de Moura
e4b358a01e refactor: prepare to elaborate a[i] notation using typeclasses 2022-07-09 15:24:22 -07:00
Leonardo de Moura
2ebcf29cde chore: use a[i]! for array accesses that may panic 2022-07-02 15:12:05 -07:00
Leonardo de Moura
f6d1e48cb8 fix: constant => opaque issues 2022-06-14 17:19:54 -07:00
Leonardo de Moura
02c4e548df feat: replace constant with opaque 2022-06-14 17:02:59 -07:00
Leonardo de Moura
77ae79be46 chore: use let/if in do blocks 2022-06-13 17:10:14 -07:00
Leonardo de Moura
041827bed5 chore: unused variables 2022-06-07 17:54:10 -07:00
Sebastian Ullrich
f9e2a65f75 chore: further cleanup
Co-authored-by: Gabriel Ebner <gebner@gebner.org>
2022-06-07 16:37:45 -07:00
Sebastian Ullrich
8eefbf5227 chore: further clean up refactored code 2022-06-07 16:37:45 -07:00
Sebastian Ullrich
fb2a2b3de2 fix: fixup previous commit 2022-06-07 16:37:45 -07:00
Sebastian Ullrich
ae7b895f7a refactor: unname some unused variables 2022-06-07 16:37:45 -07:00
Leonardo de Moura
0631c90794 feat: implement MonadLog at CoreM 2022-05-31 17:40:55 -07:00
Sebastian Ullrich
eb170d1f43 fix: compiled string literals containing null bytes 2022-05-17 09:24:34 -07:00
Leonardo de Moura
c65537aea5 feat: Option is a Monad again
TODO: remove `OptionM` after update stage0

see: https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Do.20we.20still.20need.20OptionM.3F/near/279761084
2022-05-04 15:27:42 -07:00