Commit graph

409 commits

Author SHA1 Message Date
Brendan Hansknecht
d9d7db79e4
add core quad_swap function 2024-07-28 20:33:43 -07:00
Brendan Hansknecht
8726c05339
add quad merge 2024-07-28 20:33:43 -07:00
Brendan Hansknecht
5bc97b58c8
add tail merge 2024-07-28 20:33:43 -07:00
Brendan Hansknecht
eb8c91775f
add partial backwards merge 2024-07-28 20:33:42 -07:00
Brendan Hansknecht
ea0063b992
add partial forward merge 2024-07-28 20:33:42 -07:00
Brendan Hansknecht
2455c1dd05
update todos 2024-07-28 20:33:42 -07:00
Brendan Hansknecht
21132a6740
add quad merge blocks 2024-07-28 20:33:42 -07:00
Brendan Hansknecht
7164d74ad1
add cross merge 2024-07-28 20:33:42 -07:00
Brendan Hansknecht
0f56b98bc6
reorder args to put destination first 2024-07-28 20:33:42 -07:00
Brendan Hansknecht
87b339d09a
add quad_swap_merge 2024-07-28 20:33:42 -07:00
Brendan Hansknecht
f631bae67a
add quad_reversal 2024-07-28 20:33:42 -07:00
Brendan Hansknecht
a7823c2164
add tailswap for 31 or less elements 2024-07-28 20:33:41 -07:00
Brendan Hansknecht
33e6dabeba
make function args multiline and visable 2024-07-28 20:33:41 -07:00
Brendan Hansknecht
5d2aaf7f9d
add parity merge 2024-07-28 20:33:41 -07:00
Brendan Hansknecht
f1a7772a12
improve branch generation with bools 2024-07-28 20:33:41 -07:00
Brendan Hansknecht
eacc3771eb
implement latest version of tiny_sort 2024-07-28 20:33:41 -07:00
Brendan Hansknecht
9702cae99d
improve branchless code gen 2024-07-28 20:33:41 -07:00
Brendan Hansknecht
1d534517b3
update buffer size 2024-07-28 20:33:41 -07:00
Brendan Hansknecht
539ab1daef
update comment on branchless generation 2024-07-28 20:33:41 -07:00
Brendan Hansknecht
8316e3f9cd
add twice_unguarded_insert 2024-07-28 20:33:41 -07:00
Brendan Hansknecht
edf797317f
cleanup calling the compare function 2024-07-28 20:33:40 -07:00
Brendan Hansknecht
c3f09d57b0
cleanup test cases a bit 2024-07-28 20:33:40 -07:00
Brendan Hansknecht
1c90e01385
add tiny_sort for 0 to 4 elements 2024-07-28 20:33:40 -07:00
Brendan Hansknecht
65ab733a63
add perf comment/concern 2024-07-28 20:33:40 -07:00
Brendan Hansknecht
8b58161c73
correct comment on branchless version 2024-07-28 20:33:40 -07:00
Brendan Hansknecht
52af8c588e
start adding the basis for quadsort for blitsort 2024-07-28 20:33:39 -07:00
Brendan Hansknecht
82764dc697
switch to passing the copy function into zig (implement llvm) 2024-07-21 19:04:57 -07:00
Brendan Hansknecht
d028aa3c74
try a different formulation. Maybe it will avoid lookup table 2024-07-21 18:17:37 -07:00
Brendan Hansknecht
f3cae9147c
generate all static size memcpy's 2024-07-21 17:03:07 -07:00
Brendan Hansknecht
fec875d045
have zig generate more efficient copy functions 2024-07-21 14:56:21 -07:00
Brendan Hansknecht
2772aa4912
fix slice refcounting mistakes that can modify data before a list 2024-07-17 22:19:40 -07:00
Brendan Hansknecht
2fd2c25c13
guard all inc and dec calls in zig by elements_refcounted to avoid noop loops 2024-07-13 10:39:58 -07:00
Brendan Hansknecht
9052fbd09c
fix List.sublist and add some more refcounting tests 2024-07-13 10:39:58 -07:00
Brendan Hansknecht
4e8f916204
correct pointer alignment on decref 2024-07-13 10:39:57 -07:00
Brendan Hansknecht
675e0693a4
clarify function name 2024-07-13 10:39:57 -07:00
Brendan Hansknecht
c734a27b59
move List.map* into roc 2024-07-13 10:39:56 -07:00
Brendan Hansknecht
94cb4fb8ff
remove inc functions from list.map*, the closure will inc in necessary 2024-07-13 10:39:56 -07:00
Brendan Hansknecht
266fe4bdc8
fix zig tests 2024-07-13 10:39:56 -07:00
Brendan Hansknecht
175255cf86
remove accidental .zig-cache 2024-07-13 10:39:54 -07:00
Brendan Hansknecht
6b761f6f81
fix zig builtin compilation and warnings 2024-07-13 10:39:53 -07:00
Brendan Hansknecht
48eb9c31a9
update list generated refcounting functions for dev and wasm 2024-07-13 10:39:53 -07:00
Brendan Hansknecht
0d0a4a8806
Update refcounting of list builtins to the new system. 2024-07-13 10:39:53 -07:00
Brendan Hansknecht
44cd1ee9c4
Avoid accessing unallocated bytes in list.incref 2024-07-13 10:39:52 -07:00
Brendan Hansknecht
a1d08702a4
Update roc_std List to handle size on the heap
This increased the number of failing tests for some reason (more segfaults).
That said, I think it is correct.

Probably just exposing errors from elsewher that haven't been addressed (maybe causing a double free).
2024-07-13 10:39:51 -07:00
Brendan Hansknecht
3c842196fa
Update LLVM to properly increment and decrement lists 2024-07-13 10:39:51 -07:00
Brendan Hansknecht
255cc31ad9
change zig bitcode refcounting to require whether or not an element is refcounted
This also requires zig bitcode to have access to the dec functions for elements.
This is needed so that zig will be able to free elements in lists.
2024-07-13 10:39:51 -07:00
shua
f7bec802c0
PR: rename to List.concatUtf8 2024-06-08 13:36:20 +02:00
shua
33e8a7a439
implement Str.concatUtf8 2024-06-07 19:05:52 +02:00
Fabian Schmalzried
546cb17fb9
cut high bits for to large fraction an exponent 2024-04-01 21:08:14 +02:00
Fabian Schmalzried
11998b9cc8
f32FromParts and f64FromParts for repl 2024-04-01 21:08:10 +02:00