R3.3 - Standard Library, Property Management, SingleExpr Improvements and Bug Fixes
Standard Library
- Added
stdlibrary for dynamic access to clip properties. After importing with@requires std, functions likeget_width,get_height,get_bitdepth, andget_fmtare available directly. These functions support bothExprandSingleExprmodes (with mode-specific signatures). 6050a48, a451f07
Property Management
- Added typed property write functions (
set_propi,set_propf,set_propai,set_propaf) to explicitly control the type of output properties inSingleExprmode. These map to the underlying Postfixprop$suffixsyntax. Types of writes to a single property should maintain type consistency within a single expression. c25544e, 4c9ea4d, 6e99c5c, eb18727 - Added
is_prop_existbuilt-in function (Infix) andsrcN.prop?syntax (Postfix) for checking the existence of frame properties. f5d2d06, 7472b55 - Added
remove_propbuilt-in function (Infix) andprop$dsyntax (Postfix) to delete frame properties. d964c43 - Enabled conditional property writes, allowing
set_propcalls withinifblocks. If a property write is skipped (e.g., theifblock is not executed), the property is copied from the first source clip (src0) if it exists. 24e1551, c25544e
SingleExpr Improvements
- Added support for input clips with different dimensions. 70e08d6
- Fixed accessing the same property name from different clips. defd031
Safety and Reliability (Infix)
- Implemented recursion detection in semantic analysis to prevent compiler crashes due to infinite recursion. a3a0d66
- Added formal verification for definite assignment of variables, ensuring that all variables are defined before use on all execution paths. This is made possible by new
gotorestrictions that jumps cannot enter a variable's scope (skipping its initialization). 0c6351c, 9ec8260
Performance (Infix)
- Refactored
CodeGeneratorfor improved compilation performance. c66be00 - Disabled stack effect validation in release builds to speed up processing. 74d12e3
Bug Fixes (Infix)
- Fixed preprocessor token pasting and rescanning behavior. 3b3b858
- Fixed goto validation logic. 0c6351c
- Fixed semantic check for built-in functions. 6852f5a
Deprecations (Infix)
- Deprecated
$widthand$heightconstants. Usestdlibrary functions instead. 6514aa9 - Deprecated
frame.widthandframe.heightinSingleExprmode. Usestdlibrary functions instead. 6514aa9
For more information about the new release, refer to documents.
Full Changelog: R3.2...R3.3