Commit graph

98 commits

Author SHA1 Message Date
Sebastian Ullrich
b3a85631d8
chore: set warningAsError in CI only (#3030)
Don't fail local builds because of this
2023-12-06 08:18:39 +00:00
Sebastian Ullrich
544b704a25 test: add Lake tests 2023-07-21 09:19:19 +02:00
Sebastian Ullrich
d991f5efe0 fix: ship libLake.a 2023-07-21 09:19:19 +02:00
Sebastian Ullrich
8999ef067b chore: Nix: fixup Lake integration 2023-07-21 09:19:19 +02:00
Sebastian Ullrich
2a7ae7b28a chore: Nix: explicit src 2023-01-26 13:32:42 +01:00
Sebastian Ullrich
da2ea1fa98 chore: Nix: fix symbol interposition 2023-01-12 12:50:17 +01:00
Siddharth
b6eb780144
feat: LLVM backend (#1837) 2022-12-30 12:45:30 +01:00
Sebastian Ullrich
10d2403e83 chore: Nix: link dynamically by default
The Nix way
2022-12-22 12:13:22 +01:00
Sebastian Ullrich
cbf1b433d7 chore: Nix: linkFarm, not symlinkJoin 2022-12-21 20:06:18 +01:00
Sebastian Ullrich
73f9377322 chore: Nix: cache depRoots 2022-12-21 15:22:13 +01:00
Sebastian Ullrich
9e83115072 chore: Nix: lazy-trees compatibility 2022-12-04 18:52:33 +01:00
Siddharth Bhat
dfb5548cab fix: update libleanrt.bc, rename to lean.h.bc
This adds `lean.h.bc`, a LLVM bitcode file of the Lean
runtime that is to be inlined. This is programatically generated.

1. This differs from the previous `libleanrt.ll`, since it produces an
   LLVM bitcode file, versus a textual IR file. The bitcode file
   is faster to parse and build an in-memory LLVM module from.
2. We build `lean.h.bc` by adding it as a target to `shell`,
   which ensures that it is always built.

3. We eschew the need for:

```cpp
```

which causes breakage in the build, since changing the meaning of
`static` messes with definitions in the C++ headers.

Instead, we build `lean.h.bc` by copying everything in
`src/include/lean/lean.h`, renaming `inline` to
`__attribute__(alwaysinline)` [which forces LLVM to generate
`alwaysinline` annotations], then running the `-O3` pass pipeline
to get reasonably optimised IR, and will be perfectly inlined
when linked into the generated LLVM code by
`src/Lean/Compiler/IR/EmitLLVM.lean`.

Co-authored-by: Sebastian Ullrich <sebasti@nullri.ch>
2022-11-28 16:20:12 +01:00
Siddharth
4d47c8abc6
feat: add LLVM C API bindings (#1497)
Co-authored-by: Sebastian Ullrich <sebasti@nullri.ch>
Co-authored-by: Gabriel Ebner <gebner@gebner.org>
2022-11-21 09:50:01 +01:00
Sebastian Ullrich
9c3a283eb1 chore: update-stage0: simplify 2022-11-20 10:22:20 -08:00
Sebastian Ullrich
50a0c9bda7 chore: Nix: remove dead ileans 2022-10-13 18:12:55 +02:00
Mario Carneiro
37252e5fa7 chore: remove Bootstrap package 2022-09-02 16:39:03 -07:00
Mario Carneiro
bf89c5a0f5 chore: move Std -> Bootstrap 2022-08-29 01:26:12 -07:00
Sebastian Ullrich
4562fcfbd7 chore: Nix: include orphan modules like lean.mk does 2022-08-27 17:41:46 +02:00
Sebastian Ullrich
f4de40d7dc feat: turn on warningAsError 2022-07-29 10:31:19 -07:00
Sebastian Ullrich
8972cc9baf chore: Nix: cache Leanc-deps 2022-07-16 16:19:01 +02:00
Sebastian Ullrich
0f6bda61c9 chore: Nix: buildLeanPackage devShell 2022-07-08 23:24:04 +02:00
Sebastian Ullrich
d679044a9b chore: Nix: use --deps-json for faster, single IFD per package 2022-07-06 16:12:30 +02:00
Sebastian Ullrich
a16eff2996 chore: Nix: implement roots 2022-07-06 16:12:30 +02:00
Sebastian Ullrich
4a9bc88a4e chore: fix USE_GMP=OFF by removing GMP linking customization 2022-03-26 16:29:52 +01:00
Sebastian Ullrich
126c7dd4ea chore: Nix: command for (one-time) linking .ileans 2022-03-09 10:29:25 +01:00
Sebastian Ullrich
8cbd7ccf09 test: reimplement package tests using Lake 2022-02-09 12:21:11 -08:00
Sebastian Ullrich
a7ba103e0a chore: remove leanpkg 2022-02-04 19:03:40 +01:00
Sebastian Ullrich
2f02ddeba1 fix: Nix: revise propagation of load-dynlibs 2022-01-25 23:25:52 +01:00
Sebastian Ullrich
cf1654df1f fix: Nix: precompilation against stdlib, once more 2022-01-25 23:25:52 +01:00
Sebastian Ullrich
9b87428555 fix: Nix: work around https://github.com/NixOS/nixpkgs/issues/148189 2022-01-25 23:25:52 +01:00
Sebastian Ullrich
23db584b8f fix: Nix: precompilation against stdlib 2022-01-25 23:25:52 +01:00
Sebastian Ullrich
ac28f89527 fix: Nix: link package's shared library dynamically against dependencies
refactor: Nix: dynlib handling
2022-01-25 23:25:52 +01:00
Sebastian Ullrich
fb57b73e1f fix: Nix: compatibility with standard build 2022-01-21 09:24:43 +01:00
Sebastian Ullrich
9ab5f0376e feat: Nix: iTree attribute for symlinking (complete) ilean files 2022-01-14 19:02:10 +01:00
Sebastian Ullrich
d2a1e20dd0 feat: bundling LLVM on Linux 2021-11-18 09:42:35 +01:00
Sebastian Ullrich
7a91c494b9 chore: submodule hints 2021-10-15 06:56:02 -07:00
Sebastian Ullrich
89f9045646 test: add lake tests 2021-10-15 06:56:02 -07:00
Sebastian Ullrich
f9ab429f75 fix: Nix build 2021-09-30 10:24:45 +02:00
Sebastian Ullrich
e6927253cf feat: use leanc written in Lean for testing & distribution
building is still handled by a (minimal) Bash script for bootstrapping purposes
2021-09-25 09:59:50 +02:00
Sebastian Ullrich
f49d05bd76 chore: Nix: remove Leanpkg from stage 0 2021-09-22 16:03:57 +02:00
Sebastian Ullrich
d3eb5deeea chore: Nix: fix macOS build 2021-09-22 16:00:13 +02:00
Sebastian Ullrich
5a4309e599 refactor: bootstrap.nix 2021-09-22 14:43:32 +02:00
Sebastian Ullrich
d65871241d chore: replace sed with perl in test driver
Consistent across all three platforms
2021-09-16 21:33:56 +02:00
Sebastian Ullrich
b3bb2bac97 chore: move all C++ code into libleanshared, use C stub for main
Avoids any issues with cross-lib C++
2021-09-16 07:03:37 -07:00
Sebastian Ullrich
af78071000 chore: use -Bsymbolic in favor of -Bsymbolic-functions, which Zig doesn't like 2021-09-08 17:24:31 +02:00
Sebastian Ullrich
9702fe1981 chore: leanc: use C instead of C++ compiler 2021-09-08 17:24:31 +02:00
Sebastian Ullrich
2418acd216 chore: Nix: fix stage0 2021-08-20 09:42:05 -07:00
Sebastian Ullrich
5f4b1b1d44 Revert "Revert "feat: reintroduce libleanshared, link lean & leanpkg against it""
This reverts commit ccbc9d00db.
2021-08-20 09:42:05 -07:00
Sebastian Ullrich
ccbc9d00db Revert "feat: reintroduce libleanshared, link lean & leanpkg against it" 2021-08-20 15:39:00 +02:00
Sebastian Ullrich
aa177dacc3 chore: Nix: fix macOS linker flags 2021-08-18 13:54:52 +02:00