Christoffer Lerno
0ed917cdc2
Improve error when trying to use an extern const as a compile time constant. #2969
2026-02-23 19:15:30 +01:00
Christoffer Lerno
7c81bb35ca
Refactored contracts ( #2960 )
...
* - Properly support `@deprecated` as contract.
- Support deprecating enum values.
- Refactor contracts
* Always copy enum constants.
* Bugfix.
2026-02-20 01:51:28 +01:00
Christoffer Lerno
5a82f672b5
Update to constdef
2026-02-20 01:13:20 +01:00
Christoffer Lerno
0387d7666d
- Trying to slice an indexable type leads to misleading error message #2958
2026-02-20 00:13:45 +01:00
Christoffer Lerno
990e9685d2
- Adding the incorrect sized vector to a pointer vector would cause a crash.
2026-02-16 00:39:14 +01:00
Christoffer Lerno
eb80776988
More fixes for typedef @constinit change
2026-02-14 01:37:53 +01:00
Christoffer Lerno
bbf89815d6
- Individual warning settings added.
2026-02-13 18:25:19 +01:00
Christoffer Lerno
cc6d552e3d
- --safe=no disabled compile-time errors on compile-time known runtime @require checks #2936
2026-02-13 16:34:45 +01:00
Christoffer Lerno
3f279b2f1c
Refactoring: make CT_IDENT and unresolved expression.
2026-02-12 16:38:18 +01:00
Christoffer Lerno
83705ab340
Fix chacha20.
2026-02-11 23:44:26 +01:00
Christoffer Lerno
9b52be9ba6
- unsigned % signed and unsigned / signed is no longer allowed without explicit casts, except for const denominators. #2928
2026-02-11 23:18:08 +01:00
Christoffer Lerno
2237d3b836
Missing check
2026-02-11 02:55:07 +01:00
Christoffer Lerno
e2f17a770b
Using [] or .foo on $$ functions would not raise error but instead crash #2919 .
2026-02-11 02:53:17 +01:00
Christoffer Lerno
80ad0e02ad
Fix tests and error in returning error on function name.
2026-02-08 22:54:24 +01:00
Christoffer Lerno
5c158e481b
Always have wmain. Cleanup synthetic main generation. Some cleanup for generics.
2026-02-06 01:28:19 +01:00
Christoffer Lerno
016254d38c
Improve error message when using functions as values #2856
2026-02-05 16:03:56 +01:00
Christoffer Lerno
dcf695c726
Fix list[0].i = 5 when list[0] returns a pointer. #2888
2026-02-05 00:34:17 +01:00
Christoffer Lerno
1c8cb7fa11
Method resolution and $define now works together well unless definitions are out of order for real.
2026-02-04 12:23:37 +01:00
Christoffer Lerno
6bc606a9b1
Removed analyse top pass. Remove sub module tracking. Fix errors where ? should be ~
2026-02-02 12:20:34 +01:00
Christoffer Lerno
2b6f1c061d
Fix of evaluation order warning.
2026-01-30 13:10:54 +01:00
Christoffer Lerno
224b120745
Another fix error => warn
2026-01-29 20:07:42 +01:00
Christoffer Lerno
163976f85f
Fix of second warning triggered on failing to detect a method.
2026-01-29 17:42:51 +01:00
Christoffer Lerno
6c76a7ce4e
Make methods not fully determined a warning.
2026-01-29 11:42:58 +01:00
Christoffer Lerno
084d5cbc94
Set target in test.
2026-01-29 02:30:06 +01:00
Christoffer Lerno
362d5680e4
- Optional in initializer cause a crash #2864
...
- Negating a global address with offset was a counted as a global runtime constant #2865
- Converting static "make_slice" to array failed to be handled #2866
- Narrowing a not expression was incorrectly handled #2867
- Vector shift by optional scalar failed #2868
2026-01-28 21:59:40 +01:00
Christoffer Lerno
4d02ce4414
Additional fix for #2853
2026-01-27 23:43:14 +01:00
Christoffer Lerno
0b5064683f
Regression: Generic type could not be found in lambda inside macro #2853
2026-01-27 14:23:41 +01:00
Christoffer Lerno
f3ede27f60
Regression: "'out' parameters may not be read" when writing to array #2852
2026-01-27 13:48:50 +01:00
Christoffer Lerno
4fbb42833e
- Crash when creating $Type* where $Type is an optional type #2848
...
- Crashes when using `io::EOF~!` in various unhandled places. #2848
2026-01-27 13:32:08 +01:00
Christoffer Lerno
109e15b5a0
- Empty enums would return the values as zero sized arrays #2838
2026-01-25 04:41:06 +01:00
Christoffer Lerno
9b2fc04959
ompile time dereference of a constant slice was too generous #2821
2026-01-24 22:42:04 +01:00
Christoffer Lerno
ce8167a102
- Incorrectly try compile time int check on vector #2815
...
- Generating typeid from function gives incorrect typeid #2816
- Recursive definitions not discovered when initializer is access on other const #2817
- Slice overrun detected late hit codegen assert #2822
2026-01-24 19:38:51 +01:00
Christoffer Lerno
397d065a74
- Constant shifting incorrectly doesn't flatten the underlying vector base #2825
...
- String not set as attributes resolved breaking has_tagof #2824
- Self referencing forward resolved const enum fails to be properly detected #2823
2026-01-24 18:32:26 +01:00
Christoffer Lerno
5e23817a3d
- Comparing a flexible array member to another type would hit an assert. #2830
...
- Underlying slice type not checked correctly in $defined #2829
- Checking for exhaustive cases is done even in if-chain switch if all is enum #2828
2026-01-24 17:57:56 +01:00
Christoffer Lerno
bf50178eb3
$typeof(<type>) returns typeinfo, causing errors #2795
2026-01-22 20:04:09 +01:00
Christoffer Lerno
e257500e03
Recursive definition of tag not detected with nested tag/tagof #2790
2026-01-22 19:16:54 +01:00
Christoffer Lerno
0add42b0a0
- Make foo.$abc implicitly mean foo.eval("$abc").
2026-01-22 16:46:07 +01:00
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