v1.4.0
This version adds support for integer ranges via the .. and ..= operators.
Many standard API's are extended with range parameters where appropriate.
A number of usability improvements simplify integration with Rust.
Script-breaking changes
isis (pun intended) now a reserved keyword to prepare for possible future type checking expressions (e.g.x is "string").
Breaking changes
LogicPackageis removed fromCorePackage.- Bit-field functions are moved into a new
BitFieldPackage(used to be inLogicPackage) which makes more sense.
Bug fixes
- Custom syntax now works properly inside binary expressions and with method calls.
- Hex numbers with the high-bit set now parse correctly into negative integer numbers.
- Constructing a literal array or object map now checks for size limits for each item instead of at the very end when it is already too late.
- Non-
INTinteger types are now treated exactly as custom types underonly_i64andonly_i32. - Calling
padon an array now checks for total size over limit after each item added.
New features
- Added support for integer ranges via the
..and..=operators. - Added
EvalAltResult::ErrorCustomSyntaxto catch errors in custom syntax, which should not happen unless anASTis compiled on oneEnginebut evaluated on another unrelatedEngine.
Enhancements
BLOB's are refined to display in a more compact hex format.- A new syntax is introduced for
def_package!that will replace the old syntax in future versions. - Added
NativeCallContext::call_fnto easily call a function. - Doc-comments on plugin module functions are extracted into the functions' metadata.
Deprecated API's
Expression::get_variable_nameis deprecated in favor of the newExpression::get_string_value.- The old syntax of
def_package!is deprecated in favor of the new syntax.