Commit graph

11330 commits

Author SHA1 Message Date
Leonardo de Moura
2408d6dd80 fix(library/init/lean/compiler/ir/boxing): created boxed version for externs 2019-05-22 10:56:51 -07:00
Leonardo de Moura
fa3079f04e chore(stage0): update 2019-05-22 10:36:36 -07:00
Leonardo de Moura
4d2837430a fix(library/compiler/emit_cpp): tail call
Add temporary hack to fix `emit_tail_call`.
TODO: find a cleaner solution for the new IR compiler.
2019-05-21 23:07:10 -07:00
Leonardo de Moura
f1fbe5cd61 feat(library/compiler/ir): add boxed version for extern constants 2019-05-21 17:55:58 -07:00
Leonardo de Moura
89259d012b fix(stage0): missing files 2019-05-21 16:39:07 -07:00
Leonardo de Moura
91745cd16b fix(library/init/lean): remove hard coded file 2019-05-21 16:26:08 -07:00
Leonardo de Moura
8003ccec13 chore(stage0): update 2019-05-21 16:12:26 -07:00
Leonardo de Moura
5b3aec088e feat(library/init/lean/compiler/ir/emitcpp): emit module initialization code 2019-05-21 16:06:10 -07:00
Leonardo de Moura
ae8a51c718 feat(library/init/lean/runtime): expose runtime limit 2019-05-21 14:24:16 -07:00
Leonardo de Moura
db6933e3a4 chore(stage0): update
Make sure the new IR checker is used to validate generated code.
2019-05-21 13:45:49 -07:00
Leonardo de Moura
9f604ee0a1 fix(library/compiler/extern_attribute): register @[extern] projections in the new IR compiler 2019-05-21 13:42:42 -07:00
Leonardo de Moura
3b5093ebe0 fix(library/compiler/ir): fix ret irrelevant 2019-05-21 13:32:11 -07:00
Leonardo de Moura
63d2c03403 fix(library/compiler/ir): lambda IR translator 2019-05-21 13:01:43 -07:00
Leonardo de Moura
dbe2bebc06 fix(library/compiler/extern_attribute): register extern constructors in the new IR compiler 2019-05-21 08:09:05 -07:00
Leonardo de Moura
4ed803c564 feat(library/init/lean/compiler/ir/emitcpp): emit skeletons 2019-05-20 19:08:21 -07:00
Leonardo de Moura
f852cd774f feat(library/init/lean/compiler/ir): expose C++ primitives for accessing export and extern attributes 2019-05-20 15:49:03 -07:00
Leonardo de Moura
3ffe0e22c8 feat(shel/lean): add temporary option for testing new IR compiler code emitter 2019-05-20 10:19:09 -07:00
Leonardo de Moura
b0e7b05f63 feat(library/init/lean/compiler/ir/emitcpp): add entry point 2019-05-20 09:50:57 -07:00
Leonardo de Moura
c0b3c71c4d chore(library/compiler): remove dead code 2019-05-20 08:13:52 -07:00
Leonardo de Moura
905b94311b fix(library/init/lean/compiler/ir/borrow): tail call preservation 2019-05-19 17:08:51 -07:00
Leonardo de Moura
83692eef6d feat(library/init/lean/compiler/ir): explicit RC 2019-05-19 16:46:51 -07:00
Leonardo de Moura
300c251b49 feat(library/init/lean/compiler/ir): add explicitBoxing to new IR compiler stack 2019-05-19 08:10:45 -07:00
Leonardo de Moura
b0c6d1c6a7 fix(library/compiler/ir): assertion violation 2019-05-18 11:33:35 -07:00
Leonardo de Moura
ca818e6850 feat(library/init/lean/compiler/ir): add borrow inference 2019-05-18 10:48:26 -07:00
Leonardo de Moura
c9bcd4990c feat(library/compiler): register extern constants into the new IR 2019-05-17 17:12:51 -07:00
Leonardo de Moura
48ed3c5307 feat(runtime): inline hot path small object allocation 2019-05-17 10:12:43 -07:00
Leonardo de Moura
9a3a01fa6e feat(library/compiler/compiler): invoke new IR compiler implemented in Lean 2019-05-16 16:08:52 -07:00
Leonardo de Moura
9d7191feca chore(library/compiler): remove support for fully boxed 2019-05-16 15:48:33 -07:00
Leonardo de Moura
ac69f802e1 feat(library/compiler): interface with new IR compiler entry point 2019-05-16 15:41:47 -07:00
Leonardo de Moura
aa138fe686 chore(*): get_obj_arg => to_obj_arg 2019-05-16 14:42:02 -07:00
Leonardo de Moura
9d9f546ad8 refactor(util/sexpr): move options and option_declarations to util 2019-05-16 14:37:24 -07:00
Leonardo de Moura
367b3ec4a3 chore(tests/util): remove old test 2019-05-16 14:29:26 -07:00
Leonardo de Moura
9c4da289b2 refactor(util/sexpr/options): options as a Lean object 2019-05-16 14:27:44 -07:00
Leonardo de Moura
31d4fa9f71 chore(util/sexpr/options): shrink options API
Motivation: move to the Lean implementation
2019-05-16 14:08:11 -07:00
Leonardo de Moura
5482a11642 feat(library/init/lean/compiler/ir/default): add new entry point 2019-05-16 10:20:00 -07:00
Leonardo de Moura
2d065c7ded feat(library/init/lean/compiler/ir): add Lean.IR.CompilerM
and environment extension for storing Lean IR declarations.
2019-05-16 10:20:00 -07:00
Sebastian Ullrich
7a19f246e6 fix(shell/lean): re-add missing short-only option 2019-05-16 10:27:18 +02:00
Leonardo de Moura
739008f8d4 chore(library/init/lean/compiler/llnf): disable
I am going to refactor the interface with the new IR compiler.
2019-05-15 19:02:51 -07:00
Leonardo de Moura
77768c504e feat(shell/lean): import time stats 2019-05-15 17:16:19 -07:00
Leonardo de Moura
9b3421b63b feat(library/compiler/closed_term_cache): remove C++ implementation and use Lean one 2019-05-15 15:33:46 -07:00
Leonardo de Moura
b87afdcbfd chore(library/init/lean/compiler/closedtermcache): naming convention 2019-05-15 15:19:09 -07:00
Leonardo de Moura
816e83970b refactor(util/object_ref, kernel/environment): move to_optional 2019-05-15 15:16:29 -07:00
Leonardo de Moura
09df708af2 feat(library/init/lean/compiler): implement close term cache env extension in Lean 2019-05-15 11:01:25 -07:00
Leonardo de Moura
89e01368cd fix(library/init/lean/environment): throw error if environment already contains constant 2019-05-15 11:01:25 -07:00
Leonardo de Moura
3193e91aff feat(library/init/lean/environment): add Environment.displayStats and --stats command line argument 2019-05-15 11:01:25 -07:00
Leonardo de Moura
bc809643ec feat(library/init/lean/expr): add Expr.quickLt, Expr.eqv 2019-05-15 11:01:25 -07:00
Leonardo de Moura
8ab15536a7 perf(library/init/data/array/binsearch): add binSearchContains 2019-05-14 20:52:57 -07:00
Leonardo de Moura
45eda6d81b perf(library/init/lean/modifiers): add only local entries to state
We can use `getModuleEntries` and `getModuleIdxFor` to test whether a
constant is protected or not.
2019-05-14 20:30:46 -07:00
Leonardo de Moura
dc71fafac1 feat(library/init/data/array): add Array.binSearch 2019-05-14 18:25:54 -07:00
Leonardo de Moura
2e4f5951e3 feat(library/init/data/array/qsort): simple quicksort
@kha I added `qsort` for sorting environment extension entries, but I am
wondering if we could use it as a benchmark in our paper. It is a pure implementation; it is
fast; it implements the real quick sort algorithm with in-place updates if the
input array is not shared. If the array is shared it performs
a single copy and then switches to in-place updates.
2019-05-14 17:46:34 -07:00