Ayaz Hafiz
9df9353f02
Store lambda set variables as flex inference variables
...
This is actually correct - the rigid approach is not. Lambda set
variables should be inferred in-scope.
2025-01-01 23:39:37 -06:00
Ayaz Hafiz
c3d77b8841
Unify let-introduction in a single path
...
Remove branches on determining how let-bindings are introduced to the
scope. This is maybe a little more inefficient, but I think it is a huge
simplification.
One additional change this required was changing how fx suffixes are
checked. The current implementation would add additional constraints for
patterns in let bindings conditionally. However, this is unnecessary. I
believe it is sufficient to check the fx suffix by running the checks on
all introduced symbols after the type is well known (i.e. the body is
checked).
2025-01-01 23:39:37 -06:00
Ayaz Hafiz
280d479a24
Store rigid vars with location during constraining
2025-01-01 23:39:37 -06:00
Ayaz Hafiz
38e8e6c59e
Bugfix association of inferred-tag-extension variables
...
These are inferred vars, not rigids.
2025-01-01 23:39:37 -06:00
Brendan Hansknecht
7927de7e41
Merge pull request #7449 from roc-lang/reserve-smarter
...
if the user reserves a specific number of elements, trust them
2025-01-01 20:51:24 -08:00
Sam Mohr
b8040bf6a2
Merge pull request #7446 from joshuawarner32/fuzzing-bugs-8
...
Fix yet more fuzzing bugs!
2025-01-01 18:29:42 -05:00
Brendan Hansknecht
78530141a1
fix tests
2025-01-01 13:35:08 -08:00
Brendan Hansknecht
26bd2d437e
if the user reserves a specific number of elements, trust them
2025-01-01 13:00:34 -08:00
Joshua Warner
f721569421
Force newline for multi-line closures where the inner element is not outdentable
2025-01-01 14:59:21 -05:00
Joshua Warner
14d6f7c92a
Fix spaces in the middle of where branches
2025-01-01 14:59:21 -05:00
Joshua Warner
6fcc367af4
Fix where precedence vs apply
2025-01-01 14:59:20 -05:00
Joshua Warner
ea7d856e16
fixup type ann
2025-01-01 14:59:20 -05:00
Joshua Warner
7d91b01c5a
Fix where clauses in tuple types with trailing commas
2025-01-01 14:59:11 -05:00
Joshua Warner
9ff1b630a8
Fix accidental NoProgress return in if, to avoid exponential parsing issue
2025-01-01 12:40:54 -05:00
Joshua Warner
37e7caa1aa
Parenthesize closures in unary ops and pre-emptively disallow multi-backpassing in such closures, to avoid formatter trouble later
2025-01-01 12:38:28 -05:00
Brendan Hansknecht
8001de5468
Merge pull request #7444 from roc-lang/better-atomic
...
Improve roc atomic refcounting by using first bit as threadlocal
2025-01-01 09:31:54 -08:00
Joshua Warner
14b18f4213
Properly implement lifting for if and when
2025-01-01 12:04:06 -05:00
Joshua Warner
2918e26b38
Fix unary op parens in the case of closure
2025-01-01 11:47:46 -05:00
Joshua Warner
bf3fae4827
Fix disappearing spaces around implements keyword
2025-01-01 11:41:17 -05:00
Joshua Warner
2f420d8e4e
Ensure we indent before writing implements keyword
2025-01-01 10:47:20 -05:00
Joshua Warner
d9ad34592c
Fix indentation of single-line ifs
2025-01-01 10:47:16 -05:00
Joshua Warner
7fd97dec72
Implement lifting for abilities
2025-01-01 10:03:08 -05:00
Joshua Warner
4da6bb0be6
Fix weird indentation issue with indented else
2025-01-01 10:03:05 -05:00
Luke Boswell
ecabb8c491
Merge pull request #7445 from joshuawarner32/fuzzing-bugs-7
...
Fix formatting bug with multline function type alias
2025-01-01 20:04:17 +11:00
Brendan Hansknecht
8ad6c47211
also update is_unique for atomic isize
2024-12-31 20:52:04 -08:00
Brendan Hansknecht
f901946455
Improve roc atomic refcounting by using first bit to indicate threadlocal
...
By avoiding atomic refcounting for any threadlocal variable, this greatly improves performance.
Leads to the performance of threadlocal refcounting being only ~4% behind non-atomic refcounting.
The old atomic refcounting could be as far as ~50% behind (though normally 10-20%).
This does not enable anything atomic related.
If we enable all forms of data loading (List.get, Box.unbox, loading recursive tag) to propagate the atomic flag,
this should be a reasonable implementation for roc by default.
With propagation, a platform would just set a list to atomic. On load, individual elements would also get set to atomic.
We also should probably revert back to threadlocal if an atomic refcount drops to 1.
2024-12-31 20:52:03 -08:00
Joshua Warner
835c246c56
Fix formatting bug with multline function type alias
2024-12-31 19:52:23 -05:00
Jakub Konka
3a3556a74c
compiler: bump object to 0.36.7
...
Update all callsites using `write::Relocation` to the new API.
2024-12-31 16:17:38 +01:00
Jakub Konka
4764b23282
cli: add --verbose flag to CMD_BUILD
2024-12-31 11:57:59 +01:00
Sam Mohr
0e2f16887a
Merge branch 'main' into fuzzing-bugs-6
2024-12-30 15:21:31 -05:00
Jakub Konka
94e9528c51
compiler: suppress Apple ld linker warnings
2024-12-30 16:29:05 +01:00
Jakub Konka
b0cd51f089
Revert "Revert "Merge pull request #7424 from kubkon/macho-surgery""
2024-12-30 16:26:42 +01:00
Anton-4
2dec72a797
Revert "Merge pull request #7424 from kubkon/macho-surgery"
...
This reverts commit 723e35f11e
, reversing
changes made to 0ce43ffd1e
.
2024-12-30 14:32:56 +01:00
Luke Boswell
eda4db0589
Merge pull request #7422 from joshuawarner32/fix-can-issue-1
...
Fix can panic with unbound type variables
2024-12-30 14:11:46 +11:00
Luke Boswell
191efdfd1d
Merge pull request #7431 from joshuawarner32/refactor-nodes
...
Refactor annotation formatting to use Node
2024-12-30 11:51:17 +11:00
Luke Boswell
44c630037e
clippy
2024-12-30 10:34:54 +11:00
Luke Boswell
723e35f11e
Merge pull request #7424 from kubkon/macho-surgery
...
linker: refactor surgical Mach-O linker code
2024-12-29 15:12:11 +11:00
Joshua Warner
f8f762a0ff
Fix clippy
2024-12-28 22:35:10 -05:00
Joshua Warner
b87635e34b
Add test that failed on main
2024-12-28 22:31:34 -05:00
Joshua Warner
5e08515ed5
Remove dbg
2024-12-28 22:31:34 -05:00
Joshua Warner
72da294d55
Move apply to NodeInfo
2024-12-28 22:31:33 -05:00
Joshua Warner
99efcee275
Fix outdenting
2024-12-28 22:31:33 -05:00
Joshua Warner
c9ba958101
Remove unused code
2024-12-28 22:31:32 -05:00
Joshua Warner
07101f10a0
Simplifying fmt_ty_ann
2024-12-28 22:31:32 -05:00
Joshua Warner
4d438d8693
Move TypeAnnotation::Where to to_node
2024-12-28 22:31:31 -05:00
Joshua Warner
24ebcf68d1
wip
2024-12-28 22:31:31 -05:00
Joshua Warner
7a7f8340b9
Refactor: Convert TypeAnnotation::Apply to to_node
2024-12-28 22:31:30 -05:00
Joshua Warner
9ae5dc1bbc
Refactor: Convert TypeAnnotation::TagUnion to to_node (already working)
2024-12-28 22:31:30 -05:00
Joshua Warner
95d8fd471b
Refactor: Convert TypeAnnotation::Tuple to to_node, which required changing precedence information to flow up instead of down
2024-12-28 22:31:28 -05:00
Joshua Warner
35fa82cbef
Refactor: Convert TypeAnnotation::Record to to_node
2024-12-28 22:31:28 -05:00