Commit Graph

2586 Commits

Author SHA1 Message Date
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