Folkert
a3d5e7bee5
fully implement sign/zero extension
2023-02-18 16:42:46 +01:00
Folkert
4e38a4ce32
enable some utf8 conversion tests
2023-02-18 16:42:46 +01:00
Folkert
aa113f169c
string equality
2023-02-18 16:42:45 +01:00
Folkert
816828040d
tests for boxing/unboxing floats
2023-02-18 16:42:45 +01:00
Folkert
b968122bee
simplify systemv argument storing and loading
2023-02-18 16:42:45 +01:00
Folkert
89201676ef
make is_primitive look through LambdaSet
2023-02-18 16:42:44 +01:00
Folkert
4b31c77b37
paramter ownership is not important for codegen
2023-02-18 16:42:44 +01:00
Folkert
78000b3f19
enable more list tests
2023-02-18 16:42:44 +01:00
Folkert
9f5f80581e
add test that passes a struct < 16 bytes
2023-02-18 16:42:43 +01:00
Folkert
a66320b00c
count utf bytes
2023-02-18 16:42:43 +01:00
Folkert
e48a604862
add Str.appendScalar
2023-02-18 16:42:43 +01:00
Folkert
92539fe3b0
Revert "implment 8bit logical operators"
...
This reverts commit 87c49679e1ac5bcfb710b6d432a9f503db3ee501.
2023-02-18 16:42:42 +01:00
Folkert
f6fbfa002b
implment 8bit logical operators
2023-02-18 16:42:42 +01:00
Folkert
4afeb1d67a
store big strings on the heap; enable a lot more string tests
2023-02-18 16:42:42 +01:00
Folkert
1e1da8a61b
reduce linecount
2023-02-18 16:42:41 +01:00
Folkert
38b66765ab
enable more string tests
2023-02-18 16:42:41 +01:00
Folkert
6a84d6ee83
centralize stack movement
2023-02-18 16:42:41 +01:00
Folkert
8ec3ab0963
centralize reading a pointer to some stack location
2023-02-18 16:42:40 +01:00
Folkert
b31edead54
centralize writing a stack value to a pointer
2023-02-18 16:42:40 +01:00
Folkert
ee79a311f9
dev: box and unbox 16-bit and 8-bit values
2023-02-18 16:42:40 +01:00
Folkert
49d52f5d9a
dev: box and unbox 32-bit value
2023-02-18 16:42:39 +01:00
Folkert
6ecafb85a4
add mov_reg32_base32_offset32
2023-02-18 16:42:39 +01:00
Folkert
541039f700
add register names for 32-bit, 16-bit and 8-bit
2023-02-18 16:42:39 +01:00
Ayaz
c9015e6ef2
Merge pull request #5039 from roc-lang/i5027
...
Handle case where only other tag of nullable unwrapped needs no refcount
2023-02-18 09:41:07 -06:00
Joshua Warner
57c3840926
Merge pull request #5016 from joshuawarner32/fix-collection-newlines
...
Fix formatting of initial newlines in collections
2023-02-18 06:56:01 -08:00
Joshua Warner
2541a09273
Fix formatting of initial newlines in collections
...
Fixes #5015
2023-02-17 09:08:50 -08:00
Anton-4
ed78112fbc
windows build fixes
2023-02-17 15:44:15 +01:00
Ahmad Sattar
db497539bc
Combined test for good measure
2023-02-16 23:08:30 +01:00
Ahmad Sattar
3c01ae10c6
Add Lowlevel::Not
2023-02-16 22:47:55 +01:00
Ahmad Sattar
214ee6ed8e
Add Lowlevel::Or
2023-02-16 22:47:54 +01:00
Ahmad Sattar
f8b0a99e6d
Add Lowlevel::And
2023-02-16 22:47:54 +01:00
Ahmad Sattar
82c0aa083d
Support boolean comparisons
2023-02-16 20:58:54 +01:00
Ayaz Hafiz
94c2c47da4
Handle case where only other tag of nullable unwrapped needs no refcount
...
It's possible to have a nullable unwrapped code where the only material
payload does not need refcounting operations. In this case the
refcounting function is the trivial one.
2023-02-16 09:38:49 -06:00
Folkert
178e80fa9a
fix for when C has to return an empty tag union
2023-02-15 15:30:26 +01:00
Folkert de Vries
d1a22316fc
Merge pull request #5012 from lucacervello/add-spaces-around-optional-record-field
...
Add spaces around ? in optional record field
2023-02-15 15:05:08 +01:00
Ayaz
b0d3d8fc7c
Merge pull request #5029 from roc-lang/lambda-set-cleanup
2023-02-14 08:51:35 -06:00
Ayaz Hafiz
b11cf19658
Remove unreachable lambda set layout branches
...
Lambda sets can only appear under function types, so we don't need to
handle them independently in layout gen.
2023-02-13 17:50:24 -06:00
Ayaz Hafiz
b406e384fc
Print recursion variables correctly in pretty printer
2023-02-13 17:42:21 -06:00
Ayaz Hafiz
4844c278a8
Be sure to correctly print multiple unrelated recursion structures as needed
2023-02-13 17:15:34 -06:00
Ayaz Hafiz
a3de22c88a
Do not fixup recursion pointers in non-recursive lambda sets
...
If a lambda set is non-recursive, but contains naked recursion pointers,
we should not fill those naked pointers in with the slot of the lambda
set during interning. Such naked pointers must belong to an encompassing
lambda set that is in fact recursive, and will be filled in later.
For example, `LambdaSet([Foo, LambdaSet(Bar, [<rec>])] as <rec>)` should
not have the inner lambda set's capture be filled in with itself.
Also, during reification of recursion pointers, we do not need to
traverse re-inserted lambda sets again, since they were just fixed-up.
Closes #5026
2023-02-13 17:14:04 -06:00
Ayaz Hafiz
2903ec4ac2
Remove obsolete comments
2023-02-13 10:54:05 -06:00
Folkert
eb48f01f63
Str.startsWith, str.endsWith and friends
2023-02-11 00:51:04 +01:00
Folkert
8df8c19ae2
dev backend: Box.unbox and List.get str
2023-02-10 20:19:50 +01:00
Folkert
4d1a6b17a8
dev backend: box a str
2023-02-10 20:19:50 +01:00
Folkert
587c5c18d7
mono refcount: use box instaed of non-nullable unwrapped
2023-02-10 20:19:49 +01:00
Folkert
8421824e31
WIP
2023-02-10 20:19:49 +01:00
Folkert
f32d31341a
add basic functionality of Str.split
2023-02-10 20:19:49 +01:00
Folkert de Vries
301bf0f367
Merge pull request #5009 from roc-lang/dev-box-box
...
implement Box.box and Box.unbox in the dev backend
2023-02-09 18:04:53 +01:00
Folkert
625b9c161a
implement wasm traits for roc_std::RocBox
2023-02-09 14:55:08 +01:00
Brendan Hansknecht
e654b8655f
Merge pull request #5003 from roc-lang/dev-allocate-with-refcount
...
use `allocate_with_refcount` in the dev backend
2023-02-08 20:08:47 +00:00