The big vararg generated produce C code that takes 30m to compile with
clang-3.6 because of a regression (the same code takes less than 1s with
clang-3.5).
Unfortunately, clang-3.6 is currently provided by Apple to MacOS X users.
Signed-off-by: Jean Privat <jean@pryen.org>
redef class Parser
redef fun build_reduce_table
do
- _reduce_table = new Array[ReduceAction].with_items(
+ var reduce_table = new Array[ReduceAction].with_capacity(${count(rules/rule)})
+ self.reduce_table = reduce_table
$ foreach {rules/rule}
- new ReduceAction@index(@leftside)[-sep ','-]
+ reduce_table.add new ReduceAction@index(@leftside)
$ end foreach
- )
end
end