Leonardo de Moura
40ecbb7cbc
feat(library/init/control/monad): mark monadInhabited as an instance
2019-05-20 09:33:17 -07:00
Leonardo de Moura
ff74b9f44a
feat(library/init/lean/compiler/ir): add emitutil.lean and emitcpp.lean files
2019-05-20 09:25:16 -07:00
Leonardo de Moura
781dd60b19
fix(library/init/lean/compiler/ir/boxing): filename case
...
It seems OSX is case insensitive since I can compile it on my Mac.
2019-05-20 08:10:33 -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
0f8c5820d3
feat(library/init/lean/compiler/ir/livevars): helper functions for managing the set of live variables
2019-05-19 11:17:05 -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
b6ef6a796c
fix(library/init/lean/compiler/ir/borrow): consider borrow annotation only for references
2019-05-18 11:58:11 -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
d2f6befc15
chore(library/init/lean/compiler/ir): Context ==> LocalContext
2019-05-17 17:29: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
66d4995c56
feat(library/init/lean/compiler/ir/compilerm): add ' versions
2019-05-17 16:37:21 -07:00
Leonardo de Moura
999ba7670d
feat(library/init/lean/compiler/ir): add ExternEntry to Decl.extern constructor
2019-05-17 16:27:58 -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
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
Leonardo de Moura
b87afdcbfd
chore(library/init/lean/compiler/closedtermcache): naming convention
2019-05-15 15:19:09 -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
7212fbab6e
perf(library/init/lean/environment): search hashmap first
...
Hypothesis: the vast majority of Environment queries try to access
imported constants instead of local ones.
2019-05-15 11:01:25 -07:00
Leonardo de Moura
70dce4b775
feat(library/init/lean/environment): show rbmap depth and hashmap bucket size
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
Leonardo de Moura
5fa924ff4a
feat(library/init/lean/environment): improve registerPersistentEnvExtension signature
2019-05-14 16:25:43 -07:00
Leonardo de Moura
da5b900cbd
feat(library/init/lean): add protected extension
2019-05-14 16:04:24 -07:00
Leonardo de Moura
3a3da7dfdf
chore(library/init/env_ext): update
2019-05-14 15:45:10 -07:00
Leonardo de Moura
b888b6f3b6
feat(library/init/lean/environment): process imported entries
2019-05-14 15:32:07 -07:00
Leonardo de Moura
59235c1899
chore(library/init/lean/environment): ModuleId ==> ModuleIdx
2019-05-14 13:02:43 -07:00
Leonardo de Moura
5e2111f4a4
fix(library/init/lean/environment): process entries using the order they were inserted
2019-05-14 12:53:50 -07:00
Leonardo de Moura
a24a1562ea
fix(library/init/lean/environment): import order
2019-05-14 12:41:19 -07:00
Leonardo de Moura
5df0b05cc7
chore(library/init/lean/environment): remove get_modifications_core
2019-05-14 11:26:04 -07:00
Leonardo de Moura
d5fd5d86ee
fix(library/init/lean/environment): quotInit initialization
2019-05-14 10:31:06 -07:00
Leonardo de Moura
02e558d781
feat(library/init/lean/environment): export module I/O in Lean
2019-05-14 10:15:33 -07:00
Leonardo de Moura
642c4c59bd
feat(library/init/lean/environment): support for serializing/performing legacy modification objects
2019-05-14 10:08:31 -07:00
Leonardo de Moura
dbb519d826
feat(library/init/lean/environment): importModules draft
2019-05-14 08:58:29 -07:00
Leonardo de Moura
427852d759
feat(library/init/lean/environment): add findOLean
2019-05-14 08:02:26 -07:00
Leonardo de Moura
5844913102
feat(library/module, library/init/lean/environment): add primitives for reading/writing files as compacted regions
2019-05-13 17:26:28 -07:00
Leonardo de Moura
40f9704540
chore(library/init/lean/environment): add placeholders for writing/reading .olean files
2019-05-13 15:48:23 -07:00
Leonardo de Moura
5480d22be6
feat(library/init/lean/environment): add getModifications
2019-05-13 15:18:03 -07:00
Leonardo de Moura
ec846f1552
chore(library/init/lean/environment): rename primitive
2019-05-13 15:15:29 -07:00
Leonardo de Moura
02f90485e6
feat(library/init/lean): use Environment in the new frontend
2019-05-13 13:04:57 -07:00
Leonardo de Moura
4392ed2466
fix(library/init/lean/default): make sure environment.lean is initialized
2019-05-11 18:05:11 -07:00
Leonardo de Moura
750384142e
perf(library/init/control/estate): missing [inline]
2019-05-11 16:38:25 -07:00
Leonardo de Moura
c46608ced5
feat(library/init/io): implement unsafeIO in Lean
...
Motivation: avoid closure allocation.
2019-05-11 16:28:11 -07:00
Leonardo de Moura
76f643fbf6
chore(library/init/control/estate): add EState.run and EStage.run'
2019-05-11 16:26:51 -07:00
Leonardo de Moura
5f563973f3
feat(library/init/lean/environment): lower level interface for C++
2019-05-11 15:50:02 -07:00