Zack Puhl
91b866c967
Immediately skip empty tests ( #2352 )
2025-08-02 23:17:34 +02:00
Zack Puhl
483fe62750
OpenBSD Sockets ( #2353 )
...
* native file testing for BSD
* basic OpenBSD socket port
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-08-02 23:15:53 +02:00
Zack Puhl
2a47cc2ca9
Pair and Triple Compare w/ Unit Tests ( #2359 )
...
* Pair and Triple Compare w/ Unit Tests
* scope creep myself by adding date-time eq op
* make Pair and Triple printable
* Update releasenotes. Restrict equals on tuples to when underlying type supports `==`. Remove unnecessary Time.eq.
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-08-02 23:11:27 +02:00
Zack Puhl
e707190539
Add @intlog2 for Floored CT log-base2 ( #2355 )
...
* Add `@intlog2` for Floored CT log-base2
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-08-02 22:53:36 +02:00
Christoffer Lerno
90c339ebdb
List.remove_at would incorrectly trigger ASAN.
2025-08-02 16:56:43 +02:00
Christoffer Lerno
bdbe81fedd
Fix libm regression.
2025-08-02 13:22:48 +02:00
Christoffer Lerno
f0142e3b1a
Fix json check.
2025-08-01 17:07:37 +02:00
BWindey
51b9cb85bc
Fix get_config_dir() implementation ( #2348 )
...
* Fix get_config_dir() implementation
* Formatting and fallback to home if the path is empty.
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-07-29 19:11:56 +02:00
Zack Puhl
9d2be2851b
Add @try Builtin ( #2333 )
...
* Add @try macro
* Add @try_catch. Update release notes.
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-07-29 00:50:56 +02:00
Velikiy Kirill
a21e641748
LinkedHashMap: Fix head being null when initializing from map ( #2334 )
...
* LinkedHashMap: Fix head being null when initializing from map
2025-07-28 00:26:14 +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
9a68a5c063
HashSet: Contract message fixes
2025-07-25 23:06:18 +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
fbeb779335
Fix typo in wait_timeout
2025-07-24 14:12:39 +02:00
Christoffer Lerno
e8b3c44de3
Add a "wchar" type.
2025-07-23 15:09:55 +02:00
Christoffer Lerno
9575698fa4
Add String conversion functions snake_case -> PascalCase and vice versa.
2025-07-23 00:26:44 +02:00
Christoffer Lerno
5f0a7dd63e
Rename AlignedRef -> UnalignedRef
2025-07-22 15:55:43 +02:00
Kiana
38bc11b7b8
Add libc::readlink() ( #2316 )
...
* Add libc::readlink()
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-07-22 15:46:23 +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
b45c337515
Contract fix.
2025-07-22 15:14:10 +02:00
Christoffer Lerno
9dc6b0e660
Added AlignedRef generic type.
2025-07-22 15:11:14 +02:00
Christoffer Lerno
428165590e
Add Volatile type.
2025-07-22 14:13:48 +02:00
Christoffer Lerno
53051e04a3
Add thread::fence (from $$fence builtin). Ref and RefCounted types.
2025-07-22 00:37:41 +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
Christoffer Lerno
908d705669
Removing use of $assignable and deprecate it.
2025-07-20 20:07:06 +02:00
Airtz
d422fb699f
More Ed25519 cleanup ( #2315 )
...
* Cleanup Ed25519
2025-07-20 19:57:37 +02:00
Kiana
506e63284b
Tidy up path.c3 ( #2309 )
...
* Tidy up path.c3
2025-07-20 12:26:44 +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
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
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
adb3df05c6
Allow even smaller memory limits.
2025-07-18 10:54:03 +02:00
Christoffer Lerno
ee35001732
Suppress codegen of panic printing with when panic messages are set to "off".
...
Implicit linking of libc math when libc math functions are used.
2025-07-17 14:45:02 +02:00
Christoffer Lerno
379d16abe7
Some refactoring of ranges. env::AUTHORS and env::AUTHOR_EMAILS
2025-07-16 12:23:24 +02:00
Christian Buttner
bb6fcdfa6f
Improve atomic.c3
...
- Change `Atomic.xor` from function to macro
- Allow function pointers as native atomic type
- Use enum inference
2025-07-15 20:32:18 +02:00
Christian Buttner
8df112e157
Add WString.len
2025-07-15 20:30:14 +02:00
Zack Puhl
3cce90bba1
fix hashmap tinit_with_key_values
2025-07-15 00:26:59 +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
f082cac762
Updates to API
2025-07-14 03:44:52 +02:00
Christoffer Lerno
2bd289ebd6
Added VirtualMemory
2025-07-14 03:07:03 +02:00
Christoffer Lerno
aba9baf207
Added Vmem allocator
2025-07-13 17:26:57 +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
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
Ero Mrinin
123b1c8f44
Added unpack macro for Triple ( #2277 )
2025-07-09 03:11:13 +02:00
Christoffer Lerno
26d5cc694a
Formatting option "%h" now supports pointers.
2025-07-08 11:43:49 +02:00
Christoffer Lerno
1ab57ecf20
Improve contract for readline. #2280
2025-07-07 02:42:48 +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