Christoffer Lerno
0bc546595d
- Using @noreturn in a trailing body macro would not work properly #2326 .
...
- Bug when reporting error in a macro return would crash the compiler #2326 .
- Short body return expression would not have the correct span.
2025-07-26 02:03:02 +02:00
Velikiy Kirill
a673b4ad66
Add LinkedHashMap and LinkedHashSet implementations ( #2324 )
...
* Add LinkedHashMap and LinkedHashSet implementations
Add two new ordered collection types to std::collections:
- LinkedHashMap: insertion-order preserving hash map
- LinkedHashSet: insertion-order preserving hash set
2025-07-25 23:28:10 +02:00
Velikiy Kirill
e790df539d
Add HashSet implementation ( #2322 )
...
* Add HashSet implementation
Add a generic HashSet with full allocator support and standard set operations.
- Basic operations: add/remove/contains/clear
- Set operations:union_set/intersection/symmetric_difference/difference/is_subset
- Memory management with allocator support
- Iteration support
- Automatic resizing with load factor control
* Add "add_all" "add_all_from" "remove_all" "remove_all_from"
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-07-25 19:53:39 +02:00
Christoffer Lerno
3400dd5e42
char[*] b = *(char[*]*)&a; would crash the compiler if a was a slice. #2320
2025-07-23 16:10:31 +02:00
Christoffer Lerno
9575698fa4
Add String conversion functions snake_case -> PascalCase and vice versa.
2025-07-23 00:26:44 +02:00
LowByteFox
5c82747970
Improved OpenBSD support ( #2317 )
...
* add openbsd support, compiles and passses all tests
* fix backtrace
* gh actions should include openbsd artifacts
2025-07-22 15:15:20 +02:00
Christoffer Lerno
428165590e
Add Volatile type.
2025-07-22 14:13:48 +02:00
Christoffer Lerno
869bcf8b2b
Removing use of $assignable and deprecate it. Fix regression for stacktraces on MacOS. Added readline_to_stream. Regression: Chaining an optional together with contracts could in some cases lose the optional.
2025-07-21 03:20:40 +02:00
hamkoroke
382a65abcd
Support asm x86 popcnt ( #2314 )
...
* Support asm x86 popcnt
2025-07-21 02:40:17 +02:00
Zack Puhl
ed92476916
Add wyhash2 and metro64/128 modern hashing ( #2293 )
...
* add wyhash2, metro64, and metro128 hashes; best performing non-crypto hash functions
* add superfast 64-bit a5hash; not streamed, no 128-bit impl
* add komihash and associated tests/benchmarks
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-07-20 00:06:10 +02:00
Christoffer Lerno
b88722b4a6
Copying const enums and regular enums incorrect #2313 .
2025-07-19 21:07:25 +02:00
Christoffer Lerno
694d297eb8
"poison" the current function early when a declaration can't be correctly resolved.
2025-07-19 20:49:26 +02:00
Christian Buttner
2053f2767b
Add ConditionVariable.wait_until and ConditionVariable.wait_for ( #2302 )
...
* Add `ConditionVariable.wait_until` and `ConditionVariable.wait_for`
* Add "@structlike" for typedefs.
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-07-19 13:12:14 +02:00
Christoffer Lerno
448176b0b7
Rename ed25519 keys/signature.
2025-07-19 10:06:51 +02:00
Airtz
b1a22b5002
Implement Ed25519 ( #2297 )
...
* Implement Ed25519
* Overloading addition with a pointer would not work.
* Added @addr macro.
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-07-19 01:13:15 +02:00
Christoffer Lerno
e9aee55714
A distinct type based on an array would yield .len == 0
2025-07-18 21:24:09 +02:00
Christoffer Lerno
2acf3c57c7
Check unaligned array access.
2025-07-18 20:45:57 +02:00
Zack Puhl
b8d07474fe
Add SipHash Family of Keyed PRFs ( #2287 )
...
* implement SipHash family of keyed PRFs
2025-07-18 16:16:47 +02:00
Christian Buttner
cf913b41c6
Fix Formatter.print returning incorrect size ( #2306 )
...
* Fix `Formatter.print` returning incorrect size
2025-07-18 15:54:07 +02:00
Christoffer Lerno
078ce38c57
Test fix.
2025-07-16 00:22:28 +02:00
Christoffer Lerno
f99b903d78
- Fix unexpected display of macro definition when passing a poisoned expression #2305 .
2025-07-15 23:31:44 +02:00
Christoffer Lerno
3650b81970
Segfault when failing to cast subexpression to 'isz' in pointer subtraction #2305 .
2025-07-15 21:47:49 +02:00
Christoffer Lerno
af91f35017
Fix stringify of $vaexpr #2301 .
2025-07-15 17:13:10 +02:00
Christoffer Lerno
1a351bdb6d
Error message for missing arg incorrect for methods with zero args #2296 .
2025-07-14 23:21:15 +02:00
Christoffer Lerno
efaac43248
- Virtual memory library.
...
- New virtual emory arena allocator.
- Fixed resize bug when resizing memory down in ArenaAllocator, DynamicArenaAllocator, BackedArenaAllocator.
- Added feature flag "SLOW_TESTS"
2025-07-14 22:36:43 +02:00
Christoffer Lerno
2bd289ebd6
Added VirtualMemory
2025-07-14 03:07:03 +02:00
Christoffer Lerno
e755c36ea2
Removed the use of temp allocator in backtrace printing.
...
Added string::bformat.
2025-07-13 02:58:57 +02:00
Christoffer Lerno
cdd530d807
Fixed bug splatting constants into constants.
2025-07-11 01:55:09 +02:00
Christoffer Lerno
02c0db7b8b
Multiline contract comments #2113
2025-07-11 01:18:58 +02:00
Christoffer Lerno
988549599d
$is_const is deprecated in favour of @is_const based on $defined.
...
`$foo` variables could be assigned non-compile time values.
`$foo[0] = ...` was incorrectly requiring that the assigned values were compile time constants.
2025-07-10 18:31:44 +02:00
Zack Puhl
70159c00cc
Add WHIRLPOOL hashing to stdlib ( #2273 )
...
* add WHIRLPOOL hashing to stdlib
2025-07-10 16:39:42 +02:00
Christoffer Lerno
2dfbdea889
Update error message for struct initialization #2286
2025-07-10 16:29:49 +02:00
Christoffer Lerno
299d1f530f
Correctly poison the analysis after a failed $assert or $error. #2284
2025-07-09 16:51:43 +02:00
Christoffer Lerno
bf0ff8abbc
Splat 8 arguments can sometimes cause incorrect behaviour in the compiler. #2283
2025-07-09 16:36:02 +02:00
Christoffer Lerno
a314e05826
Use hex consistently for .max is 64 bits or more.
2025-07-09 03:09:10 +02:00
Christoffer Lerno
83fd24faa2
Improve error on unsigned implicit conversion to signed.
2025-07-09 02:49:19 +02:00
Christoffer Lerno
1d4ad5f1d5
Function pointers are now compile time constants.
...
const enum cannot be set to function pointer unless it's a lambda #2282 .
2025-07-08 12:42:16 +02:00
Christoffer Lerno
26d5cc694a
Formatting option "%h" now supports pointers.
2025-07-08 11:43:49 +02:00
Christoffer Lerno
a2122e0153
Update error message.
2025-07-08 00:24:29 +02:00
Christoffer Lerno
5b835bec3e
Fix to codegen when using a bitstruct constant defined using a cast with an operator #2248 .
2025-07-07 17:09:32 +02:00
Christoffer Lerno
dc23cef59a
LLVM 20 compatibility for test.
2025-07-07 03:01:09 +02:00
Christoffer Lerno
808ab56545
- Bit shift operation fails with inline uint enum despite matching underlying type #2279 .
2025-07-07 02:30:54 +02:00
Christoffer Lerno
19acdc7a19
Do not do certain implicit conversions on enums in binary expression.
2025-07-06 21:44:06 +02:00
Christoffer Lerno
e15fdc709f
Improve error message when doing a rethrow in a function that doesn't return an optional.
...
Array indices are now using int64 internally.
2025-07-06 20:20:42 +02:00
Disheng Su
457244e3de
Fix json parser ( #2272 )
...
* Fix json parser number
* Fix json parser leading zero
* Fix json parser with duplicated keys
* Fix json parser with trailing characters
* Fix json parser: set recursive depth to 128
* Fix json parser: skip comment to false
* Fix json parser: reject number trailing with null
* Make max depth configurable. Simplify with defer catch. Accept `2.`
* Make max depth configurable. Simplify with defer catch. Accept `2.`
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-07-06 03:07:46 +02:00
Kiana
802fbfcf1e
Add ansi.c3 for AnsiColor support ( #2261 )
...
* Add ansi.c3 for AnsiColor support
* Added tests
updated functions to macros
added formatting codes
* Fixed indentation
* Update names. Add plain rgb version. Add runtime colors.
* Update indentation, add 21-29
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-07-06 01:37:54 +02:00
Christoffer Lerno
a20e74c401
Fixes to thread local pointer handling.
2025-07-06 00:22:21 +02:00
Christoffer Lerno
7cdb1ce9eb
Catch accidental foo == BAR; where foo = BAR; was most likely intended. #2274
2025-07-05 20:40:55 +02:00
Christoffer Lerno
0d170a70b6
Make to_float more tolerant to spaces.
2025-07-05 19:42:44 +02:00
Christoffer Lerno
a46f73ad24
Const slice indexing was not bounds checked.
2025-07-03 23:53:01 +02:00