Commit graph

402 commits

Author SHA1 Message Date
ayazhafiz
13067f2908 Implement Num.toNNNChecked
Closes #2411
2022-02-19 16:20:21 -05:00
ayazhafiz
d90915a8cd Implement Num.to* builtins
Just wrap over Num.intCast
2022-02-19 11:28:41 -05:00
hafiz
91483dbf55
Merge pull request #2471 from rtfeldman/fix_args_order
Swap arg order in `List` builtins to put the more-complex types first
2022-02-13 23:25:05 -05:00
ayazhafiz
886e4e07f6 Update alias analysis, implementation for List.mapWithIndex 2022-02-13 22:50:27 -05:00
ayazhafiz
6e5c1d5914 Specialize Num.toFloat for different target float types
Closes #2476
2022-02-13 20:20:25 -05:00
Richard Feldman
e1cc4cbde6
Fix comment 2022-02-11 21:25:08 -05:00
Jan Van Bruggen
f47dbb5171
Swap List.mapWithIndex arg1 args order to put the element first 2022-02-11 16:10:29 -07:00
Jan Van Bruggen
92e0f8714f
Swap List.repeat args order to put the list first 2022-02-11 16:10:29 -07:00
ayazhafiz
1a1eaf7f68 Normalize c/Roc callconv parameters when C returns by pointer
Closes #2413
2022-02-06 21:57:14 -05:00
Richard Feldman
f8fc9cf577
Reproduce code gen crash 2022-02-06 07:39:16 -05:00
Richard Feldman
a8e3d5f9b6
Merge remote-tracking branch 'origin/trunk' into expect-dont-panic 2022-02-03 22:25:40 -05:00
ayazhafiz
097c5afc73 Check lower bounds for numeric literals, and permit 128-bit literals 2022-02-02 23:35:57 -05:00
Richard Feldman
3e9eef4d0e
Add some TODO comments 2022-02-02 18:47:18 -05:00
Richard Feldman
15969af53c
Use constant over string literal 2022-02-01 20:44:02 -05:00
Richard Feldman
a55ff62e6c
Merge remote-tracking branch 'origin/trunk' into expect-dont-panic 2022-01-30 20:22:26 -05:00
Chelsea Troy
4f8d0776b3 We got a test working for panicking with the appropriate number fo failures. Ultimatly we want:
+ An error maessage that says what the failures were
+ Not panicking (so these are effectively error productions)
2022-01-30 18:55:09 -06:00
Folkert
684b873453 change name back ?! 2022-01-27 23:20:35 +01:00
Folkert
ee151c8f94 fix function name 2022-01-27 22:26:44 +01:00
Folkert
e31532360b don't remove argument that is not pushed 2022-01-27 21:20:46 +01:00
Folkert
3ade77374a Merge remote-tracking branch 'origin/trunk' into add_loop_examples 2022-01-27 16:49:47 +01:00
Folkert
7e28d557ec improve how we generate the mainForHost function 2022-01-26 21:08:45 -07:00
Folkert
c663a35e16 final phase 2022-01-26 15:44:24 +01:00
Folkert
7e90812332 ptr_bytes -> target info, step 1 2022-01-26 14:28:26 +01:00
Mats Sigge
71f359fbdc Move macros from roc_reporting to new roc_error_macros module
The `internal_error!` and `user_error!´ macros can't be used everywhere
when they live in `roc_reporting` due to circular dependencies.
2022-01-23 18:40:04 +01:00
Richard Feldman
638c56442c
Delete commented-out line 2022-01-22 22:41:41 -05:00
Folkert
38b03282fd working version of joinpoints with phi nodes 2022-01-23 00:46:32 +01:00
Folkert
7baec2b201 make tag allocas at the function entry point block 2022-01-23 00:21:18 +01:00
Chelsea Troy
085c02ffee Infrastructure to test and implement the replacement of an 'expect' failure with an error production
Last command run was 'cargo test expect_fail'
2022-01-16 22:01:22 -06:00
Richard Feldman
f83f50a9a7
Merge pull request #2337 from rtfeldman/i/2331
Use unsigned LLVM intrinsic arithmetic for unsigned integers
2022-01-12 08:29:30 -05:00
Folkert
1b149d215d pass pointer to C as first argument 2022-01-11 22:08:58 +01:00
Folkert
b2e05b92d1 make fastcc wrapper return by pointer if return type is large 2022-01-11 21:03:57 +01:00
ayazhafiz
2c41c43aea Implement saturated add/subtract 2022-01-10 22:37:08 -05:00
ayazhafiz
abe42781d5 Use unsigned LLVM intrinsic arithmetic for unsigned integers
Closes #2331
2022-01-10 19:20:51 -05:00
rvcas
d2f95bde63 chore(StrToNum): layout is always a Struct, we don't need the Union case 2022-01-03 18:15:46 -05:00
Chelsea Troy
922d8e57c7 trying to see if we have access to our testing modules elsewhere 2022-01-02 22:53:48 -05:00
Brian Carroll
aec8d1bf3d Merge branch 'trunk' of github.com:rtfeldman/roc into str_to_num 2022-01-02 12:31:59 +00:00
ayazhafiz
983a9f7e17 Position correct basic block before calling error catcher
While building the main function for tests, we may need to generate
additional blocks while marshalling arugments to the error catcher into
the expected calling convention. This pushes the last block in the main
function down, so that the "entry" block may not be last BB in the
function. Instead, look up the last insertion block before generating
the catcher, and then add a call to the catcher at the end of this last
block.

Closes #2300
2021-12-30 20:55:43 -06:00
ayazhafiz
f52cca40b5 Dereference small (non recursive) tag unions before storing them elsewhere
Closes #2290
2021-12-29 17:55:21 -06:00
ayazhafiz
71bd77e3b2 Handle flat variants of recursive tag unions in repl 2021-12-29 17:55:21 -06:00
rvcas
d0c4072362 fix:(llvm): StrToNum is safer if we match on either a Union or a Struct 2021-12-29 16:26:15 -05:00
Brian Carroll
e847c924dd Lowlevels: replace RefCountGetPtr with the more general GetPtrAsInt. 2021-12-19 08:29:17 +00:00
Brian Carroll
c5d0a42c20 LLVM backend: set small string flag on empty string 2021-12-16 19:04:36 +00:00
Richard Feldman
ae755d81fa
Merge pull request #2153 from rtfeldman/llvm-build-macros
Cleanup dict/list element layout matches
2021-12-12 17:50:29 -05:00
satotake
a7fe2e3e53 Fix llvm Num.toFloat width conversion
Close #2156
2021-12-11 08:12:57 +00:00
Brian Carroll
7b6ba79eee Merge branch 'trunk' of github.com:rtfeldman/roc into wasm-tags 2021-12-10 11:48:56 +00:00
Richard Feldman
aab601366e
Merge pull request #2152 from rtfeldman/inkwell-llvm-13
update inkwell to ease the llvm13 transition
2021-12-09 19:16:23 -05:00
Richard Feldman
1ce648ac27
Merge pull request #2116 from rtfeldman/str_to_num
Str.toNum
2021-12-09 09:48:38 -05:00
Brian Carroll
0220f7d921 Remove an assumption of 64-bit pointer alignment 2021-12-08 20:30:26 +00:00
Folkert
727f2f6e93 cleanup 2021-12-08 21:02:38 +01:00
Folkert
6c5f809678 cleanup 2021-12-08 21:00:53 +01:00