Commit graph

717 commits

Author SHA1 Message Date
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
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
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
5f563973f3 feat(library/init/lean/environment): lower level interface for C++ 2019-05-11 15:50:02 -07:00
Leonardo de Moura
1270353313 feat(library/init/lean/environment): add auxiliary functions 2019-05-11 14:30:06 -07:00
Leonardo de Moura
7580ad8fe8 feat(library/init/lean/environment): add auxiliary functions for refactoring environment.cpp 2019-05-10 17:02:27 -07:00
Leonardo de Moura
f5725abb57 refactor(library/init/lean/environment): cleanup and improve 2019-05-10 15:54:29 -07:00
Leonardo de Moura
e0b5f9a018 feat(library/init/lean/environment): extensions can only be registered during initialization 2019-05-10 11:51:42 -07:00
Leonardo de Moura
708bc42e0a feat(library/init/lean/environment): generate ModuleData 2019-05-10 11:21:17 -07:00
Leonardo de Moura
f6b3bc868a fix(library/init/lean/environment, library/compiler): compilation error and add [implementedBy] attribute 2019-05-10 07:22:56 -07:00
Leonardo de Moura
ecb50b553d feat(library/init/lean/environment): environment extension registration and API 2019-05-09 16:53:04 -07:00
Leonardo de Moura
3b80ec89b7 feat(library/init/lean/environment): add Environment
TODO: finish environment extension
2019-05-09 12:30:52 -07:00
Leonardo de Moura
9e246b365e feat(library/init/lean): add SMap for implementing Environment 2019-05-09 07:38:26 -07:00
Leonardo de Moura
8c68251b72 feat(library/init/lean/module): add ModuleData 2019-05-08 16:51:47 -07:00
Leonardo de Moura
23ad4e574d chore(library/init/lean/trace): remove unnecessary unsafe 2019-05-08 14:17:17 -07:00
Leonardo de Moura
78401f0eff chore(library/init/lean/compiler/ir/resetreuse): add comment 2019-05-08 14:17:17 -07:00
Leonardo de Moura
a4e135790b feat(library/init/lean/compiler/ir/normids): add Decl.uniqueIds predicate 2019-05-08 14:17:17 -07:00
Leonardo de Moura
0de9a92d4c feat(library/init/lean/compiler/ir/boxing): missing case 2019-05-08 06:04:18 -07:00
Leonardo de Moura
74fb8e627a feat(library/init/lean/compiler/ir/checker): improve IR checker 2019-05-08 05:47:25 -07:00
Leonardo de Moura
a24a8361f5 feat(library/init/lean/compiler/ir/boxing): add some missing cases 2019-05-07 18:23:08 -07:00
Leonardo de Moura
6d4f7527a2 feat(library/init/lean/compiler/ir/boxing): explicit boxing and unboxing instructions
TODO: FnBody.vdecl case
2019-05-07 16:21:29 -07:00
Leonardo de Moura
2cea92b4c8 fix(library/init/lean/compiler/ir/resetreuse): do not use reset and reuse for 0-ary constructors 2019-05-07 16:13:35 -07:00
Leonardo de Moura
800569af5f chore(library/init/lean/compiler/ir/basic): cleanup 2019-05-07 16:13:22 -07:00
Leonardo de Moura
b717177a1a chore(library/init/data/array/basic): make sure Array.*foldl and List.*foldl have similar signatures 2019-05-07 15:23:03 -07:00
Leonardo de Moura
5d3c6dbac2 feat(library/init/lean/compiler/ir/basic): add IRType.isScalar 2019-05-07 15:06:55 -07:00
Leonardo de Moura
37c60da70d refactor(library/init/lean/compiler/ir): cleanup Context 2019-05-07 14:41:08 -07:00
Leonardo de Moura
5b9936f38d chore(library/init/lean/compiler/ir/resetreuse): add namespace ResetReuse 2019-05-07 12:31:32 -07:00
Leonardo de Moura
2363fdf544 refactor(library/init/lean/compiler/ir): remove redundant field from FnBody.jdecl
The result type of a join point is always equal to the function return
type. Moreover, the extra bookkeeping introduces extra work, and doesn't
really help.
2019-05-07 12:26:11 -07:00
Leonardo de Moura
fd25827d3e fix(library/init/lean/compiler/ir/resetreuse): must use livevars instead of freevars
The file badreset contains two functions where the new `reset/reuse`
insertion procedure implemented in Lean produces better results than the
one implemented in C++.

cc @kha
2019-05-07 11:09:51 -07:00
Leonardo de Moura
6a496844fd chore(library/init/lean/compiler/ir/freevars): simplify code using "no shadowing" assumption 2019-05-06 18:38:03 -07:00
Leonardo de Moura
1295bf52bc feat(library/init/lean/compiler/ir): add Decl.checker for debugging purposes
We have also added a new `Context` object, and modified our IR
invariant. Now, we assume there is no variable or join point shadowing.
2019-05-06 18:35:06 -07:00
Leonardo de Moura
05a2e88ac9 feat(library/init/lean/compiler/ir): add FnBody.isLiveVar 2019-05-06 16:13:47 -07:00
Leonardo de Moura
604d5fecbb feat(library/init/lean/compiler/ir/basic): add Context 2019-05-06 10:57:45 -07:00