dzaima
b16378bef6
add thing that was previously non-existent
2022-08-26 10:16:16 +03:00
dzaima
1927cb5756
implement ⍷𝕩 with (∊𝕩)/𝕩
2022-08-25 23:17:00 +03:00
dzaima
398a66ed94
fix c0 offset
2022-08-25 22:44:31 +03:00
dzaima
20a15097b4
remove non-existent thing
2022-08-25 22:33:38 +03:00
dzaima
d12a53fd08
•file.Created, •file.Accessed, •file.Modified
2022-08-25 22:29:03 +03:00
dzaima
905a9f78d4
{raw⇐1} •SH 𝕩
2022-08-25 22:27:35 +03:00
Marshall Lochbaum
e8e12e2d8f
Another allocation improvement
2022-08-25 14:09:10 -04:00
Marshall Lochbaum
34950339c2
Improve radix+table allocation layout
2022-08-25 14:00:28 -04:00
dzaima
600bb59c77
more diagram
2022-08-25 20:27:30 +03:00
Marshall Lochbaum
c590d73030
Missed TFREE
2022-08-25 11:25:59 -04:00
Marshall Lochbaum
b2992a11b8
1- and 2-byte methods for monadic ⊐
2022-08-25 11:10:11 -04:00
Marshall Lochbaum
98cd80c13d
Port all the integer monadic ∊ methods to ⊒
2022-08-25 10:39:38 -04:00
Marshall Lochbaum
f54942f175
Make first initialization in radix 4-byte lookup sparse too
2022-08-24 21:05:39 -04:00
Marshall Lochbaum
ad8570be11
Wait, sparse initialization with a pass through the argument is faster than radix stuff
2022-08-24 20:26:02 -04:00
Marshall Lochbaum
5cd2cab26e
Small-number integer ∊ with all-pairs comparison and 2-byte radix+table
2022-08-24 18:44:00 -04:00
Marshall Lochbaum
7ffa0dac4a
Switch from using IA to *SH for length
2022-08-24 11:08:27 -04:00
Marshall Lochbaum
efe2e86271
Unify search function preambles, so all have empty and rank>1 cases
2022-08-24 11:03:05 -04:00
Marshall Lochbaum
9d402c1bdd
Move self-search functions to selfsearch.c
2022-08-24 10:47:04 -04:00
Marshall Lochbaum
eff9df5a26
Table lookups for self-search functions
2022-08-24 10:28:19 -04:00
Marshall Lochbaum
633e790099
Radix-assisted lookup implementation for ∊
2022-08-24 10:27:55 -04:00
dzaima
5be18bb180
fix ∾⟨"ab",1⟩
2022-08-23 17:16:07 +03:00
dzaima
355d7978ed
include •file.Parent in system value docs
2022-08-23 17:11:15 +03:00
dzaima
eb9550aa29
•file.Parent
2022-08-22 15:30:37 +03:00
dzaima
aa95b6add4
actually use TY(x) / PTY(x) more
2022-08-21 16:11:40 +03:00
dzaima
5112796cfd
move m_unit out of header file
2022-08-21 15:48:04 +03:00
dzaima
c69a3373b9
better m_atomUnit
2022-08-21 08:50:33 +03:00
dzaima
7393c4b663
fully native ⊑
2022-08-21 07:58:41 +03:00
dzaima
505f6869fc
rt_join not needed anymore
2022-08-21 07:53:41 +03:00
dzaima
582ff8909b
@ •FFI 𝕩
2022-08-21 07:49:09 +03:00
dzaima
4ed814e395
cleanup of new field reading macros
2022-08-20 09:04:22 +03:00
dzaima
1694bfb7d2
s?p?rnk(x) → S?P?RNK(x)
2022-08-20 08:36:59 +03:00
dzaima
e10f13d6ea
x->type → TY(x) / PTY(x)
2022-08-20 08:30:12 +03:00
dzaima
d2a4efe4b5
x->sh → SH(x) / PSH(x)
2022-08-20 08:30:07 +03:00
dzaima
e6b4f85662
x->ia → IA(x) / PIA(x)
2022-08-20 08:30:03 +03:00
dzaima
558c14cccd
fix fill of empty 𝕨⊏𝕩
2022-08-20 08:23:58 +03:00
dzaima
719d37cd63
reorder eachm_fn and eachd_fn args
2022-08-18 11:18:34 +03:00
dzaima
b1300e6e76
yet another string function rename
2022-08-18 09:07:32 +03:00
dzaima
e49fcd3449
typed n •rand.Range 2⋆31
2022-08-17 19:41:32 +03:00
dzaima
81bdec4737
128-bit multiplication & unrolling doesn't go well in clang
2022-08-17 19:10:01 +03:00
dzaima
c5b65b9246
typed •rand.Range
2022-08-17 18:53:41 +03:00
Marshall Lochbaum
56a1d9ec4c
Singeli integer ⌊ and ⌈
2022-08-15 16:01:17 -04:00
dzaima
1fcc3b0030
saner bytecode metadata storage
2022-08-15 12:00:50 +03:00
dzaima
4b272148f5
make allocL after splitTo call skip empty bucket checking
2022-08-14 11:19:11 +03:00
dzaima
7e4096e572
nicer fold loops
2022-08-14 02:34:26 +03:00
dzaima
ff0ea7a0ad
fix empty program check in REPL
2022-08-14 02:33:48 +03:00
Marshall Lochbaum
b579440f5e
Change × and ∧ integer reductions to reverse order
2022-08-13 19:02:22 -04:00
Marshall Lochbaum
82d2eb5b1a
Fix monadic ⌊` initial element
2022-08-13 19:00:59 -04:00
Marshall Lochbaum
195336b6df
Implement F˝x as <F´x for rank-1 x and arithmetic F
2022-08-13 16:04:20 -04:00
Marshall Lochbaum
22925eee4b
Fast ⌊, matching ⌈
2022-08-13 15:03:23 -04:00
Marshall Lochbaum
27943b85f4
Fast boolean =´ and ≠´
2022-08-13 14:39:53 -04:00
Marshall Lochbaum
37312f7a03
Lift out bitarr_ptr calls
2022-08-13 14:28:16 -04:00
Marshall Lochbaum
f406b05303
Fill boolean scan gaps: ∨ and dyadic int≠bool
2022-08-13 14:05:48 -04:00
Marshall Lochbaum
6a00b6d7d4
Fast boolean -´
2022-08-13 13:45:56 -04:00
Marshall Lochbaum
4950506c72
Separate boolean fold and scan code from other special cases to handle aliases better
2022-08-13 13:34:01 -04:00
dzaima
3ab92ecd66
explicit pointer → u64 conversion
...
work towards gcc 32-bit x86 builds. (gcc sign-extended pointers without this changeset)
gcc miscompiles `union B` usage though (https://godbolt.org/z/hEWKdc5PK ), which I can do nothing about, so clang is still the only option for 32-bit x86 builds
2022-08-10 10:20:48 +03:00
dzaima
a9b3b3de97
use TALLOC instead of m_shArr
2022-08-07 01:19:09 +03:00
dzaima
36e78da56f
Merge pull request #30 from mlochbaum/join
...
Native Join
2022-08-07 01:13:30 +03:00
Marshall Lochbaum
78f14be79d
Finish multidimensional join
2022-08-06 17:30:30 -04:00
Marshall Lochbaum
1d891388b5
High-rank join shape checking
2022-08-05 22:01:42 -04:00
Marshall Lochbaum
c1d5ca5c29
Switch from min and max to max and difference in Join shape checking
2022-08-05 21:50:39 -04:00
dzaima
bac1eaf9e3
squeeze result of ¨
2022-08-05 03:19:12 +03:00
dzaima
fd1ac7487c
wyhash microoptimization
2022-08-05 03:08:39 +03:00
dzaima
98e3021efb
fix bit boolean array hash only using the first 1/8 of the array
2022-08-04 02:55:19 +03:00
Marshall Lochbaum
bf6a8c5699
Handle any rank empty, and rank 0, in Join
2022-08-01 21:21:10 -04:00
Marshall Lochbaum
d9d421db04
Handle atoms in Join of list
2022-08-01 17:31:07 -04:00
Marshall Lochbaum
b8e6996e7e
Shape logic for Join of any list
2022-08-01 17:27:22 -04:00
dzaima
a6deb4b691
native unit∊vector
2022-07-26 04:30:33 +03:00
dzaima
9480ee9da2
native ⌾(F G), ⌾(F∘G), ⌾<, <⁼
2022-07-26 03:38:30 +03:00
dzaima
a5e206d009
always print sample sum in the profiler
2022-07-26 03:14:05 +03:00
dzaima
58f8772bd3
use singeli copy functions for mut copyG
2022-07-26 00:18:00 +03:00
dzaima
9acb9e6bf4
fix ⎉ low-rank fill computation
2022-07-26 00:04:13 +03:00
dzaima
d959482d44
move generic array copy to its own function
2022-07-25 05:21:14 +03:00
dzaima
6b90615896
more correct stack height going negative check
2022-07-24 22:18:22 +03:00
dzaima
c1b66c5982
don't bother iterating through generic array items in cpy.*Arr on free
2022-07-24 00:05:42 +03:00
dzaima
32d8c09e2b
limit row-wise F⌜ to 7<≠⥊𝕩
2022-07-23 02:18:42 +03:00
dzaima
599c56051d
convert ⊐ result to smaller type based on ≠𝕨
2022-07-22 05:50:34 +03:00
dzaima
bd5ab29387
native vec⊐highRankArr
2022-07-22 05:39:26 +03:00
dzaima
8ca94cc623
make withFill properly know that a bit boolean array is a number array
2022-07-22 05:03:57 +03:00
dzaima
046284b96f
random cleanup
2022-07-22 03:59:44 +03:00
dzaima
29fe3206cd
fix path_rel with empty base path
2022-07-15 23:25:49 +03:00
dzaima
b43153495a
a bit more valgrind debugging stuff
2022-07-10 06:07:28 +03:00
dzaima
5de154fb54
option to flush perf map after each write
...
e.g. for use while live debugging
2022-07-10 04:23:17 +03:00
dzaima
0b155e4416
simpler vg_pext_u64 tail handling
...
that makes it not get SIMD-mangled when optimizations are enabled, thus allowing valgrind to preserve vbits
2022-07-10 04:02:49 +03:00
dzaima
aabaac977b
more strict freed memory handling for valgrind
2022-07-10 02:40:43 +03:00
dzaima
a17d8004be
make valgrind run under -DMM=0
...
even if it's not very helpful as CBQN requires being able to read garbage past allocation ends
2022-07-10 02:07:18 +03:00
dzaima
eb5b32319f
make ∨`𝕩 run under valgrind
2022-07-10 02:01:59 +03:00
dzaima
041a87ff98
make valgrind accept /𝕩 and 𝕨/𝕩 impls
2022-07-10 01:51:15 +03:00
dzaima
0684fe5fcb
some fixes for ubsan
2022-07-10 01:43:21 +03:00
dzaima
9a00da6369
deduplicate ia writing
2022-07-09 02:18:22 +03:00
dzaima
3c2a7dbefa
high-rank in-place w∾x
2022-07-09 02:00:22 +03:00
dzaima
1c645e11d8
fix •FromUTF8 name
2022-07-08 19:34:30 +03:00
dzaima
1a9d2d0118
apparently apple clang 11.0.3 infinite-loops on mmap_nvm too
2022-07-03 02:18:14 +03:00
dzaima
837372295d
small simplification
2022-07-02 03:52:34 +03:00
dzaima
010db0b1fc
mark direct access result const
2022-07-01 21:30:47 +03:00
dzaima
a6a1448382
bqn_copy & bqnffi.h comment cleanup
2022-06-30 17:44:01 +03:00
dzaima
f27ba6d569
even more microoptimization
2022-06-30 16:25:29 +03:00
dzaima
c794fb0ef9
more microoptimization
2022-06-30 15:40:54 +03:00
dzaima
74eaa3853f
optimize squeeze result choosing
2022-06-30 03:51:00 +03:00
dzaima
685c3ecbc6
fix fill leak on @⌾(0⊸⊑) 2⥊<"foo"
2022-06-30 03:37:52 +03:00
dzaima
0313b0a0a0
fix •internal.Variation
2022-06-30 03:05:30 +03:00
dzaima
859be5efb2
singeli chr_squeeze
2022-06-30 01:47:57 +03:00
dzaima
75bfa5d905
singeli num_squeeze
2022-06-30 01:47:50 +03:00
dzaima
e31c574fd8
separate squeeze to its own file
2022-06-29 18:36:05 +03:00
dzaima
86cf6f5c2d
faster value⊸F & F⟜value
2022-06-28 15:58:13 +03:00
dzaima
8882fb959a
move scope_dec cycle handling to a noinline function
2022-06-27 19:50:30 +03:00
dzaima
d18ebc3d07
fix withFill previous fill check
2022-06-27 03:22:36 +03:00
dzaima
fadde40f78
more incG
2022-06-26 23:48:30 +03:00
dzaima
59f0aaa732
defer explain loading to when it's invoked
2022-06-26 22:14:30 +03:00
dzaima
997ced9d2e
Merge pull request #25 from Detegr/explain
...
support calling explain for an expression
2022-06-26 21:56:32 +03:00
dzaima
266c742b98
fix refcount
2022-06-26 21:54:41 +03:00
dzaima
a6081600ae
namespace reading functions for FFI
2022-06-25 17:32:41 +03:00
dzaima
efb4a06a25
x⥊0 & x⥊1 → bitarr
2022-06-25 16:17:34 +03:00
dzaima
43b8b5e2a0
)escaped
2022-06-19 21:05:05 +03:00
Antti Keränen
0314f55a78
support calling explain for an expression
2022-06-18 22:09:36 +03:00
dzaima
0232cda412
support ARMM 0
2022-06-16 21:05:06 +03:00
dzaima
1fd88c1749
clean up ascii/utf8 functions
2022-06-15 15:31:57 +03:00
dzaima
e3da1da8f6
properly error on alias list being assigned to non-namespace
2022-06-14 03:36:40 +03:00
dzaima
6307356bab
rearrange common array case to top
2022-06-14 02:40:50 +03:00
dzaima
f3fffd2b8d
fix [a,b]+↩1
2022-06-14 02:33:41 +03:00
dzaima
3b82419202
fix error messages
2022-06-14 02:28:13 +03:00
dzaima
f9d251ec08
ARRO/ARRM→LSTO/LSTM
2022-06-14 02:12:37 +03:00
dzaima
5e0bda6a28
ARMO & ARMM
2022-06-14 02:09:41 +03:00
dzaima
8a84726e6e
fix wasm build
2022-06-12 22:33:59 +03:00
dzaima
baa4641a44
don't needlessly include sys/mman.h
2022-06-12 22:29:35 +03:00
dzaima
5a32a00f46
more checks of NO_MMAP
2022-06-12 22:12:08 +03:00
dzaima
ab69f86cb5
store fill in FillSlice
2022-06-11 17:36:51 +03:00
dzaima
e137d8536d
native ↑𝕩 & ↓𝕩
2022-06-10 00:14:42 +03:00
dzaima
025043b84e
make arr_shVec return its argument
2022-06-10 00:08:13 +03:00
dzaima
638891bde1
missing double-space
2022-06-09 18:15:30 +03:00
dzaima
a298bc3018
more function name cleanup
2022-06-09 18:12:15 +03:00
dzaima
5636c1e2ca
clean up some function names
2022-06-09 04:10:46 +03:00
dzaima
2359e54661
a bit saner heap format
2022-06-09 04:10:23 +03:00
dzaima
82fc2a2bda
remove rt_rank
2022-06-09 04:09:07 +03:00
dzaima
021fd5d8c3
native empty ˘ & ⎉ cleanup
2022-06-09 04:00:04 +03:00
Marshall Lochbaum
b862d7c075
Native empty-frame Rank modifier (⎉)
2022-06-08 20:16:30 -04:00
Marshall Lochbaum
5c59da7376
Handle fills in monadic ⎉ by passing to the runtime
2022-06-08 18:02:29 -04:00
Marshall Lochbaum
f686298664
Native empty dyadic Cells (˘)
2022-06-08 18:01:27 -04:00
dzaima
b865eb84ba
make known type mut functions take data pointer instead of Mut*
2022-06-08 03:48:31 +03:00
dzaima
f74f355360
explicit switches in mut.h & update comments
2022-06-08 01:00:02 +03:00
dzaima
b48b184f14
reduce binary size by 1% by a less horrifically unrolled m_scope
2022-06-07 19:19:59 +03:00
dzaima
6b6f2892b7
free error message object
2022-06-07 18:47:13 +03:00
dzaima
14b7942556
)clearImportCache
2022-06-05 17:17:20 +03:00
dzaima
0674c6bafb
ffi: more const
2022-06-05 13:35:22 +03:00
Antti Keränen
8923f6a3b8
ffi: make bqn_evalCStr use a constant string
2022-06-05 10:22:13 +03:00
dzaima
3f7261c812
fix error when UTF-8 •SH output is split between reads
2022-06-04 17:26:00 +03:00
dzaima
cc8d1cb4d7
fix m_vec1 under OOM
2022-06-04 02:13:01 +03:00
dzaima
4a2d460998
fix tbl_c2 under OOM
2022-06-04 02:12:50 +03:00
dzaima
f8447d9b5f
properly restore compilation globals in case compiler errors
2022-06-04 01:24:52 +03:00
dzaima
8ad7b6149f
OOM fuzz testing base
2022-06-04 01:19:17 +03:00
dzaima
1e2b734f5d
fix incorrect refcounting of 7dc4f1
2022-06-04 01:13:03 +03:00
dzaima
b32b818df7
fix m_shArr erroring within arr_shAlloc
2022-06-04 00:35:22 +03:00
dzaima
7dc4f1c36c
reorder compile to do allocations after initializing Comp
2022-06-04 00:04:46 +03:00
dzaima
9248d1e876
fix ⊔ leaving item shape uninitialized
2022-06-03 23:40:55 +03:00
dzaima
e92dce58fb
shared library build
2022-06-03 22:04:48 +03:00
dzaima
9d97c20c38
bqn_init
2022-06-03 21:17:25 +03:00
dzaima
d4da8a1127
update stack pointer before allocations
2022-06-03 20:54:23 +03:00
dzaima
d3555b4af6
fix •Import when execution errors
2022-06-03 20:35:38 +03:00
dzaima
2dbbb3415e
fix m_nsDesc failing to allocate leaving body->nsDesc uninitialized
2022-06-03 19:50:26 +03:00
dzaima
6aada8338e
proper state restore after failed allocation in codegen
2022-06-03 17:17:30 +03:00
dzaima
86fc9041fa
print fallback stacktrace code to stderr
2022-06-03 16:24:43 +03:00
dzaima
73ff6fe722
add interrupt check to allocation slow slow path
2022-06-03 16:04:48 +03:00
dzaima
572bc04459
move interrupt check to its own header
2022-06-03 16:02:02 +03:00
dzaima
7a21f9ef73
experimental REPL interrupting
2022-06-03 15:38:32 +03:00
dzaima
47e4e68eee
fix )profile@123
2022-06-03 14:47:43 +03:00
dzaima
f9a8eb0ce3
static noinline apparently results in argument slots being optimized out
...
but that means that the arguments between the two won't align, resulting in unnecessary 'mov's
2022-06-03 02:51:09 +03:00
dzaima
2697e749e1
better ⌾ fallback
2022-06-02 03:30:39 +03:00
dzaima
f1faff2866
fix FFI=1 build
2022-05-30 19:55:30 +03:00
dzaima
cb1338951c
more shcpy
2022-05-30 17:53:54 +03:00
dzaima
3455bed3ee
remove pointless check in ≠𝕩
2022-05-30 15:12:48 +03:00
dzaima
3c314e266a
correct format string
2022-05-30 02:13:50 +03:00
dzaima
79bd6fc689
use shProd more
2022-05-30 02:07:25 +03:00
dzaima
cc44b3e57b
shProd
2022-05-30 01:54:47 +03:00
Marshall Lochbaum
68914c1a39
Native dyadic Rank modifier implementation, except empty frames
2022-05-29 18:14:04 -04:00
Marshall Lochbaum
3947463c34
Native dyadic Rank modifier implementation when one or both arguments are full rank
2022-05-29 18:14:04 -04:00
Marshall Lochbaum
df783d15a5
Align toKCells with rank_c1 changes
2022-05-29 18:14:04 -04:00
Marshall Lochbaum
2c0de9ee02
Check rank vector completely before starting computations in ⎉
2022-05-29 18:14:04 -04:00
dzaima
b8701d3502
more descriptive paths for self-hosted files
2022-05-29 22:20:50 +03:00
dzaima
960ae96591
show source-less & path-less entries in the profiler
2022-05-29 22:16:42 +03:00
dzaima
0380ee2a40
fix wasm builds
2022-05-29 22:05:04 +03:00
dzaima
e2fda60745
profiler
2022-05-29 22:02:50 +03:00
dzaima
5b2d221d0b
bqn_type
2022-05-29 18:46:59 +03:00
dzaima
6033c2e90e
flush pipes in g_pst
2022-05-29 16:12:14 +03:00
dzaima
a108ef2ce7
use eqShPart in arithd.c
2022-05-29 14:44:44 +03:00
dzaima
60a68c3c25
manual shcpy loop
2022-05-29 14:20:11 +03:00
dzaima
54645df2a9
use shcpy for copying shapes
2022-05-29 14:08:30 +03:00
dzaima
3fa0463241
manual eqShPart
...
mainly to not suffer the cost of function invocation, as the common case is len==1
2022-05-29 14:03:15 +03:00
dzaima
3dd1bffe2f
don't unroll arr_csz
2022-05-29 13:57:03 +03:00
dzaima
bf618b9b64
native 𝔽⌾(n⊸↑) & 𝔽⌾(n⊸↓)
2022-05-29 13:38:04 +03:00
dzaima
04c2ce7ade
tests for bqnffi.h
2022-05-28 17:35:30 +03:00
dzaima
093958f92a
Merge pull request #21 from dzaima/ffi
...
FFI
2022-05-28 01:29:21 +03:00
dzaima
622a5468d8
remove old ffi.h
2022-05-28 00:15:33 +03:00
dzaima
12631cb142
ffi tests
2022-05-27 23:57:56 +03:00
dzaima
662b23d808
add newline after fputs
2022-05-23 16:45:50 +03:00
dzaima
2775a92535
ffi: support **:type
2022-05-23 16:42:02 +03:00
dzaima
ec76a3cd70
ffi: *:t, scalar:t support for result
2022-05-22 16:13:13 +03:00
dzaima
e09cefd049
u64/i64 arguments, check whether integer arguments are exact
2022-05-22 14:42:16 +03:00
dzaima
af194b55ae
make •FFI read relative to file
2022-05-22 04:42:59 +03:00
dzaima
c7e0b59e88
print more things to stderr
2022-05-22 04:40:13 +03:00
dzaima
e24f3c9df5
allow u64 result when lossless
2022-05-22 04:26:02 +03:00
dzaima
d0c63e4da4
fix FFI &f32
2022-05-22 04:02:55 +03:00