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
bcd1673231
chore: abort build on panic
2022-11-11 16:24:04 +01:00
Sebastian Ullrich
1ddfb72106
chore: Nix: handle huge packages
2022-10-14 22:21:08 +02: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
d1beded289
chore: Nix: sanitize drv names
2022-08-12 15:30:22 +02:00
Sebastian Ullrich
f4de40d7dc
feat: turn on warningAsError
2022-07-29 10:31:19 -07:00
Sebastian Ullrich
556358e84c
chore: Nix: better solution for filtering test output
2022-07-28 17:12:17 +02: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
8f70c346fd
chore: Nix: fix develop shell
2022-07-08 21:49:50 +02:00
Sebastian Ullrich
4f1c3faa6e
chore: Nix: re-enable nix develop on bare derivations
2022-07-08 14:49:08 +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
02e5865a02
chore: Nix: stop pinning Nix in ciShell
2022-06-21 22:57:39 +02:00
Sebastian Ullrich
ce73728be3
chore: Nix: avoid build closure dependencies on stdenv
2022-06-21 21:11:59 +02:00
Sebastian Ullrich
d15934c0ac
chore: Nix: Bring-Your-Own-Emacs .#emacs-path-dev
2022-06-03 13:41:04 +02:00
Sebastian Ullrich
4a1885f997
chore: update benchmark suite
2022-05-25 18:26:36 +02:00
Sebastian Ullrich
19925f8ec1
chore: Nix: move docs build into sub-flake
...
workflow is not ideal right now because of poor support for sub-flakes,
but I also don't want the doc input in the main flake...
2022-03-26 22:50:04 +01:00
Sebastian Ullrich
4a9bc88a4e
chore: fix USE_GMP=OFF by removing GMP linking customization
2022-03-26 16:29:52 +01:00
Sebastian Ullrich
720e445755
chore: Nix: update inputs
2022-03-24 12:33:33 +01:00
Sebastian Ullrich
5c6e054e24
chore: update to LLVM 14
2022-03-24 12:33:33 +01:00
Sebastian Ullrich
147a5c2933
chore: prefer LEAN_SRC_PATH
2022-03-14 17:24:25 +01:00
Sebastian Ullrich
db9b963af7
chore: Nix: adjust message
2022-03-09 10:31:32 +01:00
Sebastian Ullrich
202258cc87
chore: Nix: remove debug flag
2022-03-09 10:30:37 +01:00
Sebastian Ullrich
a7438e9eae
chore: Nix: remove debug flag
2022-03-09 10:30:09 +01:00
Sebastian Ullrich
126c7dd4ea
chore: Nix: command for (one-time) linking .ileans
2022-03-09 10:29:25 +01:00
Sebastian Ullrich
2221cc8141
chore: Nix: emulate lake serve
2022-03-09 10:14:43 +01:00
Sebastian Ullrich
8cbd7ccf09
test: reimplement package tests using Lake
2022-02-09 12:21:11 -08:00
Patrick Stevens
b48e48328f
chore: Nix: bump vscode-lean4 version to 0.0.63
2022-02-05 20:08:45 +01: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
cfaba85199
feat: load precompiled modules in the server
2022-01-25 23:25:52 +01:00
Sebastian Ullrich
a926c6b1b2
chore: Nix: more consistent drv name
2022-01-25 23:25:52 +01:00
Sebastian Ullrich
8893ba9fa0
fix: Nix: precompilation on macOS
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
b601f2ffb2
perf: Nix: use bare command for shared libs
2022-01-25 23:25:52 +01:00
Sebastian Ullrich
096250a585
feat: Nix: simple, opt-in precompilation scheme
2022-01-25 23:25:52 +01:00
Sebastian Ullrich
01987dbc8e
refactor: Nix: attach object drv to module drv
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
b20ecd02d7
chore: move out lean4-mode
2022-01-24 21:23:53 +01:00
Sebastian Ullrich
fb57b73e1f
fix: Nix: compatibility with standard build
2022-01-21 09:24:43 +01:00
Sebastian Ullrich
dc148003cb
chore: Nix: remove annoying output
2022-01-20 18:55:57 +01:00
Sebastian Ullrich
9ab5f0376e
feat: Nix: iTree attribute for symlinking (complete) ilean files
2022-01-14 19:02:10 +01:00