Commit Graph

612 Commits

Author SHA1 Message Date
Brendan Hansknecht
dddf8ff785 switch from pair to record and change name to ListReplaceUnsafe 2022-02-24 20:41:26 -08:00
Brendan Hansknecht
27b47713aa Add some comments and TODOs 2022-02-24 20:40:45 -08:00
Brendan Hansknecht
ba2e8cd32b Add base piping for list.Replace 2022-02-24 17:58:56 -08:00
Brendan Hansknecht
69b4e78ac7 Add --opt-size and compiling smaller binaries 2022-02-24 15:39:50 -08:00
Richard Feldman
655373dbe7
Merge remote-tracking branch 'origin/trunk' into gui-example 2022-02-23 21:25:01 -05:00
ayazhafiz
2151e715dd Fix rebased compile error 2022-02-21 14:12:49 -05:00
ayazhafiz
148dbb4efe Unnecessary reference 2022-02-21 14:10:46 -05:00
ayazhafiz
e52d427ac8 Hash record field name order in generated layouts
Closes #2535

See the referenced issue for longer discussion - here's the synopsis.
Consider this program

```
app "test" provides [ nums ] to "./platform"

alpha = { a: 1, b: 2 }

nums : List U8
nums =
    [
        alpha.a,
        alpha.b,
    ]
```

Here's its IR:

```
procedure : `#UserApp.alpha` {I64, U8}
procedure = `#UserApp.alpha` ():
    let `#UserApp.5` : Builtin(Int(I64)) = 1i64;
    let `#UserApp.6` : Builtin(Int(U8)) = 2i64;
    let `#UserApp.4` : Struct([Builtin(Int(I64)), Builtin(Int(U8))]) = Struct {`#UserApp.5`, `#UserApp.6`};
    ret `#UserApp.4`;

procedure : `#UserApp.nums` List U8
procedure = `#UserApp.nums` ():
    let `#UserApp.7` : Struct([Builtin(Int(I64)), Builtin(Int(U8))]) = CallByName `#UserApp.alpha`;
    let `#UserApp.1` : Builtin(Int(U8)) = StructAtIndex 1 `#UserApp.7`;
    let `#UserApp.3` : Struct([Builtin(Int(I64)), Builtin(Int(U8))]) = CallByName `#UserApp.alpha`;
    let `#UserApp.2` : Builtin(Int(U8)) = StructAtIndex 1 `#UserApp.3`;
    let `#UserApp.0` : Builtin(List(Builtin(Int(U8)))) = Array [`#UserApp.1`, `#UserApp.2`];
    ret `#UserApp.0`;
```

What's happening is that we need to specialize `alpha` twice - once for the
type of a narrowed to a U8, another time for the type of b narrowed to a U8.

We do the specialization for alpha.b first - record fields are sorted by
layout, so we generate a record of type {i64, u8}. But then we go to
specialize alpha.a, but this has the same layout - {i64, u8} - so we reuse
the existing one! So (at least for records), we need to include record field
order associated with the sorted layout fields, so that we don't reuse
monomorphizations like this incorrectly!
2022-02-21 14:10:45 -05:00
Folkert
3e413764e2
make llvm gen tests work 2022-02-20 14:25:26 +01:00
Folkert
177529bfb6
all string tests passing 2022-02-20 13:04:12 +01:00
Folkert
1c0d092c48
fix str_to_utf8 2022-02-20 01:10:09 +01:00
Folkert
2c4d0e71a6
fix string repeat tests 2022-02-20 00:47:07 +01:00
Folkert
dea6cfbc8f
various fixes 2022-02-20 00:20:50 +01:00
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
Folkert
3d7254726d
WIP 2022-02-18 23:33:24 +01:00
Folkert
b2e4997cf0
use str/list helpers to prepare for adding capacity 2022-02-18 22:39:51 +01:00
Folkert
6631845a3c
Merge remote-tracking branch 'origin/trunk' into update_zig_09 2022-02-18 22:39:44 +01:00
Folkert
5582644166
use str/list helpers to prepare for adding capacity 2022-02-18 22:23:05 +01: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
71f2444397
s/Int/Nat in a comment 2022-02-11 21:26:39 -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
rvcas
0124e4d4b1
Merge branch 'trunk' into update_zig_09 2022-02-09 18:42:24 -05: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
Richard Feldman
9dea0e3a04
Automatically deallocate Failures in Rust 2022-02-03 22:17:53 -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
dd8f63b1ab
Add some #[repr(C)] annotations 2022-02-02 18:47:02 -05:00
Richard Feldman
15969af53c
Use constant over string literal 2022-02-01 20:44:02 -05:00
Richard Feldman
e65e6c97d1
Use constant instead of hardcoded string 2022-02-01 09:17:28 -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
Brian Carroll
d7f10d80ae repl: Change LLVM macro to use address instead of pointer 2022-01-29 11:24:13 +00: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
afd11e1cb1 move target -> roc_target 2022-01-26 23:33:29 +01:00
Folkert
0298013346 fix logical error 2022-01-26 17:03:49 +01:00
Folkert
c663a35e16 final phase 2022-01-26 15:44:24 +01:00
Folkert
74932a4cab phase 2 2022-01-26 14:30:37 +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
ayazhafiz
6da9a58b22 Remove some dead code 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
rvcas
98045abc4f Merge branch 'trunk' into update_zig_09 2021-12-29 14:49:27 -05:00
Folkert
d1bf07fdcd be a bit less string in debug assert 2021-12-28 00:10:26 +01:00
rvcas
49135c6c8b Merge branch 'trunk' into update_zig_09 2021-12-27 17:27:27 -05:00
ayazhafiz
5e5eb6dca8 (llvm) Generate code for tag unions less than 64 bits in size correctly
Previously, we assumed that a union layout always lived on >= 1 64-bit
boundary when generating an LLVM type for it. For small tags unions,
like `[ Ok i8, Err ]` this need not be the case; indeed, a tag union
like that is actually only 2 bits - 1 bit for the "i8" data, and one bit
of the tag kind.

This led to a discrepancy between what the layout IR and generated LLVM
code would assume about the size of tag unions. In the case above, the
layout IR would assume the tag data is 2 bits wide, and the tag id is 1
bit into the data. But the LLVM code would generate a type that was 65
bits wide, the first 64 bits being for the "i8" data and the last 1 bit
being for the tag kind.

Usually, just running the LLVM-emitted code would not present a problem.
But it does present a problem when we use the layout IR to inspect the
result of LLVM-run code, in particular when we try to look up the tag
ID, as the repl does. This patch fixes that issue.

Note that this bug did not present itself in `test_gen` previously
because the data that most tests check against is stored in the front of
the representation.

Closes #2149
2021-12-26 11:45:02 -06:00
rvcas
923c5c7c28 fix(zig): resolve v0.9 compilation issues 2021-12-23 15:33:44 -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
Folkert
40246607aa update inkwell to ease the llvm13 transition 2021-12-08 19:36:29 +01:00
rvcas
2fa4ecd8ea chore: clippy clippy clippy can't you see, sometimes your errors hypnotize me 2021-12-06 23:52:29 -05:00
rvcas
b7d48b2fe1 feat: add the rest of the num types for Str conversion 2021-12-06 23:24:02 -05:00
rvcas
bc5b1abcba feat(Str.toNum): support decimal 2021-12-02 15:35:34 -05:00
Folkert
d6ed2147ae basic working test case 2021-12-02 20:30:58 +01:00
rvcas
8a21b42c20 feat: check errorcode in returned record for a value greater than 0 2021-12-02 14:06:29 -05:00
rvcas
0d74daf7d9 feat: match on a Union Layout and use index access to get the num layout 2021-12-01 16:25:24 -05:00
Anton-4
e63701c5d1 trying to make Str.toNum work for Ints 2021-12-01 20:37:21 +01:00
Anton-4
2e21fd0cb9 Merge branch 'str-to-num' of github.com:rtfeldman/roc into str_to_num 2021-12-01 19:43:01 +01:00
Anton-4
c63c69f1ef prep merge with Folkert's branch 2021-12-01 19:42:22 +01:00
Folkert
69fc1ad7e7 sketch of StrToNum 2021-12-01 15:33:16 +01:00
Anton-4
eaf4e57759 started on Str.toNum 2021-12-01 15:15:30 +01:00
Richard Feldman
e6bec46898
Merge pull request #2109 from rtfeldman/refactor-passed-function
refactor passed (to higher order lowlevel) funcion
2021-12-01 08:17:39 -05:00
Brian Carroll
a3827d6636
Merge pull request #2071 from rtfeldman/refcount-mono-ir
Start generating refcounting code as mono IR
2021-12-01 12:59:16 +00:00
Folkert
bec74c36c5 refactor passed (to higher order lowlevel) funcion 2021-11-30 21:50:27 +01:00
rvcas
f995a07029 feat: Num.toStr
* add type for Num.toStr
  * create new lowlevel
  * delete types and Symbol for fromInt and fromFloat
  * leave LowLevel::{StrFromFloat,StrFromInt}
  * match on LowLevel::NumToStr and figure out the layout to decide
    which build function to delegate to
2021-11-30 14:52:06 -05:00
Brian Carroll
6e5acadfea Create new lowlevels for refcounting 2021-11-30 09:57:00 +00:00
Brian Carroll
c8278dcb1c Add a comment on REFCOUNT_MAX 2021-11-30 09:57:00 +00:00
Folkert
0bdda2506c add update mode to reset and reuse 2021-11-28 14:13:02 +01:00
Richard Feldman
f80409800d
Merge pull request #2091 from rtfeldman/remove-empty-layouts
Remove empty layouts
2021-11-27 23:32:15 -05:00
Folkert
79d5c82dfb cleanup 2021-11-27 16:36:43 +01:00
Folkert
a1fd34feef remove empty layout types (list,str,dict,set) 2021-11-27 14:05:16 +01:00
Brian Carroll
a9456639c7 Fix a bug in LLVM backend refcounting 2021-11-27 00:10:54 +00:00
Folkert
dc44eaac97 cleanup 2021-11-21 14:11:18 +01:00
Folkert
7d231f87cd remove usize llvm gen 2021-11-21 13:24:53 +01:00
Folkert
123c963ff1 llvm build working 2021-11-21 00:23:59 +01:00
Folkert
c4ec9aa898 working mono 2021-11-20 23:25:30 +01:00
Folkert de Vries
25a64f4a57
Merge pull request #2032 from rtfeldman/joshuawarner32/internal-linkage
Use Internal linkage to keep roc function symbols in the final binary
2021-11-20 12:30:41 +01:00
Joshua Warner
45f9f800ef Use Internal linkage instead of Private to keep roc function symbols in the final binary 2021-11-19 21:32:34 -08:00
Michael Downey
df91f63af8 changing const_zero to const_int 2021-11-19 07:24:07 -05:00
Michael Downey
51ad326d11 fmt 2021-11-16 17:30:04 -05:00
Michael Downey
d946b84e63 adding initial List.all 2021-11-16 16:34:36 -05:00
Richard Feldman
28273b67da
Merge pull request #1970 from rtfeldman/shrink-call-type
Shrink call type
2021-11-15 19:56:21 -08:00
satotake
c253273490 Merge branch 'trunk' into refactor-builtin-list-drop 2021-11-15 11:37:32 +00:00
satotake
8e29daa160 remove low-level List.drop codes 2021-11-15 11:28:38 +00:00
Folkert
fcb89cbcd8 Merge remote-tracking branch 'origin/trunk' into shrink-call-type 2021-11-13 19:31:30 +01:00
Folkert
f8b4ce0317 shrink tag id sizes in layouts 2021-11-13 19:31:20 +01:00
Theo Felippe
ea5aac7b74 Merge branch 'trunk' into builtins-str-trim-right 2021-11-13 18:05:40 +00:00
Theo Felippe
8d7c252fce implemented Str.trimRight 2021-11-13 18:02:58 +00:00
Richard Feldman
0b2df3154c Merge remote-tracking branch 'origin/trunk' into shrink-call-type 2021-11-13 08:21:13 -08:00
Richard Feldman
1c6fab7043
Merge pull request #1916 from rtfeldman/tag-union-imitate-rust
Tag union imitate rust
2021-11-13 08:13:32 -08:00
Folkert
f522d28a00 clippy 2021-11-13 16:04:23 +01:00
Folkert
83953b0bba shrink Call 2021-11-13 15:59:19 +01:00
Folkert
e2f7606f25 shrink higher order with indirection 2021-11-13 15:42:47 +01:00
satotake
9ec2bc7946 Remove takeFirst and takeLast from backend 2021-11-13 06:03:18 +00:00
satotake
2e073d57ea destruct record at high level 2021-11-13 05:13:46 +00:00
satotake
98d2c57edf move List.sublist to backend 2021-11-13 04:57:28 +00:00
Folkert
196538cc58 fix valgrind error, finally 2021-11-13 01:00:20 +01:00
Folkert
65a9febe7d clippy 2021-11-11 23:38:45 +01:00
Folkert
38da99b1ac make it work 2021-11-11 23:36:35 +01:00
Folkert
c827256e47 Merge remote-tracking branch 'origin/trunk' into tag-union-imitate-rust 2021-11-11 18:58:49 +01:00
Folkert
acb26002c8 fix repl 2021-11-10 23:36:16 +01:00
Folkert
5d7b4b7ad0 change roc call result; adding an extra field for the error message pointer
When the returned value was smaller than a pointer, there was no space for the error message pointer.
2021-11-10 22:14:54 +01:00
Folkert
33e8f9a6b7 Merge remote-tracking branch 'origin/trunk' into cleanup-im-dependency 2021-11-10 17:19:54 +01:00
Folkert
144dbef434 Merge remote-tracking branch 'origin/trunk' into tag-union-imitate-rust 2021-11-10 17:19:30 +01:00
Folkert
2262dcb3f9 clean up some other dependencies 2021-11-10 16:25:03 +01:00
Folkert
5632e3159d remove im dependency where not needed 2021-11-10 16:00:22 +01:00
Michael Downey
07cd3850d7
Merge branch 'trunk' into str_trim_left 2021-11-09 19:43:26 -05:00
Michael Downey
c1a48c0a9a fixing line for cargo fmt 2021-11-09 15:11:36 -05:00
Michael Downey
1f74fd6856 fixing formatting and adding str_trim_left back to solve_expr 2021-11-09 14:57:35 -05:00
Michael Downey
7e074d300e cleaning up and adding comments 2021-11-09 14:37:31 -05:00
Michael Downey
1bc278d962 initial commit of Str.trimLeft 2021-11-09 14:25:24 -05:00
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
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
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
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
Folkert
e7ec575a81 trying to track down uninitialized memory creation 2021-11-07 21:41:12 +01:00
Kevin Sjöberg
87894578cf Remove alignment parameter 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
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
Folkert de Vries
c0c2c1341c
Merge branch 'trunk' into fix-str-from-int 2021-11-07 00:00:21 +01:00
Brendan Hansknecht
73e2cbcb1e Make versions numbers consistent and matching the lock files 2021-11-06 13:24:45 -07:00
Folkert
bd0f02c542 another waypoint 2021-11-06 19:27:16 +01:00
Anton-4
69f6ffadab
Merge branch 'trunk' into deps 2021-11-06 18:07:34 +01:00
Kevin Sjöberg
f6d055dc62 Correct minor spelling mistakes 2021-11-06 15:29:08 +01:00
Kevin Sjöberg
491a480371 Implement Str.fromInt for any integer type 2021-11-06 14:55:27 +01:00
Kevin Sjöberg
c18f306a7e Remove dead code 2021-11-06 14:55:27 +01:00
Brendan Hansknecht
d49ac68bcc Update dep with major version changes 2021-11-05 19:19:37 -07:00
Brendan Hansknecht
bddc08c977 Remove unused dependencies 2021-11-05 16:58:11 -07:00
Folkert
5cd232816b waypoint 2021-11-05 21:30:20 +01:00
Folkert
51756cbc89 fix uninitialized alloca 2021-11-05 11:21:06 +01:00
Folkert
e378f0d2f9 fix tags tests 2021-11-05 10:35:17 +01:00
Folkert
2174db6534 Merge remote-tracking branch 'origin/trunk' into tag-union-imitate-rust 2021-11-05 09:28:36 +01:00
Anton-4
a3fc724df3 removed unused maplit 2021-11-03 10:50:25 +01:00
Richard Feldman
ac42470c81 Drop unused libc deps 2021-11-02 19:37:38 -04:00
Richard Feldman
4e19320982
Merge branch 'trunk' into false-cleanup 2021-11-01 22:30:45 -04:00
Kevin Sjöberg
f9ed060e49 Implement List.map4 2021-10-31 21:08:41 +01:00
Folkert
27e70b03e0 cleanup 2021-10-30 22:20:14 +02:00
Folkert
36496662d2 add comment on uninitialized memory 2021-10-30 22:14:26 +02:00
Folkert
29e7853b85 use phi node in elem_loop 2021-10-30 22:05:43 +02:00
Folkert
44e8fbc203 construct tag in alloca (to eventually pass them by pointer) 2021-10-30 22:05:22 +02:00
Dan Gieschen Knutson
02117ba512
Merge branch 'trunk' into str_trim 2021-10-27 18:01:29 -05:00
Folkert
d561f2661d speedups 2021-10-27 00:01:21 +02:00
Dan Knutson
e7523ad41d add Roc wiring 2021-10-25 20:22:37 -05:00
Folkert
1d1bd3d051 working, but generates more code 2021-10-22 14:54:15 +02:00
Folkert
2ff3a97ada re-implement roc returning by pointer 2021-10-22 13:24:18 +02:00
Folkert
171c0836e4 return tag unions by pointer 2021-10-22 13:18:31 +02:00
Folkert
28b15cdf67 prettier 2021-10-22 13:17:07 +02:00
Folkert
7d1bd0ffe7 make refcount take tag union by reference 2021-10-22 13:17:07 +02:00
Folkert
e73ac60053 improve Tag literal generation 2021-10-22 13:17:07 +02:00
Folkert
ad9f0b0609 clippy 2021-10-22 13:07:45 +02:00
Folkert
da3787feb8 Merge remote-tracking branch 'origin/trunk' into remove-call-result-again 2021-10-22 12:57:36 +02:00
Folkert
10b9307ab6 centralize calling roc functions in llvm 2021-10-22 12:56:58 +02:00
Folkert
e6edfda9a5 refactor call to roc function 2021-10-22 12:32:37 +02:00
Folkert
83de4b55ef remove another instance of RocCallResult 2021-10-22 12:26:04 +02:00
Folkert
0a12ce896f Revert "make list inc/dec non-recursive (except when freeing the list)"
This reverts commit 19eadbfe70.
2021-10-21 20:28:32 +02:00
Folkert
03144f978f Revert "clippy"
This reverts commit 7773cf9b4d.
2021-10-21 20:28:18 +02:00
Folkert
dd38d49335 fix formatting 2021-10-20 19:44:26 +02:00
Folkert
76e26e47f3 more cleanup 2021-10-20 17:05:59 +02:00
Folkert
7735ca21ea cleanup 2021-10-20 17:03:55 +02:00