Note: Timed this to USA presidential election day just for kicks...
This version basically cleans up the code structure in preparation for a potential 1.0 release in the future.
Most scripts should see a material speed increase.
This version also adds a low-level API for more flexibility when defining custom syntax.
Fixes Send + Sync for EvalAltResult under the sync feature. Bug introduced with 0.19.3.
Breaking changes
Custom syntax can no longer start with a keyword (even a reserved one), even if it has been disabled. That is to avoid breaking scripts later when the keyword is no longer disabled.
Changes to Error Handling
EvalAltResult::ErrorAssignmentToUnknownLHS is moved to ParseError::AssignmentToInvalidLHS. ParseError::AssignmentToCopy is removed.
EvalAltResult::ErrorDataTooLarge is simplified.
Engine::on_progress closure signature now returns Option<Dynamic> with the termination value passed on to EvalAltResult::ErrorTerminated.
ParseErrorType::BadInput now wraps a LexError instead of a text string.
New features
f32_float feature to set FLOAT to f32.
Low-level API for custom syntax allowing more flexibility in designing the syntax.
Module::fill_with to poly-fill a module with another.
Scripts terminated via Engine::on_progress can now pass on a value as a termination token.
Enhancements
Essential AST structures like Expr and Stmt are packed into smaller sizes (16 bytes and 32 bytes on 64-bit), stored inline for more cache friendliness, and de-Boxed as much as possible.
Scope is optimized for cache friendliness.
v.0.19.3
This version adds the try ... catch statement to catch errors and exceptions. It also streamlines some of the advanced API's.
This version basically cleans up the code structure in preparation for a potential 1.0 release in the future.
Most scripts should see a material speed increase.
This version also adds a low-level API for more flexibility when defining custom syntax.
Bug fixes
Fixes Send + Sync for EvalAltResult under the sync feature. Bug introduced with 0.19.3.
Breaking changes
Custom syntax can no longer start with a keyword (even a reserved one), even if it has been disabled. That is to avoid breaking scripts later when the keyword is no longer disabled.
Changes to Error Handling
EvalAltResult::ErrorAssignmentToUnknownLHS is moved to ParseError::AssignmentToInvalidLHS. ParseError::AssignmentToCopy is removed.
EvalAltResult::ErrorDataTooLarge is simplified.
Engine::on_progress closure signature now returns Option<Dynamic> with the termination value passed on to EvalAltResult::ErrorTerminated.
ParseErrorType::BadInput now wraps a LexError instead of a text string.
New features
f32_float feature to set FLOAT to f32.
Low-level API for custom syntax allowing more flexibility in designing the syntax.
Module::fill_with to poly-fill a module with another.
Scripts terminated via Engine::on_progress can now pass on a value as a termination token.
Enhancements
Essential AST structures like Expr and Stmt are packed into smaller sizes (16 bytes and 32 bytes on 64-bit), stored inline for more cache friendliness, and de-Boxed as much as possible.
Scope is optimized for cache friendliness.
Version 0.19.3
This version streamlines some of the advanced API's, and adds the try ... catch statement
to catch exceptions.
Breaking changes
... (truncated)
Commits
b464207 Merge pull request #280 from schungx/master
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps rhai from 0.18.3 to 0.19.4.
Release notes
Sourced from rhai's releases.
... (truncated)
Changelog
Sourced from rhai's changelog.
... (truncated)
Commits
b464207
Merge pull request #280 from schungx/master99669b5
Bump version.dd53937
f32_float for no-std example.da1c5e3
Docs revision.7e60e9f
Docs revision.a5d22dd
Make FuncInfo a struct.b390586
Fix optimization of Stmt::Expr.c287a61
Streamline ScriptFnDef.f759427
Remove clippy warnings.2168fd5
Expr::Stmt takes a statements block.Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)