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

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)