Leonardo de Moura
9f2172e65e
feat: use new frontend when option --new-frontend is provided
2020-01-06 14:02:58 -08:00
Leonardo de Moura
3fb3b34762
chore: disable test
2020-01-06 13:42:29 -08:00
Leonardo de Moura
74f48414f1
feat: add option --exitOnPanic (short version -e)
...
Lean does not exit on panic anymore.
The old behavior (`std::exit(1)`) produces a horrible debugging
experience for the elaborator since all trace messages are lost.
The new command line option restores the old behavior.
cc @Kha @dselsam
2019-12-19 09:24:37 -08:00
Sebastian Ullrich
f183ea6fae
chore: reenable test
...
/cc @leodemoura
2019-12-14 12:09:04 +01:00
Leonardo de Moura
6ee5aa5276
chore: disable test
...
@Kha I will try to figure out why it is broken later.
2019-12-13 17:54:40 -08:00
Sebastian Ullrich
0c9f01ac18
fix: truly separate stage2/3 builds by copying all sources
2019-12-11 09:45:01 -08:00
Sebastian Ullrich
5e1fd62ae4
fix: --make without argument should not segfault
2019-12-10 16:37:18 +01:00
Sebastian Ullrich
1d403dffee
chore: bin_lean should build bin_lean_stage0 first
2019-12-09 13:06:21 +01:00
Sebastian Ullrich
6195c31a04
chore: remove stdlib_ tests
2019-12-07 21:51:59 +01:00
Sebastian Ullrich
e98fdc4db6
chore: check-stage3 target for checking (eventually) deterministic bootstrap
2019-12-07 21:02:13 +01:00
Sebastian Ullrich
d5f30ddb83
fix: update-stage0
2019-11-27 05:53:22 -08:00
Sebastian Ullrich
98b83e96cb
chore: do not build bin_lean_stage2 by default
2019-11-27 05:53:22 -08:00
Sebastian Ullrich
682ad9f605
feat: stage 2 and 3 builds
...
While stage 1 is still the main build and the source of `bin/lean`, we now have optional targets
* lean_stage2, lean_stage3: build respective executable in `<build>/shell` from previous stage, compiling the stdlib
from scratch
* bin_lean_stage2: copy `lean_stage2` to `bin/` (stage 3 should always be identical to stage 2)
2019-11-27 05:53:22 -08:00
Sebastian Ullrich
2ad21d0f4c
feat: have --make take an optional .olean filename argument
...
Not documented since it is mostly useful for internal builds of further bootstrap stages
2019-11-27 05:53:22 -08:00
Leonardo de Moura
b21559b338
chore: move Makefile.in
2019-11-22 07:48:04 -08:00
Leonardo de Moura
c445199747
chore: library/Init ==> src/Init
...
cc @Kha @dselsam @cipher1024
2019-11-22 06:06:05 -08:00
Leonardo de Moura
4adacf1413
chore: src/init ==> src/initialize
2019-11-22 04:59:13 -08:00
Sebastian Ullrich
f6973be5e3
refactor: replace C++ import parser with Lean one
...
imports are now completely opaque to C++
2019-11-21 15:52:01 +01:00
Sebastian Ullrich
0571a1c913
chore: use paths instead of indices for stdlib tests
2019-11-20 08:07:28 -08:00
Leonardo de Moura
49f1f0dfe3
chore: apply required change after update-stage0
...
cc @Kha
2019-11-20 08:00:11 -08:00
Sebastian Ullrich
44d5eddf16
chore: remove support for relative imports
2019-11-20 16:39:53 +01:00
Sebastian Ullrich
33ce758126
feat: assume A in --plugin A.so is package name and use it to synthesize initializer symbol name
2019-11-20 16:39:53 +01:00
Sebastian Ullrich
3dcd4febd9
feat: make LEAN_PATH a mapping from package names to root dirs, remove C++ impl
2019-11-20 16:39:53 +01:00
Leonardo de Moura
eb52fbca10
chore: skip stdlib tests on Windows
2019-11-14 17:00:04 -08:00
Leonardo de Moura
bbe44a79f2
feat: add tests for compiling stdlib with stage1
...
@Kha It seems to work. Not sure how robust it is. CMake is still very
mysterious to me :D
It is a partial test since I don't try to compile the files into .c.
I am not touching the compiler right now. So, it should be fine for now.
The command `ctest -j8 -R stdlib` also works.
2019-11-13 20:55:08 -08:00
Sebastian Ullrich
04d5501eb2
chore: use proper nested make calls by hard-coding make as the build system
2019-11-13 08:13:21 -08:00
Sebastian Ullrich
60620360fc
fix: Windows build
2019-11-12 13:07:12 +01:00
Sebastian Ullrich
91b68d8fa4
feat: cleanly separate bootstrap stages
2019-11-11 15:05:25 -08:00
Sebastian Ullrich
3e74159e01
fix: import errors using --json
2019-11-10 09:01:43 -08:00
Sebastian Ullrich
aa557a9d5a
test: trivial linter test
2019-11-09 15:43:37 -08:00
Sebastian Ullrich
da69beac0a
feat: add --plugin for loading shared libraries
2019-11-09 15:41:13 -08:00
Sebastian Ullrich
6912053fcc
chore: always build stage 0 Lean binary, copy it to bin/lean_stage0
2019-10-28 18:11:44 -07:00
Leonardo de Moura
0714716477
fix: file and import names, tests and stage0
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2019-10-04 17:04:02 -07:00
Sebastian Ullrich
3d53aaf5a7
chore(tests/compiler): ignore some tests for the interpreter
2019-09-12 18:26:15 +02:00
Sebastian Ullrich
d5737d0713
test(shell/CMakeLists.txt): add compiler tests as interpreter tests
2019-09-12 18:22:02 +02:00
Sebastian Ullrich
795359ee49
feat(shell/lean): re-add --run flag
2019-09-12 18:22:02 +02:00
Sebastian Ullrich
6f59bec057
fix(shell/CMakeLists.txt): update-stage0 should not try to build the stage1 executable, only its sources
2019-09-12 18:22:02 +02:00
Sebastian Ullrich
7b7f1d2cac
test(tests/bench): add benchmarks as regular ctests with lowered inputs
2019-09-02 10:52:24 +02:00
Sebastian Ullrich
572926f5ce
perf(shell/CMakeLists.txt, tests/): define NDEBUG in leanc release builds
...
`assert` is now being used by the C runtime
2019-08-27 16:54:29 +02:00
Leonardo de Moura
f697381410
feat(shell/lean.cpp): use C backend for --cpp option
2019-08-24 07:40:56 -07:00
Leonardo de Moura
6d6cb14f9e
feat(library/init/lean/compiler/ir/emitc,shell/lean): add --c=<filename> option
2019-08-20 10:13:40 -07:00
Leonardo de Moura
b2693962bd
chore(library/init/lean): export as C functions
2019-08-17 07:30:07 -07:00
Sebastian Ullrich
de5c7cbff0
fix(shell/CMakeLists): bin_lean_stage0 should not be part of the default target as it conflicts with bin_lean
...
/cc @leodemoura
2019-08-09 16:43:19 +02:00
Joe Hendrix
37ff241467
feat(CMakeLists): Add option to link in LLVM.
...
This updates cmake and Lean to link against the LLVM libraries.
2019-07-31 18:21:49 -07:00
Leonardo de Moura
1016309d1f
feat(library/init/lean/path): always add builtin search path
...
We also add "." (i.e., current directory) if `LEAN_PATH` is not defined.
Users may still override stdlib since we add the builtin search path in the end.
@dselsam You should now be able to compile your project without setting `LEAN_PATH`
cc @kha
2019-07-31 18:13:17 -07:00
Leonardo de Moura
ff6b868440
chore(library/module): remove dead code
2019-07-27 19:03:07 -07:00
Leonardo de Moura
943f6cbd55
chore(library/module): use module_name_of_file in Lean
2019-07-27 18:59:54 -07:00
Leonardo de Moura
bc525d980e
chore(shell/CMakeLists): fix test
2019-07-27 18:52:53 -07:00
Leonardo de Moura
fda2cd23ec
chore(shell/lean): use find_lean_file in Lean
2019-07-27 18:38:27 -07:00
Leonardo de Moura
dea1e52c96
feat(shell/lean): initialize searchPath implemented in Lean
2019-07-26 16:15:38 -07:00