Folkert
94efbd0e95
Merge remote-tracking branch 'origin/trunk' into builtins-list-take-last
2021-11-09 16:18:19 +01:00
satotake
772fc9c021
Implement List.takeLast
2021-11-09 12:26:17 +00: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
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
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
44938a9e35
Implement List.any
2021-11-07 20:44:10 +01:00
Kevin Sjöberg
f9ed060e49
Implement List.map4
2021-10-31 21:08:41 +01:00
Folkert
94e8c62613
make things compile, base64 has a memory leak
2021-10-06 22:57:11 +02:00
Dan Knutson
25215cb3e3
cleanup mutable case, split test
2021-10-03 14:09:07 -05:00
Dan Knutson
2a72439117
WIP adding unique mutable case
2021-10-03 13:55:11 -05:00
Dan Knutson
65821d6a9f
remove giesch/todo tags, add List.drop doc
2021-10-03 13:55:11 -05:00
Dan Knutson
700ab20a8c
add tests for List.dropAt
2021-10-03 13:55:11 -05:00
Dan Knutson
3baff93a97
add first version of List.dropAt
...
* adds an implementation with no uniqueness/mutability
2021-10-03 13:55:11 -05:00
Folkert
0690633116
spec for List.reverse
2021-10-03 13:34:09 +02:00
Folkert
13d480d5f3
spec for list append
2021-10-03 13:27:47 +02:00
Folkert
486f1d540f
add specifications for fromUtf8 and toUtf8
2021-10-03 13:22:03 +02:00
Folkert
018348bd83
make Str.fromUtf8 in-place
2021-10-03 12:13:17 +02:00
Folkert
dbb8acbe67
add in-place List.swap
2021-10-03 00:25:35 +02:00
Folkert
225c97aae3
move List.prepend to zig
2021-08-14 12:28:05 +02:00
Folkert
59e551dd32
cleanup
2021-07-24 00:13:00 +02:00
rvcas
fb12715aba
chore: list remove unused vars
2021-07-02 18:36:17 -04:00
Folkert
98a9dc0945
remove tag id from data bytes for non-recursive tags
2021-06-26 17:01:23 +02:00
Folkert
fc4f04dbd8
clean up variable names
2021-06-24 21:21:07 +02:00
Folkert
8d9f5b078e
fix ffi
2021-06-24 21:11:25 +02:00
Folkert
f8bdf05f90
has_tag_id from zig
2021-06-24 20:12:05 +02:00
Folkert
27308e98b7
use morphic update mode
2021-06-22 20:53:55 +02:00
Folkert
12c186813d
use std.mem.swap
2021-06-09 14:25:45 +02:00
rvcas
573f7d8093
feat(listRange): use a more terse syntax
2021-06-06 00:53:25 -04:00
tarjei
45185d1e84
Implement List.swap in zig
2021-05-31 19:08:37 +02:00
tarjei
ade591dd10
Fix plumbing
2021-05-29 22:21:25 +02:00
Folkert
4d0216cf09
fix merge conflicts
2021-05-25 09:18:39 +02:00
Folkert de Vries
5724f82667
Merge branch 'trunk' into zig-list-set
2021-05-25 09:05:18 +02:00
Richard Feldman
aa96d2373b
Reorder args in decref
2021-05-24 22:06:35 -04:00
Richard Feldman
0b3715ebee
Rearrange arg order for roc_alloc etc
2021-05-24 21:01:12 -04:00
Richard Feldman
7d7588ca19
Merge remote-tracking branch 'origin/trunk' into roc_alloc
2021-05-24 20:10:26 -04:00
Folkert
799e4a3239
use new roc alloc stuff for List.set
2021-05-24 18:27:27 +02:00
Folkert
91b49ecf98
Merge remote-tracking branch 'origin/roc_alloc' into zig-list-set
2021-05-24 18:25:18 +02:00
Folkert
fbb711b2ca
Merge remote-tracking branch 'origin/trunk' into specialize-lowlevel
2021-05-24 15:11:40 +02:00
Richard Feldman
ab51582541
Switch builtins to use roc_alloc and friends
2021-05-23 23:46:09 -04:00
Folkert
2e8a246095
Merge remote-tracking branch 'origin/trunk' into zig-list-set
2021-05-23 16:28:20 +02:00
Folkert
a4ed13d714
optimize zig code
2021-05-23 15:58:08 +02:00
Folkert
25ec057b2b
write List.set in zig
2021-05-22 22:13:54 +02:00
Richard Feldman
8666a2ad58
Avoid recomputing loop termination condition
...
LLVM might take care of this for us, but just to be safe!
2021-05-22 14:51:19 -04:00
Folkert
f0fc8a268f
cleanup
2021-05-22 17:26:01 +02:00
tarjei
e062bdaad8
Fix dec ref for empty list
2021-05-22 00:54:03 +02:00
tarjei
85e5b0ff82
Fix most of deref logic
...
Still doesn't handle empty lists properly.
2021-05-21 21:53:55 +02:00
Folkert
8f55706d5d
fix list gen tests
2021-05-19 22:45:30 +02:00
Folkert
f3199ed2a7
work on dicts
2021-05-19 22:32:31 +02:00