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