The BoxLang 1.0.0-Beta22 release includes several improvements, bug fixes, new features, and stories. Key improvements include enhanced redirection for the Miniserver, better transactional event broadcasting, and added convenience methods like getRequestContext()
and getApplicationContext()
. Bug fixes address issues such as JSON deserialization, whitespace management, and various errors related to data types and loops. New features include support for multiple statements inside queries and a new datasourceRegister()
BIF for easier SaaS integrations.
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-beta22
New Features
BL-123 Implement multiple statements inside queries
BL-383 new bif: datasourceRegister() to allow for easy saas integrations to create datasources
BL-658 MIgrate AST Capture to it's own experimental flag
BL-748 Add getApplicationContext() method on all contexts for convenience, especially when calling from CF/BL
Improvement
BL-730 Miniserver needs to 302 redirect when hitting a directory without the trailing slash
BL-734 Broadcast Transactional events at the Application listener-level
BL-735 Allow unregistering a java class (IInterceptor) from an InterceptorPool
BL-737 Add getRequestContext() method on all contexts for convenience, especially when calling from CF/BL
BL-738 Allow output from functional wrappers
BL-740 Autocast simple values to Keys when calling java methods from BL
BL-741 Allow :: static access to be chained to any expression
BL-746 Add toLegacyDate BIF and Member Function to Compat module
BL-751 Make generated getters return null when property is not initialized
BL-116 Implement unfinished query options
Bug
BL-694 Fix tests that fail when using ASM
BL-695 large json fails to deserialise with bx-compat
BL-714 Add Whitespace Management
BL-731 dump errors with compat installed due to null variable
BL-733 RandRange seems to never return upper range
BL-736 JDBC Transaction listeners not firing upon transaction event announcement
BL-739 shebang checks in BoxRunner don't nicely handle invalid file paths
BL-743 WDDX not parsing booleans correctly
BL-744 Cannot cast ortus.boxlang.runtime.types.DateTime to java.util.Date
BL-745 parseDateTime failing
BL-747 for (sentinel) loop is evaluating the step/increment expression one final time too many when a break is used
BL-752 error using negative indices to get characters from strings
BL-754 error: integer number too large
BL-755 SerializeJSON not working with named params
Add Your Comment