Leonardo de Moura
127ecff79c
fix(attribute_manager): finalization problem
...
Global variables must be simple types. Reason: the finalization of
global objects in different compilation units is not specified by the
standard. The only exception is the global at src/shared/init.cpp.
It is used to automatically initialize the lean shared library.
Before this commit, attribute_manager used a std::unique_ptr in a global
variable. The test shared_test was crashing in one of my machines
because a different finalization order was being used.
2016-12-20 10:02:31 -08:00
Jared Roesch
e65d90ac79
feat(*): C++ code generator
...
in progress move of Lean.native to init
2016-12-05 16:11:41 -08:00
Leonardo de Moura
d747fcb17c
refactor(library/tactic/simp_lemmas): new caching mechanism
2016-10-06 20:20:01 -07:00
Leonardo de Moura
5f8f7bcccb
feat(frontends/lean/elaborator): add proxy_attribute for elaborator strategies
...
This commit also adds a template for creating proxy_attribute's.
2016-09-13 13:02:37 -07:00
Leonardo de Moura
51407d09f9
refactor(library/attribute_manager): minimize the number of attr_data allocations
2016-09-13 10:00:52 -07:00
Leonardo de Moura
a38264439f
fix(library/attribute_manager): get_instances returns deleted instances
2016-09-01 14:48:03 -07:00
Sebastian Ullrich
441a219a66
feat(library/attribute_manager): make attributes with side-effect free callbacks removable
2016-08-23 21:52:52 -07:00
Leonardo de Moura
5dca96a2a2
feat(library/attribute_manager): add get_attribute_fingerprint C++ API
2016-08-23 15:41:40 -07:00
Sebastian Ullrich
abd040589f
feat(frontends/lean/decl_attributes, library/attribute_manager): implement attribute removal
2016-08-23 14:09:35 -07:00
Sebastian Ullrich
6e2f7c107c
refactor(library/attribute_manager): rename on_set and move up into attribute base class
2016-08-23 14:09:35 -07:00
Leonardo de Moura
e4fd627ae2
feat(library/attribute_manager): fingerprints
...
The fingerprint changes whenever a new attribute is added.
2016-08-23 08:20:37 -07:00
Leonardo de Moura
9979bf7cea
chore(library): formatting
2016-08-23 07:56:01 -07:00
Sebastian Ullrich
60fa25b665
refactor(library/attribute_manager): remove weakly-typed API
...
Also reduces number of attribute name literals
2016-08-19 15:02:34 -07:00
Sebastian Ullrich
ca8be3857c
feat(library/user_attribute): add user-defined attributes and make attribute_manager environment-aware
2016-08-18 12:56:44 -07:00
Sebastian Ullrich
cb6a6b642e
refactor(library/attribute_manager): remove attribute tokens and use name for attribute names
2016-08-16 13:49:03 -07:00
Sebastian Ullrich
88034a513c
refactor(library/attribute_manager): typed_attribute: move parsing into attr_data
2016-08-16 13:49:02 -07:00
Sebastian Ullrich
34e00cd5a2
refactor(library/attribute_manger): simplify: make every attribute prioritizable
2016-08-16 13:49:02 -07:00
Sebastian Ullrich
b27ba6288d
feat(frontends/lean/print_cmd): implement 'print attributes'
2016-08-12 15:36:12 -07:00
Leonardo de Moura
38524475c9
chore(library/attribute_manager): fix warning
2016-08-05 17:22:01 -07:00
Sebastian Ullrich
15595c0061
refactor(library/attribute_manager): delegate parameter parsing and printing to attribute class
2016-08-05 17:16:04 -07:00
Sebastian Ullrich
5247b426a8
fix(library/reducible): use class hierarchy to fix reducibility attributes
2016-07-29 23:44:22 -04:00
Sebastian Ullrich
31f599e088
refactor(library/attribute_manager): introduce hierarchy of attribute classes
2016-07-29 23:44:22 -04:00
Sebastian Ullrich
c4edad0372
feat(frontends/lean, library): remove attribute and metaclass scoping
...
All data is now part of either a global, permanent scope or a local,
temporary one
2016-07-29 23:44:21 -04:00
Sebastian Ullrich
463e4a2cf3
refactor(library/reducible): replace ext with attribute_manager
2016-07-29 18:51:23 -04:00
Sebastian Ullrich
0ebc9eada2
chore(tactic/simplifier/simp_lemmas): replace string literals
2016-07-29 18:51:23 -04:00
Sebastian Ullrich
661fafc940
refactor(frontends/lean): replace different attribute classes with single scoped_ext
2016-07-29 18:51:23 -04:00
Leonardo de Moura
128b557d37
refactor(frontends/lean): use attribute_manager to simplify decl_attributes
2015-12-17 22:28:53 -08:00
Leonardo de Moura
d81b2d0f29
feat(library/attribute_manager, frontends/lean/builtin_cmds): use attribute manager information when pretty print definitions
2015-12-17 21:16:31 -08:00
Leonardo de Moura
45dbf76df9
refactor(library): add attribute manager
2015-12-17 20:58:15 -08:00