Skip to content

v2.1.0: More modules and optimization

Compare
Choose a tag to compare
@fglock fglock released this 05 Dec 18:38
· 515 commits to master since this release

v2.1.0: More Modules, Improved Performance, and New Features

This release introduces new modules, optimizations, and extended feature support, further enhancing Perl's capabilities on the JVM.


Highlights

1. Getopt::Long Support:

The Getopt::Long module now runs seamlessly, requiring only a minor one-line change to avoid the "indirect object" syntax.

2. Efficient JSON Processing:

The JSON module leverages fastjson2 for fast encoding/decoding, while maintaining the familiar JSON.pm API from Perl.

3. Faster Output Processing:

Output to STDOUT and STDERR now occurs in a separate thread, reducing the main application's workload. This optimization delivers up to 2x faster terminal output compared to the previous version.

All Changes

1. New Modules:

  • Getopt::Long
  • JSON

2. Performance Enhancements:

  • Optimized print for STDOUT/STDERR using multithreading.

3. New Features:

  • Added the subs pragma.
  • Added regex special variable $+.
  • Added command-line switches: -v, -V.
  • Added file test operators: -R, -W, -X, -O, -t.
  • Added feature flag: evalbytes.
  • Added support for CORE::GLOBAL and overriding core functions.
  • Added support for hexadecimal floating-point numbers.

4. Internal Improvements:

  • Introduced a new io module to support additional handle types.

This update represents another significant step in bringing a robust, efficient Perl implementation to the JVM.