Brendan Hansknecht
66c1d5f425
fix perf on x86
2025-01-01 21:19:01 -05:00
Sam Mohr
cbcbfd3265
Remove backpassing
2025-01-01 17:44:56 -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
b9832dd6d3
remove unnecessary pub
2025-01-01 14:19:41 -08:00
Brendan Hansknecht
0d800252f3
avoid storing refcount instead load it. That optimizes beter for some reason
2025-01-01 14:03:49 -08:00
Brendan Hansknecht
7e6b004f36
remove unnecessary function nesting
2025-01-01 13:56:54 -08: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
Brendan Hansknecht
c6d594a758
cleanup constant refcount checking
2025-01-01 12:28:16 -08:00
Brendan Hansknecht
e96affe992
correct quicksort refcount
2025-01-01 12:08:37 -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
Brendan Hansknecht
4b8693537a
Simplify Refcounting
...
Instead of -max_size to -1 for regular refcounts, use 1 to max_size.
0 still means constant refcount.
The highest bit is used to signify atomic refcounting required.
This does not turn on any sort of atomic refcounting.
2025-01-01 11:00:18 -08: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
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