Commit Graph

491 Commits

Author SHA1 Message Date
Stephen Chung
93b802effd Merge branch 'v1.2-fixes' 2021-11-23 22:46:16 +08:00
Stephen Chung
2b0b79870e Fix bug in array methods. 2021-11-23 22:37:18 +08:00
Stephen Chung
0c89a9c4c5 Change parameter name. 2021-11-23 18:10:01 +08:00
Stephen Chung
a757dfe89d Add blobs. 2021-11-23 14:58:54 +08:00
Stephen Chung
90200e607c Fix doc comment links. 2021-11-20 21:29:36 +08:00
Stephen Chung
c2c30f7711 Use fold. 2021-11-16 13:15:43 +08:00
Stephen Chung
64b889fb95 Restructure code base. 2021-11-13 22:36:23 +08:00
Stephen Chung
38884ede46 Reducce panic messages. 2021-11-13 12:23:35 +08:00
Stephen Chung
68c0ee08c0 Reduce usage of Default::default() to make it easier to refactor. 2021-11-07 18:12:37 +08:00
Stephen Chung
61cc3d0bf2 Merge branch 'v1.1-fixes' 2021-11-05 23:26:00 +08:00
Stephen Chung
eeca8c90aa Make sure the global namespace is always searched first. 2021-11-05 23:22:05 +08:00
Stephen Chung
46e99df9cd Reverse regression on string + operator. 2021-11-05 20:34:27 +08:00
Stephen Chung
ff9ac41da2 Merge branch 'v1.1-fixes' 2021-11-01 10:08:27 +08:00
Stephen Chung
b23bdb6d13 Remove unnecessary string builtins. 2021-11-01 09:42:22 +08:00
Stephen Chung
a5ae002cb7 Refine namespace display. 2021-10-27 23:30:25 +08:00
Stephen Chung
34cf494545 Add Array::sort with no predicate. 2021-10-23 11:51:48 +08:00
Stephen Chung
83f83307ca Fix builds. 2021-10-21 19:30:58 +08:00
Stephen Chung
315a891ba6 Fine tune array methods. 2021-10-21 19:04:53 +08:00
Stephen Chung
1c921f3784 Add dedup to array. 2021-10-21 17:59:54 +08:00
Stephen Chung
9c16d90de9 Use #[inline(always)] only when relatively certain. 2021-10-21 17:26:43 +08:00
Stephen Chung
313999b0ac Reduce nesting in plugin sub-modules. 2021-10-20 16:22:12 +08:00
Stephen Chung
c8e7c970d1 Add variants of Array methods taking FnPtr with function names. 2021-10-20 11:06:38 +08:00
Stephen Chung
3001e90775 Deprecate From<EvalAltResult> for Result<T, Box<EvalAltResult>> because it is clearer for code to explicitly wrap errors in Err. 2021-10-19 23:52:58 +08:00
Stephen Chung
6d31bb0d19 Do not inline error path functions. 2021-10-19 20:16:36 +08:00
Stephen Chung
2334cd8f56 Avoid cloning in array methods as much as possible. 2021-10-19 19:57:15 +08:00
Stephen Chung
a130960627 Fix empty strings. 2021-09-26 21:25:29 +08:00
Stephen Chung
3557db88e8 Merge empty strings. 2021-09-26 21:18:52 +08:00
Stephen Chung
adbe9a292e Short circuit functions if empty: array, map, string. 2021-09-20 18:35:23 +08:00
Stephen Chung
6e7fbfa66f Add pop to string. 2021-09-20 16:25:23 +08:00
Stephen Chung
e191f9d91e Merge branch 'bug-fixes' 2021-09-19 22:34:47 +08:00
Stephen Chung
5163fb0a33 Upgrade to rust-decimal 1.16 and add sin/cos/tan. 2021-09-15 10:41:35 +08:00
Stephen Chung
08155c0978 Fix sign function for NaN. 2021-09-14 22:33:10 +08:00
Stephen Chung
b961a10d27 Refine code. 2021-09-12 14:33:48 +08:00
Stephen Chung
6510b617fe Reduce usage of Default::default() 2021-09-11 19:40:40 +08:00
Stephen Chung
aec4417bd5 Refine expect messages. 2021-08-26 23:58:41 +08:00
Stephen Chung
288d575046 Add log10 for Decimal. 2021-08-17 15:50:56 +08:00
Stephen Chung
94674679d9 Rename as_string and as_immutable_string. 2021-08-17 15:50:55 +08:00
Stephen Chung
e0cae4546c Polyfiill some functions for decimal+no_float. 2021-08-17 15:50:54 +08:00
Stephen Chung
0f46bc7725 Fix builds. 2021-08-13 14:04:27 +08:00
Stephen Chung
dba4510456 Better function parameter names. 2021-08-13 13:42:39 +08:00
Stephen Chung
df482d3574 Satisfy clippy. 2021-07-24 14:11:16 +08:00
Stephen Chung
713f8ea672 Implement more methods for custom iterators. 2021-07-12 13:05:38 +08:00
Stephen Chung
e0673a2f1a Change some #[inline(always)] to [#inline]. 2021-07-10 11:06:13 +08:00
Stephen Chung
4adc044c79 Fix builds. 2021-07-04 16:51:05 +08:00
Stephen Chung
bd35999b75 Remove unnecessary Box::new(). 2021-06-29 21:58:05 +08:00
Stephen Chung
d146de4ff9 Make FnPtr::fn_name_raw const. 2021-06-29 21:47:27 +08:00
Stephen Chung
7196b017f5 Add is_odd, is_even and is_zero. 2021-06-27 22:10:52 +08:00
Stephen Chung
178fe6b978 Remove deprecated API. 2021-06-24 09:48:44 +08:00
Stephen Chung
4093727dcb New string functions. 2021-06-17 13:31:58 +08:00
Stephen Chung
40e33fa6f9 Add to_hex, to_octal and to_binary. 2021-06-16 23:49:18 +08:00
Stephen Chung
42a14ab4cc Make file structures consistent. 2021-06-16 18:36:33 +08:00
Stephen Chung
743d48f44f Code style cleanup. 2021-06-13 17:41:34 +08:00
Stephen Chung
8ca24059b1 Add #[must_use] 2021-06-12 22:47:43 +08:00
Stephen Chung
79d9977cd5 Change take_string and take_immutable_string to as_XXX. 2021-06-10 10:45:44 +08:00
Stephen Chung
411b718a3b Fix test. 2021-06-07 11:21:45 +08:00
Stephen Chung
989cb702c0 Use chars() to iterate strings. 2021-06-07 09:47:49 +08:00
Stephen Chung
4cf6550fc6 Fix tests. 2021-06-02 15:05:33 +08:00
Stephen Chung
71684f5e2a Implement bit-fields. 2021-06-02 14:29:18 +08:00
Stephen Chung
76bd48d0a6 Code style refinements. 2021-05-29 18:33:29 +08:00
Stephen Chung
dfea3ed22a Code style refactor. 2021-05-25 10:54:48 +08:00
Stephen Chung
58d6a88bc4 Use checked exp for decimal. 2021-05-24 12:12:29 +08:00
Stephen Chung
98a232cb8c Prevent exp underflow. 2021-05-23 11:54:40 +08:00
Stephen Chung
cc3e2d79a5 Replace unwrap with expect. 2021-05-22 19:14:24 +08:00
Stephen Chung
941e09d29d Guard against setters mutating constants, and allow pure setters. 2021-05-15 11:41:42 +08:00
Stephen Chung
4f14fd55f5 Small code refinements. 2021-05-14 19:21:28 +08:00
Stephen Chung
be052b2b26 Bump version of rust_decimal and add more functions. 2021-05-11 20:31:31 +08:00
Stephen Chung
c61b118037 Fix decimal build. 2021-05-03 13:57:47 +08:00
Stephen Chung
bb5dc7b637 Add tag to Dynamic. 2021-05-02 23:57:35 +08:00
Stephen Chung
f81e3d6ff8 Fix unchecked builds. 2021-04-24 18:14:48 +08:00
Stephen Chung
41d3709db1 Fix decimal build. 2021-04-24 15:53:02 +08:00
Stephen Chung
8ff1f57900 Remove redundant std. 2021-04-20 19:19:35 +08:00
Stephen Chung
c5e716e71f Fix zero position bugs in array methods. 2021-04-19 15:11:03 +08:00
Stephen Chung
1145c5a4c0 Update rust_decimal. 2021-04-18 21:35:55 +08:00
Stephen Chung
01f0cc028b Use no-std-compat to build no-std. 2021-04-17 15:15:54 +08:00
Stephen Chung
40fda5139d Support negative index counting from end. 2021-04-10 15:00:03 +08:00
Stephen Chung
f17a826f99 Refine debug print-out. 2021-04-06 23:18:41 +08:00
Stephen Chung
26bb88974a Add function for string + char. 2021-04-05 00:10:08 +08:00
Stephen Chung
20aaf1826a Fix builds. 2021-04-04 15:06:13 +08:00
Stephen Chung
e6c878edf3 Implement string interpolation. 2021-04-04 13:13:07 +08:00
Stephen Chung
a738f750f9 Implement string functions with to_string/to_debug. 2021-04-02 19:26:55 +08:00
Stephen Chung
98afb2e7d6 Fix feature builds. 2021-03-31 10:16:38 +08:00
Stephen Chung
e306a92ea0 Change Map keys to Identifier. 2021-03-29 17:14:22 +08:00
Stephen Chung
07efdddba3 Add smartstring default feature. 2021-03-29 13:40:33 +08:00
Stephen Chung
fc6c5ecd00 Fix no_closure builds. 2021-03-29 13:07:10 +08:00
Stephen Chung
60f8a7f91c Remove Float trait. 2021-03-29 11:36:15 +08:00
Stephen Chung
e5249cc1ae Extract Identifier type. 2021-03-29 11:36:02 +08:00
Stephen Chung
8e8c367034 Update deprecated methods with since attribute. 2021-03-28 17:04:16 +08:00
Stephen Chung
1d661f2c8e Fix decimal build. 2021-03-24 22:26:07 +08:00
Stephen Chung
ac7f35cacb Move all functions metadata into metadata feature. 2021-03-24 19:27:38 +08:00
Stephen Chung
f70225ca1d Change HashMap to BTreeMap. 2021-03-23 12:13:53 +08:00
Stephen Chung
42d7736d94 Add conversions between Decimal and FLOAT. 2021-03-22 15:16:01 +08:00
Stephen Chung
22ff68cdc9 Fix feature builds. 2021-03-22 12:18:13 +08:00
Stephen Chung
a82f0fc738 Allow non-Dynamic in return_raw. 2021-03-22 11:18:09 +08:00
Stephen Chung
6667a22c0c Code style and docs. 2021-03-17 13:30:47 +08:00
Stephen Chung
5172ade179 Code style edits. 2021-03-16 18:16:40 +08:00
Stephen Chung
e9f280f917 Deprecate Module::set_fn_XXX API. 2021-03-15 12:39:06 +08:00
Stephen Chung
d0922adb5b Deprecate RegisterFn and RegisterResultFn. 2021-03-15 11:36:30 +08:00
Stephen Chung
975bb3d6bf Map in operator to contains function call. 2021-03-09 13:44:54 +08:00
Stephen Chung
ff7844893d Add contains for array. 2021-03-09 13:16:05 +08:00
Stephen Chung
a7ff9fb24f Add bytes method for strings. 2021-03-07 22:33:02 +08:00
Stephen Chung
330d3f87af Use namespace for ScriptFnDef. 2021-03-07 22:10:54 +08:00
Stephen Chung
88943915a7 Fix decimal build. 2021-03-05 12:58:27 +08:00
Stephen Chung
01664ef7ee Fix range overflow panics. 2021-03-04 23:47:52 +08:00
Stephen Chung
8d487906cc Remove unnecessary implementation. 2021-03-04 22:57:24 +08:00
Stephen Chung
0f56b56b9c Fix range function. 2021-03-04 21:43:00 +08:00
Stephen Chung
ade290da7e Simplify lifetimes. 2021-03-03 22:49:57 +08:00
Stephen Chung
7262d63909 Move default comparisons into builtin. 2021-03-02 23:08:54 +08:00
Stephen Chung
6fd2262ace Remove unnecessary is_def_fn function. 2021-03-02 22:27:53 +08:00
Stephen Chung
b76e8da5ee Cache built-in functions to improve resolution speed. 2021-03-02 13:48:41 +08:00
Stephen Chung
fc10df7d63 Keyword can no longer be overloaded. 2021-03-01 17:17:13 +08:00
Stephen Chung
b466d58192 Remove unnecessary AsRef and impl IntoIterator. 2021-03-01 15:58:11 +08:00
Stephen Chung
061fce1f02 No more pub_only. 2021-03-01 15:39:49 +08:00
Stephen Chung
733f4af8b3 Fix no_std build. 2021-03-01 09:30:23 +08:00
Stephen Chung
66b557692b Allow negative range step. 2021-02-27 15:27:40 +08:00
Stephen Chung
3f4dba9dbc Build in operators between string and char. 2021-02-25 13:29:49 +08:00
Stephen Chung
9495d3f733 Separate op-assignment with other function calls. 2021-02-25 10:59:22 +08:00
Stephen Chung
9d6ad2092c Fix decimal build. 2021-02-24 15:56:29 +08:00
Stephen Chung
4ac05aee8b Disallow implicit comparisons between different numeric types. 2021-02-24 15:45:29 +08:00
Stephen Chung
c501b34191 Implement strings concat via Dynamic wildcards. 2021-02-24 11:28:21 +08:00
Stephen Chung
c739e54e5b Refine strings package. 2021-02-24 11:05:39 +08:00
Stephen Chung
36420f0b99 Implement print/debug functions via Dynamic parameters. 2021-02-23 19:08:05 +08:00
Stephen Chung
ba2b0630f7 Add support for Dynamic wildcard arguments. 2021-02-23 16:06:36 +08:00
Stephen Chung
8248c9999d Add split version for chars. 2021-02-23 12:52:47 +08:00
Stephen Chung
e88713611c Add split for arrays. 2021-02-23 11:57:50 +08:00
Stephen Chung
ac3d8e35d4 Add splitn, rsplit and rsplitn equivalents to strings. 2021-02-23 11:56:04 +08:00
Stephen Chung
4120e3c88e Include decimal in generated docs. 2021-02-21 14:26:31 +08:00
Stephen Chung
5285dad1a8 Fix feature build. 2021-02-19 23:48:11 +08:00
Stephen Chung
182fc2c3d1 Check for constant values passed to methods. 2021-02-19 23:13:53 +08:00
Stephen Chung
724ad05916 Add wasm64 as potential target. 2021-02-19 15:50:48 +08:00
Stephen Chung
bd5ff457d2 Built-in interop between FLOAT/Decimal and INT. 2021-02-19 11:47:26 +08:00
Stephen Chung
d2121e2183 Add operators between FLOAT/Decimal and INT. 2021-02-18 14:33:27 +08:00
Stephen Chung
678d0f5e33 Fix f32_float build. 2021-02-17 14:05:35 +08:00
Stephen Chung
a2277d07f3 Add arithmetic operators between FLOAT and INT. 2021-02-17 13:06:47 +08:00
Stephen Chung
b2ca8c34d1 Add atan2 and hypot functions. 2021-02-17 12:27:27 +08:00
Stephen Chung
909d48caed Provide short-cuts to Decimal calculations. 2021-02-15 17:42:33 +08:00
Stephen Chung
f5c2903071 Refine Decimal rounding. 2021-02-15 12:07:45 +08:00
Stephen Chung
40e4a92401 Support scientific notation for Decimal parsing. 2021-02-14 17:34:53 +08:00
Stephen Chung
fc21756785 Add rounding functions to Decimal numbers. 2021-02-13 23:25:22 +08:00
Stephen Chung
224d93f167 Add comparison operators for Decimals. 2021-02-13 23:01:34 +08:00
Stephen Chung
f498dc81a3 Fix codegen test. 2021-02-13 22:19:46 +08:00
Stephen Chung
3650b04c38 Add Decimal number type. 2021-02-13 20:57:56 +08:00
Stephen Chung
aea5ec50c9 Fix no-std build. 2021-02-11 21:46:11 +08:00
Stephen Chung
6f71367c15 Use scneitific notation when printing large or small floating-point numbers. 2021-02-11 21:28:07 +08:00
Stephen Chung
61638d6566 Use ** for power/exponentiation. 2021-02-10 12:41:27 +08:00
Stephen Chung
8c26b49a39 Change trig functions to take/return radians. 2021-02-10 12:10:50 +08:00
Stephen Chung
8f47f7c9e2 Add new floating-point functions. 2021-02-09 15:57:38 +08:00
Stephen Chung
7b87f81850 Add has_override and script calls to function resolution cache. 2021-02-07 15:09:27 +08:00
Stephen Chung
bb925a697c Fix bug in Array::insert. 2021-01-29 22:29:36 +08:00
Stephen Chung
8c47d61456 Refine documentation and comments. 2021-01-11 23:09:33 +08:00
Stephen Chung
ef48f47b74 Refine docs and comments etc. 2021-01-02 23:30:10 +08:00
Stephen Chung
ba7f8c6391 Propagate source info. 2020-12-30 21:12:51 +08:00
Stephen Chung
8506640073 Use NonZeroU64 for function hashes. 2020-12-24 16:32:43 +08:00
Stephen Chung
08e7ad8c09 Add deprecated packages API. 2020-12-23 15:30:35 +08:00
Stephen Chung
15fb03218c Rename packages to global modules. 2020-12-22 23:45:14 +08:00
Stephen Chung
0157f912e0 Remove PackageLibrary and PackagesCollection. 2020-12-22 22:36:30 +08:00
Stephen Chung
5ac83f0f46 Add context source to on_debug. 2020-12-21 22:04:46 +08:00
Stephen Chung
2955a4ab64 Fix unary operators binding. 2020-12-21 17:39:37 +08:00
Stephen Chung
db7b9cb0f9 Native only if function call is not a valid identifier. 2020-12-18 23:03:56 +08:00
Stephen Chung
aff207d4f4 Bump version. 2020-12-07 22:21:02 +08:00
Stephen Chung
c5babac3da Quote map property names. 2020-11-30 22:02:32 +08:00
Stephen Chung
4c4a209609 Fix tests. 2020-11-30 21:16:59 +08:00
Stephen Chung
1004bca5b5 Print arrays and maps with to_debug. 2020-11-30 11:20:51 +08:00
Stephen Chung
36546c7325 Fix builds 2020-11-27 23:37:59 +08:00
Stephen Chung
a0979d0c35 Code cleanup 2020-11-25 09:36:06 +08:00
Stephen Chung
36aa827e15 Simply interned strings dict. 2020-11-23 21:12:57 +08:00
Stephen Chung
9abd397276 Fix no_function build. 2020-11-23 20:26:28 +08:00
Stephen Chung
b43223a94f Add get_fn_metadata_list. 2020-11-23 19:11:32 +08:00
Stephen Chung
8d410dfc71 Add return type to function metadata. 2020-11-22 22:15:17 +08:00
Stephen Chung
6222f14fcb Fix no-std build. 2020-11-22 17:49:00 +08:00
Stephen Chung
07fe132e1a Add gen_fn_siguatures API. 2020-11-22 17:21:34 +08:00
Stephen Chung
739dce72e3 Move if_def_fn into CorePackage. 2020-11-22 15:41:55 +08:00
Stephen Chung
e5c9ca23b5 Build index when creating a module. 2020-11-21 22:18:32 +08:00
Stephen Chung
0046fe7e73 Prefer Engine::disable_symbol to disable eval. 2020-11-21 15:08:18 +08:00
Stephen Chung
783803ec46 Update comments with links. 2020-11-20 16:52:28 +08:00
Stephen Chung
d35a7eeaa8 Optimize PackagesCollection. 2020-11-19 10:24:43 +08:00
Stephen Chung
272c8505b8 Refactor use. 2020-11-16 23:10:14 +08:00
Stephen Chung
d50d48f26f Move definition of Array and Map to lib.rs. 2020-11-16 21:14:32 +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
b75964e383 Add Dynamic::UNIT. 2020-11-15 23:14:29 +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
7b27dcdd62 Fix error messages. 2020-11-11 13:25:45 +08:00
Stephen Chung
48886eacc8 Add == and != to arrays and maps. 2020-11-08 23:00:37 +08:00
Stephen Chung
f75942715d Remove clippy warnings. 2020-11-04 12:34:34 +08:00
Stephen Chung
d7d6f74dfd Add constant NO_POS. 2020-11-02 12:50:27 +08:00
Stephen Chung
6f3ce96d9d Enable termination token. 2020-11-02 11:04:45 +08:00
Stephen Chung
a2e2b5e2ef Add f32_float feature. 2020-11-01 15:48:48 +08:00
Stephen Chung
3e23cf943e Add to_float from f32 to f64. 2020-10-30 14:19:19 +08:00
Stephen Chung
4e115d2bc2 Code structure refactor. 2020-10-29 11:37:51 +08:00
Stephen Chung
cbd7ed2ca7 Fix test. 2020-10-28 22:30:35 +08:00
Stephen Chung
f5ffbfbe06 Code structure cleanup. 2020-10-28 22:18:44 +08:00
Stephen Chung
01663a6581 Refine docs. 2020-10-27 11:30:38 +08:00
Stephen Chung
b467b18722 Fix no_std build. 2020-10-25 22:08:02 +08:00
Stephen Chung
13f1ae577b Use plugins to define functions. 2020-10-19 23:49:01 +08:00
Stephen Chung
d68c951795 Pad string to exact length even when padding string is not multiple. 2020-10-18 22:47:58 +08:00
Stephen Chung
25f820f5bf Reimplement pad for string. 2020-10-18 22:36:58 +08:00
Stephen Chung
6e5c903241 Fix no_module build. 2020-10-18 22:10:08 +08:00
Stephen Chung
46b92c9d1f Allow NativeCallContext in function arguments. 2020-10-18 21:47:34 +08:00
Stephen Chung
82e6dd446a Encapsulate register_fn_raw parameters into NativeCallContext. 2020-10-18 17:02:17 +08:00