New Releases! ProGuard 7.3.1 With Kotlin 1.8 Support & ProGuardCORE 9.0.7

In conjunction with the Kotlin 1.8.0 release our team added support for it in ProGuard 7.3.1! In addition, we are happy to share numerous improvements and changes with ProGuardCORE 9.0.7, including the ability to process Kotlin 1.8 metadata.

You can apply the latest updates and view the full release notes here:

ProGuard 7.3.1

ProGuardCORE 9.0.7

ProGuard 7.3.1 Notes

Kotlin support

  • Add support for Kotlin 1.8.

Improved

  • Conservative optimization is now the default. Previously, it could be enabled by setting the optimize.conservatively system property. This has been replaced with the -optimizeaggressively option, which sets optimization to aggressive.
  • Improve optimization performance in edge cases with generated code. (#283)

ProGuardCORE 9.0.7

Improved

  • Don’t report warnings for missing Kotlin default implementation classes when initializing with ClassReferenceInitializer.
  • Only link matching methods in Kotlin file facades with MethodLinker.
  • Extend the LimitedHashMap parameterization with an element exclusion selector.
  • Add the possibility to add a predicate to taint sources and sinks for selective response to calls.

API Improvements

  • Add KotlinMetadataAsserter to check the integrity of Kotlin metadata.
  • Add JvmReturnTaintSink to support return instruction sinks in taint analysis.
  • Use method signatures instead of fully qualified names in taint sources and sinks.

API changes

  • JvmTaintSink has been generalized, use JvmInvokeTaintSink to have the old functionalities.