1.3.0
🎉 Release Notes for Version 1.3.0 - "Operation Validation Extravaganza" 🎉
Summary:
In this release, we've cracked down on Jace's (and thus sonic's) loose validation, making it more strict than a security guard at a VIP party! Say goodbye to silently parsed typos and mixed-up orders of operators and operands. We've introduced a new validation step, making error detection easy as Sunday morning. Plus, we've simplified the code, improved performance, and made the validation optional, so you can choose whether to be the expression police or not.
Performance Improvements:
- Reduced AST Builder's weight by sending it to the gym and removing (now) unnecessary operations.
- AST Builder's function lookup doesn't do any unnecessary case conversions any more.
- AST Builder's unary minus check is now better placed, so it only runs when it's actually sensible to do so.
Features:
- 🕵️♂️ Added expression validation, because we're all about following the rules. Default on, but you can opt-out if you're feeling rebellious.
- 🧐 "Validate()" method now available in Evaluator, so you can validate without committing to a relationship.
- 🧩 New option to override the argument separator – because sometimes you need to mix things up.
Changes:
- 🏗️ Major architectural facelift: We've tidied up our public API! Everything top-level is considered public, everything else is internals. You can still play with internals like ASTBuilder, but don't be surprised if we change those APIs without warning.
- 🎭 Functions are now their own type of token. Now you can have your "a(123) + a" and eat it too! (In guarded mode, still expect the same exceptions.)
- 📚 Public API documentation got a makeover – we're now ready for our close-up.
- 📈 Benchmark now includes the shiny new validation feature.
- (🔧INTERNAL) We now consistently call them "Parentheses," not "Brackets." No more mixups between AE and BE!
Bugfix:
- 🐛 Fixed a bug where the argument separator and decimal separator had an identity crisis. Now they're distinct, just like superheroes and their secret identities.
- 🧮 Unary minus handling for numerics got the attention it deserved. Say goodbye to '-3^2' evaluating to 9.0 – now it's -9.0! (Use '(-3)^2' if you really want 9.0, you rebel.)
Upgrade now and experience the validation revolution! Your expressions will thank you. 🚀