Stephen Chung
|
26449a9f1c
|
Add ScriptFnMetadata.
|
2020-12-12 18:44:28 +08:00 |
|
Stephen Chung
|
5443368359
|
Pass Position into function calls.
|
2020-12-12 11:15:09 +08:00 |
|
Stephen Chung
|
dbee0eb0f5
|
Rename AccessType to ReadWrite and ReadOnly.
|
2020-12-09 18:37:52 +08:00 |
|
Stephen Chung
|
8e8069f819
|
Do not propagate constants if shadowed.
|
2020-12-08 22:20:29 +08:00 |
|
Stephen Chung
|
b098160262
|
New CI test.
|
2020-11-28 16:58:02 +08:00 |
|
Stephen Chung
|
a0979d0c35
|
Code cleanup
|
2020-11-25 09:36:06 +08:00 |
|
Stephen Chung
|
739dce72e3
|
Move if_def_fn into CorePackage.
|
2020-11-22 15:41:55 +08:00 |
|
Stephen Chung
|
6069a4cf55
|
do loop.
|
2020-11-20 22:23:37 +08:00 |
|
Stephen Chung
|
783803ec46
|
Update comments with links.
|
2020-11-20 16:52:28 +08:00 |
|
Stephen Chung
|
15afd83da5
|
Merge Expr::True/False into BoolConstant.
|
2020-11-19 22:29:50 +08:00 |
|
Stephen Chung
|
272c8505b8
|
Refactor use.
|
2020-11-16 23:10:14 +08:00 |
|
Stephen Chung
|
adb902326e
|
Reduce feature gates on imports.
|
2020-11-16 16:28:04 +08:00 |
|
Stephen Chung
|
ef02150afd
|
Expose methods for Engine::register_module.
|
2020-11-16 14:07:48 +08:00 |
|
Stephen Chung
|
c919ee4e46
|
Fine tune hash map sizes.
|
2020-11-15 13:49:54 +08:00 |
|
Stephen Chung
|
bde8917ed4
|
Set capacity of hash maps.
|
2020-11-15 12:07:35 +08:00 |
|
Stephen Chung
|
a63f14b59c
|
Expr::Switch -> Stmt::Switch.
|
2020-11-14 23:43:36 +08:00 |
|
Stephen Chung
|
0182117759
|
Change Stmt Variant names.
|
2020-11-14 22:55:23 +08:00 |
|
Stephen Chung
|
28de155f08
|
Add Expr::DynamicConstant.
|
2020-11-14 19:04:49 +08:00 |
|
Stephen Chung
|
55b4907f19
|
Add switch expression.
|
2020-11-13 18:32:18 +08:00 |
|
Stephen Chung
|
7d1b971b39
|
More interned strings.
|
2020-11-13 10:43:54 +08:00 |
|
Stephen Chung
|
41c815f355
|
Optimize in-place.
|
2020-11-12 12:37:42 +08:00 |
|
Stephen Chung
|
958762079e
|
Change modules to namespace.
|
2020-11-10 23:26:50 +08:00 |
|
Stephen Chung
|
e69444293c
|
Encapsulate imported modules into AST.
|
2020-11-09 21:52:23 +08:00 |
|
Stephen Chung
|
4b622a8830
|
Enable export let/export const short-hand.
|
2020-11-09 12:21:11 +08:00 |
|
Stephen Chung
|
b3d318ef7f
|
Module resolver returns shared module.
|
2020-11-07 23:33:21 +08:00 |
|
Stephen Chung
|
07a8a43298
|
Optimize data structures.
|
2020-11-06 16:27:40 +08:00 |
|
Stephen Chung
|
b390586bcc
|
Fix optimization of Stmt::Expr.
|
2020-11-04 13:11:37 +08:00 |
|
Stephen Chung
|
c287a61b93
|
Streamline ScriptFnDef.
|
2020-11-04 12:34:54 +08:00 |
|
Stephen Chung
|
2168fd5361
|
Expr::Stmt takes a statements block.
|
2020-11-04 11:49:02 +08:00 |
|
Stephen Chung
|
f74d947c6b
|
Fix constant assignment.
|
2020-11-03 13:08:19 +08:00 |
|
Stephen Chung
|
b9de8eaa7f
|
Minor code refactor.
|
2020-11-02 23:54:19 +08:00 |
|
Stephen Chung
|
cc304ba513
|
Fix serde build.
|
2020-11-02 13:18:37 +08:00 |
|
Stephen Chung
|
d7d6f74dfd
|
Add constant NO_POS.
|
2020-11-02 12:50:27 +08:00 |
|
Stephen Chung
|
717e8e7eee
|
Remove unnecessary clone.
|
2020-11-01 22:55:19 +08:00 |
|
Stephen Chung
|
c55fc5a9a5
|
Optimize Scope.
|
2020-11-01 22:46:46 +08:00 |
|
Stephen Chung
|
42eac410b7
|
Optimize Expr.
|
2020-10-31 23:26:21 +08:00 |
|
Stephen Chung
|
89811c8dfc
|
Pack Stmt and Expr some more.
|
2020-10-31 14:13:45 +08:00 |
|
Stephen Chung
|
4e115d2bc2
|
Code structure refactor.
|
2020-10-29 11:37:51 +08:00 |
|
Stephen Chung
|
f5ffbfbe06
|
Code structure cleanup.
|
2020-10-28 22:18:44 +08:00 |
|
Stephen Chung
|
f56c3fe9cb
|
Add Ident/IdentX to AST.
|
2020-10-28 19:11:17 +08:00 |
|
Stephen Chung
|
00b1051732
|
Optimize Stmt/Expr reflections.
|
2020-10-28 14:10:48 +08:00 |
|
Stephen Chung
|
51fca1e757
|
Move Assignment to Stmt.
|
2020-10-27 23:21:20 +08:00 |
|
Stephen Chung
|
fd2ba54b49
|
Introduce BinaryExpr.
|
2020-10-27 23:00:05 +08:00 |
|
Stephen Chung
|
f62f7908ab
|
Pack Stmt tighter.
|
2020-10-27 19:23:43 +08:00 |
|
Stephen Chung
|
93b5df6b3c
|
Pack Stmt structure.
|
2020-10-27 18:18:19 +08:00 |
|
Stephen Chung
|
01663a6581
|
Refine docs.
|
2020-10-27 11:30:38 +08:00 |
|
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 |
|