Commit Graph

2411 Commits

Author SHA1 Message Date
dzaima
4945a90ff0 valgrind changes 2023-01-18 02:05:24 +02:00
dzaima
7b996c772a lea tmp,[CS+123]; mov [tmp],rax → mov [CS+123],rax 2023-01-17 20:55:39 +02:00
dzaima
40383906ec no, neither w nor h are 1, clang 2023-01-17 05:17:37 +02:00
dzaima
472e542ebd O(1) ⍉𝕩 when it doesn't reorder elements 2023-01-17 04:52:08 +02:00
dzaima
f9eb7f083c unshare shape 2023-01-17 04:38:55 +02:00
dzaima
21372a743a allow unsharing slices 2023-01-17 04:32:30 +02:00
dzaima
ec11e34dba clear old flags from in-place ¨ 2023-01-17 04:31:55 +02:00
dzaima
540b37ae6a shape replacement utility 2023-01-17 03:47:14 +02:00
dzaima
ec92b1d5ba better eachm_fn 2023-01-17 01:35:04 +02:00
dzaima
5de565f1b0 use 'debug/printf' for Singeli printf 2023-01-17 01:01:13 +02:00
dzaima
79c7aa30df reformat --help 2023-01-16 23:32:52 +02:00
dzaima
a483ac61d9 --version & version specifying in build/build 2023-01-16 19:31:14 +02:00
dzaima
dd82073c60 slightly faster ⍟list handling 2023-01-16 18:58:48 +02:00
dzaima
e0df77519e set replxx history max size higher
before it was 1000
2023-01-15 22:55:40 +02:00
dzaima
6c89982bbc unrolled Singeli loop option 2023-01-15 22:51:31 +02:00
dzaima
39605c1a98 add intrinsic file include for _mm_crc32_u32 2023-01-14 00:38:32 +02:00
dzaima
6c88499920 consistently check only for whether __BMI2__ is defined 2023-01-14 00:33:34 +02:00
dzaima
5b35c0a664 keep pext usage for bitarr/bitarr 2023-01-13 23:46:48 +02:00
dzaima
41212ab852 SLOW_PDEP option 2023-01-13 23:23:06 +02:00
dzaima
e987a5e4c0 some file path handling changes around windows 2023-01-13 19:16:13 +02:00
dzaima
376e343639 don't use manual copy loops in eachd_fn 2023-01-12 21:25:36 +02:00
dzaima
dbcd967e12 attempt at replxx-based printf 2023-01-12 17:13:42 +02:00
dzaima
46f657713c don't rely on bqn_fmt when !FORMATTER or CBQN isn't yet initialized 2023-01-09 02:30:29 +02:00
dzaima
86ae984af0 more print function renaming 2023-01-09 02:17:12 +02:00
dzaima
6f394c41ff windows: wide char printing 2023-01-09 02:00:22 +02:00
dzaima
a9c70d9d72 printing method overhaul 2023-01-09 01:42:44 +02:00
dzaima
381460e92e windows: getline fixes & discard trailing CRLF 2023-01-08 20:35:20 +02:00
dzaima
7b7c31e8b9 fix warning of unused pageSizeV for windows builds 2023-01-07 02:27:30 +02:00
dzaima
26c12e6724 add )exit & )off 2023-01-07 02:23:12 +02:00
dzaima
38ec07c34b use getline on Windows for the REPL 2023-01-06 18:02:02 +02:00
dzaima
6889121a28 getPageSize does need to return something 2023-01-06 06:10:12 +02:00
dzaima
b03bf80198 move Windows cases around
also don't make dir_create pretend it succeeds
2023-01-06 06:04:12 +02:00
actalley
815de4fd97
Address build errors on llvm-mingw to build bqn.exe with no SH, FFI, or repl support 2023-01-05 21:38:30 -06:00
dzaima
32f0a2f8fc check file size for whether we can allocate it
also "takes care" of the case when the file is a directory
2022-12-31 21:04:19 +02:00
dzaima
7d4677a8ff use COPY_TO instead of a loop in fbytes_c1
& ryu comment changes
2022-12-31 20:49:50 +02:00
dzaima
8da9c4e3a5 don't fail on •SH under VERIFY_TAIL 2022-12-31 20:31:13 +02:00
dzaima
7b3beec621 •ParseFloat 2022-12-31 20:22:22 +02:00
dzaima
fd38a5b241 use Ryu for number formatting 2022-12-31 03:19:06 +02:00
dzaima
99a82afec4 actually check character arrays in VERIFY_TAIL 2022-12-31 02:50:38 +02:00
dzaima
854acd580d respect !PROPER_FILLS in high-rank ↑ 2022-12-30 16:16:36 +02:00
dzaima
6e748ed800 remove unused rt_* globals 2022-12-30 01:50:00 +02:00
dzaima
7ff74d38e8 squeeze el_bit transpose result 2022-12-30 01:12:24 +02:00
dzaima
faf89abef0 fix ⊏˘ generic case 2022-12-30 00:21:07 +02:00
dzaima
5a9e5e8e50 native baseline high-rank 𝕨⊒𝕩 2022-12-30 00:10:03 +02:00
dzaima
ec169b1006 remove no longer necessary runtime loads 2022-12-29 23:59:44 +02:00
dzaima
83863a64fd fix gcc build 2022-12-29 23:46:24 +02:00
dzaima
b903a5d9ce fast num⊑˘simpleArr 2022-12-29 23:37:00 +02:00
dzaima
168db4cf01 fix rtWrap_unwrap refcounting 2022-12-29 23:36:50 +02:00
dzaima
0589d63cc5 fast v˙˘arr, fix arr˘arr 2022-12-29 23:36:37 +02:00
dzaima
1e3117d65f fast ⥊˘𝕩 2022-12-29 22:25:22 +02:00
dzaima
3408db320c fast num↑˘𝕩 & num↓˘𝕩 for 2≤=𝕩 2022-12-29 22:20:29 +02:00
dzaima
f6f0c12935 fast ⊑˘simpleArr 2022-12-29 22:07:38 +02:00
dzaima
a0feda9d8b fast arr˘ x 2022-12-29 22:04:06 +02:00
dzaima
47e95171f0 faster »˘ & «˘ on matrices, fix 0⊏˘↕3 2022-12-29 21:47:52 +02:00
dzaima
897ad8f649 clang really wants to special-case csz==1, but that's checked for before 2022-12-29 21:47:52 +02:00
dzaima
3f0c34e895 fast ≍˘𝕩 2022-12-29 21:47:52 +02:00
dzaima
4e88dc1004 faster ⊏˘ 2022-12-29 20:32:17 +02:00
dzaima
41efcfb632 fast ∾˝ & 𝕨ScalarFn˝𝕩 2022-12-29 18:46:14 +02:00
dzaima
8a132467d2 improve EACH_FILLS cases in ¨ & ⌜ 2022-12-28 22:38:14 +02:00
dzaima
6a9e03bdb1 use arr_shSetU/arr_shSetI inline
and use incG more in rank_c2
2022-12-28 17:31:02 +02:00
dzaima
a34bb0a433 don't unroll libc math loops 2022-12-28 16:51:17 +02:00
dzaima
4884580037 rearrange arr_shCopyUnchecked to not read SH(o) twice
and, while making a change that requires rebuilding all of CBQN, also make more of the arr_* fns return their Arr* argument to prepare for using them inline
2022-12-28 16:23:27 +02:00
dzaima
3b1b171828 don't need copying from bitarr to character arr 2022-12-28 16:17:16 +02:00
dzaima
c5a3c57f50 check for path being present for •path/•name/•state 2022-12-28 01:13:58 +02:00
dzaima
d8724e6658 update clangdCommands.bqn to new singeli defines, and enable by default 2022-12-27 23:59:48 +02:00
dzaima
33580b91ca don't error on unknown fill when not overtaking 2022-12-27 23:44:34 +02:00
dzaima
84bae20f79 don't inline load functions 2022-12-27 03:54:00 +02:00
dzaima
f424c720a7 full native 𝕨⌽𝕩 & 𝕨⌽⁼𝕩 2022-12-27 03:39:48 +02:00
dzaima
75fe558f1c detect writes past the end of a TALLOC allocation 2022-12-27 02:29:24 +02:00
dzaima
1afdd89075 allow defining custom dyadic inverses of builtins 2022-12-26 23:57:55 +02:00
dzaima
013897cc16 add runtime calls to WARN_SLOW 2022-12-26 23:15:56 +02:00
dzaima
78793ca700 -h → --help 2022-12-26 20:33:33 +02:00
dzaima
c818bf54b1 remove need of libffi from make forbuild 2022-12-26 19:38:24 +02:00
dzaima
48c2425e8b check result size being too large in ↑ 2022-12-26 18:16:11 +02:00
dzaima
7bcee07489 initialize shape properly in one case of high-rank take/drop
fixes 0‿4↑↕4 in debug builds, which just magically approximately worked before
2022-12-26 16:09:30 +02:00
dzaima
326d54e130 native list↑𝕩 & list↓𝕩 2022-12-25 13:38:43 +02:00
dzaima
8fad76762a reorder take_c2 2022-12-24 17:53:16 +02:00
dzaima
e2b45e33e1 simplify splitCells 2022-12-24 17:29:48 +02:00
dzaima
424448aa40 remove rt_memberOf & rt_indexOf 2022-12-24 17:12:35 +02:00
dzaima
95b1beb9db native high-rank ∊ & ⊐ 2022-12-24 17:08:27 +02:00
dzaima
3f40955d83 reorder indexOf_c2 2022-12-24 17:05:50 +02:00
dzaima
e3b5af8a44 fix 𝕨∊p & p⊐𝕩 with an empty high-rank p 2022-12-24 17:03:58 +02:00
dzaima
24dba9ba40 fix a bunch of small memory leaks around REPLXX
not that they'd cause any problems in practice - they're very small, and are in the one context where GC can actually run
2022-12-24 16:42:42 +02:00
dzaima
bb7fe02a45 separate checks for x86-64 & NEON Singeli importing
& restrict the processed Singeli files on NEON to the ones supported
2022-12-24 15:27:53 +02:00
dzaima
6d79ce9fb1 use arch-independent names for things suppported on both x86-64 & NEON 2022-12-24 15:26:05 +02:00
dzaima
d38316e670 BQN-based build system 2022-12-23 23:09:55 +02:00
dzaima
efcc6a28be add •file.path to autocomplete options 2022-12-23 18:08:33 +02:00
dzaima
bbc66cbf3f fix display of running multiline code while cursor isn't in last line 2022-12-23 18:06:58 +02:00
dzaima
381ce70212 backslash+enter → literal newline 2022-12-23 18:02:18 +02:00
dzaima
a6b22c75fd fast list⊐unit for more list types 2022-12-20 18:32:51 +02:00
dzaima
e69d8dc6e9 native ⌾(v⊸⌽) 2022-12-20 18:31:42 +02:00
dzaima
d05621f8f4 generic vector width calculation for NEON-supported files 2022-12-20 00:02:46 +02:00
dzaima
b91e72567d update Singeli submodule, conditional NEON includes 2022-12-19 23:31:44 +02:00
dzaima
43be832a37 fix highrank∊list deshaping the result in some scenarios 2022-12-18 23:58:10 +02:00
dzaima
8188886538 fast 𝔽´⟨x⟩ & 𝔽´⟨x,y⟩ 2022-12-18 23:49:09 +02:00
dzaima
aa4b92cb01 don't define •SH if not available 2022-12-18 23:40:55 +02:00
dzaima
29cecb0b6e remove •PrimInd 2022-12-18 23:16:36 +02:00
dzaima
6380364e62 native highrank∊vector 2022-12-18 23:05:58 +02:00
dzaima
30a6de0a31 add unrolling to aarch64 cmp.singeli 2022-12-18 22:45:42 +02:00
dzaima
f9c919d5ce getmask → homMask/topMask 2022-12-18 22:27:42 +02:00
dzaima
a07b94b889 more general equal.singeli, remove trailing semicolons 2022-12-18 21:55:20 +02:00
dzaima
2a32f52f8d blend renaming 2022-12-18 02:49:42 +02:00
dzaima
09b3279958 unified Singeli including mechanism 2022-12-18 01:54:07 +02:00
dzaima
9768526ddc move last bit of equal.singeli to loadBatch 2022-12-18 01:53:56 +02:00
dzaima
40f36fa366 Singeli-generated table for bits.singeli 2022-12-17 17:51:56 +02:00
dzaima
2c73199ed4 use Singeli-generated function tables for comparison 2022-12-16 19:04:58 +02:00
dzaima
f49dd5e8cf move cmp.singeli NaN check outside for non-x86_64 2022-12-16 17:39:51 +02:00
dzaima
6e3cb9a425 andIsZero→andAllZero; NEON andnz, blendF, sel, bitops.singeli 2022-12-16 00:44:32 +02:00
dzaima
cbd891b768 NEON widen, narrow, undefPromote; make undefPromote more restrictive 2022-12-15 23:19:00 +02:00
dzaima
6fac426f90 add v_dbl & v_half, NEON half{x,n} 2022-12-15 21:57:34 +02:00
dzaima
791e7d122f ucvt→narrow 2022-12-15 21:44:48 +02:00
dzaima
2b7291dbfb cvt{E,T,v} → widen{T,to_el{E,v}} 2022-12-15 20:31:00 +02:00
dzaima
9a9fade18a NEON loadLow, storeLow, andIsZero, maskstore, pack 2022-12-15 16:14:00 +02:00
dzaima
6f2d6bfb0b remove offset argument from maskstore; don't use w256 in mask.singeli 2022-12-15 16:13:45 +02:00
dzaima
77edc734e8 move storeLow & loadLow to sse3 & avx; fix NEON __not 2022-12-15 00:39:44 +02:00
dzaima
9fea5f1e13 neg(Any|All) → top(Any|All), msk(Any|All) → hom(Any|All) 2022-12-13 21:46:50 +02:00
dzaima
336da996b3 any/all vector check renaming 2022-12-13 02:03:17 +02:00
dzaima
7e13bf7f45 more neon.singeli 2022-12-12 02:59:11 +02:00
dzaima
444268f051 width{eltype{T}} → elwidth{T} 2022-12-12 00:07:50 +02:00
dzaima
2a1611ac81 start of neon.singeli 2022-12-11 23:59:07 +02:00
dzaima
0ef8800530 native F⌾⊢𝕩 & F⌾⊣𝕩 2022-12-08 13:26:04 +02:00
dzaima
3a3f213a92 assign broadcast{T,v} to T**v 2022-12-07 23:53:19 +02:00
dzaima
ce45d487a3 use mutating assignment 2022-12-07 23:24:26 +02:00
dzaima
07d4567a52 use spread arguments 2022-12-07 23:10:17 +02:00
dzaima
bf71fdb4f8 singeli now formats generators itself
or, well, has for a long time
2022-12-07 22:41:17 +02:00
dzaima
1b88c4cc62 don't allocate twice the memory requested 2022-12-07 22:22:34 +02:00
dzaima
af978bbc91 cave in and initialize variables in gcc 2022-12-03 23:58:33 +02:00
dzaima
6ca5050f4d reduce gcc warnings 2022-12-03 23:56:03 +02:00
dzaima
e4f4864ed2 define CBQN_EXPORT by default, add macro test for exactly gcc 2022-12-03 23:19:24 +02:00
dzaima
63e5e843ba fix f64arr/𝕩
`slow:` uses `s`, but the goto went to it before `s` was initialized
2022-12-03 23:18:43 +02:00
dzaima
5d61785912 some more x86_64.h reordering 2022-12-03 22:54:49 +02:00
dzaima
21984e1700 more x86_64.h cleanup 2022-12-03 15:21:05 +02:00
dzaima
95f9e781fa fix )profiler output merging all REPL entries 2022-12-03 14:14:32 +02:00
dzaima
732d1fdb34 remove ASMI/macro indirection 2022-12-02 17:26:10 +02:00
dzaima
bca0efb46c clean up x86_64.h 2022-12-02 17:10:04 +02:00
dzaima
0023e46ab8 config file & light theme 2022-12-02 16:49:49 +02:00
dzaima
7c6676a492 copy over custom _mm_loadu_si32 for old gcc 2022-12-01 13:37:01 +02:00
Marshall Lochbaum
4077596b89 Sparse initialization for ⌾(i⊸⊏) byte table 2022-11-30 16:32:06 -05:00
Marshall Lochbaum
d7a06befb5 Select implementation comments 2022-11-30 16:32:06 -05:00
Marshall Lochbaum
534c92f38a Select from <=128 booleans with shuffles 2022-11-29 22:14:57 -05:00
Marshall Lochbaum
fdfeb67e8f 2-register permutevar8x32 2022-11-29 20:27:45 -05:00
Marshall Lochbaum
41f464795f Selection with permutevar8x32 2022-11-29 18:45:22 -05:00
Marshall Lochbaum
c17448ed71 Faster bit selection 2022-11-29 11:29:25 -05:00
Marshall Lochbaum
dc6e49b289 Shuffle selection using >1 data register 2022-11-28 21:51:36 -05:00
Marshall Lochbaum
b651ca73d3 Move base{} utility to base.singeli 2022-11-28 13:55:19 -05:00
Marshall Lochbaum
43fba7cd78 Extend shuffle selection to >1 byte data 2022-11-28 13:55:19 -05:00
Marshall Lochbaum
6639c17b81 1-byte select with <=16 elements using shuffle 2022-11-27 21:03:58 -05:00
Marshall Lochbaum
e09d555eba Refactoring and renaming in select.singeli 2022-11-27 09:18:21 -05:00
Marshall Lochbaum
7cb8cf5772 Enable selection with AVX2 gather for i8 to i32 indices and 1- to 8-byte values 2022-11-27 09:18:21 -05:00
dzaima
dbc7c83f70 move usum to fold.c
but don't do anything useful with that because usum needs to also check for negative numbers
2022-11-27 15:45:33 +02:00
dzaima
afe6c0eba9 use 1•internal.Info for rtverify fails 2022-11-27 15:45:33 +02:00
dzaima
c0e06833c0 move B squeeze non-integer case out of twice-generated generator 2022-11-27 15:45:33 +02:00
dzaima
b0fcc017ce clean up squeeze.singeli 2022-11-27 15:45:33 +02:00
dzaima
0f3f91105e use anynePositive for squeeze.singeli 2022-11-27 15:45:33 +02:00
dzaima
15f6dd5d48 simplify 16-bit anynePositive 2022-11-27 15:45:33 +02:00
dzaima
5f85305f43 GPR mask testing 2022-11-27 15:45:33 +02:00
dzaima
efd79881cb use single mask array for all type widths 2022-11-27 15:45:33 +02:00
Marshall Lochbaum
d911eafd31 Inverses for •math.Fact and •math.LogFact 2022-11-26 14:20:52 -05:00
Marshall Lochbaum
a3df482acd Use non-inlined recursion for •math functions 2022-11-26 14:14:37 -05:00
dzaima
c4d0f8bdc4 highlight "." in numbers 2022-11-24 13:08:20 +02:00
dzaima
d383fe57a7 clean up whitespace 2022-11-24 01:26:35 +02:00
dzaima
34e37d1b1a increase gc root buffer size 2022-11-24 01:09:50 +02:00
dzaima
cf5ce07f51 simplify singeli xor/and/or definitions 2022-11-24 00:21:19 +02:00
Marshall Lochbaum
e60b942710 Formatting 2022-11-23 16:51:30 -05:00
Marshall Lochbaum
7715cbc158 Add •math.Sum with Singeli f64 implementation 2022-11-23 16:51:30 -05:00
Marshall Lochbaum
35aef1e5cd •math.Erf, •math.ErfC, and •math.LogFact 2022-11-23 16:46:39 -05:00
Marshall Lochbaum
9a1268ea3a Simplify •math.Comb implementation 2022-11-23 16:46:39 -05:00
Marshall Lochbaum
6eb21bd68c Factorial and combinations functions 2022-11-23 16:46:39 -05:00
Marshall Lochbaum
f6109b3985 Handle no-op and boolean cases of monadic arithmetic quickly 2022-11-23 16:46:39 -05:00
Marshall Lochbaum
58cd6f0f4e Other useful math: log2 log10 log1p expm1 hypot 2022-11-23 16:46:39 -05:00
Marshall Lochbaum
a0f6986832 Hyperbolic trig 2022-11-23 16:46:39 -05:00
Marshall Lochbaum
51840bc853 •math.GCD and •math.LCM for u64 arguments 2022-11-23 16:46:39 -05:00
dzaima
49636bae79 replace --dynamic-list with visibility 2022-11-22 15:36:32 +02:00
dzaima
6f5c329e22 noinline float product 2022-11-22 14:24:43 +02:00
dzaima
e7cc8ec444 use o2fG instead of union field 2022-11-21 23:26:25 +02:00
Marshall Lochbaum
31106c730c Fold implementation comments 2022-11-21 15:56:15 -05:00
Marshall Lochbaum
bda653e865 Shortcutting for boolean-valued integer ∨´ 2022-11-21 15:51:03 -05:00
Marshall Lochbaum
f1ca8793e3 Boolean comparison folds, monadic only 2022-11-21 15:36:06 -05:00
Marshall Lochbaum
47392acc33 Implement ×´ for all numeric cases, using f64 product when i32 fails 2022-11-21 15:19:27 -05:00
Marshall Lochbaum
52608ba6ce Singeli min/max-fold 2022-11-21 11:47:50 -05:00
Marshall Lochbaum
4b9a21c75f Do tack-fold with selection 2022-11-21 08:07:38 -05:00
Marshall Lochbaum
38683119c0 Handle some f64 cases in dyadic fold 2022-11-20 22:03:36 -05:00
Marshall Lochbaum
c977065c20 Move +⌈⌊ folds to function tables, unifying monadic and dyadic cases 2022-11-20 21:51:30 -05:00
Marshall Lochbaum
ebfd002793 Blocked +´ and f64 ⌈´ ⌊´ 2022-11-20 21:06:05 -05:00
Marshall Lochbaum
5bfdc26d00 Move fold to its own file 2022-11-20 20:06:35 -05:00
Marshall Lochbaum
b9a3a7886d Ordering function implementation comments 2022-11-20 19:57:00 -05:00
dzaima
24195780df reorder headers to allow OpenBSD hack to function 2022-11-20 18:22:51 +02:00
dzaima
6ff521b200 don't use IA/SH macros for assigning 2022-11-18 15:07:31 +02:00
dzaima
966b78693b fix test/precompiled.bqn 2022-11-18 00:16:34 +02:00
dzaima
5c65a1a7eb move precompiled bytecode to submodule 2022-11-17 23:20:07 +02:00
dzaima
1b64b4b548 better temporary replxx state handling 2022-11-17 19:18:33 +02:00
dzaima
35abd7f7e8 try $XDG_DATA_HOME before $HOME for REPL history directory 2022-11-17 19:18:33 +02:00
dzaima
ff36205a34 bind ctrl+n & ctrl+p 2022-11-17 19:18:33 +02:00
dzaima
1f5be9e69e backslash input 2022-11-17 19:18:33 +02:00
dzaima
9018051ce3 add •math.Atan2 autocomplete 2022-11-17 19:18:33 +02:00
dzaima
c60bdaba4d highlight 𝔽𝔾𝕎𝕏𝕊 as functions, reduce mut.h to calls.h 2022-11-17 19:18:33 +02:00
dzaima
bd6035cdef more system namespace field completion, actually add •ToUTF8 2022-11-17 19:18:33 +02:00
dzaima
a48488a132 enable bracketed paste, add sanity check in syntax highlighter 2022-11-17 19:18:33 +02:00
dzaima
07fa4a066b save replxx history more 2022-11-17 19:18:33 +02:00
dzaima
983452b409 system value completion 2022-11-17 19:18:33 +02:00
dzaima
feb7b8b9a0 replxx REPL 2022-11-17 19:18:33 +02:00
dzaima
94f8b189f7 REINIT_TAIL → FINISH_OVERALLOC 2022-11-17 18:56:46 +02:00
dzaima
a48f1f5eb0 fix -DMM=0 2022-11-17 18:56:46 +02:00
dzaima
55e8a43297 fix test/mut.bqn leaking references 2022-11-17 18:56:46 +02:00
dzaima
1ac5f0a49d arr_shCopy that doesn't compare IA 2022-11-17 18:56:46 +02:00
dzaima
179e0a37dc more tail verify work 2022-11-17 18:56:46 +02:00
dzaima
e5a9c7536d array tail overwriting checker 2022-11-17 18:56:46 +02:00
dzaima
360aabb7cc option to noinline mm_alloc & mm_free 2022-11-17 18:56:46 +02:00
dzaima
da1062c81c remove unused #undef 2022-11-17 18:55:59 +02:00
dzaima
aee745a7d6 fix argument names of C2 2022-11-17 18:13:29 +02:00
dzaima
db89e7a4bb fix function signatures & M1C2; use C1 & bit_negate more 2022-11-17 17:52:19 +02:00
Marshall Lochbaum
be9037cb62 Squeeze for ∨` instead of scalar checking for bool 2022-11-17 08:32:29 -05:00
Marshall Lochbaum
5985e92834 Initialized min/max-scan 2022-11-17 07:59:00 -05:00
Marshall Lochbaum
98d066c343 Use scan_max_num for sorted ⊒ 2022-11-16 21:20:54 -05:00
Marshall Lochbaum
1924aee61c f64 min/max scan 2022-11-16 21:14:32 -05:00
Marshall Lochbaum
136c1afacc Macro-ize integer min/max scan and add sorted flag 2022-11-16 20:49:57 -05:00
Marshall Lochbaum
ac7ff155d4 Pull out scan_add_bool() utility function from scan_c1() 2022-11-16 20:16:33 -05:00
Marshall Lochbaum
d6029985e8 Move scan to its own file 2022-11-16 19:48:37 -05:00
Marshall Lochbaum
93ef4bb2a9 Direct ⍷bool implementation 2022-11-15 22:03:50 -05:00
Marshall Lochbaum
f1142b4184 Branchless ⊒bool, moderately faster 2022-11-15 18:27:54 -05:00
Marshall Lochbaum
d6b09adb57 Add primitive and primitive-1modifier call macros to calls.h 2022-11-15 16:08:34 -05:00
Marshall Lochbaum
4506caf3ac Faster self-search on sorted 𝕩 using »⊸≠𝕩 2022-11-15 16:08:17 -05:00
Marshall Lochbaum
856eabd493 Self-search implementation comments 2022-11-14 21:08:44 -05:00
dzaima
8e631d7177 always take size in mm_alloc as u64 2022-11-14 22:42:32 +02:00
dzaima
3be97e6f61 update commented-out debug print 2022-11-14 20:44:19 +02:00
dzaima
a9737c22ea extract bit array negation to function 2022-11-14 19:47:53 +02:00
dzaima
7e934b04db better negation buffer handling 2022-11-14 19:02:44 +02:00
dzaima
63a2791361 add some NOUNROLLs 2022-11-14 18:00:00 +02:00
Marshall Lochbaum
85f54b2b25 Check for a small return type in large-range /⁼ with a sparse table 2022-11-13 18:00:10 -05:00
Marshall Lochbaum
cd16c8a1c7 Blocked 4-byte ⍋bool and ⍒bool with Singeli 2022-11-13 18:00:10 -05:00
Marshall Lochbaum
1647e98fd2 Use Singeli code for ⍋bool and ⍒bool with 1- and 2-byte result 2022-11-13 18:00:10 -05:00
Marshall Lochbaum
6bea10de21 Implementation comments and minor refactoring for /⁼ 2022-11-13 18:00:10 -05:00
Marshall Lochbaum
7acd9d5688 Indices/Replicate implementation comments 2022-11-13 18:00:10 -05:00
dzaima
c81e95730a fix -DMM=0 builds 2022-11-13 13:47:29 +02:00
dzaima
b244d7ecf5 disallow bitwise hashing for ¯0; prepare for mm_alloc taking u64 size 2022-11-12 23:45:39 +02:00
Marshall Lochbaum
7d56d61235 Hash table for Occurrence Count (⊒) 2022-11-12 15:47:59 -05:00
Marshall Lochbaum
1be4f4c2e7 Fix value movement when resizing Classify (⊐) hash 2022-11-12 15:47:59 -05:00
Marshall Lochbaum
62867f4533 Make brute-force Mark Firsts store result in a register (always <64 elements) 2022-11-12 15:47:59 -05:00
Marshall Lochbaum
8560ce0f4d Move hash table initializers to functions to save some binary space 2022-11-12 15:47:59 -05:00
Marshall Lochbaum
9adfb13355 Extend Mark Firsts hash table to handle Classify 2022-11-12 15:47:59 -05:00
Marshall Lochbaum
37d7694c52 64-bit Mark Firsts (∊) hash table 2022-11-12 15:47:59 -05:00
Marshall Lochbaum
dc7389a660 Mark Firsts hash table resizing policy tweaks 2022-11-12 15:47:59 -05:00
Marshall Lochbaum
2e1b64e0ca Resizable hash table for Mark Firsts (∊) 2022-11-12 15:47:59 -05:00
Marshall Lochbaum
8a551ab5ce Add 32-bit hash table for Classify (⊒) 2022-11-12 15:47:59 -05:00
Marshall Lochbaum
d8e4e7d96f Unify small-type and small-range tables for Classify (⊐) 2022-11-12 15:47:59 -05:00
dzaima
a64f0ada5f update src/README.md 2022-11-12 20:30:47 +02:00
dzaima
a7daeea6d9 fix (500⥊¯1‿5) ⊔ 500‿1‿3⥊3 2022-11-12 19:20:34 +02:00
Marshall Lochbaum
beb997ccb9 Avoid data movement for empty cells in Group 𝕩 2022-11-12 07:25:41 -05:00
dzaima
a1e12106ce use FILL_TO for more compact edge-case handling 2022-11-12 13:45:52 +02:00
dzaima
1241da4d74 fix group of array with empty cells 2022-11-12 13:41:45 +02:00
dzaima
eb880d7135 set result fill fill immediately instead of delaying to before return 2022-11-12 13:30:35 +02:00
Marshall Lochbaum
d2cdae4962 Fast case for bool⊔𝕩 using compress 2022-11-10 21:22:29 -05:00
Marshall Lochbaum
a3da018055 Group code for 1-bit cells 2022-11-10 14:52:45 -05:00
Marshall Lochbaum
6eb504118e Split out optimized Group cases and add comments 2022-11-10 14:52:45 -05:00
Marshall Lochbaum
801472d6d4 Implement bit_cpy versions of the Group methods that use memcpy 2022-11-10 14:52:45 -05:00
Marshall Lochbaum
e7c1918ba0 Native <` implementation using addition 2022-11-09 12:19:02 -05:00
dzaima
87d0fa5dc7 fix gcc 9 build 2022-11-08 16:59:17 +02:00
dzaima
6467530823 use ty_u 2022-11-08 16:56:43 +02:00
Marshall Lochbaum
812b97dc51 Mark boolean +` result sorted and squoze 2022-11-07 20:23:15 -05:00
Marshall Lochbaum
666a41ab12 1- and 2-byte Singeli boolean +` 2022-11-07 17:54:11 -05:00
Marshall Lochbaum
f1ff499244 Implement multiple result types for non-Singeli +`bool 2022-11-07 17:09:41 -05:00
Marshall Lochbaum
7b3c69f9da Take sum first in boolean plus-scan; special code for sparse or boolean sum 2022-11-07 15:35:53 -05:00
dzaima
4f9af9965c clangd compilation command generating utility 2022-11-06 18:34:47 +02:00
dzaima
fdbd36250b noinline writeNum, use loop instead of generated code 2022-11-06 03:17:31 +02:00
dzaima
fc059a77d0 noinline various things in main.c 2022-11-06 02:36:57 +02:00
dzaima
28d434a201 catch double-frees in debug mode 2022-11-06 02:11:12 +02:00
dzaima
f87a1155f5 store references instead of GC root functions to handle mutable roots
-0.21% binary size; mm_visit & mm_visitP got inlined in the gcFn-s, even though that's very pointless
2022-11-06 02:01:14 +02:00
dzaima
36111276c6 •math.Atan2 2022-11-05 20:36:54 +02:00
dzaima
25694db7ca better non-Singeli comparison 2022-11-05 20:09:30 +02:00
dzaima
c9be8516c3 deduplicate generic sort work 2022-11-05 19:41:04 +02:00
dzaima
6e552fedf5 base case implementation for ⍋c8arr & ⍋c16arr 2022-11-05 19:00:59 +02:00
dzaima
ff0bfd34bb squeeze Grade result 2022-11-05 18:48:54 +02:00
dzaima
471afb2a3f handle 256|i8arr & similar 2022-11-03 17:28:21 +02:00
dzaima
3b56223618 allow 32768|intarr to squeeze to i16arr 2022-11-03 17:21:12 +02:00
dzaima
c1a77a24fb fast (2⋆n)|ints 2022-11-03 15:35:41 +02:00
dzaima
96394c6f73 fix ⊔ making an invalid array on ("Af64"•internal.Variation⋈¯1)⊔⟨⟩ 2022-11-03 01:26:38 +02:00
dzaima
cc406595c0 use direct comparison in ⊔ 2022-11-03 00:32:44 +02:00
dzaima
70e7dcf38a Merge remote-tracking branch 'mlochbaum/subset' 2022-11-02 23:19:03 +02:00
dzaima
4daabd708a introduce calls.h, move vec_addN and vec_join to core header
and remove a bunch of apparently unnecessary mut.h imports
2022-11-02 23:17:52 +02:00
Marshall Lochbaum
600ee411f8 Use slash and comparison functions to filter •rand.Subset output faster 2022-11-01 20:25:13 -04:00
dzaima
bed2708537 move non-Singeli comparisons to function lookup 2022-10-27 19:27:15 +03:00
dzaima
8d6172126c use void* instead of u8* for singeli function arguments 2022-10-25 17:27:08 +03:00
dzaima
5a7d702bc6 use incG more 2022-10-25 16:59:08 +03:00
Marshall Lochbaum
9862331696 Fix single-file build by defining GRADE_UD in selfsearch.c 2022-10-24 22:08:28 -04:00
Marshall Lochbaum
2844520109 Need to define GRADE_UD for radix.h from selfsearch.c without Singeli 2022-10-24 07:49:36 -04:00
Marshall Lochbaum
fa03cabc53 Index-of with small 𝕨 using (⊣×1+⊢)´ pattern 2022-10-23 22:08:08 -04:00
Marshall Lochbaum
d1e40a01df Use saved counts and possibly dense table initialization for 1-byte radix lookup 2022-10-23 22:08:08 -04:00
Marshall Lochbaum
7cbd23c832 Skip radix moves if the top bytes are all the same 2022-10-23 22:08:08 -04:00
Marshall Lochbaum
b9d5f10d4a Unify radix sort and radix lookup prefix sums 2022-10-23 22:08:08 -04:00
Marshall Lochbaum
2207d9f1bb Combine monadic ∊ and ⊐ radix lookups with a macro 2022-10-23 22:08:08 -04:00
Marshall Lochbaum
552e4f6751 Fix refcount handling for bool⊐𝕩 2022-10-23 22:08:08 -04:00
Marshall Lochbaum
979c31fc3e Table-based dyadic ⊒ for integers up to 2 bytes 2022-10-23 22:08:08 -04:00
Marshall Lochbaum
5df198602c Adjust search table sparse initialization threshold for type it stores 2022-10-23 22:08:08 -04:00
Marshall Lochbaum
e318830365 Dyadic ⊒ implementation with a generic hash table 2022-10-23 22:08:08 -04:00
Marshall Lochbaum
f5555021f2 Index-of with boolean 𝕨, using two comparisons 2022-10-23 22:08:08 -04:00
Marshall Lochbaum
0f7bfa2575 Implement bit_find and fast self-search for booleans 2022-10-23 22:08:08 -04:00
Marshall Lochbaum
96740566e9 Extend lookup code to boolean searched-for array 2022-10-23 22:08:08 -04:00
Marshall Lochbaum
d9519eb6e1 Extend table-based membership to Index-of 2022-10-23 22:08:08 -04:00
Marshall Lochbaum
0cb5e4ee10 Table-based 1- and 2-byte integer membership 2022-10-23 22:08:08 -04:00
Marshall Lochbaum
447ce6163f Introduce bit_has and use for ∧´, ∨´, and 𝕨∊bool 2022-10-23 22:08:08 -04:00
Marshall Lochbaum
236d8dedd6 Move search functions to search.c 2022-10-23 22:08:08 -04:00
dzaima
cc467ce8ca cleanup 2022-10-23 13:14:36 +03:00
dzaima
66584ce149 fix 0‿¯1⊏129⥊100 2022-10-21 18:17:12 +03:00
dzaima
f2b6b5d446 system value redefining with •ReBQN 2022-10-19 23:12:28 +03:00
dzaima
4d9a63f68b fix •ReBQN 2022-10-19 20:56:30 +03:00
dzaima
336049560b don't include •FFI if FFI is disabled 2022-10-19 19:31:21 +03:00
dzaima
ec62856b67 •listsys 2022-10-19 19:19:11 +03:00
dzaima
accd7384bd delay •file initialization 2022-10-19 19:16:13 +03:00
dzaima
a72778ed6f extract system value info to object 2022-10-19 19:15:21 +03:00
dzaima
64ce7ec6fe fix non-squeezed string •FFI arguments 2022-10-18 19:26:53 +03:00
Marshall Lochbaum
130653dbda Allow character arguments to •bit operations 2022-10-17 09:39:38 -04:00
Marshall Lochbaum
89c1b39c6d Don't allow 0 as a width for •bit 2022-10-17 09:39:38 -04:00
Marshall Lochbaum
698c902564 Implement scalar extension for •_bit 2022-10-17 09:39:38 -04:00
Marshall Lochbaum
022ef64f6b Add NOUNROLLs to bitwise functions 2022-10-17 09:39:38 -04:00
Marshall Lochbaum
80f8ac9643 2-argument •bit operations 2022-10-17 09:39:38 -04:00
Marshall Lochbaum
8f5259e77d Implement 1-argument •bit operations 2022-10-17 09:39:38 -04:00
dzaima
2a17d87572 calculate •FFI allocation layout ahead-of-time 2022-10-16 14:16:34 +03:00
dzaima
83af05d274 fix building on gcc≤10 2022-10-10 13:53:56 +03:00
dzaima
2eecc0feda squeeze *u8/*u16/*u32 result
it has to sometimes be one size up to accommodate for the upper unsigned range, but often (?) it should fit fine in the signed range of its type
2022-10-08 19:59:03 +03:00
dzaima
ac041d37f4 fix WARN_SLOW build 2022-10-08 19:30:08 +03:00
dzaima
7e1c9b50cd initial struct support 2022-10-08 19:08:20 +03:00
dzaima
702d4e979d various utility changes 2022-10-08 19:03:41 +03:00
dzaima
529d2abae4 add warning about miscompilation for x86 on gcc 2022-10-08 14:41:44 +03:00
dzaima
7bda795365 fix gcc warnings about pointer casts in 32-bit builds 2022-10-07 12:57:59 +03:00
dzaima
abcb575a53 simplify bit boolean constant replicate start 2022-10-04 22:11:20 +03:00
Marshall Lochbaum
ce74e36a19 Fix lots of missing casts for function calls 2022-09-30 20:20:38 -04:00
dzaima
82ac059b75 disable clmul ≠` when pclmul not available 2022-09-30 20:06:52 +03:00
Marshall Lochbaum
cca64bba70 Move nescan.c into md1.c and constrep.c into slash.c 2022-09-30 11:40:37 -04:00
Marshall Lochbaum
47cdf02877 Build Singeli files with a filename prefix 2022-09-30 11:35:25 -04:00
Marshall Lochbaum
cad566d547 Not-equals scan with carry-less multiply 2022-09-29 20:39:46 -04:00
Marshall Lochbaum
acc200222d Move constant Replicate Singeli code to its own file 2022-09-29 20:33:09 -04:00
Marshall Lochbaum
582afe33c9 Merge 3 to 7 replicate float with other types: shuffle instead of permute 2022-09-29 20:12:45 -04:00
Marshall Lochbaum
29886f355a Combine small-replication shuffle vector tables across types 2022-09-29 19:58:14 -04:00
Marshall Lochbaum
e407286185 BMI2-based constant boolean Replicate for 𝕨<=52 2022-09-28 21:56:57 -04:00
Marshall Lochbaum
0c0d967dc3 Adjust Table thresholds for fast constant Replicate 2022-09-28 17:18:55 -04:00
Marshall Lochbaum
09aba9bc37 slash.singeli is only used with __BMI2__ for now 2022-09-28 17:18:42 -04:00
Marshall Lochbaum
4836f70e0d Simplify rep_const_broadcast, removing unused kv==0 case 2022-09-28 14:14:39 -04:00
Marshall Lochbaum
d28a74b572 Move 4-shuffle data to a table 2022-09-28 13:35:08 -04:00
Marshall Lochbaum
9947de0146 Performance improvements when compiling slash.singeli 2022-09-27 22:00:59 -04:00
Marshall Lochbaum
db3e0a6324 Move all the algorithm decision logic into main rep_const and simplify 2022-09-27 22:00:59 -04:00
Marshall Lochbaum
c430922a7e Use shared functions and shuffle array for sizes 3 to 7 in constant Replicate 2022-09-27 22:00:59 -04:00
Marshall Lochbaum
68aeb0f7cb Add large-constant replicate method always using 4 shuffles 2022-09-27 22:00:59 -04:00
Marshall Lochbaum
7069a60453 Handle all constant Replicate in Singeli 2022-09-27 22:00:59 -04:00
Marshall Lochbaum
15c405e7bf Factorize constant replicate lengths under 32 2022-09-27 22:00:59 -04:00
Marshall Lochbaum
7535d768dd Singeli shuffle-based code for constant replicates <=7 2022-09-27 22:00:59 -04:00
Marshall Lochbaum
851f50635e Some simplifications in base.singeli 2022-09-27 22:00:59 -04:00
dzaima
46501ac819 update build & packaging information
closes #45
2022-09-27 17:53:06 +03:00
dzaima
d3ed718a6d branchless sparse Where block size bound was too big 2022-09-26 23:12:17 +03:00
dzaima
bd823839fe fixes for / 2022-09-25 18:45:46 +03:00
dzaima
1fcd5295eb slight attempt at improving ↕list 2022-09-25 14:55:49 +03:00
dzaima
5c87c291f9 refactor unroll/vectorization disabling macros 2022-09-25 14:49:57 +03:00
dzaima
2bb6750d7d better bitarr fill 2022-09-24 19:31:46 +03:00
dzaima
608489aed1 fix gcc singeli build 2022-09-24 19:30:10 +03:00
dzaima
37a3979c86 clean up generic unit reshape case 2022-09-24 19:20:32 +03:00
Marshall Lochbaum
e8e10790f8 Fast array reshape 2022-09-23 17:40:30 -04:00
Marshall Lochbaum
218a8b069e Rework reshape of singleton 2022-09-23 15:32:27 -04:00
Marshall Lochbaum
8e24da8e8e Adjust Replicate thresholds 2022-09-23 08:22:41 -04:00
Marshall Lochbaum
8a13bf9476 Constant boolean replicate 2022-09-22 22:32:52 -04:00
Marshall Lochbaum
7f6cf06eea Merge scan-based sparse Indices/Replicate code with macros 2022-09-22 22:09:56 -04:00
Marshall Lochbaum
d647978c8f Type-independent Replicate by constant 2022-09-22 21:42:18 -04:00
Marshall Lochbaum
ec12dd4502 Switch to forward inclusive sums for all radix sorting, and use Singeli
Removes SWAR for 8-bit counts, since reverse sorting uses negatives
2022-09-22 16:44:05 -04:00
Marshall Lochbaum
8e1d8bb42c Use Singeli max/min scan for Indices and Sort 2022-09-22 15:17:54 -04:00
Marshall Lochbaum
bc4f5167fb Constant replicate using plus-scan 2022-09-21 19:40:04 -04:00
Marshall Lochbaum
6ed3c18389 Implement SIMD wrapping plus-scan for Replicate 2022-09-21 19:40:04 -04:00
dzaima
c42f0fd699 revert de4fca85 2022-09-22 01:18:41 +03:00
dzaima
de4fca859f extract arr_shCopy 2022-09-22 00:51:04 +03:00
dzaima
06fe437520 bitarr reversing 2022-09-22 00:38:09 +03:00
dzaima
1e3089ceaa fast ⍉𝕩 when 2=≠𝕩 2022-09-20 22:29:32 +03:00
dzaima
7c4673f972 more num_squeezeChk 2022-09-20 19:27:23 +03:00
dzaima
42ae82eb1f simpler slash_ucw !elInt(w) case 2022-09-20 19:14:02 +03:00
dzaima
42e36851b9 more cleanup 2022-09-20 18:57:22 +03:00
dzaima
f231a30057 fix 𝕨⊔0 2022-09-20 17:36:55 +03:00
dzaima
cec5b7dc6c slash.c cleanup 2022-09-20 17:32:12 +03:00
Marshall Lochbaum
01f73dc83b Move usum and bit_sum from numarr.h to stuff.c 2022-09-19 19:38:26 -04:00
Marshall Lochbaum
ac4729bb29 Use grouped compress for all byte sizes if the number of groups is small enough 2022-09-19 19:31:44 -04:00
Marshall Lochbaum
11e3db1787 Can't call harr withFill before adding data to array 2022-09-19 11:15:47 -04:00
Marshall Lochbaum
05401547c1 Grouped compress for odd cell widths 2022-09-19 10:52:26 -04:00
Marshall Lochbaum
9af77e63ee Split up partitioning loop in Group for rank 1 and rank>1 cases 2022-09-18 16:43:19 -04:00
Marshall Lochbaum
12c4fd0b07 Vectorizable usum code for i8, i16, i32 2022-09-18 16:15:20 -04:00
Marshall Lochbaum
d525acb51e Merge branch 'master' into cellwidth 2022-09-18 15:26:34 -04:00
dzaima
9453a9b665 remove old loops for non-bitarr 𝕨 consisting of 0 and 1 from 𝕨/𝕩 2022-09-18 22:12:07 +03:00
dzaima
43ddb9759c inline part of depth 2022-09-18 21:58:53 +03:00
dzaima
dd56cfab20 allow using picked element of ⌾(n⊸⊑) in-place 2022-09-18 21:00:51 +03:00
dzaima
770f7b2f0c check type directly in pick_ucw 2022-09-18 20:17:48 +03:00
dzaima
c0cf58ffc2 use existing function for 8-bit utf8Decode 2022-09-18 20:17:20 +03:00
Marshall Lochbaum
cae65947cd Apply fast Replicate code whenever the cell size is right 2022-09-17 21:01:17 -04:00
Marshall Lochbaum
ea1367e639 Handle cell size 0 correctly in cellWidthLog() 2022-09-17 21:01:13 -04:00
Marshall Lochbaum
c72b9b5abd Redo replicate with sparse and dense cases 2022-09-17 16:17:47 -04:00
Marshall Lochbaum
5f196c49d9 Extend sparse and dense where to all cases fitting in i32s 2022-09-16 22:01:56 -04:00
Marshall Lochbaum
fb1230bcc2 Sparse Indices prototype 2022-09-16 22:01:56 -04:00
Marshall Lochbaum
26c3dbfeea Start using type-independent utilities in compress() 2022-09-16 22:01:56 -04:00
Marshall Lochbaum
3505e1515e Extend Group where 𝕨 is an integer list to handle higher-rank 𝕩 2022-09-16 22:01:56 -04:00
Marshall Lochbaum
21033fa355 Move Group to its own file 2022-09-16 22:01:56 -04:00
Marshall Lochbaum
0b1ded14e0 Type-independent Reverse 2022-09-16 22:01:56 -04:00
Marshall Lochbaum
b84a2d4e1f Special-casing for length 1 in self-search functions 2022-09-16 22:01:56 -04:00
Marshall Lochbaum
57d33990e3 Make self-search special code only depend on cell size 2022-09-16 22:01:56 -04:00
dzaima
9c5396e711 consistently output WARN_SLOW information on stderr 2022-09-12 20:12:32 +03:00
dzaima
89503ba1c1 don't not check top bits in LIKELY & RARE 2022-09-12 19:51:07 +03:00
dzaima
889c520251 move slash_im setting 2022-09-12 18:32:56 +03:00
dzaima
a46ec7343e not slow ⍉bitarr, fix ⊢⌾⍉ 2‿3‿4⥊↕24 2022-09-12 18:27:18 +03:00
dzaima
32d533b6e2 don't print left argument of ⊑ if it's large 2022-09-12 18:21:04 +03:00
dzaima
47c4a53da4 fix WARN_SLOW build 2022-09-12 18:19:05 +03:00
Marshall Lochbaum
6d372959e8 Just return 𝕩 for an all-ones compress 2022-09-11 21:48:31 -04:00
Marshall Lochbaum
9b17701c66 Sparse 1- and 2-byte compress, with blocking, if total sum is low enough 2022-09-11 20:19:20 -04:00
Marshall Lochbaum
c796670549 Faster trailing zero trim, and apply it to all cases in compress() 2022-09-11 20:19:20 -04:00
Marshall Lochbaum
2baa88ad31 Compress for 4-byte and 8-byte data using index blocks 2022-09-11 18:00:29 -04:00
Marshall Lochbaum
ab25b08f84 Move compress (bool/list) to its own function 2022-09-11 16:32:41 -04:00
Marshall Lochbaum
819899c745 Implement f64 Where with u16 blocks 2022-09-11 16:32:41 -04:00
Marshall Lochbaum
fda3efe217 More macros for Where 2022-09-11 15:31:23 -04:00
Marshall Lochbaum
0d6894ddbc Fix broken non-Singeli dense i32 Where 2022-09-11 15:15:56 -04:00
Marshall Lochbaum
4bc5350747 Branchless sparse i16 Where 2022-09-11 11:00:17 -04:00
Marshall Lochbaum
1f40d36712 Separate where into its own function and split different types completely 2022-09-11 08:31:20 -04:00
Marshall Lochbaum
638121c054 Use blocked method for i32 Where with or without Singeli 2022-09-11 07:57:14 -04:00
Marshall Lochbaum
4999758497 Branchless i32 sparse Where 2022-09-11 07:57:01 -04:00
Marshall Lochbaum
017fcaea2a Move slash functions to a separate file 2022-09-10 09:58:42 -04:00
Marshall Lochbaum
bb3ecdca6a Sparse Where 2022-09-10 09:12:16 -04:00
Marshall Lochbaum
ae9817fd0d Fast path for / with empty result, and faster non-Singeli Where 2022-09-10 09:02:17 -04:00
Marshall Lochbaum
d8abc4ef7e Separate handling for ⊔ when 𝕨 changes value rarely 2022-09-09 18:11:12 -04:00
Marshall Lochbaum
ef2dee9a4d Special case data movement for ⊔ on sorted 𝕨 2022-09-09 13:21:08 -04:00
Marshall Lochbaum
569dcacac1 Do Group's range check and ¯1 counting on 1- or 2-byte ints
Doesn't vectorize, but at least it speeds up filtering later
2022-09-09 08:58:23 -04:00
Marshall Lochbaum
1e143644b6 Filter out ¯1s in Group with / if there are enough of them 2022-09-08 21:00:15 -04:00
dzaima
e266fbd09e basic float monadic arith loops, incl. -fno-math-errno 2022-09-08 23:18:47 +03:00
dzaima
2358436b89 more efficient spreadBits{[8]u32, u8} 2022-09-08 21:51:25 +03:00
dzaima
d3a1fee437 singeli bit_sel 2022-09-08 21:39:51 +03:00
dzaima
d60713225b just use u64 in bitsel 2022-09-08 20:25:09 +03:00
dzaima
1619b6087b mild optimization of v_set argument consumption 2022-09-08 20:05:13 +03:00
dzaima
3ccef1fe86 ⊔𝕩 → ⊔⟜(↕≠)𝕩 2022-09-08 14:52:19 +03:00
dzaima
59cadb06fe fix ⟨⟨⟩⟩⊏⟨⟩ incorrectly erroring
incl. ⟨⟨⟩,⟨⟩⟩⊏0‿0⥊⟨⟩, ⟨⟨⟩⟩⊏0‿0⥊⟨⟩, etc
2022-09-08 00:56:31 +03:00
dzaima
66d32e0acb fast exit for depth-2 𝕨 in 𝕨⊏𝕩 2022-09-08 00:47:25 +03:00
dzaima
96ca9092ba attempt at better bit_sel dispatch 2022-09-08 00:37:44 +03:00
dzaima
234443a17c src/README.md updates 2022-09-08 00:03:42 +03:00
dzaima
59e947cc20 more consistent type checking & conversion functions 2022-09-07 23:56:03 +03:00
dzaima
734e9fc116 better type checking helpers 2022-09-07 23:38:51 +03:00
dzaima
2299c8094e make gcc scream less 2022-09-07 20:28:45 +03:00
dzaima
0e306ca149 use WRAP instead of manual index management 2022-09-07 20:22:26 +03:00
dzaima
10004b82f7 make 1.2‿3.4⊏≍˘"abcd" error 2022-09-07 19:53:31 +03:00
dzaima
94e6168319 don't read past the end of array even if the value isn't used
bit_sel still uses it
2022-09-07 19:41:22 +03:00
dzaima
5d660cbf19 deduplicate hashmap size doubling function 2022-09-07 19:32:02 +03:00
dzaima
1a583725be use TALLOCP in other places 2022-09-07 17:59:17 +03:00
dzaima
b784dac9e1 make clang not go crazy 2022-09-07 00:27:23 +03:00
Marshall Lochbaum
a43a42e4d1 Select from small boolean list by copying to bytes 2022-09-06 16:34:08 -04:00
Marshall Lochbaum
f877a45a63 Vectorize range checks for 1- and 2-byte indices 2022-09-06 16:34:08 -04:00
Marshall Lochbaum
4a8244f2c1 Faster selection from boolean list 2022-09-06 16:08:16 -04:00
Marshall Lochbaum
55263bcbc4 Handle bit selection from arrays with under 2 elements 2022-09-06 16:08:16 -04:00
dzaima
1c279a0a20 fast bitarr×intarr 2022-09-06 22:47:16 +03:00
dzaima
a90e7de997 simpler atom-array arith on length 0 inputs 2022-09-06 18:24:49 +03:00
dzaima
311aa74303 simpler bitsel for ∨ 2022-09-06 17:31:42 +03:00
dzaima
ce1c81219e manual wideness check 2022-09-06 17:23:57 +03:00
dzaima
0b4259559c include errno.h in file.c unconditionally 2022-09-06 00:08:55 +03:00
dzaima
bffe16d6e9 fix overflowed & float functions 2022-09-05 23:23:51 +03:00
dzaima
c0b2164dc8 new array-atom arith 2022-09-05 22:52:53 +03:00
dzaima
629076d001 new ⟨⟩↕0 behavior & fix /⁼large_i8arr 2022-09-05 22:40:40 +03:00
dzaima
7f00d54372 rearrange arithd.c a bit more 2022-09-04 00:35:58 +03:00
Marshall Lochbaum
7792c60180 Fix unnecessary errors with computed shape 0, such as 1e8‿⌊‿1e8⥊↕5 2022-09-03 14:41:28 -04:00
Marshall Lochbaum
97bfacec44 Fix hang in •rand.Subset caused by moving wi==0 case into wi==xi 2022-09-03 14:41:28 -04:00
Marshall Lochbaum
44c0baee05 No need to initialize the negative half of the counts table 2022-09-03 14:41:28 -04:00
Marshall Lochbaum
37af32d95c Faster /⁼ for boolean and long 1-byte and 2-byte 𝕩 2022-09-02 14:31:07 -04:00
dzaima
0139c5f58d separate dyadic arith cases 2022-09-02 14:01:35 +03:00
dzaima
a637adadd9 rearrange arithd.c in preparation for separating its cases 2022-09-02 13:10:04 +03:00
dzaima
76141f6fe6 reduce lifetime of e in dyArith_AA 2022-09-01 22:45:30 +03:00
dzaima
1b8bd0707e make dyarith array-array dispatch its own function 2022-09-01 22:22:13 +03:00
dzaima
bd04e38a5e use existing copy functions for arr_join_inline 2022-09-01 19:52:51 +03:00
dzaima
90dd740bfc use cpyHArr instead of a getter loop 2022-09-01 19:25:20 +03:00
dzaima
dad47cf391 move arith_recd to a noinline function 2022-09-01 18:51:02 +03:00
dzaima
f758a3f1f6 proper argument name 2022-09-01 18:40:48 +03:00
dzaima
1c43ad6431 squeeze •rand.Subset result 2022-09-01 18:25:10 +03:00
dzaima
e72c7dc937 faster ÷ ⋆ √ | ⋆⁼ on i8 & i16 arrays 2022-09-01 16:06:52 +03:00
dzaima
5cfa89ad5a separate functions for comparison scalar & array cases 2022-09-01 15:06:34 +03:00
dzaima
72f25dad54 bitarr ↕1 and ↕2 2022-09-01 13:29:03 +03:00
dzaima
7d716d5ce0 elInt 2022-09-01 11:17:49 +03:00
dzaima
203916b44f error on non-numbers in +𝕩 2022-09-01 11:16:42 +03:00
Marshall Lochbaum
76c93d85e1 Dyadic 32-bit / based on 8-bit monadic / 2022-08-31 16:11:52 -04:00
Marshall Lochbaum
1e0cf78fd0 Implement 4-byte where with blocks of 2-byte where 2022-08-31 16:11:52 -04:00
Marshall Lochbaum
6f02705d9f Make small-range Grade code style more like radix code 2022-08-31 16:11:52 -04:00
Marshall Lochbaum
758c174cae Optimistic special case to quickly invert permutations with ⍋ 2022-08-31 16:11:52 -04:00
Marshall Lochbaum
a42335af4f Use or-equals for dyadic ∊ when 𝕩 is small and arguments are flat 2022-08-31 16:11:52 -04:00
Marshall Lochbaum
15b444540e Extend self-search typed code to characters by treating as numbers 2022-08-31 16:11:52 -04:00
Marshall Lochbaum
9028ebfe8b Native Windows (↕) 2022-08-31 16:11:52 -04:00
dzaima
88f73d2585 fix comment & add note 2022-08-31 22:22:03 +03:00
dzaima
9775339e2c squeeze result of ⌊ and ⌈ 2022-08-30 00:18:25 +03:00
dzaima
ce1032f80d second instruction shouldn't have a swap requirement anymore 2022-08-29 23:09:47 +03:00
dzaima
8ea2352a7b clear out swap table after first instruction generation 2022-08-29 23:08:38 +03:00
dzaima
70ee775a33 fix i16arr+i8arr overflow 2022-08-29 22:59:12 +03:00
dzaima
39a0a894e2 correct char-char→signed int overflow checking 2022-08-29 22:48:46 +03:00
dzaima
b37f620889 disable manual array F character loops when not running singeli 2022-08-29 19:46:41 +03:00
dzaima
78e5799147 merge dyarith.singeli and dyarith2.singeli 2022-08-29 19:18:20 +03:00
dzaima
777c5cc1a5 rename things 2022-08-29 19:05:34 +03:00
dzaima
ce5ece34e1 new arith 2022-08-28 23:28:06 +03:00
dzaima
3c1ef1c9a2 use elNum 2022-08-28 16:44:21 +03:00
Marshall Lochbaum
f80d3ce263 Branchless integer binary search 2022-08-28 09:16:25 -04:00
Marshall Lochbaum
139faee0a1 Unify integer and character Bins 2022-08-28 09:16:09 -04:00
Marshall Lochbaum
9376e02ecb Boolean sorting 2022-08-27 15:44:25 -04:00
Marshall Lochbaum
e027aca0cf Radix grades 2022-08-27 15:16:20 -04:00
Marshall Lochbaum
36e54d1a39 1-byte radix with length ==256 doesn't work because of SWAR overflow when descending 2022-08-27 11:10:17 -04:00
Marshall Lochbaum
4ec83e51a6 Merge sort.h into grade.h 2022-08-27 10:59:00 -04:00
Marshall Lochbaum
9d59dff522 4-byte sorting: insertion and radix 2022-08-26 22:04:32 -04:00
Marshall Lochbaum
f946a3de41 2-byte sorting: insertion, radix, counting 2022-08-26 22:04:32 -04:00
Marshall Lochbaum
5034e55c79 Move Sort to template file sort.h (for up/down) like Grade 2022-08-26 22:04:32 -04:00
Marshall Lochbaum
a0a4ecadc7 1-byte sorting: insertion, bucket, counting 2022-08-26 22:04:32 -04:00
dzaima
5a162c7929 macos-specific sub-second file times 2022-08-26 22:46:00 +03:00
dzaima
2939395906 fallback file time getting method 2022-08-26 22:31:10 +03:00
dzaima
81e09956d3 •file.Size, make •file.List decode UTF-8
invalid UTF-8 is a problem for the future
2022-08-26 13:37:51 +03:00
dzaima
484158318a explicit JIT_ENABLED macro independent from JIT_START 2022-08-26 10:16:45 +03:00
dzaima
b16378bef6 add thing that was previously non-existent 2022-08-26 10:16:16 +03:00
dzaima
1927cb5756 implement ⍷𝕩 with (∊𝕩)/𝕩 2022-08-25 23:17:00 +03:00
dzaima
398a66ed94 fix c0 offset 2022-08-25 22:44:31 +03:00
dzaima
20a15097b4 remove non-existent thing 2022-08-25 22:33:38 +03:00
dzaima
d12a53fd08 •file.Created, •file.Accessed, •file.Modified 2022-08-25 22:29:03 +03:00
dzaima
905a9f78d4 {raw⇐1} •SH 𝕩 2022-08-25 22:27:35 +03:00
Marshall Lochbaum
e8e12e2d8f Another allocation improvement 2022-08-25 14:09:10 -04:00
Marshall Lochbaum
34950339c2 Improve radix+table allocation layout 2022-08-25 14:00:28 -04:00
dzaima
600bb59c77 more diagram 2022-08-25 20:27:30 +03:00
Marshall Lochbaum
c590d73030 Missed TFREE 2022-08-25 11:25:59 -04:00
Marshall Lochbaum
b2992a11b8 1- and 2-byte methods for monadic ⊐ 2022-08-25 11:10:11 -04:00
Marshall Lochbaum
98cd80c13d Port all the integer monadic ∊ methods to ⊒ 2022-08-25 10:39:38 -04:00
Marshall Lochbaum
f54942f175 Make first initialization in radix 4-byte lookup sparse too 2022-08-24 21:05:39 -04:00
Marshall Lochbaum
ad8570be11 Wait, sparse initialization with a pass through the argument is faster than radix stuff 2022-08-24 20:26:02 -04:00
Marshall Lochbaum
5cd2cab26e Small-number integer ∊ with all-pairs comparison and 2-byte radix+table 2022-08-24 18:44:00 -04:00
Marshall Lochbaum
7ffa0dac4a Switch from using IA to *SH for length 2022-08-24 11:08:27 -04:00
Marshall Lochbaum
efe2e86271 Unify search function preambles, so all have empty and rank>1 cases 2022-08-24 11:03:05 -04:00
Marshall Lochbaum
9d402c1bdd Move self-search functions to selfsearch.c 2022-08-24 10:47:04 -04:00
Marshall Lochbaum
eff9df5a26 Table lookups for self-search functions 2022-08-24 10:28:19 -04:00
Marshall Lochbaum
633e790099 Radix-assisted lookup implementation for ∊ 2022-08-24 10:27:55 -04:00
dzaima
5be18bb180 fix ∾⟨"ab",1⟩ 2022-08-23 17:16:07 +03:00
dzaima
355d7978ed include •file.Parent in system value docs 2022-08-23 17:11:15 +03:00
dzaima
eb9550aa29 •file.Parent 2022-08-22 15:30:37 +03:00
dzaima
aa95b6add4 actually use TY(x) / PTY(x) more 2022-08-21 16:11:40 +03:00
dzaima
5112796cfd move m_unit out of header file 2022-08-21 15:48:04 +03:00
dzaima
c69a3373b9 better m_atomUnit 2022-08-21 08:50:33 +03:00
dzaima
7393c4b663 fully native ⊑ 2022-08-21 07:58:41 +03:00
dzaima
505f6869fc rt_join not needed anymore 2022-08-21 07:53:41 +03:00
dzaima
582ff8909b @ •FFI 𝕩 2022-08-21 07:49:09 +03:00
dzaima
4ed814e395 cleanup of new field reading macros 2022-08-20 09:04:22 +03:00
dzaima
1694bfb7d2 s?p?rnk(x) → S?P?RNK(x) 2022-08-20 08:36:59 +03:00
dzaima
e10f13d6ea x->type → TY(x) / PTY(x) 2022-08-20 08:30:12 +03:00
dzaima
d2a4efe4b5 x->sh → SH(x) / PSH(x) 2022-08-20 08:30:07 +03:00
dzaima
e6b4f85662 x->ia → IA(x) / PIA(x) 2022-08-20 08:30:03 +03:00
dzaima
558c14cccd fix fill of empty 𝕨⊏𝕩 2022-08-20 08:23:58 +03:00
dzaima
719d37cd63 reorder eachm_fn and eachd_fn args 2022-08-18 11:18:34 +03:00
dzaima
b1300e6e76 yet another string function rename 2022-08-18 09:07:32 +03:00
dzaima
e49fcd3449 typed n •rand.Range 2⋆31 2022-08-17 19:41:32 +03:00
dzaima
81bdec4737 128-bit multiplication & unrolling doesn't go well in clang 2022-08-17 19:10:01 +03:00
dzaima
c5b65b9246 typed •rand.Range 2022-08-17 18:53:41 +03:00
Marshall Lochbaum
56a1d9ec4c Singeli integer ⌊ and ⌈ 2022-08-15 16:01:17 -04:00
dzaima
1fcc3b0030 saner bytecode metadata storage 2022-08-15 12:00:50 +03:00
dzaima
4b272148f5 make allocL after splitTo call skip empty bucket checking 2022-08-14 11:19:11 +03:00
dzaima
7e4096e572 nicer fold loops 2022-08-14 02:34:26 +03:00
dzaima
ff0ea7a0ad fix empty program check in REPL 2022-08-14 02:33:48 +03:00
Marshall Lochbaum
b579440f5e Change × and ∧ integer reductions to reverse order 2022-08-13 19:02:22 -04:00
Marshall Lochbaum
82d2eb5b1a Fix monadic ⌊` initial element 2022-08-13 19:00:59 -04:00
Marshall Lochbaum
195336b6df Implement F˝x as <F´x for rank-1 x and arithmetic F 2022-08-13 16:04:20 -04:00
Marshall Lochbaum
22925eee4b Fast ⌊, matching ⌈ 2022-08-13 15:03:23 -04:00
Marshall Lochbaum
27943b85f4 Fast boolean =´ and ≠´ 2022-08-13 14:39:53 -04:00
Marshall Lochbaum
37312f7a03 Lift out bitarr_ptr calls 2022-08-13 14:28:16 -04:00
Marshall Lochbaum
f406b05303 Fill boolean scan gaps: ∨ and dyadic int≠bool 2022-08-13 14:05:48 -04:00
Marshall Lochbaum
6a00b6d7d4 Fast boolean -´ 2022-08-13 13:45:56 -04:00
Marshall Lochbaum
4950506c72 Separate boolean fold and scan code from other special cases to handle aliases better 2022-08-13 13:34:01 -04:00
dzaima
3ab92ecd66 explicit pointer → u64 conversion
work towards gcc 32-bit x86 builds. (gcc sign-extended pointers without this changeset)
gcc miscompiles `union B` usage though (https://godbolt.org/z/hEWKdc5PK), which I can do nothing about, so clang is still the only option for 32-bit x86 builds
2022-08-10 10:20:48 +03:00
dzaima
a9b3b3de97 use TALLOC instead of m_shArr 2022-08-07 01:19:09 +03:00
dzaima
36e78da56f
Merge pull request #30 from mlochbaum/join
Native Join
2022-08-07 01:13:30 +03:00
Marshall Lochbaum
78f14be79d Finish multidimensional join 2022-08-06 17:30:30 -04:00
Marshall Lochbaum
1d891388b5 High-rank join shape checking 2022-08-05 22:01:42 -04:00
Marshall Lochbaum
c1d5ca5c29 Switch from min and max to max and difference in Join shape checking 2022-08-05 21:50:39 -04:00
dzaima
bac1eaf9e3 squeeze result of ¨ 2022-08-05 03:19:12 +03:00
dzaima
fd1ac7487c wyhash microoptimization 2022-08-05 03:08:39 +03:00
dzaima
98e3021efb fix bit boolean array hash only using the first 1/8 of the array 2022-08-04 02:55:19 +03:00
Marshall Lochbaum
bf6a8c5699 Handle any rank empty, and rank 0, in Join 2022-08-01 21:21:10 -04:00
Marshall Lochbaum
d9d421db04 Handle atoms in Join of list 2022-08-01 17:31:07 -04:00
Marshall Lochbaum
b8e6996e7e Shape logic for Join of any list 2022-08-01 17:27:22 -04:00
dzaima
a6deb4b691 native unit∊vector 2022-07-26 04:30:33 +03:00
dzaima
9480ee9da2 native ⌾(F G), ⌾(F∘G), ⌾<, <⁼ 2022-07-26 03:38:30 +03:00
dzaima
a5e206d009 always print sample sum in the profiler 2022-07-26 03:14:05 +03:00
dzaima
58f8772bd3 use singeli copy functions for mut copyG 2022-07-26 00:18:00 +03:00
dzaima
9acb9e6bf4 fix ⎉ low-rank fill computation 2022-07-26 00:04:13 +03:00
dzaima
d959482d44 move generic array copy to its own function 2022-07-25 05:21:14 +03:00
dzaima
6b90615896 more correct stack height going negative check 2022-07-24 22:18:22 +03:00
dzaima
c1b66c5982 don't bother iterating through generic array items in cpy.*Arr on free 2022-07-24 00:05:42 +03:00
dzaima
32d8c09e2b limit row-wise F⌜ to 7<≠⥊𝕩 2022-07-23 02:18:42 +03:00
dzaima
599c56051d convert ⊐ result to smaller type based on ≠𝕨 2022-07-22 05:50:34 +03:00
dzaima
bd5ab29387 native vec⊐highRankArr 2022-07-22 05:39:26 +03:00
dzaima
8ca94cc623 make withFill properly know that a bit boolean array is a number array 2022-07-22 05:03:57 +03:00
dzaima
046284b96f random cleanup 2022-07-22 03:59:44 +03:00
dzaima
29fe3206cd fix path_rel with empty base path 2022-07-15 23:25:49 +03:00
dzaima
b43153495a a bit more valgrind debugging stuff 2022-07-10 06:07:28 +03:00
dzaima
5de154fb54 option to flush perf map after each write
e.g. for use while live debugging
2022-07-10 04:23:17 +03:00
dzaima
0b155e4416 simpler vg_pext_u64 tail handling
that makes it not get SIMD-mangled when optimizations are enabled, thus allowing valgrind to preserve vbits
2022-07-10 04:02:49 +03:00
dzaima
aabaac977b more strict freed memory handling for valgrind 2022-07-10 02:40:43 +03:00
dzaima
a17d8004be make valgrind run under -DMM=0
even if it's not very helpful as CBQN requires being able to read garbage past allocation ends
2022-07-10 02:07:18 +03:00
dzaima
eb5b32319f make ∨`𝕩 run under valgrind 2022-07-10 02:01:59 +03:00
dzaima
041a87ff98 make valgrind accept /𝕩 and 𝕨/𝕩 impls 2022-07-10 01:51:15 +03:00
dzaima
0684fe5fcb some fixes for ubsan 2022-07-10 01:43:21 +03:00
dzaima
9a00da6369 deduplicate ia writing 2022-07-09 02:18:22 +03:00
dzaima
3c2a7dbefa high-rank in-place w∾x 2022-07-09 02:00:22 +03:00
dzaima
1c645e11d8 fix •FromUTF8 name 2022-07-08 19:34:30 +03:00
dzaima
1a9d2d0118 apparently apple clang 11.0.3 infinite-loops on mmap_nvm too 2022-07-03 02:18:14 +03:00
dzaima
837372295d small simplification 2022-07-02 03:52:34 +03:00
dzaima
010db0b1fc mark direct access result const 2022-07-01 21:30:47 +03:00
dzaima
a6a1448382 bqn_copy & bqnffi.h comment cleanup 2022-06-30 17:44:01 +03:00
dzaima
f27ba6d569 even more microoptimization 2022-06-30 16:25:29 +03:00
dzaima
c794fb0ef9 more microoptimization 2022-06-30 15:40:54 +03:00
dzaima
74eaa3853f optimize squeeze result choosing 2022-06-30 03:51:00 +03:00
dzaima
685c3ecbc6 fix fill leak on @⌾(0⊸⊑) 2⥊<"foo" 2022-06-30 03:37:52 +03:00
dzaima
0313b0a0a0 fix •internal.Variation 2022-06-30 03:05:30 +03:00
dzaima
859be5efb2 singeli chr_squeeze 2022-06-30 01:47:57 +03:00
dzaima
75bfa5d905 singeli num_squeeze 2022-06-30 01:47:50 +03:00
dzaima
e31c574fd8 separate squeeze to its own file 2022-06-29 18:36:05 +03:00
dzaima
86cf6f5c2d faster value⊸F & F⟜value 2022-06-28 15:58:13 +03:00
dzaima
8882fb959a move scope_dec cycle handling to a noinline function 2022-06-27 19:50:30 +03:00
dzaima
d18ebc3d07 fix withFill previous fill check 2022-06-27 03:22:36 +03:00
dzaima
fadde40f78 more incG 2022-06-26 23:48:30 +03:00
dzaima
59f0aaa732 defer explain loading to when it's invoked 2022-06-26 22:14:30 +03:00
dzaima
997ced9d2e
Merge pull request #25 from Detegr/explain
support calling explain for an expression
2022-06-26 21:56:32 +03:00
dzaima
266c742b98 fix refcount 2022-06-26 21:54:41 +03:00
dzaima
a6081600ae namespace reading functions for FFI 2022-06-25 17:32:41 +03:00
dzaima
efb4a06a25 x⥊0 & x⥊1 → bitarr 2022-06-25 16:17:34 +03:00
dzaima
43b8b5e2a0 )escaped 2022-06-19 21:05:05 +03:00
Antti Keränen
0314f55a78 support calling explain for an expression 2022-06-18 22:09:36 +03:00
dzaima
0232cda412 support ARMM 0 2022-06-16 21:05:06 +03:00
dzaima
1fd88c1749 clean up ascii/utf8 functions 2022-06-15 15:31:57 +03:00
dzaima
e3da1da8f6 properly error on alias list being assigned to non-namespace 2022-06-14 03:36:40 +03:00
dzaima
6307356bab rearrange common array case to top 2022-06-14 02:40:50 +03:00
dzaima
f3fffd2b8d fix [a,b]+↩1 2022-06-14 02:33:41 +03:00
dzaima
3b82419202 fix error messages 2022-06-14 02:28:13 +03:00
dzaima
f9d251ec08 ARRO/ARRM→LSTO/LSTM 2022-06-14 02:12:37 +03:00
dzaima
5e0bda6a28 ARMO & ARMM 2022-06-14 02:09:41 +03:00
dzaima
8a84726e6e fix wasm build 2022-06-12 22:33:59 +03:00
dzaima
baa4641a44 don't needlessly include sys/mman.h 2022-06-12 22:29:35 +03:00
dzaima
5a32a00f46 more checks of NO_MMAP 2022-06-12 22:12:08 +03:00
dzaima
ab69f86cb5 store fill in FillSlice 2022-06-11 17:36:51 +03:00
dzaima
e137d8536d native ↑𝕩 & ↓𝕩 2022-06-10 00:14:42 +03:00
dzaima
025043b84e make arr_shVec return its argument 2022-06-10 00:08:13 +03:00
dzaima
638891bde1 missing double-space 2022-06-09 18:15:30 +03:00
dzaima
a298bc3018 more function name cleanup 2022-06-09 18:12:15 +03:00
dzaima
5636c1e2ca clean up some function names 2022-06-09 04:10:46 +03:00
dzaima
2359e54661 a bit saner heap format 2022-06-09 04:10:23 +03:00
dzaima
82fc2a2bda remove rt_rank 2022-06-09 04:09:07 +03:00
dzaima
021fd5d8c3 native empty ˘ & ⎉ cleanup 2022-06-09 04:00:04 +03:00
Marshall Lochbaum
b862d7c075 Native empty-frame Rank modifier (⎉) 2022-06-08 20:16:30 -04:00
Marshall Lochbaum
5c59da7376 Handle fills in monadic ⎉ by passing to the runtime 2022-06-08 18:02:29 -04:00
Marshall Lochbaum
f686298664 Native empty dyadic Cells (˘) 2022-06-08 18:01:27 -04:00
dzaima
b865eb84ba make known type mut functions take data pointer instead of Mut* 2022-06-08 03:48:31 +03:00
dzaima
f74f355360 explicit switches in mut.h & update comments 2022-06-08 01:00:02 +03:00
dzaima
b48b184f14 reduce binary size by 1% by a less horrifically unrolled m_scope 2022-06-07 19:19:59 +03:00
dzaima
6b6f2892b7 free error message object 2022-06-07 18:47:13 +03:00
dzaima
14b7942556 )clearImportCache 2022-06-05 17:17:20 +03:00
dzaima
0674c6bafb ffi: more const 2022-06-05 13:35:22 +03:00
Antti Keränen
8923f6a3b8 ffi: make bqn_evalCStr use a constant string 2022-06-05 10:22:13 +03:00
dzaima
3f7261c812 fix error when UTF-8 •SH output is split between reads 2022-06-04 17:26:00 +03:00
dzaima
cc8d1cb4d7 fix m_vec1 under OOM 2022-06-04 02:13:01 +03:00
dzaima
4a2d460998 fix tbl_c2 under OOM 2022-06-04 02:12:50 +03:00
dzaima
f8447d9b5f properly restore compilation globals in case compiler errors 2022-06-04 01:24:52 +03:00
dzaima
8ad7b6149f OOM fuzz testing base 2022-06-04 01:19:17 +03:00
dzaima
1e2b734f5d fix incorrect refcounting of 7dc4f1 2022-06-04 01:13:03 +03:00
dzaima
b32b818df7 fix m_shArr erroring within arr_shAlloc 2022-06-04 00:35:22 +03:00
dzaima
7dc4f1c36c reorder compile to do allocations after initializing Comp 2022-06-04 00:04:46 +03:00
dzaima
9248d1e876 fix ⊔ leaving item shape uninitialized 2022-06-03 23:40:55 +03:00
dzaima
e92dce58fb shared library build 2022-06-03 22:04:48 +03:00
dzaima
9d97c20c38 bqn_init 2022-06-03 21:17:25 +03:00
dzaima
d4da8a1127 update stack pointer before allocations 2022-06-03 20:54:23 +03:00
dzaima
d3555b4af6 fix •Import when execution errors 2022-06-03 20:35:38 +03:00
dzaima
2dbbb3415e fix m_nsDesc failing to allocate leaving body->nsDesc uninitialized 2022-06-03 19:50:26 +03:00
dzaima
6aada8338e proper state restore after failed allocation in codegen 2022-06-03 17:17:30 +03:00
dzaima
86fc9041fa print fallback stacktrace code to stderr 2022-06-03 16:24:43 +03:00
dzaima
73ff6fe722 add interrupt check to allocation slow slow path 2022-06-03 16:04:48 +03:00
dzaima
572bc04459 move interrupt check to its own header 2022-06-03 16:02:02 +03:00
dzaima
7a21f9ef73 experimental REPL interrupting 2022-06-03 15:38:32 +03:00
dzaima
47e4e68eee fix )profile@123 2022-06-03 14:47:43 +03:00
dzaima
f9a8eb0ce3 static noinline apparently results in argument slots being optimized out
but that means that the arguments between the two won't align, resulting in unnecessary 'mov's
2022-06-03 02:51:09 +03:00
dzaima
2697e749e1 better ⌾ fallback 2022-06-02 03:30:39 +03:00
dzaima
f1faff2866 fix FFI=1 build 2022-05-30 19:55:30 +03:00
dzaima
cb1338951c more shcpy 2022-05-30 17:53:54 +03:00
dzaima
3455bed3ee remove pointless check in ≠𝕩 2022-05-30 15:12:48 +03:00
dzaima
3c314e266a correct format string 2022-05-30 02:13:50 +03:00
dzaima
79bd6fc689 use shProd more 2022-05-30 02:07:25 +03:00
dzaima
cc44b3e57b shProd 2022-05-30 01:54:47 +03:00
Marshall Lochbaum
68914c1a39 Native dyadic Rank modifier implementation, except empty frames 2022-05-29 18:14:04 -04:00
Marshall Lochbaum
3947463c34 Native dyadic Rank modifier implementation when one or both arguments are full rank 2022-05-29 18:14:04 -04:00
Marshall Lochbaum
df783d15a5 Align toKCells with rank_c1 changes 2022-05-29 18:14:04 -04:00
Marshall Lochbaum
2c0de9ee02 Check rank vector completely before starting computations in ⎉ 2022-05-29 18:14:04 -04:00
dzaima
b8701d3502 more descriptive paths for self-hosted files 2022-05-29 22:20:50 +03:00
dzaima
960ae96591 show source-less & path-less entries in the profiler 2022-05-29 22:16:42 +03:00
dzaima
0380ee2a40 fix wasm builds 2022-05-29 22:05:04 +03:00
dzaima
e2fda60745 profiler 2022-05-29 22:02:50 +03:00
dzaima
5b2d221d0b bqn_type 2022-05-29 18:46:59 +03:00
dzaima
6033c2e90e flush pipes in g_pst 2022-05-29 16:12:14 +03:00
dzaima
a108ef2ce7 use eqShPart in arithd.c 2022-05-29 14:44:44 +03:00
dzaima
60a68c3c25 manual shcpy loop 2022-05-29 14:20:11 +03:00
dzaima
54645df2a9 use shcpy for copying shapes 2022-05-29 14:08:30 +03:00
dzaima
3fa0463241 manual eqShPart
mainly to not suffer the cost of function invocation, as the common case is len==1
2022-05-29 14:03:15 +03:00
dzaima
3dd1bffe2f don't unroll arr_csz 2022-05-29 13:57:03 +03:00
dzaima
bf618b9b64 native 𝔽⌾(n⊸↑) & 𝔽⌾(n⊸↓) 2022-05-29 13:38:04 +03:00
dzaima
04c2ce7ade tests for bqnffi.h 2022-05-28 17:35:30 +03:00
dzaima
093958f92a
Merge pull request #21 from dzaima/ffi
FFI
2022-05-28 01:29:21 +03:00
dzaima
622a5468d8 remove old ffi.h 2022-05-28 00:15:33 +03:00
dzaima
12631cb142 ffi tests 2022-05-27 23:57:56 +03:00
dzaima
662b23d808 add newline after fputs 2022-05-23 16:45:50 +03:00
dzaima
2775a92535 ffi: support **:type 2022-05-23 16:42:02 +03:00
dzaima
ec76a3cd70 ffi: *:t, scalar:t support for result 2022-05-22 16:13:13 +03:00
dzaima
e09cefd049 u64/i64 arguments, check whether integer arguments are exact 2022-05-22 14:42:16 +03:00
dzaima
af194b55ae make •FFI read relative to file 2022-05-22 04:42:59 +03:00
dzaima
c7e0b59e88 print more things to stderr 2022-05-22 04:40:13 +03:00
dzaima
e24f3c9df5 allow u64 result when lossless 2022-05-22 04:26:02 +03:00
dzaima
d0c63e4da4 fix FFI &f32 2022-05-22 04:02:55 +03:00
dzaima
1a8ee67d41 result & argument position selection 2022-05-21 23:47:02 +03:00
dzaima
af3c6b7857 add FFI=0 for presingeli build 2022-05-14 12:38:40 +03:00
dzaima
e7cc64aa89 nounroll 2022-05-14 12:26:42 +03:00
Paul A. Patience
e684c64847 Add •file.Remove 2022-05-13 21:18:47 -04:00
Paul A. Patience
fdeae8fbfe Add •file.Rename 2022-05-12 18:19:23 -04:00
dzaima
a938f32631 make FFI=1 do something 2022-05-12 14:36:10 +03:00
dzaima
d186294e28 allocate at least minimum size, rename functions 2022-05-11 22:56:14 +03:00
dzaima
09755e5e2c fix FFI : 2022-05-11 22:40:45 +03:00
dzaima
a601ba6a76 very unfinished FFI 2022-05-11 22:30:14 +03:00
dzaima
409524d958 noinline version of vec_add 2022-05-11 18:31:49 +03:00
dzaima
ec273f2102 fix •file.CreateDir 2022-05-10 14:19:15 +03:00
dzaima
63bd4a876e •file.CreateDir 2022-05-09 22:57:37 +03:00
dzaima
5e67b87cf1 identity for f⌜ 2022-05-07 15:46:08 +03:00
dzaima
8c73112d6c pull latest singeli 2022-05-07 15:28:30 +03:00
dzaima
894c56205f native ⌾⍉ 2022-05-02 20:35:16 +03:00
dzaima
3496a939b6 more switch cleanup 2022-05-01 04:47:21 +03:00
dzaima
f12e5fd1c0 move bqn_hash back to header 2022-05-01 04:36:59 +03:00
dzaima
3f787e3845 the tag includes type info anyways 2022-05-01 04:32:16 +03:00
dzaima
782750fd88 bqn_hash refactor 2022-05-01 04:21:17 +03:00
dzaima
0164e4e0bc lazy i8/i16 ∧𝕩 & ∨𝕩 2022-05-01 03:30:11 +03:00
dzaima
88f4fdaa7e 16-bit & 64-bit ⊔ cases 2022-05-01 03:14:23 +03:00
dzaima
5d687b1ac3 lazy impl of i8/i16 arrays in 𝕨 of ⊔ 2022-05-01 03:00:36 +03:00
dzaima
cee8e841f9 better fillarr creating in •internal.Variation 2022-05-01 02:49:10 +03:00
dzaima
0907458b4d allow c32 to use i32 path in ⍋𝕩 2022-05-01 02:34:47 +03:00
dzaima
836fe9184a deduplicate things in ⊏ 2022-05-01 02:24:51 +03:00
dzaima
886feb4ed0 fix fill handling of ⌽ 2022-05-01 02:10:31 +03:00
dzaima
7ab504c8bc unified int & char cases for ⊏ 2022-05-01 01:53:45 +03:00
dzaima
7ece6b2179 unified int & char cases for ⊔ 2022-05-01 01:35:16 +03:00
dzaima
7f9773f971 unified int & char cases for ⍉ & ⌽ 2022-05-01 01:35:11 +03:00
dzaima
1babdf247f unified int & char cases for bitarr/x 2022-04-30 21:49:47 +03:00
dzaima
f8408f0ca6 check for System V calling convention OSes for JIT 2022-04-29 23:17:55 +03:00
dzaima
e979faea0e put mnvmExecBodyInline under a JIT_START check 2022-04-29 22:46:59 +03:00
dzaima
426187be07 make •SH run under cygwin 2022-04-29 22:38:18 +03:00
dzaima
de65d8a59b fix double-increment 2022-04-27 21:33:33 +03:00
dzaima
6abce22447 micro-optimize execBodyInline 2022-04-27 20:15:47 +03:00
dzaima
aefeb3c6fd fix emcc build 2022-04-26 19:32:29 +03:00
dzaima
3f92c32399 no-op ⥊vec 2022-04-25 18:10:37 +03:00
dzaima
de0352caf3 more usage of non-zero length for loops 2022-04-25 18:03:15 +03:00
dzaima
95455241a4 don't do useless tail case 2022-04-25 16:08:03 +03:00
dzaima
ab868a55f3 singeli copy 2022-04-25 03:06:11 +03:00
dzaima
37da98d871 singeli code cleanup 2022-04-21 22:05:47 +03:00
dzaima
7cd19c2840 use ~~ more 2022-04-21 19:35:35 +03:00
Marshall Lochbaum
3aea6aa9d0 Boolean prefix sum using AVX2 shuffling instead of pdep 2022-04-21 11:43:25 -04:00
dzaima
4c03520a07 use maskedLoop in dyarith 2022-04-21 18:33:36 +03:00
dzaima
113f72e86d singeli bitarr conversion to wider arrays 2022-04-21 18:27:20 +03:00
dzaima
b1fd85621a actually use maskstore 2022-04-21 17:48:05 +03:00
dzaima
53b7b2465e correct floating point order of +´ and ×´ 2022-04-21 15:51:10 +03:00
dzaima
6f5414b2a5 ∨`bitarr 2022-04-21 15:12:23 +03:00
dzaima
c3504ec42b proper includes 2022-04-21 04:13:14 +03:00
dzaima
cd431d3338 singeli +` 2022-04-21 03:51:37 +03:00
dzaima
826e9c693a fix 2×´1‿1 2022-04-18 23:23:46 +03:00
dzaima
11d95b67d5 better error messages for no inverse header 2022-04-15 23:20:44 +03:00
dzaima
996009bf09 remove unnecessary header inclusion 2022-04-12 16:58:33 +03:00
dzaima
2e6f94bbf5 move immintrin.h file within ifdef 2022-04-12 16:57:47 +03:00
dzaima
a4a72a78c4 singeli select (disabled) 2022-04-12 16:45:43 +03:00
dzaima
c54e63099f additional check in •internal.Variation 2022-04-12 16:24:25 +03:00
dzaima
f079aa5f76 move select to its own file 2022-04-12 16:23:43 +03:00
dzaima
767a2a9e38 make •file.MapBytes follow spec & fix error message 2022-04-10 05:12:21 +03:00
dzaima
2c2ed7920b directly copy data from typed array for file_wBytes 2022-04-10 01:00:08 +03:00
dzaima
d28454206d check •term.OutRaw & •term.ErrRaw input, fix •bit._cast overflow check 2022-04-09 22:53:57 +03:00
dzaima
fcb6a164ca fix •bit._cast on large inputs 2022-04-09 20:14:42 +03:00
dzaima
355bd5646e correct •file.MapBytes name 2022-04-09 19:51:27 +03:00
dzaima
acc8e35c2f •file.MapBytes 2022-04-09 19:45:14 +03:00
dzaima
0ec0658ada oh right bqn_exec is a thing 2022-04-08 17:25:31 +03:00
dzaima
ccd00cd4cf use length argument in cbqn_evalSrc 2022-04-07 19:52:35 +03:00
dzaima
e38226895e cbqn_evalSrc 2022-04-07 19:45:43 +03:00
dzaima
7adb06a43d )r 2022-04-07 19:43:49 +03:00
dzaima
f136ca5e97 rename confusing m_funBlock to evalFunBlock 2022-04-07 17:36:02 +03:00
dzaima
bc5a279f55 fix PRECOMP 2022-04-07 17:31:01 +03:00
dzaima
422dc80283 decG round 4 2022-04-07 17:19:36 +03:00
dzaima
ff6a0a6d22 decG round 3 2022-04-07 16:03:50 +03:00
dzaima
69067b8fcc decG round 2 2022-04-07 15:15:28 +03:00
dzaima
9b8f8f3725 decG round 1 2022-04-07 13:56:11 +03:00
dzaima
04dbf9a9a4 add another sse3 include 2022-04-07 11:40:03 +03:00
dzaima
e7b551acc2 increase wasi stack size 2022-04-07 02:06:41 +03:00
dzaima
ff7a4cb0cb error on non-functional malloc_usable_size 2022-04-07 01:19:35 +03:00
dzaima
267a62d292 don't use mmap in allocStack for WASI 2022-04-07 00:04:12 +03:00
dzaima
15cf311425 use calloc to allocate memory on wasi 2022-04-06 22:53:07 +03:00
dzaima
e3baa868f7 put in a bit more effort printing messages while things are really bad 2022-04-06 22:38:51 +03:00
dzaima
e3e54bea06 extract single REPL input line execution to function 2022-04-06 20:59:33 +03:00
dzaima
502197b62f explicitly disable spawn on wasm 2022-04-06 20:05:27 +03:00
dzaima
b60bc7c3bf disable realpath & mprotect for wasm 2022-04-06 19:16:35 +03:00
dzaima
377b38b84f fix •term.RawMode fallback 2022-04-06 19:14:10 +03:00
dzaima
f4aee96e65 fix mmX_dumpHeap signature 2022-04-06 19:10:59 +03:00
dzaima
4a316c9398 don't include setjmp.h when CATCH_ERRORS=0 2022-04-06 18:52:54 +03:00
dzaima
6bce21b55c fix generic squeeze case 2022-04-04 21:38:35 +03:00
dzaima
ea5abeff18 simpler o2bu 2022-04-04 21:29:37 +03:00
dzaima
1609e8b651 singeli cleanup 2022-04-04 16:28:13 +03:00
dzaima
a3260edbce more copyG cases 2022-04-04 16:28:03 +03:00
dzaima
e3fe87d040 optimize eequal & expose as •internal.EEqual 2022-04-04 16:16:29 +03:00
dzaima
2148d191d9 flush between heapdump writes 2022-04-04 16:10:01 +03:00
dzaima
1ce5712a97 f64 case in ⊑ 2022-04-04 11:30:35 +03:00
dzaima
b9f5291a33 better basic num_squeeze 2022-04-04 10:02:30 +03:00
dzaima
4ed2d0bec2 sysfn cleanup 2022-04-03 17:38:06 +03:00
dzaima
a9331ef8f0 fast bit_cpy head & tail 2022-04-02 23:47:07 +03:00
dzaima
3e4b0e882d •internal.Temp 2022-04-02 20:40:46 +03:00
dzaima
02087d7611 split non-tail-calling part of equal to its own function 2022-04-02 20:05:03 +03:00
dzaima
e031b069fb test special float values 2022-04-02 20:00:34 +03:00
dzaima
36d5b8f9d8 tests 2022-04-02 18:20:18 +03:00
dzaima
b329ddee1d unaligned 128-bit vector loads 2022-04-02 17:57:49 +03:00
dzaima
980f20df9a 𝕨/𝕩: move tail skipping to BMI-less build 2022-04-02 17:54:21 +03:00
dzaima
40dc184063 use singeli for c16lut generation 2022-04-02 17:19:20 +03:00
dzaima
49ff5a04ff singeli ≡ 2022-04-02 16:58:35 +03:00
dzaima
9c9a91afa5 gdb helper function docs 2022-04-02 00:02:59 +03:00
dzaima
b6dc3cc239 /bitarr → i8arr & i16arr 2022-04-01 23:30:57 +03:00
dzaima
37bf551e54 BMI2 bitarr/i8arr & bitarr/i16arr 2022-04-01 22:41:32 +03:00
dzaima
54a9000d88 more general any-not-equal check 2022-03-28 02:54:13 +03:00
dzaima
09e48854dd skip 16-bit movmsk for addition & subtraction 2022-03-28 01:56:46 +03:00
taswelll
cebadbd301
fix •term.ErrRaw 2022-03-22 22:34:37 +01:00
dzaima
d66ade1303 remove i_ARR_2 from write_asm 2022-03-21 23:12:46 +02:00
dzaima
60d3ba8c64 singeli collect 2022-03-20 00:30:06 +02:00
dzaima
ba6e2adb5d inline i_ARR_2 2022-03-20 00:28:36 +02:00
dzaima
4de990a73b bit of singeli cleanup, JIT comment 2022-03-18 15:24:13 +02:00
dzaima
c1d2dd7168 fix gcc build 2022-03-16 14:14:31 +02:00
dzaima
7b031a2aa0 •file.Exists 2022-03-15 21:37:33 +02:00
dzaima
eae7501d36 fix •file.Type when file not present 2022-03-15 20:47:01 +02:00
dzaima
47c8c1e5de singeli: iota, better make 2022-03-13 18:46:57 +02:00
dzaima
d771f07b30 more random singeli additions 2022-03-13 15:40:59 +02:00
dzaima
ccd2b70747 more mut_fillG 2022-03-12 03:53:27 +02:00
dzaima
d78a45a457 smarter virtual function reading deduplication 2022-03-12 03:44:46 +02:00
dzaima
d2683992df slightly changed copy to B 2022-03-12 03:33:04 +02:00
dzaima
9d3067fa4b new mut interface 2022-03-12 03:08:25 +02:00
dzaima
09fe162b73 DONT_FREE fix, more gdb utils 2022-03-12 03:02:21 +02:00
dzaima
d8835d2407 very slightly faster •_while_ 2022-03-10 21:35:27 +02:00
dzaima
ef9d92be5c return 2 32-bit numbers from •Hash 2022-03-10 19:16:09 +02:00
dzaima
b7ec175901 rename •term.Raw→•term.RawMode 2022-03-10 19:04:24 +02:00
dzaima
0177680ddb include JIT memory in heap dump 2022-03-07 01:20:34 +02:00
dzaima
94e22ecf8f fix error message 2022-03-06 23:47:40 +02:00
dzaima
d2674db956 heap dump 2022-03-06 15:38:30 +02:00
dzaima
03978f333c make •bit._cast properly error on non-array 𝕩 2022-03-06 13:44:27 +02:00
dzaima
2ac2309ed8 fix refcount management in •bit._cast 2022-03-05 19:28:26 +02:00
dzaima
a1638f9fc5 fix •SH 2022-03-05 18:17:15 +02:00
dzaima
0c79b44ae0 output errors to stderr 2022-03-05 02:32:28 +02:00
dzaima
d53548e1e7 update src/README.md 2022-03-04 18:34:04 +02:00
dzaima
4ecd336595 )mem f 2022-03-04 18:31:54 +02:00
dzaima
022d760c95 rethrow(), fix •primitives after errored •ReBQN execution 2022-03-04 18:29:21 +02:00
dzaima
5cd19eafe8 vectorized dyadic arith tail element handling 2022-02-27 18:46:35 +02:00
dzaima
b1483e14e1 random singeli functions 2022-02-25 23:46:18 +02:00
dzaima
369831827a better singeli type restriction checks 2022-02-25 21:44:38 +02:00
dzaima
7af80e9e3c singeli cast changes 2022-02-25 18:22:26 +02:00
dzaima
de4914991a •term.OutRaw, •term.ErrRaw 2022-02-25 18:20:25 +02:00
dzaima
2049686527 •term 2022-02-16 01:41:46 +02:00
dzaima
5e865589b6 optimized f⌾(bitarr⊸/) 2022-02-06 19:06:03 +02:00
dzaima
d85fb9a592 •file.Type, •file.Name 2022-02-05 18:41:21 +02:00
dzaima
802b0611b8 src/README.md updates 2022-02-05 04:05:15 +02:00
dzaima
71c9c67e46 •bit._cast⁼, support inverses of 1- and 2-modifier builtins 2022-02-05 02:45:40 +02:00
Marshall Lochbaum
6b9375ed66 Check range for •bit._cast character types 2022-02-04 18:05:28 -05:00