This is an automated email from the ASF dual-hosted git repository.
asf-gitbox-commits pushed a change to branch GROOVY-12133
in repository https://gitbox.apache.org/repos/asf/groovy.git
omit c807c6edd4 GROOVY-12133: Implement findBalanced utility to support
Regex Balanced Groups
add acc614d5af GROOVY-11947: Add timing utility methods (timed,
timedNanos) and Timed record to groovy-jdk
add 5d8659bf00 some tweaks to improve CI flakiness - still failing
somewhat regularly for some Grape caching cases
add 7b3c77f788 GROOVY-12135: groovy-contracts: Add a ThrowsIf annotation
add fe3022e5aa Merge remote-tracking branch 'origin/master'
add 5897f1a7ea GROOVY-12136: groovy-contracts: allow @Requires to opt out
of weaving the contract
add f3dde776d6 Bump actions/setup-java from 5.3.0 to 5.4.0
add c6fa475e9e GROOVY-12124: Modernize the TimeCategory date/time DSL: add
a java.time flavor and a dequirked java.util.Date flavor
add db67a76d22 GROOVY-12065: Implement peephole optimization for bytecode
generation
add 3bb37d84d5 bump gradle to 9.6.1
add af2e537a7a Trivial refactor: extract constants
add e3c89fd2ea GROOVY-12139: vararg-of-arrays argument wrapping fails
under classic compilation
add 58162cf458 GROOVY-7785: Stack overflow when using too many chained
method calls (guard test to pin current behavior: indy only not classic)
add 23780cf25f GROOVY-12140: normalize reflectively boxed primitive
returns through valueOf
add 5fa863ecbb minor items
add 820056da83 GROOVY-12141: Improved dependency caching
add 523fd1ed16 GROOVY-12117: Add a test to lock-in required trait ordering
add 07adcb35b9 GROOVY-12134: @Delegate regression: fails to skip a final
method inherited from a precompiled superclass
add 49fb716307 Close GroovyClassLoader created for one-off compilation
add aa30a69065 Close per-test GroovyClassLoader in contracts BaseTestClass
add 63865c6ed9 GROOVY-12145: Re-enable AstNodeToScriptAdapterTest disabled
by JUnit 5 migration
add c5dc1a10f4 GROOVY-12144: Fix AstNodeToScriptAdapter decompiler
rendering fidelity
add fa8587a251 GROOVY-12132: groovyc: print collected warnings on
successful compilation (make -w effective)
add 2d34edd589 GROOVY-12146: order reflection calls to ensure Annotation
members are ordered
add cbff4ba02c GROOVY-12131: OptimizerVisitor: detect constant nodes
shared across classes
add 375648707c GROOVY-12131: address review comments
add 982c75e212 GROOVY-12143: lambda hoisting (GEP-27)
add f3e3bffa42 GROOVY-12143: use the fluent AstQuery API for the
nested-function check
add a9ead47e27 GROOVY-12147: Add locale-aware number, currency and percent
formatting/parsing to the GDK
add c60513a590 GROOVY-12148: fix out-of-bounds read on dangling escape in
decodeJsonString
add 9d01e177d8 GROOVY-12117: replace super trait search with more complete
helper stub
new a71e19e232 GROOVY-12133: Implement findBalanced utility to support
Regex Balanced Groups
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (c807c6edd4)
\
N -- N -- N refs/heads/GROOVY-12133 (a71e19e232)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.github/workflows/codeql-analysis.yml | 2 +-
.github/workflows/grails-joint-validation.yml | 22 +-
.github/workflows/groovy-build-artifacts.yml | 2 +-
.github/workflows/groovy-build-coverage.yml | 56 +-
.github/workflows/groovy-build-dist.yml | 2 +-
.github/workflows/groovy-build-performance.yml | 21 +-
.github/workflows/groovy-build-test.yml | 126 +++-
.github/workflows/groovy-jmh-adhoc.yml | 21 +-
.github/workflows/groovy-jmh-classic.yml | 21 +-
.github/workflows/groovy-jmh-daily.yml | 21 +-
.github/workflows/groovy-jmh.yml | 21 +-
.github/workflows/groovy-perf-daily.yml | 21 +-
.github/workflows/groovy-rat-check.yml | 23 +-
.github/workflows/micronaut-joint-validation.yml | 22 +-
.github/workflows/validate-actions.yml | 23 +-
.../main/groovy/org.apache.groovy-tested.gradle | 19 +
gradle.properties | 2 +-
gradle/wrapper/gradle-wrapper.jar | Bin 43583 -> 48462 bytes
gradle/wrapper/gradle-wrapper.properties | 4 +-
gradlew | 18 +-
gradlew.bat | 36 +-
src/main/java/groovy/time/BaseDuration.java | 4 +
.../java/groovy/time/DatumDependentDuration.java | 5 +
src/main/java/groovy/time/Duration.java | 5 +
src/main/java/groovy/time/TimeCategory.java | 5 +
.../groovy/time/TimeDatumDependentDuration.java | 6 +
src/main/java/groovy/time/TimeDuration.java | 6 +-
src/main/java/groovy/time/Timed.java | 67 ++
src/main/java/groovy/util/regex/BalancedGroup.java | 113 ++++
.../java/org/codehaus/groovy/ast/ModuleNode.java | 3 +-
.../groovy/classgen/AsmClassGenerator.java | 32 +-
.../org/codehaus/groovy/classgen/Verifier.java | 7 +-
.../groovy/classgen/asm/BytecodeHelper.java | 4 +
.../groovy/classgen/asm/CallSiteWriter.java | 6 +-
.../codehaus/groovy/classgen/asm/OperandStack.java | 57 +-
.../asm/PeepholeOptimizingMethodVisitor.java | 744 +++++++++++++++++++++
.../classgen/asm/sc/StaticTypesLambdaWriter.java | 204 +++++-
.../codehaus/groovy/control/OptimizerVisitor.java | 36 +-
.../org/codehaus/groovy/control/SourceUnit.java | 18 +-
.../codehaus/groovy/reflection/CachedMethod.java | 13 +-
.../codehaus/groovy/reflection/ParameterTypes.java | 22 +-
.../groovy/runtime/DefaultGroovyMethods.java | 62 ++
.../groovy/runtime/DefaultGroovyStaticMethods.java | 80 +++
.../codehaus/groovy/runtime/MetaClassHelper.java | 24 +
.../org/codehaus/groovy/runtime/RegexSupport.java | 104 +--
.../groovy/runtime/StringGroovyMethods.java | 112 +++-
.../callsite/PlainObjectMetaMethodSite.java | 4 +-
.../codehaus/groovy/tools/FileSystemCompiler.java | 57 +-
.../transform/DelegateASTTransformation.java | 5 +-
.../TupleConstructorASTTransformation.java | 3 +-
.../transform/trait/TraitReceiverTransformer.java | 29 +-
.../codehaus/groovy/transform/trait/Traits.java | 84 ++-
.../org/codehaus/groovy/vmplugin/v8/Java8.java | 4 +
src/spec/doc/tools-groovyc.adoc | 35 +
src/test/groovy/bugs/Groovy11182.groovy | 28 +-
src/test/groovy/bugs/Groovy12133.groovy | 71 +-
src/test/groovy/bugs/Groovy12140.groovy | 66 ++
src/test/groovy/bugs/Groovy7785.groovy | 9 +
.../groovy/time/DatumDependentDurationTest.groovy | 1 +
src/test/groovy/groovy/time/DurationTest.groovy | 3 +-
.../groovy/groovy/time/TimeCategoryTest.groovy | 1 +
.../time/TimeDatumDependentDurationTest.groovy | 1 +
.../groovy/groovy/time/TimeDurationTest.groovy | 1 +
.../groovy/transform/stc/LambdaHoistTest.groovy | 265 ++++++++
.../groovy/groovy/transform/stc/LambdaTest.groovy | 7 +
.../groovy/classgen/BytecodeHelperTest.groovy | 55 +-
.../classgen/asm/BinaryOperationsTest.groovy | 27 +-
.../asm/PeepholeBytecodeIntegrationTest.groovy | 104 +++
.../asm/PeepholeOptimizingMethodVisitorTest.groovy | 436 ++++++++++++
.../groovy/classgen/asm/TypeAnnotationsTest.groovy | 3 +
.../classgen/asm/sc/StaticCompilationTest.groovy | 4 -
.../asm/sc/StaticCompileComparisonTest.groovy | 4 +-
...StaticCompileNullCompareOptimizationTest.groovy | 6 +-
.../groovy/control/OptimizerVisitorTest.groovy | 143 ++++
.../runtime/DefaultGroovyStaticMethodsTest.groovy | 37 +
.../groovy/runtime/StringGroovyMethodsTest.java | 36 +
.../groovy/tools/FileSystemCompilerTest.java | 80 +++
.../groovy/transform/DelegateTransformTest.groovy | 97 ++-
.../groovy/transform/traitx/Groovy11985.groovy | 17 +
.../org/codehaus/groovy/ant/GenerateStubsTask.java | 58 +-
.../main/java/org/codehaus/groovy/ant/Groovy.java | 4 +
.../java/org/codehaus/groovy/ant/GroovycTask.java | 78 +--
.../console/ui/AstNodeToScriptAdapter.groovy | 60 +-
.../console/ui/AstNodeToScriptAdapterTest.groovy | 195 +++++-
.../src/main/java/groovy/contracts/Requires.java | 34 +
.../src/main/java/groovy/contracts/ThrowsIf.java | 201 ++++++
...uresConditions.java => ThrowsIfConditions.java} | 16 +-
.../apache/groovy/contracts/ThrowsIfSupport.java | 94 +++
...ariantViolation.java => ThrowsIfViolation.java} | 44 +-
.../contracts/ast/ThrowsIfASTTransformation.java | 287 ++++++++
.../ast/visitor/AnnotationProcessorVisitor.java | 16 +
.../groovy/contracts/generation/BaseGenerator.java | 31 +-
.../generation/PostconditionGenerator.java | 2 +-
.../generation/PreconditionGenerator.java | 2 +-
.../src/spec/doc/contracts-userguide.adoc | 170 +++++
.../src/spec/test/ContractsTest.groovy | 120 ++++
.../contracts/tests/basic/BaseTestClass.groovy | 7 +
.../contracts/tests/other/ThrowsIfTests.groovy | 522 +++++++++++++++
.../InheritedPostconditionInlineModeTests.groovy | 109 +++
.../contracts/tests/pre/RequiresWovenTests.groovy | 149 +++++
.../org/apache/groovy/datetime/TimeCategory.java | 178 +++++
.../src/spec/doc/_working-with-datetime-types.adoc | 33 +
.../apache/groovy/datetime/TimeCategoryTest.groovy | 100 +++
.../org/apache/groovy/dateutil/BaseDuration.java | 187 ++++++
.../groovy/dateutil/DatumDependentDuration.java | 68 ++
.../java/org/apache/groovy/dateutil/Duration.java | 72 ++
.../org/apache/groovy/dateutil/TimeCategory.java | 138 ++++
.../dateutil/TimeDatumDependentDuration.java | 60 ++
.../org/apache/groovy/dateutil/TimeDuration.java | 63 ++
.../src/spec/doc/_working-with-dateutil-types.adoc | 24 +
.../org/apache/groovy/dateutil/DurationTest.groovy | 171 +++++
.../groovy/dateutil}/TimeCategoryTest.groovy | 114 ++--
.../org/apache/groovy/json/internal/CharBuf.java | 4 +-
.../json/JsonSlurperMalformedStringTest.groovy | 79 +++
114 files changed, 6886 insertions(+), 549 deletions(-)
create mode 100644 src/main/java/groovy/time/Timed.java
create mode 100644 src/main/java/groovy/util/regex/BalancedGroup.java
create mode 100644
src/main/java/org/codehaus/groovy/classgen/asm/PeepholeOptimizingMethodVisitor.java
create mode 100644 src/test/groovy/bugs/Groovy12140.groovy
create mode 100644 src/test/groovy/groovy/transform/stc/LambdaHoistTest.groovy
create mode 100644
src/test/groovy/org/codehaus/groovy/classgen/asm/PeepholeBytecodeIntegrationTest.groovy
create mode 100644
src/test/groovy/org/codehaus/groovy/classgen/asm/PeepholeOptimizingMethodVisitorTest.groovy
create mode 100644
src/test/groovy/org/codehaus/groovy/control/OptimizerVisitorTest.groovy
create mode 100644
subprojects/groovy-contracts/src/main/java/groovy/contracts/ThrowsIf.java
copy
subprojects/groovy-contracts/src/main/java/groovy/contracts/{EnsuresConditions.java
=> ThrowsIfConditions.java} (77%)
create mode 100644
subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/ThrowsIfSupport.java
copy
subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/{LoopInvariantViolation.java
=> ThrowsIfViolation.java} (50%)
create mode 100644
subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/ast/ThrowsIfASTTransformation.java
create mode 100644
subprojects/groovy-contracts/src/test/groovy/org/apache/groovy/contracts/tests/other/ThrowsIfTests.groovy
create mode 100644
subprojects/groovy-contracts/src/test/groovy/org/apache/groovy/contracts/tests/post/InheritedPostconditionInlineModeTests.groovy
create mode 100644
subprojects/groovy-contracts/src/test/groovy/org/apache/groovy/contracts/tests/pre/RequiresWovenTests.groovy
create mode 100644
subprojects/groovy-datetime/src/main/java/org/apache/groovy/datetime/TimeCategory.java
create mode 100644
subprojects/groovy-datetime/src/test/groovy/org/apache/groovy/datetime/TimeCategoryTest.groovy
create mode 100644
subprojects/groovy-dateutil/src/main/java/org/apache/groovy/dateutil/BaseDuration.java
create mode 100644
subprojects/groovy-dateutil/src/main/java/org/apache/groovy/dateutil/DatumDependentDuration.java
create mode 100644
subprojects/groovy-dateutil/src/main/java/org/apache/groovy/dateutil/Duration.java
create mode 100644
subprojects/groovy-dateutil/src/main/java/org/apache/groovy/dateutil/TimeCategory.java
create mode 100644
subprojects/groovy-dateutil/src/main/java/org/apache/groovy/dateutil/TimeDatumDependentDuration.java
create mode 100644
subprojects/groovy-dateutil/src/main/java/org/apache/groovy/dateutil/TimeDuration.java
create mode 100644
subprojects/groovy-dateutil/src/test/groovy/org/apache/groovy/dateutil/DurationTest.groovy
copy {src/test/groovy/groovy/time =>
subprojects/groovy-dateutil/src/test/groovy/org/apache/groovy/dateutil}/TimeCategoryTest.groovy
(68%)
create mode 100644
subprojects/groovy-json/src/test/groovy/groovy/json/JsonSlurperMalformedStringTest.groovy