Stephen Chung
ff6a448b77
Merge branch 'main' of https://github.com/rhaiscript/rhai
2022-07-20 21:06:36 +08:00
quake
a0c07631e2
chore: clippy fix rust style
2022-07-20 21:38:50 +09:00
quake
8d91e7eb63
chore: clippy fix useless_conversion
2022-07-20 21:28:40 +09:00
quake
e707b66639
chore: clippy fix unnecessary_mut_passed
2022-07-20 21:22:51 +09:00
quake
299777f1c9
chore: clippy fix needless_borrow
2022-07-20 21:16:35 +09:00
Stephen Chung
87af0db074
Merge pull request #584 from quake/quake/optimize-stmt-switch
...
fix: optimize_stmt should use fn `position`
2022-07-20 18:08:37 +08:00
quake
e21f7c4f5d
fix: optimize_stmt should use fn position
2022-07-20 18:48:54 +09:00
quake
4033543309
chore: remove clippy redundant_allocation since it has been resolved in clippy#7592
2022-07-20 17:05:05 +09:00
Stephen Chung
2ac6336173
Optimize wrapped stmt/expr.
2022-07-19 21:59:49 +08:00
Stephen Chung
5149c56256
Streamline switch case AST structure.
2022-07-19 13:33:53 +08:00
Stephen Chung
281e94fc62
Switch case condition that is constant () no longer optimizes to false.
2022-07-18 23:28:12 +08:00
Stephen Chung
ff6954d9d5
Fix doc comment links.
2022-07-18 23:01:03 +08:00
Stephen Chung
f2724444bb
Make default switch case Optional.
2022-07-18 22:30:09 +08:00
Stephen Chung
7dca916c45
Allow duplicated switch cases.
2022-07-18 13:40:41 +08:00
Stephen Chung
4b760d1d0f
Unroll switch ranges if possible.
2022-07-18 08:54:10 +08:00
Stephen Chung
107193e35f
Update rustyline to 10.
2022-07-17 18:49:12 +08:00
Stephen Chung
a12401a1fe
New range variant.
2022-07-17 12:09:19 +08:00
Stephen Chung
fedd09053a
Fix typo.
2022-07-06 13:13:21 +08:00
Stephen Chung
dda7bc7b85
Add eval_expression_tree_raw.
2022-07-06 12:56:15 +08:00
Stephen Chung
b4dbc7619a
Add no_custom_syntax.
2022-07-05 22:59:03 +08:00
Stephen Chung
b6528bd51d
Reduce usage of as_ref and as_mut.
2022-07-05 16:26:38 +08:00
Stephen Chung
9319f87a7b
Fix builds.
2022-07-04 17:47:59 +08:00
Stephen Chung
dee66a409f
Add case alternatives for switch.
2022-07-04 17:42:24 +08:00
Stephen Chung
6753566b03
Merge set of dynamic functions when merging modules.
2022-06-28 13:57:18 +08:00
Stephen Chung
0031678cd4
Fix shared variable assignment.
2022-06-26 18:09:15 +08:00
Stephen Chung
d9875ff81c
Fix sync feature.
2022-06-26 17:14:10 +08:00
Stephen Chung
335957fbc2
Enable modifying constant shared values.
2022-06-26 17:04:08 +08:00
Stephen Chung
7068775f19
Use locked_read.
2022-06-26 14:10:09 +08:00
Stephen Chung
84b8e1ed87
Detect whether dynamic functions exist to save checking.
2022-06-24 11:30:54 +08:00
Stephen Chung
d6bfd8f617
Streamline step ranges.
2022-06-20 18:52:07 +08:00
Stephen Chung
addb579f30
Streamline Dynamic.
2022-06-17 23:36:18 +08:00
Stephen Chung
b592ac1599
Export locked_read.
2022-06-17 23:36:09 +08:00
Stephen Chung
6ea5ed17f4
Use rhai for ignore.
2022-06-12 15:04:06 +08:00
Stephen Chung
2b44778a5c
Add elvis operator for indexing.
2022-06-12 00:32:12 +08:00
Stephen Chung
b9cbeb65d6
Use Option instead of once/empty.
2022-06-11 16:01:15 +08:00
Stephen Chung
8999872d62
Add null coalescing operator.
2022-06-10 11:22:33 +08:00
Stephen Chung
0f1e51b1c9
Support Elvis operator.
2022-06-10 10:26:06 +08:00
Stephen Chung
206318e14c
Add new reserved symbols.
2022-06-10 08:47:22 +08:00
Stephen Chung
09e19790fe
Fix builds.
2022-06-09 18:22:53 +08:00
Stephen Chung
a31a4e4887
Fix builds.
2022-06-09 18:06:00 +08:00
Stephen Chung
dcaac20eb9
Strict mode in functions check for static modules.
2022-06-09 17:59:28 +08:00
Stephen Chung
285bf23dfa
Minor refactor.
2022-06-09 08:41:51 +08:00
Stephen Chung
e5f6b28abd
Fix warnings.
2022-06-08 17:06:49 +08:00
Stephen Chung
bbaad8dfcb
Speed up method calls.
2022-06-08 16:34:56 +08:00
Stephen Chung
f4ebaa7abf
Improve chaining speed.
2022-06-08 09:19:21 +08:00
Stephen Chung
8615960cd6
Fix feature.
2022-06-07 20:52:04 +08:00
Stephen Chung
8501d9d33f
Improve speed on common dot/index expressions.
2022-06-07 20:38:05 +08:00
Stephen Chung
84e3296559
Fix bug on chaining function calls returning shared values.
2022-06-07 11:31:46 +08:00
Stephen Chung
005692ef78
Change volatile API message.
2022-06-06 08:54:19 +08:00
Stephen Chung
6467b52761
Fix no_function.
2022-06-05 19:35:18 +08:00
Stephen Chung
6ebe002b18
Check for missing docs.
2022-06-05 18:17:44 +08:00
Stephen Chung
c200a609ea
Change FnPtr to struct.
2022-05-26 18:18:09 +08:00
Stephen Chung
493c4a71ff
Add lifetime.
2022-05-26 18:17:46 +08:00
Stephen Chung
99bcd8497a
Remove lifetime on OpAssignment.
2022-05-26 18:17:08 +08:00
Stephen Chung
0e363bd6b7
Make Caches a struct.
2022-05-24 19:34:47 +08:00
Stephen Chung
52bb6e68e8
Add Scope::get.
2022-05-24 16:05:17 +08:00
Stephen Chung
07d3dd6882
Add lifetime to Caches.
2022-05-24 11:52:03 +08:00
Geoffroy Couprie
f2b5566c0b
use smartstring's deserializer to support non borrowed strings
...
The map visitor for Dynamic was expecting a &str for the key, but the
serde_json deserializer internally uses a Cow string, which can be
Borrowed or Owned. In the case of Owned, the serde_json key deserializer
is calling visit_string on the Visitor, which for &str will result in
the error:
Error("invalid type: string \"a\", expected a borrowed string", line: 0,
column: 0)
smartstring actually has its own Visitor implementation that handles
both cases, so we can use it instead of an explicit conversion.
2022-05-23 16:40:49 +02:00
Stephen Chung
ee886fc719
Fix builds.
2022-05-21 22:13:02 +08:00
Stephen Chung
1abec0a8a8
Allow initialization of EvalState tag and separate debugger state into separate variable.
2022-05-21 21:44:12 +08:00
Stephen Chung
9c1a49da0b
Fix AST combine.
2022-05-21 11:31:15 +08:00
Stephen Chung
46c1d86221
Fix merge AST with self-contained AST.
2022-05-20 21:49:27 +08:00
Stephen Chung
8f73796110
Fix builds.
2022-05-19 21:49:19 +08:00
Stephen Chung
130b93d029
Use bit-flags for options.
2022-05-19 21:40:22 +08:00
Stephen Chung
857ae7a64a
Comments update.
2022-05-19 14:41:48 +08:00
Stephen Chung
dd8c18369b
Use call_native_fn.
2022-05-19 14:36:58 +08:00
Stephen Chung
47d0d014e3
Reduce cloning.
2022-05-19 14:32:43 +08:00
Stephen Chung
a53bcc2e1d
Add EvalAltResult::IndexNotFound.
2022-05-19 10:02:12 +08:00
Stephen Chung
7c8c6659ae
Better encapsulate EvalContext.
2022-05-17 16:21:17 +08:00
Stephen Chung
04df4d2547
Fix indexing parsing.
2022-05-17 11:06:34 +08:00
Stephen Chung
c7aea45d4b
Add to_int for decimal.
2022-05-09 14:20:33 +08:00
Stephen Chung
b4fea634b0
Avoid unnecessary allocations.
2022-05-07 16:29:20 +08:00
Stephen Chung
4194e2c048
Refine data structures.
2022-05-07 15:54:44 +08:00
Stephen Chung
fc64e93b93
Deprecate FnPtr::num_curried.
2022-05-05 22:30:55 +08:00
Stephen Chung
b23d64bec0
Fix bug with using self-contained AST with call_fn.
2022-05-05 21:34:15 +08:00
Stephen Chung
2a57bd9d25
Mark some types as non_exhaustive.
2022-05-03 21:55:08 +08:00
Stephen Chung
516f5a82a0
Use tag for debugger state.
2022-05-03 21:55:01 +08:00
Stephen Chung
4f74d2f96a
Minor cleanup.
2022-05-02 12:14:53 +08:00
Stephen Chung
c69f98c2c4
Add custom state.
2022-05-02 00:03:45 +08:00
Stephen Chung
98e0042214
Fix build.
2022-04-26 18:32:43 +08:00
Stephen Chung
2889ca0988
Add Start/End to DebuggerEvent.
2022-04-26 16:36:24 +08:00
Stephen Chung
34dfe841cd
Add commands to rhai-dbg.
2022-04-24 16:06:11 +08:00
Stephen Chung
5a756e0899
Remove generics for call_fn_raw_raw.
2022-04-23 15:25:00 +08:00
Stephen Chung
1d904f4758
Add Engine::eval_statements_raw.
2022-04-23 13:37:08 +08:00
Stephen Chung
0ef5c0ec54
Change to call_fn_raw_raw
.
2022-04-23 13:28:26 +08:00
Stephen Chung
d61f7fa7c2
Add call_fn_with_global_raw.
2022-04-23 13:15:27 +08:00
Stephen Chung
63592ed648
Remove Clone from FileModuleResolver.
2022-04-23 12:49:03 +08:00
Stephen Chung
c2a796f9c2
Replace Scope display code.
2022-04-23 11:53:34 +08:00
Stephen Chung
5a75479119
Fix bug in Scope cloning.
2022-04-23 11:53:17 +08:00
Stephen Chung
71bc605fe6
Add scope to FileModuleResolver.
2022-04-22 13:39:51 +08:00
Stephen Chung
2755d39cdf
Return early if no type casting for call_fn
.
2022-04-22 12:12:55 +08:00
Stephen Chung
a6c2c00479
Allow variables in scope for strict vars.
2022-04-22 12:12:36 +08:00
Stephen Chung
6f4cc91451
Fix builds.
2022-04-21 16:01:20 +08:00
Stephen Chung
6b8ddd925b
Allow scope constants in strict variables mode.
2022-04-21 13:21:53 +08:00
Stephen Chung
c3d013bddc
Add to_json for maps.
2022-04-21 12:15:21 +08:00
Stephen Chung
4f2764d233
Revise parse_json
.
2022-04-21 10:04:57 +08:00
Stephen Chung
5e4f27ae25
Add Token::Unit.
2022-04-21 10:04:46 +08:00
Stephen Chung
299d6ef308
Type checking in switch case condition.
2022-04-19 21:45:11 +08:00
Stephen Chung
770b2e04cc
Simplify switch condition.
2022-04-19 16:20:43 +08:00
Stephen Chung
40c4906336
Make Module::eval_ast_as_new_raw public.
2022-04-19 08:28:59 +08:00
Stephen Chung
f9ee0c29be
Fix builds.
2022-04-18 23:24:08 +08:00
Stephen Chung
60a933862e
Streamline op-assignments.
2022-04-18 23:12:47 +08:00
Stephen Chung
3f74e5e674
Use &Path as source path.
2022-04-18 17:34:53 +08:00
Stephen Chung
daf73d5341
Make caches optional for EvalContext.
2022-04-16 23:32:14 +08:00
Stephen Chung
855cb76246
Rename EvalState to Caches.
2022-04-16 16:36:53 +08:00
Stephen Chung
b696390c13
Fix no-std build.
2022-04-14 23:11:36 +08:00
Stephen Chung
3ff1ce0a19
Fix compound assignments with indexers.
2022-04-14 22:55:39 +08:00
Stephen Chung
7788e1058a
Merge use.
2022-04-13 10:35:10 +08:00
Stephen Chung
a33e3ba5ff
Fix build.
2022-04-11 16:34:56 +08:00
Stephen Chung
06608affc5
Fix rustyline patch.
2022-04-11 16:32:23 +08:00
Stephen Chung
63359f3f81
Unused parameters naming.
2022-04-11 16:29:16 +08:00
Stephen Chung
1777ee7f6f
Allow strings to be iterable.
2022-04-09 13:37:43 +08:00
Stephen Chung
6422fddd6d
Better names for iterators.
2022-04-09 13:11:32 +08:00
Stephen Chung
8bd33d7b34
Change string splitting.
2022-04-09 13:07:42 +08:00
Stephen Chung
42f977862f
Add Dynamic parameters to qualified function calls.
2022-04-08 16:42:53 +08:00
Stephen Chung
89ed531363
Fix doc tests.
2022-04-06 17:25:04 +08:00
Stephen Chung
6f4240ed5a
Add examples to Module custom type API.
2022-03-30 10:33:43 +08:00
Stephen Chung
56f6b181db
Move optimization_level into Options.
2022-03-29 08:26:42 +08:00
Stephen Chung
1b6de25007
Remove Engine::custom_types.
2022-03-29 08:18:20 +08:00
Stephen Chung
95753bb9c3
Use global module constants in optimization.
2022-03-28 12:53:52 +08:00
Stephen Chung
42b6796200
Fix no-std build.
2022-03-28 12:53:49 +08:00
Stephen Chung
6369fa5c65
Minor refactor.
2022-03-27 21:53:50 +08:00
Stephen Chung
5caf20d26b
Search for global variables in global modules.
2022-03-27 21:49:34 +08:00
Stephen Chung
2b10c33b81
Write JSON metadata to file for repl.
2022-03-26 18:19:42 +08:00
Stephen Chung
77c06b94a2
Use SmartString for comments.
2022-03-25 08:52:53 +08:00
Stephen Chung
cad4c7a942
Add starts_with and ends_with for strings.
2022-03-23 14:28:45 +08:00
Stephen Chung
99118fe2c3
Minor refactors.
2022-03-20 21:58:43 +08:00
Stephen Chung
1b3d5aeb53
fix no_module.
2022-03-19 10:29:21 +08:00
Stephen Chung
fefa633cf0
Add type alias support for plugin modules.
2022-03-19 09:43:18 +08:00
Stephen Chung
dc8c4ed8f4
Improve string functions.
2022-03-17 17:00:48 +08:00
Stephen Chung
63716759be
Fix typo.
2022-03-14 11:28:52 +08:00
Stephen Chung
672cda63ab
Simplify formatting.
2022-03-14 08:50:17 +08:00
Stephen Chung
a704d26986
Fixup ArgBackup.
2022-03-14 08:26:27 +08:00
Stephen Chung
963af0653e
Fix sleep function.
2022-03-09 09:41:53 +08:00
Stephen Chung
1e4abd012c
Minor refactor.
2022-03-09 09:25:55 +08:00
Stephen Chung
89426f8b3a
Add Scope::set_alias.
2022-03-09 09:25:32 +08:00
Stephen Chung
cbb1c5c6a0
Add sleep.
2022-03-08 18:26:32 +08:00
Stephen Chung
b35d965e55
Reverse Box<[...]> to Vec.
2022-03-06 16:37:27 +08:00
Stephen Chung
165fbbc855
Fix no_module builds.
2022-03-05 18:32:50 +08:00
Stephen Chung
8bda8c64df
Refine data structures
2022-03-05 17:57:23 +08:00
Stephen Chung
e06c2b2abb
Remove constants in function call expressions.
2022-03-05 12:06:47 +08:00
Stephen Chung
0335035b0f
Fix bug with eager optimization of method calls.
2022-03-04 12:22:44 +08:00
Stephen Chung
14e23ed74c
Fix sync build.
2022-03-03 13:14:35 +08:00
Stephen Chung
0e9a16e437
Add checks for is_empty.
2022-03-03 13:02:57 +08:00
Stephen Chung
83755bf936
Refine doc comments.
2022-03-01 15:34:15 +08:00
Stephen Chung
99ca6de822
Respect barrier when reusing shadowed variable.
2022-02-28 22:13:03 +08:00
Stephen Chung
d41d36c8bb
Simplify ParseState.
2022-02-28 16:32:08 +08:00
Stephen Chung
aee92f3b7b
Move parser into Engine.
2022-02-28 14:37:46 +08:00
Stephen Chung
54a61bfe00
Pack Scope data more tightly.
2022-02-28 14:00:55 +08:00
Stephen Chung
15448bf660
Forbid shadowing of state variable.
2022-02-27 22:47:13 +08:00
Stephen Chung
b17e891b63
Reduce size of Token.
2022-02-26 23:18:47 +08:00
Stephen Chung
61e6403ac6
Fix bug.
2022-02-26 17:44:39 +08:00
Stephen Chung
e767731953
Fix no_function feature.
2022-02-26 17:41:27 +08:00
Stephen Chung
9ef522b699
Use SmartString in parsing.
2022-02-26 17:28:58 +08:00
Stephen Chung
8205547d8a
Use bitflags.
2022-02-25 11:42:59 +08:00
Stephen Chung
f47b911681
Remove warning.
2022-02-25 10:03:34 +08:00
Stephen Chung
07a61a9562
Fix build.
2022-02-25 09:00:15 +08:00
Stephen Chung
23c74cac61
Use boxed slices.
2022-02-25 08:38:03 +08:00
Stephen Chung
5931f43d4d
Implement Ord and PartialOrd.
2022-02-25 08:37:57 +08:00
Stephen Chung
d2ad56e279
Improve string parameters.
2022-02-24 13:39:10 +08:00
Stephen Chung
39ef766bf1
Raise error when exporting local anonymous function.
2022-02-24 11:24:31 +08:00
Stephen Chung
73f10b8adc
Minor housekeeping.
2022-02-24 10:36:20 +08:00
Stephen Chung
2f5ce2fe5b
Deprecate Position::new_const.
2022-02-24 09:08:10 +08:00
Stephen Chung
fa8e2e638b
Fix bug.
2022-02-23 15:43:27 +08:00
Stephen Chung
dd566ed1e1
Fix builds.
2022-02-19 12:26:17 +08:00
Stephen Chung
67a6638818
Allow variable to overwrite constant when shadowing.
2022-02-18 19:14:42 +08:00
Stephen Chung
78b5c9fd4e
Fix bug in Scope::is_constant.
2022-02-18 19:13:09 +08:00
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
Stephen Chung
97be256a1a
Fix bug with optimizing op-assignment operators.
2022-01-23 21:09:37 +08:00
Stephen Chung
fb0b071fe0
Add lifetimes to GlobalRuntimeState and EvalState for future needs.
2022-01-22 17:48:07 +08:00
Stephen Chung
c32ace40a4
Fix builds.
2022-01-22 17:27:18 +08:00
Stephen Chung
f92894e337
Rename GlobalRuntimeStatemodules -> imports.
2022-01-20 08:17:34 +08:00
Stephen Chung
3d4abeed0e
New metadata functions.
2022-01-20 08:16:38 +08:00
Stephen Chung
0b3250a262
Add strict command to rhai-repl.
2022-01-19 14:02:55 +08:00
Stephen Chung
f0781c9736
Properly handle \r\n pairs in doc-comments.
2022-01-17 23:15:51 +08:00
Stephen Chung
d58df1fb34
Engine::gen_fn_signatures enumerates non-standard external packages.
2022-01-17 23:15:22 +08:00
Stephen Chung
86fc2f7bf1
Refine types display.
2022-01-17 21:51:04 +08:00
Stephen Chung
58e1094b79
Register test
functions in repl.
2022-01-17 21:50:36 +08:00
Stephen Chung
16c03cc864
Add comments to standard library functions.
2022-01-17 21:49:06 +08:00
Stephen Chung
5232bbbff8
Add get/set methods to arrays, blobs, maps and strings.
2022-01-17 10:21:03 +08:00
Stephen Chung
573bfe46dd
Fix formatting.
2022-01-17 07:50:29 +08:00
Stephen Chung
57cfd6a354
Fix builds.
2022-01-16 23:15:37 +08:00
Stephen Chung
24b68971a8
Fix offset calc.
2022-01-16 22:54:28 +08:00
Stephen Chung
5935a88958
Revert "Refine examples."
...
This reverts commit 146129279c
.
2022-01-16 22:50:39 +08:00
Stephen Chung
146129279c
Refine examples.
2022-01-16 22:45:49 +08:00
Stephen Chung
3667761340
Fix bugs and add comments to standard library.
2022-01-15 23:34:38 +08:00
Stephen Chung
e24848668a
Fix build.
2022-01-15 11:35:44 +08:00
Stephen Chung
00b189d0c6
Replace Cow<str> in Scope with SmartString.
2022-01-15 11:26:43 +08:00
Stephen Chung
2a8a8c00f5
Refine calc_index API.
2022-01-15 10:24:08 +08:00
Stephen Chung
a8ec984b0f
Fix unsafe violation in for loop.
2022-01-15 10:18:16 +08:00
Stephen Chung
ae77582028
Minor refactor.
2022-01-14 21:49:38 +08:00
Stephen Chung
e2e0b8d083
Fix Array::chop.
2022-01-14 10:04:24 +08:00
Stephen Chung
96764c0d2d
Fix UINT -> UNSIGNED_INT.
2022-01-13 22:51:56 +08:00
Stephen Chung
25f54c0ea5
Pretty-display return types.
2022-01-13 22:51:10 +08:00
Stephen Chung
5ab7c59ba0
Fix Array::pad infinite loop.
2022-01-13 22:05:07 +08:00
Stephen Chung
5e32af0ceb
Fix unchecked build.
2022-01-13 21:08:36 +08:00
Stephen Chung
510c201d2f
Fix build.
2022-01-13 21:01:56 +08:00
Stephen Chung
09aa9fc3db
Extract metadata into separate type.
2022-01-13 19:07:56 +08:00
Stephen Chung
a3a527923a
Fix metadata param name in JSON.
2022-01-13 18:13:38 +08:00
Stephen Chung
0f4e8848f9
Extract index calculataion into functions.
2022-01-13 18:13:27 +08:00
Stephen Chung
4b4a6c944d
Fix test.
2022-01-12 11:01:03 +08:00
Stephen Chung
37dbc68bf5
Use target_family for wasm.
2022-01-12 08:12:28 +08:00
Stephen Chung
77eb96bd7e
Fix errors.
2022-01-11 11:40:08 +08:00
Stephen Chung
6dedb1ed9f
Fix no_std builds.
2022-01-11 11:33:54 +08:00
Stephen Chung
f205091d0a
Inline traits impl.
2022-01-10 22:51:24 +08:00
Stephen Chung
56217e386e
Fix debug for Engine.
2022-01-10 22:51:04 +08:00
Stephen Chung
5d90b3274c
Catch unsupported custom syntax.
2022-01-10 20:08:03 +08:00
Stephen Chung
ea6c264f5f
Fix builds.
2022-01-10 13:43:30 +08:00
Stephen Chung
1e0d46fc13
Fix debug print for GlobalRuntimeStates.
2022-01-09 18:43:12 +08:00
Stephen Chung
e4e2bb3356
Fix builds.
2022-01-09 12:44:24 +08:00
Stephen Chung
d1749131c5
Add missing data size check.
2022-01-08 23:23:43 +08:00
Stephen Chung
f399e8a905
Evaluate function call args more efficiently.
2022-01-08 18:40:19 +08:00
Stephen Chung
afb651d0aa
Support converting literal FnPtr.
2022-01-08 14:00:41 +08:00
Stephen Chung
047e65223d
Fix builds.
2022-01-07 12:19:01 +08:00
Stephen Chung
a267ac5e54
Split Engine into eval folder.
2022-01-07 11:43:47 +08:00
Stephen Chung
33bfff3722
Fix build.
2022-01-06 23:29:11 +08:00
Stephen Chung
c75d51ae88
Reduce unnecessary data size checking.
2022-01-06 22:10:16 +08:00
Stephen Chung
de6cb36503
Lift function calls out of match block in eval_stmt.
2022-01-06 16:06:31 +08:00
Stephen Chung
80edb1200d
Fix Array::pad limits.
2022-01-06 15:30:17 +08:00
Stephen Chung
0a63e1732b
Optimize hot path in Engine::eval_expr.
2022-01-06 15:28:53 +08:00
Stephen Chung
2e050f8f88
Reduce data size checking.
2022-01-06 13:40:03 +08:00
Stephen Chung
ed89817d0c
Reverse tail call optimization.
2022-01-06 12:31:46 +08:00
Stephen Chung
bc6bf6c6ba
Change expect("exists") to unwrap().
2022-01-06 11:07:52 +08:00
Stephen Chung
b1b4361d08
Fix documentation.
2022-01-06 10:19:25 +08:00
magnus
7bf517b242
Fix documentation
2022-01-06 10:18:02 +08:00
Stephen Chung
123e8b1b48
Improve FnPtr debug display.
2022-01-05 13:48:25 +08:00
Stephen Chung
2b613fdff3
Remove unneeded strings interner for modules.
2022-01-05 13:40:49 +08:00
Stephen Chung
a0531129df
Restructure expression dispatch.
2022-01-05 13:14:18 +08:00
Stephen Chung
f35c9c1ac4
Refactor imports.
2022-01-05 12:52:56 +08:00
Stephen Chung
328f6910b6
Refactor wasm feature gates.
2022-01-04 22:16:20 +08:00
Stephen Chung
d99953c101
Fixup AsRef<str> vs &str.
2022-01-04 15:22:48 +08:00
Stephen Chung
1d1e473ac4
Minor refactor.
2022-01-03 23:16:47 +08:00
Stephen Chung
d60f14ec27
Streamline hot code.
2022-01-03 23:11:06 +08:00
Stephen Chung
8961f36e8e
Move bit-fields into new package.
2022-01-03 23:10:20 +08:00
Stephen Chung
bccdf70521
Change tuples into fields.
2022-01-02 23:26:38 +08:00
Stephen Chung
29f1328087
Simplify Dynamic::from for better inlining.
2022-01-02 20:47:03 +08:00
Stephen Chung
809feaf58d
Add doc comments.
2022-01-02 15:14:55 +08:00
Stephen Chung
d60ed5a502
Reduce size of Variant trait.
2022-01-01 19:54:46 +08:00
Stephen Chung
a6ddb64596
Fix builds.
2022-01-01 17:38:32 +08:00
Stephen Chung
135b1f54c2
Remove Option from source and use empty string as no source.
2022-01-01 17:20:00 +08:00
Stephen Chung
8329baea29
Fix doc comments.
2021-12-31 23:01:34 +08:00
Stephen Chung
f3a8364936
Split blob write into write_utf8 and write_ascii.
2021-12-31 17:49:38 +08:00
Stephen Chung
ce93f56813
Rename parameters.
2021-12-31 17:49:19 +08:00
Stephen Chung
e3aa2c19ce
Make for loops for efficient.
2021-12-31 15:59:13 +08:00
Stephen Chung
64bf2eef5c
Better error messages.
2021-12-30 12:19:41 +08:00
Stephen Chung
1fd242ed2c
Flatten nested block scopes.
2021-12-30 12:14:54 +08:00
Stephen Chung
be4ae6e763
Add rewind_scope to eval_stmt.
2021-12-30 08:57:23 +08:00
Stephen Chung
3488dbe74b
Fix merging strings interner.
2021-12-29 14:26:54 +08:00
Stephen Chung
4bd482352e
Fix eval call.
2021-12-28 23:00:31 +08:00
Stephen Chung
cbaf095c7a
Merge restore_state and rewind_scope.
2021-12-28 17:50:49 +08:00
Stephen Chung
5b667a69b7
Reverse EvalStateData.
2021-12-28 12:19:20 +08:00
Stephen Chung
280010c427
Fix builds.
2021-12-28 12:00:01 +08:00
Stephen Chung
807240e249
Rename Imports to GlobalRuntimeState.
2021-12-28 11:42:52 +08:00
Stephen Chung
9deddc679c
Use Box<str>.
2021-12-27 23:15:25 +08:00
Stephen Chung
a78488d935
Rename Imports to GlobalRuntimeState.
2021-12-27 23:03:30 +08:00
Stephen Chung
e8b070cbf8
Fix builds.
2021-12-27 22:28:11 +08:00
Stephen Chung
9c7ced2b80
Move custom syntax to api.
2021-12-27 22:02:34 +08:00
Stephen Chung
4d226542fa
Split out strings interner.
2021-12-27 21:56:50 +08:00
Stephen Chung
7a15071e4e
Reduce size of ChainArgument.
2021-12-27 17:00:21 +08:00
Stephen Chung
757eacfdde
No need for types with Into::into.
2021-12-27 16:59:05 +08:00
Stephen Chung
f443e4d9f6
Fix formatting.
2021-12-27 13:30:44 +08:00
Stephen Chung
dfb3378b28
Expand function call arguments inline storage.
2021-12-27 12:27:44 +08:00
Stephen Chung
05d4c81e7a
Use type alias for error.
2021-12-27 12:27:31 +08:00
Stephen Chung
e7ca3f41dd
Fix formatting.
2021-12-27 11:43:11 +08:00
Stephen Chung
a07faf7dd9
Fix doc test.
2021-12-26 12:16:48 +08:00
Stephen Chung
01c35808cb
Use type alias
2021-12-25 23:49:14 +08:00
Stephen Chung
43363e0660
Reserve is keyword.
2021-12-24 14:59:14 +08:00
Stephen Chung
5c31ec7f78
Fix array bug.
2021-12-22 22:22:20 +08:00
Stephen Chung
3751b6d018
Build in array/blob concat functions.
2021-12-22 19:59:48 +08:00
Stephen Chung
422db4269e
Allow multiple packages in def_package.
2021-12-22 12:41:55 +08:00
Stephen Chung
1c50efbac8
Unroll switch range case if range has only one number.
2021-12-22 10:48:19 +08:00
Stephen Chung
7ff50451cc
Make comments multiline.
2021-12-21 22:16:03 +08:00
Stephen Chung
f9f3615878
Fix builds.
2021-12-21 16:36:53 +08:00
Stephen Chung
b85a9b3c1c
Extract doc-comment on plugin functions.
2021-12-21 16:14:07 +08:00
Stephen Chung
f74486f904
Separate return type name and use references for serialization.
2021-12-21 13:21:29 +08:00
Stephen Chung
d7960dfe80
Short circuit no_function.
2021-12-21 13:03:39 +08:00
Stephen Chung
b4756b4575
Move CallableFunction to own file.
2021-12-20 22:13:00 +08:00
Stephen Chung
bca9fe53b0
New syntax for def_package.
2021-12-20 11:42:39 +08:00
Stephen Chung
5729f0cdd4
Add test for call_fn_raw.
2021-12-19 23:22:14 +08:00
Stephen Chung
123012404b
Add Blob::write for strings.
2021-12-18 23:03:35 +08:00
Stephen Chung
e507dcfcb4
Fix no_index build.
2021-12-18 18:44:08 +08:00
Stephen Chung
541ef319bb
Merge branch 'v1.3-fixes'
2021-12-18 18:22:20 +08:00
Stephen Chung
7eda6454a8
Bug fix.
2021-12-18 17:47:35 +08:00
Stephen Chung
9736171089
Fix bug in hex parsing for negative numbers.
2021-12-18 17:07:30 +08:00
Stephen Chung
0ae4d14a62
Move BLOB concat and push to builtin.
2021-12-18 15:37:20 +08:00
Stephen Chung
82d3375fc0
Fix Dynamic::from for BLOB.
2021-12-18 15:36:30 +08:00
Stephen Chung
9cf8360616
Move blob functions to builtin.
2021-12-18 14:58:02 +08:00
Stephen Chung
2b79a65454
Move range contains into builtin.
2021-12-18 14:50:37 +08:00
Stephen Chung
fc84600b22
Add NativeCallContext::call_fn
2021-12-18 12:29:04 +08:00
Stephen Chung
1c1247ac9a
Tidy up code.
2021-12-18 12:28:56 +08:00
Stephen Chung
dc6896fbe2
Add OpAssignment::new_from_token.
2021-12-17 16:55:24 +08:00
Stephen Chung
8d67c70294
Fix builds.
2021-12-17 16:55:07 +08:00
Stephen Chung
29a9b3878d
Fix builds.
2021-12-17 16:32:34 +08:00
Stephen Chung
42638db0fb
Move Engine default limits.
2021-12-17 16:15:30 +08:00
Stephen Chung
c7ec27acc7
Split AST into separate files.
2021-12-17 16:07:13 +08:00
Stephen Chung
b1b2c62d7d
Merge branch 'v1.3-fixes'
2021-12-16 22:40:25 +08:00
Stephen Chung
10fa6844c4
Fix custom syntax with method calls.
2021-12-16 22:40:10 +08:00
Stephen Chung
fbc2b1f13d
Allow non-custom reserved symbols in custom syntax.
2021-12-16 18:01:49 +08:00
Stephen Chung
f92cbe1f6d
Merge branch 'v1.3-fixes'
2021-12-16 16:10:39 +08:00
Stephen Chung
224aa0ea68
Allow custom syntax inside binary operator expressions.
2021-12-16 16:06:44 +08:00
Stephen Chung
2adb4ba4a8
Simplify deref_mut to &mut *.
2021-12-15 23:21:05 +08:00