Blog

BoxLang 1.0.0 Beta 25 Launched

Luis Majano December 13, 2024

Spread the word

Luis Majano

December 13, 2024

Spread the word


Share your thoughts

This release takes BoxLang to the next level, delivering a mix of critical bug fixes, thoughtful improvements, and exciting new features designed to enhance your development experience. With Beta25, we’ve solidified and made the ASM ByteCode BoxPiler the default compiler, refined module, and logging management, and added long-requested query of queries and JSON-based logging encoders. Additionally, we’ve tackled critical issues around debugging, compatibility, and system settings to make this the most stable and feature-complete beta yet.

At this point, we have a handful of small bugs open, which will completely certify all of the major Ortus frameworks like ColdBox, ContentBox, and over 50 modules. Complete certification is around the corner.

As a bonus, we are almost ready to release our Hibernate ORM module (bx-orm) and move into a Release Candidate phase for our entire lineup. So please test test test, and give us your feedback.

What is BoxLang?

BoxLang is a modern dynamic JVM language that can be deployed on multiple runtimes: operating system (Windows/Mac/*nix/Embedded), web server, lambda, iOS, android, web assembly, and more. BoxLang combines many features from different programming languages, including Java, CFML, Python, Ruby, Go, and PHP, to provide developers with a modern and expressive syntax.

It is also a drop-in replacement for Adobe ColdFusion and Lucee Engines.

How to get started?

Visit our docs at https://boxlang.ortusbooks.com and get coding today. If you want to try it out on the web then go to our online REPL at https://try.boxlang.io. You can also checkout our YouTube playlist: https://www.youtube.com/playlist?list=PLNE-ZbNnndB-40LvAbeSeT2Oi3V2gm_B8

Release Notes

Here are the latest release notes: https://boxlang.ortusbooks.com/readme/release-history/1.0.0-beta25

🚀 New Features

BL-121: createObject() now supports classloading arguments as the third argument.

Easily manage and control classloading with arguments to enhance flexibility and modularity.

createObject( "java", "HelloWorld", [ "/libs/paths" ]

BL-699: Dynamic Task Management in Schedulers

Added startupTask(task) to dynamically initialize tasks by name or task object.

BL-794: JSON-based Logging Support

Appenders and root configurations now include JSON encoders for enhanced logging formats.

BL-828: Improved Scheduler Logging

Scheduler logs are now effectively reported to provide better insights.

BL-829: Enhanced Module Logging

Modules now have dedicated logs to improve debugging and diagnostics.

BL-832: New Event Lifecycle: onConfigurationLoad

Introduced a new lifecycle event for IServices to optimize configuration handling.

BL-833: Enhanced Compatibility Assignments

Assignments now accurately interpret null variables for better compatibility.

BL-846: New Logging Setting: statusPrinterOnLoad

Added statusPrinterOnLoad for much-needed debugging of logging configurations.


🔧 Improvements

BL-682: Streamlined Method Expectations

Improved handling of methods that don’t expect return values for better consistency.

BL-706: Enhanced Session Cookie Controls

Added missing controls for session cookie management to improve security and compliance.

BL-760: Bytecode Line Number Enhancements

Added line number details to bytecode generated with ASM for improved debugging.

BL-766: ASM is Now the Default BoxPiler

Streamlined the toolchain by making ASM the only default stock BoxPiler.

BL-784: Optimized Replace Operations

Updated replaceAll() methods to use pre-compiled patterns for better performance.

BL-787: Unified Logging Configuration

Consolidated logging startups and configurations for both servlet and non-servlet environments.

BL-788: Support for this.componentPaths

Introduced implicit mapping support for more intuitive path management.

BL-791: Module Enable/Disable Support

Modules can now be enabled or disabled using enabled in boxlang.json, removing double negatives like disabled.

BL-809: Forms Module Introduced

A new module for handling forms was added, enhancing the BoxLang ecosystem.

BL-812: Improved Scope Assignment

Allowed reassignment of a scope to a struct for more flexible programming.

BL-822: Collision Prevention in IClassRunnable Methods

Prefixed methods to prevent naming collisions for safer execution.

BL-830: Graceful Module Unloading

Added defensive coding for module unloading failures to ensure runtime stability.

BL-831: Consistent Struct Collector Outputs

Resolved inconsistencies by ensuring collectors return Struct objects.

BL-839: Improved Parent Class Delegation

Enhanced module class loaders to delegate certain parent classes to the parent loader exclusively.


🐛 Bug Fixes

• ASM and Debugging Fixes:

BL-694, BL-742, BL-759, BL-762, BL-760

• Localization and Formatting Issues:

BL-819, BL-825, BL-820

• Parsing Errors:

BL-823, BL-824, BL-827

• Thread and Scope Resolution Bugs:

BL-813, BL-815, BL-817

• Miscellaneous:

BL-826, BL-836, BL-841, BL-845


Why Upgrade?

Ready to dive in? 🚀 Update to Beta 25 now and take your BoxLang projects to the next level!

Add Your Comment

Recent Entries

Ortus Solutions Returns to CFCamp as Platinum Sponsor – Join Us to Redefine the Future with BoxLang!

Ortus Solutions Returns to CFCamp as Platinum Sponsor – Join Us to Redefine the Future with BoxLang!

We’re thrilled to announce that Ortus Solutions and BoxLang will once again join CFCamp as Platinum Sponsors for the 2025 edition. As passionate advocates of innovation in the CFML and modern JVM space, we’re proud to keep pushing boundaries—and this year is shaping up to be our biggest presence yet.

Day 1 Keynote by Luis Majano

CFCamp 2025 will kick off with a keynote delivered by none other than our CEO and BoxLang creator, Luis Majano. Join...

Cristobal Escobar
Cristobal Escobar
April 25, 2025
Must-See Into the Box 2025 Sessions for CommandBox Users!

Must-See Into the Box 2025 Sessions for CommandBox Users!

Power Up your CommandBox experience and practices at Into the Box 2025

Want to get hands-on with the new CommandBox features or learn how others are pushing it to the next level? These are the must-see sessions at ITB 2025 if you're a CommandBox user:

Maria Jose Herrera
Maria Jose Herrera
April 21, 2025
Must-See ITB 2025 Sessions for TestBox Users!

Must-See ITB 2025 Sessions for TestBox Users!

Are you a fan of TestBox or looking to level up your testing game in 2025? Whether you're just getting started with unit testing or you're already building advanced specs for ColdBox and BoxLang apps, Into the Box 2025 has an exciting lineup tailored just for you. Into the Box 2025 has an exciting lineup tailored just for you. With the recent launch of TestBox 6.3.0 we have amazing new tools, features and tips and tricks to get your testing experience to the next level, review our sessions and test like a pro efficiently and easy!

From hands-on testing strategies to BoxLang innovations, here are the sessions you won’t want to miss this May — and why they matter to you as a TestBox user.

Maria Jose Herrera
Maria Jose Herrera
April 17, 2025