Changelog for Groovy 6.0.0-RC-1
Bug
- [GROOVY-12295] - CsvSlurper: parsing fails with useHeader=false despite documented auto-generated column names
- [GROOVY-12296] - CsvBuilder: toCsv(data, type) emits columns in alphabetical rather than declaration order
- [GROOVY-12301] - STC does not resolve generic return type properly
- [GROOVY-12303] - ClassNodeResolver: NoClassDefFoundError during class-loader lookup aborts resolution
- [GROOVY-12305] - STC vs static compile: type-coercion in ternary expression is not handled properly in static compilation
- [GROOVY-12307] - Indy: MetaClass change during call-site linking can be lost
- [GROOVY-12308] - MetaClassImpl.addMetaBeanProperty (and addNewInstance/StaticMethod) should reject an initialized metaclass like addMetaMethod does
- [GROOVY-12309] - Closure calls with Object[] parameter under static compilation get the wrong argument
- [GROOVY-12320] - ChannelSelect.select() consumes from losing branches; add fair selection policy
Dependency upgrade
- [GROOVY-12298] - Bump maven-resolver-supplier-mvn4 to 2.0.22
- [GROOVY-12299] - Bump plexus-utils to 4.1.0
- [GROOVY-12302] - Bump spotbugs to 4.10.4
- [GROOVY-12321] - Bump antlr to 4.13.2.16
- [GROOVY-12336] - Bump jline to 4.4.1
Improvement
- [GROOVY-12256] - Add ABI marker annotation
- [GROOVY-12281] - Investigate mitigating class-loader pinning by ClassInfo.globalClassValue under the default ClassValue implementation
- [GROOVY-12294] - STC: emit consistent category error for all use() overloads
- [GROOVY-12306] - Error tolerance is not applied to type checking errors and has no unlimited setting
- [GROOVY-12311] - Support check-only compilation (stop after CLASS_GENERATION instead of INSTRUCTION_SELECTION but before OUTPUT)
- [GROOVY-12312] - Add a compact, machine-readable diagnostic output format to groovyc
- [GROOVY-12314] - Align field-backed property access across compilation modes *
- [GROOVY-12316] - groovy.antlr4.cache.threshold silently disables pressure-based DFA clearing
- [GROOVY-12318] - bound the parser DFA cache by size
- [GROOVY-12319] - Java compatibility: remaining generic type syntax
- [GROOVY-12322] - Inline the nls parser rule
- [GROOVY-12323] - ChannelSelect: add claimable send offers (output guards)
- [GROOVY-12324] - ChannelSelect: add per-select preconditions so a guard can be masked off without renumbering branches
- [GROOVY-12325] - Speed up CachedMethod.invoke with a generated JIT-constant trampoline
- [GROOVY-12326] - ChannelSelect: guard an offer directly with receive(c).when(cond)
- [GROOVY-12327] - JsonSlurper: bound the cost of parsing a wide JSON object
- [GROOVY-12328] - GROOVY-12328: JsonSlurper: read a long string in linear time on the large-file parser
- [GROOVY-12329] - JsonSlurper: bound the length of a JSON number token *
- [GROOVY-12330] - Improve JsonOutput.prettyPrint for large documents
- [GROOVY-12331] - Improve XmlNodePrinter handling for large documents
- [GROOVY-12333] - findBalancedGroups: bound the cost of deeply nested input
- [GROOVY-12334] - constrain groovysh /slurp auto payload formats
- [GROOVY-12335] - limit umask for groovysh history and session state files
- [GROOVY-12337] - limit umask when using groovy -i
- [GROOVY-12338] - harden StreamingSAXBuilder comment/PI breakout validation *
- [GROOVY-12339] - Additional Closure serialization cycle checks
- [GROOVY-12341] - sync GroovyPosixCommands with the JLine 4.4.1
- [GROOVY-12342] - improve withBatch/addBatch doco re SQL injection
- [GROOVY-12343] - Provide AsyncChannel.after
- [GROOVY-12344] - Replace TemplateServlet backend cache class
- [GROOVY-12346] - Provide a GroovySocketServer constructor variant with an address
- [GROOVY-12347] - Improve escaping for DomToGroovy
- [GROOVY-12348] - Harden JMXBuilder configuration
- [GROOVY-12349] - sync GroovyPosixCommands with upstream changes
- [GROOVY-12350] - Handle ?? escapes in SQL InListExpander
- [GROOVY-12351] - @SafeRegex should handle regexes in nested and anonymous inner classes
- [GROOVY-12352] - improve consistency of JSON date parsing *
* potentially breaking change (read issue for details - even minor differences are sometimes flagged as potentially breaking changes)