Blog

BoxLang 1.0.0 Beta 18 Launched

Luis Majano October 11, 2024

Spread the word

Luis Majano

October 11, 2024

Spread the word


Share your thoughts

This release introduces several new features and configurations to enhance functionality and security. It also continues to squash tons of bugs to bring about CFML compatibility. Key updates include:

  • Enhanced arrayFind and arrayFindNoCase functions, allowing value closures to accept item indices.
  • New validBoxLangTemplates configuration for filtering templates processable by the Runnable Loader.
  • New validClassExtensions configuration to specify permissible class extensions.
  • A new security configuration section designed to disallow BIFs, Components, and Imports, enhancing security.

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

New Feature

BL-617 arrayFind, arrayFindNoCase value closures, accept the value and now the index of the item as the second param

BL-626 New configuration: validBoxLangTemplates to determine which templates the Runnable Loader can process

BL-627 New configuration: validClassExtensions to determine which class extensions to work with

BL-629 New security configuration section for disallowing: BIFS, Components, Imports

BL-630 Internal refactor to make the class locator and resolvers have a life-cycle based on the runtime and not alone

Improvement

BL-611 Remove debugmode capture on miniserver, delegate to the core runtime.

BL-622 Consolidate CastAttempt and Attempt into a hierarchy

BL-623 New DynamicFunction type that can be used to generate dynamic BoxLang functions using Java Lambda proxies. Great for code generation

Bug

BL-614 Import nested classes

BL-615 Java static funcitons not behaving as expected

BL-616 array.find does not use cf rules to convert result of predicate to boolean

BL-619 QueryColumnType doesn't handle "idstamp" (mssql)

BL-620 static scope in application.cfc not initialized before psuedoConstructor runs

BL-624 Auto-escaping of {} in regex needs to ignore already-escaped braces

BL-625 Instead of removing special chars from Java FQN, replace with __ to avoid conflicts

BL-628 Tag expressions not parsing inside template island inside braces

BL-631 duplicate() doesn't work on empty structs

BL-633 randrange() not inclusive of upper bound

BL-634 array.find - can't cast closure to string

Add Your Comment

Recent Entries

Introducing the BoxLang Spring Boot Starter: Dynamic JVM Templating for Spring

Introducing the BoxLang Spring Boot Starter: Dynamic JVM Templating for Spring

Spring Boot developers know the pain of evaluating view technologies. Thymeleaf is great — until you need more expressiveness. FreeMarker is powerful — until the syntax fights you. What if you could write templates in a dynamic JVM language that gives you the full power of the platform, feels natural, and requires zero setup to integrate?

Meet the BoxLang Spring Boot Starter.

Luis Majano
Luis Majano
March 13, 2026
Why Swiss Banks Are Modernizing CFML Platforms Without Rewrites

Why Swiss Banks Are Modernizing CFML Platforms Without Rewrites

The growing need to evolve legacy financial platforms safely

Many Swiss banks and financial institutions still operate important systems built on ColdFusion and CFML platforms.

These systems manage a wide range of functions, including:

  • internal banking workflows
  • reporting systems
  • client portals
  • data integration platforms
  • compliance and risk management tools

In many cases, thes...

Cristobal Escobar
Cristobal Escobar
March 13, 2026
Reactive vs Proactive ColdFusion Support: Why Waiting for an Outage Is the Most Expensive Strategy

Reactive vs Proactive ColdFusion Support: Why Waiting for an Outage Is the Most Expensive Strategy

Many ColdFusion environments operate in a reactive mode without realizing it.

Everything seems fine… until something breaks.

A server crashes.

Performance drops suddenly.

An integration stops working.

A security audit reveals missing patches.

At that point the response is urgent:

“Can someone help us fix this now?”

Emergency support is sometimes unavoidable. But when reactive intervention becomes the norm, it usually means something deep...

Cristobal Escobar
Cristobal Escobar
March 12, 2026