> For the complete documentation index, see [llms.txt](https://boxlang.ortusbooks.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://boxlang.ortusbooks.com/readme/release-history/rc-stage/1.0.0-rc.1.md).

# 1.0.0-RC.1

February 18, 2025

🚀 **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.

### Licenses Available TODAY!

{% embed url="<https://www.boxlang.io/plans>" %}
[www.boxlang.io/plans](http://www.boxlang.io/plans)
{% endembed %}

Additionally, we are thrilled to open up **support license subscriptions (**[**https://www.boxlang.io/plans**](https://www.boxlang.io/plans)**)** 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** ([**www.intothebox.org**](http://www.intothebox.org)).

**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** [**sales@ortussolutions.com**](mailto:sales@ortussolutions.com)**.**

### Production Tips

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 [trusted cache settings](/getting-started/configuration/directives.md), your applications will fly and be highly performant.

## Release Notes

### New Features

[BL-1065](https://ortussolutions.atlassian.net/browse/BL-1065) Make sure execution exceptions are propagated to an \`exception.log\` for all runtimes

[BL-1070](https://ortussolutions.atlassian.net/browse/BL-1070) Create `getHTTPTimeString` bif in the CFML Compat Module

[BL-1071](https://ortussolutions.atlassian.net/browse/BL-1071) Missing bif: `createTime()`

### Improvement

[BL-1020](https://ortussolutions.atlassian.net/browse/BL-1020) returns 500 status code when hitting the default error page

[BL-1027](https://ortussolutions.atlassian.net/browse/BL-1027) Allow annotation values of unquoted strings

[BL-1028](https://ortussolutions.atlassian.net/browse/BL-1028) allow RHS of castas operator to omit quotes

[BL-1029](https://ortussolutions.atlassian.net/browse/BL-1029) default output to true in Application classes

[BL-1034](https://ortussolutions.atlassian.net/browse/BL-1034) Disable external DTD validation

[BL-1050](https://ortussolutions.atlassian.net/browse/BL-1050) Migrate usage of LoggerFactory.getLogger to the internal BoxLang logger classes in the core

[BL-1052](https://ortussolutions.atlassian.net/browse/BL-1052) BIF and Component abstract objects now have a logger that maps to a \`runtime\` logger for ease of use

[BL-1054](https://ortussolutions.atlassian.net/browse/BL-1054) Favor native java methods on a struct if there is a key of that name, but it's not a function

[BL-1062](https://ortussolutions.atlassian.net/browse/BL-1062) Improve boxpiler selection by using the interface not classes or direct implementations

### Bugs

[BL-816](https://ortussolutions.atlassian.net/browse/BL-816) Abort should not fire the \`onRequestEnd\` method ( or it should fail quietly )

[BL-1008](https://ortussolutions.atlassian.net/browse/BL-1008) Struct.put Usage Throws Error

[BL-1023](https://ortussolutions.atlassian.net/browse/BL-1023) BX-ORM: When First Request to Application is a CFC, the application scope is undefined when starting ORMApp attempts to instantiate

[BL-1025](https://ortussolutions.atlassian.net/browse/BL-1025) numeric key access of struct failing for BigDecimal keys

[BL-1030](https://ortussolutions.atlassian.net/browse/BL-1030) directoryList does not sort by name

[BL-1031](https://ortussolutions.atlassian.net/browse/BL-1031) Too many pattern letters: m

[BL-1032](https://ortussolutions.atlassian.net/browse/BL-1032) Trivial: Typo in error message

[BL-1033](https://ortussolutions.atlassian.net/browse/BL-1033) thread attribute scope needs to be headlessly accessible

[BL-1035](https://ortussolutions.atlassian.net/browse/BL-1035) structget() incorrectly returning true with cfml-compat installed

[BL-1037](https://ortussolutions.atlassian.net/browse/BL-1037) String caster doesn't work on char\[] and produces incorrect results for Character\[]

[BL-1038](https://ortussolutions.atlassian.net/browse/BL-1038) class dump template doesn't work with compat module

[BL-1039](https://ortussolutions.atlassian.net/browse/BL-1039) Access and mutation of native Java unboxed arrays doesn't work

[BL-1040](https://ortussolutions.atlassian.net/browse/BL-1040) Query objects do not allow complex data when adding columns via \`queryAddColumn()\` with no data type.

[BL-1041](https://ortussolutions.atlassian.net/browse/BL-1041) Can't use EMail as a returntype from EMail object

[BL-1043](https://ortussolutions.atlassian.net/browse/BL-1043) shebang detection not working and skipping execution to the REPL

[BL-1044](https://ortussolutions.atlassian.net/browse/BL-1044) isValid uuid returns false

[BL-1045](https://ortussolutions.atlassian.net/browse/BL-1045) Error executing dump template

[BL-1047](https://ortussolutions.atlassian.net/browse/BL-1047) default string representation of exception object

[BL-1048](https://ortussolutions.atlassian.net/browse/BL-1048) Dereferencing property on Java class not calling getter

[BL-1049](https://ortussolutions.atlassian.net/browse/BL-1049) Jakarta servlet removed response.setStatus( int, String ) from API

[BL-1051](https://ortussolutions.atlassian.net/browse/BL-1051) Typo in exception string for parseDateTime

[BL-1053](https://ortussolutions.atlassian.net/browse/BL-1053) getDirectoryFromPath breaks when passed a null value

[BL-1055](https://ortussolutions.atlassian.net/browse/BL-1055) Durations created by \`createTimespan\` can't be casted to strings

[BL-1058](https://ortussolutions.atlassian.net/browse/BL-1058) \`this\` scope can no longer be mutated

[BL-1059](https://ortussolutions.atlassian.net/browse/BL-1059) final access modifier with explicit static scope on assignment not working

[BL-1060](https://ortussolutions.atlassian.net/browse/BL-1060) static method access on non-imported identifer not working

[BL-1061](https://ortussolutions.atlassian.net/browse/BL-1061) boxpiler was defaulting to javaboxpiler internally, remove it, it should be null and seeded later

[BL-1066](https://ortussolutions.atlassian.net/browse/BL-1066) isSimpleValue returns true on Exception in Compat Mode

[BL-1068](https://ortussolutions.atlassian.net/browse/BL-1068) QueryParam: SQL Server Unknown Column Type \`datetime\`

[BL-1069](https://ortussolutions.atlassian.net/browse/BL-1069) ParseDateTime failure with \`hh:nn a\` mask - e.g. \`03:00 PM\`

[BL-1075](https://ortussolutions.atlassian.net/browse/BL-1075) onRequestEnd() not firing for on class requests


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://boxlang.ortusbooks.com/readme/release-history/rc-stage/1.0.0-rc.1.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
