Commit Graph

1035 Commits

Author SHA1 Message Date
Stephen Chung
d2c94ba07c Add more module tests. 2020-10-02 14:55:02 +08:00
Stephen Chung
e8d5f78f88 Simplify code. 2020-10-01 23:31:27 +08:00
Stephen Chung
2290c72de1 Fix tests. 2020-09-30 23:27:41 +08:00
Stephen Chung
a04ed02b54 Simplify macro system and update doc comments. 2020-09-30 22:55:40 +08:00
Stephen Chung
e526b53b42 No need to merge module if empty. 2020-09-30 09:57:21 +08:00
Stephen Chung
c7dfbd48a6 Restore call_fn_dynamic. 2020-09-29 18:37:00 +08:00
Stephen Chung
69054f1b69 Change lib to &Module. 2020-09-29 18:17:41 +08:00
Stephen Chung
ea78fa2b27 Change SharedPluginFunction to Shared<FnPlugin> 2020-09-29 13:06:48 +08:00
Stephen Chung
2123b0a279 Module::eval_ast_as_new will merge global and module namespaces if private_namespace is true. 2020-09-28 18:53:03 +08:00
Stephen Chung
5e43f2e5a4 Better error handling messages. 2020-09-28 11:19:49 +08:00
Stephen Chung
a1cf852bb9 Merge in function pointer arguments. 2020-09-28 11:01:25 +08:00
Stephen Chung
f92d992165 Handle timestamps in serde. 2020-09-27 22:34:07 +08:00
Stephen Chung
e1ce67adc2 Add TimeStamp variant. 2020-09-27 22:15:35 +08:00
Stephen Chung
516f7b60d9 Fix no_std build. 2020-09-27 18:47:20 +08:00
Stephen Chung
a2694114d1 Better panic messages. 2020-09-27 11:14:50 +08:00
Stephen Chung
726b030616 Implement +/- operators for timestamp. 2020-09-26 19:45:33 +08:00
Stephen Chung
e0483f2a50 Implement Dynamic::From<Instant> 2020-09-26 19:41:04 +08:00
Stephen Chung
03dce86328 Support Dynamic as function default return value. 2020-09-26 16:27:38 +08:00
Stephen Chung
e62d1cd3ff Better error message for setter. 2020-09-26 12:34:06 +08:00
Stephen Chung
4efe6b90e7 Add string::split(). 2020-09-25 23:02:49 +08:00
Stephen Chung
da9aa60256 Wrap file module functions in ErrorInModule. 2020-09-25 20:24:03 +08:00
Stephen Chung
39bbff878c Fix doc test. 2020-09-25 20:00:49 +08:00
Stephen Chung
f406fc0ac0 Fix function calls. 2020-09-25 19:07:24 +08:00
Stephen Chung
599fe846cb Add complete_namespace to Module::eval_ast_as_new. 2020-09-25 18:07:39 +08:00
Stephen Chung
93f53fa417 Refactor module.rs into files structure. 2020-09-25 10:59:21 +08:00
Stephen Chung
e637bfa51d Change pure to independent. 2020-09-25 09:39:18 +08:00
Stephen Chung
6a53c446d3 Fix no_function build. 2020-09-24 23:32:54 +08:00
Stephen Chung
c4ec93080e New FileModuleResolver. 2020-09-24 22:50:28 +08:00
Stephen Chung
b8aeaa84de Add functions to iterate script function definitions. 2020-09-24 16:10:25 +08:00
Stephen Chung
9fcbda1ba4 Add reverse function to arrays. 2020-09-24 10:51:21 +08:00
Stephen Chung
d91d983c74 Enable dots on numbers to parse as method calls. 2020-09-23 22:48:28 +08:00
Stephen Chung
39433164f2 Fix no_float build. 2020-09-23 12:06:17 +08:00
Stephen Chung
4e0f887025 Merge branch 'master' into plugins 2020-09-23 12:00:15 +08:00
Stephen Chung
ed38b50490 Add parse_int and parse_float. 2020-09-23 12:00:03 +08:00
Stephen Chung
5718f454c4
Merge pull request #60 from jhwgh1968/plugins
Remove redundant clones in codegen
2020-09-23 11:54:57 +08:00
J Henry Waugh
d65042088e Remove redundant clones in codegen 2020-09-22 21:38:59 -05:00
Stephen Chung
035b9cb839 Avoid &mut ImmutableString. 2020-09-22 22:45:11 +08:00
Stephen Chung
5a37497a22 Flatten type groups and types in parentheses. 2020-09-22 21:29:44 +08:00
Stephen Chung
3224c5baf5 Avoid &mut ImmutableString. 2020-09-22 19:42:44 +08:00
Stephen Chung
02f37870e5 Better position of string literal errors. 2020-09-22 19:18:06 +08:00
Stephen Chung
41a16c9cf7 Use modules. 2020-09-22 19:17:50 +08:00
Stephen Chung
e7566da7d2 Fix no_std build. 2020-09-22 18:06:36 +08:00
Stephen Chung
594dcc3a06 Disallow registering indexers for arrays, maps and strings. 2020-09-22 17:57:56 +08:00
Stephen Chung
283495a02f Setters should have no return value. 2020-09-22 12:14:26 +08:00
Stephen Chung
8095ebc9e4 Remove unused imports. 2020-09-21 18:00:46 +08:00
Stephen Chung
83f9df2852 Fix op-assignment overrides. 2020-09-21 16:15:52 +08:00
J Henry Waugh
c8dffff515 Fix clippy::perf lint errors 2020-09-20 13:07:46 -05:00
J Henry Waugh
788a22108b Hide clippy errors from exported modules 2020-09-20 13:03:35 -05:00
Stephen Chung
a49b58002a Fix doc tests. 2020-09-20 15:55:11 +08:00
Stephen Chung
c7a675e18a Fix no_object builds. 2020-09-20 14:52:38 +08:00
Stephen Chung
1ae6af5289 Merge branch 'plugins_dev' of https://github.com/schungx/rhai into plugins 2020-09-20 14:32:44 +08:00
Stephen Chung
2ba875a177 Use take_string for &str and String parameters. 2020-09-20 14:23:14 +08:00
Stephen Chung
5a7a0f11ae Fix doc test. 2020-09-20 10:51:37 +08:00
Stephen Chung
cfe28c9282 Remove Position parameter from plugin call function. 2020-09-20 10:51:37 +08:00
Stephen Chung
3341f40fd2 Refine docs. 2020-09-20 10:50:58 +08:00
Stephen Chung
39546b7053 Enable &str and String parameters in module functions. 2020-09-19 18:12:23 +08:00
Stephen Chung
848bdf3f01 Add combine_with_exported_module. 2020-09-16 21:50:44 -05:00
Ilya Lakhin
4bb1a34abb Fixes bug in Module::set_fn_4_mut 2020-09-15 10:14:34 +07:00
Stephen Chung
db59aed14e Fix bug in optimizer for if statements with empty true blocks. 2020-09-14 22:24:55 +08:00
Stephen Chung
6c69a40083 Allow scripted functions in packages. 2020-09-11 22:32:59 +08:00
Stephen Chung
a75aba8a85 Rename calc_fn_spec to calc_fn_hash. 2020-09-11 22:24:44 +08:00
Stephen Chung
d1ab9a2848 Fix bug on unary function hashes. 2020-09-11 22:09:09 +08:00
Stephen Chung
fed65676a2 cargo fmt. 2020-09-10 17:42:34 +08:00
Stephen Chung
d41fde9c31 Use multiple renames to simplify plugins. 2020-09-08 18:01:34 +08:00
Stephen Chung
91b4f8a6bc Fix no-std build. 2020-08-31 12:09:52 +08:00
Stephen Chung
ee3781e86e Simplify error handling code. 2020-08-31 11:46:32 +08:00
Stephen Chung
32985c9480 Fix string package for no_std. 2020-08-30 23:18:47 +08:00
Stephen Chung
75ca495199 Nicer formatting/less indentation of module plugin blocks. 2020-08-30 17:28:53 +08:00
Stephen Chung
9ab3d87cfc Refactor. 2020-08-24 22:37:44 +08:00
Stephen Chung
2fbc1b7910 Add missing pub to functions. 2020-08-24 10:38:15 +08:00
Stephen Chung
03237c9852 Merge branch 'plugins' into plugins_dev 2020-08-24 08:36:15 +08:00
J Henry Waugh
9fe3672514 string_more: add missing pub from crop_string 2020-08-23 17:49:50 -05:00
Stephen Chung
1dacf21a84 Fix no_std builds by pulling in num-traits. 2020-08-23 18:28:55 +08:00
Stephen Chung
3902e49a7d Fix bug in right-shifts. 2020-08-23 18:04:19 +08:00
Stephen Chung
a72f797da1 Merge branch 'plugins' into plugins_dev 2020-08-23 17:54:37 +08:00
Stephen Chung
4fff90d19b Merge branch 'master' into plugins 2020-08-23 17:54:02 +08:00
Stephen Chung
7cd345b128 Fix bug in closure capture for no_object. 2020-08-23 17:46:39 +08:00
Stephen Chung
57acd618de Merge branch 'master' into plugins 2020-08-23 17:24:27 +08:00
Stephen Chung
e2f271644a Expand packages and raw Engine write-up. 2020-08-23 17:22:39 +08:00
Stephen Chung
196e145c96 Derive standard traits for Limits. 2020-08-23 16:29:32 +08:00
Stephen Chung
c62914b91a Merge branch 'master' into plugins_dev 2020-08-22 23:04:34 +08:00
Stephen Chung
86c7862ac4 Merge branch 'master' into plugins 2020-08-22 23:03:32 +08:00
Stephen Chung
177a0de23c Fix closure test. 2020-08-22 23:01:25 +08:00
Stephen Chung
3042e3d9db Merge branch 'master' into plugins_dev 2020-08-22 22:51:41 +08:00
Stephen Chung
0ece75aba3 Allow module access in closures. 2020-08-22 22:44:24 +08:00
Stephen Chung
211ce54973 Move most packages to modules. 2020-08-22 22:26:49 +08:00
Stephen Chung
5d6fdba24d Merge branch 'plugins' into plugins_dev 2020-08-22 16:20:53 +08:00
J Henry Waugh
15a8f528ae Avoid export_fn+cfg attributes in Rhai packages 2020-08-21 23:26:24 -05:00
Stephen Chung
0b04d05afe Do not parse closures when allow_anonymous_fn is false. 2020-08-22 11:08:27 +08:00
Stephen Chung
08977e2a62 Use combine_flatten for plugin modules. 2020-08-21 21:48:45 +08:00
Stephen Chung
3c0d431fd2 Merge branch 'plugins' into plugins_dev 2020-08-20 22:14:56 +08:00
Stephen Chung
729ab99ec3 Refine packages. 2020-08-20 22:11:41 +08:00
Stephen Chung
6e54b22b31 Merge branch 'master' into plugins_dev 2020-08-20 17:02:57 +08:00
Stephen Chung
24610688d3 Fix no_std build. 2020-08-20 17:02:25 +08:00
Stephen Chung
7c1d4efeb7 Merge branch 'master' into plugins_dev 2020-08-20 16:54:00 +08:00
Stephen Chung
ac6d519d28 Fix bug that consumes first argument in module-qualified call. 2020-08-20 16:26:10 +08:00
Stephen Chung
980aba77a9 Use &mut. 2020-08-19 12:53:33 +08:00
Stephen Chung
c55b0d7883 Fix bug with plugin method call detection. 2020-08-19 12:50:23 +08:00
Stephen Chung
6a3e123306 Use split_first_mut instead of split_at_mut. 2020-08-18 23:19:26 +08:00
Stephen Chung
c5360db185 Handle #{ in Engine::parse_json, restrict to object hashes only. 2020-08-18 23:07:17 +08:00
Stephen Chung
d024f912e0 Merge branch 'master' into plugins_dev 2020-08-18 22:02:44 +08:00
Stephen Chung
e3f2157c6a Treat leading #{ in Engine::parse_json. 2020-08-18 22:01:13 +08:00
Stephen Chung
09b75ed1a3 Fix bug in strings package. 2020-08-17 10:00:50 +08:00
Stephen Chung
810514dd31 Add get/set/index_get/index_set parameters to rhai_fn. 2020-08-17 00:13:52 +08:00
Stephen Chung
e75d91e9bf Bring more functions into modules in plugins via rhai_fn(name) attribute. 2020-08-16 23:41:59 +08:00
Stephen Chung
db9d8b81cf Move BasicStringsPackage to plugins. 2020-08-15 12:57:47 +08:00
J Henry Waugh
e4045256fe Fix type resolution issue with no_float enabled 2020-08-14 19:39:28 -05:00
J Henry Waugh
89de2fe6b2 Feature gate make_getter imports 2020-08-14 19:37:34 -05:00
J Henry Waugh
eabf9db263 Add missing num_traits import 2020-08-14 19:37:25 -05:00
J Henry Waugh
7fcbfcc7fd codegen: explicit import of format! macro 2020-08-14 19:37:25 -05:00
J Henry Waugh
1051a3f108 Add missing import of String and ToString 2020-08-14 19:37:25 -05:00
J Henry Waugh
e6a1b88b4c Fully feature gate array string functions 2020-08-14 19:37:25 -05:00
J Henry Waugh
4de02c2bd7 Remove extra import 2020-08-14 16:30:00 -05:00
Stephen Chung
489b1ca00e Add Module::combine. 2020-08-15 00:08:00 +08:00
Stephen Chung
209d1a174c Yet more packages into plugins. 2020-08-15 00:04:10 +08:00
Stephen Chung
ceb1a26733 Move more packages to plugins. 2020-08-14 18:58:34 +08:00
Stephen Chung
c0dc47c9db Convert some packages into plugins. 2020-08-14 13:43:26 +08:00
Stephen Chung
2495b367e5 Merge branch 'plugins' of https://github.com/schungx/rhai into plugins 2020-08-14 13:40:33 +08:00
J Henry Waugh
b27ebb318d Rearrange imports to support no_std 2020-08-13 23:04:30 -05:00
Stephen Chung
d2ea981fac Merge branch 'master' into plugins 2020-08-14 11:45:52 +08:00
Stephen Chung
b956639c2a Move some math functions into plugins. 2020-08-13 14:57:46 +08:00
J Henry Waugh
fdcaa90cd9 Clean up plugin module for no_module macro support 2020-08-12 23:57:57 -05:00
J Henry Waugh
28572544d8 Split register export macro, add Engine support 2020-08-12 23:36:35 -05:00
J Henry Waugh
59e3ca0e79 Remove Dynamic::downcast_clone 2020-08-11 19:09:49 -05:00
Stephen Chung
a5b4d61dff Fix docs. 2020-08-11 13:46:09 +08:00
Stephen Chung
564d3bc339 Add more closure tests. 2020-08-09 22:12:50 +08:00
Ilya Lakhin
39ee74112c no-closure feature issue fixed 2020-08-09 18:42:33 +07:00
Ilya Lakhin
20cff87e14 False-positive capturing prevention bug fix 2020-08-09 18:35:29 +07:00
Stephen Chung
0e344ff3eb Merge branch 'master' into plugins 2020-08-08 23:01:48 +08:00
Stephen Chung
da3cce58d3 Minor refactor. 2020-08-08 22:59:05 +08:00
Stephen Chung
e66873bb83
Merge pull request #27 from Eliah-Lakhin/capturing-bug
Function names capturing as external variables bug
2020-08-08 22:52:20 +08:00
Ilya Lakhin
45d021c7ef Function names capturing as external variables bug 2020-08-08 17:55:58 +07:00
Stephen Chung
f68c5a699d Fix sync feature. 2020-08-08 17:04:21 +08:00
Stephen Chung
fbad20eb0d Merge branch 'master' into plugins 2020-08-08 16:26:52 +08:00
Stephen Chung
5a1a141ce3 Improve shared value treatment. 2020-08-08 16:24:10 +08:00
Stephen Chung
7b258ac410 Add more inlining. 2020-08-08 11:46:30 +08:00
Stephen Chung
5e6d5e8e80 Expand getter/setter/indexer API. 2020-08-07 11:10:38 +08:00
J Henry Waugh
75bcbb74eb Fix unrelated CI failure for features 2020-08-06 19:41:19 -05:00
J Henry Waugh
be315aebaf Fix breakage due to write_lock() 2020-08-06 18:36:19 -05:00
Stephen Chung
6475e4e20e Merge branch 'master' into plugins 2020-08-06 23:17:20 +08:00
Stephen Chung
b604ea3e93 Fix serde doc test. 2020-08-06 22:47:10 +08:00
Stephen Chung
130bcfe293 Fix serde. 2020-08-06 21:19:54 +08:00
Stephen Chung
4465a44673 Fix typos. 2020-08-06 10:31:32 +08:00
Stephen Chung
26c5b10ef7 Merge branch 'master' into plugins 2020-08-06 10:31:15 +08:00
Stephen Chung
2f395492de Simply error code. 2020-08-06 10:17:32 +08:00
Stephen Chung
ffe52bf437 Allow omitting the alias in import statement. 2020-08-05 23:23:53 +08:00
Stephen Chung
ae11dbbefe Fix feature flags. 2020-08-05 22:53:01 +08:00
Stephen Chung
5ea08d2b50 Bump version. 2020-08-05 17:55:36 +08:00
Stephen Chung
8a0d0e3e20 Unbox error return for Engine::register_custom_syntax. 2020-08-05 10:00:20 +08:00
Stephen Chung
9f302d4ef5 Update docs and tests. 2020-08-04 18:39:24 +08:00
Stephen Chung
b0ab6e95f5 Fix currying in map closure calls. 2020-08-04 18:38:33 +08:00
Stephen Chung
24346b9728 Merge branch 'master' into plugins 2020-08-04 16:51:22 +08:00
Stephen Chung
4878a69503 Add docs for closures. 2020-08-04 16:27:55 +08:00
Stephen Chung
3d6c83c6d8 Fix serde builds. 2020-08-04 09:47:48 +08:00
Stephen Chung
4a7bf893e6 Refine flatten clone for scope. 2020-08-03 23:13:09 +08:00
Stephen Chung
2aa08c0dd9 get_constant_value for FnPointer. 2020-08-03 23:12:42 +08:00
Stephen Chung
3b6d35368f Handle shared for loop variable. 2020-08-03 23:11:38 +08:00
Stephen Chung
abe74e7f44 Handle Dynamic::from(FnPtr). 2020-08-03 23:11:24 +08:00
Stephen Chung
e1a70fe958 Add FnPtr to standard packages. 2020-08-03 23:11:08 +08:00
Stephen Chung
3fc35c4f87 Merge from master. 2020-08-03 13:28:29 +08:00
Stephen Chung
dddd8133df Set unshared value in let/const statement. 2020-08-03 12:38:56 +08:00
Stephen Chung
4079164bfd Implement closures. 2020-08-03 12:10:20 +08:00
J Henry Waugh
3136188801 Improve proc macro hygiene 2020-08-02 19:27:35 -05:00
Stephen Chung
096eb4493e Engine::load_package API change. 2020-08-02 18:55:22 +08:00
Stephen Chung
5eed5fe6a3 Add plugins test. 2020-08-02 18:53:25 +08:00
Stephen Chung
747c0345f2 Do not convert a function call into a method call if the object is shared. 2020-08-02 13:51:07 +08:00
Stephen Chung
b86c87253b Prevent data races. 2020-08-02 13:33:51 +08:00
J Henry Waugh
d01203cb5d New Procedural Macros Crate v0.1 2020-08-01 11:52:32 -05:00
Stephen Chung
1daf91df30 Avoid storing shared value inside shared value. 2020-08-01 22:28:17 +08:00
Stephen Chung
cc53b21731 Avoid hard-coding variable type for shared. 2020-08-01 22:28:13 +08:00
Stephen Chung
af2f8acb5d Refine indexer set. 2020-08-01 12:21:15 +08:00
Stephen Chung
a2858e0fd3 Refine feature gates 2020-08-01 12:19:27 +08:00
Stephen Chung
5873bccd50 Fix no_index and no_object. 2020-07-31 23:37:30 +08:00
Stephen Chung
60891e694f Streamline code and feature gates. 2020-07-31 22:30:23 +08:00
Stephen Chung
8d0623d07f Add is_shared function. 2020-07-31 18:43:34 +08:00
Stephen Chung
0295e109ad Fix features 2020-07-31 18:06:01 +08:00
Stephen Chung
d563b878aa Fix no_std builds. 2020-07-31 17:26:49 +08:00
Stephen Chung
df8587ac91 Make sure both shared and take can be called in both styles. 2020-07-31 17:06:40 +08:00
Stephen Chung
e70e0ff4e2 Fixup. 2020-07-31 16:39:38 +08:00
Stephen Chung
871fcb38be Minor style changes and make sure no_shared works on all. 2020-07-31 16:03:08 +08:00
Ilya Lakhin
5d1f5cc2b4 Dynamic::read renamed to Dynamic::clone_inner_data 2020-07-31 13:10:05 +07:00
Ilya Lakhin
89f75bbf0c Merge remote-tracking branch 'schungx/closures' into closures 2020-07-31 13:05:16 +07:00
Ilya Lakhin
4f771d904a Code cleanup 2020-07-31 12:09:32 +07:00
Ilya Lakhin
ca64668e58 take() keyword; shared test with registered functions with callbacks 2020-07-31 11:41:22 +07:00
Stephen Chung
49392d57d7 Fix no_std feature. 2020-07-31 12:40:16 +08:00
Stephen Chung
cb005506e2 Simplify function calling. 2020-07-31 12:11:16 +08:00
Ilya Lakhin
060dd33046 Shared Dynamic tests and fixes in Engine; Also fixed a bug in Parser variable capturing 2020-07-31 10:47:22 +07:00
Ilya Lakhin
aa87a7f5ef Fixes in Engine to properly interpret Shared Dynamic 2020-07-31 10:47:22 +07:00
Ilya Lakhin
e5fe222de3 Shared variant of Dynamic type; All read/write access operations in Dynamic backed by Read/Write lock guards; new shared() script function 2020-07-31 10:47:14 +07:00
Stephen Chung
a7ff207636 Use Scope::flatten_clone for capturing. 2020-07-30 23:29:30 +08:00
Stephen Chung
7d4620d0d9 Unbounded -> unbound. 2020-07-30 23:29:11 +08:00
Stephen Chung
98b294c699 Implement capturing. 2020-07-30 18:18:28 +08:00
Stephen Chung
e505a06839 Add comparison operators to ImmutableString. 2020-07-30 13:28:25 +08:00
Stephen Chung
691e04292f Put externals in ScriptFnDef. 2020-07-30 13:28:06 +08:00
J Henry Waugh
5785fa6b74 Fix Plugins API for no_std 2020-07-29 16:57:13 -05:00
Stephen Chung
6e663eecb4 Fix fn_call. 2020-07-29 23:39:32 +08:00
Stephen Chung
d63f926701 Merge branch 'master' into plugins 2020-07-29 23:37:51 +08:00
Stephen Chung
721c578407 Use HashMap for externals. 2020-07-29 23:34:48 +08:00
Stephen Chung
1465ba2315 Refactor auto-currying. 2020-07-29 22:43:50 +08:00
Stephen Chung
a5a3bbd399
Merge pull request #19 from Eliah-Lakhin/closures
Autocurry feature
2020-07-29 21:24:43 +08:00