Commit Graph

2692 Commits

Author SHA1 Message Date
Marshall Lochbaum
4b0f105a7f Implement short-row num⊏˘bool (including ⊣˝˘ ⊢˝˘) with fold code 2024-06-18 14:05:16 -04:00
Marshall Lochbaum
cb1b72fbb2 Extend boolean F˝˘ special code to any ranks 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
1e6c7057e8 Extend boolean F`˘ special code to any frame and cell rank 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
5e3cc6de81 Refactoring, simplification, comments 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
a8b036ad08 Implement ≠˝˘ and =˝˘ like ∧∨ on width<64 boolean 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
f0f130c42e Use a lookup table for evenly-spaced masks, getting division results from those 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
e6f1e04de2 Fast generic and pext-based ∧˝˘ and ∨˝˘ on width<64 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
40bf3bfd1c AVX2-based boolean short-row scans 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
6d27dd391b Clean up scan_rows_bit logic and implement -˘ as (2×⊣˘)-+`˘ 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
efde979fe9 Fast boolean ⊣`˘ 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
3b61568fda Implement boolean list scans ->≤≥ using more common scans 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
fde29684d7 Tweak for faster +`˘ on very short boolean rows 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
8e47221c9f Implement monadic boolean = with ≠ 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
8331a05547 Boolean ≠`˘ implementation 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
bd64e8bcd2 Faster boolean +`˘ for short rows based on flattened prefix sum 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
5591d0f4f0 Boolean row-wise scans ∧˘ and ∨˘ 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
7b4468c394 Move logical fold-rows functions to Singeli 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
2590222988 Generic-architecture implementations of fold.singeli 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
d29b4df50c Boolean and, or, eq folds for row length >64 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
c76e175719 Faster boolean +˝˘, and ≠˝˘ on row length >64 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
ab4e5543a0 Implement matrix ⊣˝˘ and ⊢˝˘ with select_cells 2024-06-18 07:46:31 -04:00
dzaima
4ab84c05f6 handle header […]←rank0 properly 2024-06-16 14:00:40 +03:00
dzaima
563c30c596 allSame Singeli helper, make NEON homMask accept signed types 2024-06-16 14:00:40 +03:00
dzaima
d85f628d72 accept tuple argument in homMask 2024-06-14 04:28:53 +03:00
dzaima
73123f5bde even faster »⎉1 & «⎉1 for narrow bitarr 𝕩 2024-06-06 23:36:45 +03:00
dzaima
cc3c6985ad faster unit»⎉1𝕩 / unit«⎉1𝕩 2024-06-05 13:53:09 +03:00
dzaima
17339eceae proper description of reshape_one 2024-06-05 13:52:25 +03:00
dzaima
b32f22ee89 fix MM=0 build 2024-06-05 03:32:41 +03:00
dzaima
ae3128c180 relax CHECK_IA in takedrop_highrank
future overflow in ria*elWidth when allocating shouldn't be a worry as all such calculations should be done in u64, and CHECK_IA(x, 1) guarantees that x is (much) less than 2^60 in both usz configurations
2024-06-05 02:30:00 +03:00
dzaima
e04819a28d make TYARR_SZ always operate in u64
shouldn't change anything on 64-bit platforms as the sizeof in fsizeof should already give size_t
2024-06-05 02:23:15 +03:00
vylsaz
2a57022ccb no ENT_SP_GC if profiler is not supported 2024-06-04 06:04:08 +00:00
dzaima
8044c560a4 faster atom∾atom 2024-06-01 16:22:34 +03:00
dzaima
44af7d4980 separate GC time in )profile 2024-06-01 00:33:14 +03:00
dzaima
d161f93a38 more Singeli refactoring
makes some conditions more strict
removes wrong el_m & el_s definitions
2024-05-26 04:25:54 +03:00
Marshall Lochbaum
56944b8985 Minor Singeli simplifications 2024-05-25 18:31:47 -04:00
Marshall Lochbaum
90863851b7 Use new Singeli type destructuring (no change to generated C) 2024-05-25 18:31:47 -04:00
dzaima
05690c001a suppress false-positive gcc warnings 2024-05-24 04:01:05 +03:00
dzaima
5862c28c08 avoid conversion of i64 to ux for pointer offset 2024-05-22 20:41:40 +03:00
dzaima
f14583f995 faster ⍉ on large‿small⥊x 2024-05-22 20:07:48 +03:00
dzaima
33f784106d actually properly mention reference counting in src/README.md 2024-05-20 01:39:26 +03:00
dzaima
44c8da7dc7 add checks for l>0 on equal() impls
some Singeli `fn equal` paths already assumed such, this just makes the requirement properly checked for, benefited from, and documented
2024-05-20 01:03:57 +03:00
dzaima
52fb05fcd4 unify ⌾(a⊸⊏) typed array paths, fix csz==0 2024-05-20 01:03:57 +03:00
Andrea Piseri
60a28a40ca Clean up collision checking, use vector copy functions 2024-05-19 16:59:55 +02:00
dzaima
9f6151d92d expand ⌾(a⊸⊏) tests, stylistic changes/cleanup 2024-05-19 02:14:08 +03:00
Andrea Piseri
99a23a97d8 Fix typo in the error message 2024-05-19 00:10:28 +02:00
Andrea Piseri
3738d0d65d Formatting 2024-05-18 23:58:11 +02:00
Andrea Piseri
93188a9f90 Use COPY_TO and EQFN in the typed array code path 2024-05-18 23:56:13 +02:00
Andrea Piseri
06808414da Separate code path for cxsz=1, fix out of bounds read for RNK(x)==0 2024-05-18 21:45:18 +02:00
Andrea Piseri
7f28308e44 native path in select_ucw for high rank 𝕩
`𝔽⌾(a⊸⊏)𝕩` now does not need to go through the self-hosted runtime if
`1<=𝕩`. Instead the `select_replace` helper function is parametrized
over the length of `𝕩` (`xl`) and item amount of the cell of `𝕩` (`xcia`).

- The `EQ` macro is modified to not immediately mark the cell as
  populated, so that multiple replacements can be done on the cell
  on the first assignment to it.

- The `DONE_CW` macro is invoked to mark the current cell as populated
  when every element in it has been assigned.

- A loop over the cell contents is introduced to copy the elements in
  `𝕩`. This should be fine as it is an easily predictable jump,
  but a performance regression is possible and a separate code path
  could be introduced in the future.

The change introduces more extensive checking on the shape of `𝔽`'s
result, as for high rank `𝕩` the requirement should be `(≢𝔽a⊏𝕩)≡(≢a)∾1↓≢𝕩`.

The old behaviour of `select_replace` is recovered by passing `xl=xia`
and `xcia=1` in the implementation of `pick_ucw`.
2024-05-18 12:12:17 +02:00
dzaima
4f898f38d2 various Singeli usage improvements and fixes 2024-05-11 05:57:30 +03:00
Marshall Lochbaum
b2e3a5ff74 Move from & to if/and for Singeli conditions 2024-05-10 10:26:28 -04:00
Marshall Lochbaum
4d6612cb16 Replace tuplen{} and tupsel{} with length{} and select{} 2024-05-10 09:49:58 -04:00
Marshall Lochbaum
12d7629f9c Replace top-level if with if_inline 2024-05-10 08:36:24 -04:00
Marshall Lochbaum
526d9bbebe Wrap non-destructuring type parameters in parens 2024-05-10 08:30:08 -04:00
dzaima
4a40739398 use printf & fprintf instead of putchar & co 2024-05-05 01:07:47 +03:00
dzaima
b657778205 fix •file.MapBytes in debug builds 2024-04-20 23:25:47 +03:00
dzaima
5600bb189a fix ⟨1,2⋆62⟩/2⥊<⋈0 2024-04-20 21:24:51 +03:00
dzaima
de529e483b make non-Singeli getRange_f64 check first element for integerness 2024-04-20 21:21:47 +03:00
dzaima
a6a088868c fix ⟨⟩⍷⟨⟩ 2024-04-04 03:54:55 +03:00
dzaima
3870189f85 fix 3‿3⍒"a" & "aa"⍒3‿3 2024-04-04 03:54:55 +03:00
dzaima
a75522c738 fix list⌽𝕩 2024-04-04 02:52:08 +03:00
dzaima
54cec2fdf5 split up CATCH_ERRORS into functional and semantic options
allows running a non-heapverify build that functions exactly as a heapverify one, while allowing ⎊ to function
2024-04-04 02:52:08 +03:00
dzaima
fd317ddce3 move heapverify CATCH_ERRORS change to build.bqn 2024-04-04 02:35:02 +03:00
dzaima
74f3b5a012 fix (17⥊'⍉') ∊ 4⥊<"a" 2024-04-03 22:14:04 +03:00
dzaima
61e068086e fix (2⋆25)/(2⋆10)⥊10 2024-04-03 22:14:04 +03:00
dzaima
863da7083f OOM on too large apd_sh_init result 2024-04-03 18:27:25 +03:00
dzaima
74d937a4fd fix +⌜´↕0 leaking a reference 2024-04-03 17:13:06 +03:00
dzaima
d4f290a897 error on nonInteger⌽⟨⟩ 2024-04-03 17:09:27 +03:00
dzaima
c1157f89a6 fix GroupLen properly 2024-04-03 05:59:35 +03:00
dzaima
55f7baf894 add debug check for correct array size calculation 2024-04-03 05:59:35 +03:00
dzaima
b8730798c1 explicitly handle empty cells in compress 2024-04-03 05:59:35 +03:00
dzaima
5ab49ab146 slash.c cleanup 2024-04-03 05:59:35 +03:00
dzaima
9973ab1a2e make overallocation argument u64 2024-04-03 05:59:35 +03:00
dzaima
d77018f269 fix ⟨⟩⍷1‿0⥊0 2024-04-03 05:59:35 +03:00
dzaima
af0a40c732 fix ⍟ with empty typed repeat counts 2024-04-03 05:59:35 +03:00
dzaima
647a0b97e7 error on nested GC 2024-04-03 05:03:37 +03:00
dzaima
d21a77119f more verification of •bit._cast types, remove 'n' 2024-03-30 17:55:43 +02:00
dzaima
ac069134c3 fix ⟨1.5⟩ ⊏ "ab"‿"cd" 2024-03-25 16:18:01 +02:00
dzaima
a94903cb12 fix 𝕨⊏unit 2024-03-25 16:18:01 +02:00
dzaima
96cf03311a fix isPervasiveDyExt on 5˜ 2024-03-25 16:18:01 +02:00
dzaima
10a58878d7 fix GroupLen on array elements outside i64 range 2024-03-25 16:18:01 +02:00
dzaima
79ea9ec02c ensure desired updating order between envCurr and its pointed-to data 2024-03-25 16:18:01 +02:00
dzaima
b089337ee8 FFI: fix "&{*}" 2024-03-07 14:45:10 +02:00
dzaima
0c3d83c50b fix ⊑˘ with bitarr 𝕩 2024-02-27 14:27:42 +02:00
dzaima
606e07ff14 fix vqtbl1 NEON argument type 2024-02-27 01:42:56 +02:00
dzaima
694920c273 minor code cleanup 2024-02-27 00:40:16 +02:00
dzaima
fef984b6fd src/README.md cleanup and updating 2024-02-27 00:38:05 +02:00
dzaima
875f9185bf use ux a tiny bit more, add a PLAINLOOP 2024-02-27 00:37:47 +02:00
dzaima
c2ca871ce5 FFI: fix "*:i8" built object storage 2024-02-27 00:35:36 +02:00
dzaima
5a13b49ee6 FFI: properly error on read of *a:b 2024-02-16 04:16:42 +02:00
dzaima
8d427100c2 FFI: fix calculated memory size of atom:b 2024-02-16 03:36:49 +02:00
dzaima
f221f90eda error on non-number arguments for f32/f64 FFI writes 2024-02-15 17:55:53 +02:00
dzaima
09cb2aa5f8 gcc 14 should have "#pragma GCC novector" 2024-02-13 22:41:14 +02:00
dzaima
1318026c4e a bunch of vfor 2024-02-13 22:34:16 +02:00
dzaima
3fc3338256 extract independent load from loop 2024-02-13 22:33:54 +02:00
dzaima
f981f6963b use ux for loop index in reverse
makes gcc autovectorizer happier
2024-02-13 22:31:22 +02:00
dzaima
5abb09ca74 remove barely-useful elType==el_i32 path of reshape
perhaps could be replaced with an <=el_i32 path that still uses GetU but just skips numberness/integerness checks and ∘/⌊/⌽/↑ logic
2024-02-13 22:30:11 +02:00
dzaima
26a4bc9ac3 add guaranteedness of decrement on bqn_read* 2024-02-13 22:26:43 +02:00
dzaima
5c98930126 this was meant to be included in the previous commits 2024-02-13 22:24:35 +02:00
dzaima
b7afe7e597 fix nvm_x86_64.c's MMAP define 2024-02-13 22:19:17 +02:00
dzaima
210f6345c0 ensure desired allocation padding on NO_MMAP 2024-02-13 22:13:47 +02:00
dzaima
9577fa193c make STORE_JIT_MAP build 2024-02-13 22:13:47 +02:00
dzaima
73a2b06703 more PLAINLOOP 2024-02-08 19:26:35 +02:00
dzaima
9cb0ab2fbb Use getRange_fns for repeat_bounds 2024-02-08 19:25:30 +02:00
dzaima
52a583502d get rid of 16-bit limits in FFI sizes 2024-02-06 22:33:54 +02:00
dzaima
b1e2e17edd even more FFI cleanup 2024-02-06 22:31:57 +02:00
dzaima
2b30010c25 disallow writing array to pointer within pointer object
and while at it move a global to an argument
2024-02-06 20:29:24 +02:00
dzaima
74f7e4701d disallow '&' outside of top-level type 2024-02-06 20:03:46 +02:00
dzaima
cb550bf885 more FFI cleanup 2024-02-06 15:17:49 +02:00
dzaima
b7f845300c some FFI error message changes 2024-02-06 15:16:29 +02:00
dzaima
5a8ad03ff5 buildObj → readUpdatedObj, inline printFFIType 2024-02-06 15:16:29 +02:00
dzaima
677b341ad4 merge readRe & makeRe, reduce its result size to the proper size
previously the 1<<reW was used as the number of bytes to require but it's actually number of bits
2024-02-06 14:22:20 +02:00
dzaima
05ceb45b2f fix ptr.Write doing weird things 2024-02-05 22:42:24 +02:00
dzaima
445cfcf15a fix type of returned pointer within struct 2024-02-05 21:40:28 +02:00
dzaima
3c297ffeb8 add pointer reading within struct 2024-02-05 21:24:05 +02:00
dzaima
a8772dc3ae fix **:i8 2024-02-05 04:54:55 +02:00
dzaima
b22c5d2883 get rid of sty_ptr 2024-02-05 04:51:12 +02:00
dzaima
7ab13e3c5a refactor BQNFFIEnt & BQNFFIType 2024-02-05 04:14:02 +02:00
dzaima
102874c43f support passing pointer objects to typed arguments 2024-02-05 01:29:49 +02:00
dzaima
a4c0424931 fix type equality checking on untyped pointer elements 2024-02-05 01:29:49 +02:00
dzaima
ac16b69fe1 add toggle to always run buildObj for testing object matching more 2024-02-05 01:29:49 +02:00
dzaima
61f142a1fd type formatting for error messages 2024-02-05 01:29:49 +02:00
dzaima
7471c5c9f5 fix plain "&" argument being accepted 2024-02-05 00:34:55 +02:00
dzaima
e89d59c606 more proper error message 2024-02-04 23:27:28 +02:00
dzaima
7edcccdf82 initial pointer objects 2024-02-04 23:19:57 +02:00
dzaima
0ce728bcce do a thing that should be done 2024-02-04 18:10:11 +02:00
dzaima
291d3ef5d7 deduplicate sh_c2 setup & output prep 2024-02-04 15:31:38 +02:00
dzaima
4f39729013
Merge pull request #106 from vylsaz/win-sh2
Implement •SH for Windows
2024-02-04 14:48:36 +02:00
dzaima
a3392fd6c1 fix casrt_c2 more 2024-02-04 14:47:43 +02:00
vylsaz
893ef857d7 Add comments 2024-02-04 02:45:25 +00:00
vylsaz
42e4956fb9 Replaced globals with argument to thread procedure 2024-02-04 02:35:47 +00:00
dzaima
2dfc8933bd fix refcount leak in casrt_c2 2024-02-03 18:20:07 +02:00
vylsaz
74d3620839 Implement •SH 2024-02-03 01:45:56 +00:00
dzaima
1e8c390e6a include file name in failed complication error messages 2024-02-01 22:52:55 +02:00
dzaima
88f8daedbf proper bi_optOut handling 2024-02-01 21:26:08 +02:00
dzaima
592a8312ac a bunch of PLAINLOOP 2024-02-01 21:26:08 +02:00
dzaima
1b26e85325 don't need to mark static globals as hidden
gcc complains about this
2024-02-01 21:26:08 +02:00
dzaima
c078f62b1f add GLOBAL, INIT_GLOBAL, or const to globals 2024-02-01 21:13:39 +02:00
dzaima
6e39b59e73 use tuple destructuring in mask.singeli 2024-01-28 02:38:16 +02:00
dzaima
041be9a612 rearrange elses to get rid of clangd warning 2024-01-28 02:29:03 +02:00
dzaima
5b1fc39137 typo 2024-01-28 02:28:31 +02:00
vylsaz
7c58067620 Enable delete access 2024-01-27 15:47:35 +00:00
vylsaz
d570f8d303 Implement •file.MapBytes for Windows 2024-01-27 07:12:09 +00:00
vylsaz
f1cc597317 Util to report Windows error 2024-01-27 06:59:56 +00:00
dzaima
ffffdb5895 relax take/drop overflow checking 2024-01-19 18:03:54 +02:00
dzaima
0f691138c9 basic fix for •ReBQN{primitives⇐⟨','‿+⟩} 2024-01-19 18:02:24 +02:00
dzaima
83afa4ba99 rename functions in cmp.singeli 2024-01-11 23:36:03 +02:00
Marshall Lochbaum
f62981e370 Make Singeli if conditions have type u1 2024-01-10 17:10:53 -05:00
Marshall Lochbaum
7511420077 Fix first element of 1-byte Deduplicate result in some cases with 256 uniques 2024-01-07 21:27:12 -05:00
Marshall Lochbaum
2af2fb8e0c Use ⍷⊸⊐ for Classify (⊐) on long 1-byte arguments if SIMD bit-table is available 2024-01-07 19:54:13 -05:00
dzaima
20185b57c5 fix nested •FFI calls, more FFI testing 2024-01-02 19:33:28 +02:00
dzaima
ca7e62d09f fix •FFI with various arguments while mutable ones are present more 2024-01-02 18:30:33 +02:00
dzaima
381c03a456 fix •FFI with both a mutated & struct/array argument 2024-01-02 17:08:10 +02:00
Marshall Lochbaum
dbb6fbade1 Fast interleaving (≍˘) for pointer arrays 2023-12-31 16:28:59 -05:00
Marshall Lochbaum
5f3a4769be Rename constrep.singeli to replicate.singeli; not just constant now 2023-12-31 15:30:20 -05:00
Marshall Lochbaum
e50ae40f8b Port replicate-by-scan code from C to Singeli 2023-12-31 15:26:58 -05:00
Marshall Lochbaum
771496a25c Pass slow-pdep build option to Singeli to suppress BMI2 bool/bool 2023-12-31 10:05:51 -05:00
Marshall Lochbaum
9604844d0b Don't need ..._ before & in Singeli any more 2023-12-30 21:45:24 -05:00
Marshall Lochbaum
3584ebd7a6 Non-BMI2 bit interleaving implementation 2023-12-30 21:45:24 -05:00
Marshall Lochbaum
eb34213f0f Fast ≍˘ for matching-type type-sized cells 2023-12-30 21:45:24 -05:00
Marshall Lochbaum
58f4f15f8f Move more functionality to avx512.singeli 2023-12-30 10:43:40 -05:00
Marshall Lochbaum
92db3f15d0 Implement ≠` with AVX-512 clmul and GFNI 2023-12-30 10:43:06 -05:00
dzaima
9dc44ed1a9 make singeli/arch.bqn the source of SINGELI_AVX2
+ removes noting of lack of AVX2, which isn't shown from the makefile anyway
2023-12-30 02:09:56 +02:00
dzaima
18d2fa5f1c rename Singeli select function
in anticipation to Singeli update which adds select as a builtin
2023-12-29 23:35:22 +02:00
dzaima
f11bebf8f4 fix usz=64 build 2023-12-28 19:17:57 +02:00
Marshall Lochbaum
dcb031d142 Make sure value in store{} has an appropriate type 2023-12-27 16:44:53 -05:00
dzaima
ce31945124 fix "ab"⍷⟨⟩ 2023-12-27 19:16:34 +02:00
dzaima
add8ba353e require MAP_FIXED_NOREPLACE on linux for JIT 2023-12-26 02:53:47 +02:00
dzaima
7c50d210ff fix FreeBSD name conflict 2023-12-26 00:47:11 +02:00
dzaima
2e61f52d22 use MAP_EXCL on FreeBSD
OpenBSD should be fine as is, as it by default respects the hint if possible (I believe, at least, looking at its man page)
2023-12-26 00:47:11 +02:00
dzaima
f0c1962596 more typed ⌾(list⊸⊏) 2023-12-19 17:41:17 +02:00
dzaima
17c575edba trivial fast path for >depth1arr 2023-12-16 01:45:29 +02:00
dzaima
470e77b6b3 more typed 𝔽⌾(m⊸/) 2023-12-15 23:53:26 +02:00
dzaima
72893fc2f5 cell-wise PervasiveDy` highRank 2023-12-15 21:43:07 +02:00
dzaima
66b5c1fc0a fix a⊒b on mixed-width characters 2023-12-15 20:02:14 +02:00
dzaima
840c40748f fix f64 scans on SSE2 2023-12-15 19:18:23 +02:00
dzaima
c785b3a7b8 squeeze created arrays in F⍟arr 2023-12-15 18:05:20 +02:00
dzaima
94b1d90995 SSE2 & NEON /⁼ 2023-12-14 18:08:56 +02:00
dzaima
f71d2ff376 remove unused name variables 2023-12-14 17:45:04 +02:00
dzaima
7268c11df4 more fixes of path display 2023-12-13 22:03:00 +02:00
dzaima
a3a9403b59 fix paths shown in error stacktraces 2023-12-13 21:59:23 +02:00
dzaima
7bf379a44e check that -o output is a list 2023-12-13 17:49:54 +02:00
dzaima
8cce6b7add set re_map more properly 2023-12-12 13:32:46 +02:00
dzaima
653583eb1d make •Import follow ReBQN 2023-12-11 14:02:38 +02:00
dzaima
ec4db6dbad tiny Singeli include changes 2023-12-10 15:55:57 +02:00
dzaima
3454fbe3ee defer negated ≤AVX2 comparison negation to GPR result 2023-12-05 17:37:37 +02:00
dzaima
b9b90fbe8f improve error messages of o2i/o2i64/o2u64 & usum 2023-12-05 17:19:36 +02:00
dzaima
9984d720c9 move bit_sum to fold.c 2023-12-05 16:41:38 +02:00
dzaima
a439c64e85 fix error message of usum of i32arr encountering a negative element 2023-12-05 16:03:53 +02:00
dzaima
5c7ab3f9a8 change heuristic for when ⊔ separates filtering out ¯1
measurements of the previous one were affected by 08c4627686
2023-12-04 22:50:19 +02:00
dzaima
8870acd2c1 don't try to do 32 >> -1 2023-12-04 17:45:00 +02:00
dzaima
065f15d0e3 fix function type 2023-12-04 17:39:13 +02:00
dzaima
e2db41547d change threshold for a 𝕨⊐𝕩 case 2023-12-04 17:37:35 +02:00
dzaima
d7c153286e gc tests, more reuse removal 2023-12-04 12:07:03 +02:00
dzaima
baa23cb527 add a trailing newline to double-fatal message
apparently 'puts' has a trailing newline but 'fputs' doesn't
2023-12-04 11:35:34 +02:00
dzaima
ecb2d5f63a fix GC referencing bug in reusing 𝕨𝔽`𝕩 by not bothering to reuse 2023-12-04 01:27:38 +02:00
dzaima
fcc939dbed debug flag for running a GC every n'th allocation 2023-12-03 23:34:49 +02:00
dzaima
6573232694 macro option for an intentionally-bad hash function for testing purposes 2023-11-29 18:58:34 +02:00
dzaima
609980f950 comment about HashMap entry format 2023-11-29 18:05:08 +02:00
Marshall Lochbaum
72a9a95819 Make sure •HashMap table leaves last entry empty, as a sentinel 2023-11-28 20:08:27 -05:00