1.0.0-Beta10
August 16, 2024
BoxLang Betas are released weekly. This is our tenth marker and we are incredibly excited to bring you a very big release. This gives us a huge push forwards towards compatibility with other engines and many more new features we have always wanted in our language. Enjoy!
Release notes - BoxLang - 1.0.0-Beta10
New Features
BL-435 transpile queryGetRow() to queryRowData()
Ths is a compatibility feature for CFML engines so they can use the queryGetRow()
BIF which internally funnels to the queryRowData
()
method.
BL-436 Ini files support
CFML engines always had half baked support for working with INI files. We now have full support and a fluent way to interact with ini
files. This is really important for those building IoT solutions or interacting with micro processor devices. To get started use the boxlang installer install-bx-module bx-ini
or if using CommandBox: install bx-ini
Here is a typical ini file example:
Here are the contributed functions in this module:
getIniFile( file )
: Reads an ini file and returns the IniFile object. If the file does not exist, it will create it.getProfileSection( iniFile, section )
: Gets a section from the ini file as a structgetProfileSections( iniFile )
: Gets all the sections from the ini file as a struct of structsgetProfileString( iniFile, section, entry )
: Gets an entry from a section in the ini file, if it does not exist, it will return an empty stringsetProfileString( iniFile, section, entry, value )
: Sets an entry in a section in the ini file, if the section does not exist, it will create itremoveProfileSection( iniFile, section )
: Removes a section from the ini fileremoveProfileString( iniFile, section, entry )
: Removes an entry from a section in the ini file
The IniFile
object is a fluent object that allows you to work with ini files in a very easy way. Here is an example of how to use it:
BL-437 JSStringFormat BIF
This BIF is now complete to provide JavaScript escaping when using BoxLang as the template processor:
BL-439 xml component
We have now finalized XML support in BoxLang with a beautiful xml
component:
These two functions now exist in the compat
module. It allows you to set and get variables in the variables
scope. This can also be used to retrieve dynamic variable names or set dynamic variable names:
BL-444 Add getClientVariablesList() to compat
Legacy client
scope support added to the compat module
BL-448 New getDescendantsOfType() AST method with predicate
This is an internal method of our contexts to allow us to retrieve things easily with predicates.
BL-449 Implement single quote escapes in queries and preserveSingleQuotes
We thought this was going to be an easy one. preserveSingleQuotes()
is now built for the core language to assist when building dynamic SQL and escaping quotes smartly.
BL-450 Allow .cfm and .cfs files from the boxlang CLI runner
Our BoxLang runner now allows for the CLI execution of cfm
and cfs
files directly along side BoxLang templates.
BL-440 Add isNumericDate BIF
This BIF is now in the core thanks to a client migration.
BL-441 Add getHTTPTimeString BIF to web-support
Our web support package gets a new BIF thanks to a client migration
BL-143 Writedump label support
WriteDump in BoxLang now get beautiful labels!
BL-447 java.math.BigInteger caster
We have a new caster for BigInteger and BigDecimal to help us with precise mathematics in BoxLang.
Improvements
BL-425 When doing class serialization make sure to identify which properties have `serialize=false` on them
Our serializer to binary for classes now respects the serialize
annotation on properties.
BL-426 content component can have body
BL-429 Enhance error messages for parsing invalid tag code
Bugs
BL-427 MalformedInputException: Input length = 1 when parsing CFC
BL-428 component detection can be tricked if there is a tag comment line starting with the word "component"
BL-432 Regression: Can't run files via BoxRunner due to new action command logic
BL-451 Sometimes trying to shutdown runtime throws NPE if it was never started fully
BL-452 pretty print visitor outputting extra " on tag catch block
BL-453 pretty print visitor doesn't handle array notation invocation
Last updated