Fix performance regression in compiler around behaviours #2001
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When the commit at 8c4a74a
introduced a recursive search for build elements, it accidentally did so
using a function that accepts a regex for its match.
In doing so, if a behaviour or include had a name such as
common_prefix
and that multiple other modules used the namecommon_prefix_<rest_of_name>
, all the other files would be seen asdependencies to be checked in a directed graph.
This resulted in continuous re-checking of files that kept depending on
each others and blew the compile time up exponentially.
By using a delimitation on the regex (
^<modulename>$
), the build comesback down to finding only the right files and becomes fast again.
Fixes #1997