It was determined that we are unnecessarily reallocating parser
state for each line we read. Since the parsing is simple, we
just replaces Bigloo's built-in lalr parsing facility with
a hand-coded one. This eliminated the allocation on every
line read and improved performance.
Note: There is one change in semantics. The old parser would
return a single element list consisting of an empty string when
parsing newline only line. It now returns an empty list. In my
mind, this is an improvement, the other behavior could be confusing.
Was there no fields or a single empty field.
It was determined that we are unnecessarily reallocating parser state for each line we read. Since the parsing is simple, we just replaces Bigloo's built-in lalr parsing facility with a hand-coded one. This eliminated the allocation on every line read and improved performance.
Note: There is one change in semantics. The old parser would return a single element list consisting of an empty string when parsing newline only line. It now returns an empty list. In my mind, this is an improvement, the other behavior could be confusing. Was there no fields or a single empty field.