Commit Graph

2726 Commits

Author SHA1 Message Date
dzaima
633bbc8112 don't need def_rt & def_glyphs either actually
+ clean up some gc_add-ing
2023-11-26 14:45:54 +02:00
dzaima
b28c1a8f01 get rid of global def_comp & def_compOpts, refcount fixes 2023-11-26 13:56:26 +02:00
dzaima
7dd398433b fix native compiler 2023-11-26 13:46:07 +02:00
dzaima
71ade3e9c6 add missed decrements, expand test 2023-11-26 01:27:36 +02:00
dzaima
3f62a51305 system value inheriting 2023-11-26 01:21:11 +02:00
dzaima
a93ea4dbaf base •ReBQN and •BQN onto outer re 2023-11-25 23:39:58 +02:00
dzaima
5e455372f0 more renaming & shuffling of things 2023-11-25 23:21:32 +02:00
dzaima
e25281518c move more things into re 2023-11-25 23:21:32 +02:00
dzaima
7c28c64178 change •BQN and •ReBQN to dynamically-computed functions 2023-11-25 23:21:32 +02:00
dzaima
7214017bb2 move •BQN and •ReBQN to computed sysvals 2023-11-25 23:21:32 +02:00
dzaima
7e0204083e name re parts 2023-11-25 23:21:32 +02:00
dzaima
7fb8ecfa86 rename things 2023-11-25 23:21:32 +02:00
dzaima
cd6da03fd9 always supply a valid re object 2023-11-25 23:21:32 +02:00
dzaima
7357820f19 start of compiler state refactoring 2023-11-25 23:21:32 +02:00
dzaima
dcf26f88d7 fix segfault during GC from compileAll's cpyHArr(objs) 2023-11-25 21:37:48 +02:00
dzaima
5458739cf2 don't have a ⌾ character in m_c8vec_0
name shouldn't ever be visible either, so shortening it while at it
2023-11-24 22:21:23 +02:00
dzaima
db0bb1378c rearrange Body fields to pack better 2023-11-24 16:00:11 +02:00
dzaima
1d8479b589 apparently nothing uses the bc field in Comp anymore 2023-11-24 15:30:47 +02:00
dzaima
eb62b48e4e don't inline wyhash make_secret
+ remove wyhashmap, we don't need it, it breaks on collisions
2023-11-24 15:24:28 +02:00
dzaima
f02c92ee6a fix 3 ∨ "abc" 2023-11-23 18:13:51 +02:00
dzaima
8814a7e66e use 2x unroll for i16→u1 copying to utilize two-vector homMask 2023-11-21 02:45:33 +02:00
dzaima
773429a959 recursive base-case of homMask 2023-11-21 02:40:50 +02:00
dzaima
08fa7d3d30 specialize x86-64 homMask of 2x[n]i16, use for comparison 2023-11-21 02:29:03 +02:00
dzaima
3ebfb24b0f unroll copying to bitarr
+ clean up comparison code as bulk homMask is supported everywhere
2023-11-21 00:18:18 +02:00
dzaima
fe985722c2 move multi-vector homMask to allow NEON to override it 2023-11-21 00:18:18 +02:00
dzaima
d1f66dc75b check created bitarr size for overflow 2023-11-18 19:56:39 +02:00
dzaima
56cbe4aa03 mulHi → mulh for high half of element result
to not be confused with mulwHi or zipHi where it means providing the high batch of elements
2023-11-18 00:43:20 +02:00
dzaima
c8cdaf0216 Clear assumption about assignment result in const-folder 2023-11-17 17:44:32 +02:00
dzaima
2b56a300bc probably make ⊔ able to handle output subarray lengths over 2^32
still no support for (≠𝕨)≥2⋆32 though
2023-11-17 00:40:26 +02:00
dzaima
46e8ed1a3f fix SSE4.2 usz=64 build 2023-11-13 23:28:30 +02:00
dzaima
59208af520 remove old group path
effectively only got used for f64arr 𝕨; could transform to doing just that, but its inefficient type of the group arrays make it bad for that too
2023-11-13 23:16:02 +02:00
dzaima
f037754880 more specific empty array types 2023-11-13 23:16:02 +02:00
dzaima
8c7a3be036 remove unused includes 2023-11-13 21:48:01 +02:00
dzaima
b4e53abbe4 some comments 2023-11-13 16:38:02 +02:00
Marshall Lochbaum
c94d51dcaf Fixes for 64-bit usz 2023-11-13 08:24:51 -05:00
dzaima
4fb6ce602f add a require{} for CRC32 2023-11-13 12:56:48 +02:00
dzaima
5910c93fcb silence some warnings & errors in various build types 2023-11-13 12:54:49 +02:00
Marshall Lochbaum
09572de49a Credible resizing policy for dyadic search hashes 2023-11-12 22:07:29 -05:00
Marshall Lochbaum
ee7a11a279 Unify self-search hash thresholds across primitives; doesn't seem to hurt performance 2023-11-12 14:35:25 -05:00
Marshall Lochbaum
5957487b70 Faster iteration over non-empty entries for hash table resizing 2023-11-11 20:24:20 -05:00
Marshall Lochbaum
b404c7c1d1 Eliminate a loop when resizing ordered hash 2023-11-11 20:24:20 -05:00
Marshall Lochbaum
3a50cda5d3 Specialize Index-of tables on result type 2023-11-10 17:12:37 -05:00
Marshall Lochbaum
b782693d15 Insert maxh to a special end bucket for ⊒ and reverse ⊐ (fixes ⊒ maxh bugs) 2023-11-10 12:04:55 -05:00
Marshall Lochbaum
e1b0c53c92 Fix various sentinel bugs 2023-11-09 20:24:46 -05:00
Marshall Lochbaum
7b79dfc94e Update search implementation comments 2023-11-09 15:20:50 -05:00
Marshall Lochbaum
2c625127d5 Reverse hashed Index-of 2023-11-09 10:39:07 -05:00
Marshall Lochbaum
f1485ca98c Turn hash function definition structure inside-out 2023-11-09 09:19:47 -05:00
Marshall Lochbaum
aded9d4782 Shortcutting for reverse Member-of hash 2023-11-08 17:34:33 -05:00
Marshall Lochbaum
8e9c04523a Fix overflow bug in hashed Member-of max_off calculation 2023-11-08 10:28:14 -05:00
Marshall Lochbaum
c75fdbc277 Reverse Member-of hash lookup 2023-11-07 22:07:17 -05:00
Marshall Lochbaum
8a2190b092 64-bit hashes with float normalization 2023-11-07 14:54:16 -05:00
Marshall Lochbaum
a4290b1f5c Shortcut for hash-table dyadic ⊒ 2023-11-07 09:59:53 -05:00
Marshall Lochbaum
4bf4149d40 Use hash deletion for forward ⊒ as well as reverse 2023-11-07 09:41:50 -05:00
Marshall Lochbaum
289658a59c Delete hash entry as soon as it's cleared, not on next access 2023-11-07 07:53:45 -05:00
Marshall Lochbaum
30331eb800 Fix write off end for reverse ⊒ 2023-11-07 07:15:17 -05:00
Marshall Lochbaum
c042fe6ca3 Vector binary search for integer Index-of 2023-11-06 15:43:26 -05:00
Marshall Lochbaum
52bca6a55c Multiple IndexOfOne to search for a few values in a large array 2023-11-06 12:16:59 -05:00
Marshall Lochbaum
d154ece51a Vector binary search for 16-bit Member-of in addition to 32 (8 is too slow) 2023-11-06 09:37:58 -05:00
Marshall Lochbaum
11245d385e Vector binary search Member-of 2023-11-05 22:10:39 -05:00
Marshall Lochbaum
75aed91f32 And max offset of 8 by testing two vectors 2023-11-05 15:46:26 -05:00
Marshall Lochbaum
ec31543604 Vector Member-of search up to an offset of 4 2023-11-05 15:45:07 -05:00
Marshall Lochbaum
af81da50e4 Don't need to initialize indices for hashed Index-of 2023-11-04 17:52:22 -04:00
Marshall Lochbaum
1286ee32ec Reverse lookup for hashed Progressive Index-of 2023-11-03 21:58:17 -04:00
Marshall Lochbaum
84f3205547 Use a larger initial hash table if non-hashed argument is large 2023-11-03 21:50:38 -04:00
Marshall Lochbaum
a9f33c1454 Refactoring 2023-11-03 16:38:08 -04:00
Marshall Lochbaum
8aa6c07199 And hashed 32-bit Progressive Index-of 2023-11-02 20:29:54 -04:00
Marshall Lochbaum
64f2a10fbb Return hash_resize{} from hash_alloc{} 2023-11-02 13:21:11 -04:00
Marshall Lochbaum
d54621b5dd Extend hash table to 32-bit Index-of 2023-11-02 12:00:32 -04:00
Marshall Lochbaum
ed03720441 Robin Hood hash table for 32-bit membership 2023-11-01 15:46:45 -04:00
Marshall Lochbaum
cb8be206be Move hash allocation to a generator 2023-10-31 22:09:11 -04:00
Marshall Lochbaum
ee856a4880 Move hash resizing to a generator, and other refactoring 2023-10-31 22:09:11 -04:00
Marshall Lochbaum
0391cf4ca3 Fast number-character (no matches) searches 2023-10-31 22:09:11 -04:00
Marshall Lochbaum
0fb845d336 Move self-search hash table code to Singeli 2023-10-31 22:09:11 -04:00
dzaima
ad574d2269 refactor & document #define-s, always-available ')gc log' and ')mem log' 2023-10-31 03:16:48 +02:00
dzaima
08c4627686 fix dense case of •rand.Subset not updating seed 2023-10-30 17:03:38 +02:00
dzaima
a4befbd8bf FFI: check for 𝕨 being present when required 2023-10-29 01:01:48 +03:00
dzaima
7ffd744375 reorganize file writing
fixes some unclosed file descriptors & files being made on an invalid argument
2023-10-28 19:27:00 +03:00
dzaima
b6594008cd fix non-Singeli builds 2023-10-26 17:32:12 +03:00
dzaima
3775cd0025 typo 2023-10-22 15:18:39 +03:00
dzaima
577442449d inverses for •math.Atan2, •math error tests 2023-10-22 14:33:51 +03:00
dzaima
1ec48bb761 cleanup
makefile doesn't care about emcc anymore
2023-10-21 14:46:41 +03:00
dzaima
4322303031 Fix 2‿2↕3‿3‿3⥊↕27 2023-10-12 12:43:08 +03:00
dzaima
9c68e67544 fix compilation error when targeting AVX1-only 2023-10-07 13:22:27 +03:00
dzaima
e7b87f669f fix arr÷negativeZero, set proper float expected values 2023-09-21 19:03:30 +03:00
dzaima
f6a9c30889 •internal.HeapStats 2023-09-18 23:38:06 +03:00
dzaima
df0ccdf2d7 add error message on missing posix_spawn support in make for-build 2023-09-17 13:39:22 +03:00
dzaima
299168fb16 fast numarr÷scalarPowOf2 2023-09-12 23:57:50 +03:00
dzaima
5efd90cc91 rename elWidthLogBits to something less long & add byte variant 2023-09-12 19:58:56 +03:00
Marshall Lochbaum
6330d61a88 Some rearrangement and minor simplifications 2023-09-12 10:24:00 -04:00
Marshall Lochbaum
72da47d48a Use standard for loops 2023-09-12 09:12:57 -04:00
Marshall Lochbaum
40ed55bc43 Use built-in NEON include for basic vector instructions 2023-09-11 21:17:38 -04:00
Marshall Lochbaum
7b9f7ba331 Move x86 vector and NEON includes into base.singeli 2023-09-11 20:25:25 -04:00
Marshall Lochbaum
082f800b3e Combine x86 vector extensions and use iintrinsic/basic when possible 2023-09-11 20:11:16 -04:00
Marshall Lochbaum
c85ca66dae Unify Scan and Bins min-scan code 2023-08-26 09:27:59 -04:00
Marshall Lochbaum
0a30fb309d SSE2 min- and max-scans 2023-08-26 07:26:33 -04:00
Marshall Lochbaum
a040a14744 Unify power-of-two shift pattern for scans 2023-08-26 07:26:33 -04:00
Marshall Lochbaum
d16ba6c3b1 Move xor-scan to scan.singeli; remove neq.singeli 2023-08-26 07:26:33 -04:00
Marshall Lochbaum
e261e80168 SSE min/max and pluswrap scans 2023-08-26 07:26:33 -04:00
Marshall Lochbaum
f9a4a5b68c Remove duplicated SSE4.1 min/max bindings 2023-08-26 07:26:33 -04:00
Marshall Lochbaum
00c454d37a Add generic-architecture versions of Singeli scans 2023-08-26 07:26:33 -04:00
dzaima
ec14d45c50 round up pointers in self-search allocs 2023-08-25 04:03:25 +03:00
dzaima
81a291f860 round up some pointers 2023-08-25 03:47:05 +03:00
dzaima
f0d6a65240 move unaligned load/store helpers to stuff.h
also replace a NULL with "" to make iBuf+0 not be UB
2023-08-25 03:24:42 +03:00
dzaima
8975f6af00 fast 1|x 2023-08-24 21:32:35 +03:00
dzaima
3e6e158696 native 𝕨⍷𝕩 when 1≥=𝕨 and 2≥=𝕩 2023-08-24 19:46:57 +03:00
dzaima
c5b98ea7a1 apparently LLVM actually uses pointer type to determine alignment 2023-08-20 22:57:30 +03:00
dzaima
6eaa9238bc separate BSDs 2023-08-20 19:33:11 +03:00
dzaima
34d4fd6433 more explicit loadu/storeu 2023-08-20 00:18:09 +03:00
dzaima
1bb686a9ff fix UB in grade.h 2023-08-19 21:48:11 +03:00
dzaima
2732becf50 global STR0/STR1 definitions 2023-08-19 20:12:53 +03:00
dzaima
721dccf636 fix FFI integer overflow check on ARM
clang optimizes a raw f!=(u8)f to like f!=(u32)f on ARM which changes behavior (we're technically using UB here, but there's no reasonable alternative); use q_ functions that know how to work around this
2023-08-19 20:12:53 +03:00
dzaima
25c2629842 •platform
incl. adding support for REPL completion of •a.b.c (i.e. >1 '.')
2023-08-19 18:25:52 +03:00
dzaima
4d19654e3b fix store types 2023-08-16 19:01:04 +03:00
dzaima
acca5c0c7c fix completely wrong dyTable lookup 2023-08-15 14:45:27 +03:00
dzaima
df56f6b2fc fix 𝕨•FLines𝕩 with invalid elements in 𝕩 2023-08-13 03:51:06 +03:00
Marshall Lochbaum
2dd3a0fdfa Boolean compress implementation comments 2023-08-07 15:33:37 -04:00
Marshall Lochbaum
4e9745688b Use generic boolean Compress as the sparse case with Singeli 2023-08-07 13:47:58 -04:00
Marshall Lochbaum
a7908a10b0 Faster, sparse, non-Singeli boolean Compress 2023-08-07 12:26:40 -04:00
Marshall Lochbaum
bbad98bce1 In AVX2 boolean Compress, jump from 8 to 32 with 32-bit shifts 2023-08-07 11:41:53 -04:00
Marshall Lochbaum
120df26814 mullo works for both signed and unsigned 2023-08-07 11:23:38 -04:00
Marshall Lochbaum
d039562efe Fix disabled BMI2 boolean Compress; cleaner SIMD width system 2023-08-06 08:09:08 -04:00
Marshall Lochbaum
9046dd6b53 Handle boolean Compress SIMD tail with conditional write, not scalar loop 2023-08-06 08:03:14 -04:00
Marshall Lochbaum
07ace41d6c Vectorized version of the clmul boolean Compress 2023-08-06 07:36:05 -04:00
Marshall Lochbaum
371aa6f2ef AVX2 boolean Compress using variable shifts 2023-08-05 21:50:22 -04:00
Marshall Lochbaum
66c0fe041c Get pext and popcount together, since generic pext emulation includes popc 2023-08-05 20:38:54 -04:00
Marshall Lochbaum
056b18edd2 Move pext-based compress loop from C to Singeli 2023-08-05 20:38:54 -04:00
Marshall Lochbaum
7767cf933f Remove boolean Compress overallocation: not needed with w masked off 2023-08-05 20:38:54 -04:00
Marshall Lochbaum
e09d385df5 Simplify pairwise pext implementation; drop 12-bit as no longer competitive 2023-08-05 20:38:54 -04:00
dzaima
7fe1ab930a FFI: permit 𝕨≡⟨⟩, require 𝕩≡⟨⟩ if no arguments are on 𝕩, check list rank 2023-08-05 16:13:07 +03:00
dzaima
682d5986d8 slightly more accurate trailing newline removal for •GetLine 2023-08-04 21:09:45 +03:00
dzaima
a1e4f9bd6f remove multiple trailing newline characters from •GetLine
Windows adds \r\n, and without this the \r stays
2023-08-04 20:52:07 +03:00
dzaima
8e35241e47 Better error messages for unknown namespace key 2023-08-03 22:54:38 +03:00
dzaima
0b6c5189d8 move arithdDispatch declarations to a header
+ rename some things to make more sense
2023-07-31 20:26:05 +03:00
dzaima
627a7e0771 more FFI error checking, plus bugfixes 2023-07-28 15:25:06 +03:00
dzaima
1bc96f5557 extract u8/u16/u32/f32 reading functions 2023-07-28 14:02:22 +03:00
dzaima
1454ca3a1a expand & test FFI error checking 2023-07-28 13:59:25 +03:00
dzaima
79f72d84b8 extract unsigned & f32 copying functions in ffi.c 2023-07-28 13:41:03 +03:00
dzaima
0d7de8b190 define ux in Singeli, replacing Size; return ux from popc/clz/ctz 2023-07-26 17:42:23 +03:00
dzaima
f7a0eb94a3 don't use AVX2 buffer copying for a 16-byte buffer 2023-07-22 21:34:20 +03:00
dzaima
1451395ef5 don't do fancy char stuff for unchecked arith 2023-07-22 21:13:49 +03:00
dzaima
959614c785 use partial application 2023-07-22 18:19:31 +03:00
dzaima
033f3de6b9 remove unnecessary lambda wrappers
also use fmtnat
2023-07-22 18:15:07 +03:00
dzaima
446b2d09ed Singeli renames & docs 2023-07-22 17:37:20 +03:00
dzaima
6e96600878 move unaligned load & store to base.singeli 2023-07-20 00:21:09 +03:00
dzaima
0486adccb5 fix signedness of abs{x} 2023-07-20 00:19:54 +03:00
dzaima
2243fa76c1 better base case list 2023-07-19 21:56:35 +03:00
dzaima
eb46ec8d9c rename __mulhi & __mul32 2023-07-19 21:54:12 +03:00
dzaima
700d69e7dd unpack → zip & mzip; enable slash.singeli SIMD parts for NEON 2023-07-19 21:39:22 +03:00
dzaima
ba2e859dce use existing unpackLo in neq.singeli 2023-07-19 20:56:08 +03:00
dzaima
19b35e1074 fix size comment 2023-07-19 20:11:14 +03:00
dzaima
9945711b5e AVX2 i32 & i64 slash{} via widening load 2023-07-19 20:00:46 +03:00
dzaima
ff9bb258c2 more comments in slash.singeli 2023-07-19 18:50:01 +03:00
dzaima
48111d4873 extract iota{} for AVX-512 2023-07-19 17:24:20 +03:00
dzaima
a0797318ca use has_simd & arch_defvw 2023-07-19 17:03:41 +03:00
dzaima
03c21112c2 make NEON builds work 2023-07-19 16:58:35 +03:00
dzaima
6930bc34b6 further update slash.c implementation comments 2023-07-19 16:51:24 +03:00
Marshall Lochbaum
77188b8e73 Add clmul.singeli 2023-07-19 09:38:37 -04:00
Marshall Lochbaum
301a23fb1f Update where/compress implementation comments 2023-07-19 09:35:40 -04:00
Marshall Lochbaum
c4364aefa6 SSSE3 4-byte compress with half-width table 2023-07-19 08:15:53 -04:00
Marshall Lochbaum
ba837ba01b Remove table-less where/compress methods, as they're not competitive 2023-07-19 07:22:55 -04:00
Marshall Lochbaum
64d65ae837 Never use generic dense compress methods if use_table: where is faster 2023-07-18 21:35:12 -04:00
Marshall Lochbaum
b0e0f210c6 2- and 4-byte Where with unpack and table 2023-07-18 21:10:39 -04:00
Marshall Lochbaum
93e1262864 Avoid using popcount primitive in Singeli if POPCNT isn't present 2023-07-18 16:52:08 -04:00
Marshall Lochbaum
6df283c379 Always increment by full popcount instead of two halves when splitting byte 2023-07-17 17:52:59 -04:00
Marshall Lochbaum
2f6a8e55a1 Always use vectors for for_special_buffered buffer copy 2023-07-17 16:52:10 -04:00
Marshall Lochbaum
8add95b7ab Remove BMI2 where/compress methods 2023-07-17 16:20:30 -04:00
Marshall Lochbaum
f005169518 1- and 2-byte compress with table and SSSE3 2023-07-17 16:19:05 -04:00
Marshall Lochbaum
68978f7e10 Table-based 1- and 2-byte Where 2023-07-17 16:05:06 -04:00
Marshall Lochbaum
fc187afdf2 Extend 1-byte SSE2 Where to 2-byte and 4-byte with unpacked writes 2023-07-17 11:28:04 -04:00
Marshall Lochbaum
8b297ae2dc Dedicated 32-bit Singeli where, taking index offset 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
3bd8d1de68 Extend all Singeli Compress methods to do Where 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
4415869496 Generic Singeli where implementation 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
c484f8ee8d Avoid UB from shifting by 64 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
da5f1faa07 Merge BMI2 slash{} cases, with some simplifications 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
b244ba98f5 Unify slash1{} and slash2{} 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
f5121f6806 Thresholds for compress methods (versus sparse) defined in Singeli 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
824bb04b4d Plain SSE2 1-byte compress 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
f852d12a5c Generic Singeli compress implementation 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
f36426031a Slightly faster table-less compress method 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
84a928863b AVX-512 compress implementations 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
80e93c41c9 Use new undefined{type,len} instead of alloca 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
13b3bcd74b Table-less AVX2 1-byte compress 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
d956ba921b Non-overwriting 1-byte and 2-byte compress/where 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
8f4b1966cb Non-overwriting AVX2 4-byte and 8-byte compress, using a buffer 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
9010f648bb Unify permutevar-based compress implementations 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
0921fc2c62 AVX2 compress implementations using permutevar and lookup tables 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
03d8919307 Add has='pclmul' option and avoid using broadcast 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
871a81ca5f BMI2 pext not-emulation in Singeli 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
1314859a80 clmul-based pext emulation 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
f315a6d3ea Emulate pext instruction in Singeli 2023-07-16 21:56:33 -04:00
dzaima
3946f2cc87 use new Singeli builtins 2023-07-17 02:23:50 +03:00
dzaima
6305a3bd50 change error message of failed path_abs 2023-07-16 16:31:10 +03:00
dzaima
cf6a290e5c •file.RealPath 2023-07-16 01:42:30 +03:00
dzaima
d1e511bebd add padding before allocations & document it 2023-07-13 16:20:37 +03:00
dzaima
9cfc3f3f25 various changes on filling arrays with the same element 2023-07-12 16:23:03 +03:00
vylsaz
e4542f70a6 Implement •term.CharN and •term.RawMode for Windows 2023-07-11 03:15:48 +00:00
vylsaz
ce255c4a53 Enable •file.CreateDir on Windows 2023-07-11 01:11:28 +00:00
dzaima
0601a86f56 don't special-case 2/𝕩 on NEON 2023-07-11 02:40:05 +03:00
dzaima
56a1fc3637 use float getting functions for getting floats 2023-07-10 23:48:07 +03:00
dzaima
9b0299d1a5 fix (<1)≠`5⥊1 2023-07-10 23:25:28 +03:00
dzaima
53266ffd88 fix (<1)⌈`↕10 2023-07-10 23:21:36 +03:00
dzaima
158a3beb2e partially clear object on free in debug mode
catch some more of what valgrind would relatively cheaply
2023-07-10 22:55:19 +03:00
dzaima
acbfcd7302 fix another weird case of 𝕨∾𝕩 2023-07-10 22:55:00 +03:00
dzaima
24fea51bdd fix unshare of fillslice 2023-07-10 22:55:00 +03:00
dzaima
cb9f4dbbc1 remove debug include
:|
2023-07-10 19:19:55 +03:00
dzaima
cd7807fba0 NEON constrep 2023-07-10 17:11:15 +03:00
dzaima
1cea42cad3 use getter over 𝕨 for generic 𝕨⍋𝕩
doesn't change perf, but leads to fast amortized long⍋short
2023-07-10 16:50:02 +03:00
dzaima
bf89d2d561 a little size reduction on write_indices 2023-07-10 16:29:21 +03:00
Marshall Lochbaum
f6d1f9fcab Move utilities from bins to appropriate files 2023-07-10 07:14:44 -04:00
Marshall Lochbaum
492e97e2ca Right argument narrowing for numeric Bins 2023-07-10 07:14:44 -04:00
Marshall Lochbaum
9511598aa3 Fast Bins when either argument is boolean 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
1fa00c9c6f Update bins implementation comments 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
46c6d47055 Permutevar instead of shuffle for 4-byte vector binary search 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
fc57e0012d Shuffle-based 4-byte vector binary search 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
af5ba0a2d2 Switch from Eytzinger to linear search on extra lanes 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
64ae8f9afd Slightly better blend pattern for >16-byte bit table 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
c8d20fbf26 And 2-byte vector binary search on 4 lanes 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
fe92f91ca1 2-byte vector binary search on 2 lanes 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
d19df2693a Merge 1-byte table code with normal bins_lookup 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
f36dc7adba Use max-scan instead of plus-scan for 1-byte Bins table 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
8054597004 Handle up to 64 unique values in bit-table 1-byte Bins 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
b62bd02bc0 Precomputed midpoint bits in vector binary search
Clang already optimized to this but it's more explicit
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
7f5ba961c2 Use default bins_lookup if there's no AVX2 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
1080236433 2-byte vector binary searches 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
d665b90bbf Slightly faster binary search pattern with a blend 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
a711eb72eb Table-based 2-byte Bins, using max-scan 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
724f685a57 Cleanup 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
2c9e07f33d 1-byte Bins up to 32 unique eleemnts by unique lookup then index 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
81da9c586f Table-based 1-byte Bins with >1-byte result 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
0346ff7c2d Use type of ≠𝕨 for Singeli Bins result and allocate outside Singeli 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
e0621f99f8 Unroll vector binary searches for different search depths 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
38671e3fe9 Fast handling for length-1 𝕨 in Bins 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
ed9e8b4057 Table-based 1-byte Bins implementations, including AVX2 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
7161689196 Fix bin_search_vec over-writing 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
302d637129 Allocate binary search result in Singeli, using i8 for vectors 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
70249d8b64 In bins, promote to smallest common int type instead of i32 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
4f93b5849b Fix shape of char⍋num result (was deshaped) 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
ec9b875503 Separate is-sorted check from Bins implementation 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
ff9919dde2 AVX2 binary search on one lane of i8 (unused for now) 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
5424c57b7e Use Singeli float binary search 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
ee84f9fe1f 4-way branchless binary search unrolling 2023-07-10 07:13:21 -04:00
Marshall Lochbaum
464a53463d Generic Singeli version of 32-bit binary search 2023-07-10 07:13:21 -04:00
dzaima
6b5815dcc2 fix shape of k/n‿1⥊1 2023-07-10 02:40:36 +03:00
dzaima
8975be082b fix •ns.Get error message 2023-07-09 15:58:31 +03:00
dzaima
5c7934387a update Singeli submodule, match{} → same{} 2023-06-29 15:19:57 +03:00
dzaima
a67a19dd0b move pair{{a,b}} expanding to base.singeli 2023-06-29 01:31:58 +03:00
dzaima
4ee8dfbbda update Singeli submodule, use destructuring parameters 2023-06-28 00:59:28 +03:00
dzaima
3ae9b14d64 separate arith inits, add comments on init order 2023-06-23 12:10:42 +03:00
dzaima
7618dce2f3 fix return value of overflowed dyadic arith 2023-06-23 12:10:42 +03:00
dzaima
5f43bf16b3 add direct typed array type test macro 2023-06-23 12:10:42 +03:00
dzaima
4dbe72ae03 properly indicate estimating Singeli instructions 2023-06-23 11:51:34 +03:00
dzaima
8f8380749b generic Singeli builds 2023-06-16 11:12:15 +03:00
dzaima
5032c9a3ab remove unnecessary 'over _ to' 2023-06-15 19:12:20 +03:00
dzaima
90e7537225 move maskedLoopPositive to @-based 2023-06-15 19:09:53 +03:00
dzaima
dee29a1a02 block → iter 2023-06-15 18:11:57 +03:00
dzaima
9da567cd57 switch to new Singeli block execution 2023-06-15 18:08:57 +03:00
dzaima
2da457dafa fix el_half 2023-06-15 00:32:19 +03:00
dzaima
4260ef93b3 rename away underscores in __adds and __subs
plus add NEON addw, subw, and mulw (which is renamed from mul1)
2023-06-12 00:52:09 +03:00
dzaima
2a52dff482 @-forms of maskedLoop and muLoop 2023-06-12 00:52:09 +03:00
dzaima
fe8892ce6c rearrange shrm/shlm args, slightly better NEON homMask{[16]u8} 2023-06-12 00:52:09 +03:00
dzaima
336f986986 change error messages in ◶ 2023-06-12 00:52:09 +03:00
dzaima
8542ba071d homMaskX, merging multi-arg homMask 2023-06-07 18:14:18 +03:00
dzaima
934a2b5ae3 rearrange things 2023-06-06 21:44:50 +03:00
dzaima
087bf06cac fix type warnings 2023-06-01 20:12:51 +03:00
dzaima
efa1c4a4ff __declspec(dllexport) 2023-06-01 19:04:34 +03:00
dzaima
78bef5fe32 consistent 𝕨⊏𝕩 error messages across argument types 2023-05-30 14:28:36 +03:00
dzaima
2eb12fef82 fix replxx under os=windows 2023-05-30 13:37:15 +03:00
dzaima
7e5b2e0557 don't unroll/vectorize extremely tiny loop 2023-05-30 12:52:17 +03:00
dzaima
5738712bbb improve environ declaration 2023-05-30 12:52:00 +03:00
dzaima
c03dd349e4 disallow •ReBQN constructing namespaces, ignore RETD in interactive REPL 2023-05-27 16:37:42 +03:00
dzaima
da5280021c rename compile → compileAll 2023-05-27 15:38:57 +03:00
dzaima
227dfa20c7 use isatty as a default for notui 2023-05-25 00:16:16 +03:00
dzaima
55e0409582 don't CTZ(0) in gcd 2023-05-24 15:13:25 +03:00
dzaima
c3681a0557 update type number comments 2023-05-22 14:17:53 +03:00
dzaima
3872f5a625 fix 𝕨∾𝕩 reuse logic 2023-05-22 11:40:37 +03:00
dzaima
20a946d085 dynamically switch fork functions 2023-05-22 00:32:44 +03:00
dzaima
b093ebbc66 finish PICK_IDX message 2023-05-22 00:18:59 +03:00
dzaima
f0744f16d0 fix erroring variable read 2023-05-22 00:11:21 +03:00
dzaima
e8caed529c fix JIT SETUi/SETMi/SETCi missing unset variable checks 2023-05-22 00:08:20 +03:00
dzaima
de5bcfe211 static library 2023-05-21 23:47:40 +03:00
dzaima
fd72ea79c8 another gcc warning 2023-05-21 23:39:18 +03:00
dzaima
d15d8febbe slightly less wrong superset fills for 𝕨∾𝕩 2023-05-20 14:28:37 +03:00
dzaima
d6609df820 reserve •CurrentError with namespace 𝕩 2023-05-20 14:28:37 +03:00
dzaima
1e22b48225 in-place ∾ for fillarrs & fillslices 2023-05-20 14:05:22 +03:00
dzaima
bc19e7372d fix pointer check in eachm_fn 2023-05-20 14:05:22 +03:00
dzaima
e781ae21ee give PUSH_COMP access to the updated source string 2023-05-20 13:22:24 +03:00
dzaima
7f46de18fc add missed refcount decrements 2023-05-20 01:30:02 +03:00
dzaima
c9e7dc9976 remove a debug include 2023-05-20 00:01:35 +03:00
dzaima
ad49a9b26d guarantee a space fill to compilation 2023-05-19 22:51:02 +03:00
dzaima
e8d286da3b proper in-place updating in compile() 2023-05-19 22:51:02 +03:00
dzaima
ea70e06eac fix >⟨2,<<3⟩ 2023-05-19 22:51:02 +03:00
dzaima
df348896fd add a NOGC_E for conflicting⌾(list⊸⊏) generic 2023-05-19 22:51:02 +03:00
dzaima
0156d13a5e proper arrow in error messages of ⌾(n⊸↓) vs ⌾(n⊸↑) 2023-05-19 17:32:46 +03:00
dzaima
d930e7f975 add nogc message to thrF 2023-05-19 17:32:14 +03:00
dzaima
a03fab044d •internal.Keep 2023-05-19 15:41:50 +03:00
dzaima
c1488cbf72 faster arr⌾(is⊸⊏)list 2023-05-19 14:15:25 +03:00
dzaima
f6703df0b2 range calculation functions 2023-05-19 14:01:32 +03:00
dzaima
8bfe2b6b5b fix unrolled integer |𝕩 (not used currently) 2023-05-19 13:15:51 +03:00
dzaima
616fd48785 base.singeli additions 2023-05-19 13:15:51 +03:00
dzaima
1ec4415e49 clean up some under functions in sfns.c 2023-05-19 13:15:51 +03:00
dzaima
3977849bc5 fix "_m←¨⋄4 m´⟨⟩" and "4 10´⟨⟩" 2023-05-19 12:58:18 +03:00
Marshall Lochbaum
93e590fd9d One case for dyadic constant-each 2023-05-18 15:40:52 -04:00
Marshall Lochbaum
ed5fac7cc9 Constant and tack cases for Table 2023-05-18 15:11:20 -04:00
Marshall Lochbaum
b5de844736 Constants and tacks with rank, except some dyadic cases 2023-05-18 14:52:13 -04:00
Marshall Lochbaum
7440e2a6bc Constant and trivial cases for fold/insert 2023-05-18 12:11:49 -04:00
Marshall Lochbaum
9dfeb451f8 Handle empty cells in insert_base; fixes bugs in dyadic Insert 2023-05-18 11:53:53 -04:00
Marshall Lochbaum
a8cead1d3d Fast cases for tacks, constant operands, and short arguments in scans 2023-05-18 10:54:56 -04:00
Marshall Lochbaum
1ff8954dd3 Fix leak in dyadic •_timed 2023-05-18 10:54:56 -04:00
Marshall Lochbaum
6ac8944b06 Remove redundant isAtm check in constant case of each_c1 2023-05-18 10:54:56 -04:00
dzaima
b46477450d fix shape of argument passed to F in F⌾(is⊸⊑)
& skip computing the argument if not needed
2023-05-18 16:37:24 +03:00
dzaima
0572fcc5b2 native F⌾(list⊸⊑) & ⌾(listOfLists⊸⊑) 2023-05-18 01:54:01 +03:00
dzaima
d310669ae8 unify F⌾(n⊸⊑) and F⌾⊑ 2023-05-18 00:27:38 +03:00
dzaima
3047ff48b5 Add rank checks to •FChars & •FLines & •FBytes & •Out
& clean up terminology
2023-05-17 21:56:40 +03:00
dzaima
e355395e7a remove duplicated check 2023-05-17 20:53:26 +03:00
dzaima
4f15e1572d disallow •Out ⋈0 2023-05-17 20:50:21 +03:00
dzaima
ec106c0b31 better heuristic for 𝕨∊𝕩 comparison-or path 2023-05-17 18:42:24 +03:00
dzaima
e4d222173d a bunch of fixes for generic architecture & wasm 2023-05-16 00:07:48 +03:00
dzaima
65868a51ba use the type of the correct argument in check 2023-05-13 02:19:10 +03:00
dzaima
f0a9714e8b copy result in tbl_c2 if needed 2023-05-13 00:33:22 +03:00
dzaima
a9478f802f tuning for arithmetic leading axis, F⌜, and reshape-based ⎉ 2023-05-13 00:33:22 +03:00
dzaima
a3e8a1388d move all targets to build.bqn with Singeli & REPLXX enabled by default 2023-05-12 20:51:25 +03:00
dzaima
2f51974c2f use proper pointer conversion macros in ffi.c 2023-05-12 19:36:02 +03:00
dzaima
f229b3c486 fix rtperf
not that anyone uses it anymore
2023-05-12 16:34:23 +03:00
dzaima
a39264533e custom _mm_loadu_si16/_mm_storeu_si16 for old gcc 2023-05-12 16:34:23 +03:00
dzaima
6dc24bd99b free arguments of SIMD 𝕨∊𝕩 & ∊𝕩 2023-05-12 13:51:30 +03:00
Marshall Lochbaum
25883b410c Retune boundary for small-𝕩 linear Member Of 2023-05-11 21:11:43 -04:00
Marshall Lochbaum
53fb8db06f SSSE3 support in bit-table code 2023-05-11 21:05:24 -04:00
Marshall Lochbaum
464dd27a37 SIMD table intialization for Index-of 2023-05-11 21:05:24 -04:00
Marshall Lochbaum
844b537593 Singeli 1-byte table implementations for generic architecture 2023-05-11 21:05:23 -04:00
Marshall Lochbaum
6c81fb3149 Make AVX2 deduplicate branchless 2023-05-11 21:04:58 -04:00
Marshall Lochbaum
1700d84740 AVX2 1-byte Deduplicate implementation 2023-05-11 21:04:58 -04:00
Marshall Lochbaum
9658104f3e Unify AVX2 bit-table code between Member-of and Mark Firsts 2023-05-11 21:04:58 -04:00
Marshall Lochbaum
ba43dae908 Heuristic filtering when AVX2 Mark Firsts sees multiple new values 2023-05-11 21:04:58 -04:00
Marshall Lochbaum
9c7c6aabc5 AVX2 Mark Firsts implementation 2023-05-11 21:04:56 -04:00
Marshall Lochbaum
2fafe11d7c Fix fill_bittab tail masking for t=0 and simplify 2023-05-11 20:59:53 -04:00
Marshall Lochbaum
017e2433fb Fast paths for all empty-argument search cases 2023-05-11 20:59:53 -04:00
Marshall Lochbaum
e45231154c Reverse lookup initialization for 1-byte Member-of 2023-05-11 20:59:53 -04:00
Marshall Lochbaum
0232f91582 AVX2 bit table Member-of 2023-05-11 20:59:52 -04:00
dzaima
03a28e4e34 fix float normalization from a •bit._cast result mutating the original 2023-05-11 22:39:59 +03:00
dzaima
53bacf00c8 native F⟜k⁼𝕩 & k⊸F⁼𝕩 2023-05-11 15:28:40 +03:00
dzaima
08b6ff77c4 c1G & c2G 2023-05-11 15:28:40 +03:00
dzaima
fa4aebbe9c native dyadic inverses of F˜ 2023-05-11 15:28:40 +03:00
dzaima
bae49543be native F˜⁼ 𝕩 2023-05-11 15:28:40 +03:00
dzaima
d1a5ed3e00 err → fatal 2023-05-11 15:28:23 +03:00
dzaima
aa68ed0730 define single ICMP 2023-05-11 15:28:23 +03:00
dzaima
4b0cd3217f proper statement definition of assert 2023-05-11 15:28:23 +03:00
dzaima
fe39fe1932 remove Md1H/MD2R 2023-05-11 15:28:23 +03:00
dzaima
e775202684 describe types in src/README.md 2023-05-10 00:05:29 +03:00
dzaima
a8738c68ed update bytecode submodule 2023-05-09 21:54:01 +03:00
dzaima
5979c0fed9 pass fully native primitives to r1 2023-05-09 21:50:16 +03:00
dzaima
0f2ef4384c don't inline groups_lt 2023-05-09 00:14:14 +03:00
dzaima
300d217ee8 move SIMD constrep functions to a table 2023-05-09 00:14:14 +03:00
dzaima
0598ce8357 use getFillQ less 2023-05-09 00:14:14 +03:00
dzaima
d62c77af41 add threshold for reshape-based ⎉+n path 2023-05-06 16:57:38 +03:00
dzaima
3dcb32a54a fast Arith⎉+n where n is the rank of one argument 2023-05-06 16:28:41 +03:00
dzaima
56d1453185 use destructuring more in Singeli 2023-05-06 13:18:00 +03:00
dzaima
4ff4460d67 put logging behind the macro check 2023-05-06 02:05:38 +03:00
dzaima
f640767e97 increase JIT memory allocation size
virtual memory should make it not matter for memory usage, or maybe even very slightly improve it due to less page table fragmentation
2023-05-06 01:11:30 +03:00
dzaima
45cc672af1 move allocation log message to before allocating
and print result
2023-05-06 01:09:34 +03:00
dzaima
78159f4f04 check for the proper failure value in mmap_nvm 2023-05-05 23:04:22 +03:00
dzaima
8177b668f4 fix ∾𝕩 error checking 2023-05-05 19:54:43 +03:00
dzaima
cc94ec4cbc move out another s+↕n loop 2023-05-05 13:28:58 +03:00
dzaima
14ca835fa2 don't unroll comparatively extremely tiny loop 2023-05-05 13:23:47 +03:00
dzaima
65d0b829bd reuse range generation from ↕n for •rand.Deal 2023-05-05 12:41:36 +03:00
dzaima
1072d0bb9c merge emptyIVec() case with bitUD[0] 2023-05-05 12:18:31 +03:00
Marshall Lochbaum
78eeaae762 Remove MergeShuffle: only used above 2⋆28 with split and not a huge speedup 2023-05-04 18:11:55 -04:00
Marshall Lochbaum
2b9c193f24 Outer split pass for large •rand.Deal 2023-05-04 14:28:32 -04:00
Marshall Lochbaum
a4f9d23709 Simplify merge-shuffle index usage 2023-05-04 10:18:38 -04:00
Marshall Lochbaum
6cc9d40490 Fast cases for short •rand.Deal𝕩 2023-05-04 09:10:29 -04:00
Marshall Lochbaum
8191aa6da2 Only iterate over set bits in random merge 2023-05-04 09:10:29 -04:00
Marshall Lochbaum
bc7275a91b Basic MergeShuffle implementation (slow merge) 2023-05-04 09:10:29 -04:00
dzaima
9fd80e3193 split buckets above 2^20 bytes when possible 2023-05-04 12:28:47 +03:00
dzaima
1bd9467a2d cleanup 2023-05-04 12:27:13 +03:00
dzaima
776b0b2b47 fix estimated UTF-8 length of codepoints 2047 and 65535 2023-05-02 10:49:11 +03:00
dzaima
352961a7eb another ubsan complaint 2023-05-02 10:47:13 +03:00
dzaima
65e246774e -mllvm --x86-cmov-converter=0 2023-04-30 20:03:09 +03:00
dzaima
0e79e9f868 fix ubsan notes 2023-04-30 19:50:24 +03:00
dzaima
cd40ec8117 fix ¯2e9‿2e9⍋0 2023-04-30 19:35:18 +03:00
dzaima
c567dff565 fix leading-axis operations on empty inputs 2023-04-30 19:15:46 +03:00
dzaima
93dd25e0e1 fast leading-axis for <>≤≥=≠ 2023-04-30 19:00:56 +03:00
dzaima
c889a07d75 replicate-using leading axis arithmetic case 2023-04-30 18:46:41 +03:00
dzaima
1e11cf93c1 faster leading axis arithmetic 2023-04-30 17:27:07 +03:00
dzaima
048352f587 fix 0˝˘ 2‿2⥊0 2023-04-29 21:15:46 +03:00
dzaima
0a30c7b4e6 more generic n⊸↑⎉k & n⊸↓⎉k & n⊸⍉⎉k 2023-04-29 21:10:44 +03:00
dzaima
aae8651e8b fix Arith⌜ with empty 𝕨 2023-04-29 20:11:24 +03:00
dzaima
518635d0b9 generic 𝕨 ≡⎉¯k 𝕩 2023-04-29 20:01:48 +03:00
dzaima
df613ad674 w⊸F⎉g x → w F⎉∞‿g x & F⟜x⎉g w → w F⎉g‿∞ x 2023-04-29 17:39:13 +03:00
dzaima
e40d056ee4 use err() for unexpected state 2023-04-29 17:39:13 +03:00
dzaima
5e29ec72ce sanity test of mmap address top 16 bits being 0 2023-04-29 17:39:13 +03:00
dzaima
35786d4f5b m_hVec\d → m_hvec\d 2023-04-29 17:39:13 +03:00
dzaima
e200bbc5f9 move ↕list to its own function 2023-04-29 17:39:13 +03:00
dzaima
bb7c37960e a round of more incG/incByG 2023-04-29 17:39:13 +03:00
dzaima
a855d03b93 use %c in v_merge 2023-04-29 17:39:13 +03:00
dzaima
a0d384060a unify implementations of m_vec1 and m_unit 2023-04-29 17:39:13 +03:00
dzaima
3b580cbd0c rename unit creation methods 2023-04-29 17:39:13 +03:00
dzaima
88c19cedec attempt at cleaning up mut.c a bit 2023-04-29 17:39:13 +03:00
dzaima
56e4863f66 typedef c8/c16/c32 2023-04-29 17:39:13 +03:00
dzaima
865257fdb6 more header file cleanup 2023-04-29 17:39:13 +03:00
dzaima
aa5ed7cc7a BB2B & BBB2B → FC1 & FC2 2023-04-29 15:31:31 +03:00
dzaima
ca13fb567a header file cleanup 2023-04-29 13:54:32 +03:00
dzaima
229a32237a slice checking macro refactor 2023-04-29 13:24:20 +03:00
dzaima
ba1b853936 don't use the cell appender for Arith⌜ 2023-04-29 13:13:58 +03:00
dzaima
62e2ea96ce zsh needs to be kept alive even for zk==1 2023-04-28 21:04:30 +03:00
dzaima
7f0390be3f more error messages 2023-04-28 20:49:34 +03:00
dzaima
7dd677a4e2 various fill improvements 2023-04-28 20:31:44 +03:00
dzaima
7a501ffbdf use APD for ∾list 2023-04-28 20:17:44 +03:00
dzaima
5aa896ab38 use APD for Arith⌜ 2023-04-28 19:30:54 +03:00
dzaima
b17d2010c2 better error messages 2023-04-28 19:25:42 +03:00
dzaima
38b2028374 use APD for ˘/⎉ 2023-04-28 19:25:42 +03:00
dzaima
3761eafd0a fix fills 2023-04-28 18:54:52 +03:00
dzaima
5c64c32aa9 allow GC between APD calls, delay shape errors 2023-04-28 18:54:52 +03:00
dzaima
7b877d368f move fill handling to APD 2023-04-28 18:54:52 +03:00
dzaima
2f46b80b82 yet another mutable temporary array thing 2023-04-28 18:54:52 +03:00
dzaima
880efa38b4 better fill equality checking utilities 2023-04-28 18:51:41 +03:00
dzaima
d0e76ec436 better selfElType 2023-04-28 16:22:13 +03:00
dzaima
34a4d48d95 make singeli assertions checked in debug mode 2023-04-28 15:10:08 +03:00
dzaima
187eea1197 use memcpy for non-tiny equal-size copying 2023-04-26 20:19:05 +03:00
dzaima
d43ffd6b62 remove no longer needed E_SLICES 2023-04-25 22:13:41 +03:00
dzaima
037d36ddab rework for_cells_AA 2023-04-25 22:13:13 +03:00
dzaima
586aeaea2d HARR_FP 2023-04-25 21:44:55 +03:00
dzaima
23737cc458 proper error messages for ⎉ vs ˘ 2023-04-24 19:43:04 +03:00
dzaima
77154be2a8 testing setup for ˘ & ⎉
incl. toggleable fill testing for !CATCH_ERRORS
2023-04-24 19:43:04 +03:00
dzaima
6d33018788 merge dyadic ˘ & ⎉ 2023-04-24 19:43:04 +03:00
dzaima
e11d5dd31d •internal.HasFill 2023-04-24 19:43:04 +03:00
dzaima
0b2ed69fba add a NOGC_E in mut_pfree
fixes >⟨"ab"‿1,"a"⟩ in debug builds unnecessarily breaking
2023-04-24 01:01:35 +03:00
dzaima
b4a207a924 better fix for in-place 𝔽¨𝕩 on fillslice 𝕩 2023-04-23 22:49:19 +03:00
dzaima
927814d182 fix ⊢¨ {a←𝕩 ⋄ ⥊𝕩} 2‿3⥊<"a" 2023-04-23 22:17:32 +03:00
dzaima
2259e7b6a9 fix ↕1‿0‿1e9‿1e9‿1e9 incorrectly erroring 2023-04-23 22:17:32 +03:00
dzaima
9d9c3fe8ac return signal code+128 in exit code on signaling •SH invocation 2023-04-23 22:17:32 +03:00
dzaima
c50674d63a always overallocate by 4 bytes in 32-bit output case for /bitarr 2023-04-23 15:11:58 +03:00
dzaima
10edc75f09 use c1fn for monadic ˘/⎉ 2023-04-22 22:33:32 +03:00
dzaima
6d5cee1cdc extract one-call case to noinline function 2023-04-22 22:33:32 +03:00
dzaima
1ff31f1df3 don't hard-code VERIFY_TAIL size
+ improve error message
2023-04-22 22:33:32 +03:00
dzaima
5395d1eb08 cleanup 2023-04-22 19:10:58 +03:00
dzaima
36b99d3505 handle more cases of ⊏⎉n & ⊑⎉n 2023-04-22 18:44:21 +03:00
dzaima
fe071b641f handle more cases of ⍉⎉n & «⎉n & »⎉n 2023-04-22 18:44:21 +03:00
dzaima
1c041fd968 move emptiness checks to where needed 2023-04-22 18:34:29 +03:00
dzaima
e4d38f571d move k==0 case out of for_cells_c1 2023-04-22 18:34:25 +03:00
dzaima
edf1f2df7e merge_fill_result changes
incl. fixing when rr==k
2023-04-22 18:34:18 +03:00
dzaima
78764ec47c move SLICE source refcount incrementing outside of loop 2023-04-22 18:33:39 +03:00
dzaima
b10a87fe00 merge ˘ & ⎉ 2023-04-22 18:31:29 +03:00
dzaima
1ffc141919 move toCells & toKCells to cells.c 2023-04-22 18:31:24 +03:00
dzaima
1de59d6ee8 reorder functions 2023-04-22 17:20:05 +03:00
dzaima
663fe29a89 move monadic ⎉ to slice macros 2023-04-22 17:20:05 +03:00
dzaima
078ee7af97 use c2fn in insert_base 2023-04-22 17:20:05 +03:00
dzaima
d2ac5db1c8 move ⎉ & ˘ to their own file 2023-04-22 17:20:05 +03:00
dzaima
3e9f1ce1b0 arr_shErase 2023-04-22 16:33:55 +03:00
dzaima
6c988c3804 ptr_incBy 2023-04-22 13:06:13 +03:00
dzaima
e0479adee4 fix rank overflow check in 𝕨⥊𝕩 2023-04-22 11:53:54 +03:00
dzaima
20b3867581 change %c in format strings to u32 unicode codepoint 2023-04-22 10:58:25 +03:00