Commit graph

528 commits

Author SHA1 Message Date
Leonardo de Moura
106adb09b9 fix: simplify allocator
Do not move segments between heaps.
We found yet another bug due to this "feature".
The crash is reported here:
https://gist.github.com/semorrison/490496060bbcfa8ea635f3d7be1ac824

@Kha summarized the "root of the evil" as:
using per-heap import lists while segments can be exchanged between heaps doesn't seem compatible.

This is the second bug due to this design decision.
We had fixed one here:
2283ebc5e9/src/runtime/alloc.cpp (L257-L269)

This commit fixes both issues by removing the segment exchange feature.
2021-10-05 16:58:20 -07:00
Sebastian Ullrich
816dc1895f perf: reuse idle thread in favor of spawning new one 2021-09-25 07:34:12 -07:00
Sebastian Ullrich
70f99ab655 chore: placate GCC 2021-09-23 16:31:41 +02:00
Sebastian Ullrich
6eca75ddbd fix: include exported declarations in defining file 2021-09-20 18:41:46 +02:00
Sebastian Ullrich
b13d3e6ca5 fix: dllexport functions not already annotated in header 2021-09-20 18:41:46 +02:00
Sebastian Ullrich
a7b044b80b chore: CI: build macOS without nix-shell
GH Actions already comes with most dependencies and it seems to avoid an
issue with Zig libc++ compilation (because of OSX_DEPLOYMENT_TARGET?)
2021-09-16 21:33:56 +02:00
Sebastian Ullrich
08c2c31fcd feat: IO.FS.removeDir(All) 2021-09-16 07:01:37 -07:00
Sebastian Ullrich
cd7968ba6a chore: IO.FS.removeFile: include path in error messages 2021-09-16 07:01:37 -07:00
Leonardo de Moura
218b9c87b0 feat: expose APIs for creating IO.Error objects 2021-09-11 17:14:43 -07:00
Leonardo de Moura
ca6941ab39 chore: rename lean_mpz_value 2021-09-11 17:00:47 -07:00
Leonardo de Moura
f9bc4b9b3a feat: add missing APIs 2021-09-11 15:39:11 -07:00
Leonardo de Moura
075ba63a8b feat: add LEAN_ABORT_ON_PANIC 2021-09-09 04:49:16 -07:00
Leonardo de Moura
c8406a301d chore: reduce src/include/lean 2021-09-07 08:24:54 -07:00
Sebastian Ullrich
82c97d34fa chore: specify accurate dependencies for leanshared 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
98b3e4b0ec chore: fix leanrt compilation flags 2021-08-18 13:54:52 +02:00
Sebastian Ullrich
c867376a82 perf: generate separate libleanrt.a with local-exec TLS model for static linking 2021-08-18 13:54:52 +02:00
Sebastian Ullrich
b7d723c982 refactor: compile runtime/ into new static library leanrt 2021-08-18 13:54:52 +02:00
Sebastian Ullrich
754286dc6d fix: compile flags for libleanruntime.bc 2021-08-18 13:54:52 +02:00
Leonardo de Moura
6ced2cdece refactor: move lean_name_eq to runtime, add lean_name_hash in C 2021-08-16 16:13:55 -07:00
Leonardo de Moura
14b611af96 refactor: move buffer.h and *_ref.h files to runtime 2021-08-16 15:39:38 -07:00
Sebastian Ullrich
3c91c9e874 feat: try memory-mapping .olean files on Windows 2021-08-04 16:40:57 +02:00
Sebastian Ullrich
fbdcaab009 feat: show number of mmap-ed modules in --stats 2021-08-04 16:40:57 +02:00
Sebastian Ullrich
05abdf7848 perf: move root address of compacted region to the front
for true zero-cost loading
2021-08-04 16:40:57 +02:00
Sebastian Ullrich
4766ee0b5e feat: try to mmap() .olean files on Linux & macOS 2021-08-04 16:40:57 +02:00
Sebastian Ullrich
4d8da44f50 feat: allow specifying virtual base address for compacted region 2021-08-04 16:40:57 +02:00
Sebastian Ullrich
e25edf893c fix: mark MPZ objects in compacted regions as persistent 2021-07-27 16:35:42 +02:00
Leonardo de Moura
b986bde639 fix: IO.Error.alreadyExists may have an optional file name
We got an assertion violation yesterday at `leanpkg` at
```cpp
  case EEXIST: case EINPROGRESS: case EISCONN:
        lean_assert(fname == nullptr);   // <<<<<<< HERE
        return lean_mk_io_error_already_exists(errnum, details);
```
2021-07-27 07:00:06 -07:00
Sebastian Ullrich
450293e64a feat: zero-copy GMP deserialization 2021-07-26 07:11:05 -07:00
Wojciech Nawrocki
66258b012b chore: fix windows build 2021-07-24 10:45:28 +02:00
Wojciech Nawrocki
102236fdd9 chore: leftover comment 2021-07-24 10:45:28 +02:00
Wojciech Nawrocki
b3d9e90695 feat: IO.getRandomBytes 2021-07-24 10:45:28 +02:00
Sebastian Ullrich
1eee82f745 fix: Windows build 2021-07-22 19:50:42 +02:00
Sebastian Ullrich
2b451a3fed chore: remove obsolete serializer code 2021-07-22 18:59:39 +02:00
Leonardo de Moura
10122ba38b chore: try to fix compilation error at CI 2021-07-20 10:42:28 -07:00
Leonardo de Moura
286136b3c7 fix: missing std:: 2021-07-20 10:42:28 -07:00
Leonardo de Moura
c59e72a77b chore: cleaner lean_dec_ref, inline persistent object case 2021-07-20 10:42:28 -07:00
Leonardo de Moura
da66610fda chore: cleanup 2021-07-20 10:42:28 -07:00
Leonardo de Moura
489b28085f feat: simpler and faster RC 2021-07-20 10:42:28 -07:00
Sebastian Ullrich
904cfd6fcb perf: extract cold path in lean_alloc_small 2021-07-19 13:20:28 -07:00
Sebastian Ullrich
16fbbf98e9 perf: extract cold paths in lean_free_small and mark noinline 2021-07-19 13:20:28 -07:00
Sebastian Ullrich
14b9dee84e chore: add missing file 2021-07-09 11:00:58 +02:00
Sebastian Ullrich
b70d018038 feat: include lean.h inline definitions in LLVM module 2021-07-09 11:00:58 +02:00
Sebastian Ullrich
5c07c188b4 feat: generate LLVM module of runtime 2021-07-09 11:00:58 +02:00
Leonardo de Moura
d0358810a7 feat: add lean_set_panic_messages 2021-06-29 14:30:56 -07:00
Sebastian Ullrich
daac376160 fix: native signature of IO.Process.exit 2021-06-23 08:53:20 +02:00
Sebastian Ullrich
2091a09fa1 feat: IO.Process.Child.takeStdin 2021-06-11 17:53:51 -07:00
Daniel Selsam
a22bba7bbf feat: Process.exit
Closes #356
2021-06-11 17:53:51 -07:00
Reijo Jaakkola
32897440dc
fix: change IO.FS.Handle.read to return empty array at EOF
Make EOF handling in IO.FS.Handle consistent with EOF handling in
IO.FS.Handle.getLine. Previously returned error at EOF which ended up
causing segmentation fault. Remove the declaration of g_io_error_eof,
since it becomes redundant.

Closes #349
2021-06-08 13:17:53 +02:00