1.0.0-Beta23
November 23, 2024
Introducing BoxLang 1.0.0 Beta 23
The latest release of BoxLang, Beta 23, marks a significant step forward in our journey to create the ultimate dynamic language for the JVM. Packed with powerful new features, important bug fixes, and thoughtful optimizations, this update is designed to make your development experience smoother, faster, and more reliable, especially after now starting to take 100s of comments and bug reports from our community.
Modularity takes center stage in this release with the ability to define BoxLang components (aka Tags) within modules and a new version-checking mechanism that ensures module compatibility. Database interactions are now more intuitive with enhancements to the Generic JDBC Driver, and the introduction of the getSemver()
function brings a robust tool for managing semantic versioning with precision and ease.
Debugging and performance have also seen improvements. The dump
function now outputs directly to the console in scripting contexts, simplifying debugging workflows, while significant optimizations in functions like len()
and the DateTimeCaster
improve execution speed and efficiency. We've also addressed critical issues around argument handling, JDBC URL creation, and logging performance, ensuring a more stable and predictable environment for your applications.
Please continue to test your applications as we continue to push forwards towards stable release this winter.
🚀 New Features
Component in BX for Modules (BL-750) Modules in BoxLang just got a serious upgrade! You can now build components for BoxLang using BoxLang. No more Java ma!
Module Compatibility Check (BL-768) The
ModuleService
now includes a powerful compatibility check for the "boxlang" version in yourbox.json
. This ensures that your modules are running on a supported version of BoxLang, avoiding unexpected runtime issues. Just add theminimumVersion
to thebox.json
under theboxlang
section and it will tell the Module Service which supported minimum version your module will work on.
Generic JDBC Driver Enhancement (BL-771) We've added a default URL delimiter to the Generic JDBC Driver. This improvement makes BoxLang more adaptable to various database configurations, simplifying JDBC URL handling for databases with unique delimiter requirements.
New
getSemver()
BIF (BL-777) Introducing thegetSemver()
built-in function! You can now quickly parse or construct semantic versioning (semver) strings and work with them asSemver
objects for enhanced version management. The new BIF will parse and give you aSemver
object to work with. You can also use it to build fluent semantic version strings.
🔧 Improvements
Console Output for
dump
in Scripting Contexts (BL-769) Debugging just got easier! By default, thedump
function now outputs to the console when running in scripting contexts, making it seamless to debug CLI scripts.Optimized
len()
Function (BL-770) Thelen()
function is now smarter and faster! We've removed unnecessary date parsing, resulting in better performance.
🛠️ Tasks
Query Options Completion (BL-116) We've implemented unfinished query options, giving you more control and flexibility when working with data queries.
🐞 Bug Fixes
abort
incfdump
Tag (BL-761) Resolved an issue where usingabort
in conjunction with thecfdump
tag caused unexpected errors.Whitespace Handling in HTTP Responses (BL-763) Improved handling of whitespace in responses where the
Content-Type
header was not yet set, ensuring better compatibility with various HTTP clients.Positional vs Named Arguments (BL-765) Fixed inconsistent behavior when handling arguments passed by position versus named.
Invalid JDBC URLs (BL-772) Corrected the handling of the
dsn
key for JDBC drivers, ensuring compatibility withcfconfig
replacements and producing valid JDBC URLs.Improved DateTime Performance (BL-774) Enhanced the performance of the
DateTimeCaster
andDateTime
object instantiation when working with strings.Endless Recursion in
onSessionStart()
(BL-775) Addressed an issue where theonSessionStart()
event could cause infinite recursion under certain conditions.debugmode
inboxlang.json
(BL-776) Fixed a problem where thedebugmode
flag was not being utilized as expected.Servlet Debug Mode Reconfiguration (BL-778) Resolved issues with reconfiguring debug mode in servlet-based environments.
Logging Performance (BL-779) Overhauled the
LoggingInterceptor
to prevent inefficient recreation of appenders and loggers, especially under heavy stress.Missing
application
Argument in Logging (BL-780) Thewritelog
andlog
components now properly support theapplication
boolean argument.
Why Upgrade?
This release has powerful new features, performance enhancements, and critical bug fixes. Whether you're a developer building complex applications or managing modular systems, Beta 23 makes your BoxLang experience smoother and more efficient.
Ready to dive in? 🚀 Update to Beta 23 now and take your BoxLang projects to the next level!
Last updated