Ayaz Hafiz
80a98668d5
Fix type errors
2023-06-06 16:07:51 -05:00
Ayaz Hafiz
5274dbcd00
Add a Newtype variant to LayoutWrapper
2023-06-06 16:03:52 -05:00
Ayaz Hafiz
457cdabc5c
Make repr private and accessible only via the interner
2023-06-06 16:01:27 -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
a67c148be7
Convert LayoutRepr::Struct into a tuple variant
2023-05-16 11:58:16 -05:00
Ayaz Hafiz
4b7f09b175
Only compare repr equality in wasm backend
2023-05-11 09:30:45 -05:00
Ayaz Hafiz
4296d5a349
Drop Layout::struct_no_name_order
2023-05-10 15:58:51 -05:00
Ayaz Hafiz
1170b542b6
Remove field_order_hash from struct layouts
2023-05-10 15:49:30 -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
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
Folkert de Vries
a5a91d428f
Merge pull request #5336 from roc-lang/dev-backend-list-map
...
dev backend: many more builtins
2023-05-01 10:20:15 +02:00
Folkert
cf54304cf4
add lowlevel to inc/dec a data pointer
2023-04-28 15:30:23 +02:00
Folkert
91079d3844
wasm backend: mulWrap for i128
2023-04-27 01:20:53 +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
ed46a1f2cb
lowlevel isUnique
2023-04-26 17:23:10 +02:00
Folkert
be31bc5c41
add the PtrWrite lowlevel
2023-04-23 15:19:46 +02:00
Brendan Hansknecht
48f17a8e2c
add Str.releaseExcessCapacity
2023-03-15 15:24:59 -07:00
Brendan Hansknecht
1319ba4844
add List.releaseExcessCapacity builtin
2023-03-13 17:43:21 -07:00
Brendan Hansknecht
dfb748fb03
misc cleanup + change refcount pointer to avoid branching
2023-03-13 14:08:24 -07:00
Brendan Hansknecht
26f5d558d8
update wasm to load capacity correctly
2023-03-13 14:08:24 -07:00
Brendan Hansknecht
e6964536b2
add more Num.bytesTo* functions
2023-03-12 08:41:05 -07:00
Brendan Hansknecht
785da377c8
add Num.count*Bits functions
2023-03-12 08:41:04 -07:00
Ayaz
ad84e02abf
Merge pull request #4950 from roc-lang/keep-recptr-index
...
Initial support for linking recursive pointer layouts back to their source layouts
2023-01-24 14:42:00 -06:00
Brian Carroll
ac45fa2bba
Merge pull request #4683 from roc-lang/gen-wasm-shr-128
...
gen_wasm: Implement u128 right shift by delegating to compiler_rt
2023-01-24 00:36:27 +00:00
Brian Carroll
5179057fc5
gen_wasm: implement NumIntCast for i128
2023-01-23 22:39:24 +00:00
Brian Carroll
28d6d000ec
gen_wasm: Implement u128 right shift by delegating to compiler_rt
2023-01-23 22:07:40 +00:00
Ayaz Hafiz
8750127111
Begin support for looping-back recursive pointers to their source layouts
2023-01-23 14:37:48 -06:00
Folkert
8442be824b
List.reserve: load spare from symbol, don't use a local
2023-01-21 15:57:10 +01:00
Ayaz Hafiz
1960f429bd
Cleanup of lints
2023-01-11 14:39:12 -06:00
Ayaz Hafiz
9d70c45781
Update wasm backend
2023-01-11 14:38:43 -06:00
Ayaz Hafiz
ce717dca8b
Do not require allocating Layouts in arena before interning
...
This should reduce memory spend, the interner has its own effective
arena anyway
2023-01-10 09:47:13 -06:00
Ayaz Hafiz
50826d1a83
Inline interners into the layout interner module
...
I realized that we'll need to make the layout interner more complicated
to support things like recursive pointers pointing to their parents and
to support lambda set layout caching. Since the layout interner is the
only user of intern crate right now anyway, just inline the whole thing.
2023-01-03 14:19:39 -06:00
Richard Feldman
ccbd6ad593
Merge pull request #4838 from roc-lang/more-str-docs
...
Minor `Str` improvements
2022-12-31 01:58:50 -05:00
Richard Feldman
d4baf0ab37
Rename a constant
2022-12-29 20:48:30 -05:00
Ayaz Hafiz
972046445b
Lift Niche from just captures-niche to generic niche
2022-12-29 18:43:26 -06:00
Ayaz Hafiz
e4b5252e51
List takes interned element
2022-12-29 08:52:37 -06:00
Ayaz Hafiz
7ab7fdfa7b
Push interned layouts as mut throughout the backend, and intern box layouts
2022-12-28 18:51:26 -06:00
Folkert
4ef541395a
remove dbg lowlevel
2022-12-22 02:45:09 +01:00
Brian Carroll
d389601035
Merge branch 'main' of github.com:roc-lang/roc into wasm_interp_test_gen
2022-12-16 14:50:09 +00:00
Folkert
d287eafa3a
remove F128
2022-12-14 23:28:38 +01:00
Brian Carroll
74bb8cc843
gen_wasm: fix type error in i64 shift operators
2022-12-14 08:42:01 +00:00
Ayaz Hafiz
ea386bf0af
Dont remove stmt_error
2022-11-24 14:46:54 -06:00
Folkert
e7f3c6f281
inline dbg
2022-11-23 21:23:28 +01:00
Brian Carroll
63d9187343
move wasm_module out of gen_wasm
2022-11-13 09:03:08 +00:00
Prajwal S N
df7e4eea7e
builtin(str): implement Str.graphemes
...
Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
2022-10-22 19:29:49 -07:00
Ayaz
83b64c4fb3
Merge pull request #4209 from roc-lang/impl-tag-discriminant
...
Derive `Hash` implementations for tag unions
2022-10-10 22:23:05 -05:00
Prajwal S N
9013e4ce11
builtin(str): implement withCapacity
...
Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
2022-10-08 00:24:46 +05:30