Adds property to make Gradle download Native builds from maven.
The URL can be specified with another property or with standard Gradle
`repository { maven(...) } ` repository management blocks.
Currently, if user creates new project using wizard, there are several
invocations of Gradle. It is difficult to identify import process
itself. Now it could be done by monitoring invocations of
prepareKotlinBuildScriptModel task.
#KT-54998 Fixed
If metric impact is different for different subprojects, corresponding
metric could be reported with weight. Currently supported for numerical
metrics with override policy AVERAGE.
[Gradle, JS] Remove redundant dependsOn
[Gradle, JS] Private metrics
[Gradle, JS] Fix test with run webpack on windows
[Gradle, JS] Fix detecting of input files instead of const folder kotlin
[Gradle, JS] Change up-to-date annotations in webpack task
[Gradle, JS] Add test on webpack considering changes in dependencies in up-to-date checks
[Gradle, JS] Add test on buid cache of Webpack task
[Gradle, JS] webpack config appliers are nested inputs
[Gradle, JS] Webpack task is cacheable with relative pathes
^KT-55476 fixed
Motivation:
Users often expect simple patterns, like `[a]+` or `[^a]+`, to work fast
and without any problems, even with long strings.
Char class from the first pattern matches only 'a' and gets wrapped into
LeafQuantifierSet, and works fine with long strings indeed.
Char class from the second pattern, however, matches any character
except 'a', including supplementary code points. So, the number of chars
it consumes is not known beforehand. There is no optimization for such
char classes, and if they are matched multiple times, the stack memory
gets exhausted.
Modification:
Introduce FixedLengthQuantifierSet node.
The node represents quantifier over constructs that consume a fixed
amount of characters for a given string and index. Such constructs don't
need backtracking to find a different match. Thus, it is possible for
the node to avoid recursion when matching multiple times.
Result:
Fixes KT-46211, KT-35508 and probably KT-39789. Reproducer for the
latter issue is no longer available, but error stacktrace resembles
those of the other issues.
Motivation:
Calling AbstractCharClass.setNegative always leads to
mayContainSupplCodepoints being `true`, even when `alt` is already
equal to the argument. Given that CharClass always calls setNegative
with its constructor parameter - `negative`, mayContainSupplCodepoints
always gets set. i.e. `[a]` will have mayContainSupplCodepoints set.
mayContainSupplCodepoints affects what node (RangeSet or SupplementaryRangeSet)
wraps this char class. See Pattern.processRangeSet.
RangeSet is better optimized and avoids recursion when it is quantified.
Modification:
Set `mayContainSupplCodepoints` flag only when `alt` is updated.
When `alt` is updated, this char class gets inverted, hence now may
contain supplementary code points.
Otherwise, content of this char class does not change, i.e. no new
supplementary code points is added.
Result:
Fixes KT-46211.
Motivation:
The node was never used. Perhaps, it was copied from apache harmony
but ultimately, despite possible performance impact, SequenceSet was
used instead. See Pattern.processCharSet and AbstractSet.first.
The performance impact wouldn't be noticeable anyway.
Modification:
Keeping unused code in project is not a good practice, so get rid of it.
Result:
Less code to maintain.
'@ReplaceWith' is not that flexible in this case and proper IDE support
required for smooth migration. After such migration in IDE will be added
- deprecation should be restored.
^KT-54399 Fixed
This very simple interner mechanism ensures that when import runs
within the IDE process, we de-duplicate existing file instances.
This might have an effect, because during GradleProjectResolution
we could have plenty source sets that refer to the same
files.
^KT-55492 Verification Pending