lean4-htt/src/runtime
Leonardo de Moura ff3bf508aa feat(library/init/fix, runtime): add fixpoint2, ..., fixpoint6
The idea is to avoid allocating tuples when creating the fixpoint of
nary functions. For example, consider the new tests:
- tests/playground/fix.lean
- tests/playground/fix_with_tuples.lean

The second one (`fix_with_tuples`) uses the `fix` operator and tuples. For input = 20,
it creates more than 1 million extra objects. The first implementation
(`fix.lean`) using `fix₂` avoids this overhead.

TODO: Add support for pattern #N with N > 9 at
```
def expand_extern_pattern_aux (args : list string) : nat → string.iterator → string → string
```
2019-03-10 11:19:02 -07:00
..
alloc.cpp fix(runtime/alloc): segment recycling 2019-03-09 13:42:55 -08:00
alloc.h feat(runtime/object): small object allocator 2019-02-23 17:17:56 -08:00
apply.cpp feat(runtime): avoid extra switch 2019-02-23 17:35:21 -08:00
apply.h feat(library/compiler/emit_cpp): emit _apply instruction 2019-01-30 14:37:21 -08:00
CMakeLists.txt feat(runtime/object): small object allocator 2019-02-23 17:17:56 -08:00
compact.cpp chore(runtime): make sure we use the same naming convention for getters and setters 2018-09-09 10:07:00 -07:00
compact.h chore(*): fix style 2018-08-21 09:32:01 -07:00
compiler_hints.h refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
debug.cpp refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
debug.h refactor(*): use C++11 std::current_exception and std::rethrow_exception 2018-06-07 16:28:54 -07:00
exception.cpp refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
exception.h refactor(*): use C++11 std::current_exception and std::rethrow_exception 2018-06-07 16:28:54 -07:00
extensible_object.h feat(runtime): add object serializer 2018-05-22 16:34:41 -07:00
flet.h refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
hash.cpp feat(library/compiler,runtime): builtin support for lean.name 2019-02-05 12:57:46 -08:00
hash.h feat(library/compiler,runtime): builtin support for lean.name 2019-02-05 12:57:46 -08:00
init_module.cpp refactor(runtime): proper external objects without vtable 2019-03-07 10:26:05 -08:00
init_module.h fix(runtime): add init_module 2018-05-14 20:38:21 -07:00
int64.h refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
interrupt.cpp refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
interrupt.h refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
io.cpp feat(library/init/io): add unsafe_io and timeit 2019-02-13 16:59:24 -08:00
io.h feat(library/compiler/builtin): register io primitives 2018-11-15 16:14:50 -08:00
memory.cpp refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
memory.h refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
mpq.cpp refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
mpq.h refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
mpz.cpp chore(library/compiler/extern_attribute): style 2019-02-14 14:07:05 -08:00
mpz.h chore(*): remove redundant code 2018-05-22 16:46:04 -07:00
object.cpp feat(library/init/fix, runtime): add fixpoint2, ..., fixpoint6 2019-03-10 11:19:02 -07:00
object.h feat(library/init/fix, runtime): add fixpoint2, ..., fixpoint6 2019-03-10 11:19:02 -07:00
optional.h feat(library/init/lean/elaborator): elaborate constants 2018-12-19 15:04:48 +01:00
serializer.cpp feat(runtime,library/init/data/array/basic): add builtin support for arrays 2019-02-16 15:27:23 -08:00
serializer.h feat(runtime/serializer): support for tasks 2018-08-18 14:52:29 -07:00
sstream.h refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
stackinfo.cpp refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
stackinfo.h refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
thread.cpp refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
thread.h fix(runtime/thread): MULTI_THREAD=OFF build 2018-08-28 08:08:55 -07:00
utf8.cpp fix(runtime/object): string_utf8_extract 2019-03-09 12:57:51 -08:00
utf8.h feat(runtime, library/init/data/string/basic): add utf8_pos 2019-03-09 12:30:19 -08:00