lean4-htt/src/library
Leonardo de Moura 4cfe44bed0 feat(library/compiler/specialize): add nospecialize attribute
@kha I had to add this attribute because the specializer was generated
many specialization candidates for functions that take `[has_tokens ...]`
as an argument. Moreover, these candidates had a lot of
dependencies. I am trying to workaround this issue by marking the
instances with the new attribute `[nospecialize]`.
I did not mark instances created by `[derive]`. It is quite tedious to
do it.

BTW, when I was investigating the problem I stumbled at `node.view`.
Its type is:
```
node.view :
  Π {α : Type} {m : Type → Type} [_inst_1 : monad m] [_inst_2 : monad_except (parsec.message syntax) m]
  [_inst_3 : monad_parsec syntax m] [_inst_4 : alternative m] (k : syntax_node_kind) (rs : list (m syntax))
  [i : @has_view syntax_node_kind k α], @has_view (m syntax) (@node m _inst_1 _inst_2 _inst_3 _inst_4 k rs) α
```
This looks wrong: the view depends on `[monad_parsec syntax m]`

We should also make sure definitions do not have unnecessary type
class instances. Otherwise, we will put additional stress on the code
specializer. One option is to change the frontend and filter unused
instances.
2018-10-15 17:44:26 -07:00
..
compiler feat(library/compiler/specialize): add nospecialize attribute 2018-10-15 17:44:26 -07:00
constructions feat(kernel): store structure name in proj-expressions 2018-10-02 09:23:11 -07:00
equations_compiler feat(library/compiler/compiler): switch to new compiler frontend 2018-10-08 17:38:17 -07:00
tactic chore(library/vm): remove vm_list 2018-10-02 08:44:05 -07:00
vm feat(library/compiler/compiler): switch to new compiler frontend 2018-10-08 17:38:17 -07:00
abstract_context_cache.cpp refactor(kernel): split declaration into declaration and constant_info 2018-08-22 17:53:11 -07:00
abstract_context_cache.h chore(library/type_context): remove "frozen local instances" 2018-09-07 13:17:37 -07:00
abstract_parser.h feat(library/derive_attribute): temporary, hacky C++ implementation of @[derive] 2018-08-01 18:44:23 -07:00
abstract_type_context.cpp chore(kernel): move abstract_type_context to library 2018-09-08 08:29:51 -07:00
abstract_type_context.h chore(kernel): move abstract_type_context to library 2018-09-08 08:29:51 -07:00
aliases.cpp refactor(kernel): split declaration into declaration and constant_info 2018-08-22 17:53:11 -07:00
aliases.h refactor(*): list<name> ==> obj_list<name> 2018-05-23 15:48:43 -07:00
annotation.cpp chore(kernel): move abstract_type_context to library 2018-09-08 08:29:51 -07:00
annotation.h feat(library,frontends/lean): use mdata instead of hacky cache for position information in preterms 2018-09-02 18:08:41 -07:00
app_builder.cpp chore(library/init/core): revert ite+thunks modification 2018-09-23 19:27:06 -07:00
app_builder.h chore(library): remove relation_manager 2018-09-07 12:35:04 -07:00
attribute_manager.cpp chore(library): remove fingerprint 2018-09-07 12:54:19 -07:00
attribute_manager.h chore(library): remove fingerprint 2018-09-07 12:54:19 -07:00
aux_definition.cpp chore(*): remove some old_type_checker dependencies 2018-09-07 08:48:21 -07:00
aux_definition.h feat(library/compiler, library/equations_compiler): avoid rec_fn_macro in the equation and bytecode compilers 2018-05-31 17:08:12 -07:00
aux_match.cpp fix(library/compiler): we need to unfold auxiliary nested _match applications eagerly 2018-09-18 14:17:37 -07:00
aux_match.h fix(library/compiler): we need to unfold auxiliary nested _match applications eagerly 2018-09-18 14:17:37 -07:00
aux_recursors.cpp chore(*): remove unnecessary scoped_ext dependencies 2018-09-08 15:42:48 -07:00
aux_recursors.h
bin_app.cpp
bin_app.h
cache_helper.h chore(*): type_context ==> type_context_old 2018-03-05 12:38:24 -08:00
check.cpp chore(kernel): remove expr.quote constructor 2018-09-07 22:08:08 -07:00
check.h chore(*): type_context ==> type_context_old 2018-03-05 12:38:24 -08:00
class.cpp chore(library): remove fingerprint 2018-09-07 12:54:19 -07:00
class.h chore(library): remove fingerprint 2018-09-07 12:54:19 -07:00
CMakeLists.txt fix(library/compiler): we need to unfold auxiliary nested _match applications eagerly 2018-09-18 14:17:37 -07:00
comp_val.cpp refactor(library/string): remove string_macro 2018-06-14 16:26:39 -07:00
comp_val.h chore(library): cleanup constants.txt 2018-04-12 16:43:11 -07:00
constants.cpp feat(library/init/core): add inline identity function 2018-10-10 18:17:29 -07:00
constants.h feat(library/init/core): add inline identity function 2018-10-10 18:17:29 -07:00
constants.txt feat(library/init/core): add inline identity function 2018-10-10 18:17:29 -07:00
context_cache.cpp chore(library/type_context): remove "frozen local instances" 2018-09-07 13:17:37 -07:00
context_cache.h chore(library/type_context): remove "frozen local instances" 2018-09-07 13:17:37 -07:00
deep_copy.cpp feat(kernel): store structure name in proj-expressions 2018-10-02 09:23:11 -07:00
deep_copy.h
derive_attribute.cpp feat(library/compiler/compiler): switch to new compiler frontend 2018-10-08 17:38:17 -07:00
derive_attribute.h feat(library/derive_attribute): temporary, hacky C++ implementation of @[derive] 2018-08-01 18:44:23 -07:00
error_msgs.cpp feat(frontends/lean/elaborator): show context of unassigned mvars 2018-10-08 09:32:41 -07:00
error_msgs.h refactor(kernel): move formatting stuff out of the kernel 2018-06-07 16:28:54 -07:00
eval_helper.cpp refactor(library/vm/vm_io,library/system/io): remove io classes, make errors explicit 2018-08-21 08:43:09 -07:00
eval_helper.h chore(*): type_context ==> type_context_old 2018-03-05 12:38:24 -08:00
exception.cpp refactor(*): use C++11 std::current_exception and std::rethrow_exception 2018-06-07 16:28:54 -07:00
exception.h chore(library/message_builder): handle nested kernel exceptions 2018-09-14 16:33:04 -07:00
explicit.cpp feat(library,frontends/lean): use mdata instead of hacky cache for position information in preterms 2018-09-02 18:08:41 -07:00
explicit.h
export_decl.cpp fix(library/export_decl): bug at export_decl_modification::perform 2018-05-31 09:16:46 -07:00
export_decl.h refactor(*): list<name> ==> obj_list<name> 2018-05-23 15:48:43 -07:00
expr_lt.cpp fix(library,kernel): the new proj_sname field must be taken into account during comparisons 2018-10-03 13:11:46 -07:00
expr_lt.h
expr_pair.h chore(kernel): remove dummy file 2018-09-07 21:43:15 -07:00
expr_pair_maps.h
expr_unsigned_map.h refactor(kernel/expr): implement expr using runtime/object 2018-06-21 16:05:33 -07:00
ext_exception.h refactor(kernel): move formatting stuff out of the kernel 2018-06-07 16:28:54 -07:00
formatter.cpp refactor(kernel): move formatting stuff out of the kernel 2018-06-07 16:28:54 -07:00
formatter.h refactor(kernel): move formatting stuff out of the kernel 2018-06-07 16:28:54 -07:00
fun_info.cpp refactor(kernel): simplify binder_info 2018-06-20 15:31:40 -07:00
fun_info.h feat(library): implement new cache API for fun_info 2018-03-05 15:46:42 -08:00
handle.cpp feat(library/system/io): implement io using string instead of char_buffer 2018-05-02 17:31:51 -07:00
handle.h feat(library/system/io): implement io using string instead of char_buffer 2018-05-02 17:31:51 -07:00
head_map.cpp feat(library,frontends/lean): use mdata instead of hacky cache for position information in preterms 2018-09-02 18:08:41 -07:00
head_map.h refactor(kernel): remove unnecessary expr_kind printer 2018-06-22 12:35:38 -07:00
idx_metavar.cpp refactor(kernel/expr): remove mlocal_* functions 2018-06-22 14:25:31 -07:00
idx_metavar.h
init_module.cpp fix(library/compiler): we need to unfold auxiliary nested _match applications eagerly 2018-09-18 14:17:37 -07:00
init_module.h
io_state.cpp chore(library/io_state): avoid thread local storage 2018-02-16 12:12:50 -08:00
io_state.h refactor(kernel): move formatting stuff out of the kernel 2018-06-07 16:28:54 -07:00
io_state_stream.cpp refactor(kernel): remove unnecessary expr_kind printer 2018-06-22 12:35:38 -07:00
io_state_stream.h chore(kernel): move abstract_type_context to library 2018-09-08 08:29:51 -07:00
local_context.cpp feat(kernel): implement local_decl using runtime 2018-09-08 16:25:43 -07:00
local_context.h feat(library/message_builder): pretty-print kernel_exceptions 2018-09-13 16:38:40 -07:00
local_instances.h refactor(kernel/expr): remove mlocal_* functions 2018-06-22 14:25:31 -07:00
locals.cpp chore(kernel): remove expr.quote constructor 2018-09-07 22:08:08 -07:00
locals.h chore(kernel): univ_param vs lparam, level_param_names ==> names, and other inconsistencies 2018-09-03 13:05:42 -07:00
max_sharing.cpp chore(kernel): remove expr.quote constructor 2018-09-07 22:08:08 -07:00
max_sharing.h
message_builder.cpp fix(library/message_builder): compilation warning 2018-09-17 08:53:03 -07:00
message_builder.h refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
messages.cpp chore(*): remove old task API and task queues 2018-09-11 13:55:25 -07:00
messages.h fix(library/messages,library/init/lean/message): wrap message_log in structure, reverse in the end 2018-09-11 13:55:25 -07:00
metavar_context.cpp refactor(kernel/expr): remove mlocal_* functions 2018-06-22 14:25:31 -07:00
metavar_context.h refactor(kernel/expr): remove mlocal_* functions 2018-06-22 14:25:31 -07:00
metavar_util.h refactor(kernel/expr): remove mlocal_* functions 2018-06-22 14:25:31 -07:00
module.cpp feat(library/module_mgr): profile .olean serialization/deserialization 2018-09-20 13:54:17 -07:00
module.h chore(library/compiler): skip type checking for _cstage1 declarations 2018-09-17 14:45:04 -07:00
module_mgr.cpp fix(library/module_mgr,shell/lean): catch all errors from parsing 2018-09-25 12:14:03 -07:00
module_mgr.h fix(library/module_mgr): go back to storing transitive mtime in module_info 2018-09-12 09:31:48 -07:00
noncomputable.cpp chore(library/compiler): remove old compiler steps that have already been replaced 2018-10-05 17:30:27 -07:00
noncomputable.h
num.cpp fix(library/num): to_num should support the new nat literals supported in the kernel 2018-09-27 11:13:50 -07:00
num.h refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
parray.cpp
parray.h refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
pattern_attribute.cpp
pattern_attribute.h
phash_map.h
phashtable.h
pipe.cpp refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
pipe.h
placeholder.cpp feat(library,frontends/lean): use mdata instead of hacky cache for position information in preterms 2018-09-02 18:08:41 -07:00
placeholder.h
pos_info_provider.cpp feat(library,frontends/lean): use mdata instead of hacky cache for position information in preterms 2018-09-02 18:08:41 -07:00
pos_info_provider.h feat(library,frontends/lean): use mdata instead of hacky cache for position information in preterms 2018-09-02 18:08:41 -07:00
pp_options.cpp feat(frontends/lean/pp): add pp.compact_let option 2018-09-20 12:05:48 -07:00
pp_options.h feat(frontends/lean/pp): add pp.compact_let option 2018-09-20 12:05:48 -07:00
print.cpp chore(kernel): remove expr.quote constructor 2018-09-07 22:08:08 -07:00
print.h refactor(kernel): move formatting stuff out of the kernel 2018-06-07 16:28:54 -07:00
private.cpp chore(library): remove fingerprint 2018-09-07 12:54:19 -07:00
private.h refactor(*): add runtime folder 2018-05-14 14:23:56 -07:00
process.cpp fix(process): fix inherited io on windows (handles were being incorrectly closed) 2018-02-27 10:55:42 -08:00
process.h fix(process): order of parameters of process class was wrong 2018-02-27 10:55:42 -08:00
profiling.cpp
profiling.h
projection.cpp feat(*): use new inductive datatype module 2018-09-06 18:09:22 -07:00
projection.h
protected.cpp
protected.h
reducible.cpp chore(library): remove fingerprint 2018-09-07 12:54:19 -07:00
reducible.h chore(library): remove fingerprint 2018-09-07 12:54:19 -07:00
replace_visitor.cpp chore(kernel): remove expr.quote constructor 2018-09-07 22:08:08 -07:00
replace_visitor.h chore(kernel): remove expr.quote constructor 2018-09-07 22:08:08 -07:00
replace_visitor_with_tc.cpp refactor(kernel): remove tag from kernel expressions 2018-06-08 10:29:22 -07:00
replace_visitor_with_tc.h chore(*): type_context ==> type_context_old 2018-03-05 12:38:24 -08:00
scope_pos_info_provider.cpp refactor(kernel): move formatting stuff out of the kernel 2018-06-07 16:28:54 -07:00
scope_pos_info_provider.h refactor(kernel): move formatting stuff out of the kernel 2018-06-07 16:28:54 -07:00
scoped_ext.cpp refactor(*): list<name> ==> obj_list<name> 2018-05-23 15:48:43 -07:00
scoped_ext.h chore(library): remove fingerprint 2018-09-07 12:54:19 -07:00
sorry.cpp refactor(kernel): continue constant_info/declaration refactoring 2018-08-27 17:23:26 -07:00
sorry.h chore(kernel): move abstract_type_context to library 2018-09-08 08:29:51 -07:00
string.cpp feat(*): use new inductive datatype module 2018-09-06 18:09:22 -07:00
string.h chore(kernel): move abstract_type_context to library 2018-09-08 08:29:51 -07:00
subscripted_name_set.cpp refactor(util,library): move subscripted_name_set to library 2018-06-05 08:06:32 -07:00
subscripted_name_set.h refactor(util,library): move subscripted_name_set to library 2018-06-05 08:06:32 -07:00
time_task.cpp chore(library/time_task): style 2018-02-19 10:30:49 -08:00
time_task.h feat(library/module_mgr): profile .olean serialization/deserialization 2018-09-20 13:54:17 -07:00
trace.cpp chore(kernel): move abstract_type_context to library 2018-09-08 08:29:51 -07:00
trace.h
type_context.cpp chore(library/type_context): remove dead code 2018-10-12 11:57:41 -07:00
type_context.h chore(library/type_context): remove dead code 2018-10-12 11:57:41 -07:00
user_recursors.cpp chore(library,frontends/lean): use is_constructor, is_recursor, is_inductive helper functions 2018-09-07 20:36:42 -07:00
user_recursors.h refactor(*): list<name> ==> obj_list<name> 2018-05-23 15:48:43 -07:00
util.cpp chore(library/compiler): cleanup cce 2018-09-21 10:25:35 -07:00
util.h chore(library/compiler): cleanup cce 2018-09-21 10:25:35 -07:00