Commit graph

437 commits

Author SHA1 Message Date
Sam Mohr
b56fbd38e1
Progress on updating entire compiler for snake_case 2025-01-05 03:48:03 -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
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
Brendan Hansknecht
4bad31f1ac
fixes from last merge of main 2024-12-11 16:47:19 -08:00
Brendan Hansknecht
0a573ca557
Merge remote-tracking branch 'origin/main' into upgrade-llvm-zig 2024-12-11 16:38:34 -08:00
Brendan Hansknecht
6e9f6843c4
Merge pull request #7319 from roc-lang/dec-mul
fix dec multiplication with overflow and saturation
2024-12-08 17:08:52 -08:00
Brendan Hansknecht
562032e2d8
fix dec multiplication with overflow and saturation
fixes #7276
2024-12-08 11:14:38 -08:00
Ayaz
793a95264d
Merge branch 'main' into wrapped 2024-12-08 13:54:43 -05:00
Mattthew Heath
3aeab753b4
tidying 2024-12-06 18:44:10 +00:00
Mattthew Heath
8c2cdeb332
aligns at 16 finally 2024-12-06 18:35:49 +00:00
Mattthew Heath
addd826511
Revert "aligns as 8"
This reverts commit 82a70c79b8.
2024-12-06 17:47:08 +00:00
Mattthew Heath
82a70c79b8
aligns as 8 2024-12-06 17:33:12 +00:00
Mattthew Heath
b33f1b0981
aligns as usize 2024-12-06 17:16:24 +00:00
shua
6f4e501069
impl add/sub/mul wrapped for u128/i128 2024-12-01 22:26:25 +01:00
shua
6dfa458e6c
Num.powInt: panic on overflow 2024-11-30 11:26:42 +01:00
Luke Boswell
2feb5d3c2e
Merge remote-tracking branch 'remote/main' into upgrade-llvm-zig 2024-11-29 08:58:47 +11:00
JRI98
61ca278e31
Fix division of zero by zero for Dec 2024-11-27 23:38:21 +00:00
Isaac Van Doren
d99c347998
rename Str.split 2024-11-15 21:12:23 -06:00
Luke Boswell
915097d792
Merge remote-tracking branch 'remote/main' into upgrade-llvm-zig 2024-10-08 18:21:24 +11:00
Aurélien Geron
c10b25cf6e
Fixes #7065 in List.dropAt, author: @bhansconnect 2024-09-19 10:43:05 +12:00
Luke Boswell
f3b5498951
upgrade sort.zig to zig 13 2024-07-31 14:15:04 +10:00
Luke Boswell
96db1bdce2
Merge remote-tracking branch 'remote/main' into upgrade-llvm-zig 2024-07-31 14:01:50 +10:00
Brendan Hansknecht
e69532d3b3
update tuning todo 2024-07-28 20:33:48 -07:00
Brendan Hansknecht
90d3bb6a08
wire indirect through everything as a comptime bool 2024-07-28 20:33:48 -07:00
Brendan Hansknecht
22896d309a
fix a another bug caught by fuzzing 2024-07-28 20:33:48 -07:00
Brendan Hansknecht
7747f06504
fix a few bugs caught by fuzzing 2024-07-28 20:33:48 -07:00
Brendan Hansknecht
400393a531
remove wrong assert 2024-07-28 20:33:48 -07:00
Brendan Hansknecht
285c43e288
make fuzzer better and add missing else 2024-07-28 20:33:48 -07:00
Brendan Hansknecht
109dba836e
clarify comments and variable names, fix small bug 2024-07-28 20:33:47 -07:00
Brendan Hansknecht
51a3ea655c
minor cleanup 2024-07-28 20:33:47 -07:00
Brendan Hansknecht
65d7f6ad56
update fuzzing to fluxsort 2024-07-28 20:33:47 -07:00
Brendan Hansknecht
eff37f6b6d
fix up flux_default_parition and add tests 2024-07-28 20:33:47 -07:00
Brendan Hansknecht
f9eeee0bde
add test for flux_reverse_partition 2024-07-28 20:33:47 -07:00
Brendan Hansknecht
6d7d9e4e57
add testing for pivot selection 2024-07-28 20:33:47 -07:00
Brendan Hansknecht
e722faaf58
add fluxsort 2024-07-28 20:33:47 -07:00
Brendan Hansknecht
c9a47ae886
add refcounting to fuzzing and fix first fuzzing bug 2024-07-28 20:33:47 -07:00
Brendan Hansknecht
15daad66fe
wire refcounting through sorting with comptime bool 2024-07-28 20:33:47 -07:00
Brendan Hansknecht
b1ff39fd6f
remove redundant variable 2024-07-28 20:33:46 -07:00
Brendan Hansknecht
8ace0dd91b
reenable direct sorting 2024-07-28 20:33:46 -07:00
Brendan Hansknecht
3c510caf30
git indirect sorting working 2024-07-28 20:33:46 -07:00
Brendan Hansknecht
0e092e0225
add beginining of indirect sorting 2024-07-28 20:33:46 -07:00
Brendan Hansknecht
b3d30e9282
correct assert 2024-07-28 20:33:46 -07:00
Brendan Hansknecht
383259e55f
add fuzzing script 2024-07-28 20:33:46 -07:00
Brendan Hansknecht
6ef44a22c8
add fuzzing instructions 2024-07-28 20:33:45 -07:00
Brendan Hansknecht
a0dd18b0fc
fix potential crash case 2024-07-28 20:33:45 -07:00
Brendan Hansknecht
0aaf9e2529
start converting to real fuzzer 2024-07-28 20:33:45 -07:00
Brendan Hansknecht
f4cbf9278b
cleanup fuzz slice 2024-07-28 20:33:45 -07:00
Brendan Hansknecht
7254122d30
turn a few while loops into for loops for clarity 2024-07-28 20:33:45 -07:00