Christoffer Lerno
b14053df41
- Too deeply nested scopes was a fatal crash and not a regular semantic error. #2796
2026-01-22 15:13:01 +01:00
Christoffer Lerno
cef48482f1
Unable to access fields of a const inline enum with an aggregate underlying type. #2802
2026-01-21 13:22:46 +01:00
Christoffer Lerno
52afbdbde9
Recursive constant definition not properly detected, leading to assert #2780
2026-01-20 18:28:13 +01:00
Christoffer Lerno
4512c6446d
- Empty struct after @if processing was not detected, causing a crash instead of an error.
...
- Comparing an uint and int[<4>] was incorrectly assumed to be uint compared to int, causing a crash instead of an error.
- When an `int[*][6]` was given too few values, the compiler would assert instead of giving an error.
2026-01-19 15:01:08 +01:00
Christoffer Lerno
0fea6c6056
- Bitstruct with unevaluated user-defined type would cause a crash.
...
- Using named parameters with builtins would cause a crash.
- In some cases, using missing identifiers with builtins would cause a crash.
- Using `$defined` with function call missing arguments would cause a crash.
- Adding @nostrip to a test function would crash.
- Mixing struct splat, non-named params and named params would crash rather than to print an error.
- Creating a char vector from bytes would crash.
- Using $$wstr16 with an illegal argument would crash instead of printing an error.
2026-01-19 02:49:54 +01:00
Christoffer Lerno
d00a93f195
Update error on omitting end.
2026-01-17 15:37:30 +01:00
Christoffer Lerno
6dcd91c5ef
- Assert on defining a const fault enum with enumerator and fault of the same name. #2732
2026-01-17 15:01:40 +01:00
Christoffer Lerno
70c4b24519
- In some cases, a type would not get implicitly converted to a typeid #2764 .
2026-01-16 11:41:18 +01:00
Zack Puhl
e4965ab408
Add BLAKE3 Hashing/XOF to stdlib ( #2667 )
...
* blake3: initial unit test passing!
* typo
* add key derivation macros; vanilla unit tests; working to test 18 atm
* mark it here - all tests passing o_o
* finish first-round unit tests - will add more if necessary
* add crypto shootout bench entertainment
* tests: add XOF unit w/ seek; assert NO finalization
* add another to finalizations unit test
* add all BLAKE3 scaffolding for later SIMD optimizations
* irksome
* tabs
* tabs2
* extra documentation / contracts
* extra detail
* try to make things a bit more arch-neutral
* release notes
* Formatting
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2026-01-01 21:11:33 +01:00
Christoffer Lerno
9bd04526e8
foo.x was not always handled correctly when foo was optional.
2025-12-30 12:38:04 +01:00
Christoffer Lerno
d96624c578
Decoupled generics ( #2695 )
2025-12-29 17:01:03 +01:00
Christoffer Lerno
1028f85daa
- Better error messages when slicing a pointer to a slice or vector. #2681
2025-12-25 22:01:15 +01:00
Christoffer Lerno
18b246c577
- Testing for the presence of methods at the top level is prohibited previous to method registration.
2025-12-24 15:32:21 +01:00
Christoffer Lerno
4e6cd4283c
- Remove use of LLVMGetGlobalContext for single module compilation.
...
- Fixed bug where constants would get modified when slicing them. #2660
2025-12-19 17:17:45 +01:00
Zack Puhl
97a9cab218
Fix ChaCha20 Alignment Issues
2025-12-18 09:07:51 +01:00
Christoffer Lerno
070b13c81c
More fixes to $$LINE
2025-12-16 21:48:35 +01:00
Christoffer Lerno
651735f9a0
- $$LINE would sometimes incorrectly be constant.
2025-12-16 13:30:51 +01:00
Christoffer Lerno
0c0d0ace4d
Fix requirement to use prefix when using $defined
2025-12-13 00:38:19 +01:00
Christoffer Lerno
15662bd32f
Typedefs and structs with inline types supporting lengthof would not work with lengthof #2641 .
2025-12-12 20:57:32 +01:00
Christoffer Lerno
1fc522ec9c
- Subscripting of constant slices would sometimes be considered non-constant #2635 .
2025-12-10 14:11:51 +01:00
Christoffer Lerno
3a8a6aa429
- Ignore const null check on deref in $defined and $sizeof #2633 .
2025-12-10 00:02:24 +01:00
Christoffer Lerno
cb0b94c064
- Optional does not play well with bit ops #2618 .
2025-12-06 00:46:42 +01:00
Christoffer Lerno
9d79c3f33d
- $defined(hashmap.init(mem)) causes compiler segfault #2611 .
2025-11-30 00:08:46 +01:00
Christoffer Lerno
7215a9fa12
Unexpected maybe-deref subscript error with out parameter #2600 .
2025-11-27 00:21:59 +01:00
Christoffer Lerno
463c6957fc
- Support int $foo... arguments. #2601
2025-11-26 23:54:18 +01:00
Christoffer Lerno
8ec3a52ef7
- Add float[<3>] x = { .xy = 1.2, .z = 3.3 } swizzle initialization for vectors. #2599
2025-11-26 11:31:22 +01:00
Christoffer Lerno
49b8cfe267
- Allow splatting of structs. #2555
2025-11-17 16:33:22 +01:00
Christoffer Lerno
4e66693065
- Refactored @simd implementation.
...
- Regression vector ABI: npot vectors would load incorrectly from pointers and other things. #2576
2025-11-16 01:37:39 +01:00
Christoffer Lerno
748a2f6530
- Enums now work with membersof to return the associated values. #2571
...
- Deprecated `SomeEnum.associated` in favour of `SomeEnum.membersof`
2025-11-13 13:15:02 +01:00
Christoffer Lerno
0da6bf4455
- Passing a compile time type implicitly converted to a typeid would crash instead of producing an error. #2568
2025-11-08 22:17:58 +01:00
Christoffer Lerno
5070840da9
- Regression vector ABI: initializing a struct containing a NPOT vector with a constant value would crash LLVM. #2559
2025-11-04 01:04:07 +01:00
Christoffer Lerno
4a25bcc5ee
Function referencing in @return? for simplified fault declarations. Check @return? eagerly #2340 .
2025-11-03 23:49:35 +01:00
Christoffer Lerno
d43d7100af
Fix division-by-zero checks on a /= 0 and b /= 0f #2558 .
2025-11-03 21:31:47 +01:00
Christoffer Lerno
791cbbfb62
Fix division-by-zero checks on a /= 0 and b /= 0f #2558 .
2025-11-03 16:47:57 +01:00
Christoffer Lerno
f25ad512a7
Foo.is_eq would return false if the type was a typedef and had an overload, but the underlying type was not comparable. Version 0.7.8.
2025-10-31 22:47:01 +01:00
Christoffer Lerno
423152202f
Dev ( #2545 )
...
* Optimize vector load / store. Fixes to alignment. Support typedef with `@simd` and `@align` #2543 . Update vector ABI #2542
* Fix alignment issue with indirect arguments.
2025-10-25 12:31:06 +02:00
Christoffer Lerno
8f5d5a0bb5
"Maybe-deref" subscripting foo.[i] += 1 #2540 .
2025-10-23 00:42:38 +02:00
Christoffer Lerno
883052a6bb
Improved generic inference in initializers #2541 .
2025-10-22 23:48:32 +02:00
Christoffer Lerno
9cf271f5fb
Refactoring codegen with Flat / Lowered types. Helpers for struct gep. type_get_indexed_type no longer returns the canonical type, fixes issues in #2534
2025-10-21 16:53:38 +02:00
Christoffer Lerno
5d8cad91b1
Fix lambda regression
2025-10-20 22:55:24 +02:00
Christoffer Lerno
a81f857d8c
Update to fix with splat.
2025-10-20 02:26:04 +02:00
Christoffer Lerno
6169d7acdf
Correctly mention aliased type when method is not implemented #2534 .
2025-10-20 00:19:51 +02:00
Christoffer Lerno
0bd2c81757
Splatting optional compile-time macro parameter from inside lambda expression does not work #2532 .
2025-10-19 23:05:50 +02:00
Christoffer Lerno
6f11260a5c
Disallow aliasing of @local symbols with a higher visibility in the alias.
2025-10-10 14:04:19 +02:00
Christoffer Lerno
df67b7dddd
Allow .. ranges to use "a..a-1" in order to express zero length.
2025-10-10 00:34:30 +02:00
Christoffer Lerno
a000ae560a
Add new builtins $$str_snakecase $$str_replace and $$str_pascalcase.
...
Added `@str_snakecase`, `@str_replace` and `@str_pascalcase` builtin compile time macros based on the `$$` builtins.
2025-10-09 22:13:59 +02:00
Christoffer Lerno
e34a26422f
Change macro recursion depth to work on MSVC
2025-10-07 23:47:05 +02:00
Christoffer Lerno
fe70f10bcc
Sorting functions correctly took slices by value, but also other types by value. Now, only slices are accepted by value, other containers are always by ref.
2025-10-07 22:43:40 +02:00
Christoffer Lerno
04cd079d4e
- Compiler segfault when accessing member of number cast to bitstruct #2516 .
...
- Additional fix to #2515
- Compiler assert when getting a member of a `bitstruct : char @bigendian` #2517 .
2025-10-07 00:12:41 +02:00
Christoffer Lerno
b4b14674b4
- Bitstruct truncated constant error escapes $defined #2515
2025-10-06 20:50:56 +02:00