ConnorSkees
6d76e1518a
refactor away many unwrap
s
2020-05-25 00:57:59 -04:00
ConnorSkees
283a2097ff
rename Value::Ident to Value::String
2020-05-22 14:35:41 -04:00
ConnorSkees
969726eb30
Revert string interning
...
There existed issues related to multithreaded tests that are difficult
to resolve. In the future interning may be reimplemented but in a more
limited capacity.
The motivation behind interning *values* was that it appeared checking
for named colors was responsible for much of the time lost when parsing
unquoted strings. If interning were to be reimplemented, it may make
sense to limit it solely to identifiers and style properties.
2020-05-22 14:20:31 -04:00
ConnorSkees
b15740976c
remove superfluous allocations when resolving idents
2020-05-22 13:49:19 -04:00
ConnorSkees
9a6c8ce019
add string interning
...
this seems to improve performance by ~20% as well as significantly
decrease memory usage
2020-05-21 22:46:40 -04:00
ConnorSkees
d88ac86bd1
consolidate builtin imports
2020-05-18 17:50:52 -04:00
ConnorSkees
c07bb7ecce
refactor == and != order of operations
2020-05-16 22:43:13 -04:00
ConnorSkees
1fb6822259
rename register to declare
2020-05-16 18:01:06 -04:00
ConnorSkees
0aed492123
move builtin fns to outer scope to reduce nesting
2020-04-30 19:36:34 -04:00
ConnorSkees
2eef3e9f6a
store &'static str rather than String for builtin fn names
2020-04-30 15:00:57 -04:00
ConnorSkees
f2322dda4d
simplify declaration of list functions
2020-04-30 14:47:07 -04:00
ConnorSkees
680790c49a
replace max_args! macro with builtin method
2020-04-22 06:17:52 -04:00
ConnorSkees
3805eaab2b
clippy
2020-04-21 18:22:26 -04:00
ConnorSkees
409fa3a1dd
eval args to zip
2020-04-13 12:28:40 -04:00
ConnorSkees
62f9f7da4f
integrate error handling with codemap
2020-04-12 19:37:12 -04:00
ConnorSkees
b7be1705a2
args and default values are lazily evaluated
2020-04-04 18:17:04 -04:00
ConnorSkees
81c85a6f86
handle builtin functions in get-function
2020-04-03 23:49:44 -04:00
ConnorSkees
faa8951ee4
remove superfluous mut
2020-04-03 16:47:55 -04:00
ConnorSkees
24176bb1f0
initial implementation of zip
2020-04-03 15:54:59 -04:00
ConnorSkees
0f5ebdebf9
add todo note about index and unwrap
2020-04-03 14:38:22 -04:00
ConnorSkees
2d7f69e3da
equality does unit conversions
2020-04-03 14:34:59 -04:00
ConnorSkees
f2bb6097dc
index() with maps
2020-04-03 13:43:34 -04:00
ConnorSkees
f86d613374
better handling of single length lists in join
2020-04-02 18:43:48 -04:00
ConnorSkees
e7008cd7e8
handle non list separator in join()
2020-04-02 18:32:09 -04:00
ConnorSkees
31a19b5ecb
handle maps in join()
2020-04-02 18:23:57 -04:00
ConnorSkees
a9230b7877
properly emit separator in join when both are under 2 length
2020-04-02 18:19:54 -04:00
ConnorSkees
dbf699a991
handle empty list separators in join
2020-04-02 18:16:59 -04:00
ConnorSkees
8718673519
bracketed parameter in join()
2020-04-02 18:04:44 -04:00
ConnorSkees
c7ff047e81
brackets in join
2020-04-02 17:44:37 -04:00
ConnorSkees
408fe6ff6b
brackets in set-nth
2020-04-02 15:31:59 -04:00
ConnorSkees
c7fdf8eef3
maps in set-nth()
2020-04-02 15:28:35 -04:00
ConnorSkees
cba2b12771
handle maps in nth()
2020-04-02 15:22:18 -04:00
ConnorSkees
225894d0e9
handle brackets in append()
2020-04-02 15:12:13 -04:00
ConnorSkees
72bc9a46e3
implement builtin function index
2020-04-02 14:22:38 -04:00
ConnorSkees
8e3e23c6cd
builtin functions take args by value
2020-04-02 13:45:14 -04:00
ConnorSkees
23f7301a25
implement length for maps
2020-03-30 16:01:44 -04:00
ConnorSkees
c1ee84b6fc
implement builtin function is-bracketed
2020-03-23 23:08:01 -04:00
ConnorSkees
981bf27cb8
properly parse and emit bracketed lists
2020-03-23 19:56:24 -04:00
ConnorSkees
0be8828bf0
make better use of num traits
2020-03-22 22:28:54 -04:00
ConnorSkees
415b19fc47
implement @content inside mixins
2020-03-22 15:08:13 -04:00
ConnorSkees
29011f88bb
Implement builtin function join
2020-03-22 14:04:16 -04:00
ConnorSkees
b0aff089aa
implement builtin function append()
2020-03-20 19:50:23 -04:00
ConnorSkees
4fdac4c5f1
implement builtin function set-nth()
2020-03-20 19:27:26 -04:00
ConnorSkees
5ce2515fb6
handle non-list to nth()
2020-03-20 12:36:31 -04:00
ConnorSkees
284bc8ea6d
Implement builtin function list-separator()
2020-03-20 12:32:33 -04:00
ConnorSkees
dd1c1e5b06
implement builtin function nth
2020-03-20 12:09:08 -04:00
ConnorSkees
ef480ad1f8
length() max args check
2020-03-20 10:03:54 -04:00
ConnorSkees
dcb712e3d4
Refactor unit conversions into separate file
2020-03-19 16:24:31 -04:00
ConnorSkees
51585235c3
Remove decl! macro
...
This lets rustfmt work and gives better autocomplete and error messages
inside builtin functions.
2020-03-16 10:35:38 -04:00
ConnorSkees
276134eb93
prefer hashmap over btreemap where ordering is unimportant
2020-03-03 19:51:02 -05:00