Stephen Chung
|
07bdb824fe
|
Add try-catch.
|
2020-10-20 23:16:03 +08:00 |
|
Stephen Chung
|
92ba7b42d5
|
Implement namespaces chain.
|
2020-10-20 10:54:32 +08:00 |
|
Stephen Chung
|
3c7805d514
|
Encapsulate environment in ScriptFnDef.
|
2020-10-13 09:38:14 +08:00 |
|
Stephen Chung
|
612ecc4ebc
|
Move StaticVec definition to lib.rs.
|
2020-10-10 13:41:55 +08:00 |
|
Stephen Chung
|
95c4ac4180
|
Fix no_float bug in time.
|
2020-10-09 13:47:35 +08:00 |
|
Stephen Chung
|
59b380b130
|
Allow propagation for pushed scope constants.
|
2020-10-09 13:26:32 +08:00 |
|
Stephen Chung
|
7ede299aae
|
Allow expressions in constants.
|
2020-10-09 11:15:25 +08:00 |
|
Stephen Chung
|
1272eeb81a
|
Add/remove #[inline] attributes.
|
2020-10-08 22:25:50 +08:00 |
|
Stephen Chung
|
ae1157a140
|
Remove Expr::get_constant_str and change Expr::get_constant_value not to panic.
|
2020-10-06 22:09:26 +08:00 |
|
Stephen Chung
|
b67a743306
|
Do not eagerly evaluate is_def_fn and is_def_var.
|
2020-10-05 12:14:34 +08:00 |
|
Stephen Chung
|
29bf790286
|
Fix no_function build.
|
2020-10-05 12:09:45 +08:00 |
|
Stephen Chung
|
0d0affd5e9
|
Eagerly evaluate built-in operators for OptimizationLevel::Simple.
|
2020-10-05 10:27:31 +08:00 |
|
Stephen Chung
|
03dce86328
|
Support Dynamic as function default return value.
|
2020-09-26 16:27:38 +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
|
db59aed14e
|
Fix bug in optimizer for if statements with empty true blocks.
|
2020-09-14 22:24:55 +08:00 |
|
Stephen Chung
|
ae11dbbefe
|
Fix feature flags.
|
2020-08-05 22:53:01 +08:00 |
|
Stephen Chung
|
4079164bfd
|
Implement closures.
|
2020-08-03 12:10:20 +08:00 |
|
Stephen Chung
|
60891e694f
|
Streamline code and feature gates.
|
2020-07-31 22:30:23 +08:00 |
|
Stephen Chung
|
cb005506e2
|
Simplify function calling.
|
2020-07-31 12:11:16 +08:00 |
|
Stephen Chung
|
98b294c699
|
Implement capturing.
|
2020-07-30 18:18:28 +08:00 |
|
Stephen Chung
|
691e04292f
|
Put externals in ScriptFnDef.
|
2020-07-30 13:28:06 +08:00 |
|
Stephen Chung
|
1465ba2315
|
Refactor auto-currying.
|
2020-07-29 22:43:50 +08:00 |
|
Stephen Chung
|
afbcd0fc0b
|
Replace StaticVec with SmallVec.
|
2020-07-29 16:10:06 +08:00 |
|
Stephen Chung
|
b63ff56e09
|
Make sure we keep the starting position of each statement (for future uses).
|
2020-07-28 10:26:20 +08:00 |
|
Stephen Chung
|
a3a167424b
|
Allow Rust functions in FnPtr::call_dynamic.
|
2020-07-27 12:52:32 +08:00 |
|
Stephen Chung
|
6b600704a3
|
Avoid warnings.
|
2020-07-26 15:53:22 +08:00 |
|
Stephen Chung
|
a58207aaa9
|
Change ScriptFnDef to use ImmutableString.
|
2020-07-25 14:06:13 +08:00 |
|
Stephen Chung
|
bff266d4e1
|
Move function calling to separate source file.
|
2020-07-23 18:40:42 +08:00 |
|
Stephen Chung
|
61a1355c59
|
Add no-std example.
|
2020-07-21 22:32:24 +08:00 |
|
Stephen Chung
|
e6c3f8134d
|
Avoid copying property name for map property access.
|
2020-07-21 20:59:12 +08:00 |
|
Stephen Chung
|
cf36dc5a57
|
Support for anonymous functions.
|
2020-07-19 17:14:55 +08:00 |
|
Stephen Chung
|
8449f8c55e
|
Make API chainable.
|
2020-07-12 11:46:53 +08:00 |
|
Stephen Chung
|
ebffbf0f98
|
Refine docs and add custom syntax.
|
2020-07-10 22:01:47 +08:00 |
|
Stephen Chung
|
99164ebceb
|
Add custom syntax.
|
2020-07-09 19:54:28 +08:00 |
|
Stephen Chung
|
4052ad3df1
|
Assignments return () and no compound assignments.
|
2020-07-05 23:07:02 +08:00 |
|
Stephen Chung
|
d626bf9f5b
|
Refine no_function feature.
|
2020-07-04 16:21:15 +08:00 |
|
Stephen Chung
|
aac04a5e53
|
Remove modules from Scope and use separate stack.
|
2020-06-27 23:56:24 +08:00 |
|
Stephen Chung
|
175c3ccaec
|
OOP support.
|
2020-06-26 10:39:18 +08:00 |
|
Stephen Chung
|
58c198776f
|
Code cleanup.
|
2020-06-25 11:07:46 +08:00 |
|
Stephen Chung
|
7cc1a3f5dc
|
Change Map keys to ImmutableString to facilitate fast keys().
|
2020-06-21 16:37:05 +08:00 |
|
Stephen Chung
|
56eb659d5a
|
Unify all functions into CallableFunction type, remove FunctionsLib.
|
2020-06-05 15:14:42 +08:00 |
|
Stephen Chung
|
b70d38e820
|
Avoid passing position until error.
|
2020-06-01 15:25:22 +08:00 |
|
Stephen Chung
|
c6e5f672c9
|
More benchmarks and examples.
|
2020-05-31 23:44:49 +08:00 |
|
Stephen Chung
|
13c49387ef
|
Add OptimizationLevel::is_simple
|
2020-05-31 12:36:31 +08:00 |
|
Stephen Chung
|
2bcc51cc45
|
Fix bug in index expressions.
|
2020-05-30 10:27:48 +08:00 |
|
Stephen Chung
|
95e67c48bd
|
Optimize op-assignment statement.
|
2020-05-25 20:14:31 +08:00 |
|
Stephen Chung
|
99ea2b33c9
|
Use immutable strings.
|
2020-05-25 13:44:28 +08:00 |
|
Stephen Chung
|
0374311cf6
|
Optimize hot path of operators calling.
|
2020-05-24 16:40:00 +08:00 |
|
Stephen Chung
|
1798d4d6a0
|
Fix function call optimizations.
|
2020-05-24 11:57:46 +08:00 |
|
Stephen Chung
|
b49e1e199a
|
Build-in certain common operators.
|
2020-05-23 18:59:28 +08:00 |
|
Stephen Chung
|
ab76a69b12
|
Avoid repeating empty TypeId's when calculating hash.
|
2020-05-19 20:07:51 +08:00 |
|
Stephen Chung
|
3295060dba
|
Unify all functions under CallableFunction type.
|
2020-05-19 19:03:06 +08:00 |
|
Stephen Chung
|
a22f338b03
|
Back out NativeCallable trait.
|
2020-05-19 10:13:37 +08:00 |
|
Stephen Chung
|
8b5550eeb6
|
Complete StaticVec implementation.
|
2020-05-17 22:19:49 +08:00 |
|
Stephen Chung
|
a2c50879fe
|
Fix dropping issues with StaticVec and use it everywhere.
|
2020-05-17 00:24:07 +08:00 |
|
Stephen Chung
|
be97047e51
|
Limit modules loading.
|
2020-05-15 21:40:54 +08:00 |
|
Stephen Chung
|
cabceb7498
|
Better handling of errors during function calls.
|
2020-05-13 21:58:38 +08:00 |
|
Stephen Chung
|
9d8d074940
|
Consistent naming of methods.
|
2020-05-13 20:22:05 +08:00 |
|
Stephen Chung
|
30e5e2f034
|
Use modules to implement packages.
|
2020-05-13 19:21:42 +08:00 |
|
Stephen Chung
|
996a54279c
|
Pre-calculate property getter/setter function names.
|
2020-05-13 10:19:18 +08:00 |
|
Stephen Chung
|
33c9be7efc
|
Reformat.
|
2020-05-11 23:48:50 +08:00 |
|
Stephen Chung
|
4a8710a4a9
|
Create NativeCallable trait.
|
2020-05-11 13:36:50 +08:00 |
|
Stephen Chung
|
8aa0e2ceb4
|
Use StaticVec to avoid most allocations with function arguments.
|
2020-05-10 21:25:47 +08:00 |
|
Stephen Chung
|
80debbc432
|
Refactor.
|
2020-05-10 00:19:13 +08:00 |
|
Stephen Chung
|
a7bfac21bd
|
Reducing boxing and sizes of Expr/Stmt.
|
2020-05-09 21:46:38 +08:00 |
|
Stephen Chung
|
79f39bd702
|
Pre-calculate function call hashes.
|
2020-05-09 16:15:50 +08:00 |
|
Stephen Chung
|
5f12391ec6
|
Use hashed lookup for module-qualified functions and variables.
|
2020-05-08 00:19:08 +08:00 |
|
Stephen Chung
|
c607c7c428
|
Move Engine functions and iterators lib to Packages API.
|
2020-05-07 15:25:50 +08:00 |
|
Stephen Chung
|
d75a8bc6cd
|
Make sure all features compile correctly.
|
2020-05-06 19:45:17 +08:00 |
|
Stephen Chung
|
38e717a838
|
Build Module type plus engine hooks.
|
2020-05-05 15:00:10 +08:00 |
|
Stephen Chung
|
143861747d
|
Rename sub-scope/SubScope to module.
|
2020-05-05 10:39:12 +08:00 |
|
Stephen Chung
|
2bdd174f16
|
Add import statement.
|
2020-05-04 19:36:58 +08:00 |
|
Stephen Chung
|
ead9716f6d
|
Add namespacing syntax.
|
2020-05-04 17:43:54 +08:00 |
|
Stephen Chung
|
d83b829810
|
Avoid copying arguments for function calls.
|
2020-05-03 16:54:24 +08:00 |
|
Stephen Chung
|
fc99b981a1
|
Fix panic when string character index is OOB.
|
2020-05-01 23:39:55 +08:00 |
|
Stephen Chung
|
c7c7fe3dfc
|
Reduce size of Expr and Stmt by Boxing strings.
|
2020-05-01 17:32:39 +08:00 |
|
Stephen Chung
|
21c3edb31e
|
Streamline.
|
2020-04-29 16:11:54 +08:00 |
|
Stephen Chung
|
304c658f89
|
Use scope offset for variable access.
|
2020-04-28 23:05:03 +08:00 |
|
Stephen Chung
|
9ad9dd52ab
|
Reduce unnecessary Cow's in Expr.
|
2020-04-28 19:39:36 +08:00 |
|
Stephen Chung
|
c2bb1f48c2
|
Reduce size of scope entry.
|
2020-04-27 21:14:34 +08:00 |
|
Stephen Chung
|
5aaaa7be3b
|
Simplify parsing by expecting the tokens stream will never be exhausted.
|
2020-04-23 13:24:24 +08:00 |
|
Stephen Chung
|
c69647d9fd
|
Change Dynamic::from_xxx to From<xxx> impl.
|
2020-04-22 12:12:13 +08:00 |
|
Stephen Chung
|
0a75479637
|
Refine packages plumbing.
|
2020-04-21 23:01:10 +08:00 |
|
Stephen Chung
|
0306d15c04
|
Split core and standard libraries into packages.
|
2020-04-21 00:11:25 +08:00 |
|
Stephen Chung
|
d3d62c7dd9
|
Anticipate number of functions to be registered.
|
2020-04-19 13:40:11 +08:00 |
|
Stephen Chung
|
f5fff828e8
|
Box errors to reduce return type footprint.
|
2020-04-18 00:14:33 +08:00 |
|
Stephen Chung
|
f8e9d66a0b
|
Remove lifetime from Engine.
|
2020-04-16 23:31:48 +08:00 |
|
Stephen Chung
|
a35518fe49
|
Split tokenizer into separate file, plus fix no_std feature.
|
2020-04-15 22:21:23 +08:00 |
|
Stephen Chung
|
5152a40e93
|
Change Dynamic to enum.
|
2020-04-12 23:00:06 +08:00 |
|
Stephen Chung
|
bc0d43d68f
|
Simplify code.
|
2020-04-11 18:09:03 +08:00 |
|
Stephen Chung
|
4b2cff715e
|
Optimize property access for object maps.
|
2020-04-10 21:02:13 +08:00 |
|
Stephen Chung
|
adbfceb5be
|
Do not omit error enum variants.
|
2020-04-10 12:16:39 +08:00 |
|
Stephen Chung
|
3609150dcf
|
Bump version to 0.12.0.
|
2020-04-09 18:45:49 +08:00 |
|
Stephen Chung
|
e0bb2e5c97
|
Change optimize_ast to take optimization level as parameter.
|
2020-04-08 09:30:50 +08:00 |
|
Stephen Chung
|
e795a50ae2
|
Make Engine reentrant to prepare for parallel execution.
|
2020-04-07 13:23:06 +08:00 |
|
Stephen Chung
|
e204ae1a2c
|
Add 'in' expression.
|
2020-04-06 17:47:34 +08:00 |
|
Stephen Chung
|
32672b184b
|
Avoid copying strings.
|
2020-04-06 12:29:01 +08:00 |
|
Stephen Chung
|
44d6a5e466
|
Reduce cloning.
|
2020-04-05 17:44:48 +08:00 |
|
Stephen Chung
|
e0514a4ec0
|
Remove ref modifiers.
|
2020-04-05 12:37:07 +08:00 |
|
Stephen Chung
|
29150faef2
|
Improve AST evaluation efficiency by sharing functions.
|
2020-04-04 22:00:44 +08:00 |
|
Stephen Chung
|
d1cffac420
|
Reduce overhead of Engine by not creating hash maps until used.
|
2020-04-04 13:05:20 +08:00 |
|
Stephen Chung
|
92b549b828
|
Add features info in docs.
|
2020-04-03 19:42:01 +08:00 |
|
Stephen Chung
|
d7ac57c060
|
Minor code cleanup.
|
2020-04-01 09:51:33 +08:00 |
|
Stephen Chung
|
45ee51874f
|
Add object maps.
|
2020-03-29 23:53:35 +08:00 |
|
Stephen Chung
|
ef6c6ea6d2
|
Add no_object feature to disable objects.
|
2020-03-29 17:15:12 +08:00 |
|
Stephen Chung
|
56df5c49c8
|
Encapsulate FunctionsLib to hold script-defined functions.
|
2020-03-26 20:26:05 +08:00 |
|
Stephen Chung
|
8679982b4b
|
Use references for function call args.
|
2020-03-26 10:56:28 +08:00 |
|
Stephen Chung
|
5aea997672
|
Refine Scope API.
|
2020-03-25 11:27:18 +08:00 |
|
Stephen Chung
|
d21f66b911
|
Fixing lint warnings
|
2020-03-24 16:57:35 +08:00 |
|
Stephen Chung
|
3677bd3651
|
Make Token smaller by boxing LexError.
|
2020-03-24 09:49:37 +08:00 |
|
Stephen Chung
|
b6320c0eef
|
Minor fine tuning.
|
2020-03-22 10:18:16 +08:00 |
|
Stephen Chung
|
283602cdd8
|
Do not call function when optimizing if there is a script-defined function overridding it.
|
2020-03-19 22:29:02 +08:00 |
|
Stephen Chung
|
6a6c5f30de
|
Add eval function.
|
2020-03-19 19:53:42 +08:00 |
|
Stephen Chung
|
019e73bc7e
|
Allow empty statements.
|
2020-03-18 18:41:18 +08:00 |
|
Stephen Chung
|
ca20faf170
|
Add code comments.
|
2020-03-18 10:43:59 +08:00 |
|
Stephen Chung
|
8efe080412
|
Handle break and return better.
|
2020-03-18 10:42:27 +08:00 |
|
Stephen Chung
|
b26ca753c2
|
Mandatory semiclolons separating statements.
|
2020-03-18 10:40:07 +08:00 |
|
Stephen Chung
|
c3d4a1b5e9
|
Optimize type_of.
|
2020-03-18 10:40:07 +08:00 |
|
Trangar
|
c8a9df0a0a
|
Added no_std support
|
2020-03-17 19:26:11 +01:00 |
|
Stephen Chung
|
08abf07f83
|
Add string literal indexing and functon default value to optimizer.
|
2020-03-16 12:41:52 +08:00 |
|
Stephen Chung
|
372321dfe3
|
Add full optimization level for aggressive optimizing.
|
2020-03-15 22:39:58 +08:00 |
|
Stephen Chung
|
01cf777961
|
Use matches! macro.
|
2020-03-14 23:41:15 +08:00 |
|
Stephen Chung
|
dd36f3387a
|
Fixup code to make sure all feature builds succeed.
|
2020-03-14 20:06:40 +08:00 |
|
Stephen Chung
|
360fab7760
|
Merge branch 'chained-assignments'
|
2020-03-14 14:41:48 +08:00 |
|
Stephen Chung
|
b3a22d942a
|
Allow AST optimization based on external Scope.
|
2020-03-14 14:30:44 +08:00 |
|
Stephen Chung
|
d5adee2209
|
Allow chained assignments.
|
2020-03-14 11:51:45 +08:00 |
|
Stephen Chung
|
9844ae8665
|
Add constants.
|
2020-03-13 18:12:41 +08:00 |
|
Stephen Chung
|
9bd66c7db3
|
Minor improvements to the optimizer.
|
2020-03-12 23:46:52 +08:00 |
|
Stephen Chung
|
560da5fdc6
|
Allow call_fn with only one parameter; consume can retain functions, eval cannot.
|
2020-03-12 14:54:14 +08:00 |
|
Stephen Chung
|
66edd28fb3
|
Do not optimize AST for dump_ast .
|
2020-03-12 12:39:33 +08:00 |
|
Stephen Chung
|
a02c0cfaa0
|
More optimizations.
|
2020-03-11 23:43:10 +08:00 |
|
Stephen Chung
|
880bce1114
|
General cleanup.
|
2020-03-11 11:03:18 +08:00 |
|
Stephen Chung
|
e22aaca5c1
|
Make sure all tests run with all features.
|
2020-03-10 19:48:47 +08:00 |
|
Stephen Chung
|
cc772c6e2a
|
Add no_float feature to disable floating-point.
|
2020-03-10 18:32:01 +08:00 |
|
Stephen Chung
|
52b5732bcb
|
Add no_inidex feature to disable arrays and indexing.
|
2020-03-10 17:10:33 +08:00 |
|
Stephen Chung
|
2d80ee2f18
|
Refine optimizer.
|
2020-03-10 11:22:41 +08:00 |
|
Stephen Chung
|
55e7af7b04
|
Add AST optimizer.
|
2020-03-09 21:57:07 +08:00 |
|