R3.2 - Preprocessor System, Standard Library, Performance Boost and Bug Fixes
Preprocessor System
- Added comprehensive preprocessor for infix expressions with
@define,@if,@ifdef,@ifndef,@else,@endif,@error, and@undefdirectives. Supports compile-time constant expression evaluation, function-like macros, token pasting (@@), recursion, and conditional branch elimination. 8229a95 - Added
consteval(),is_consteval(), andstatic_assert()intrinsics for compile-time evaluation and assertions. 18df83c, af633eb - Added predefined macros
__SUBSAMPLE_W__,__SUBSAMPLE_H__,__PLANE_NO__,__OUTPUT_FMT__, and__INPUT_FMT_N__for accessing frame and clip properties. eec0ffc, 3608daa
Standard Library
- Added standard library support via
@requiresdirective. Includes built-inalgorithmslibrary (sorting, searching) andmetalibrary (metaprogramming utilities). 75e3727, 26fb053 - Implemented Introsort for improved sorting performance. fd91c61
Performance Improvements
- Overhauled tokenizer using compile-time regular expressions (ctre), improving complex expression compilation speed by 2x. 8e1a247
- Optimized
SingleExprby allocating small static arrays on the stack. 270b6e6 - Optimized dynamic array allocation and conversion with new optimization pass. 2299adc
Other Improvements
- Refactored analysis framework into dedicated passes for better modularity. cd54f4a, 196564e, 35038e1
- Added special write-only
_variable to discard unwanted values. f79a085 - Standardized infix conditional logic to use
!= 0semantics. b0e717e - Fixed bitwise operator rounding to match Akarin.Expr behavior (round to nearest integer). cd54f4a
For more information about the new release, refer to documents.
Full Changelog: R3.1...R3.2