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
9087bf7273
Merge branch 'trunk' into builtsins-list-take-first
2021-11-08 14:32:36 +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
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
3ce94f8939
Merge branch 'trunk' into cleanup-zig-artifact-gen
2021-11-07 20:19:15 +00:00
Kevin Sjöberg
44938a9e35
Implement List.any
2021-11-07 20:44:10 +01:00
ayazhafiz
0d2ed76334
Implement List.joinMap
...
Closes #1887
2021-11-07 11:08:20 -05:00
Folkert
75c090fd24
cleanup
2021-11-06 23:57:21 +01:00
Kevin Sjöberg
491a480371
Implement Str.fromInt for any integer type
2021-11-06 14:55:27 +01:00
Eric Newbury
f3a350dd74
add dropFirst builtin
2021-11-05 16:12:29 -04:00
Folkert
7cd5d41b35
bump varid for closure var (List.map4 used so many variables that they interfered
2021-11-01 10:34:34 +01:00
Kevin Sjöberg
f9ed060e49
Implement List.map4
2021-10-31 21:08:41 +01:00
Chelsea Troy
4afaf96aea
Add List.max builtin
2021-10-30 19:17:35 -05:00
Folkert de Vries
aa978ae6d9
Merge branch 'trunk' into list_min
2021-10-28 20:32:27 +02:00
Tim Whiting
c721a1cc1f
add builtin List.min
2021-10-27 20:28:34 -06:00
Folkert de Vries
29bd4e3e50
Merge branch 'trunk' into str_trim
2021-10-26 22:45:32 +02:00
Chelsea Troy
7680a1d17a
Remove unused code
2021-10-25 21:55:45 -05:00
Dan Knutson
e7523ad41d
add Roc wiring
2021-10-25 20:22:37 -05:00
Chelsea Troy
fd83c3b749
Branch the dropLast functionality from dropAt, inserting an index gathered by subtracting 1 from the list length
2021-10-23 00:17:08 -05:00
Chelsea Troy
49a832d757
Add dropLast to tests and parser
2021-10-21 23:02:26 -05:00
Folkert
76e26e47f3
more cleanup
2021-10-20 17:05:59 +02:00
Folkert
63b1aaad4e
hook up polymorphic zig builtins
2021-10-20 16:43:39 +02:00
Folkert
ab34c2a55e
generalize all number intrinsics
2021-10-20 16:21:57 +02:00
Folkert
9fc832d8ef
new intrinsic approach
2021-10-20 15:18:02 +02:00
Folkert
4152519bfb
formatting & catch zig overflow error
2021-10-17 18:03:40 +02:00
Chelsea Troy
0cc6e44d35
Thread through the divCeil implementation from Zig:
...
+ OPEN QUESTION: Evidently the Zig implementation can throw an overflow error. Do we want to do something in Roc to fix this?
2021-10-17 10:46:16 -05:00
Chelsea Troy
03295d4369
So far, add type for divCeil to the language
2021-10-17 09:29:11 -05:00
Folkert
94e8c62613
make things compile, base64 has a memory leak
2021-10-06 22:57:11 +02:00
Richard Feldman
8391c337ab
Merge remote-tracking branch 'origin/trunk' into list-walk-flip
2021-10-05 20:50:50 -04: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
Kofi Gumbs
b32a42f05a
Add Str.repeat builtin
2021-09-29 17:32:42 -04:00
Folkert
5e68d31afc
expose decref_pointer_check_NULL
2021-09-10 20:42:25 +02:00
Folkert
5cb7dbd3cc
use zig's decref instead of an LLVM implementation
2021-09-01 16:58:05 +02:00
Richard Feldman
71a678c092
Update Dict.walk to match List.walk
2021-08-30 23:05:15 -04:00
Richard Feldman
1abebb7713
Reorder args for List.walk and friends
2021-08-30 22:45:10 -04:00
Folkert
727222bbe7
hashing always returns a U64
2021-08-29 00:51:48 +02:00
Folkert de Vries
86d46825aa
Merge branch 'trunk' into NumBytesTo
2021-08-20 11:32:20 +02:00
Joshua Hoeflich
b57ebb6229
Remove castToNat
2021-08-19 16:11:21 -05:00
Joshua Hoeflich
a4197d073c
bytesToU16 and bytesToU32 have proper types
2021-08-18 15:46:53 -05:00
Joshua Hoeflich
b4f575736b
castToNat working
2021-08-18 11:31:48 -05:00
Joshua Hoeflich
92da003fba
Adds castToNat
2021-08-18 11:02:20 -05:00
Joshua Hoeflich
7068da7144
Merge trunk
2021-08-17 08:47:40 -05:00
Folkert
5171d181ac
emit invoke again to see what's up here
2021-08-16 20:44:55 +02:00
Joshua Hoeflich
1c6ac84f2f
Add Num.round to dev backend
2021-08-15 17:50:07 -05:00
Folkert
a0a0896622
a working prototype
2021-08-15 23:20:05 +02:00
Joshua Hoeflich
22e781259d
TODO: Actually implement the functions
2021-08-14 19:28:13 -05:00
Joshua Hoeflich
9dad304e95
Passing arguments successfully to bytesToU16
2021-08-14 19:11:27 -05:00