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
3e5abf0587
remove keywords
2020-05-22 14:09:28 -04:00
ConnorSkees
b15740976c
remove superfluous allocations when resolving idents
2020-05-22 13:49:19 -04:00
ConnorSkees
0d52a1926e
Merge branch 'master' of https://github.com/connorskees/grass
2020-05-22 13:48:00 -04:00
ConnorSkees
5bed62c404
keywords are thread_local
2020-05-22 13:47:48 -04:00
ConnorSkees
face457867
remove allocation when formatting interned strings
2020-05-22 13:07:24 -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
3e2689a4cb
improve number parsing code coverage
2020-05-21 18:25:42 -04:00
ConnorSkees
117dc453e2
test for toplevel @ and &
2020-05-21 14:21:40 -04:00
ConnorSkees
ff8447fd7e
handle operators as part of binops
2020-05-21 14:07:46 -04:00
ConnorSkees
2bd8232a00
emit proper error for toplevel "
2020-05-21 13:39:37 -04:00
ConnorSkees
4cba3dfd4e
handle ~ in values
2020-05-21 13:36:55 -04:00
ConnorSkees
c714d52775
handle | in values
2020-05-21 13:31:03 -04:00
ConnorSkees
c68576bb23
refactor parsing of toplevel variables
2020-05-21 13:25:37 -04:00
ConnorSkees
6b9f68922f
allow non-ascii alphanumeric characters in selectors
2020-05-21 13:09:20 -04:00
ConnorSkees
b94a2403d0
fix panics related to toplevel hash and quotes
2020-05-21 12:21:52 -04:00
ConnorSkees
67091115db
better handle - at the start of idents
2020-05-21 12:06:42 -04:00
ConnorSkees
709b95d035
improve span information in values
2020-05-21 11:48:38 -04:00
ConnorSkees
0c144e22ba
handle ` in values
2020-05-21 01:07:34 -04:00
ConnorSkees
a63e139cd8
handle ` at toplevel
2020-05-21 01:04:11 -04:00
ConnorSkees
28d5fdf636
handle ! at toplevel
2020-05-21 01:01:02 -04:00
ConnorSkees
c1ed4b3121
handle , at toplevel
2020-05-21 00:46:06 -04:00
ConnorSkees
2faf9fcb60
improve error handling of variables in styles
2020-05-21 00:41:04 -04:00
ConnorSkees
d300d4e1fc
test for ] in value
2020-05-21 00:09:52 -04:00
ConnorSkees
dc5df157b0
replace macro with fn
2020-05-20 23:56:17 -04:00
ConnorSkees
fe37bab6f2
add color benchmarks
2020-05-20 22:51:56 -04:00
ConnorSkees
3decf3739c
refactor Integer to separate file
2020-05-20 22:46:26 -04:00
ConnorSkees
45a29c9697
refactor Number::to_integer
2020-05-20 22:40:21 -04:00
ConnorSkees
38ffb5fe31
don't eat first char of loud comment
2020-05-20 22:39:31 -04:00
ConnorSkees
3fcd0b8be4
replace todo with unreachable to make clearer that methods should not be used
2020-05-20 21:05:55 -04:00
ConnorSkees
de2173cc31
refactor parsing of toplevel comments
2020-05-20 21:01:07 -04:00
ConnorSkees
10a30b4c65
test for comma separated list as map key
2020-05-20 20:35:59 -04:00
ConnorSkees
d39a45090a
separate media and unknown at rules
2020-05-20 20:13:53 -04:00
ConnorSkees
d61f8abd41
add benches
2020-05-20 00:20:59 -04:00
ConnorSkees
bea90060a8
minor cleanup
2020-05-20 00:14:55 -04:00
ConnorSkees
8520048b26
implement small int optimizations
...
This allows for numbers within 18 digits of precision (the vast
majority of numbers) to be represented by just 2 i64s rather than 2 heap
allocated BigInts. In the future these optimizations may become more
aggressive and granular, but for now `grass` is already more than an order of
magnitude faster than `dart-sass`.
2020-05-19 23:23:04 -04:00
ConnorSkees
cf987abb53
remove bimap in favor of ad hoc structure
2020-05-19 19:13:49 -04:00
ConnorSkees
eb7fe52074
minor cleanup
2020-05-19 18:28:18 -04:00
ConnorSkees
017bc971b4
remove first line in readme
2020-05-19 15:48:53 -04:00
ConnorSkees
9a3035049a
error tests for to-{upper,lower}-case
2020-05-19 00:21:43 -04:00
ConnorSkees
dae7a5028d
add map fn tests for empty lists
2020-05-18 17:56:25 -04:00
ConnorSkees
d88ac86bd1
consolidate builtin imports
2020-05-18 17:50:52 -04:00
ConnorSkees
f8b8025d7c
fix panic when missing colon in style
2020-05-17 11:09:21 -04:00
ConnorSkees
b58ed29fd0
add more span information
...
this resolves a lot of panics that occurred when there was no more input
2020-05-17 00:35:07 -04:00
ConnorSkees
6e7f1cc319
remove some panicking
2020-05-17 00:08:50 -04:00
ConnorSkees
eb2f3ebe5a
remove ;; in tests
2020-05-16 22:46:13 -04:00
ConnorSkees
4ee82e66be
refactor comparison ops to src/value/ops.rs
2020-05-16 22:45:32 -04:00
ConnorSkees
c07bb7ecce
refactor == and != order of operations
2020-05-16 22:43:13 -04:00
ConnorSkees
697ff3d12f
error messages for values beginnning with #
...
prior to this commit, error messages that occurred within idents
beginning with interpolation would be swallowed by error messages for
hex (largely, "Expected identifier.")
2020-05-16 19:25:11 -04:00
ConnorSkees
f3e7abdaba
allow units to begin with escape sequences
2020-05-16 18:54:42 -04:00