From 9c646ce6b7b0a2ce23045ce08f3283314ed82e63 Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Thu, 11 Jun 2015 15:43:33 -0400 Subject: [PATCH] parser: `build_reduce_table` uses a sequence of add instead of a `.with_items` 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 --- src/parser/xss/parser.xss | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/parser/xss/parser.xss b/src/parser/xss/parser.xss index fb8b79f..8e38001 100644 --- a/src/parser/xss/parser.xss +++ b/src/parser/xss/parser.xss @@ -20,11 +20,11 @@ $ template make_parser() 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 -- 1.7.9.5