1.0.0-RC.1
February 18, 2025
Last updated
Was this helpful?
February 18, 2025
Last updated
Was this helpful?
🚀 BoxLang Release Candidate 1 is Here! 🚀
After nearly a year of relentless iteration, rigorous testing, blood, sweat, lots of praying, tears, and over 1,000 resolved tickets, we proudly announce the first Release Candidate (RC1) of BoxLang! With 27 beta versions behind us, we are now on the final stretch toward the official 1.0 release.
This milestone ensures that most of our libraries are fully compatible and certified for BoxLang, making it production-ready. RC1 delivers significant bug fixes, performance optimizations, and stability enhancements, enabling teams to deploy and fine-tune their applications in real-world environments confidently. We strongly encourage the community to start running production workloads now—your feedback will be instrumental in refining BoxLang ahead of the final release.
Additionally, we are thrilled to open up support license subscriptions () for BoxLang +/++, offering enterprise-grade support, priority fixes, and exclusive benefits. As an introductory offer, all licenses are available at 50% off for February. In March, with the release of RC2, discounts will adjust to 25% off—scaling down progressively until our official launch at Into The Box 2025 ().
Let me also remind you that our Visionary Licenses will cease to be offered by the end of this month. Visionary licenses are unique for 10 years and 5 years of support. If you are interested in securing a visionary license, please email us at .
We encourage you to pre-compile your applications using our BoxLang compiler for incredibly safe and high-performance deployments since no parsing is involved. Combined with our new , your applications will fly and be highly performant.
Make sure execution exceptions are propagated to an `exception.log` for all runtimes
Create getHTTPTimeString
bif in the CFML Compat Module
Missing bif: createTime()
returns 500 status code when hitting the default error page
Allow annotation values of unquoted strings
allow RHS of castas operator to omit quotes
default output to true in Application classes
Disable external DTD validation
Migrate usage of LoggerFactory.getLogger to the internal BoxLang logger classes in the core
BIF and Component abstract objects now have a logger that maps to a `runtime` logger for ease of use
Favor native java methods on a struct if there is a key of that name, but it's not a function
Improve boxpiler selection by using the interface not classes or direct implementations
Abort should not fire the `onRequestEnd` method ( or it should fail quietly )
Struct.put Usage Throws Error
BX-ORM: When First Request to Application is a CFC, the application scope is undefined when starting ORMApp attempts to instantiate
numeric key access of struct failing for BigDecimal keys
directoryList does not sort by name
Too many pattern letters: m
Trivial: Typo in error message
thread attribute scope needs to be headlessly accessible
structget() incorrectly returning true with cfml-compat installed
String caster doesn't work on char[] and produces incorrect results for Character[]
class dump template doesn't work with compat module
Access and mutation of native Java unboxed arrays doesn't work
Query objects do not allow complex data when adding columns via `queryAddColumn()` with no data type.
Can't use EMail as a returntype from EMail object
shebang detection not working and skipping execution to the REPL
isValid uuid returns false
Error executing dump template
default string representation of exception object
Dereferencing property on Java class not calling getter
Jakarta servlet removed response.setStatus( int, String ) from API
Typo in exception string for parseDateTime
getDirectoryFromPath breaks when passed a null value
Durations created by `createTimespan` can't be casted to strings
`this` scope can no longer be mutated
final access modifier with explicit static scope on assignment not working
static method access on non-imported identifer not working
boxpiler was defaulting to javaboxpiler internally, remove it, it should be null and seeded later
isSimpleValue returns true on Exception in Compat Mode
QueryParam: SQL Server Unknown Column Type `datetime`
ParseDateTime failure with `hh:nn a` mask - e.g. `03:00 PM`
onRequestEnd() not firing for on class requests