dzaima
9577fa193c
make STORE_JIT_MAP build
2024-02-13 22:13:47 +02:00
dzaima
73a2b06703
more PLAINLOOP
2024-02-08 19:26:35 +02:00
dzaima
9cb0ab2fbb
Use getRange_fns for repeat_bounds
2024-02-08 19:25:30 +02:00
dzaima
52a583502d
get rid of 16-bit limits in FFI sizes
2024-02-06 22:33:54 +02:00
dzaima
b1e2e17edd
even more FFI cleanup
2024-02-06 22:31:57 +02:00
dzaima
2b30010c25
disallow writing array to pointer within pointer object
...
and while at it move a global to an argument
2024-02-06 20:29:24 +02:00
dzaima
74f7e4701d
disallow '&' outside of top-level type
2024-02-06 20:03:46 +02:00
dzaima
cb550bf885
more FFI cleanup
2024-02-06 15:17:49 +02:00
dzaima
b7f845300c
some FFI error message changes
2024-02-06 15:16:29 +02:00
dzaima
5a8ad03ff5
buildObj → readUpdatedObj, inline printFFIType
2024-02-06 15:16:29 +02:00
dzaima
677b341ad4
merge readRe & makeRe, reduce its result size to the proper size
...
previously the 1<<reW was used as the number of bytes to require but it's actually number of bits
2024-02-06 14:22:20 +02:00
dzaima
05ceb45b2f
fix ptr.Write doing weird things
2024-02-05 22:42:24 +02:00
dzaima
445cfcf15a
fix type of returned pointer within struct
2024-02-05 21:40:28 +02:00
dzaima
3c297ffeb8
add pointer reading within struct
2024-02-05 21:24:05 +02:00
dzaima
a8772dc3ae
fix **:i8
2024-02-05 04:54:55 +02:00
dzaima
b22c5d2883
get rid of sty_ptr
2024-02-05 04:51:12 +02:00
dzaima
7ab13e3c5a
refactor BQNFFIEnt & BQNFFIType
2024-02-05 04:14:02 +02:00
dzaima
102874c43f
support passing pointer objects to typed arguments
2024-02-05 01:29:49 +02:00
dzaima
a4c0424931
fix type equality checking on untyped pointer elements
2024-02-05 01:29:49 +02:00
dzaima
ac16b69fe1
add toggle to always run buildObj for testing object matching more
2024-02-05 01:29:49 +02:00
dzaima
61f142a1fd
type formatting for error messages
2024-02-05 01:29:49 +02:00
dzaima
7471c5c9f5
fix plain "&" argument being accepted
2024-02-05 00:34:55 +02:00
dzaima
e89d59c606
more proper error message
2024-02-04 23:27:28 +02:00
dzaima
7edcccdf82
initial pointer objects
2024-02-04 23:19:57 +02:00
dzaima
0ce728bcce
do a thing that should be done
2024-02-04 18:10:11 +02:00
dzaima
291d3ef5d7
deduplicate sh_c2 setup & output prep
2024-02-04 15:31:38 +02:00
dzaima
4f39729013
Merge pull request #106 from vylsaz/win-sh2
...
Implement •SH for Windows
2024-02-04 14:48:36 +02:00
dzaima
a3392fd6c1
fix casrt_c2 more
2024-02-04 14:47:43 +02:00
vylsaz
893ef857d7
Add comments
2024-02-04 02:45:25 +00:00
vylsaz
42e4956fb9
Replaced globals with argument to thread procedure
2024-02-04 02:35:47 +00:00
dzaima
2dfc8933bd
fix refcount leak in casrt_c2
2024-02-03 18:20:07 +02:00
vylsaz
74d3620839
Implement •SH
2024-02-03 01:45:56 +00:00
dzaima
1e8c390e6a
include file name in failed complication error messages
2024-02-01 22:52:55 +02:00
dzaima
88f8daedbf
proper bi_optOut handling
2024-02-01 21:26:08 +02:00
dzaima
592a8312ac
a bunch of PLAINLOOP
2024-02-01 21:26:08 +02:00
dzaima
1b26e85325
don't need to mark static globals as hidden
...
gcc complains about this
2024-02-01 21:26:08 +02:00
dzaima
c078f62b1f
add GLOBAL, INIT_GLOBAL, or const to globals
2024-02-01 21:13:39 +02:00
dzaima
6e39b59e73
use tuple destructuring in mask.singeli
2024-01-28 02:38:16 +02:00
dzaima
041be9a612
rearrange elses to get rid of clangd warning
2024-01-28 02:29:03 +02:00
dzaima
5b1fc39137
typo
2024-01-28 02:28:31 +02:00
vylsaz
7c58067620
Enable delete access
2024-01-27 15:47:35 +00:00
vylsaz
d570f8d303
Implement •file.MapBytes for Windows
2024-01-27 07:12:09 +00:00
vylsaz
f1cc597317
Util to report Windows error
2024-01-27 06:59:56 +00:00
dzaima
ffffdb5895
relax take/drop overflow checking
2024-01-19 18:03:54 +02:00
dzaima
0f691138c9
basic fix for •ReBQN{primitives⇐⟨','‿+⟩}
2024-01-19 18:02:24 +02:00
dzaima
83afa4ba99
rename functions in cmp.singeli
2024-01-11 23:36:03 +02:00
Marshall Lochbaum
f62981e370
Make Singeli if conditions have type u1
2024-01-10 17:10:53 -05:00
Marshall Lochbaum
7511420077
Fix first element of 1-byte Deduplicate result in some cases with 256 uniques
2024-01-07 21:27:12 -05:00
Marshall Lochbaum
2af2fb8e0c
Use ⍷⊸⊐ for Classify (⊐) on long 1-byte arguments if SIMD bit-table is available
2024-01-07 19:54:13 -05:00
dzaima
20185b57c5
fix nested •FFI calls, more FFI testing
2024-01-02 19:33:28 +02:00
dzaima
ca7e62d09f
fix •FFI with various arguments while mutable ones are present more
2024-01-02 18:30:33 +02:00
dzaima
381c03a456
fix •FFI with both a mutated & struct/array argument
2024-01-02 17:08:10 +02:00
Marshall Lochbaum
dbb6fbade1
Fast interleaving (≍˘) for pointer arrays
2023-12-31 16:28:59 -05:00
Marshall Lochbaum
5f3a4769be
Rename constrep.singeli to replicate.singeli; not just constant now
2023-12-31 15:30:20 -05:00
Marshall Lochbaum
e50ae40f8b
Port replicate-by-scan code from C to Singeli
2023-12-31 15:26:58 -05:00
Marshall Lochbaum
771496a25c
Pass slow-pdep build option to Singeli to suppress BMI2 bool/bool
2023-12-31 10:05:51 -05:00
Marshall Lochbaum
9604844d0b
Don't need ..._ before & in Singeli any more
2023-12-30 21:45:24 -05:00
Marshall Lochbaum
3584ebd7a6
Non-BMI2 bit interleaving implementation
2023-12-30 21:45:24 -05:00
Marshall Lochbaum
eb34213f0f
Fast ≍˘ for matching-type type-sized cells
2023-12-30 21:45:24 -05:00
Marshall Lochbaum
58f4f15f8f
Move more functionality to avx512.singeli
2023-12-30 10:43:40 -05:00
Marshall Lochbaum
92db3f15d0
Implement ≠` with AVX-512 clmul and GFNI
2023-12-30 10:43:06 -05:00
dzaima
9dc44ed1a9
make singeli/arch.bqn the source of SINGELI_AVX2
...
+ removes noting of lack of AVX2, which isn't shown from the makefile anyway
2023-12-30 02:09:56 +02:00
dzaima
18d2fa5f1c
rename Singeli select function
...
in anticipation to Singeli update which adds select as a builtin
2023-12-29 23:35:22 +02:00
dzaima
f11bebf8f4
fix usz=64 build
2023-12-28 19:17:57 +02:00
Marshall Lochbaum
dcb031d142
Make sure value in store{} has an appropriate type
2023-12-27 16:44:53 -05:00
dzaima
ce31945124
fix "ab"⍷⟨⟩
2023-12-27 19:16:34 +02:00
dzaima
add8ba353e
require MAP_FIXED_NOREPLACE on linux for JIT
2023-12-26 02:53:47 +02:00
dzaima
7c50d210ff
fix FreeBSD name conflict
2023-12-26 00:47:11 +02:00
dzaima
2e61f52d22
use MAP_EXCL on FreeBSD
...
OpenBSD should be fine as is, as it by default respects the hint if possible (I believe, at least, looking at its man page)
2023-12-26 00:47:11 +02:00
dzaima
f0c1962596
more typed ⌾(list⊸⊏)
2023-12-19 17:41:17 +02:00
dzaima
17c575edba
trivial fast path for >depth1arr
2023-12-16 01:45:29 +02:00
dzaima
470e77b6b3
more typed 𝔽⌾(m⊸/)
2023-12-15 23:53:26 +02:00
dzaima
72893fc2f5
cell-wise PervasiveDy` highRank
2023-12-15 21:43:07 +02:00
dzaima
66b5c1fc0a
fix a⊒b on mixed-width characters
2023-12-15 20:02:14 +02:00
dzaima
840c40748f
fix f64 scans on SSE2
2023-12-15 19:18:23 +02:00
dzaima
c785b3a7b8
squeeze created arrays in F⍟arr
2023-12-15 18:05:20 +02:00
dzaima
94b1d90995
SSE2 & NEON /⁼
2023-12-14 18:08:56 +02:00
dzaima
f71d2ff376
remove unused name variables
2023-12-14 17:45:04 +02:00
dzaima
7268c11df4
more fixes of path display
2023-12-13 22:03:00 +02:00
dzaima
a3a9403b59
fix paths shown in error stacktraces
2023-12-13 21:59:23 +02:00
dzaima
7bf379a44e
check that -o output is a list
2023-12-13 17:49:54 +02:00
dzaima
8cce6b7add
set re_map more properly
2023-12-12 13:32:46 +02:00
dzaima
653583eb1d
make •Import follow ReBQN
2023-12-11 14:02:38 +02:00
dzaima
ec4db6dbad
tiny Singeli include changes
2023-12-10 15:55:57 +02:00
dzaima
3454fbe3ee
defer negated ≤AVX2 comparison negation to GPR result
2023-12-05 17:37:37 +02:00
dzaima
b9b90fbe8f
improve error messages of o2i/o2i64/o2u64 & usum
2023-12-05 17:19:36 +02:00
dzaima
9984d720c9
move bit_sum to fold.c
2023-12-05 16:41:38 +02:00
dzaima
a439c64e85
fix error message of usum of i32arr encountering a negative element
2023-12-05 16:03:53 +02:00
dzaima
5c7ab3f9a8
change heuristic for when ⊔ separates filtering out ¯1
...
measurements of the previous one were affected by 08c4627686
2023-12-04 22:50:19 +02:00
dzaima
8870acd2c1
don't try to do 32 >> -1
2023-12-04 17:45:00 +02:00
dzaima
065f15d0e3
fix function type
2023-12-04 17:39:13 +02:00
dzaima
e2db41547d
change threshold for a 𝕨⊐𝕩 case
2023-12-04 17:37:35 +02:00
dzaima
d7c153286e
gc tests, more reuse removal
2023-12-04 12:07:03 +02:00
dzaima
baa23cb527
add a trailing newline to double-fatal message
...
apparently 'puts' has a trailing newline but 'fputs' doesn't
2023-12-04 11:35:34 +02:00
dzaima
ecb2d5f63a
fix GC referencing bug in reusing 𝕨𝔽`𝕩 by not bothering to reuse
2023-12-04 01:27:38 +02:00
dzaima
fcc939dbed
debug flag for running a GC every n'th allocation
2023-12-03 23:34:49 +02:00
dzaima
6573232694
macro option for an intentionally-bad hash function for testing purposes
2023-11-29 18:58:34 +02:00
dzaima
609980f950
comment about HashMap entry format
2023-11-29 18:05:08 +02:00
Marshall Lochbaum
72a9a95819
Make sure •HashMap table leaves last entry empty, as a sentinel
2023-11-28 20:08:27 -05:00
Marshall Lochbaum
51027cabe1
Fix GC-after-free with multiple hash resizes
2023-11-28 16:53:45 -05:00
Marshall Lochbaum
53beab531b
•HashMap key and value list compaction and methods to return those lists
2023-11-28 11:09:32 -05:00
Marshall Lochbaum
95f5e65b6c
•HashMap delete with backwards shift; no key/value compaction yet
2023-11-28 10:52:56 -05:00
Marshall Lochbaum
ce9f460e2c
•HashMap count and set functions
2023-11-28 10:33:41 -05:00
Marshall Lochbaum
016e428db6
Always store •HashMap keys and values as HArrs
2023-11-27 19:20:38 -05:00
Marshall Lochbaum
96c7f2eb1a
Move •HashMap implementation details to search.c
2023-11-27 19:20:38 -05:00
Marshall Lochbaum
77bfc7dd1a
Non-resizing static Robin Hood hashmap
2023-11-27 19:20:38 -05:00
Marshall Lochbaum
8edc965686
•HashMap stub with linear lookup
2023-11-27 19:20:38 -05:00
dzaima
adc4506ac8
fast path for ind integer checking
2023-11-26 22:16:53 +02:00
dzaima
4b67de5f83
don't need these comments
...
they're present in h.h, and trivial to determine from source anyway
2023-11-26 22:16:53 +02:00
dzaima
e9b7d027ca
cleanup & fix various build types
2023-11-26 16:56:26 +02:00
dzaima
01a60dceff
separate path & name, store path+name+args in state
2023-11-26 16:32:37 +02:00
dzaima
fe280613af
fix toHArr usage in another place
2023-11-26 15:53:44 +02:00
dzaima
789064140b
use isStr more, include builtin name in bad path messages
2023-11-26 15:37:41 +02:00
dzaima
31e4b29115
proper toHArr usage
2023-11-26 14:56:08 +02:00
dzaima
fce64987b1
helper for immediately-consumed block
2023-11-26 14:54:37 +02:00
dzaima
633bbc8112
don't need def_rt & def_glyphs either actually
...
+ clean up some gc_add-ing
2023-11-26 14:45:54 +02:00
dzaima
b28c1a8f01
get rid of global def_comp & def_compOpts, refcount fixes
2023-11-26 13:56:26 +02:00
dzaima
7dd398433b
fix native compiler
2023-11-26 13:46:07 +02:00
dzaima
71ade3e9c6
add missed decrements, expand test
2023-11-26 01:27:36 +02:00
dzaima
3f62a51305
system value inheriting
2023-11-26 01:21:11 +02:00
dzaima
a93ea4dbaf
base •ReBQN and •BQN onto outer re
2023-11-25 23:39:58 +02:00
dzaima
5e455372f0
more renaming & shuffling of things
2023-11-25 23:21:32 +02:00
dzaima
e25281518c
move more things into re
2023-11-25 23:21:32 +02:00
dzaima
7c28c64178
change •BQN and •ReBQN to dynamically-computed functions
2023-11-25 23:21:32 +02:00
dzaima
7214017bb2
move •BQN and •ReBQN to computed sysvals
2023-11-25 23:21:32 +02:00
dzaima
7e0204083e
name re parts
2023-11-25 23:21:32 +02:00
dzaima
7fb8ecfa86
rename things
2023-11-25 23:21:32 +02:00
dzaima
cd6da03fd9
always supply a valid re object
2023-11-25 23:21:32 +02:00
dzaima
7357820f19
start of compiler state refactoring
2023-11-25 23:21:32 +02:00
dzaima
dcf26f88d7
fix segfault during GC from compileAll's cpyHArr(objs)
2023-11-25 21:37:48 +02:00
dzaima
5458739cf2
don't have a ⌾ character in m_c8vec_0
...
name shouldn't ever be visible either, so shortening it while at it
2023-11-24 22:21:23 +02:00
dzaima
db0bb1378c
rearrange Body fields to pack better
2023-11-24 16:00:11 +02:00
dzaima
1d8479b589
apparently nothing uses the bc field in Comp anymore
2023-11-24 15:30:47 +02:00
dzaima
eb62b48e4e
don't inline wyhash make_secret
...
+ remove wyhashmap, we don't need it, it breaks on collisions
2023-11-24 15:24:28 +02:00
dzaima
f02c92ee6a
fix 3 ∨ "abc"
2023-11-23 18:13:51 +02:00
dzaima
8814a7e66e
use 2x unroll for i16→u1 copying to utilize two-vector homMask
2023-11-21 02:45:33 +02:00
dzaima
773429a959
recursive base-case of homMask
2023-11-21 02:40:50 +02:00
dzaima
08fa7d3d30
specialize x86-64 homMask of 2x[n]i16, use for comparison
2023-11-21 02:29:03 +02:00
dzaima
3ebfb24b0f
unroll copying to bitarr
...
+ clean up comparison code as bulk homMask is supported everywhere
2023-11-21 00:18:18 +02:00
dzaima
fe985722c2
move multi-vector homMask to allow NEON to override it
2023-11-21 00:18:18 +02:00
dzaima
d1f66dc75b
check created bitarr size for overflow
2023-11-18 19:56:39 +02:00
dzaima
56cbe4aa03
mulHi → mulh for high half of element result
...
to not be confused with mulwHi or zipHi where it means providing the high batch of elements
2023-11-18 00:43:20 +02:00
dzaima
c8cdaf0216
Clear assumption about assignment result in const-folder
2023-11-17 17:44:32 +02:00
dzaima
2b56a300bc
probably make ⊔ able to handle output subarray lengths over 2^32
...
still no support for (≠𝕨)≥2⋆32 though
2023-11-17 00:40:26 +02:00
dzaima
46e8ed1a3f
fix SSE4.2 usz=64 build
2023-11-13 23:28:30 +02:00
dzaima
59208af520
remove old group path
...
effectively only got used for f64arr 𝕨; could transform to doing just that, but its inefficient type of the group arrays make it bad for that too
2023-11-13 23:16:02 +02:00
dzaima
f037754880
more specific empty array types
2023-11-13 23:16:02 +02:00
dzaima
8c7a3be036
remove unused includes
2023-11-13 21:48:01 +02:00
dzaima
b4e53abbe4
some comments
2023-11-13 16:38:02 +02:00
Marshall Lochbaum
c94d51dcaf
Fixes for 64-bit usz
2023-11-13 08:24:51 -05:00
dzaima
4fb6ce602f
add a require{} for CRC32
2023-11-13 12:56:48 +02:00
dzaima
5910c93fcb
silence some warnings & errors in various build types
2023-11-13 12:54:49 +02:00
Marshall Lochbaum
09572de49a
Credible resizing policy for dyadic search hashes
2023-11-12 22:07:29 -05:00
Marshall Lochbaum
ee7a11a279
Unify self-search hash thresholds across primitives; doesn't seem to hurt performance
2023-11-12 14:35:25 -05:00
Marshall Lochbaum
5957487b70
Faster iteration over non-empty entries for hash table resizing
2023-11-11 20:24:20 -05:00
Marshall Lochbaum
b404c7c1d1
Eliminate a loop when resizing ordered hash
2023-11-11 20:24:20 -05:00
Marshall Lochbaum
3a50cda5d3
Specialize Index-of tables on result type
2023-11-10 17:12:37 -05:00
Marshall Lochbaum
b782693d15
Insert maxh to a special end bucket for ⊒ and reverse ⊐ (fixes ⊒ maxh bugs)
2023-11-10 12:04:55 -05:00
Marshall Lochbaum
e1b0c53c92
Fix various sentinel bugs
2023-11-09 20:24:46 -05:00
Marshall Lochbaum
7b79dfc94e
Update search implementation comments
2023-11-09 15:20:50 -05:00
Marshall Lochbaum
2c625127d5
Reverse hashed Index-of
2023-11-09 10:39:07 -05:00
Marshall Lochbaum
f1485ca98c
Turn hash function definition structure inside-out
2023-11-09 09:19:47 -05:00
Marshall Lochbaum
aded9d4782
Shortcutting for reverse Member-of hash
2023-11-08 17:34:33 -05:00
Marshall Lochbaum
8e9c04523a
Fix overflow bug in hashed Member-of max_off calculation
2023-11-08 10:28:14 -05:00
Marshall Lochbaum
c75fdbc277
Reverse Member-of hash lookup
2023-11-07 22:07:17 -05:00
Marshall Lochbaum
8a2190b092
64-bit hashes with float normalization
2023-11-07 14:54:16 -05:00
Marshall Lochbaum
a4290b1f5c
Shortcut for hash-table dyadic ⊒
2023-11-07 09:59:53 -05:00
Marshall Lochbaum
4bf4149d40
Use hash deletion for forward ⊒ as well as reverse
2023-11-07 09:41:50 -05:00
Marshall Lochbaum
289658a59c
Delete hash entry as soon as it's cleared, not on next access
2023-11-07 07:53:45 -05:00
Marshall Lochbaum
30331eb800
Fix write off end for reverse ⊒
2023-11-07 07:15:17 -05:00
Marshall Lochbaum
c042fe6ca3
Vector binary search for integer Index-of
2023-11-06 15:43:26 -05:00
Marshall Lochbaum
52bca6a55c
Multiple IndexOfOne to search for a few values in a large array
2023-11-06 12:16:59 -05:00
Marshall Lochbaum
d154ece51a
Vector binary search for 16-bit Member-of in addition to 32 (8 is too slow)
2023-11-06 09:37:58 -05:00
Marshall Lochbaum
11245d385e
Vector binary search Member-of
2023-11-05 22:10:39 -05:00
Marshall Lochbaum
75aed91f32
And max offset of 8 by testing two vectors
2023-11-05 15:46:26 -05:00
Marshall Lochbaum
ec31543604
Vector Member-of search up to an offset of 4
2023-11-05 15:45:07 -05:00
Marshall Lochbaum
af81da50e4
Don't need to initialize indices for hashed Index-of
2023-11-04 17:52:22 -04:00
Marshall Lochbaum
1286ee32ec
Reverse lookup for hashed Progressive Index-of
2023-11-03 21:58:17 -04:00
Marshall Lochbaum
84f3205547
Use a larger initial hash table if non-hashed argument is large
2023-11-03 21:50:38 -04:00
Marshall Lochbaum
a9f33c1454
Refactoring
2023-11-03 16:38:08 -04:00
Marshall Lochbaum
8aa6c07199
And hashed 32-bit Progressive Index-of
2023-11-02 20:29:54 -04:00
Marshall Lochbaum
64f2a10fbb
Return hash_resize{} from hash_alloc{}
2023-11-02 13:21:11 -04:00
Marshall Lochbaum
d54621b5dd
Extend hash table to 32-bit Index-of
2023-11-02 12:00:32 -04:00
Marshall Lochbaum
ed03720441
Robin Hood hash table for 32-bit membership
2023-11-01 15:46:45 -04:00
Marshall Lochbaum
cb8be206be
Move hash allocation to a generator
2023-10-31 22:09:11 -04:00
Marshall Lochbaum
ee856a4880
Move hash resizing to a generator, and other refactoring
2023-10-31 22:09:11 -04:00
Marshall Lochbaum
0391cf4ca3
Fast number-character (no matches) searches
2023-10-31 22:09:11 -04:00
Marshall Lochbaum
0fb845d336
Move self-search hash table code to Singeli
2023-10-31 22:09:11 -04:00
dzaima
ad574d2269
refactor & document #define-s, always-available ')gc log' and ')mem log'
2023-10-31 03:16:48 +02:00
dzaima
08c4627686
fix dense case of •rand.Subset not updating seed
2023-10-30 17:03:38 +02:00
dzaima
a4befbd8bf
FFI: check for 𝕨 being present when required
2023-10-29 01:01:48 +03:00
dzaima
7ffd744375
reorganize file writing
...
fixes some unclosed file descriptors & files being made on an invalid argument
2023-10-28 19:27:00 +03:00
dzaima
b6594008cd
fix non-Singeli builds
2023-10-26 17:32:12 +03:00
dzaima
3775cd0025
typo
2023-10-22 15:18:39 +03:00
dzaima
577442449d
inverses for •math.Atan2, •math error tests
2023-10-22 14:33:51 +03:00
dzaima
1ec48bb761
cleanup
...
makefile doesn't care about emcc anymore
2023-10-21 14:46:41 +03:00
dzaima
4322303031
Fix 2‿2↕3‿3‿3⥊↕27
2023-10-12 12:43:08 +03:00
dzaima
9c68e67544
fix compilation error when targeting AVX1-only
2023-10-07 13:22:27 +03:00
dzaima
e7b87f669f
fix arr÷negativeZero, set proper float expected values
2023-09-21 19:03:30 +03:00
dzaima
f6a9c30889
•internal.HeapStats
2023-09-18 23:38:06 +03:00
dzaima
df0ccdf2d7
add error message on missing posix_spawn support in make for-build
2023-09-17 13:39:22 +03:00
dzaima
299168fb16
fast numarr÷scalarPowOf2
2023-09-12 23:57:50 +03:00
dzaima
5efd90cc91
rename elWidthLogBits to something less long & add byte variant
2023-09-12 19:58:56 +03:00
Marshall Lochbaum
6330d61a88
Some rearrangement and minor simplifications
2023-09-12 10:24:00 -04:00
Marshall Lochbaum
72da47d48a
Use standard for loops
2023-09-12 09:12:57 -04:00
Marshall Lochbaum
40ed55bc43
Use built-in NEON include for basic vector instructions
2023-09-11 21:17:38 -04:00
Marshall Lochbaum
7b9f7ba331
Move x86 vector and NEON includes into base.singeli
2023-09-11 20:25:25 -04:00
Marshall Lochbaum
082f800b3e
Combine x86 vector extensions and use iintrinsic/basic when possible
2023-09-11 20:11:16 -04:00
Marshall Lochbaum
c85ca66dae
Unify Scan and Bins min-scan code
2023-08-26 09:27:59 -04:00
Marshall Lochbaum
0a30fb309d
SSE2 min- and max-scans
2023-08-26 07:26:33 -04:00
Marshall Lochbaum
a040a14744
Unify power-of-two shift pattern for scans
2023-08-26 07:26:33 -04:00
Marshall Lochbaum
d16ba6c3b1
Move xor-scan to scan.singeli; remove neq.singeli
2023-08-26 07:26:33 -04:00
Marshall Lochbaum
e261e80168
SSE min/max and pluswrap scans
2023-08-26 07:26:33 -04:00
Marshall Lochbaum
f9a4a5b68c
Remove duplicated SSE4.1 min/max bindings
2023-08-26 07:26:33 -04:00
Marshall Lochbaum
00c454d37a
Add generic-architecture versions of Singeli scans
2023-08-26 07:26:33 -04:00
dzaima
ec14d45c50
round up pointers in self-search allocs
2023-08-25 04:03:25 +03:00
dzaima
81a291f860
round up some pointers
2023-08-25 03:47:05 +03:00
dzaima
f0d6a65240
move unaligned load/store helpers to stuff.h
...
also replace a NULL with "" to make iBuf+0 not be UB
2023-08-25 03:24:42 +03:00
dzaima
8975f6af00
fast 1|x
2023-08-24 21:32:35 +03:00
dzaima
3e6e158696
native 𝕨⍷𝕩 when 1≥=𝕨 and 2≥=𝕩
2023-08-24 19:46:57 +03:00
dzaima
c5b98ea7a1
apparently LLVM actually uses pointer type to determine alignment
2023-08-20 22:57:30 +03:00
dzaima
6eaa9238bc
separate BSDs
2023-08-20 19:33:11 +03:00
dzaima
34d4fd6433
more explicit loadu/storeu
2023-08-20 00:18:09 +03:00
dzaima
1bb686a9ff
fix UB in grade.h
2023-08-19 21:48:11 +03:00
dzaima
2732becf50
global STR0/STR1 definitions
2023-08-19 20:12:53 +03:00
dzaima
721dccf636
fix FFI integer overflow check on ARM
...
clang optimizes a raw f!=(u8)f to like f!=(u32)f on ARM which changes behavior (we're technically using UB here, but there's no reasonable alternative); use q_ functions that know how to work around this
2023-08-19 20:12:53 +03:00
dzaima
25c2629842
•platform
...
incl. adding support for REPL completion of •a.b.c (i.e. >1 '.')
2023-08-19 18:25:52 +03:00
dzaima
4d19654e3b
fix store types
2023-08-16 19:01:04 +03:00
dzaima
acca5c0c7c
fix completely wrong dyTable lookup
2023-08-15 14:45:27 +03:00
dzaima
df56f6b2fc
fix 𝕨•FLines𝕩 with invalid elements in 𝕩
2023-08-13 03:51:06 +03:00
Marshall Lochbaum
2dd3a0fdfa
Boolean compress implementation comments
2023-08-07 15:33:37 -04:00
Marshall Lochbaum
4e9745688b
Use generic boolean Compress as the sparse case with Singeli
2023-08-07 13:47:58 -04:00
Marshall Lochbaum
a7908a10b0
Faster, sparse, non-Singeli boolean Compress
2023-08-07 12:26:40 -04:00
Marshall Lochbaum
bbad98bce1
In AVX2 boolean Compress, jump from 8 to 32 with 32-bit shifts
2023-08-07 11:41:53 -04:00
Marshall Lochbaum
120df26814
mullo works for both signed and unsigned
2023-08-07 11:23:38 -04:00
Marshall Lochbaum
d039562efe
Fix disabled BMI2 boolean Compress; cleaner SIMD width system
2023-08-06 08:09:08 -04:00
Marshall Lochbaum
9046dd6b53
Handle boolean Compress SIMD tail with conditional write, not scalar loop
2023-08-06 08:03:14 -04:00
Marshall Lochbaum
07ace41d6c
Vectorized version of the clmul boolean Compress
2023-08-06 07:36:05 -04:00
Marshall Lochbaum
371aa6f2ef
AVX2 boolean Compress using variable shifts
2023-08-05 21:50:22 -04:00
Marshall Lochbaum
66c0fe041c
Get pext and popcount together, since generic pext emulation includes popc
2023-08-05 20:38:54 -04:00
Marshall Lochbaum
056b18edd2
Move pext-based compress loop from C to Singeli
2023-08-05 20:38:54 -04:00
Marshall Lochbaum
7767cf933f
Remove boolean Compress overallocation: not needed with w masked off
2023-08-05 20:38:54 -04:00
Marshall Lochbaum
e09d385df5
Simplify pairwise pext implementation; drop 12-bit as no longer competitive
2023-08-05 20:38:54 -04:00
dzaima
7fe1ab930a
FFI: permit 𝕨≡⟨⟩, require 𝕩≡⟨⟩ if no arguments are on 𝕩, check list rank
2023-08-05 16:13:07 +03:00
dzaima
682d5986d8
slightly more accurate trailing newline removal for •GetLine
2023-08-04 21:09:45 +03:00
dzaima
a1e4f9bd6f
remove multiple trailing newline characters from •GetLine
...
Windows adds \r\n, and without this the \r stays
2023-08-04 20:52:07 +03:00
dzaima
8e35241e47
Better error messages for unknown namespace key
2023-08-03 22:54:38 +03:00
dzaima
0b6c5189d8
move arithdDispatch declarations to a header
...
+ rename some things to make more sense
2023-07-31 20:26:05 +03:00
dzaima
627a7e0771
more FFI error checking, plus bugfixes
2023-07-28 15:25:06 +03:00
dzaima
1bc96f5557
extract u8/u16/u32/f32 reading functions
2023-07-28 14:02:22 +03:00
dzaima
1454ca3a1a
expand & test FFI error checking
2023-07-28 13:59:25 +03:00
dzaima
79f72d84b8
extract unsigned & f32 copying functions in ffi.c
2023-07-28 13:41:03 +03:00
dzaima
0d7de8b190
define ux in Singeli, replacing Size; return ux from popc/clz/ctz
2023-07-26 17:42:23 +03:00
dzaima
f7a0eb94a3
don't use AVX2 buffer copying for a 16-byte buffer
2023-07-22 21:34:20 +03:00
dzaima
1451395ef5
don't do fancy char stuff for unchecked arith
2023-07-22 21:13:49 +03:00
dzaima
959614c785
use partial application
2023-07-22 18:19:31 +03:00
dzaima
033f3de6b9
remove unnecessary lambda wrappers
...
also use fmtnat
2023-07-22 18:15:07 +03:00
dzaima
446b2d09ed
Singeli renames & docs
2023-07-22 17:37:20 +03:00
dzaima
6e96600878
move unaligned load & store to base.singeli
2023-07-20 00:21:09 +03:00
dzaima
0486adccb5
fix signedness of abs{x}
2023-07-20 00:19:54 +03:00
dzaima
2243fa76c1
better base case list
2023-07-19 21:56:35 +03:00
dzaima
eb46ec8d9c
rename __mulhi & __mul32
2023-07-19 21:54:12 +03:00
dzaima
700d69e7dd
unpack → zip & mzip; enable slash.singeli SIMD parts for NEON
2023-07-19 21:39:22 +03:00
dzaima
ba2e859dce
use existing unpackLo in neq.singeli
2023-07-19 20:56:08 +03:00
dzaima
19b35e1074
fix size comment
2023-07-19 20:11:14 +03:00
dzaima
9945711b5e
AVX2 i32 & i64 slash{} via widening load
2023-07-19 20:00:46 +03:00
dzaima
ff9bb258c2
more comments in slash.singeli
2023-07-19 18:50:01 +03:00
dzaima
48111d4873
extract iota{} for AVX-512
2023-07-19 17:24:20 +03:00
dzaima
a0797318ca
use has_simd & arch_defvw
2023-07-19 17:03:41 +03:00
dzaima
03c21112c2
make NEON builds work
2023-07-19 16:58:35 +03:00
dzaima
6930bc34b6
further update slash.c implementation comments
2023-07-19 16:51:24 +03:00
Marshall Lochbaum
77188b8e73
Add clmul.singeli
2023-07-19 09:38:37 -04:00
Marshall Lochbaum
301a23fb1f
Update where/compress implementation comments
2023-07-19 09:35:40 -04:00
Marshall Lochbaum
c4364aefa6
SSSE3 4-byte compress with half-width table
2023-07-19 08:15:53 -04:00
Marshall Lochbaum
ba837ba01b
Remove table-less where/compress methods, as they're not competitive
2023-07-19 07:22:55 -04:00
Marshall Lochbaum
64d65ae837
Never use generic dense compress methods if use_table: where is faster
2023-07-18 21:35:12 -04:00
Marshall Lochbaum
b0e0f210c6
2- and 4-byte Where with unpack and table
2023-07-18 21:10:39 -04:00
Marshall Lochbaum
93e1262864
Avoid using popcount primitive in Singeli if POPCNT isn't present
2023-07-18 16:52:08 -04:00
Marshall Lochbaum
6df283c379
Always increment by full popcount instead of two halves when splitting byte
2023-07-17 17:52:59 -04:00
Marshall Lochbaum
2f6a8e55a1
Always use vectors for for_special_buffered buffer copy
2023-07-17 16:52:10 -04:00
Marshall Lochbaum
8add95b7ab
Remove BMI2 where/compress methods
2023-07-17 16:20:30 -04:00
Marshall Lochbaum
f005169518
1- and 2-byte compress with table and SSSE3
2023-07-17 16:19:05 -04:00
Marshall Lochbaum
68978f7e10
Table-based 1- and 2-byte Where
2023-07-17 16:05:06 -04:00
Marshall Lochbaum
fc187afdf2
Extend 1-byte SSE2 Where to 2-byte and 4-byte with unpacked writes
2023-07-17 11:28:04 -04:00
Marshall Lochbaum
8b297ae2dc
Dedicated 32-bit Singeli where, taking index offset
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
3bd8d1de68
Extend all Singeli Compress methods to do Where
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
4415869496
Generic Singeli where implementation
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
c484f8ee8d
Avoid UB from shifting by 64
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
da5f1faa07
Merge BMI2 slash{} cases, with some simplifications
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
b244ba98f5
Unify slash1{} and slash2{}
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
f5121f6806
Thresholds for compress methods (versus sparse) defined in Singeli
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
824bb04b4d
Plain SSE2 1-byte compress
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
f852d12a5c
Generic Singeli compress implementation
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
f36426031a
Slightly faster table-less compress method
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
84a928863b
AVX-512 compress implementations
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
80e93c41c9
Use new undefined{type,len} instead of alloca
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
13b3bcd74b
Table-less AVX2 1-byte compress
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
d956ba921b
Non-overwriting 1-byte and 2-byte compress/where
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
8f4b1966cb
Non-overwriting AVX2 4-byte and 8-byte compress, using a buffer
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
9010f648bb
Unify permutevar-based compress implementations
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
0921fc2c62
AVX2 compress implementations using permutevar and lookup tables
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
03d8919307
Add has='pclmul' option and avoid using broadcast
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
871a81ca5f
BMI2 pext not-emulation in Singeli
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
1314859a80
clmul-based pext emulation
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
f315a6d3ea
Emulate pext instruction in Singeli
2023-07-16 21:56:33 -04:00
dzaima
3946f2cc87
use new Singeli builtins
2023-07-17 02:23:50 +03:00
dzaima
6305a3bd50
change error message of failed path_abs
2023-07-16 16:31:10 +03:00
dzaima
cf6a290e5c
•file.RealPath
2023-07-16 01:42:30 +03:00
dzaima
d1e511bebd
add padding before allocations & document it
2023-07-13 16:20:37 +03:00
dzaima
9cfc3f3f25
various changes on filling arrays with the same element
2023-07-12 16:23:03 +03:00
vylsaz
e4542f70a6
Implement •term.CharN and •term.RawMode for Windows
2023-07-11 03:15:48 +00:00
vylsaz
ce255c4a53
Enable •file.CreateDir on Windows
2023-07-11 01:11:28 +00:00
dzaima
0601a86f56
don't special-case 2/𝕩 on NEON
2023-07-11 02:40:05 +03:00
dzaima
56a1fc3637
use float getting functions for getting floats
2023-07-10 23:48:07 +03:00
dzaima
9b0299d1a5
fix (<1)≠`5⥊1
2023-07-10 23:25:28 +03:00
dzaima
53266ffd88
fix (<1)⌈`↕10
2023-07-10 23:21:36 +03:00
dzaima
158a3beb2e
partially clear object on free in debug mode
...
catch some more of what valgrind would relatively cheaply
2023-07-10 22:55:19 +03:00
dzaima
acbfcd7302
fix another weird case of 𝕨∾𝕩
2023-07-10 22:55:00 +03:00
dzaima
24fea51bdd
fix unshare of fillslice
2023-07-10 22:55:00 +03:00
dzaima
cb9f4dbbc1
remove debug include
...
:|
2023-07-10 19:19:55 +03:00
dzaima
cd7807fba0
NEON constrep
2023-07-10 17:11:15 +03:00
dzaima
1cea42cad3
use getter over 𝕨 for generic 𝕨⍋𝕩
...
doesn't change perf, but leads to fast amortized long⍋short
2023-07-10 16:50:02 +03:00
dzaima
bf89d2d561
a little size reduction on write_indices
2023-07-10 16:29:21 +03:00
Marshall Lochbaum
f6d1f9fcab
Move utilities from bins to appropriate files
2023-07-10 07:14:44 -04:00
Marshall Lochbaum
492e97e2ca
Right argument narrowing for numeric Bins
2023-07-10 07:14:44 -04:00
Marshall Lochbaum
9511598aa3
Fast Bins when either argument is boolean
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
1fa00c9c6f
Update bins implementation comments
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
46c6d47055
Permutevar instead of shuffle for 4-byte vector binary search
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
fc57e0012d
Shuffle-based 4-byte vector binary search
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
af5ba0a2d2
Switch from Eytzinger to linear search on extra lanes
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
64ae8f9afd
Slightly better blend pattern for >16-byte bit table
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
c8d20fbf26
And 2-byte vector binary search on 4 lanes
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
fe92f91ca1
2-byte vector binary search on 2 lanes
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
d19df2693a
Merge 1-byte table code with normal bins_lookup
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
f36dc7adba
Use max-scan instead of plus-scan for 1-byte Bins table
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
8054597004
Handle up to 64 unique values in bit-table 1-byte Bins
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
b62bd02bc0
Precomputed midpoint bits in vector binary search
...
Clang already optimized to this but it's more explicit
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
7f5ba961c2
Use default bins_lookup if there's no AVX2
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
1080236433
2-byte vector binary searches
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
d665b90bbf
Slightly faster binary search pattern with a blend
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
a711eb72eb
Table-based 2-byte Bins, using max-scan
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
724f685a57
Cleanup
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
2c9e07f33d
1-byte Bins up to 32 unique eleemnts by unique lookup then index
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
81da9c586f
Table-based 1-byte Bins with >1-byte result
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
0346ff7c2d
Use type of ≠𝕨 for Singeli Bins result and allocate outside Singeli
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
e0621f99f8
Unroll vector binary searches for different search depths
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
38671e3fe9
Fast handling for length-1 𝕨 in Bins
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
ed9e8b4057
Table-based 1-byte Bins implementations, including AVX2
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
7161689196
Fix bin_search_vec over-writing
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
302d637129
Allocate binary search result in Singeli, using i8 for vectors
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
70249d8b64
In bins, promote to smallest common int type instead of i32
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
4f93b5849b
Fix shape of char⍋num result (was deshaped)
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
ec9b875503
Separate is-sorted check from Bins implementation
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
ff9919dde2
AVX2 binary search on one lane of i8 (unused for now)
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
5424c57b7e
Use Singeli float binary search
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
ee84f9fe1f
4-way branchless binary search unrolling
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
464a53463d
Generic Singeli version of 32-bit binary search
2023-07-10 07:13:21 -04:00
dzaima
6b5815dcc2
fix shape of k/n‿1⥊1
2023-07-10 02:40:36 +03:00
dzaima
8975be082b
fix •ns.Get error message
2023-07-09 15:58:31 +03:00
dzaima
5c7934387a
update Singeli submodule, match{} → same{}
2023-06-29 15:19:57 +03:00
dzaima
a67a19dd0b
move pair{{a,b}} expanding to base.singeli
2023-06-29 01:31:58 +03:00
dzaima
4ee8dfbbda
update Singeli submodule, use destructuring parameters
2023-06-28 00:59:28 +03:00
dzaima
3ae9b14d64
separate arith inits, add comments on init order
2023-06-23 12:10:42 +03:00
dzaima
7618dce2f3
fix return value of overflowed dyadic arith
2023-06-23 12:10:42 +03:00
dzaima
5f43bf16b3
add direct typed array type test macro
2023-06-23 12:10:42 +03:00
dzaima
4dbe72ae03
properly indicate estimating Singeli instructions
2023-06-23 11:51:34 +03:00
dzaima
8f8380749b
generic Singeli builds
2023-06-16 11:12:15 +03:00
dzaima
5032c9a3ab
remove unnecessary 'over _ to'
2023-06-15 19:12:20 +03:00
dzaima
90e7537225
move maskedLoopPositive to @-based
2023-06-15 19:09:53 +03:00
dzaima
dee29a1a02
block → iter
2023-06-15 18:11:57 +03:00
dzaima
9da567cd57
switch to new Singeli block execution
2023-06-15 18:08:57 +03:00
dzaima
2da457dafa
fix el_half
2023-06-15 00:32:19 +03:00
dzaima
4260ef93b3
rename away underscores in __adds and __subs
...
plus add NEON addw, subw, and mulw (which is renamed from mul1)
2023-06-12 00:52:09 +03:00
dzaima
2a52dff482
@-forms of maskedLoop and muLoop
2023-06-12 00:52:09 +03:00
dzaima
fe8892ce6c
rearrange shrm/shlm args, slightly better NEON homMask{[16]u8}
2023-06-12 00:52:09 +03:00
dzaima
336f986986
change error messages in ◶
2023-06-12 00:52:09 +03:00
dzaima
8542ba071d
homMaskX, merging multi-arg homMask
2023-06-07 18:14:18 +03:00
dzaima
934a2b5ae3
rearrange things
2023-06-06 21:44:50 +03:00
dzaima
087bf06cac
fix type warnings
2023-06-01 20:12:51 +03:00
dzaima
efa1c4a4ff
__declspec(dllexport)
2023-06-01 19:04:34 +03:00
dzaima
78bef5fe32
consistent 𝕨⊏𝕩 error messages across argument types
2023-05-30 14:28:36 +03:00
dzaima
2eb12fef82
fix replxx under os=windows
2023-05-30 13:37:15 +03:00
dzaima
7e5b2e0557
don't unroll/vectorize extremely tiny loop
2023-05-30 12:52:17 +03:00
dzaima
5738712bbb
improve environ declaration
2023-05-30 12:52:00 +03:00
dzaima
c03dd349e4
disallow •ReBQN constructing namespaces, ignore RETD in interactive REPL
2023-05-27 16:37:42 +03:00
dzaima
da5280021c
rename compile → compileAll
2023-05-27 15:38:57 +03:00
dzaima
227dfa20c7
use isatty as a default for notui
2023-05-25 00:16:16 +03:00
dzaima
55e0409582
don't CTZ(0) in gcd
2023-05-24 15:13:25 +03:00
dzaima
c3681a0557
update type number comments
2023-05-22 14:17:53 +03:00
dzaima
3872f5a625
fix 𝕨∾𝕩 reuse logic
2023-05-22 11:40:37 +03:00
dzaima
20a946d085
dynamically switch fork functions
2023-05-22 00:32:44 +03:00
dzaima
b093ebbc66
finish PICK_IDX message
2023-05-22 00:18:59 +03:00
dzaima
f0744f16d0
fix erroring variable read
2023-05-22 00:11:21 +03:00
dzaima
e8caed529c
fix JIT SETUi/SETMi/SETCi missing unset variable checks
2023-05-22 00:08:20 +03:00
dzaima
de5bcfe211
static library
2023-05-21 23:47:40 +03:00
dzaima
fd72ea79c8
another gcc warning
2023-05-21 23:39:18 +03:00
dzaima
d15d8febbe
slightly less wrong superset fills for 𝕨∾𝕩
2023-05-20 14:28:37 +03:00
dzaima
d6609df820
reserve •CurrentError with namespace 𝕩
2023-05-20 14:28:37 +03:00
dzaima
1e22b48225
in-place ∾ for fillarrs & fillslices
2023-05-20 14:05:22 +03:00
dzaima
bc19e7372d
fix pointer check in eachm_fn
2023-05-20 14:05:22 +03:00
dzaima
e781ae21ee
give PUSH_COMP access to the updated source string
2023-05-20 13:22:24 +03:00
dzaima
7f46de18fc
add missed refcount decrements
2023-05-20 01:30:02 +03:00
dzaima
c9e7dc9976
remove a debug include
2023-05-20 00:01:35 +03:00
dzaima
ad49a9b26d
guarantee a space fill to compilation
2023-05-19 22:51:02 +03:00
dzaima
e8d286da3b
proper in-place updating in compile()
2023-05-19 22:51:02 +03:00
dzaima
ea70e06eac
fix >⟨2,<<3⟩
2023-05-19 22:51:02 +03:00
dzaima
df348896fd
add a NOGC_E for conflicting⌾(list⊸⊏) generic
2023-05-19 22:51:02 +03:00
dzaima
0156d13a5e
proper arrow in error messages of ⌾(n⊸↓) vs ⌾(n⊸↑)
2023-05-19 17:32:46 +03:00
dzaima
d930e7f975
add nogc message to thrF
2023-05-19 17:32:14 +03:00
dzaima
a03fab044d
•internal.Keep
2023-05-19 15:41:50 +03:00
dzaima
c1488cbf72
faster arr⌾(is⊸⊏)list
2023-05-19 14:15:25 +03:00
dzaima
f6703df0b2
range calculation functions
2023-05-19 14:01:32 +03:00
dzaima
8bfe2b6b5b
fix unrolled integer |𝕩 (not used currently)
2023-05-19 13:15:51 +03:00
dzaima
616fd48785
base.singeli additions
2023-05-19 13:15:51 +03:00
dzaima
1ec4415e49
clean up some under functions in sfns.c
2023-05-19 13:15:51 +03:00
dzaima
3977849bc5
fix "_m←¨⋄4 m´⟨⟩" and "4 10´⟨⟩"
2023-05-19 12:58:18 +03:00
Marshall Lochbaum
93e590fd9d
One case for dyadic constant-each
2023-05-18 15:40:52 -04:00
Marshall Lochbaum
ed5fac7cc9
Constant and tack cases for Table
2023-05-18 15:11:20 -04:00
Marshall Lochbaum
b5de844736
Constants and tacks with rank, except some dyadic cases
2023-05-18 14:52:13 -04:00
Marshall Lochbaum
7440e2a6bc
Constant and trivial cases for fold/insert
2023-05-18 12:11:49 -04:00
Marshall Lochbaum
9dfeb451f8
Handle empty cells in insert_base; fixes bugs in dyadic Insert
2023-05-18 11:53:53 -04:00
Marshall Lochbaum
a8cead1d3d
Fast cases for tacks, constant operands, and short arguments in scans
2023-05-18 10:54:56 -04:00
Marshall Lochbaum
1ff8954dd3
Fix leak in dyadic •_timed
2023-05-18 10:54:56 -04:00
Marshall Lochbaum
6ac8944b06
Remove redundant isAtm check in constant case of each_c1
2023-05-18 10:54:56 -04:00
dzaima
b46477450d
fix shape of argument passed to F in F⌾(is⊸⊑)
...
& skip computing the argument if not needed
2023-05-18 16:37:24 +03:00
dzaima
0572fcc5b2
native F⌾(list⊸⊑) & ⌾(listOfLists⊸⊑)
2023-05-18 01:54:01 +03:00
dzaima
d310669ae8
unify F⌾(n⊸⊑) and F⌾⊑
2023-05-18 00:27:38 +03:00
dzaima
3047ff48b5
Add rank checks to •FChars & •FLines & •FBytes & •Out
...
& clean up terminology
2023-05-17 21:56:40 +03:00
dzaima
e355395e7a
remove duplicated check
2023-05-17 20:53:26 +03:00
dzaima
4f15e1572d
disallow •Out ⋈0
2023-05-17 20:50:21 +03:00
dzaima
ec106c0b31
better heuristic for 𝕨∊𝕩 comparison-or path
2023-05-17 18:42:24 +03:00
dzaima
e4d222173d
a bunch of fixes for generic architecture & wasm
2023-05-16 00:07:48 +03:00
dzaima
65868a51ba
use the type of the correct argument in check
2023-05-13 02:19:10 +03:00
dzaima
f0a9714e8b
copy result in tbl_c2 if needed
2023-05-13 00:33:22 +03:00
dzaima
a9478f802f
tuning for arithmetic leading axis, F⌜, and reshape-based ⎉
2023-05-13 00:33:22 +03:00
dzaima
a3e8a1388d
move all targets to build.bqn with Singeli & REPLXX enabled by default
2023-05-12 20:51:25 +03:00
dzaima
2f51974c2f
use proper pointer conversion macros in ffi.c
2023-05-12 19:36:02 +03:00
dzaima
f229b3c486
fix rtperf
...
not that anyone uses it anymore
2023-05-12 16:34:23 +03:00
dzaima
a39264533e
custom _mm_loadu_si16/_mm_storeu_si16 for old gcc
2023-05-12 16:34:23 +03:00
dzaima
6dc24bd99b
free arguments of SIMD 𝕨∊𝕩 & ∊𝕩
2023-05-12 13:51:30 +03:00
Marshall Lochbaum
25883b410c
Retune boundary for small-𝕩 linear Member Of
2023-05-11 21:11:43 -04:00
Marshall Lochbaum
53fb8db06f
SSSE3 support in bit-table code
2023-05-11 21:05:24 -04:00
Marshall Lochbaum
464dd27a37
SIMD table intialization for Index-of
2023-05-11 21:05:24 -04:00
Marshall Lochbaum
844b537593
Singeli 1-byte table implementations for generic architecture
2023-05-11 21:05:23 -04:00
Marshall Lochbaum
6c81fb3149
Make AVX2 deduplicate branchless
2023-05-11 21:04:58 -04:00
Marshall Lochbaum
1700d84740
AVX2 1-byte Deduplicate implementation
2023-05-11 21:04:58 -04:00
Marshall Lochbaum
9658104f3e
Unify AVX2 bit-table code between Member-of and Mark Firsts
2023-05-11 21:04:58 -04:00
Marshall Lochbaum
ba43dae908
Heuristic filtering when AVX2 Mark Firsts sees multiple new values
2023-05-11 21:04:58 -04:00
Marshall Lochbaum
9c7c6aabc5
AVX2 Mark Firsts implementation
2023-05-11 21:04:56 -04:00
Marshall Lochbaum
2fafe11d7c
Fix fill_bittab tail masking for t=0 and simplify
2023-05-11 20:59:53 -04:00
Marshall Lochbaum
017e2433fb
Fast paths for all empty-argument search cases
2023-05-11 20:59:53 -04:00
Marshall Lochbaum
e45231154c
Reverse lookup initialization for 1-byte Member-of
2023-05-11 20:59:53 -04:00
Marshall Lochbaum
0232f91582
AVX2 bit table Member-of
2023-05-11 20:59:52 -04:00
dzaima
03a28e4e34
fix float normalization from a •bit._cast result mutating the original
2023-05-11 22:39:59 +03:00
dzaima
53bacf00c8
native F⟜k⁼𝕩 & k⊸F⁼𝕩
2023-05-11 15:28:40 +03:00
dzaima
08b6ff77c4
c1G & c2G
2023-05-11 15:28:40 +03:00
dzaima
fa4aebbe9c
native dyadic inverses of F˜
2023-05-11 15:28:40 +03:00
dzaima
bae49543be
native F˜⁼ 𝕩
2023-05-11 15:28:40 +03:00
dzaima
d1a5ed3e00
err → fatal
2023-05-11 15:28:23 +03:00
dzaima
aa68ed0730
define single ICMP
2023-05-11 15:28:23 +03:00
dzaima
4b0cd3217f
proper statement definition of assert
2023-05-11 15:28:23 +03:00
dzaima
fe39fe1932
remove Md1H/MD2R
2023-05-11 15:28:23 +03:00
dzaima
e775202684
describe types in src/README.md
2023-05-10 00:05:29 +03:00
dzaima
a8738c68ed
update bytecode submodule
2023-05-09 21:54:01 +03:00
dzaima
5979c0fed9
pass fully native primitives to r1
2023-05-09 21:50:16 +03:00
dzaima
0f2ef4384c
don't inline groups_lt
2023-05-09 00:14:14 +03:00
dzaima
300d217ee8
move SIMD constrep functions to a table
2023-05-09 00:14:14 +03:00
dzaima
0598ce8357
use getFillQ less
2023-05-09 00:14:14 +03:00
dzaima
d62c77af41
add threshold for reshape-based ⎉+n path
2023-05-06 16:57:38 +03:00
dzaima
3dcb32a54a
fast Arith⎉+n where n is the rank of one argument
2023-05-06 16:28:41 +03:00
dzaima
56d1453185
use destructuring more in Singeli
2023-05-06 13:18:00 +03:00
dzaima
4ff4460d67
put logging behind the macro check
2023-05-06 02:05:38 +03:00
dzaima
f640767e97
increase JIT memory allocation size
...
virtual memory should make it not matter for memory usage, or maybe even very slightly improve it due to less page table fragmentation
2023-05-06 01:11:30 +03:00
dzaima
45cc672af1
move allocation log message to before allocating
...
and print result
2023-05-06 01:09:34 +03:00
dzaima
78159f4f04
check for the proper failure value in mmap_nvm
2023-05-05 23:04:22 +03:00
dzaima
8177b668f4
fix ∾𝕩 error checking
2023-05-05 19:54:43 +03:00
dzaima
cc94ec4cbc
move out another s+↕n loop
2023-05-05 13:28:58 +03:00
dzaima
14ca835fa2
don't unroll comparatively extremely tiny loop
2023-05-05 13:23:47 +03:00
dzaima
65d0b829bd
reuse range generation from ↕n for •rand.Deal
2023-05-05 12:41:36 +03:00
dzaima
1072d0bb9c
merge emptyIVec() case with bitUD[0]
2023-05-05 12:18:31 +03:00
Marshall Lochbaum
78eeaae762
Remove MergeShuffle: only used above 2⋆28 with split and not a huge speedup
2023-05-04 18:11:55 -04:00
Marshall Lochbaum
2b9c193f24
Outer split pass for large •rand.Deal
2023-05-04 14:28:32 -04:00
Marshall Lochbaum
a4f9d23709
Simplify merge-shuffle index usage
2023-05-04 10:18:38 -04:00
Marshall Lochbaum
6cc9d40490
Fast cases for short •rand.Deal𝕩
2023-05-04 09:10:29 -04:00
Marshall Lochbaum
8191aa6da2
Only iterate over set bits in random merge
2023-05-04 09:10:29 -04:00
Marshall Lochbaum
bc7275a91b
Basic MergeShuffle implementation (slow merge)
2023-05-04 09:10:29 -04:00
dzaima
9fd80e3193
split buckets above 2^20 bytes when possible
2023-05-04 12:28:47 +03:00
dzaima
1bd9467a2d
cleanup
2023-05-04 12:27:13 +03:00
dzaima
776b0b2b47
fix estimated UTF-8 length of codepoints 2047 and 65535
2023-05-02 10:49:11 +03:00
dzaima
352961a7eb
another ubsan complaint
2023-05-02 10:47:13 +03:00
dzaima
65e246774e
-mllvm --x86-cmov-converter=0
2023-04-30 20:03:09 +03:00
dzaima
0e79e9f868
fix ubsan notes
2023-04-30 19:50:24 +03:00
dzaima
cd40ec8117
fix ¯2e9‿2e9⍋0
2023-04-30 19:35:18 +03:00
dzaima
c567dff565
fix leading-axis operations on empty inputs
2023-04-30 19:15:46 +03:00
dzaima
93dd25e0e1
fast leading-axis for <>≤≥=≠
2023-04-30 19:00:56 +03:00
dzaima
c889a07d75
replicate-using leading axis arithmetic case
2023-04-30 18:46:41 +03:00
dzaima
1e11cf93c1
faster leading axis arithmetic
2023-04-30 17:27:07 +03:00
dzaima
048352f587
fix 0˝˘ 2‿2⥊0
2023-04-29 21:15:46 +03:00
dzaima
0a30c7b4e6
more generic n⊸↑⎉k & n⊸↓⎉k & n⊸⍉⎉k
2023-04-29 21:10:44 +03:00
dzaima
aae8651e8b
fix Arith⌜ with empty 𝕨
2023-04-29 20:11:24 +03:00