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

Partner with BoxLang and Ortus at Into the Box 2025: Empowering the Future of Modern Software Development!

Partner with BoxLang and Ortus at Into the Box 2025: Empowering the Future of Modern Software Development!

At Ortus Solutions, we’ve always been at the forefront of innovation in the ColdFusion ecosystem. From pioneering modern ColdFusion practices to developing cutting-edge tools and frameworks, we’ve been passionate to help and sup[port the community into shaping the future of web development.That’s why we decided to build BoxLang, our new JVM programming language that not only builds on the strengths of ColdFusion but takes modern software development to the next level.

Maria Jose Herrera
Maria Jose Herrera
December 23, 2024
Why BoxLang When You Have Kotlin, Groovy, Scala, and more…

Why BoxLang When You Have Kotlin, Groovy, Scala, and more…

As we approach a stable release of BoxLang and our continued marketing reaches more folks, many have asked about its purpose. Why create a new language when the JVM ecosystem already includes established languages like Kotlin, Groovy, and Scala, to name a few.

Luis Majano
Luis Majano
December 18, 2024