Commit graph

3911 commits

Author SHA1 Message Date
Luke Boswell
5933d6b7e7
improve Json test coverage and fix decoding bugs 2023-03-05 17:00:10 +11:00
Joshua Warner
2dfe373311
Produce combined tokens directly and add a few operators
This (I believe) brings us in line with the complete set of operators supported in Roc.
2023-03-04 21:42:33 -08:00
Luke Boswell
91adf0f411
Merge remote-tracking branch 'origin/main' into builtin-json 2023-03-05 15:58:58 +11:00
Brendan Hansknecht
7a944113a0
move build_file and related functions to roc_build
This is needed of glue to be able to call build_file.
Also does some other changes to avoid circular dependencies.
2023-03-04 10:00:43 -08:00
J.Teeuwissen
e5a5108fd8
lowlevel_borrow_signature 2023-03-04 13:23:15 +01:00
Brendan Hansknecht
0aa932d014
fix mem leak in Str.trim and make all Str.trim* functions consistent 2023-03-02 22:18:26 -08:00
Joshua Warner
3b5f6ef828
Merge pull request #5080 from lukewilliamboswell/parser-highlight2
Fix bug for static-site syntax highlighting
2023-03-02 17:20:16 -08:00
Brendan Hansknecht
66a7d08363
make List.mapN properly add all decrefs 2023-03-02 07:24:49 -08:00
Richard Feldman
82663fd30d
Merge pull request #5076 from roc-lang/fix-list-range
Fix List.range crashing
2023-03-01 19:29:24 -05:00
Folkert
180187e5af
get old examples to work 2023-03-01 21:56:14 +01:00
Anton-4
cf913814cb
fmt 2023-03-01 19:57:39 +01:00
J.Teeuwissen
9d9a6ea05a
refcount Dbg, ExpectFx, Expect 2023-03-01 12:00:51 +01:00
J.Teeuwissen
0070d3708e
Shuffled variable_usage_expr 2023-03-01 10:52:10 +01:00
Luke Boswell
f51aef42bb
add support for slashes 2023-03-01 19:06:15 +11:00
Luke Boswell
c9ffedb483
add ? token 2023-03-01 18:38:16 +11:00
Luke Boswell
5f8629f64e
bug fix for highlighting 2023-03-01 18:00:30 +11:00
Brendan Hansknecht
a87aec77b4
Merge pull request #5068 from roc-lang/gen-dev-i128
gen-dev: num additions
2023-02-28 16:29:42 +00:00
Luke Boswell
58d4faa0da
handle escapes in JSON string decoder 2023-02-28 20:53:57 +11:00
Luke Boswell
1590b30b19
Add a lexing-based 'highlight' mode to the parser
basic syntax highlighting

added more syntax highlighting coverage

add example of a markdown table with styling

move FIXED_TOKEN logic into highlight

refactor highlight, add support for backpassing

escape html from source code

fix bug with <pre> tag ordering

refactor out html from roc_parse

remove test, put highlight functionality into separate file

fix typo
2023-02-28 17:03:49 +11:00
Brendan Hansknecht
865bae9468
clarify type for test 2023-02-27 18:41:31 -08:00
Brendan Hansknecht
c4d56f1dc9
update formatting 2023-02-27 16:43:35 -08:00
Brendan Hansknecht
a86c8d7994
update mono tests 2023-02-27 16:36:08 -08:00
Brendan Hansknecht
f77d1dcd6b
fix List.range so that it will only crash when Length is too large 2023-02-27 16:01:05 -08:00
Anton-4
4157c0e72d
patch instruction reference link
Signed-off-by: Anton-4 <17049058+Anton-4@users.noreply.github.com>
2023-02-27 12:25:18 +01:00
Folkert
1f296a5907
fix test I broke 2023-02-26 22:32:19 +01:00
Folkert
44f08f9e47
implement sqrt and log in the dev backend 2023-02-26 21:41:25 +01:00
Folkert
6a40d75353
float comparisions 2023-02-26 18:14:11 +01:00
Folkert
f1fa014524
support 128-bit literals 2023-02-26 15:11:49 +01:00
Folkert
fa05c49693
correct the name of the size() exposed function 2023-02-26 14:23:10 +01:00
J.Teeuwissen
046de72eac
only process ByName for now 2023-02-26 12:21:05 +01:00
J.Teeuwissen
73e36b826b
join point fixed point 2023-02-26 10:18:31 +01:00
Folkert
454f3c603e
give the new exposed symbols to the surgical linker 2023-02-25 19:35:46 +01:00
J.Teeuwissen
756d4d6485
body_env 2023-02-25 17:55:12 +01:00
Folkert
1bf2cc3b8c
cleanup 2023-02-25 16:23:40 +01:00
Folkert
a3e759cc3c
fix generation of C signature when roc returns c_void 2023-02-25 16:05:09 +01:00
Folkert
35980e50b8
fix function getters 2023-02-25 15:47:20 +01:00
J.Teeuwissen
336c821284
Temp fix for recursive joint points 2023-02-24 17:52:02 +01:00
Anton-4
4d91fe01ca
update mono tests 2023-02-24 14:35:05 +01:00
J.Teeuwissen
0afe94e6db
Start new free var inference and joint points 2023-02-23 16:12:25 +01:00
Folkert
033618f3f4
fixes to get rocLovesRust to work 2023-02-22 21:17:50 +01:00
Folkert
5ab2466872
fix merge conflict in the dev backend 2023-02-22 21:12:07 +01:00
Folkert
0d4135c57a
Merge remote-tracking branch 'origin/main' into glue-getters-rtfeldman 2023-02-22 21:11:39 +01:00
J.Teeuwissen
9c73b5041a
stash 2023-02-22 17:43:43 +01:00
Folkert
9897367038
fix merge conflict in the dev backend 2023-02-22 13:13:40 +01:00
Folkert de Vries
34340de60c
Merge pull request #5020 from roc-lang/dev-unbox-u32
dev backend: reading and writing 32, 16 and 8-bit values
2023-02-21 17:33:21 +01:00
Folkert de Vries
bd6623dab4
Merge pull request #5055 from roc-lang/abilities-bug-generic
Lambda set compaction must preserve unique specializations of concrete types
2023-02-21 15:24:23 +01:00
Ayaz Hafiz
fbc75016e1
Check in mono goldens 2023-02-20 19:31:22 -06:00
Folkert de Vries
088bd5211f
Merge pull request #5054 from roc-lang/glue-generate-lambda-set-callers
Glue generate lambda set callers
2023-02-21 02:19:53 +01:00
Ayaz Hafiz
7a4fed932d
Add gen tests for concerete unspecialized set conservation 2023-02-20 18:59:48 -06:00
Ayaz Hafiz
d7a069675b
Lambda set compaction must preserve unique specializations of concrete types
There are times that multiple concrete types may appear in
unspecialized lambda sets that are being unified. The primary case is
during monomorphization, when unspecialized lambda sets join at the same
time that concrete types get instantiated. Since lambda set
specialization and compaction happens only after unifications are
complete, unifications that monomorphize can induce the above-described
situation.

In these cases,

- unspecialized lambda sets that are due to equivalent type variables
  can be compacted, since they are in fact the same specialization.
- unspecialized lambda sets that are due to different type variables
  cannot be compacted, even if their types unify, since they may point
  to different specializations. For example, consider the unspecialized
  lambda set `[[] + [A]:toEncoder:1 + [B]:toEncoder:1]` - this set wants
  two encoders, one for `[A]` and one for `[B]`, which is materially
  different from the set `[[] + [A, B]:toEncoder:1]`.
2023-02-20 18:50:07 -06:00