Blog

BoxLang 1.0.0 Beta 20 Launched

Luis Majano October 25, 2024

Spread the word

Luis Majano

October 25, 2024

Spread the word


Share your thoughts

This release brings another round of powerful tools and refinements to the BoxLang community, making development more dynamic and robust than ever. We’ve added new capabilities for debugging and tracing, expanded context-sensitive controls for thread management, and introduced new methods for fluent attachment handling.

For deeper flexibility, our improvements enhance configurability, streamline session control, and add deeper levels of JSON serialization management. Plus, we’ve squashed a wide range of bugs, enhancing stability across database connections, date handling, and runtime compatibility with CFML.

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-beta20

New Feature

BL-117 trace bif and component

BL-670 Setup the thread's context class loader when an application is defined with the correct loader from the Applications java settings

BL-684 showDebugOuput added to request box context to allow for tracer/debugging outputs

BL-688 new computeAttachmentIfAbsent, to make fluent attachments on IBoxAttachable implementations

BL-689 refactor escapeHTML to the lib we use instead of multiple functions

BL-698 DateTime objects don't have a len member method

Improvements

BL-672 Add line break in dump console output

BL-673 Allow access to super scope from thread

BL-683 reuse config of validTemplateExtensions

BL-686 Add ability to deep merge config items from the environment.

BL-687 track current request context in thread

BL-690 improve concurrency of session ID creation

BL-693 Move from immutable verbiage to unmodifiable

BL-703 Need to set explicit `/` path on session cookies

BL-707 if calling serializeJSON() on a class, and the class is marked as not serializable, then return empty struct

BL-708 if calling serializeJSON() on a class, properties marked as not serialiable should be skipped.

BL-709 Arrays/Lists/Structs/Maps/Classes that have been visited already by JSON will not serialize again but show a recursion marker

Bugs

BL-640 bx-compat-cfml datediff fails to convert string

BL-645 Update parser to allow for `@module` notations on imports and `new` operators

BL-663 NOT operator precedence not grabbing operators in the chain

BL-668 Java Doc implementation is stricter that ACF and Lucee

BL-671 Missed module class hierarchy to have the runtime class loader as the parent

BL-675 ortus.boxlang.runtime.events.InterceptorPool: Errors announcing [logMessage] interception ortus.boxlang.runtime.types.exceptions.BoxRuntimeException: An error occurred while attempting to log the message

BL-676 Dump not showing BoxLang type NullValue as null

BL-678 DBInfo schema and several other columns can be null, make sure you address it

BL-680 boxclass dump looping construct exception

BL-696 java class method not found

BL-697 argument collection optional param is null

BL-701 Cannot convert class ortus.boxlang.runtime.types.DateTime to SQL type requested due to com.mysql.cj.exceptions.WrongArgumentException - Conversion from ortus.boxlang.runtime.types.DateTime to TIMESTAMP is not supported.

BL-702 DatabaseException: There is no known date-time pattern for '09/24/2024' value at ortus.boxlang.runtime.jdbc.PendingQuery.executeStatement(PendingQuery.java:390)

BL-704 cannot get lenght of native java date time objects

BL-705 Can't cast [2021-01-01 12:00: 00 pm] to a DateTime.

Add Your Comment

Recent Entries

12 Days of BoxLang - Day 4: TestBox

12 Days of BoxLang - Day 4: TestBox

Today we’re celebrating one of the most exciting new additions to the BoxLang ecosystem:

the TestBox BoxLang CLI Runner — a fast, native way to run your TestBox tests directly through the BoxLang Runtime. ⚡

No server required. No CommandBox needed. Just pure, ultra-fast BoxLang-powered testing from the command lineon Windows, Mac, and Linux.

If you’re building modern applications with BoxLang — web apps, CLIs, serverless functions, Android apps, or OS-level utilities — this new feature gives you a unified, flexible testing workflow you can run anywhere.

Victor Campos
Victor Campos
December 13, 2025
12 days of BoxLang - Day 3: SocketBox!

12 days of BoxLang - Day 3: SocketBox!

As BoxLang continues evolving into a modern, high-performance, JVM-based runtime, real-time communication becomes essential for the applications we all want to build: dashboards, collaboration tools, notifications, live feeds, multiplayer features, and more.

That’s where SocketBox steps in — the WebSocket upgrade listener built to work seamlessly with CommandBox and the BoxLang MiniServer. ⚡

Today, for Day 3, we’re highlighting how SocketBox supercharges BoxLang development by giving you fast, flexible, and framework-agnostic WebSocket capabilities.

Maria Jose Herrera
Maria Jose Herrera
December 12, 2025
12 Days of BoxLang - Day 2: CommandBox

12 Days of BoxLang - Day 2: CommandBox

BoxLang + CommandBox: The Enterprise Engine Behind Your Deployments

For Day 2 of our 12 Days of Christmas series, we’re diving into one of the most powerful parts of the BoxLang ecosystem: CommandBox the defacto enterprise servlet deployment platform for BoxLang.

If BoxLang is the language powering your applications, CommandBox is the engine room behind it all. ⚙️

Victor Campos
Victor Campos
December 11, 2025