lean2/src/library
Leonardo de Moura 83aaf64318 fix(library/tactic): memory leaks
Proof/Cex builders and tactics implemented in Lua had a "strong reference" to script_state. If they are stored in the Lua state, then we get a cyclic reference.
That is, script_state points to these objects, and they point back to script_state.

To avoid this memory leak, this commit defines a weak reference for script_state objects. The Proof/Cex builders and tactics now store a weak reference to the Lua state.

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2013-11-30 00:44:39 -08:00
..
all Rename import_all. The idea is to use consistent name for library files. 2013-09-13 09:06:46 -07:00
arith refactor(frontends/lua): rename leanlua_state to script_state, and move it to util 2013-11-27 14:57:36 -08:00
cast feat(kernel/environment): track which modules were already imported 2013-11-17 18:15:44 -08:00
elaborator feat(library/elaborator): modify how elaborator handles constraints of the form ?M << P and P << ?M, where P is a proposition. 2013-11-29 09:15:01 -08:00
rewriter feat(library/rewriter): add apply_rewriter_fn which will be used in depth RW 2013-11-30 02:25:30 -05:00
tactic fix(library/tactic): memory leaks 2013-11-30 00:44:39 -08:00
basic_thms.cpp feat(kernel/environment): track which modules were already imported 2013-11-17 18:15:44 -08:00
basic_thms.h feat(kernel): heterogeneous transitivity axiom, we need this axiom to be able to generate modular proofs in the rewriting engine module 2013-10-29 17:07:30 -07:00
CMakeLists.txt refactor(bindings/lua): move Lua bindings to the file associated with them 2013-11-26 19:15:56 -08:00
context_to_lambda.cpp Add support for creating unique internal names. 2013-09-24 11:01:30 -07:00
context_to_lambda.h Use fullpath in #include directives. 2013-09-12 20:04:10 -07:00
deep_copy.cpp feat(kernel/expr): add new mk_app template for creating applications using a collection 2013-10-27 08:53:58 -07:00
deep_copy.h Use fullpath in #include directives. 2013-09-12 20:04:10 -07:00
expr_lt.cpp fix(library/expr_lt): fix bug when using hash codes 2013-11-14 13:18:33 -08:00
expr_lt.h feat(expr_lt): improve expr_lt performance by using hash codes, and add more tests 2013-09-25 21:59:58 -07:00
expr_pair.h feat(kernel/expr): add hash code based on allocation time 2013-11-14 02:43:11 -08:00
io_state.cpp refactor(bindings/lua): move Lua bindings to the file associated with them 2013-11-26 19:15:56 -08:00
io_state.h refactor(bindings/lua): move Lua bindings to the file associated with them 2013-11-26 19:15:56 -08:00
kernel_bindings.cpp feat(library/tactic): polish tactic API, and add new example showing how to implement tactics using Lua 2013-11-30 00:16:39 -08:00
kernel_bindings.h refactor(frontends/lua): rename leanlua_state to script_state, and move it to util 2013-11-27 14:57:36 -08:00
max_sharing.cpp feat(kernel): add (optional) field m_type to expr_const, this field is useful for implementing the tactic framework 2013-11-19 11:21:52 -08:00
max_sharing.h Use consistent naming conventions 2013-09-17 14:43:07 -07:00
placeholder.cpp feat(replace_visitor): add an abstract class for applying transformations on expressions 2013-10-23 15:01:37 -07:00
placeholder.h refactor(metavar): implement metavar_env, and use unification_constraint and trace objects in the type_checker, light_checker 2013-10-22 08:15:36 -07:00
type_inferer.cpp fix(library/type_inferer): typo 2013-11-28 21:47:29 -08:00
type_inferer.h refactor(bindings/lua): move Lua bindings to the file associated with them 2013-11-26 19:15:56 -08:00
update_expr.cpp feat(kernel/expr): add new mk_app template for creating applications using a collection 2013-10-27 08:53:58 -07:00
update_expr.h Improve higher order unification 2013-09-21 00:41:49 -07:00