Commit graph

10223 commits

Author SHA1 Message Date
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
Ian McLerran
b4c20fca39
roc format 2024-12-31 12:13:23 -06:00
Jakub Konka
19dc28aa34
linker/elf: update relocation handling to new object API 2024-12-31 16:57:10 +01:00
Ian McLerran
b32f12015d
Merge branch 'main' into issue-7425 2024-12-31 07:45:24 -08:00
Jakub Konka
e4fc3184a0
linker/macho: update relocation handling to new object API 2024-12-31 16:43:53 +01: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
d063d18795
cli: check for FLAG_VERBOSE in each command rather than in build(..) 2024-12-31 11:58:17 +01:00
Jakub Konka
8272f31b42
linker/macho: do not print any todos messages unless --verbose 2024-12-31 11:58:12 +01:00
Jakub Konka
dfbd0f0c66
linker/macho: include Mach-O specific reloc scanning for libc symbols 2024-12-31 11:58:08 +01:00
Jakub Konka
c4c9869a15
linker/macho: include read-only string sections when doing surgery 2024-12-31 11:58:03 +01:00
Jakub Konka
4764b23282
cli: add --verbose flag to CMD_BUILD 2024-12-31 11:57:59 +01:00
Jakub Konka
3b3f79a5d2
linker: pretty-print Mach-O specific reloc types
Signed-off-by: Jakub Konka <kubkon@jakubkonka.com>
2024-12-31 11:57:50 +01:00
Ian McLerran
13a4d8a6e3
Add List.walk! example to documentation 2024-12-30 18:23:27 -06:00
Ian McLerran
3fc5c638a1
Expose walk! 2024-12-30 18:23:25 -06:00
Ian McLerran
53915bc6e1
Add List.walk! function 2024-12-30 18:23:23 -06:00
Jared Ramirez
246d7a355e
Remove extra line 2024-12-30 16:08:21 -08:00
Jared Ramirez
2b419221cf
Merge branch 'main' into jared/improve-module-error 2024-12-30 16:03:22 -08:00
Jared Ramirez
c28d6b9411
Make ListStart branch less brittle; Add ListEnd branch 2024-12-30 16:02:15 -08: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
2624def4cd linker: if support is WIP, use surgical only if explicit flag 2024-12-30 16:27:58 +01:00
Jakub Konka
a4165b3642 linker: introduce SupportLevel to designate completeness
If a linker is `SupportLevel::Full` it can safely be used as a
substitute for the legacy linker. If on the other hand, it's
`SupportLevel::None` then only legacy linker is a viable option.
The third new option is `SupportLevel::Wip` which will enable
surgical linker warning the user that it is a work-in-progress,
your mileage may vary, a lot.
2024-12-30 16:27:50 +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