It is my pleasure to announce the release of ProGuard 4.3. ProGuard is a free Java class file shrinker, optimizer, obfuscator, and preverifier.
This release adds a number of exciting new features to each of the processing steps.
Most notably, the optimization step now merges classes, whenever possible. This feature is especially welcomed by developers for Java Micro Edition. Merging classes cuts down on the overhead of class files, thus saving a few precious bytes for constrained devices. The merging is fully automatic, although it is necessarily conservative in order not to break any code or inflate memory usage at run-time.The optimization step now also replaces tail recursion calls by simple loops. Tail recursion has received some attention recently with the increased interest in functional languages. More advanced compilers of functional languages for the JVM already simplify these calls when compiling to bytecode. ProGuard achieves the same for ordinary Java code.
The optimization step now also performs a static single assignment analysis and more peephole optimizations.
The obfuscation step now accepts dictionaries for obfuscated class names and package names. The examples contain some dictionaries for fun with words in bytecode.
Finally, this release also fixes a number of bugs that have been reported on the previous versions.
ProGuard is distributed under the terms of the GPL. You can download the program, documentation, and examples from proguard.sourceforge.net.