Commit graph

415 commits

Author SHA1 Message Date
Brendan Hansknecht
7683c5ae53
Stop using llvm instrinsics that just call libc
In a future PR. I will change zig to insure that all of these instrinsics
use musl directly and do not call out to the linked libc.
2023-05-31 20:00:04 -07:00
Ayaz Hafiz
5c43c0c91b
Gen test for hash Dec 2023-05-26 11:38:30 -05:00
Ayaz Hafiz
3585d5bb5b
Implement hash for Dec 2023-05-26 11:38:30 -05:00
Brendan Hansknecht
b4c359588e
Seed Dict and Set
This changes Dict and Set to have a compilation depedent seed.
The seed is not exposed to userland in anyway.
This gets a much more DOS resistant Dict and Set with no cost.
2023-05-25 09:55:48 -07:00
Ayaz Hafiz
5abf121efe
Correct tag ID matching of nullable wrapped tags 2023-05-24 12:42:15 -05:00
Ayaz Hafiz
a67c148be7
Convert LayoutRepr::Struct into a tuple variant 2023-05-16 11:58:16 -05:00
J.Teeuwissen
797da23f17
build_is_null resetref 2023-05-15 00:53:12 +02:00
Folkert
a289f37eef
handle NULL pointer in Reset 2023-05-15 00:53:12 +02:00
J.Teeuwissen
31cae64570
ptrcast llvm 2023-05-15 00:51:34 +02:00
Ayaz Hafiz
931d26206f
Only check for repr equality in codegen 2023-05-11 09:23:45 -05:00
Ayaz Hafiz
4296d5a349
Drop Layout::struct_no_name_order 2023-05-10 15:58:51 -05:00
Ayaz Hafiz
6714a6fd92
Use LayoutRepr directly when possible 2023-05-10 15:28:11 -05:00
Ayaz Hafiz
f100e8753c
Introduce the concept of SemanticRepr 2023-05-10 13:51:04 -05:00
Ayaz Hafiz
c3eeb5e2cc
Wrap layouts in a LayoutRepr constructor
Part 1 of support semantic layout representations.
2023-05-10 13:22:10 -05:00
Folkert de Vries
deb1e9952d
Merge pull request #5365 from roc-lang/dev-backend-cli
Dev backend list tests
2023-05-07 14:47:39 +02:00
Folkert
ef60be37af
fix alloca of wrong type 2023-05-06 00:42:48 +02:00
Folkert
1c16617bec
llvm backend: fix how closure value is passed 2023-05-05 16:36:29 +02:00
Basile Henry
b8aaaaabda Implement builtins for Num.isNan, Num.isInfinite, and Num.isFinite
Closes #5310 and closes #5309
2023-05-03 09:33:28 +01:00
J.Teeuwissen
9c286ea8f2
llvm RefCountIsUnique without zig 2023-04-30 16:22:13 +02:00
J.Teeuwissen
b8a2ea1bf2
Merge branch 'main' into drop_specialization 2023-04-29 18:31:12 +02:00
Anton-4
ff6ec21a09
Merge pull request #5324 from roc-lang/rust_version_upgrade
WIP Rust version upgrade
2023-04-29 18:01:04 +02:00
J.Teeuwissen
c1ced3c5d2
inc lowlevel return value 2023-04-29 14:30:14 +02:00
Folkert
25d2d090e8
make box decrement its contents when free'ing 2023-04-28 18:11:39 +02:00
Folkert
cf54304cf4
add lowlevel to inc/dec a data pointer 2023-04-28 15:30:23 +02:00
J Teeuwissen
7439ee0c8c
Merge branch 'main' into drop_specialization
Signed-off-by: J Teeuwissen <jelleteeuwissen@hotmail.nl>
2023-04-26 20:26:37 +02:00
J.Teeuwissen
b4f65ad8cf
clippy 2023-04-26 20:23:30 +02:00
J.Teeuwissen
74f2b0afda
Updated refcount logic 2023-04-26 18:14:16 +02:00
J.Teeuwissen
ed46a1f2cb
lowlevel isUnique 2023-04-26 17:23:10 +02:00
Anton-4
9748e4a4dc
many clippy fixes 2023-04-24 16:21:46 +02:00
Folkert
be31bc5c41
add the PtrWrite lowlevel 2023-04-23 15:19:46 +02:00
Anton-4
abf2d5760d
clippy auto fix 2023-04-22 18:25:48 +02:00
J.Teeuwissen
9d4c3bcfb9
undid inlining 2023-04-15 17:41:10 +02:00
J.Teeuwissen
5f7f9b766b
inline lowlevel in rc 2023-04-13 12:26:05 +02:00
J.Teeuwissen
ed947b773d
Cleanup 2023-04-05 19:44:17 +02:00
J.Teeuwissen
87abe8df7d
Merge branch 'resetref' into Frame-Limited 2023-04-03 10:02:31 +02:00
J.Teeuwissen
7759ce6fc4
Merge branch 'main' into Frame-Limited 2023-03-31 20:46:39 +02:00
Richard Feldman
0bb8c60b93
Merge pull request #5238 from roc-lang/glue-towards-ts
Move RustGlue.roc closer to what we have on the ts branch
2023-03-31 10:11:23 -04:00
Folkert
4419e961c8
remove unneeded extern definitions 2023-03-30 21:36:30 +02:00
J.Teeuwissen
9b410694fe
Merge branch 'main' into Frame-Limited 2023-03-30 20:38:05 +02:00
Folkert
09779f65ad
add NullPointer to mono::ir::Expr 2023-03-30 20:18:04 +02:00
J.Teeuwissen
9e8b1c0dee
reset ref implementation 2023-03-30 09:30:09 +02:00
Folkert
99a3c08911
bake roc_alloc and friends into the dynamic library for glue 2023-03-29 19:43:59 +02:00
Folkert
d67617e64b
when roc_panic is setjmp/longjmp, mark its linkage as internal 2023-03-29 15:03:30 +02:00
J.Teeuwissen
d4ed6f7778
start resetref 2023-03-29 11:57:13 +02:00
Folkert
c0f49ce62c
correctly add padding between data and tag id 2023-03-28 19:46:26 +02:00
J.Teeuwissen
4d7a2be1dd
llvm inc list sort with 2023-03-22 17:20:50 +01:00
Ayaz Hafiz
3603183817
Apply opaque pointer recasting to all recursive layouts 2023-03-22 08:21:09 -05:00
Ayaz Hafiz
3a960e7809
Properly recast nested recursion pointers to their expanded layouts as needed
When we load a structure with a nested recursive pointer, the pointer
may be loaded opaquely. We need to refine it to the concrete type wanted
by the layout.

This conversion can be removed after we upgrade to LLVM 15.

Closes #5162
2023-03-22 08:21:08 -05:00
Anton-4
f1b1aa6a7b
Merge branch 'main' of github.com:roc-lang/roc into glue-getters-rtfeldman 2023-03-17 11:34:29 +01:00
Brendan Hansknecht
48f17a8e2c
add Str.releaseExcessCapacity 2023-03-15 15:24:59 -07:00