You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
assignee='https://github.com/lysnikolaou'closed_at=<Date2020-10-26.22:42:38.482>created_at=<Date2020-10-22.23:35:43.266>labels= ['interpreter-core', '3.10', 'performance']
title='Run parser twice; enable invalid_* rules only on the second run'updated_at=<Date2020-10-28.00:14:18.810>user='https://github.com/lysnikolaou'
We can avoid having to go through all the invalid rules (which might be a significant performance boost, since these may call expensive rules like primary or others), if we run the parser two times.
On the first run, all the invalid rules are disabled and do not get expanded. If a parse failure occurs anywhere, then we run the parser a second time with all these rules enabled, in order to get the correct error message.
Some benchmarking by Pablo show a ~4% speedup in the stdlib benchmark and a ~10% in the xxl benchmark.