Commit graph

5230 commits

Author SHA1 Message Date
Brendan Hansknecht
72c36129a4
switch to iterators with some cloning to enable reserving HashSet size and avoiding the cost of rehashing 2023-03-22 13:41:40 -07:00
Brendan Hansknecht
9bfe2af259
switch away from drain and instead use into_iter 2023-03-22 13:41:40 -07:00
Brendan Hansknecht
3ef6d9846c
switch morphic to better hashing algorithms 2023-03-22 13:41:40 -07:00
Ayaz Hafiz
e96be7c746
Factor out decoders into separate files 2023-03-22 12:29:21 -05:00
Ayaz Hafiz
5e0a6e5926
Derive key for Decoding tuples 2023-03-22 12:23:16 -05:00
Ayaz Hafiz
92aff265ae
Add doc comment to Decode.record 2023-03-22 12:19:20 -05:00
Ayaz Hafiz
0b3ee77232
Add in Decode.tuple ability member 2023-03-22 12:18:04 -05:00
Ayaz Hafiz
c7bd430026
Gen tests for derived tuple encoding 2023-03-22 11:40:55 -05:00
Ayaz Hafiz
0b4a45c70d
Derive encoding for tuples 2023-03-22 11:37:47 -05:00
Ayaz Hafiz
e5fcb05a2d
Implement derivation keys for tuple encoders 2023-03-22 11:19:47 -05:00
Ayaz Hafiz
a361c4cfc1
Add the tuple ability member to EncoderFormatting 2023-03-22 11:14:46 -05:00
Ayaz Hafiz
8a7d9f8f23
Better debugging when lambda set region is missing 2023-03-22 11:13:00 -05:00
Ayaz Hafiz
72c9b76f23
Gen Eq test for tuple 2023-03-22 10:55:15 -05:00
Ayaz Hafiz
143f39d273
Gen tests for derivation of tuple hash 2023-03-22 10:53:14 -05:00
Ayaz Hafiz
c32bc5f152
Offset tuple element indices correctly when importing 2023-03-22 10:52:31 -05:00
Ayaz Hafiz
8f7b6aaeaa
Implement hash derivation for tuple 2023-03-22 10:28:13 -05:00
Ayaz Hafiz
66fb2f476e
Pretty-print tuple access 2023-03-22 10:27:49 -05:00
Ayaz Hafiz
d9c7010104
Add derive-key tests for derived hash 2023-03-22 10:19:14 -05:00
Ayaz Hafiz
e6cac71ca5
Add support for hash key of tuples 2023-03-22 10:09:57 -05:00
Ayaz Hafiz
f4f9ae7a5d
Implement obligation checking of tuples for all abilities 2023-03-22 10:03:01 -05:00
Ayaz Hafiz
240c1f35d6
Ranged number abilities are derived and compiled correctly
Closes #5089
2023-03-22 09:42:06 -05:00
Ayaz Hafiz
3603183817
Apply opaque pointer recasting to all recursive layouts 2023-03-22 08:21:09 -05:00
Ayaz Hafiz
3a960e7809
Properly recast nested recursion pointers to their expanded layouts as needed
When we load a structure with a nested recursive pointer, the pointer
may be loaded opaquely. We need to refine it to the concrete type wanted
by the layout.

This conversion can be removed after we upgrade to LLVM 15.

Closes #5162
2023-03-22 08:21:08 -05:00
Ayaz
6d8ddcc583
Merge branch 'main' into i5169
Signed-off-by: Ayaz <20735482+ayazhafiz@users.noreply.github.com>
2023-03-22 09:02:03 -04:00
Ayaz
63ef4a486f
Merge pull request #5173 from roc-lang/i5148 2023-03-22 08:59:39 -04:00
Brendan Hansknecht
8d5f443fcd
Merge remote-tracking branch 'origin/main' into pluggable-glue 2023-03-21 11:07:47 -07:00
Ayaz Hafiz
41541b01e6
Pattern is exhaustive 2023-03-21 13:54:17 -04:00
Ayaz
6b3f3ba1a1
Merge pull request #5167 from roc-lang/fix-closure-captures-recursive
Ensure that closures inside recursive closures capture correctly
2023-03-21 13:53:33 -04:00
Ayaz Hafiz
4c2f8f3566
Support tuples in the repl
Closes #5148
2023-03-21 13:53:07 -04:00
Ayaz Hafiz
6ea6aef0db
Fix repl eval of Str.toDec
Closes #5169
2023-03-21 12:22:08 -04:00
Anton-4
9742fc0f9e
Merge pull request #5132 from itmuckel/docs-links-in-headers
Add github style links to docs sections
2023-03-21 15:22:07 +01:00
Richard Feldman
2276c78d9f
Merge pull request #5093 from roc-lang/glue-getters-rtfeldman
Glue for functions and closures
2023-03-21 08:12:19 -04:00
Ayaz Hafiz
700d2d1b31
Check in mono golden 2023-03-21 07:18:12 -04:00
Anton-4
f11bf90d6d
values name change 2023-03-21 11:34:10 +01:00
Ayaz Hafiz
e8a29d2df4
Ensure that closures inside recursive closures capture correctly
With a code like

```
thenDo = \x, callback ->
    callback x

f = \{} ->
    code = 10u16

    bf = \{} ->
        thenDo code \_ -> bf {}

    bf {}
```

The lambda `\_ -> bf {}` must capture `bf`. Previously, this would not
happen correctly, because we assumed that mutually recursive functions
(including singleton recursive functions, like `bf` here) cannot capture
themselves.

Of course, that premise does not hold in general. Instead, we should have
mutually recursive functions capture the closure (haha, get it) of
values captured by all functions constituting the mutual recursion.
Then, any nested closures can capture outer recursive closures' values
appropriately.
2023-03-20 17:44:59 -04:00
Anton-4
8da9af94f2
use latest basic-cli, better error messages 2023-03-20 20:06:36 +01:00
itmuckel
97f68974a9
Code Review Changes 2023-03-20 19:53:38 +01:00
itmuckel
cc70413e05
Add github style links to docs sections 2023-03-20 19:53:31 +01:00
Anton-4
6e0dc30797
fixes, build tar.br now 2023-03-20 16:32:54 +01:00
Anton-4
f619a35c7c
.rh and .rm adjustments, basic-cli nightly prep 2023-03-20 12:24:30 +01:00
Anton-4
3eda00cb62
Merge pull request #5144 from lukewilliamboswell/static-site
Add code file import feature for `static-site-gen` platform
2023-03-20 11:16:57 +01:00
Anton-4
9c0d2a2eb0
some style changes 2023-03-18 14:22:52 +01:00
Anton-4
c536c70238
Merge pull request #5159 from swork1/better-mobile-support
fix mobile support for button container
2023-03-18 12:37:22 +01:00
Brendan Hansknecht
04f46e7425
Merge pull request #5155 from swork1/builtin-dict-docs
add docs/tests to Dict builtin
2023-03-17 21:12:01 +00:00
Seth Workman
4756781f25
fix mobile support for button container 2023-03-17 15:27:13 -05:00
Seth Workman
29e0673308
update dict.txt 2023-03-17 11:33:39 -05:00
Seth Workman
6471ce8a72
Merge branch 'roc-lang:main' into copy-button-#5137 2023-03-17 11:16:18 -05:00
Seth Workman
deadd19de0
Merge branch 'roc-lang:main' into builtin-dict-docs 2023-03-17 11:02:57 -05:00
Seth Workman
fed541947a
add copy button to builtin docs 2023-03-17 08:51:53 -05:00
Seth Workman
dccb1be5b5
fix naming to be relevant to example 2023-03-17 08:36:50 -05:00