Joshua Warner
e83cd8f191
Re-improve perf of skipping spaces and comments
...
On my M1 mac this shows as ~25% faster at parsing Num.roc than the old implementation, probably because nobody wrote any NEON code.
Even on my x86_64 linux box (Ryzen 2700x), this shows as 10% faster than the current SSE implementation (running with RUSTFLAGS="-C target-cpu=native").
2022-12-11 08:43:22 -08:00
Joshua Warner
5f29402297
Give parser fuzzing some TLC
...
* The header + expr fuzzers can both be run again (header fuzzer had regressed).
* I ran the expr fuzzer for ~60 seconds with no additional panics uncovered
* "tab_crash" hit supposedly unreachable code in blankspace.rs - and I went to the liberty of dramatically simplifying all that code, rather than just trying to fix the bug
* Other failures were straight-forward error cases that should have been handled (and passed up the chain) instead of panicking
2022-12-11 08:39:52 -08:00
Richard Feldman
3227f95d45
Merge branch 'refactor-platform-info' into packages
2022-12-11 06:17:29 -05:00
Richard Feldman
f6f8c2876f
Merge remote-tracking branch 'origin/main' into refactor-platform-info
2022-12-11 03:37:48 -05:00
Joshua Warner
d52b35c1ff
Fix parse benchmark and add a benchmark for parsing Num.roc, the largest builtin file
2022-12-10 11:14:17 -08:00
Richard Feldman
222e0193a3
Don't give packages names
2022-12-10 01:43:53 -05:00
Richard Feldman
29182d8292
Move platform_main_type into provides
2022-12-09 14:19:07 -05:00
Richard Feldman
97332e4af1
Move ModuleNameEnum into HeaderType
2022-12-08 15:31:43 -05:00
Richard Feldman
8b463686bc
Propagate multiple entrypoints to alias analysis
2022-12-08 15:31:42 -05:00
Richard Feldman
87c8702c89
Rename HeaderFor to HeaderType
2022-12-08 15:31:42 -05:00
Richard Feldman
12a7b51eb4
Move some logic into HeaderFor
2022-12-08 15:31:42 -05:00
Richard Feldman
24f2fcc28a
Remove an unnecessary qualifier
2022-12-08 15:31:41 -05:00
Richard Feldman
2b1deff379
Revert "Merge PlatformHeaderInfo into revised HeaderInfo"
...
This reverts commit 6115781b9d
.
2022-12-06 14:06:05 -05:00
Richard Feldman
579feeeadd
Revert "WIP try combining PlatformHeaderInfo & HeaderInfo"
...
This reverts commit 100044295f
.
2022-12-06 14:06:00 -05:00
Richard Feldman
100044295f
WIP try combining PlatformHeaderInfo & HeaderInfo
2022-12-06 14:05:29 -05:00
Richard Feldman
6115781b9d
Merge PlatformHeaderInfo into revised HeaderInfo
2022-12-04 06:36:04 -05:00
Richard Feldman
f20c7db029
Load all packages, not just the platform
2022-12-04 06:31:49 -05:00
Richard Feldman
bee24fcd37
Add parse tests for package header
2022-12-04 06:26:44 -05:00
Richard Feldman
8a5ddaab2f
Drop imports
from package header
...
That doesn't actually make sense!
2022-12-04 06:26:44 -05:00
Richard Feldman
da595a86b0
Parse package module header
2022-12-04 06:26:44 -05:00
Richard Feldman
2a27d3c05f
Merge pull request #4642 from roc-lang/dbg-parsing-problem
...
stop parsing dbg as a value def
2022-12-01 06:55:23 -05:00
Richard Feldman
a0bc105ca8
Merge pull request #4616 from roc-lang/fix-pattern-equivalent
...
Fix missing cases in Pattern::equivalent
2022-11-30 12:10:09 -05:00
Folkert
b6622b71ec
stop parsing dbg as a value def
2022-11-30 14:18:48 +01:00
Joshua Warner
2b91af02df
Introduce record!
combinator
...
... and refactor header parser to fully use combinators, in support of future combinator-based superpowers
2022-11-28 20:25:55 -08:00
Joshua Warner
8de153efb9
Fix missing cases in Pattern::equivalent
2022-11-28 19:47:53 -08:00
Folkert
c9ba57f15a
fix merge conflict that made it to main
2022-11-29 00:20:03 +01:00
Richard Feldman
c1a75a57f1
Merge pull request #4592 from roc-lang/collections_refactor
...
Refactor collection_trailing_sep_e
2022-11-28 11:14:30 -05:00
Joshua Warner
a3071a8aea
Allow migrating reporting tests to failing parse tests
2022-11-26 17:34:50 -08:00
Joshua Warner
451b2c0ded
Refactor collections
2022-11-26 09:55:54 -08:00
Richard Feldman
b2beeb770e
Merge remote-tracking branch 'origin/main' into https-packages
2022-11-25 19:50:06 -05:00
Richard Feldman
58fad36f9d
Merge pull request #4460 from roc-lang/crash
...
Crash
2022-11-25 17:18:21 -05:00
Richard Feldman
bef59299a2
Merge remote-tracking branch 'origin/main' into https-packages
2022-11-25 04:07:37 -05:00
Richard Feldman
99f55d6ed6
Merge remote-tracking branch 'origin/main' into https-packages
2022-11-24 19:14:31 -05:00
Joshua Warner
56470c838d
Implement tuple accessors after records/tuples
2022-11-24 15:32:39 -08:00
Joshua Warner
a1432d1a14
Fix TypeAnnotation::Tuple comment
2022-11-24 14:29:50 -08:00
Ayaz Hafiz
26d8f0ce08
Fix kw list
2022-11-24 14:48:39 -06:00
Richard Feldman
47374609e3
Re-add dbg
to KEYWORDS
2022-11-24 14:46:54 -06:00
Ayaz Hafiz
f9de522004
Add crash fmt test
2022-11-24 14:46:54 -06:00
Ayaz Hafiz
fee01166c7
Add crash as a keyword
2022-11-24 14:46:49 -06:00
Ayaz
848c18f996
Merge pull request #4567 from joshuawarner32/tuple-type-annotation
...
Implement tuple type parsing
2022-11-24 14:42:11 -06:00
Richard Feldman
b9b03d432a
Merge remote-tracking branch 'origin/main' into https-packages
2022-11-24 13:14:36 -05:00
Joshua Warner
c6b5273144
Implement tuple type parsing
...
Also change some tests with newly relaxed indentation requirements, and remove an irrelevant test (since unindented close parens are now perfectly valid, the test is no longer useful).
2022-11-24 07:36:59 -08:00
Joshua Warner
a6a90178ce
Refactor record_type to use combinators
2022-11-24 07:36:44 -08:00
Richard Feldman
f5cb2d73a1
Merge branch 'precompiled-legacy' into https-packages
2022-11-24 04:29:56 -05:00
Richard Feldman
adddc1ff70
Fix dbg parse test
2022-11-24 03:31:19 -05:00
Folkert
e44a8a9eed
print all the relevant info
2022-11-23 22:58:58 +01:00
Richard Feldman
73a591743b
Add parser tests for dbg
2022-11-22 21:27:10 -05:00
Richard Feldman
49f8768271
Parse and format dbg
2022-11-22 21:08:26 -05:00
Richard Feldman
13bed30411
Have Either derive Clone and Copy
2022-11-20 16:20:24 -05:00
Joshua Warner
2d9aba2242
Refactor parser methods to not return State as part of ParseError
...
As previously discovered with #4464 , it's easy to accidentally mis-use the State value returned on the Err path.
There were mixed assumptions about what that State represents: (1) the State where the error occurred, or (2) the State at the beginning of the thing we were just parsing.
I fixed this up to always mean (2) - at which point we don't actually need to return the State at all - so it's impossible for further discrepency to creep in.
I also took the liberty to refactor a few more methods to be purely combinator-based, rather than calling `parse` directly.
2022-11-18 19:52:23 -05:00