Stephen Chung
ef87ae48c1
Fix doc-test.
2022-02-18 16:21:20 +08:00
Stephen Chung
bb04fab011
Optimize variable shadowing.
2022-02-18 15:04:46 +08:00
Stephen Chung
83786c992b
Fix parser bug.
2022-02-18 11:05:58 +08:00
Stephen Chung
1011602cf6
Fix no-std build.
2022-02-16 18:05:09 +08:00
Stephen Chung
0d2e3d82f3
Reduce size of Stmt.
2022-02-16 17:51:14 +08:00
Stephen Chung
cf0660e36b
Expand StmtBlock inline size.
2022-02-16 12:57:26 +08:00
Stephen Chung
3db918e89a
Doc fixup.
2022-02-15 19:56:42 +08:00
Stephen Chung
84face341a
Fix doc comments.
2022-02-15 15:49:03 +08:00
Stephen Chung
fb9964e1a3
Revise on_def_var API.
2022-02-15 10:56:05 +08:00
Stephen Chung
5bb6ce835f
Run var def filter during parsing.
2022-02-13 18:46:25 +08:00
Stephen Chung
664e3d31e5
BLOB's and strings.
2022-02-12 23:39:07 +08:00
Stephen Chung
83e1e88531
Add specific implementations for to_string.
2022-02-12 16:23:36 +08:00
Stephen Chung
fda94c1cb6
Better printing.
2022-02-11 22:43:09 +08:00
Stephen Chung
41caa233bb
Fix string parsing.
2022-02-10 18:24:04 +08:00
Stephen Chung
d23d1159ab
Fix positions.
2022-02-10 17:55:32 +08:00
Stephen Chung
3050e38c5e
Fix interpolated string position.
2022-02-10 14:51:31 +08:00
Stephen Chung
d1a97be9e3
New syntax for package definition.
2022-02-10 12:33:48 +08:00
Stephen Chung
1c89c6be4f
Doc fixes.
2022-02-10 08:31:41 +08:00
Stephen Chung
8c5de09446
Fix doc links.
2022-02-09 22:40:13 +08:00
Stephen Chung
e5a673b3ae
Add position info for closures.
2022-02-09 13:40:51 +08:00
Stephen Chung
340a047369
Add fail on invalid property for maps.
2022-02-09 13:12:43 +08:00
Stephen Chung
6acc486e00
Revise keys for Windows vs Unix
2022-02-09 08:39:33 +08:00
Stephen Chung
ddc66e7fb8
Print this.
2022-02-09 08:11:26 +08:00
Stephen Chung
1b4184ef16
Run debugger with no optimization.
2022-02-09 08:00:05 +08:00
Stephen Chung
3b9dbd5fce
Add Span.
2022-02-08 23:01:47 +08:00
Stephen Chung
c64fc6f523
No astu under no_optimize.
2022-02-08 22:30:48 +08:00
Stephen Chung
0cf2cd5cfc
Do not trim script lines.
2022-02-08 22:29:38 +08:00
Stephen Chung
5e7db6e105
Use new version of rustyline.
2022-02-08 22:16:12 +08:00
Stephen Chung
8cf6f424a5
Use turbofish notation.
2022-02-08 21:28:15 +08:00
Stephen Chung
83b213b086
Unwrap error when caught.
2022-02-08 19:02:40 +08:00
Stephen Chung
7686ca619a
Use .. for (_).
2022-02-08 09:46:14 +08:00
Stephen Chung
97a8fd3d5b
Improve reify syntax.
2022-02-08 09:25:53 +08:00
Stephen Chung
f8cee0fe4e
Simplify using ..
2022-02-08 09:02:15 +08:00
Stephen Chung
187a20fd8b
Refactor OptimizationLevel.
2022-02-07 21:03:39 +08:00
Stephen Chung
556b2393f5
Fix position of function calls.
2022-02-07 16:02:49 +08:00
Stephen Chung
bd9519e96b
Remove reify_dynamic.
2022-02-07 12:02:00 +08:00
Stephen Chung
becbfa8930
Fix errors.
2022-02-06 23:02:59 +08:00
Stephen Chung
1ccbda1050
Merge branch 'master' of https://github.com/schungx/rhai
2022-02-06 21:24:55 +08:00
Stephen Chung
cfbf0397a6
Better position of assignment errors.
2022-02-06 21:24:02 +08:00
Nathan Kent
86d86a85e4
Remove unsound casting functions
...
The casting functions in `unsafe.rs` were unsound (i.e., they allowed
safe code to cause undefined behavior). While they did appear to be used
in a way that wouldn't cause UB the fact that there exists unsound
functions is unsettling.
This commit removes those functions and replaces it with a macro that
performs the same reification - the difference is that the macro call
will also include the checks which are required to prevent UB. A macro
was chosen instead of a function for two reasons:
1. A macro can keep the same code generation whereas a function would
require going through an `Option` which has negative impacts on code
generation (niche values cause poor DCE).
2. There exist other `unsafe` code blocks in the crate and an attempt to
make Rhai 100% safe is completely out-of-scope for this merge
request, so we may as well use `unsafe` in the macro.
Regarding (2) above, I may come back at a later date with a 100% safe
`reify` function but only once the other `unsafe` blocks are removed.
For posterity, said function would look something like:
```rust
fn reify<A: Any, C>(value: A) -> Option<C> {
let mut v = Some(value);
let v: &mut dyn Any = &mut v;
v.downcast_mut::<Option<C>>().map(Option::take)
}
```
2022-02-05 16:29:05 -08:00
Stephen Chung
6a740a9fa1
Fix no_module build.
2022-02-04 23:08:09 +08:00
Stephen Chung
be9356727f
Add variable definition filter.
2022-02-04 22:59:41 +08:00
Stephen Chung
936dc01e39
Pass level to var resolver.
2022-02-04 22:16:12 +08:00
Stephen Chung
5aee06674f
Fix no-std build.
2022-02-04 16:38:01 +08:00
Stephen Chung
f09abd7ab3
Fix builds.
2022-02-04 13:31:33 +08:00
Stephen Chung
3be27746e0
Add allow_shadowing.
2022-02-04 13:20:47 +08:00
Stephen Chung
6c1c8bc538
Improve position display.
2022-02-04 12:04:33 +08:00
Stephen Chung
345a060672
Fix type name display.
2022-02-03 23:54:53 +08:00
Stephen Chung
419ee45043
Add bin-features to pull in all features for bin tools.
2022-02-03 21:17:47 +08:00
Stephen Chung
9fa6839380
Simplify debugger calls.
2022-02-03 11:56:08 +08:00
Stephen Chung
8322e62c18
Fix function exit trigger and add function enter trigger.
2022-02-02 22:42:33 +08:00
Stephen Chung
db2f1a601c
Make call stack available also under no_function.
2022-02-02 15:07:22 +08:00
Stephen Chung
e0ed713bb6
Fix builds.
2022-02-02 14:57:30 +08:00
Stephen Chung
4a80483749
Support call stack and FunctionExit for native functions.
2022-02-02 14:47:35 +08:00
Stephen Chung
7163a7331a
Add commands and status to debugging interface.
2022-02-01 22:30:05 +08:00
Stephen Chung
dca0185323
Change on_debugger to register_debugger.
2022-02-01 14:07:06 +08:00
Stephen Chung
389bb9bf66
Add history recall to repl.
2022-01-31 21:02:36 +08:00
Stephen Chung
f1458e79e0
Improve AST debug display.
2022-01-31 13:38:27 +08:00
Stephen Chung
ff06bb98a1
Fix no_module build.
2022-01-30 23:28:02 +08:00
Stephen Chung
7b92a80c32
Fix encapsulated environment in module functions.
2022-01-30 17:27:13 +08:00
Stephen Chung
8fc80ecd10
Fix formatting.
2022-01-30 11:21:45 +08:00
Stephen Chung
06214cf499
Add key bindings to repl.
2022-01-30 09:42:04 +08:00
Stephen Chung
0378c822e1
Use required-features for bin tools.
2022-01-30 09:41:51 +08:00
Stephen Chung
2cfd426aaf
Merge branch 'rustyline' of https://github.com/rhaiscript/rhai
2022-01-29 15:59:24 +08:00
Stephen Chung
19ef92a3f3
Fix builds.
2022-01-29 13:37:58 +08:00
Stephen Chung
6b02dde848
Gate dead code for no_module.
2022-01-29 11:09:43 +08:00
Jonathan Strong
16f13960f4
poc: adds rustyline to rhai-repl
2022-01-28 20:29:25 -05:00
Stephen Chung
4ee6657b9d
Fix no_function build.
2022-01-28 22:37:59 +08:00
Stephen Chung
cd4335a16f
Fix builds.
2022-01-28 22:11:22 +08:00
Stephen Chung
c397a6dcb5
Fix sync build.
2022-01-28 22:07:49 +08:00
Stephen Chung
c93e94c7cd
Fix builds.
2022-01-28 21:35:16 +08:00
Stephen Chung
66af69aaff
Refactor and add state to debugger.
2022-01-28 18:59:18 +08:00
Stephen Chung
20baae71d4
Factor tuples into structs to aid in understanding.
2022-01-28 10:11:40 +08:00
Stephen Chung
b86dd3f586
Add missing data size check.
2022-01-28 08:28:31 +08:00
Stephen Chung
b9f2fdb635
Rename AST option flags.
2022-01-28 08:28:17 +08:00
Stephen Chung
09d03d07ed
Fix sync build.
2022-01-28 08:00:46 +08:00
Stephen Chung
e476929597
Remove Box on callback traits.
2022-01-27 23:55:32 +08:00
Stephen Chung
64de20bcd3
Remove warnings.
2022-01-27 16:58:11 +08:00
Stephen Chung
dd937e657d
Fix builds.
2022-01-27 16:58:11 +08:00
Stephen Chung
197cdedaf4
Add commands to rhai-dbg.
2022-01-27 16:58:11 +08:00
Stephen Chung
d75c3e1592
Change stack trace object property name.
2022-01-27 16:58:11 +08:00
Stephen Chung
edcc95e205
Skip transitive nodes for debugger.
2022-01-27 16:58:11 +08:00
Stephen Chung
538af8caee
Scope::clone_visible clones value access mode also.
2022-01-27 16:58:11 +08:00
Stephen Chung
14e42f436f
Make scan_imports_raw public.
2022-01-27 16:58:11 +08:00
Stephen Chung
c8357de1c8
Fix feature builds.
2022-01-27 16:58:11 +08:00
Stephen Chung
3c2ac7f0c5
Add ability for debugger to throw errors.
2022-01-27 16:58:11 +08:00
Stephen Chung
b4f679d35f
Add property breakpoints.
2022-01-27 16:58:11 +08:00
Stephen Chung
cc64ae3939
Fix no-std build.
2022-01-27 16:58:11 +08:00
Stephen Chung
efddc7e91d
Add breaking at line.
2022-01-27 16:58:11 +08:00
Stephen Chung
2dc1fea40a
Remove non_snake_case warnings.
2022-01-27 16:58:11 +08:00
Stephen Chung
aee35e5f20
Add DebuggingPackage.
2022-01-27 16:58:11 +08:00
Stephen Chung
0e5f62574d
Fix warnings.
2022-01-27 16:58:11 +08:00
Stephen Chung
3cec9751bf
Remove call stack under no_function.
2022-01-27 16:58:11 +08:00
Stephen Chung
40aaab60c3
Refine debugger.
2022-01-27 16:58:11 +08:00
Stephen Chung
fc87dec128
Add debugging interface.
2022-01-27 16:58:11 +08:00
Stephen Chung
69dab31617
Remove need for default features in dependencies.
2022-01-27 08:22:20 +08:00
Stephen Chung
c79f1e44e4
Refine position display of indexing.
2022-01-25 10:56:22 +08:00
Stephen Chung
d8a6b93f43
Fix off-by-one position error after comment line.
2022-01-24 16:06:41 +08:00
Stephen Chung
2b2685e387
Add optimize command to REPL.
2022-01-24 15:50:25 +08:00
Stephen Chung
8d34ffb9f5
Fix bug in try block.
2022-01-24 08:34:21 +08:00