Commit graph

569 commits

Author SHA1 Message Date
Gabriel Ebner
412691c958 feat: support LEAN_NUM_THREADS environment variable 2021-12-21 17:01:08 +01:00
Sebastian Ullrich
b732484663 fix: do not consider worker threads as idle during startup
Without this change, enqueuing multiple tasks before the first worker
was started led to only a single worker being created. Now the first
increment and decrement happen under the task manager mutex, so
effectively the worker is never idle until it is out of tasks.
2021-12-21 12:01:23 +01:00
Sebastian Ullrich
1221bdd3c7 fix: use redirected stderr for timeit & allocprof 2021-12-16 06:38:35 -08:00
Sebastian Ullrich
87e860f871 perf: Array.push: move elements directly when source is unique 2021-12-16 06:37:37 -08:00
Sebastian Ullrich
3c9ea3b113 fix: wait on tasks before Lean program exit 2021-12-15 15:58:24 +01:00
tydeu
a3250dc44b feat: expose --load-dynlib functionality to Lean code 2021-12-15 08:26:48 +00:00
tydeu
d518ba7f08 feat: use BaseIO more in Init.System.IO 2021-12-14 09:33:52 +01:00
Sebastian Ullrich
0ade9ee39b fix: make IO.Process.Child.wait fallible 2021-12-13 15:12:48 +01:00
Gabriel Ebner
c7565c446a fix: casts on big-endian 2021-12-02 09:57:58 -08:00
Sebastian Ullrich
1ade96cfab fix: assertion with USE_GMP=OFF 2021-12-02 15:11:47 +01:00
Leonardo de Moura
5e9ebf044a fix: insert_mpz 2021-12-01 13:47:05 -08:00
Leonardo de Moura
92a5f8f18e fix: insert_mpz 2021-12-01 13:38:20 -08:00
Leonardo de Moura
988b316e3f feat: check "LEAN_ABORT_ON_PANIC" environment variable at lean_internal_panic 2021-12-01 13:38:20 -08:00
Leonardo de Moura
375de32bfb fix: fix_mpz 2021-12-01 13:38:19 -08:00
Leonardo de Moura
e9e40789c1 fix: mpz::power for USE_GMP=OFF 2021-11-30 17:57:33 -08:00
Leonardo de Moura
83d6eb1c72 fix: mpz::mul2k for USE_GMP=OFF 2021-11-30 17:19:16 -08:00
Leonardo de Moura
9a81ae556a feat: add support for USE_GMP=OFF at compact.cpp 2021-11-30 16:46:53 -08:00
Leonardo de Moura
8aca088752 feat: mpz missing methods for USE_GMP=OFF 2021-11-30 16:46:53 -08:00
Leonardo de Moura
c6f5c3717c chore: use size_t at buffer
Add `buffer::ensure_capacity`.
2021-11-30 16:46:53 -08:00
Sebastian Ullrich
4aab42f9aa fix: segfault when passing scalar object to dbgTraceIfShared 2021-11-30 19:07:46 +01:00
Leonardo de Moura
e5b3b180dc feat: some mpz methods for LEAN_USE_GMP=OFF 2021-11-29 17:55:04 -08:00
Leonardo de Moura
ec6932fbb7 feat: some mpz methods for LEAN_USE_GMP=OFF 2021-11-29 16:01:07 -08:00
Leonardo de Moura
68fc9a9115 feat: add dummy mpz implementation for LEAN_USE_GMP=OFF 2021-11-29 11:42:08 -08:00
Leonardo de Moura
0002d8bd04 chore: missing #ifdef LEAN_USE_GMP 2021-11-29 11:35:13 -08:00
Leonardo de Moura
6396f3b2c1 chore: simplify mpz.h
Add basic support for `LEAN_USE_GMP=OFF`.
2021-11-29 11:11:49 -08:00
Sebastian Ullrich
d4683e0169 chore: clean up LEAN_EXTRA_FLAGS 2021-11-20 11:04:39 +01:00
Gabriel Ebner
6475e3d5cc fix: add missing LEAN_EXPORT 2021-11-18 11:14:26 +01:00
Sebastian Ullrich
0a40269fcb fix: build with mingw-clang64 clang 2021-11-18 09:42:35 +01:00
Sebastian Ullrich
75a0b43aed feat: reimplement assert without system headers 2021-11-18 09:42:35 +01:00
Sebastian Ullrich
3a7fa704c3 refactor: avoid non-compiler headers in lean.h 2021-11-18 09:42:35 +01:00
Mac
eb5852448e
feat: generalize IO task functions to BaseIO := EIO Empty (#744)
* feat: generalize `asTask`/`bindTask`/`mapTask` to `EIO`

* feat: generalize task functions to the `EIO Empty` monad

* chore: fix test + correct doc

* feat: further generalize task functions to `RealM := EIO Empty`

* chore: `RealM`/Task API touch-ups

* refactor: `abbrev RealM` -> `def BaseIO`

* chore: remame args / remove `EIO.toBaseIO_` as per code review

* refactor: use `BaseIO` at `checkCanceled`/`getNumHeartbeats`

* chore: fix `lean_io_bind_task_fn` signature error
2021-11-04 15:37:55 -07:00
Sebastian Ullrich
b5e7b2ab6e feat: Lean.githash 2021-11-04 15:29:48 -07:00
Leonardo de Moura
352391bfcb chore: remove mpz_get_d dependency 2021-10-26 12:40:20 -07:00
Leonardo de Moura
c25758e314 chore: remove mpz dead code 2021-10-26 12:28:33 -07:00
Leonardo de Moura
6d0fa6da7c chore: remove mpz dead code 2021-10-26 12:05:19 -07:00
Leonardo de Moura
fa9c5ad21a chore: remove mpq 2021-10-26 11:56:37 -07:00
Gabriel Ebner
61e0eab23f refactor: reimplement ofScientific for floats 2021-10-26 11:51:30 -07:00
Leonardo de Moura
0a3a8d2d3d feat: add mpn module
This is the Z3 bignum module.
2021-10-25 15:57:19 -07:00
Gabriel Ebner
ee2804d278 fix: use unsigned char in hash_str
char has different signedness on various architectures (signed on amd64,
unsigned on aarch64).  oleans are then not architecture-independent
since they contain hashes (e.g. in mkStr).
2021-10-21 22:08:49 +02:00
Chris Lovett
f57e61fead
chore: remove manual shell scripting for compiling libleanrt 2021-10-15 08:08:31 +02:00
Sebastian Ullrich
89d6c70273 fix: macOS build 2021-10-08 18:34:28 +02:00
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