dzaima
e7b87f669f
fix arr÷negativeZero, set proper float expected values
2023-09-21 19:03:30 +03:00
dzaima
f6a9c30889
•internal.HeapStats
2023-09-18 23:38:06 +03:00
dzaima
df0ccdf2d7
add error message on missing posix_spawn support in make for-build
2023-09-17 13:39:22 +03:00
dzaima
299168fb16
fast numarr÷scalarPowOf2
2023-09-12 23:57:50 +03:00
dzaima
5efd90cc91
rename elWidthLogBits to something less long & add byte variant
2023-09-12 19:58:56 +03:00
Marshall Lochbaum
6330d61a88
Some rearrangement and minor simplifications
2023-09-12 10:24:00 -04:00
Marshall Lochbaum
72da47d48a
Use standard for loops
2023-09-12 09:12:57 -04:00
Marshall Lochbaum
40ed55bc43
Use built-in NEON include for basic vector instructions
2023-09-11 21:17:38 -04:00
Marshall Lochbaum
7b9f7ba331
Move x86 vector and NEON includes into base.singeli
2023-09-11 20:25:25 -04:00
Marshall Lochbaum
082f800b3e
Combine x86 vector extensions and use iintrinsic/basic when possible
2023-09-11 20:11:16 -04:00
Marshall Lochbaum
c85ca66dae
Unify Scan and Bins min-scan code
2023-08-26 09:27:59 -04:00
Marshall Lochbaum
0a30fb309d
SSE2 min- and max-scans
2023-08-26 07:26:33 -04:00
Marshall Lochbaum
a040a14744
Unify power-of-two shift pattern for scans
2023-08-26 07:26:33 -04:00
Marshall Lochbaum
d16ba6c3b1
Move xor-scan to scan.singeli; remove neq.singeli
2023-08-26 07:26:33 -04:00
Marshall Lochbaum
e261e80168
SSE min/max and pluswrap scans
2023-08-26 07:26:33 -04:00
Marshall Lochbaum
f9a4a5b68c
Remove duplicated SSE4.1 min/max bindings
2023-08-26 07:26:33 -04:00
Marshall Lochbaum
00c454d37a
Add generic-architecture versions of Singeli scans
2023-08-26 07:26:33 -04:00
dzaima
ec14d45c50
round up pointers in self-search allocs
2023-08-25 04:03:25 +03:00
dzaima
81a291f860
round up some pointers
2023-08-25 03:47:05 +03:00
dzaima
f0d6a65240
move unaligned load/store helpers to stuff.h
...
also replace a NULL with "" to make iBuf+0 not be UB
2023-08-25 03:24:42 +03:00
dzaima
8975f6af00
fast 1|x
2023-08-24 21:32:35 +03:00
dzaima
3e6e158696
native 𝕨⍷𝕩 when 1≥=𝕨 and 2≥=𝕩
2023-08-24 19:46:57 +03:00
dzaima
c5b98ea7a1
apparently LLVM actually uses pointer type to determine alignment
2023-08-20 22:57:30 +03:00
dzaima
6eaa9238bc
separate BSDs
2023-08-20 19:33:11 +03:00
dzaima
34d4fd6433
more explicit loadu/storeu
2023-08-20 00:18:09 +03:00
dzaima
1bb686a9ff
fix UB in grade.h
2023-08-19 21:48:11 +03:00
dzaima
2732becf50
global STR0/STR1 definitions
2023-08-19 20:12:53 +03:00
dzaima
721dccf636
fix FFI integer overflow check on ARM
...
clang optimizes a raw f!=(u8)f to like f!=(u32)f on ARM which changes behavior (we're technically using UB here, but there's no reasonable alternative); use q_ functions that know how to work around this
2023-08-19 20:12:53 +03:00
dzaima
25c2629842
•platform
...
incl. adding support for REPL completion of •a.b.c (i.e. >1 '.')
2023-08-19 18:25:52 +03:00
dzaima
4d19654e3b
fix store types
2023-08-16 19:01:04 +03:00
dzaima
acca5c0c7c
fix completely wrong dyTable lookup
2023-08-15 14:45:27 +03:00
dzaima
df56f6b2fc
fix 𝕨•FLines𝕩 with invalid elements in 𝕩
2023-08-13 03:51:06 +03:00
Marshall Lochbaum
2dd3a0fdfa
Boolean compress implementation comments
2023-08-07 15:33:37 -04:00
Marshall Lochbaum
4e9745688b
Use generic boolean Compress as the sparse case with Singeli
2023-08-07 13:47:58 -04:00
Marshall Lochbaum
a7908a10b0
Faster, sparse, non-Singeli boolean Compress
2023-08-07 12:26:40 -04:00
Marshall Lochbaum
bbad98bce1
In AVX2 boolean Compress, jump from 8 to 32 with 32-bit shifts
2023-08-07 11:41:53 -04:00
Marshall Lochbaum
120df26814
mullo works for both signed and unsigned
2023-08-07 11:23:38 -04:00
Marshall Lochbaum
d039562efe
Fix disabled BMI2 boolean Compress; cleaner SIMD width system
2023-08-06 08:09:08 -04:00
Marshall Lochbaum
9046dd6b53
Handle boolean Compress SIMD tail with conditional write, not scalar loop
2023-08-06 08:03:14 -04:00
Marshall Lochbaum
07ace41d6c
Vectorized version of the clmul boolean Compress
2023-08-06 07:36:05 -04:00
Marshall Lochbaum
371aa6f2ef
AVX2 boolean Compress using variable shifts
2023-08-05 21:50:22 -04:00
Marshall Lochbaum
66c0fe041c
Get pext and popcount together, since generic pext emulation includes popc
2023-08-05 20:38:54 -04:00
Marshall Lochbaum
056b18edd2
Move pext-based compress loop from C to Singeli
2023-08-05 20:38:54 -04:00
Marshall Lochbaum
7767cf933f
Remove boolean Compress overallocation: not needed with w masked off
2023-08-05 20:38:54 -04:00
Marshall Lochbaum
e09d385df5
Simplify pairwise pext implementation; drop 12-bit as no longer competitive
2023-08-05 20:38:54 -04:00
dzaima
7fe1ab930a
FFI: permit 𝕨≡⟨⟩, require 𝕩≡⟨⟩ if no arguments are on 𝕩, check list rank
2023-08-05 16:13:07 +03:00
dzaima
682d5986d8
slightly more accurate trailing newline removal for •GetLine
2023-08-04 21:09:45 +03:00
dzaima
a1e4f9bd6f
remove multiple trailing newline characters from •GetLine
...
Windows adds \r\n, and without this the \r stays
2023-08-04 20:52:07 +03:00
dzaima
8e35241e47
Better error messages for unknown namespace key
2023-08-03 22:54:38 +03:00
dzaima
0b6c5189d8
move arithdDispatch declarations to a header
...
+ rename some things to make more sense
2023-07-31 20:26:05 +03:00
dzaima
627a7e0771
more FFI error checking, plus bugfixes
2023-07-28 15:25:06 +03:00
dzaima
1bc96f5557
extract u8/u16/u32/f32 reading functions
2023-07-28 14:02:22 +03:00
dzaima
1454ca3a1a
expand & test FFI error checking
2023-07-28 13:59:25 +03:00
dzaima
79f72d84b8
extract unsigned & f32 copying functions in ffi.c
2023-07-28 13:41:03 +03:00
dzaima
0d7de8b190
define ux in Singeli, replacing Size; return ux from popc/clz/ctz
2023-07-26 17:42:23 +03:00
dzaima
f7a0eb94a3
don't use AVX2 buffer copying for a 16-byte buffer
2023-07-22 21:34:20 +03:00
dzaima
1451395ef5
don't do fancy char stuff for unchecked arith
2023-07-22 21:13:49 +03:00
dzaima
959614c785
use partial application
2023-07-22 18:19:31 +03:00
dzaima
033f3de6b9
remove unnecessary lambda wrappers
...
also use fmtnat
2023-07-22 18:15:07 +03:00
dzaima
446b2d09ed
Singeli renames & docs
2023-07-22 17:37:20 +03:00
dzaima
6e96600878
move unaligned load & store to base.singeli
2023-07-20 00:21:09 +03:00
dzaima
0486adccb5
fix signedness of abs{x}
2023-07-20 00:19:54 +03:00
dzaima
2243fa76c1
better base case list
2023-07-19 21:56:35 +03:00
dzaima
eb46ec8d9c
rename __mulhi & __mul32
2023-07-19 21:54:12 +03:00
dzaima
700d69e7dd
unpack → zip & mzip; enable slash.singeli SIMD parts for NEON
2023-07-19 21:39:22 +03:00
dzaima
ba2e859dce
use existing unpackLo in neq.singeli
2023-07-19 20:56:08 +03:00
dzaima
19b35e1074
fix size comment
2023-07-19 20:11:14 +03:00
dzaima
9945711b5e
AVX2 i32 & i64 slash{} via widening load
2023-07-19 20:00:46 +03:00
dzaima
ff9bb258c2
more comments in slash.singeli
2023-07-19 18:50:01 +03:00
dzaima
48111d4873
extract iota{} for AVX-512
2023-07-19 17:24:20 +03:00
dzaima
a0797318ca
use has_simd & arch_defvw
2023-07-19 17:03:41 +03:00
dzaima
03c21112c2
make NEON builds work
2023-07-19 16:58:35 +03:00
dzaima
6930bc34b6
further update slash.c implementation comments
2023-07-19 16:51:24 +03:00
Marshall Lochbaum
77188b8e73
Add clmul.singeli
2023-07-19 09:38:37 -04:00
Marshall Lochbaum
301a23fb1f
Update where/compress implementation comments
2023-07-19 09:35:40 -04:00
Marshall Lochbaum
c4364aefa6
SSSE3 4-byte compress with half-width table
2023-07-19 08:15:53 -04:00
Marshall Lochbaum
ba837ba01b
Remove table-less where/compress methods, as they're not competitive
2023-07-19 07:22:55 -04:00
Marshall Lochbaum
64d65ae837
Never use generic dense compress methods if use_table: where is faster
2023-07-18 21:35:12 -04:00
Marshall Lochbaum
b0e0f210c6
2- and 4-byte Where with unpack and table
2023-07-18 21:10:39 -04:00
Marshall Lochbaum
93e1262864
Avoid using popcount primitive in Singeli if POPCNT isn't present
2023-07-18 16:52:08 -04:00
Marshall Lochbaum
6df283c379
Always increment by full popcount instead of two halves when splitting byte
2023-07-17 17:52:59 -04:00
Marshall Lochbaum
2f6a8e55a1
Always use vectors for for_special_buffered buffer copy
2023-07-17 16:52:10 -04:00
Marshall Lochbaum
8add95b7ab
Remove BMI2 where/compress methods
2023-07-17 16:20:30 -04:00
Marshall Lochbaum
f005169518
1- and 2-byte compress with table and SSSE3
2023-07-17 16:19:05 -04:00
Marshall Lochbaum
68978f7e10
Table-based 1- and 2-byte Where
2023-07-17 16:05:06 -04:00
Marshall Lochbaum
fc187afdf2
Extend 1-byte SSE2 Where to 2-byte and 4-byte with unpacked writes
2023-07-17 11:28:04 -04:00
Marshall Lochbaum
8b297ae2dc
Dedicated 32-bit Singeli where, taking index offset
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
3bd8d1de68
Extend all Singeli Compress methods to do Where
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
4415869496
Generic Singeli where implementation
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
c484f8ee8d
Avoid UB from shifting by 64
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
da5f1faa07
Merge BMI2 slash{} cases, with some simplifications
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
b244ba98f5
Unify slash1{} and slash2{}
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
f5121f6806
Thresholds for compress methods (versus sparse) defined in Singeli
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
824bb04b4d
Plain SSE2 1-byte compress
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
f852d12a5c
Generic Singeli compress implementation
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
f36426031a
Slightly faster table-less compress method
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
84a928863b
AVX-512 compress implementations
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
80e93c41c9
Use new undefined{type,len} instead of alloca
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
13b3bcd74b
Table-less AVX2 1-byte compress
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
d956ba921b
Non-overwriting 1-byte and 2-byte compress/where
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
8f4b1966cb
Non-overwriting AVX2 4-byte and 8-byte compress, using a buffer
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
9010f648bb
Unify permutevar-based compress implementations
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
0921fc2c62
AVX2 compress implementations using permutevar and lookup tables
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
03d8919307
Add has='pclmul' option and avoid using broadcast
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
871a81ca5f
BMI2 pext not-emulation in Singeli
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
1314859a80
clmul-based pext emulation
2023-07-16 21:56:33 -04:00
Marshall Lochbaum
f315a6d3ea
Emulate pext instruction in Singeli
2023-07-16 21:56:33 -04:00
dzaima
3946f2cc87
use new Singeli builtins
2023-07-17 02:23:50 +03:00
dzaima
6305a3bd50
change error message of failed path_abs
2023-07-16 16:31:10 +03:00
dzaima
cf6a290e5c
•file.RealPath
2023-07-16 01:42:30 +03:00
dzaima
d1e511bebd
add padding before allocations & document it
2023-07-13 16:20:37 +03:00
dzaima
9cfc3f3f25
various changes on filling arrays with the same element
2023-07-12 16:23:03 +03:00
vylsaz
e4542f70a6
Implement •term.CharN and •term.RawMode for Windows
2023-07-11 03:15:48 +00:00
vylsaz
ce255c4a53
Enable •file.CreateDir on Windows
2023-07-11 01:11:28 +00:00
dzaima
0601a86f56
don't special-case 2/𝕩 on NEON
2023-07-11 02:40:05 +03:00
dzaima
56a1fc3637
use float getting functions for getting floats
2023-07-10 23:48:07 +03:00
dzaima
9b0299d1a5
fix (<1)≠`5⥊1
2023-07-10 23:25:28 +03:00
dzaima
53266ffd88
fix (<1)⌈`↕10
2023-07-10 23:21:36 +03:00
dzaima
158a3beb2e
partially clear object on free in debug mode
...
catch some more of what valgrind would relatively cheaply
2023-07-10 22:55:19 +03:00
dzaima
acbfcd7302
fix another weird case of 𝕨∾𝕩
2023-07-10 22:55:00 +03:00
dzaima
24fea51bdd
fix unshare of fillslice
2023-07-10 22:55:00 +03:00
dzaima
cb9f4dbbc1
remove debug include
...
:|
2023-07-10 19:19:55 +03:00
dzaima
cd7807fba0
NEON constrep
2023-07-10 17:11:15 +03:00
dzaima
1cea42cad3
use getter over 𝕨 for generic 𝕨⍋𝕩
...
doesn't change perf, but leads to fast amortized long⍋short
2023-07-10 16:50:02 +03:00
dzaima
bf89d2d561
a little size reduction on write_indices
2023-07-10 16:29:21 +03:00
Marshall Lochbaum
f6d1f9fcab
Move utilities from bins to appropriate files
2023-07-10 07:14:44 -04:00
Marshall Lochbaum
492e97e2ca
Right argument narrowing for numeric Bins
2023-07-10 07:14:44 -04:00
Marshall Lochbaum
9511598aa3
Fast Bins when either argument is boolean
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
1fa00c9c6f
Update bins implementation comments
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
46c6d47055
Permutevar instead of shuffle for 4-byte vector binary search
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
fc57e0012d
Shuffle-based 4-byte vector binary search
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
af5ba0a2d2
Switch from Eytzinger to linear search on extra lanes
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
64ae8f9afd
Slightly better blend pattern for >16-byte bit table
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
c8d20fbf26
And 2-byte vector binary search on 4 lanes
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
fe92f91ca1
2-byte vector binary search on 2 lanes
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
d19df2693a
Merge 1-byte table code with normal bins_lookup
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
f36dc7adba
Use max-scan instead of plus-scan for 1-byte Bins table
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
8054597004
Handle up to 64 unique values in bit-table 1-byte Bins
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
b62bd02bc0
Precomputed midpoint bits in vector binary search
...
Clang already optimized to this but it's more explicit
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
7f5ba961c2
Use default bins_lookup if there's no AVX2
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
1080236433
2-byte vector binary searches
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
d665b90bbf
Slightly faster binary search pattern with a blend
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
a711eb72eb
Table-based 2-byte Bins, using max-scan
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
724f685a57
Cleanup
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
2c9e07f33d
1-byte Bins up to 32 unique eleemnts by unique lookup then index
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
81da9c586f
Table-based 1-byte Bins with >1-byte result
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
0346ff7c2d
Use type of ≠𝕨 for Singeli Bins result and allocate outside Singeli
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
e0621f99f8
Unroll vector binary searches for different search depths
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
38671e3fe9
Fast handling for length-1 𝕨 in Bins
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
ed9e8b4057
Table-based 1-byte Bins implementations, including AVX2
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
7161689196
Fix bin_search_vec over-writing
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
302d637129
Allocate binary search result in Singeli, using i8 for vectors
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
70249d8b64
In bins, promote to smallest common int type instead of i32
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
4f93b5849b
Fix shape of char⍋num result (was deshaped)
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
ec9b875503
Separate is-sorted check from Bins implementation
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
ff9919dde2
AVX2 binary search on one lane of i8 (unused for now)
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
5424c57b7e
Use Singeli float binary search
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
ee84f9fe1f
4-way branchless binary search unrolling
2023-07-10 07:13:21 -04:00
Marshall Lochbaum
464a53463d
Generic Singeli version of 32-bit binary search
2023-07-10 07:13:21 -04:00
dzaima
6b5815dcc2
fix shape of k/n‿1⥊1
2023-07-10 02:40:36 +03:00
dzaima
8975be082b
fix •ns.Get error message
2023-07-09 15:58:31 +03:00
dzaima
5c7934387a
update Singeli submodule, match{} → same{}
2023-06-29 15:19:57 +03:00
dzaima
a67a19dd0b
move pair{{a,b}} expanding to base.singeli
2023-06-29 01:31:58 +03:00
dzaima
4ee8dfbbda
update Singeli submodule, use destructuring parameters
2023-06-28 00:59:28 +03:00
dzaima
3ae9b14d64
separate arith inits, add comments on init order
2023-06-23 12:10:42 +03:00
dzaima
7618dce2f3
fix return value of overflowed dyadic arith
2023-06-23 12:10:42 +03:00
dzaima
5f43bf16b3
add direct typed array type test macro
2023-06-23 12:10:42 +03:00
dzaima
4dbe72ae03
properly indicate estimating Singeli instructions
2023-06-23 11:51:34 +03:00
dzaima
8f8380749b
generic Singeli builds
2023-06-16 11:12:15 +03:00
dzaima
5032c9a3ab
remove unnecessary 'over _ to'
2023-06-15 19:12:20 +03:00
dzaima
90e7537225
move maskedLoopPositive to @-based
2023-06-15 19:09:53 +03:00
dzaima
dee29a1a02
block → iter
2023-06-15 18:11:57 +03:00
dzaima
9da567cd57
switch to new Singeli block execution
2023-06-15 18:08:57 +03:00
dzaima
2da457dafa
fix el_half
2023-06-15 00:32:19 +03:00
dzaima
4260ef93b3
rename away underscores in __adds and __subs
...
plus add NEON addw, subw, and mulw (which is renamed from mul1)
2023-06-12 00:52:09 +03:00
dzaima
2a52dff482
@-forms of maskedLoop and muLoop
2023-06-12 00:52:09 +03:00
dzaima
fe8892ce6c
rearrange shrm/shlm args, slightly better NEON homMask{[16]u8}
2023-06-12 00:52:09 +03:00
dzaima
336f986986
change error messages in ◶
2023-06-12 00:52:09 +03:00
dzaima
8542ba071d
homMaskX, merging multi-arg homMask
2023-06-07 18:14:18 +03:00
dzaima
934a2b5ae3
rearrange things
2023-06-06 21:44:50 +03:00
dzaima
087bf06cac
fix type warnings
2023-06-01 20:12:51 +03:00
dzaima
efa1c4a4ff
__declspec(dllexport)
2023-06-01 19:04:34 +03:00
dzaima
78bef5fe32
consistent 𝕨⊏𝕩 error messages across argument types
2023-05-30 14:28:36 +03:00
dzaima
2eb12fef82
fix replxx under os=windows
2023-05-30 13:37:15 +03:00
dzaima
7e5b2e0557
don't unroll/vectorize extremely tiny loop
2023-05-30 12:52:17 +03:00
dzaima
5738712bbb
improve environ declaration
2023-05-30 12:52:00 +03:00
dzaima
c03dd349e4
disallow •ReBQN constructing namespaces, ignore RETD in interactive REPL
2023-05-27 16:37:42 +03:00
dzaima
da5280021c
rename compile → compileAll
2023-05-27 15:38:57 +03:00
dzaima
227dfa20c7
use isatty as a default for notui
2023-05-25 00:16:16 +03:00
dzaima
55e0409582
don't CTZ(0) in gcd
2023-05-24 15:13:25 +03:00
dzaima
c3681a0557
update type number comments
2023-05-22 14:17:53 +03:00
dzaima
3872f5a625
fix 𝕨∾𝕩 reuse logic
2023-05-22 11:40:37 +03:00
dzaima
20a946d085
dynamically switch fork functions
2023-05-22 00:32:44 +03:00
dzaima
b093ebbc66
finish PICK_IDX message
2023-05-22 00:18:59 +03:00
dzaima
f0744f16d0
fix erroring variable read
2023-05-22 00:11:21 +03:00
dzaima
e8caed529c
fix JIT SETUi/SETMi/SETCi missing unset variable checks
2023-05-22 00:08:20 +03:00
dzaima
de5bcfe211
static library
2023-05-21 23:47:40 +03:00
dzaima
fd72ea79c8
another gcc warning
2023-05-21 23:39:18 +03:00
dzaima
d15d8febbe
slightly less wrong superset fills for 𝕨∾𝕩
2023-05-20 14:28:37 +03:00
dzaima
d6609df820
reserve •CurrentError with namespace 𝕩
2023-05-20 14:28:37 +03:00
dzaima
1e22b48225
in-place ∾ for fillarrs & fillslices
2023-05-20 14:05:22 +03:00
dzaima
bc19e7372d
fix pointer check in eachm_fn
2023-05-20 14:05:22 +03:00
dzaima
e781ae21ee
give PUSH_COMP access to the updated source string
2023-05-20 13:22:24 +03:00
dzaima
7f46de18fc
add missed refcount decrements
2023-05-20 01:30:02 +03:00
dzaima
c9e7dc9976
remove a debug include
2023-05-20 00:01:35 +03:00
dzaima
ad49a9b26d
guarantee a space fill to compilation
2023-05-19 22:51:02 +03:00
dzaima
e8d286da3b
proper in-place updating in compile()
2023-05-19 22:51:02 +03:00
dzaima
ea70e06eac
fix >⟨2,<<3⟩
2023-05-19 22:51:02 +03:00
dzaima
df348896fd
add a NOGC_E for conflicting⌾(list⊸⊏) generic
2023-05-19 22:51:02 +03:00
dzaima
0156d13a5e
proper arrow in error messages of ⌾(n⊸↓) vs ⌾(n⊸↑)
2023-05-19 17:32:46 +03:00
dzaima
d930e7f975
add nogc message to thrF
2023-05-19 17:32:14 +03:00
dzaima
a03fab044d
•internal.Keep
2023-05-19 15:41:50 +03:00
dzaima
c1488cbf72
faster arr⌾(is⊸⊏)list
2023-05-19 14:15:25 +03:00
dzaima
f6703df0b2
range calculation functions
2023-05-19 14:01:32 +03:00
dzaima
8bfe2b6b5b
fix unrolled integer |𝕩 (not used currently)
2023-05-19 13:15:51 +03:00
dzaima
616fd48785
base.singeli additions
2023-05-19 13:15:51 +03:00
dzaima
1ec4415e49
clean up some under functions in sfns.c
2023-05-19 13:15:51 +03:00
dzaima
3977849bc5
fix "_m←¨⋄4 m´⟨⟩" and "4 10´⟨⟩"
2023-05-19 12:58:18 +03:00
Marshall Lochbaum
93e590fd9d
One case for dyadic constant-each
2023-05-18 15:40:52 -04:00
Marshall Lochbaum
ed5fac7cc9
Constant and tack cases for Table
2023-05-18 15:11:20 -04:00
Marshall Lochbaum
b5de844736
Constants and tacks with rank, except some dyadic cases
2023-05-18 14:52:13 -04:00
Marshall Lochbaum
7440e2a6bc
Constant and trivial cases for fold/insert
2023-05-18 12:11:49 -04:00
Marshall Lochbaum
9dfeb451f8
Handle empty cells in insert_base; fixes bugs in dyadic Insert
2023-05-18 11:53:53 -04:00
Marshall Lochbaum
a8cead1d3d
Fast cases for tacks, constant operands, and short arguments in scans
2023-05-18 10:54:56 -04:00
Marshall Lochbaum
1ff8954dd3
Fix leak in dyadic •_timed
2023-05-18 10:54:56 -04:00
Marshall Lochbaum
6ac8944b06
Remove redundant isAtm check in constant case of each_c1
2023-05-18 10:54:56 -04:00
dzaima
b46477450d
fix shape of argument passed to F in F⌾(is⊸⊑)
...
& skip computing the argument if not needed
2023-05-18 16:37:24 +03:00
dzaima
0572fcc5b2
native F⌾(list⊸⊑) & ⌾(listOfLists⊸⊑)
2023-05-18 01:54:01 +03:00
dzaima
d310669ae8
unify F⌾(n⊸⊑) and F⌾⊑
2023-05-18 00:27:38 +03:00
dzaima
3047ff48b5
Add rank checks to •FChars & •FLines & •FBytes & •Out
...
& clean up terminology
2023-05-17 21:56:40 +03:00
dzaima
e355395e7a
remove duplicated check
2023-05-17 20:53:26 +03:00
dzaima
4f15e1572d
disallow •Out ⋈0
2023-05-17 20:50:21 +03:00
dzaima
ec106c0b31
better heuristic for 𝕨∊𝕩 comparison-or path
2023-05-17 18:42:24 +03:00
dzaima
e4d222173d
a bunch of fixes for generic architecture & wasm
2023-05-16 00:07:48 +03:00
dzaima
65868a51ba
use the type of the correct argument in check
2023-05-13 02:19:10 +03:00
dzaima
f0a9714e8b
copy result in tbl_c2 if needed
2023-05-13 00:33:22 +03:00
dzaima
a9478f802f
tuning for arithmetic leading axis, F⌜, and reshape-based ⎉
2023-05-13 00:33:22 +03:00
dzaima
a3e8a1388d
move all targets to build.bqn with Singeli & REPLXX enabled by default
2023-05-12 20:51:25 +03:00
dzaima
2f51974c2f
use proper pointer conversion macros in ffi.c
2023-05-12 19:36:02 +03:00
dzaima
f229b3c486
fix rtperf
...
not that anyone uses it anymore
2023-05-12 16:34:23 +03:00
dzaima
a39264533e
custom _mm_loadu_si16/_mm_storeu_si16 for old gcc
2023-05-12 16:34:23 +03:00
dzaima
6dc24bd99b
free arguments of SIMD 𝕨∊𝕩 & ∊𝕩
2023-05-12 13:51:30 +03:00
Marshall Lochbaum
25883b410c
Retune boundary for small-𝕩 linear Member Of
2023-05-11 21:11:43 -04:00
Marshall Lochbaum
53fb8db06f
SSSE3 support in bit-table code
2023-05-11 21:05:24 -04:00
Marshall Lochbaum
464dd27a37
SIMD table intialization for Index-of
2023-05-11 21:05:24 -04:00
Marshall Lochbaum
844b537593
Singeli 1-byte table implementations for generic architecture
2023-05-11 21:05:23 -04:00
Marshall Lochbaum
6c81fb3149
Make AVX2 deduplicate branchless
2023-05-11 21:04:58 -04:00
Marshall Lochbaum
1700d84740
AVX2 1-byte Deduplicate implementation
2023-05-11 21:04:58 -04:00
Marshall Lochbaum
9658104f3e
Unify AVX2 bit-table code between Member-of and Mark Firsts
2023-05-11 21:04:58 -04:00
Marshall Lochbaum
ba43dae908
Heuristic filtering when AVX2 Mark Firsts sees multiple new values
2023-05-11 21:04:58 -04:00
Marshall Lochbaum
9c7c6aabc5
AVX2 Mark Firsts implementation
2023-05-11 21:04:56 -04:00
Marshall Lochbaum
2fafe11d7c
Fix fill_bittab tail masking for t=0 and simplify
2023-05-11 20:59:53 -04:00
Marshall Lochbaum
017e2433fb
Fast paths for all empty-argument search cases
2023-05-11 20:59:53 -04:00
Marshall Lochbaum
e45231154c
Reverse lookup initialization for 1-byte Member-of
2023-05-11 20:59:53 -04:00
Marshall Lochbaum
0232f91582
AVX2 bit table Member-of
2023-05-11 20:59:52 -04:00
dzaima
03a28e4e34
fix float normalization from a •bit._cast result mutating the original
2023-05-11 22:39:59 +03:00
dzaima
53bacf00c8
native F⟜k⁼𝕩 & k⊸F⁼𝕩
2023-05-11 15:28:40 +03:00
dzaima
08b6ff77c4
c1G & c2G
2023-05-11 15:28:40 +03:00
dzaima
fa4aebbe9c
native dyadic inverses of F˜
2023-05-11 15:28:40 +03:00
dzaima
bae49543be
native F˜⁼ 𝕩
2023-05-11 15:28:40 +03:00
dzaima
d1a5ed3e00
err → fatal
2023-05-11 15:28:23 +03:00
dzaima
aa68ed0730
define single ICMP
2023-05-11 15:28:23 +03:00
dzaima
4b0cd3217f
proper statement definition of assert
2023-05-11 15:28:23 +03:00
dzaima
fe39fe1932
remove Md1H/MD2R
2023-05-11 15:28:23 +03:00
dzaima
e775202684
describe types in src/README.md
2023-05-10 00:05:29 +03:00
dzaima
a8738c68ed
update bytecode submodule
2023-05-09 21:54:01 +03:00
dzaima
5979c0fed9
pass fully native primitives to r1
2023-05-09 21:50:16 +03:00
dzaima
0f2ef4384c
don't inline groups_lt
2023-05-09 00:14:14 +03:00
dzaima
300d217ee8
move SIMD constrep functions to a table
2023-05-09 00:14:14 +03:00
dzaima
0598ce8357
use getFillQ less
2023-05-09 00:14:14 +03:00
dzaima
d62c77af41
add threshold for reshape-based ⎉+n path
2023-05-06 16:57:38 +03:00
dzaima
3dcb32a54a
fast Arith⎉+n where n is the rank of one argument
2023-05-06 16:28:41 +03:00
dzaima
56d1453185
use destructuring more in Singeli
2023-05-06 13:18:00 +03:00
dzaima
4ff4460d67
put logging behind the macro check
2023-05-06 02:05:38 +03:00
dzaima
f640767e97
increase JIT memory allocation size
...
virtual memory should make it not matter for memory usage, or maybe even very slightly improve it due to less page table fragmentation
2023-05-06 01:11:30 +03:00
dzaima
45cc672af1
move allocation log message to before allocating
...
and print result
2023-05-06 01:09:34 +03:00
dzaima
78159f4f04
check for the proper failure value in mmap_nvm
2023-05-05 23:04:22 +03:00
dzaima
8177b668f4
fix ∾𝕩 error checking
2023-05-05 19:54:43 +03:00
dzaima
cc94ec4cbc
move out another s+↕n loop
2023-05-05 13:28:58 +03:00
dzaima
14ca835fa2
don't unroll comparatively extremely tiny loop
2023-05-05 13:23:47 +03:00
dzaima
65d0b829bd
reuse range generation from ↕n for •rand.Deal
2023-05-05 12:41:36 +03:00
dzaima
1072d0bb9c
merge emptyIVec() case with bitUD[0]
2023-05-05 12:18:31 +03:00
Marshall Lochbaum
78eeaae762
Remove MergeShuffle: only used above 2⋆28 with split and not a huge speedup
2023-05-04 18:11:55 -04:00
Marshall Lochbaum
2b9c193f24
Outer split pass for large •rand.Deal
2023-05-04 14:28:32 -04:00
Marshall Lochbaum
a4f9d23709
Simplify merge-shuffle index usage
2023-05-04 10:18:38 -04:00
Marshall Lochbaum
6cc9d40490
Fast cases for short •rand.Deal𝕩
2023-05-04 09:10:29 -04:00
Marshall Lochbaum
8191aa6da2
Only iterate over set bits in random merge
2023-05-04 09:10:29 -04:00
Marshall Lochbaum
bc7275a91b
Basic MergeShuffle implementation (slow merge)
2023-05-04 09:10:29 -04:00
dzaima
9fd80e3193
split buckets above 2^20 bytes when possible
2023-05-04 12:28:47 +03:00
dzaima
1bd9467a2d
cleanup
2023-05-04 12:27:13 +03:00
dzaima
776b0b2b47
fix estimated UTF-8 length of codepoints 2047 and 65535
2023-05-02 10:49:11 +03:00
dzaima
352961a7eb
another ubsan complaint
2023-05-02 10:47:13 +03:00
dzaima
65e246774e
-mllvm --x86-cmov-converter=0
2023-04-30 20:03:09 +03:00
dzaima
0e79e9f868
fix ubsan notes
2023-04-30 19:50:24 +03:00
dzaima
cd40ec8117
fix ¯2e9‿2e9⍋0
2023-04-30 19:35:18 +03:00
dzaima
c567dff565
fix leading-axis operations on empty inputs
2023-04-30 19:15:46 +03:00
dzaima
93dd25e0e1
fast leading-axis for <>≤≥=≠
2023-04-30 19:00:56 +03:00
dzaima
c889a07d75
replicate-using leading axis arithmetic case
2023-04-30 18:46:41 +03:00
dzaima
1e11cf93c1
faster leading axis arithmetic
2023-04-30 17:27:07 +03:00
dzaima
048352f587
fix 0˝˘ 2‿2⥊0
2023-04-29 21:15:46 +03:00
dzaima
0a30c7b4e6
more generic n⊸↑⎉k & n⊸↓⎉k & n⊸⍉⎉k
2023-04-29 21:10:44 +03:00
dzaima
aae8651e8b
fix Arith⌜ with empty 𝕨
2023-04-29 20:11:24 +03:00
dzaima
518635d0b9
generic 𝕨 ≡⎉¯k 𝕩
2023-04-29 20:01:48 +03:00
dzaima
df613ad674
w⊸F⎉g x → w F⎉∞‿g x & F⟜x⎉g w → w F⎉g‿∞ x
2023-04-29 17:39:13 +03:00
dzaima
e40d056ee4
use err() for unexpected state
2023-04-29 17:39:13 +03:00
dzaima
5e29ec72ce
sanity test of mmap address top 16 bits being 0
2023-04-29 17:39:13 +03:00
dzaima
35786d4f5b
m_hVec\d → m_hvec\d
2023-04-29 17:39:13 +03:00
dzaima
e200bbc5f9
move ↕list to its own function
2023-04-29 17:39:13 +03:00
dzaima
bb7c37960e
a round of more incG/incByG
2023-04-29 17:39:13 +03:00
dzaima
a855d03b93
use %c in v_merge
2023-04-29 17:39:13 +03:00
dzaima
a0d384060a
unify implementations of m_vec1 and m_unit
2023-04-29 17:39:13 +03:00
dzaima
3b580cbd0c
rename unit creation methods
2023-04-29 17:39:13 +03:00
dzaima
88c19cedec
attempt at cleaning up mut.c a bit
2023-04-29 17:39:13 +03:00
dzaima
56e4863f66
typedef c8/c16/c32
2023-04-29 17:39:13 +03:00
dzaima
865257fdb6
more header file cleanup
2023-04-29 17:39:13 +03:00
dzaima
aa5ed7cc7a
BB2B & BBB2B → FC1 & FC2
2023-04-29 15:31:31 +03:00
dzaima
ca13fb567a
header file cleanup
2023-04-29 13:54:32 +03:00
dzaima
229a32237a
slice checking macro refactor
2023-04-29 13:24:20 +03:00
dzaima
ba1b853936
don't use the cell appender for Arith⌜
2023-04-29 13:13:58 +03:00
dzaima
62e2ea96ce
zsh needs to be kept alive even for zk==1
2023-04-28 21:04:30 +03:00
dzaima
7f0390be3f
more error messages
2023-04-28 20:49:34 +03:00
dzaima
7dd677a4e2
various fill improvements
2023-04-28 20:31:44 +03:00
dzaima
7a501ffbdf
use APD for ∾list
2023-04-28 20:17:44 +03:00
dzaima
5aa896ab38
use APD for Arith⌜
2023-04-28 19:30:54 +03:00
dzaima
b17d2010c2
better error messages
2023-04-28 19:25:42 +03:00
dzaima
38b2028374
use APD for ˘/⎉
2023-04-28 19:25:42 +03:00
dzaima
3761eafd0a
fix fills
2023-04-28 18:54:52 +03:00
dzaima
5c64c32aa9
allow GC between APD calls, delay shape errors
2023-04-28 18:54:52 +03:00
dzaima
7b877d368f
move fill handling to APD
2023-04-28 18:54:52 +03:00
dzaima
2f46b80b82
yet another mutable temporary array thing
2023-04-28 18:54:52 +03:00
dzaima
880efa38b4
better fill equality checking utilities
2023-04-28 18:51:41 +03:00
dzaima
d0e76ec436
better selfElType
2023-04-28 16:22:13 +03:00
dzaima
34a4d48d95
make singeli assertions checked in debug mode
2023-04-28 15:10:08 +03:00
dzaima
187eea1197
use memcpy for non-tiny equal-size copying
2023-04-26 20:19:05 +03:00
dzaima
d43ffd6b62
remove no longer needed E_SLICES
2023-04-25 22:13:41 +03:00
dzaima
037d36ddab
rework for_cells_AA
2023-04-25 22:13:13 +03:00
dzaima
586aeaea2d
HARR_FP
2023-04-25 21:44:55 +03:00
dzaima
23737cc458
proper error messages for ⎉ vs ˘
2023-04-24 19:43:04 +03:00
dzaima
77154be2a8
testing setup for ˘ & ⎉
...
incl. toggleable fill testing for !CATCH_ERRORS
2023-04-24 19:43:04 +03:00
dzaima
6d33018788
merge dyadic ˘ & ⎉
2023-04-24 19:43:04 +03:00
dzaima
e11d5dd31d
•internal.HasFill
2023-04-24 19:43:04 +03:00
dzaima
0b2ed69fba
add a NOGC_E in mut_pfree
...
fixes >⟨"ab"‿1,"a"⟩ in debug builds unnecessarily breaking
2023-04-24 01:01:35 +03:00
dzaima
b4a207a924
better fix for in-place 𝔽¨𝕩 on fillslice 𝕩
2023-04-23 22:49:19 +03:00
dzaima
927814d182
fix ⊢¨ {a←𝕩 ⋄ ⥊𝕩} 2‿3⥊<"a"
2023-04-23 22:17:32 +03:00
dzaima
2259e7b6a9
fix ↕1‿0‿1e9‿1e9‿1e9 incorrectly erroring
2023-04-23 22:17:32 +03:00
dzaima
9d9c3fe8ac
return signal code+128 in exit code on signaling •SH invocation
2023-04-23 22:17:32 +03:00
dzaima
c50674d63a
always overallocate by 4 bytes in 32-bit output case for /bitarr
2023-04-23 15:11:58 +03:00
dzaima
10edc75f09
use c1fn for monadic ˘/⎉
2023-04-22 22:33:32 +03:00
dzaima
6d5cee1cdc
extract one-call case to noinline function
2023-04-22 22:33:32 +03:00
dzaima
1ff31f1df3
don't hard-code VERIFY_TAIL size
...
+ improve error message
2023-04-22 22:33:32 +03:00
dzaima
5395d1eb08
cleanup
2023-04-22 19:10:58 +03:00
dzaima
36b99d3505
handle more cases of ⊏⎉n & ⊑⎉n
2023-04-22 18:44:21 +03:00
dzaima
fe071b641f
handle more cases of ⍉⎉n & «⎉n & »⎉n
2023-04-22 18:44:21 +03:00
dzaima
1c041fd968
move emptiness checks to where needed
2023-04-22 18:34:29 +03:00
dzaima
e4d38f571d
move k==0 case out of for_cells_c1
2023-04-22 18:34:25 +03:00
dzaima
edf1f2df7e
merge_fill_result changes
...
incl. fixing when rr==k
2023-04-22 18:34:18 +03:00
dzaima
78764ec47c
move SLICE source refcount incrementing outside of loop
2023-04-22 18:33:39 +03:00
dzaima
b10a87fe00
merge ˘ & ⎉
2023-04-22 18:31:29 +03:00
dzaima
1ffc141919
move toCells & toKCells to cells.c
2023-04-22 18:31:24 +03:00
dzaima
1de59d6ee8
reorder functions
2023-04-22 17:20:05 +03:00
dzaima
663fe29a89
move monadic ⎉ to slice macros
2023-04-22 17:20:05 +03:00
dzaima
078ee7af97
use c2fn in insert_base
2023-04-22 17:20:05 +03:00
dzaima
d2ac5db1c8
move ⎉ & ˘ to their own file
2023-04-22 17:20:05 +03:00
dzaima
3e9f1ce1b0
arr_shErase
2023-04-22 16:33:55 +03:00
dzaima
6c988c3804
ptr_incBy
2023-04-22 13:06:13 +03:00
dzaima
e0479adee4
fix rank overflow check in 𝕨⥊𝕩
2023-04-22 11:53:54 +03:00
dzaima
20b3867581
change %c in format strings to u32 unicode codepoint
2023-04-22 10:58:25 +03:00
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
dzaima
a84ca6c5d6
strict prototypes
2023-02-03 15:33:31 +02:00
dzaima
dbe4c0b51a
support character literals in native compiler
2023-02-02 22:52:02 +02:00
dzaima
356093e313
remove unwanted increment
2023-02-02 22:51:44 +02:00
dzaima
05c1270344
better 𝕨⊏𝕩 with 0=×´≢𝕨
2023-02-02 00:40:52 +02:00
dzaima
c5272b47fb
allow running el2t on el_B & el_MAX
...
under the assumption that the result won't actually be used; but if it is, trying to free or gc the object will result in a crash
2023-02-01 22:48:10 +02:00
dzaima
c38565ab8d
whitespace cleanup
2023-01-31 00:07:00 +02:00
dzaima
a650051a82
don't need an actual function object for eachd_fn / eachm_fn
2023-01-28 14:57:04 +02:00
dzaima
4a45a07a2b
native ⚇0
2023-01-27 22:59:22 +02:00
dzaima
e5bbde745a
native handling of ⌾{...}
2023-01-27 04:09:07 +02:00
dzaima
10705823de
more squeezing changes in ⊐𝕩 and ⊒𝕩
2023-01-27 03:17:20 +02:00
dzaima
ea0aa709fe
squeeze result of ⊒𝕩, copy result of ⊐𝕩 to smaller width when possible
2023-01-27 02:57:05 +02:00
dzaima
ae4c4a03ee
copy ⊐ and ⊒ results to more correct element width arrays
2023-01-27 02:09:43 +02:00
dzaima
f13e82af62
fix leaking in comp.c
2023-01-26 19:27:43 +02:00
dzaima
5f9aeafec6
use switch for tokenization
2023-01-26 19:21:02 +02:00
dzaima
1a80cf312d
more error checking in comp.c
2023-01-26 19:03:03 +02:00
dzaima
fbd4c79161
speed improvements for comp.c
...
not that it needs to be any faster
2023-01-26 03:46:25 +02:00
dzaima
422cc26054
dyadic •CompObj to replace compiler
2023-01-26 02:42:25 +02:00
dzaima
cc5a5752bf
add •CompObj to NATIVE_COMPILER
2023-01-26 01:53:09 +02:00
dzaima
9abe7506ab
native minimal compiler
2023-01-26 01:30:10 +02:00
dzaima
e231d36471
clean up gcc warnings
2023-01-25 17:16:24 +02:00
dzaima
c33cd81e06
use native ⁼ in ⍟(-n)
2023-01-25 15:30:54 +02:00
dzaima
73724acf1d
use invalidFn_c1 instead of c1_bad
2023-01-25 15:09:07 +02:00
dzaima
31bd75630c
make f=-DNO_RT functional
2023-01-25 15:05:23 +02:00
dzaima
6baa96c1e3
NEON squeeze
2023-01-25 02:22:53 +02:00
dzaima
88410c02e5
prep for NEON squeeze
2023-01-24 22:21:38 +02:00
dzaima
f91d3dfaf5
use num_squeeze directly for bytecode LSTO
2023-01-24 22:00:09 +02:00
dzaima
7768d6475f
various OOM fixes
2023-01-23 23:49:27 +02:00
dzaima
b0dbd5c37b
fix gcc build
2023-01-23 21:57:47 +02:00
dzaima
92c855920b
unroll int×u1
2023-01-23 21:43:39 +02:00
dzaima
721dd8889b
monadic arith
2023-01-23 01:22:40 +02:00
dzaima
7284eb7010
more manual unrolling in dyarith.singeli
2023-01-22 22:49:44 +02:00
dzaima
b1cace31ac
don't make a slice on n⊏list
2023-01-22 19:31:11 +02:00
dzaima
679e90925a
preserve ⟨a⟩ & ⟨a,b⟩ fill behavior for JIT
2023-01-22 19:24:34 +02:00
dzaima
162adbca68
more Singeli utilities
2023-01-22 18:04:52 +02:00
dzaima
86c2aa7e2c
unroll non-overflowing dyarith loops for aarch64
2023-01-22 04:22:21 +02:00
dzaima
afe6707654
dyarith NEON support
2023-01-22 03:27:41 +02:00
dzaima
20daceaae5
move things in eachd_fn around
2023-01-22 01:42:20 +02:00
dzaima
7bd8331346
add more GS_UPD
2023-01-21 23:34:13 +02:00
dzaima
d84c04bc63
use incBy more
2023-01-21 00:09:47 +02:00
dzaima
e4578a345e
fix 0‿1⊐"ab"‿"cd" & 0‿1∊˜"ab"‿"cd"
2023-01-19 16:04:44 +02:00
dzaima
b43184d629
fix 1‿2 +⎉0 1
2023-01-19 03:57:13 +02:00
dzaima
5cd1ee0ee3
fix NaN formatting
2023-01-18 20:08:18 +02:00
dzaima
5b8ac969db
don't unroll on i8arr ↕n
2023-01-18 15:41:53 +02:00
dzaima
4945a90ff0
valgrind changes
2023-01-18 02:05:24 +02:00
dzaima
7b996c772a
lea tmp,[CS+123]; mov [tmp],rax → mov [CS+123],rax
2023-01-17 20:55:39 +02:00
dzaima
40383906ec
no, neither w nor h are 1, clang
2023-01-17 05:17:37 +02:00
dzaima
472e542ebd
O(1) ⍉𝕩 when it doesn't reorder elements
2023-01-17 04:52:08 +02:00
dzaima
f9eb7f083c
unshare shape
2023-01-17 04:38:55 +02:00
dzaima
21372a743a
allow unsharing slices
2023-01-17 04:32:30 +02:00
dzaima
ec11e34dba
clear old flags from in-place ¨
2023-01-17 04:31:55 +02:00
dzaima
540b37ae6a
shape replacement utility
2023-01-17 03:47:14 +02:00
dzaima
ec92b1d5ba
better eachm_fn
2023-01-17 01:35:04 +02:00
dzaima
5de565f1b0
use 'debug/printf' for Singeli printf
2023-01-17 01:01:13 +02:00
dzaima
79c7aa30df
reformat --help
2023-01-16 23:32:52 +02:00
dzaima
a483ac61d9
--version & version specifying in build/build
2023-01-16 19:31:14 +02:00
dzaima
dd82073c60
slightly faster ⍟list handling
2023-01-16 18:58:48 +02:00
dzaima
e0df77519e
set replxx history max size higher
...
before it was 1000
2023-01-15 22:55:40 +02:00
dzaima
6c89982bbc
unrolled Singeli loop option
2023-01-15 22:51:31 +02:00
dzaima
39605c1a98
add intrinsic file include for _mm_crc32_u32
2023-01-14 00:38:32 +02:00
dzaima
6c88499920
consistently check only for whether __BMI2__ is defined
2023-01-14 00:33:34 +02:00
dzaima
5b35c0a664
keep pext usage for bitarr/bitarr
2023-01-13 23:46:48 +02:00
dzaima
41212ab852
SLOW_PDEP option
2023-01-13 23:23:06 +02:00
dzaima
e987a5e4c0
some file path handling changes around windows
2023-01-13 19:16:13 +02:00
dzaima
376e343639
don't use manual copy loops in eachd_fn
2023-01-12 21:25:36 +02:00
dzaima
dbcd967e12
attempt at replxx-based printf
2023-01-12 17:13:42 +02:00
dzaima
46f657713c
don't rely on bqn_fmt when !FORMATTER or CBQN isn't yet initialized
2023-01-09 02:30:29 +02:00
dzaima
86ae984af0
more print function renaming
2023-01-09 02:17:12 +02:00
dzaima
6f394c41ff
windows: wide char printing
2023-01-09 02:00:22 +02:00
dzaima
a9c70d9d72
printing method overhaul
2023-01-09 01:42:44 +02:00
dzaima
381460e92e
windows: getline fixes & discard trailing CRLF
2023-01-08 20:35:20 +02:00
dzaima
7b7c31e8b9
fix warning of unused pageSizeV for windows builds
2023-01-07 02:27:30 +02:00
dzaima
26c12e6724
add )exit & )off
2023-01-07 02:23:12 +02:00
dzaima
38ec07c34b
use getline on Windows for the REPL
2023-01-06 18:02:02 +02:00
dzaima
6889121a28
getPageSize does need to return something
2023-01-06 06:10:12 +02:00
dzaima
b03bf80198
move Windows cases around
...
also don't make dir_create pretend it succeeds
2023-01-06 06:04:12 +02:00
actalley
815de4fd97
Address build errors on llvm-mingw to build bqn.exe with no SH, FFI, or repl support
2023-01-05 21:38:30 -06:00
dzaima
32f0a2f8fc
check file size for whether we can allocate it
...
also "takes care" of the case when the file is a directory
2022-12-31 21:04:19 +02:00
dzaima
7d4677a8ff
use COPY_TO instead of a loop in fbytes_c1
...
& ryu comment changes
2022-12-31 20:49:50 +02:00
dzaima
8da9c4e3a5
don't fail on •SH under VERIFY_TAIL
2022-12-31 20:31:13 +02:00
dzaima
7b3beec621
•ParseFloat
2022-12-31 20:22:22 +02:00
dzaima
fd38a5b241
use Ryu for number formatting
2022-12-31 03:19:06 +02:00
dzaima
99a82afec4
actually check character arrays in VERIFY_TAIL
2022-12-31 02:50:38 +02:00
dzaima
854acd580d
respect !PROPER_FILLS in high-rank ↑
2022-12-30 16:16:36 +02:00
dzaima
6e748ed800
remove unused rt_* globals
2022-12-30 01:50:00 +02:00
dzaima
7ff74d38e8
squeeze el_bit transpose result
2022-12-30 01:12:24 +02:00
dzaima
faf89abef0
fix ⊏˘ generic case
2022-12-30 00:21:07 +02:00
dzaima
5a9e5e8e50
native baseline high-rank 𝕨⊒𝕩
2022-12-30 00:10:03 +02:00
dzaima
ec169b1006
remove no longer necessary runtime loads
2022-12-29 23:59:44 +02:00
dzaima
83863a64fd
fix gcc build
2022-12-29 23:46:24 +02:00
dzaima
b903a5d9ce
fast num⊑˘simpleArr
2022-12-29 23:37:00 +02:00
dzaima
168db4cf01
fix rtWrap_unwrap refcounting
2022-12-29 23:36:50 +02:00
dzaima
0589d63cc5
fast v˙˘arr, fix arr˘arr
2022-12-29 23:36:37 +02:00
dzaima
1e3117d65f
fast ⥊˘𝕩
2022-12-29 22:25:22 +02:00
dzaima
3408db320c
fast num↑˘𝕩 & num↓˘𝕩 for 2≤=𝕩
2022-12-29 22:20:29 +02:00
dzaima
f6f0c12935
fast ⊑˘simpleArr
2022-12-29 22:07:38 +02:00
dzaima
a0feda9d8b
fast arr˘ x
2022-12-29 22:04:06 +02:00
dzaima
47e95171f0
faster »˘ & «˘ on matrices, fix 0⊏˘↕3
2022-12-29 21:47:52 +02:00
dzaima
897ad8f649
clang really wants to special-case csz==1, but that's checked for before
2022-12-29 21:47:52 +02:00
dzaima
3f0c34e895
fast ≍˘𝕩
2022-12-29 21:47:52 +02:00
dzaima
4e88dc1004
faster ⊏˘
2022-12-29 20:32:17 +02:00
dzaima
41efcfb632
fast ∾˝ & 𝕨ScalarFn˝𝕩
2022-12-29 18:46:14 +02:00
dzaima
8a132467d2
improve EACH_FILLS cases in ¨ & ⌜
2022-12-28 22:38:14 +02:00
dzaima
6a9e03bdb1
use arr_shSetU/arr_shSetI inline
...
and use incG more in rank_c2
2022-12-28 17:31:02 +02:00
dzaima
a34bb0a433
don't unroll libc math loops
2022-12-28 16:51:17 +02:00
dzaima
4884580037
rearrange arr_shCopyUnchecked to not read SH(o) twice
...
and, while making a change that requires rebuilding all of CBQN, also make more of the arr_* fns return their Arr* argument to prepare for using them inline
2022-12-28 16:23:27 +02:00
dzaima
3b1b171828
don't need copying from bitarr to character arr
2022-12-28 16:17:16 +02:00
dzaima
c5a3c57f50
check for path being present for •path/•name/•state
2022-12-28 01:13:58 +02:00
dzaima
d8724e6658
update clangdCommands.bqn to new singeli defines, and enable by default
2022-12-27 23:59:48 +02:00
dzaima
33580b91ca
don't error on unknown fill when not overtaking
2022-12-27 23:44:34 +02:00
dzaima
84bae20f79
don't inline load functions
2022-12-27 03:54:00 +02:00
dzaima
f424c720a7
full native 𝕨⌽𝕩 & 𝕨⌽⁼𝕩
2022-12-27 03:39:48 +02:00
dzaima
75fe558f1c
detect writes past the end of a TALLOC allocation
2022-12-27 02:29:24 +02:00
dzaima
1afdd89075
allow defining custom dyadic inverses of builtins
2022-12-26 23:57:55 +02:00
dzaima
013897cc16
add runtime calls to WARN_SLOW
2022-12-26 23:15:56 +02:00
dzaima
78793ca700
-h → --help
2022-12-26 20:33:33 +02:00
dzaima
c818bf54b1
remove need of libffi from make forbuild
2022-12-26 19:38:24 +02:00
dzaima
48c2425e8b
check result size being too large in ↑
2022-12-26 18:16:11 +02:00
dzaima
7bcee07489
initialize shape properly in one case of high-rank take/drop
...
fixes 0‿4↑↕4 in debug builds, which just magically approximately worked before
2022-12-26 16:09:30 +02:00
dzaima
326d54e130
native list↑𝕩 & list↓𝕩
2022-12-25 13:38:43 +02:00
dzaima
8fad76762a
reorder take_c2
2022-12-24 17:53:16 +02:00
dzaima
e2b45e33e1
simplify splitCells
2022-12-24 17:29:48 +02:00
dzaima
424448aa40
remove rt_memberOf & rt_indexOf
2022-12-24 17:12:35 +02:00
dzaima
95b1beb9db
native high-rank ∊ & ⊐
2022-12-24 17:08:27 +02:00
dzaima
3f40955d83
reorder indexOf_c2
2022-12-24 17:05:50 +02:00
dzaima
e3b5af8a44
fix 𝕨∊p & p⊐𝕩 with an empty high-rank p
2022-12-24 17:03:58 +02:00
dzaima
24dba9ba40
fix a bunch of small memory leaks around REPLXX
...
not that they'd cause any problems in practice - they're very small, and are in the one context where GC can actually run
2022-12-24 16:42:42 +02:00
dzaima
bb7fe02a45
separate checks for x86-64 & NEON Singeli importing
...
& restrict the processed Singeli files on NEON to the ones supported
2022-12-24 15:27:53 +02:00
dzaima
6d79ce9fb1
use arch-independent names for things suppported on both x86-64 & NEON
2022-12-24 15:26:05 +02:00
dzaima
d38316e670
BQN-based build system
2022-12-23 23:09:55 +02:00
dzaima
efcc6a28be
add •file.path to autocomplete options
2022-12-23 18:08:33 +02:00
dzaima
bbc66cbf3f
fix display of running multiline code while cursor isn't in last line
2022-12-23 18:06:58 +02:00
dzaima
381ce70212
backslash+enter → literal newline
2022-12-23 18:02:18 +02:00
dzaima
a6b22c75fd
fast list⊐unit for more list types
2022-12-20 18:32:51 +02:00
dzaima
e69d8dc6e9
native ⌾(v⊸⌽)
2022-12-20 18:31:42 +02:00
dzaima
d05621f8f4
generic vector width calculation for NEON-supported files
2022-12-20 00:02:46 +02:00
dzaima
b91e72567d
update Singeli submodule, conditional NEON includes
2022-12-19 23:31:44 +02:00
dzaima
43be832a37
fix highrank∊list deshaping the result in some scenarios
2022-12-18 23:58:10 +02:00
dzaima
8188886538
fast 𝔽´⟨x⟩ & 𝔽´⟨x,y⟩
2022-12-18 23:49:09 +02:00
dzaima
aa4b92cb01
don't define •SH if not available
2022-12-18 23:40:55 +02:00
dzaima
29cecb0b6e
remove •PrimInd
2022-12-18 23:16:36 +02:00
dzaima
6380364e62
native highrank∊vector
2022-12-18 23:05:58 +02:00
dzaima
30a6de0a31
add unrolling to aarch64 cmp.singeli
2022-12-18 22:45:42 +02:00
dzaima
f9c919d5ce
getmask → homMask/topMask
2022-12-18 22:27:42 +02:00
dzaima
a07b94b889
more general equal.singeli, remove trailing semicolons
2022-12-18 21:55:20 +02:00
dzaima
2a32f52f8d
blend renaming
2022-12-18 02:49:42 +02:00
dzaima
09b3279958
unified Singeli including mechanism
2022-12-18 01:54:07 +02:00
dzaima
9768526ddc
move last bit of equal.singeli to loadBatch
2022-12-18 01:53:56 +02:00
dzaima
40f36fa366
Singeli-generated table for bits.singeli
2022-12-17 17:51:56 +02:00
dzaima
2c73199ed4
use Singeli-generated function tables for comparison
2022-12-16 19:04:58 +02:00
dzaima
f49dd5e8cf
move cmp.singeli NaN check outside for non-x86_64
2022-12-16 17:39:51 +02:00
dzaima
6e3cb9a425
andIsZero→andAllZero; NEON andnz, blendF, sel, bitops.singeli
2022-12-16 00:44:32 +02:00
dzaima
cbd891b768
NEON widen, narrow, undefPromote; make undefPromote more restrictive
2022-12-15 23:19:00 +02:00
dzaima
6fac426f90
add v_dbl & v_half, NEON half{x,n}
2022-12-15 21:57:34 +02:00
dzaima
791e7d122f
ucvt→narrow
2022-12-15 21:44:48 +02:00
dzaima
2b7291dbfb
cvt{E,T,v} → widen{T,to_el{E,v}}
2022-12-15 20:31:00 +02:00
dzaima
9a9fade18a
NEON loadLow, storeLow, andIsZero, maskstore, pack
2022-12-15 16:14:00 +02:00
dzaima
6f2d6bfb0b
remove offset argument from maskstore; don't use w256 in mask.singeli
2022-12-15 16:13:45 +02:00
dzaima
77edc734e8
move storeLow & loadLow to sse3 & avx; fix NEON __not
2022-12-15 00:39:44 +02:00
dzaima
9fea5f1e13
neg(Any|All) → top(Any|All), msk(Any|All) → hom(Any|All)
2022-12-13 21:46:50 +02:00
dzaima
336da996b3
any/all vector check renaming
2022-12-13 02:03:17 +02:00
dzaima
7e13bf7f45
more neon.singeli
2022-12-12 02:59:11 +02:00
dzaima
444268f051
width{eltype{T}} → elwidth{T}
2022-12-12 00:07:50 +02:00
dzaima
2a1611ac81
start of neon.singeli
2022-12-11 23:59:07 +02:00
dzaima
0ef8800530
native F⌾⊢𝕩 & F⌾⊣𝕩
2022-12-08 13:26:04 +02:00
dzaima
3a3f213a92
assign broadcast{T,v} to T**v
2022-12-07 23:53:19 +02:00
dzaima
ce45d487a3
use mutating assignment
2022-12-07 23:24:26 +02:00
dzaima
07d4567a52
use spread arguments
2022-12-07 23:10:17 +02:00
dzaima
bf71fdb4f8
singeli now formats generators itself
...
or, well, has for a long time
2022-12-07 22:41:17 +02:00
dzaima
1b88c4cc62
don't allocate twice the memory requested
2022-12-07 22:22:34 +02:00
dzaima
af978bbc91
cave in and initialize variables in gcc
2022-12-03 23:58:33 +02:00
dzaima
6ca5050f4d
reduce gcc warnings
2022-12-03 23:56:03 +02:00
dzaima
e4f4864ed2
define CBQN_EXPORT by default, add macro test for exactly gcc
2022-12-03 23:19:24 +02:00
dzaima
63e5e843ba
fix f64arr/𝕩
...
`slow:` uses `s`, but the goto went to it before `s` was initialized
2022-12-03 23:18:43 +02:00
dzaima
5d61785912
some more x86_64.h reordering
2022-12-03 22:54:49 +02:00
dzaima
21984e1700
more x86_64.h cleanup
2022-12-03 15:21:05 +02:00
dzaima
95f9e781fa
fix )profiler output merging all REPL entries
2022-12-03 14:14:32 +02:00
dzaima
732d1fdb34
remove ASMI/macro indirection
2022-12-02 17:26:10 +02:00
dzaima
bca0efb46c
clean up x86_64.h
2022-12-02 17:10:04 +02:00
dzaima
0023e46ab8
config file & light theme
2022-12-02 16:49:49 +02:00
dzaima
7c6676a492
copy over custom _mm_loadu_si32 for old gcc
2022-12-01 13:37:01 +02:00
Marshall Lochbaum
4077596b89
Sparse initialization for ⌾(i⊸⊏) byte table
2022-11-30 16:32:06 -05:00
Marshall Lochbaum
d7a06befb5
Select implementation comments
2022-11-30 16:32:06 -05:00
Marshall Lochbaum
534c92f38a
Select from <=128 booleans with shuffles
2022-11-29 22:14:57 -05:00
Marshall Lochbaum
fdfeb67e8f
2-register permutevar8x32
2022-11-29 20:27:45 -05:00
Marshall Lochbaum
41f464795f
Selection with permutevar8x32
2022-11-29 18:45:22 -05:00
Marshall Lochbaum
c17448ed71
Faster bit selection
2022-11-29 11:29:25 -05:00
Marshall Lochbaum
dc6e49b289
Shuffle selection using >1 data register
2022-11-28 21:51:36 -05:00
Marshall Lochbaum
b651ca73d3
Move base{} utility to base.singeli
2022-11-28 13:55:19 -05:00
Marshall Lochbaum
43fba7cd78
Extend shuffle selection to >1 byte data
2022-11-28 13:55:19 -05:00
Marshall Lochbaum
6639c17b81
1-byte select with <=16 elements using shuffle
2022-11-27 21:03:58 -05:00
Marshall Lochbaum
e09d555eba
Refactoring and renaming in select.singeli
2022-11-27 09:18:21 -05:00
Marshall Lochbaum
7cb8cf5772
Enable selection with AVX2 gather for i8 to i32 indices and 1- to 8-byte values
2022-11-27 09:18:21 -05:00
dzaima
dbc7c83f70
move usum to fold.c
...
but don't do anything useful with that because usum needs to also check for negative numbers
2022-11-27 15:45:33 +02:00
dzaima
afe6c0eba9
use 1•internal.Info for rtverify fails
2022-11-27 15:45:33 +02:00
dzaima
c0e06833c0
move B squeeze non-integer case out of twice-generated generator
2022-11-27 15:45:33 +02:00
dzaima
b0fcc017ce
clean up squeeze.singeli
2022-11-27 15:45:33 +02:00
dzaima
0f3f91105e
use anynePositive for squeeze.singeli
2022-11-27 15:45:33 +02:00
dzaima
15f6dd5d48
simplify 16-bit anynePositive
2022-11-27 15:45:33 +02:00
dzaima
5f85305f43
GPR mask testing
2022-11-27 15:45:33 +02:00
dzaima
efd79881cb
use single mask array for all type widths
2022-11-27 15:45:33 +02:00
Marshall Lochbaum
d911eafd31
Inverses for •math.Fact and •math.LogFact
2022-11-26 14:20:52 -05:00
Marshall Lochbaum
a3df482acd
Use non-inlined recursion for •math functions
2022-11-26 14:14:37 -05:00
dzaima
c4d0f8bdc4
highlight "." in numbers
2022-11-24 13:08:20 +02:00
dzaima
d383fe57a7
clean up whitespace
2022-11-24 01:26:35 +02:00
dzaima
34e37d1b1a
increase gc root buffer size
2022-11-24 01:09:50 +02:00
dzaima
cf5ce07f51
simplify singeli xor/and/or definitions
2022-11-24 00:21:19 +02:00
Marshall Lochbaum
e60b942710
Formatting
2022-11-23 16:51:30 -05:00
Marshall Lochbaum
7715cbc158
Add •math.Sum with Singeli f64 implementation
2022-11-23 16:51:30 -05:00
Marshall Lochbaum
35aef1e5cd
•math.Erf, •math.ErfC, and •math.LogFact
2022-11-23 16:46:39 -05:00
Marshall Lochbaum
9a1268ea3a
Simplify •math.Comb implementation
2022-11-23 16:46:39 -05:00
Marshall Lochbaum
6eb21bd68c
Factorial and combinations functions
2022-11-23 16:46:39 -05:00
Marshall Lochbaum
f6109b3985
Handle no-op and boolean cases of monadic arithmetic quickly
2022-11-23 16:46:39 -05:00
Marshall Lochbaum
58cd6f0f4e
Other useful math: log2 log10 log1p expm1 hypot
2022-11-23 16:46:39 -05:00
Marshall Lochbaum
a0f6986832
Hyperbolic trig
2022-11-23 16:46:39 -05:00
Marshall Lochbaum
51840bc853
•math.GCD and •math.LCM for u64 arguments
2022-11-23 16:46:39 -05:00
dzaima
49636bae79
replace --dynamic-list with visibility
2022-11-22 15:36:32 +02:00
dzaima
6f5c329e22
noinline float product
2022-11-22 14:24:43 +02:00
dzaima
e7cc8ec444
use o2fG instead of union field
2022-11-21 23:26:25 +02:00
Marshall Lochbaum
31106c730c
Fold implementation comments
2022-11-21 15:56:15 -05:00
Marshall Lochbaum
bda653e865
Shortcutting for boolean-valued integer ∨´
2022-11-21 15:51:03 -05:00
Marshall Lochbaum
f1ca8793e3
Boolean comparison folds, monadic only
2022-11-21 15:36:06 -05:00
Marshall Lochbaum
47392acc33
Implement ×´ for all numeric cases, using f64 product when i32 fails
2022-11-21 15:19:27 -05:00
Marshall Lochbaum
52608ba6ce
Singeli min/max-fold
2022-11-21 11:47:50 -05:00
Marshall Lochbaum
4b9a21c75f
Do tack-fold with selection
2022-11-21 08:07:38 -05:00
Marshall Lochbaum
38683119c0
Handle some f64 cases in dyadic fold
2022-11-20 22:03:36 -05:00
Marshall Lochbaum
c977065c20
Move +⌈⌊ folds to function tables, unifying monadic and dyadic cases
2022-11-20 21:51:30 -05:00
Marshall Lochbaum
ebfd002793
Blocked +´ and f64 ⌈´ ⌊´
2022-11-20 21:06:05 -05:00
Marshall Lochbaum
5bfdc26d00
Move fold to its own file
2022-11-20 20:06:35 -05:00
Marshall Lochbaum
b9a3a7886d
Ordering function implementation comments
2022-11-20 19:57:00 -05:00
dzaima
24195780df
reorder headers to allow OpenBSD hack to function
2022-11-20 18:22:51 +02:00
dzaima
6ff521b200
don't use IA/SH macros for assigning
2022-11-18 15:07:31 +02:00
dzaima
966b78693b
fix test/precompiled.bqn
2022-11-18 00:16:34 +02:00
dzaima
5c65a1a7eb
move precompiled bytecode to submodule
2022-11-17 23:20:07 +02:00
dzaima
1b64b4b548
better temporary replxx state handling
2022-11-17 19:18:33 +02:00
dzaima
35abd7f7e8
try $XDG_DATA_HOME before $HOME for REPL history directory
2022-11-17 19:18:33 +02:00
dzaima
ff36205a34
bind ctrl+n & ctrl+p
2022-11-17 19:18:33 +02:00
dzaima
1f5be9e69e
backslash input
2022-11-17 19:18:33 +02:00
dzaima
9018051ce3
add •math.Atan2 autocomplete
2022-11-17 19:18:33 +02:00
dzaima
c60bdaba4d
highlight 𝔽𝔾𝕎𝕏𝕊 as functions, reduce mut.h to calls.h
2022-11-17 19:18:33 +02:00
dzaima
bd6035cdef
more system namespace field completion, actually add •ToUTF8
2022-11-17 19:18:33 +02:00
dzaima
a48488a132
enable bracketed paste, add sanity check in syntax highlighter
2022-11-17 19:18:33 +02:00
dzaima
07fa4a066b
save replxx history more
2022-11-17 19:18:33 +02:00
dzaima
983452b409
system value completion
2022-11-17 19:18:33 +02:00
dzaima
feb7b8b9a0
replxx REPL
2022-11-17 19:18:33 +02:00
dzaima
94f8b189f7
REINIT_TAIL → FINISH_OVERALLOC
2022-11-17 18:56:46 +02:00
dzaima
a48f1f5eb0
fix -DMM=0
2022-11-17 18:56:46 +02:00
dzaima
55e8a43297
fix test/mut.bqn leaking references
2022-11-17 18:56:46 +02:00
dzaima
1ac5f0a49d
arr_shCopy that doesn't compare IA
2022-11-17 18:56:46 +02:00
dzaima
179e0a37dc
more tail verify work
2022-11-17 18:56:46 +02:00
dzaima
e5a9c7536d
array tail overwriting checker
2022-11-17 18:56:46 +02:00
dzaima
360aabb7cc
option to noinline mm_alloc & mm_free
2022-11-17 18:56:46 +02:00
dzaima
da1062c81c
remove unused #undef
2022-11-17 18:55:59 +02:00
dzaima
aee745a7d6
fix argument names of C2
2022-11-17 18:13:29 +02:00
dzaima
db89e7a4bb
fix function signatures & M1C2; use C1 & bit_negate more
2022-11-17 17:52:19 +02:00
Marshall Lochbaum
be9037cb62
Squeeze for ∨` instead of scalar checking for bool
2022-11-17 08:32:29 -05:00
Marshall Lochbaum
5985e92834
Initialized min/max-scan
2022-11-17 07:59:00 -05:00
Marshall Lochbaum
98d066c343
Use scan_max_num for sorted ⊒
2022-11-16 21:20:54 -05:00
Marshall Lochbaum
1924aee61c
f64 min/max scan
2022-11-16 21:14:32 -05:00
Marshall Lochbaum
136c1afacc
Macro-ize integer min/max scan and add sorted flag
2022-11-16 20:49:57 -05:00
Marshall Lochbaum
ac7ff155d4
Pull out scan_add_bool() utility function from scan_c1()
2022-11-16 20:16:33 -05:00
Marshall Lochbaum
d6029985e8
Move scan to its own file
2022-11-16 19:48:37 -05:00
Marshall Lochbaum
93ef4bb2a9
Direct ⍷bool implementation
2022-11-15 22:03:50 -05:00
Marshall Lochbaum
f1142b4184
Branchless ⊒bool, moderately faster
2022-11-15 18:27:54 -05:00
Marshall Lochbaum
d6b09adb57
Add primitive and primitive-1modifier call macros to calls.h
2022-11-15 16:08:34 -05:00
Marshall Lochbaum
4506caf3ac
Faster self-search on sorted 𝕩 using »⊸≠𝕩
2022-11-15 16:08:17 -05:00
Marshall Lochbaum
856eabd493
Self-search implementation comments
2022-11-14 21:08:44 -05:00
dzaima
8e631d7177
always take size in mm_alloc as u64
2022-11-14 22:42:32 +02:00
dzaima
3be97e6f61
update commented-out debug print
2022-11-14 20:44:19 +02:00
dzaima
a9737c22ea
extract bit array negation to function
2022-11-14 19:47:53 +02:00
dzaima
7e934b04db
better negation buffer handling
2022-11-14 19:02:44 +02:00
dzaima
63a2791361
add some NOUNROLLs
2022-11-14 18:00:00 +02:00
Marshall Lochbaum
85f54b2b25
Check for a small return type in large-range /⁼ with a sparse table
2022-11-13 18:00:10 -05:00
Marshall Lochbaum
cd16c8a1c7
Blocked 4-byte ⍋bool and ⍒bool with Singeli
2022-11-13 18:00:10 -05:00
Marshall Lochbaum
1647e98fd2
Use Singeli code for ⍋bool and ⍒bool with 1- and 2-byte result
2022-11-13 18:00:10 -05:00
Marshall Lochbaum
6bea10de21
Implementation comments and minor refactoring for /⁼
2022-11-13 18:00:10 -05:00
Marshall Lochbaum
7acd9d5688
Indices/Replicate implementation comments
2022-11-13 18:00:10 -05:00
dzaima
c81e95730a
fix -DMM=0 builds
2022-11-13 13:47:29 +02:00
dzaima
b244d7ecf5
disallow bitwise hashing for ¯0; prepare for mm_alloc taking u64 size
2022-11-12 23:45:39 +02:00
Marshall Lochbaum
7d56d61235
Hash table for Occurrence Count (⊒)
2022-11-12 15:47:59 -05:00
Marshall Lochbaum
1be4f4c2e7
Fix value movement when resizing Classify (⊐) hash
2022-11-12 15:47:59 -05:00
Marshall Lochbaum
62867f4533
Make brute-force Mark Firsts store result in a register (always <64 elements)
2022-11-12 15:47:59 -05:00
Marshall Lochbaum
8560ce0f4d
Move hash table initializers to functions to save some binary space
2022-11-12 15:47:59 -05:00
Marshall Lochbaum
9adfb13355
Extend Mark Firsts hash table to handle Classify
2022-11-12 15:47:59 -05:00
Marshall Lochbaum
37d7694c52
64-bit Mark Firsts (∊) hash table
2022-11-12 15:47:59 -05:00
Marshall Lochbaum
dc7389a660
Mark Firsts hash table resizing policy tweaks
2022-11-12 15:47:59 -05:00
Marshall Lochbaum
2e1b64e0ca
Resizable hash table for Mark Firsts (∊)
2022-11-12 15:47:59 -05:00
Marshall Lochbaum
8a551ab5ce
Add 32-bit hash table for Classify (⊒)
2022-11-12 15:47:59 -05:00
Marshall Lochbaum
d8e4e7d96f
Unify small-type and small-range tables for Classify (⊐)
2022-11-12 15:47:59 -05:00
dzaima
a64f0ada5f
update src/README.md
2022-11-12 20:30:47 +02:00
dzaima
a7daeea6d9
fix (500⥊¯1‿5) ⊔ 500‿1‿3⥊3
2022-11-12 19:20:34 +02:00
Marshall Lochbaum
beb997ccb9
Avoid data movement for empty cells in Group 𝕩
2022-11-12 07:25:41 -05:00
dzaima
a1e12106ce
use FILL_TO for more compact edge-case handling
2022-11-12 13:45:52 +02:00
dzaima
1241da4d74
fix group of array with empty cells
2022-11-12 13:41:45 +02:00
dzaima
eb880d7135
set result fill fill immediately instead of delaying to before return
2022-11-12 13:30:35 +02:00
Marshall Lochbaum
d2cdae4962
Fast case for bool⊔𝕩 using compress
2022-11-10 21:22:29 -05:00
Marshall Lochbaum
a3da018055
Group code for 1-bit cells
2022-11-10 14:52:45 -05:00
Marshall Lochbaum
6eb504118e
Split out optimized Group cases and add comments
2022-11-10 14:52:45 -05:00
Marshall Lochbaum
801472d6d4
Implement bit_cpy versions of the Group methods that use memcpy
2022-11-10 14:52:45 -05:00
Marshall Lochbaum
e7c1918ba0
Native <` implementation using addition
2022-11-09 12:19:02 -05:00
dzaima
87d0fa5dc7
fix gcc 9 build
2022-11-08 16:59:17 +02:00
dzaima
6467530823
use ty_u
2022-11-08 16:56:43 +02:00
Marshall Lochbaum
812b97dc51
Mark boolean +` result sorted and squoze
2022-11-07 20:23:15 -05:00
Marshall Lochbaum
666a41ab12
1- and 2-byte Singeli boolean +`
2022-11-07 17:54:11 -05:00
Marshall Lochbaum
f1ff499244
Implement multiple result types for non-Singeli +`bool
2022-11-07 17:09:41 -05:00
Marshall Lochbaum
7b3c69f9da
Take sum first in boolean plus-scan; special code for sparse or boolean sum
2022-11-07 15:35:53 -05:00
dzaima
4f9af9965c
clangd compilation command generating utility
2022-11-06 18:34:47 +02:00
dzaima
fdbd36250b
noinline writeNum, use loop instead of generated code
2022-11-06 03:17:31 +02:00
dzaima
fc059a77d0
noinline various things in main.c
2022-11-06 02:36:57 +02:00
dzaima
28d434a201
catch double-frees in debug mode
2022-11-06 02:11:12 +02:00
dzaima
f87a1155f5
store references instead of GC root functions to handle mutable roots
...
-0.21% binary size; mm_visit & mm_visitP got inlined in the gcFn-s, even though that's very pointless
2022-11-06 02:01:14 +02:00
dzaima
36111276c6
•math.Atan2
2022-11-05 20:36:54 +02:00
dzaima
25694db7ca
better non-Singeli comparison
2022-11-05 20:09:30 +02:00
dzaima
c9be8516c3
deduplicate generic sort work
2022-11-05 19:41:04 +02:00
dzaima
6e552fedf5
base case implementation for ⍋c8arr & ⍋c16arr
2022-11-05 19:00:59 +02:00
dzaima
ff0bfd34bb
squeeze Grade result
2022-11-05 18:48:54 +02:00
dzaima
471afb2a3f
handle 256|i8arr & similar
2022-11-03 17:28:21 +02:00
dzaima
3b56223618
allow 32768|intarr to squeeze to i16arr
2022-11-03 17:21:12 +02:00
dzaima
c1a77a24fb
fast (2⋆n)|ints
2022-11-03 15:35:41 +02:00
dzaima
96394c6f73
fix ⊔ making an invalid array on ("Af64"•internal.Variation⋈¯1)⊔⟨⟩
2022-11-03 01:26:38 +02:00
dzaima
cc406595c0
use direct comparison in ⊔
2022-11-03 00:32:44 +02:00
dzaima
70e7dcf38a
Merge remote-tracking branch 'mlochbaum/subset'
2022-11-02 23:19:03 +02:00
dzaima
4daabd708a
introduce calls.h, move vec_addN and vec_join to core header
...
and remove a bunch of apparently unnecessary mut.h imports
2022-11-02 23:17:52 +02:00
Marshall Lochbaum
600ee411f8
Use slash and comparison functions to filter •rand.Subset output faster
2022-11-01 20:25:13 -04:00
dzaima
bed2708537
move non-Singeli comparisons to function lookup
2022-10-27 19:27:15 +03:00
dzaima
8d6172126c
use void* instead of u8* for singeli function arguments
2022-10-25 17:27:08 +03:00
dzaima
5a7d702bc6
use incG more
2022-10-25 16:59:08 +03:00
Marshall Lochbaum
9862331696
Fix single-file build by defining GRADE_UD in selfsearch.c
2022-10-24 22:08:28 -04:00
Marshall Lochbaum
2844520109
Need to define GRADE_UD for radix.h from selfsearch.c without Singeli
2022-10-24 07:49:36 -04:00
Marshall Lochbaum
fa03cabc53
Index-of with small 𝕨 using (⊣×1+⊢)´ pattern
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
d1e40a01df
Use saved counts and possibly dense table initialization for 1-byte radix lookup
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
7cbd23c832
Skip radix moves if the top bytes are all the same
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
b9d5f10d4a
Unify radix sort and radix lookup prefix sums
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
2207d9f1bb
Combine monadic ∊ and ⊐ radix lookups with a macro
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
552e4f6751
Fix refcount handling for bool⊐𝕩
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
979c31fc3e
Table-based dyadic ⊒ for integers up to 2 bytes
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
5df198602c
Adjust search table sparse initialization threshold for type it stores
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
e318830365
Dyadic ⊒ implementation with a generic hash table
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
f5555021f2
Index-of with boolean 𝕨, using two comparisons
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
0f7bfa2575
Implement bit_find and fast self-search for booleans
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
96740566e9
Extend lookup code to boolean searched-for array
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
d9519eb6e1
Extend table-based membership to Index-of
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
0cb5e4ee10
Table-based 1- and 2-byte integer membership
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
447ce6163f
Introduce bit_has and use for ∧´, ∨´, and 𝕨∊bool
2022-10-23 22:08:08 -04:00
Marshall Lochbaum
236d8dedd6
Move search functions to search.c
2022-10-23 22:08:08 -04:00
dzaima
cc467ce8ca
cleanup
2022-10-23 13:14:36 +03:00
dzaima
66584ce149
fix 0‿¯1⊏129⥊100
2022-10-21 18:17:12 +03:00
dzaima
f2b6b5d446
system value redefining with •ReBQN
2022-10-19 23:12:28 +03:00
dzaima
4d9a63f68b
fix •ReBQN
2022-10-19 20:56:30 +03:00
dzaima
336049560b
don't include •FFI if FFI is disabled
2022-10-19 19:31:21 +03:00
dzaima
ec62856b67
•listsys
2022-10-19 19:19:11 +03:00
dzaima
accd7384bd
delay •file initialization
2022-10-19 19:16:13 +03:00
dzaima
a72778ed6f
extract system value info to object
2022-10-19 19:15:21 +03:00
dzaima
64ce7ec6fe
fix non-squeezed string •FFI arguments
2022-10-18 19:26:53 +03:00
Marshall Lochbaum
130653dbda
Allow character arguments to •bit operations
2022-10-17 09:39:38 -04:00
Marshall Lochbaum
89c1b39c6d
Don't allow 0 as a width for •bit
2022-10-17 09:39:38 -04:00
Marshall Lochbaum
698c902564
Implement scalar extension for •_bit
2022-10-17 09:39:38 -04:00
Marshall Lochbaum
022ef64f6b
Add NOUNROLLs to bitwise functions
2022-10-17 09:39:38 -04:00
Marshall Lochbaum
80f8ac9643
2-argument •bit operations
2022-10-17 09:39:38 -04:00
Marshall Lochbaum
8f5259e77d
Implement 1-argument •bit operations
2022-10-17 09:39:38 -04:00
dzaima
2a17d87572
calculate •FFI allocation layout ahead-of-time
2022-10-16 14:16:34 +03:00
dzaima
83af05d274
fix building on gcc≤10
2022-10-10 13:53:56 +03:00
dzaima
2eecc0feda
squeeze *u8/*u16/*u32 result
...
it has to sometimes be one size up to accommodate for the upper unsigned range, but often (?) it should fit fine in the signed range of its type
2022-10-08 19:59:03 +03:00
dzaima
ac041d37f4
fix WARN_SLOW build
2022-10-08 19:30:08 +03:00
dzaima
7e1c9b50cd
initial struct support
2022-10-08 19:08:20 +03:00
dzaima
702d4e979d
various utility changes
2022-10-08 19:03:41 +03:00
dzaima
529d2abae4
add warning about miscompilation for x86 on gcc
2022-10-08 14:41:44 +03:00
dzaima
7bda795365
fix gcc warnings about pointer casts in 32-bit builds
2022-10-07 12:57:59 +03:00
dzaima
abcb575a53
simplify bit boolean constant replicate start
2022-10-04 22:11:20 +03:00
Marshall Lochbaum
ce74e36a19
Fix lots of missing casts for function calls
2022-09-30 20:20:38 -04:00
dzaima
82ac059b75
disable clmul ≠` when pclmul not available
2022-09-30 20:06:52 +03:00
Marshall Lochbaum
cca64bba70
Move nescan.c into md1.c and constrep.c into slash.c
2022-09-30 11:40:37 -04:00
Marshall Lochbaum
47cdf02877
Build Singeli files with a filename prefix
2022-09-30 11:35:25 -04:00
Marshall Lochbaum
cad566d547
Not-equals scan with carry-less multiply
2022-09-29 20:39:46 -04:00
Marshall Lochbaum
acc200222d
Move constant Replicate Singeli code to its own file
2022-09-29 20:33:09 -04:00
Marshall Lochbaum
582afe33c9
Merge 3 to 7 replicate float with other types: shuffle instead of permute
2022-09-29 20:12:45 -04:00
Marshall Lochbaum
29886f355a
Combine small-replication shuffle vector tables across types
2022-09-29 19:58:14 -04:00
Marshall Lochbaum
e407286185
BMI2-based constant boolean Replicate for 𝕨<=52
2022-09-28 21:56:57 -04:00
Marshall Lochbaum
0c0d967dc3
Adjust Table thresholds for fast constant Replicate
2022-09-28 17:18:55 -04:00
Marshall Lochbaum
09aba9bc37
slash.singeli is only used with __BMI2__ for now
2022-09-28 17:18:42 -04:00
Marshall Lochbaum
4836f70e0d
Simplify rep_const_broadcast, removing unused kv==0 case
2022-09-28 14:14:39 -04:00
Marshall Lochbaum
d28a74b572
Move 4-shuffle data to a table
2022-09-28 13:35:08 -04:00
Marshall Lochbaum
9947de0146
Performance improvements when compiling slash.singeli
2022-09-27 22:00:59 -04:00
Marshall Lochbaum
db3e0a6324
Move all the algorithm decision logic into main rep_const and simplify
2022-09-27 22:00:59 -04:00
Marshall Lochbaum
c430922a7e
Use shared functions and shuffle array for sizes 3 to 7 in constant Replicate
2022-09-27 22:00:59 -04:00
Marshall Lochbaum
68aeb0f7cb
Add large-constant replicate method always using 4 shuffles
2022-09-27 22:00:59 -04:00
Marshall Lochbaum
7069a60453
Handle all constant Replicate in Singeli
2022-09-27 22:00:59 -04:00
Marshall Lochbaum
15c405e7bf
Factorize constant replicate lengths under 32
2022-09-27 22:00:59 -04:00
Marshall Lochbaum
7535d768dd
Singeli shuffle-based code for constant replicates <=7
2022-09-27 22:00:59 -04:00
Marshall Lochbaum
851f50635e
Some simplifications in base.singeli
2022-09-27 22:00:59 -04:00
dzaima
46501ac819
update build & packaging information
...
closes #45
2022-09-27 17:53:06 +03:00
dzaima
d3ed718a6d
branchless sparse Where block size bound was too big
2022-09-26 23:12:17 +03:00
dzaima
bd823839fe
fixes for /
2022-09-25 18:45:46 +03:00
dzaima
1fcd5295eb
slight attempt at improving ↕list
2022-09-25 14:55:49 +03:00
dzaima
5c87c291f9
refactor unroll/vectorization disabling macros
2022-09-25 14:49:57 +03:00
dzaima
2bb6750d7d
better bitarr fill
2022-09-24 19:31:46 +03:00
dzaima
608489aed1
fix gcc singeli build
2022-09-24 19:30:10 +03:00
dzaima
37a3979c86
clean up generic unit reshape case
2022-09-24 19:20:32 +03:00
Marshall Lochbaum
e8e10790f8
Fast array reshape
2022-09-23 17:40:30 -04:00
Marshall Lochbaum
218a8b069e
Rework reshape of singleton
2022-09-23 15:32:27 -04:00
Marshall Lochbaum
8e24da8e8e
Adjust Replicate thresholds
2022-09-23 08:22:41 -04:00
Marshall Lochbaum
8a13bf9476
Constant boolean replicate
2022-09-22 22:32:52 -04:00
Marshall Lochbaum
7f6cf06eea
Merge scan-based sparse Indices/Replicate code with macros
2022-09-22 22:09:56 -04:00
Marshall Lochbaum
d647978c8f
Type-independent Replicate by constant
2022-09-22 21:42:18 -04:00
Marshall Lochbaum
ec12dd4502
Switch to forward inclusive sums for all radix sorting, and use Singeli
...
Removes SWAR for 8-bit counts, since reverse sorting uses negatives
2022-09-22 16:44:05 -04:00
Marshall Lochbaum
8e1d8bb42c
Use Singeli max/min scan for Indices and Sort
2022-09-22 15:17:54 -04:00
Marshall Lochbaum
bc4f5167fb
Constant replicate using plus-scan
2022-09-21 19:40:04 -04:00
Marshall Lochbaum
6ed3c18389
Implement SIMD wrapping plus-scan for Replicate
2022-09-21 19:40:04 -04:00
dzaima
c42f0fd699
revert de4fca85
2022-09-22 01:18:41 +03:00
dzaima
de4fca859f
extract arr_shCopy
2022-09-22 00:51:04 +03:00
dzaima
06fe437520
bitarr reversing
2022-09-22 00:38:09 +03:00
dzaima
1e3089ceaa
fast ⍉𝕩 when 2=≠𝕩
2022-09-20 22:29:32 +03:00