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
dzaima
2f59dec8b7
fix fallback profiler_start signature
2023-04-22 01:27:46 +03:00
Marshall Lochbaum
b6590b0eab
Move Insert implementation to fold.c, except the generic case
2023-04-21 22:00:08 +03:00
dzaima
e276779eca
fix heapverify
2023-04-21 21:53:11 +03:00
dzaima
6d7b679234
fast path for comparing equal-pointer typed arrays
2023-04-21 17:57:58 +03:00
dzaima
58ac287ef6
handle array-atom comparison separately from array-array
2023-04-21 17:55:38 +03:00
dzaima
a7ceda6b28
fix float NaN comparison
2023-04-21 17:55:38 +03:00
dzaima
c3347d6815
move f32 to h.h, add reinterpreting helper methods
2023-04-21 16:32:35 +03:00
dzaima
9bb7fa406b
add assertion for arr_shReplace rank expectation
2023-04-21 15:50:42 +03:00
dzaima
01b17ea0d9
remove now-unnecessary workaround for float constant
2023-04-21 15:46:54 +03:00
dzaima
d127059de8
more gcc complaints
2023-04-21 13:48:24 +03:00
dzaima
01d64e4112
gcc complains about this now for whatever reason
2023-04-19 22:48:24 +03:00
dzaima
e45bd78f25
fix comparison of empty high-rank arrays
2023-04-19 22:42:28 +03:00
dzaima
d13f3fad94
fix ∧𝕩 & ∨𝕩 on high-rank zero-cell input
2023-04-19 21:52:38 +03:00
dzaima
53fe627e6e
allow hashing operation type wrappers
2023-04-19 21:40:29 +03:00
dzaima
1bc439c214
ARMO needs source mapping
2023-04-17 13:19:38 +03:00
dzaima
c57e0ba135
more fixes for overflow checking
2023-04-17 13:07:50 +03:00
dzaima
c2754e0fff
don't OOM in 𝕨↑𝕩 with 0≡×´𝕨 if product of prefix overflows
2023-04-17 12:53:02 +03:00
dzaima
a622a6761b
use vtestz/vptestz instead of movemask for mask-any checks
2023-04-15 15:10:58 +03:00
dzaima
712707d27b
integer avx2 bitwise operation definitions
...
mainly for reduced casts in C output
2023-04-15 15:00:57 +03:00
dzaima
722107e470
move makeOptBranch to base.singeli, use in search
2023-04-15 12:32:14 +03:00
dzaima
147d4530c1
slightly better overflow check for i8×i8→i8
2023-04-15 01:53:04 +03:00
dzaima
bbb9e7f0ed
don't overflow-check widening array-scalar cases when not needed
2023-04-15 01:19:09 +03:00
dzaima
04ccf9fd49
add compare.c to single.c
2023-04-14 21:24:51 +03:00
dzaima
a2d27c69be
make √, ⋆, •math.Atan2 behave as if ¯0 was 0
2023-04-14 21:22:18 +03:00
dzaima
51e34c55d3
make division not care about sign of 𝕩
2023-04-14 20:24:36 +03:00
dzaima
08885fabad
remove extraneous v+0 in normalizeFloat
2023-04-14 20:06:54 +03:00
dzaima
55da9e99d6
reorganize equality checks more
2023-04-14 20:06:36 +03:00
dzaima
f001841d17
move comparison functions to separate file
2023-04-14 18:11:49 +03:00
dzaima
3623fbd5ba
equality check cleanup
2023-04-14 18:09:38 +03:00
dzaima
2413236d51
format ¯0 as 0
2023-04-14 16:28:27 +03:00
dzaima
ee47921b43
normalize ¯0
2023-04-14 16:28:27 +03:00
dzaima
2fd390ebf8
better fix for character 𝕨∊𝕩 & 𝕨⊐𝕩
2023-04-14 15:42:58 +03:00
dzaima
94bcc4bcc1
make debugger helpers print to stderr
2023-04-14 14:58:11 +03:00
dzaima
1c8916949e
fix ⊏ with odd shape 𝕩 & depth 2 𝕨
2023-04-14 00:14:57 +03:00
dzaima
68c3ba3aa0
fix leak in dyadic Insert with an empty argument
2023-04-14 00:05:39 +03:00
dzaima
4d3db9ca0b
fix ∊ & ⊐ being broken on one c8 & one c16 argument
2023-04-14 00:05:23 +03:00
dzaima
44ce033e73
fix leak in dyadic scan with an empty argument
2023-04-14 00:05:23 +03:00
dzaima
102a696164
fix ⟨2⟩↕a
2023-04-13 22:22:50 +03:00
dzaima
4f382476ff
src/README.md GC notes & other cleanup
2023-04-13 22:03:17 +03:00
dzaima
6239e2f2dd
add binary mode flag to fopen calls
2023-04-13 15:54:34 +03:00
dzaima
1db746ea77
Singeli compile-time cdiv & low-stack @collect
2023-04-09 15:03:44 +03:00
dzaima
b66f628cff
tiny improvements to plus-scan
2023-04-09 12:09:52 +03:00
dzaima
9951f20751
clean up some error messages
2023-04-08 22:12:15 +03:00
dzaima
52dc05f228
SIMD +`
2023-04-08 20:04:23 +03:00
dzaima
6a0385b44b
better Singeli abs & absu definitions
2023-04-08 19:23:55 +03:00
dzaima
c3fe3c5b42
more Singeli utilities, more Scan fixing
2023-04-07 21:09:46 +03:00
dzaima
3a7bce3aab
a bunch of Scan fixes & improvements
2023-04-07 20:41:34 +03:00
dzaima
b0d8bcb428
add argument passing to makeOptBranch
2023-04-06 22:41:20 +03:00
dzaima
897c46df76
aarch64 fold.singeli
2023-04-06 20:17:09 +03:00
dzaima
b3f3190028
SSE2 fold.singeli
2023-04-06 19:49:14 +03:00
dzaima
1d6b33d528
restrict fold_addw to integer input
2023-04-06 19:18:43 +03:00
dzaima
65f25f735d
Merge pull request #73 from mlochbaum/count
...
Count by vector compare+add
2023-04-06 19:19:25 +03:00
dzaima
d13060f725
move fold to vfold
2023-04-06 19:05:38 +03:00
Marshall Lochbaum
9d7d330a03
Use AVX2 counting for 1-byte counting sort
2023-04-06 11:32:34 -04:00
Marshall Lochbaum
0e5b98c491
Return max from AVX2 counting function
2023-04-06 11:32:34 -04:00
Marshall Lochbaum
4b18466ae2
Clean up and simplify count.singeli; allow longer final block
2023-04-06 11:32:06 -04:00
Marshall Lochbaum
06b4f06e64
Move fold{} from squeeze.singeli to vecfold.singeli
2023-04-06 11:32:06 -04:00
Marshall Lochbaum
2ddcc14852
Use minimum in addition to maximum for AVX2 counting
2023-04-06 11:32:06 -04:00
Marshall Lochbaum
e6a3e846d9
Sum counts in groups of 4 when possible
2023-04-06 11:32:06 -04:00
Marshall Lochbaum
b655dd4771
AVX2 counting function for small-range 1-byte /⁼
2023-04-06 11:32:04 -04:00
dzaima
ecced53957
test usz=64
...
also fix MM=2 assertion
2023-04-06 18:17:59 +03:00
dzaima
a0cdcdc898
fix self-search radix-based cases with 64-bit usz
2023-04-06 17:51:58 +03:00
dzaima
cba6ef505a
add usz option to build/build
2023-04-06 17:47:31 +03:00
dzaima
5492eae8c5
unrolling for single-element search
2023-04-06 15:42:10 +03:00
dzaima
876914d053
Singeli single-element search
2023-04-06 14:56:49 +03:00
dzaima
a7e2d9ea17
extract single-element search to its own function
2023-04-06 13:38:33 +03:00
dzaima
71f9278a95
use COPY_TO to copy in bqn_readObjArr if possible
2023-04-06 13:37:00 +03:00
dzaima
0aca470931
more explicit inline requiring
2023-04-06 13:12:11 +03:00
dzaima
8b05cd243f
fix SSE2 unsigned comparisons
2023-04-05 13:47:16 +03:00
dzaima
7d1fcf2c3a
move &~ to base.singeli
2023-04-02 16:33:24 +03:00
dzaima
5a2b755191
move non-AVX2 x86-64 into SINGELI_SIMD
2023-04-02 15:55:49 +03:00
dzaima
100a188545
fix aarch64 singeli
2023-04-02 15:39:42 +03:00
dzaima
c76adb8b35
default to •internal.EEqual comparing 0 and ¯0 as equal
2023-04-02 15:29:11 +03:00
dzaima
00a5ddcb89
SSE2 squeeze
2023-04-02 15:04:00 +03:00
dzaima
e0a265472c
SSE2 extract{x,0} for [4]i32 and [2]i64
2023-04-02 12:10:18 +03:00
dzaima
9209ca5d6d
SSE2 copy.singeli
2023-04-02 01:53:16 +03:00
dzaima
5018cf9b2e
reduce unnecessary casts in C output
2023-04-01 23:04:55 +03:00
dzaima
9826201343
move neon.singeli type checks to w64/w128
2023-04-01 22:53:38 +03:00
dzaima
a62c21733e
SSE2 equal.singeli
2023-04-01 22:08:47 +03:00
dzaima
96ee73f644
enable Singeli monadic arith & comparisons on SSE2
2023-04-01 20:40:29 +03:00
dzaima
3a45eac1aa
separate SSE2, implement SSE2 dyarith & bitsel
...
also separate maskstore to homogeneous & top bit mask variants, and make blend require equal element widths
2023-04-01 20:40:23 +03:00
dzaima
13eebb1759
move all singeli builds to build.bqn, add has=
...
also:
include commit-based version by default for build/build
expand things included in --version
don't require Singeli for BMI2 usage in bitarr/bitarr
2023-03-31 19:15:23 +03:00
dzaima
dc2ac37e0a
arch-independent Singeli builds
2023-03-31 16:45:29 +03:00
dzaima
0180a54207
quiet gcc warning
2023-03-31 16:34:08 +03:00
dzaima
c513724fd4
hide clangd warning
...
and remove whitespace which was previously used for alignment
2023-03-31 14:27:43 +03:00
dzaima
baa1281efe
don't assume select returns refcount 1 array
...
that probably would be a safe assumption right now, but who knows about the future; cpyWithShape should return back its argument directly if it already has refcount 1 anyway
2023-03-31 14:14:13 +03:00
dzaima
413b49de30
don't assume sizeof(ur)==1
2023-03-31 13:44:32 +03:00
Marshall Lochbaum
69e2f6c690
Convert ⍉˘ with atom or no left argument to dyadic ⍉
2023-03-30 21:25:21 -04:00
Marshall Lochbaum
9fe6a2e7b2
Under for invertible Reorder Axes
2023-03-30 19:07:09 -04:00
Marshall Lochbaum
d53f3dbd72
Native dyadic ⍉⁼
2023-03-30 19:02:45 -04:00
Marshall Lochbaum
89016fc88d
Update Reorder Axes implementation comments
2023-03-29 20:23:16 -04:00
Marshall Lochbaum
597e25af4d
Full simplification pass for Reorder Axes
2023-03-29 20:08:36 -04:00
Marshall Lochbaum
d492cd0865
And strided height, so all orders are fast if axes are long
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
e923a71881
Use strided width in transpose-based Reorder Axes
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
814a677676
Make transpose movement functions strided
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
de18fb996b
Save a shape object in Reorder Axes
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
7fea4ca2ad
Combine transp_c2 temp allocations into one TALLOC
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
5b17ee44d6
SIMD kernel for Reorder Axes transposing last two axes
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
8413461074
Fast bottom-level loop for Reorder Axes loop structure
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
bbedbbc585
Transpose large cells with mut_copyG
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
b829076271
Put CPU-size transpose functions in a table
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
410d51501d
Check for AVX2 in Singeli transpose so it can build on non-x86 architectures
2023-03-29 12:37:15 -04:00
Marshall Lochbaum
bf04b3aab0
Move w128i and similar from sse3 and avx.singeli to base
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
ebbddf9dcf
Move height/width 2 transposes to Singeli
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
37f481ea0d
Separate out transpose data movement function and share with monadic ⍉⁼
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
3c32844fe0
Separate out transpose_move function and use for el_B
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
968bfd2fc6
Separate transpose el_B case and fix dropped fill for shape 2‿n
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
dea063cb7b
Easy optimizations: (1-˜=𝕩)⍉𝕩 to ⍉𝕩 and detect trailing unchanged axes
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
b555e3c035
Reorder Axes translated from runtime version
2023-03-28 16:11:46 -04:00
Marshall Lochbaum
432b4eaaa6
Transpose implementation comments
2023-03-28 16:11:46 -04:00
dzaima
21b9ad5c3c
don't include debug.singeli
2023-03-27 17:53:01 +03:00
dzaima
9780cacacd
commented-out heap alignment
2023-03-27 17:38:26 +03:00
dzaima
f175bc9e19
fix printf of sample count
2023-03-26 15:57:09 +03:00
dzaima
1f2456042c
clean up calls.h includes
2023-03-26 15:54:27 +03:00
dzaima
1f70c08aa2
fillarr NOGC
2023-03-26 15:43:59 +03:00
dzaima
709c1896d3
better selfElType
2023-03-26 14:30:49 +03:00
dzaima
37a32eb15a
fix native non-Singeli builds
2023-03-24 23:51:18 +02:00
dzaima
830c752e87
instruction pointer storing profiling
2023-03-24 18:07:48 +02:00
dzaima
e4c95dce22
fix profiler buffer size usage
2023-03-24 13:47:33 +02:00
dzaima
98f4df88d0
whitespace
2023-03-23 18:35:55 +02:00
dzaima
fa8437ca25
don't use _mm256_loadu2_m128i
...
doesn't exist on old gcc
2023-03-23 18:21:34 +02:00
Marshall Lochbaum
699faea69c
Dedicated width-overflow loop for SIMD transpose
2023-03-22 17:34:37 -04:00
Marshall Lochbaum
5a2bc15f2a
Overlap SIMD transpose on width too
2023-03-22 15:14:09 -04:00
Marshall Lochbaum
61eefe0776
Fix writing past end in i16 transpose with overlapped halves
2023-03-22 15:14:09 -04:00
Marshall Lochbaum
8ff40cb2e5
Overlap SIMD transpose to handle uneven heights (not widths yet)
2023-03-22 15:14:09 -04:00
Marshall Lochbaum
fad7f3aa8b
Simplify
2023-03-22 15:14:09 -04:00
Marshall Lochbaum
dd141add3f
Merge i16 SIMD transpose with the rest of them
2023-03-22 15:14:09 -04:00
Marshall Lochbaum
9673771187
Combine code for the different transpose kernel geometries
2023-03-22 15:14:09 -04:00
Marshall Lochbaum
e40feaa81c
Make transpose kernel code type-generic
2023-03-22 15:14:09 -04:00
Marshall Lochbaum
923c485cc2
Use packed-halves transpose kernel for 8x8 i16
2023-03-22 15:14:09 -04:00
Marshall Lochbaum
2a8e6e9c8a
Separate most transpose kernel logic from loops and move i8 case into main
2023-03-22 15:14:08 -04:00
Marshall Lochbaum
7d800bf349
SIMD transpose on 1-byte elements
2023-03-22 15:14:08 -04:00
Marshall Lochbaum
5fccf4cda3
Refactoring; check for small transpose width/height in Singeli, not C
2023-03-22 15:14:08 -04:00
Marshall Lochbaum
ff6361e363
Move tranpose to its own file
2023-03-22 15:14:08 -04:00
Marshall Lochbaum
0e2e315e51
Allow an 8x8 row for 2-byte transpose
2023-03-22 15:14:08 -04:00
Marshall Lochbaum
239c765998
SIMD transpose on 2-byte elements
2023-03-22 15:14:08 -04:00
Marshall Lochbaum
f6c6e72661
More transpose kernel refactoring
2023-03-22 15:14:08 -04:00
Marshall Lochbaum
c0aaa6f615
SIMD transpose on 8-byte elements
2023-03-22 15:14:08 -04:00
Marshall Lochbaum
a0e85db702
Refactor vtranspose with more general code
2023-03-22 15:14:08 -04:00
Marshall Lochbaum
ca44d41daa
Faster i32 transpose when height is a multiple of 16 by writing cache lines
2023-03-22 15:14:08 -04:00
Marshall Lochbaum
bfb2519aed
Remove transpose_rec (was unused): the whole cache-oblivious thing seems to be useless
2023-03-22 15:14:08 -04:00
dzaima
5c6075c29d
support namespace a.b in native compiler
...
and use for •file.At in bootstrap.bqn
2023-03-22 19:58:01 +02:00
dzaima
dc583d754c
separate FLDG for gid-based field lookup
2023-03-22 19:49:32 +02:00
dzaima
9337de5a0e
fix LST_/ARM_ comments in vm.h
2023-03-21 23:04:39 +02:00
dzaima
d9ebdf060f
)t:1s
...
also fix )profile
2023-03-21 04:06:53 +02:00
dzaima
fe36c74080
support exponential for )t
2023-03-21 02:56:39 +02:00
dzaima
1ec37410c6
faster constint|intarr
2023-03-21 02:45:42 +02:00
dzaima
d333902f74
fast integer 𝕨|𝕩
2023-03-21 02:06:45 +02:00
dzaima
e14a3629f6
don't try lowercasing ×
2023-03-20 18:18:16 +02:00
dzaima
b0201131e2
array type support for •FFI
2023-03-20 16:44:58 +02:00
dzaima
ca0c100b73
name normalization for •ns.Get & •ns.Has
...
also fix •ns.Has error message & rename some function declarations
2023-03-19 23:27:05 +02:00
dzaima
0b32ef96ce
inline → inplace in existing-scope-mutating function names
2023-03-19 22:47:00 +02:00
dzaima
4a6877a87a
Rank checks
2023-03-19 15:42:11 +02:00
dzaima
a3d74c6af2
MUT_APPEND
2023-03-16 22:27:44 +02:00
dzaima
390ee503fb
extract function for a+↕b
2023-03-16 22:05:44 +02:00
dzaima
a9b83ca70a
V_POS, V_DEPTH
2023-03-16 22:03:08 +02:00
dzaima
db8a4d3af0
don't use def as a variable name
2023-03-12 00:11:30 +02:00
dzaima
1178e5df56
new Singeli syntax
2023-03-11 23:17:30 +02:00
dzaima
8194f51b30
MAKE_MUT_INIT, move mut_init to mut.c
2023-03-11 16:52:09 +02:00
dzaima
3f0bc57503
move diagnostics coloring option outside of hash
2023-03-11 16:51:59 +02:00
dzaima
01c457b77b
make all cpy.*Arr function results Arr*
2023-03-11 16:51:13 +02:00
dzaima
92763fa8b2
proper hash values for derived functions
2023-03-06 20:29:35 +02:00
dzaima
ab5b8f92b4
fast F˜˝˘ and F˜˝ and F˜⌜ for pervasive F
2023-03-05 16:48:10 +02:00
dzaima
680d0f8601
use mut_copy for building fold_rows result
2023-03-05 15:20:12 +02:00
dzaima
1c0b797456
Merge pull request #69 from mlochbaum/transfold
...
Blocked transpose implementation for fold-cells
2023-03-05 15:10:26 +02:00
dzaima
98c963453b
•internal.GC
2023-03-05 14:16:38 +02:00
dzaima
4b6dd1bf81
immediately mark&sweep unknown reference objects instead of storing
2023-03-05 14:05:08 +02:00
dzaima
c5aedaa414
switch to GCv2, various fixes/cleanup
...
includes:
fixing some refcounts for FOR_BUILD build •FFI
moving DEBUG_VM prints to stderr
fixing heapverify reports of loose shape objects of fillarrs
regular ol' adding-of-semicolon-after-label for old gcc
move GC enable to after all initialization, not load_init
2023-03-05 01:23:53 +02:00
Marshall Lochbaum
f4d2e26e58
Don't do transposing fold unless height is greater than width
2023-03-04 14:42:00 -05:00
Marshall Lochbaum
176152b445
Handle fold-cells on row length 1 with ⊏˘
2023-03-04 14:28:22 -05:00
Marshall Lochbaum
4b35acb82b
Transpose-based fold-cells implementation
2023-03-04 14:24:56 -05:00
dzaima
16274e5952
bucket coalescing on GC
2023-03-04 20:09:12 +02:00
dzaima
ead637b135
don't leak c1fn/c2fn arguments from array function
2023-03-04 18:58:07 +02:00
dzaima
717074a2f8
fast transpose on shape n‿2 𝕩
2023-03-03 19:13:15 +02:00
dzaima
76d26db4c2
faster F˘´n‿2⥊𝕩 for pervasive F
2023-03-03 17:45:16 +02:00
dzaima
fd72d416db
manual prefix character typing detecting
2023-03-03 16:11:55 +02:00
dzaima
093beda394
faster path for 𝕨/𝕩 with non-boolean 𝕨 with sum 0
2023-03-03 13:41:20 +02:00
dzaima
397f8745ce
go back to regular completions if no system commands match
2023-02-27 23:51:35 +02:00
dzaima
dfd78115c3
remove repl initialization before it's needed
2023-02-26 18:58:08 +02:00
dzaima
2c107025ab
add argument for non-GC_VISIT_V2
2023-02-26 18:53:06 +02:00
dzaima
78eb351e10
allow top-level GC to collect all garbage in GC_VISIT_V2
2023-02-26 18:37:07 +02:00
dzaima
418a1c054f
no longer need position setting hack on enter
...
also makes enter_replxx allocation-free, allowing it to run during OOM
2023-02-26 18:30:22 +02:00
dzaima
bcc19c11fd
fix GC_VISIT_V2 completely not respecting -M
2023-02-26 18:26:19 +02:00
dzaima
1c1da8fdfe
completion options for system commands
2023-02-26 18:09:28 +02:00
dzaima
a570bcaf88
fix replxx things
2023-02-26 16:09:38 +02:00
dzaima
6d03071ae6
SIMD i32 transpose
2023-02-26 01:19:54 +02:00
dzaima
a928277e8c
make heapverify run on GC_VISIT_V2
...
also make it able to track shape object leaks
2023-02-25 00:21:15 +02:00
dzaima
c6c0b8925e
don't need allocMore_rec on non-gcv2
2023-02-24 23:38:29 +02:00
dzaima
6e6169530d
GC v2
2023-02-24 23:28:55 +02:00
dzaima
deee2c7a18
use C1 & C2 more
2023-02-24 15:53:11 +02:00
dzaima
1af9155425
optional path arg for •internal.HeapDump; STORE_JIT_MAP
2023-02-24 00:16:44 +02:00
dzaima
b506b434a2
add Singeli directory to build cache key, add rebuild-singeli, quiet gcc
2023-02-23 23:36:41 +02:00
dzaima
8ad5132a6d
find & eqfn changes, use toI32Any more
2023-02-22 13:48:45 +02:00
Marshall Lochbaum
032e32ae1a
Fast flat ≡˘ and ≢˘ in most cases
2023-02-20 10:43:24 -05:00
Marshall Lochbaum
89e6be10e5
Add eqFns to calls.h and use for Find
2023-02-20 10:07:44 -05:00
Marshall Lochbaum
b56e547e34
Define eqFns in non-Singeli build
2023-02-20 08:20:05 -05:00
Marshall Lochbaum
fcc5c2e449
Slice function instead of take/drop
2023-02-19 21:14:42 -05:00
Marshall Lochbaum
ea6c7d9a7a
Use a C comparison function instead of a BQN one
2023-02-19 21:08:21 -05:00
Marshall Lochbaum
d2950a8df6
Flat rank 1 Find implementation using primitive calls
2023-02-19 20:34:32 -05:00
dzaima
70fec7eb1e
fix •ns.Keys on namespaces with unexported fields
2023-02-19 18:30:57 +02:00
dzaima
7013a9edf9
•ns.Get, •ns.Has, •ns.Keys
2023-02-19 18:02:35 +02:00
dzaima
428064a5c2
skip lookup table zero-initialization for x⊐x
2023-02-18 23:57:02 +02:00
dzaima
bb36755d67
native 𝕨/highrank
2023-02-18 21:04:22 +02:00
dzaima
96316f0fe1
faster 2↕
2023-02-18 19:47:22 +02:00
dzaima
7b57b4ae39
explicitly mark code sections where allocations aren't allowed to happen
2023-02-18 17:46:55 +02:00
dzaima
c32285dba9
Singeli copy from unaligned bitarr
2023-02-18 11:52:45 +02:00
dzaima
63fa511c55
deduplicate typed pointer calculation in mut.c
2023-02-18 00:09:37 +02:00
dzaima
8e720a2faa
use loadLow & storeLow in neq.singeli
2023-02-17 23:41:26 +02:00
dzaima
1e6b612e13
NEON copy.singeli
2023-02-17 22:10:21 +02:00
dzaima
0aada6163a
move src/clangdCommands.bqn to build/build clangd
2023-02-17 18:44:13 +02:00
dzaima
f76836aedd
clean up arithd.c & slightly improve non-Singeli impls
2023-02-17 16:43:07 +02:00
dzaima
32142a45d6
Widen cells in 𝕨∊𝕩, 𝕨⊐𝕩, 𝕨⊒𝕩
2023-02-17 00:27:15 +02:00
dzaima
089e2a38c6
update Singeli things
2023-02-16 21:31:19 +02:00
dzaima
f700a3e150
pad input cells when needed for for ∊𝕩, ⊐𝕩, ⊒𝕩
2023-02-13 00:19:50 +02:00
dzaima
fd1178bc0e
use BMI2 for widening to <32-bit cells
2023-02-10 23:04:20 +02:00
dzaima
53737ab3fb
use BMI2 for narrowing <32-bit cells
2023-02-10 23:01:45 +02:00
dzaima
855541954f
initial bit widen&narrow for ⊏
2023-02-10 17:59:22 +02:00
dzaima
23d99d7a24
more precise detection of when bit 𝕩 won't use simd for widening path
2023-02-04 18:17:21 +02:00
dzaima
f39ca95c58
maybe slightly better bit→i8→bit heuristic
...
the more proper thing is to pad cells to the nearest power-of-two byte size anyway
2023-02-04 17:16:01 +02:00
dzaima
be9d0c287e
better 𝕨⊏𝕩 with non-power-of-two cell sizes
2023-02-04 03:30:05 +02:00
dzaima
d2679da7e8
⊏: don't get in an infinite loop of f64 𝕨
2023-02-04 03:04:06 +02:00
dzaima
98f6944440
unify rank 1 and high-rank ⊏
2023-02-03 18:55:19 +02:00