Commit graph

5882 commits

Author SHA1 Message Date
satotake
dfc527ecff Merge branch 'trunk' into builtins-list-take-last 2021-11-09 12:34:58 +00:00
satotake
772fc9c021 Implement List.takeLast 2021-11-09 12:26:17 +00:00
Folkert
960733c605 Merge remote-tracking branch 'origin/trunk' into builtin/List.find 2021-11-09 13:07:47 +01:00
Folkert
af8ee4b7bb add cargo aliases for convenient test running 2021-11-09 12:27:28 +01:00
Brendan Hansknecht
1028e1593a Fix unused import 2021-11-08 19:49:33 -08:00
Brendan Hansknecht
7017131bae remove test_wasm_util 2021-11-08 19:35:36 -08:00
Brendan Hansknecht
491ec60b90 update gen-dev readme 2021-11-08 19:35:13 -08:00
Brendan Hansknecht
360974398a Merge test_dev, test_wasm, and test_wasm_util into test_gen 2021-11-08 19:31:20 -08:00
ayazhafiz
9e50580715 Walk the input list during List.find alias analysis 2021-11-08 22:00:03 -05:00
ayazhafiz
074c2ca398 Remove stale DICT_TEST_HASH reference 2021-11-08 21:04:59 -05:00
ayazhafiz
75b439cb31 Remove unnecessary clone 2021-11-08 21:03:15 -05:00
ayazhafiz
731f7a11a1 Remove unused variable 2021-11-08 21:03:15 -05:00
ayazhafiz
f65b174ab5 Implement List.find
`List.find : List elem, (elem -> Bool) -> Result elem [ NotFound ]*`
behaves as follows:

```
>>> List.find [1, 2, 3] (\n -> n > 2)
Ok 2
>>> List.find [1, 2, 3] (\n -> n > 4)
Err NotFound
```

We implement this as builtin in two phases. First, we call out to a
pure-llvm-lowlevel `ListFindUnsafe` that returns a record indicating
whether a satisfying element was found, and the value of that element
(the value is all null bytes if the element wasn't found). Then, we lift
that record to a `Result` via a standard construction of the can AST.

Closes #1909
2021-11-08 21:03:14 -05:00
Folkert
7ff4ad6f7b fix merge conflict 2021-11-08 23:57:56 +01:00
Folkert
a9d483cb60 Merge remote-tracking branch 'origin/trunk' into tag-union-imitate-rust 2021-11-08 22:31:17 +01:00
Folkert
8266284567 clippy 2021-11-08 22:31:08 +01:00
Brian Carroll
5bfc0093ec Intitialise CodeSection with just the right capacity 2021-11-08 14:59:49 +00:00
satotake
9087bf7273 Merge branch 'trunk' into builtsins-list-take-first 2021-11-08 14:32:36 +00:00
satotake
d0b09e1922 cleanup unused args 2021-11-08 14:31:34 +00:00
satotake
878400f95f Implement List.takeFirst 2021-11-08 14:10:53 +00:00
satotake
97c82d8d51 pick 02acef6 2021-11-08 11:15:20 +00:00
satotake
b8340b47c6 checkout trunk 2021-11-08 11:13:17 +00:00
satotake
c8f7a98d74 Merge branch 'trunk' into remove-dict-hash-test-only 2021-11-08 11:12:31 +00:00
Brendan Hansknecht
820ba8f5f6 fix formating and add new lock files 2021-11-07 20:20:01 -08:00
Brendan Hansknecht
bfdd454afa Remove unused dependency 2021-11-07 18:27:28 -08:00
Brendan Hansknecht
2ce945771e Make test crates only have dev dependencies and separate out wasm memory helper 2021-11-07 18:01:40 -08:00
Brendan Hansknecht
89781ec50d Stop building test crates as part of non-test builds 2021-11-07 16:28:17 -08:00
Richard Feldman
77a189d94f
Merge branch 'trunk' into move-wasmer-to-test-dependency 2021-11-07 23:52:20 +00:00
Richard Feldman
79080fb3f2
Merge pull request #1907 from rtfeldman/cleanup-zig-artifact-gen
generate wasm32 object file containing the builtins
2021-11-07 23:43:47 +00:00
Richard Feldman
0a347456ef
Merge pull request #1903 from rtfeldman/fix-str-from-int
Implement Str.fromInt for any integer type
2021-11-07 23:42:59 +00:00
Brian Carroll
ce9658684a Move wasmer dependency from gen_wasm to test_wasm 2021-11-07 22:56:28 +00:00
Folkert
e7ec575a81 trying to track down uninitialized memory creation 2021-11-07 21:41:12 +01:00
Brian Carroll
3ce94f8939
Merge branch 'trunk' into cleanup-zig-artifact-gen 2021-11-07 20:19:15 +00:00
Kevin Sjöberg
d6e98c08ec Increment the counter if data is owned 2021-11-07 20:50:29 +01:00
Kevin Sjöberg
87894578cf Remove alignment parameter 2021-11-07 20:48:09 +01:00
Kevin Sjöberg
dfe3f045bd Ignore broken test case for now 2021-11-07 20:48:09 +01:00
Kevin Sjöberg
5e1a9832cb Return false in case of empty list 2021-11-07 20:47:09 +01:00
Kevin Sjöberg
44938a9e35 Implement List.any 2021-11-07 20:44:10 +01:00
Kevin Sjöberg
0e500ba33c Document List.any 2021-11-07 20:43:28 +01:00
ayazhafiz
0d2ed76334 Implement List.joinMap
Closes #1887
2021-11-07 11:08:20 -05:00
Folkert
3138fc43ec cosmetic changes 2021-11-07 16:31:43 +01:00
Folkert
0e1e3381f0 Merge remote-tracking branch 'origin/trunk' into tag-union-imitate-rust 2021-11-07 15:29:55 +01:00
Folkert
180575852a all tests passing 2021-11-07 14:56:24 +01:00
satotake
0b524889c0 fmt 2021-11-07 12:46:11 +00:00
satotake
ad50f4a8f3
Merge branch 'trunk' into remove-dict-hash-test-only 2021-11-07 21:43:04 +09:00
satotake
a12b75192e Hide Dict.hashTestOnly 2021-11-07 12:30:04 +00:00
satotake
f3ee0bef40 Add keep_shadowed_builtins feature to roc_parse 2021-11-07 12:27:43 +00:00
satotake
0922c86352 Rollback 2021-11-07 12:27:26 +00:00
Brian Carroll
34b57cf315 Refactor after creating constant linking data 2021-11-07 11:23:20 +00:00
Brian Carroll
38d9fc5bbd Add linker data for strings, and deduplicate them
For references to addresses of constant strings, we make an entry in
reloc.CODE and configure the relocation type to say it points at a
memory address. (At least I think this is right, I can't test it yet!)

The same info can also be used for de-duplication.

It turns out we don't need reloc.DATA. I had misunderstood it.
The use case for that would be constant nested data structures,
where constant data would contain pointers to other constant data.
I don't think we're doing this in Roc at all, but not sure.
2021-11-07 11:20:32 +00:00