Christoffer Lerno
ec65c5761e
Fixed test
2026-02-23 19:21:56 +01:00
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
acc4a900f5
- New const enum declaration syntax.
...
- New enum associated value syntax.
2026-02-12 14:43:56 +01:00
Christoffer Lerno
084d5cbc94
Set target in test.
2026-01-29 02:30:06 +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
1845a515ca
- Empty ichar slice + byte concatenation hit an assert. #2789
2026-01-22 21:39:03 +01:00
Christoffer Lerno
bf50178eb3
$typeof(<type>) returns typeinfo, causing errors #2795
2026-01-22 20:04:09 +01:00
Christoffer Lerno
0add42b0a0
- Make foo.$abc implicitly mean foo.eval("$abc").
2026-01-22 16:46:07 +01:00
Christoffer Lerno
34a86852c6
Failed to reject void compile time variables, leading to crash. #2781
2026-01-20 23:07:11 +01:00
Christoffer Lerno
dd8449576f
- Passing a non-conststring to module attributes like @cname would trigger an assert rather than printing an error.
...
- Passing different types to arg 1 and 2 for $$matrix_transpose would trigger an assert.
- Zero init of optional compile time variable would crash the compiler.
- Using multiple declaration for generics in generic module would fail.
- Defining an extern const without a type would crash rather than print an error.
- Typedef followed by brace would trigger an assert.
- Union with too big member would trigger an assert.
2026-01-18 22:47:17 +01:00
Christoffer Lerno
c3b2694834
Generics with <>. Deprecation of {} generics.
2026-01-18 00:33:43 +01:00
Christoffer Lerno
5ed4f9519f
- x'1234' +++ (ichar[1]) { 'A' } would fail due to missing const folding.
2025-12-30 16:06:28 +01:00
Christoffer Lerno
56f8008d85
- Parse error in $defined was not handled correctly, leading to an assertion.
2025-12-29 22:09:39 +01:00
Christoffer Lerno
37d42d555d
- Compiler crash when concatenating structs and arrays to an untyped list.
2025-12-11 03:46:15 +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
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
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
7b649314ec
Fix tests.
2025-10-15 00:50:24 +02:00
Christoffer Lerno
6eee760239
Add --max-macro-iterations to set macro iteration limit.
2025-10-11 16:26:07 +02:00
Christoffer Lerno
a7e77fec78
$for int $a = 1; $a < 2; $a++ would not parse.
2025-10-01 14:53:52 +02:00
Christoffer Lerno
d3db91536c
Incorrect nameof on nested struct names. #2492
2025-09-20 15:00:44 +02:00
Christoffer Lerno
c71444e7a0
Compile time switch over type would not correctly compare function pointer types.
2025-09-16 14:10:28 +02:00
Christoffer Lerno
fafcf3d0a9
Enum inference, like Foo x = $eval("A"), now works correctly for $eval.
2025-08-30 15:24:11 +02:00
Zack Puhl
eb8fb8871f
Fix $$str_hash to use a5hash like String.hash() ( #2403 )
...
* Fix `$$str_hash` to use `a5hash` like `String.hash()`
2025-08-14 20:24:01 +02:00
Christoffer Lerno
24c03f9800
Fixed bug generating $c += 1 when $c was derived from a pointer but behind a cast.
2025-08-06 00:44:22 +02:00
Christoffer Lerno
00b88a8027
Compiler assertion when defining a function with return type untyped_list #2368 . In general, improve error message when ct types are return types.
2025-08-05 04:11:54 +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
Christoffer Lerno
af91f35017
Fix stringify of $vaexpr #2301 .
2025-07-15 17:13:10 +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
Christoffer Lerno
635d4babc4
Fix tests.
2025-07-03 22:37:23 +02:00
Christoffer Lerno
9b3b4ae8be
$for ct-state not properly popped.
2025-07-03 22:20:14 +02:00
Christoffer Lerno
ee1ed73fc5
Non-const macros may not return untyped lists.
2025-07-03 15:45:14 +02:00
Christoffer Lerno
8b47317ec7
Fix issue with labelled break inside of a $switch.
2025-07-03 13:11:12 +02:00
Christoffer Lerno
4502a9286c
Fix typeid on compile time types.
2025-07-01 00:27:17 +02:00
Christoffer Lerno
965ef19a5b
Allow $typeof to return a compile time type.
2025-07-01 00:02:12 +02:00
Christoffer Lerno
13bb2b6690
Const Enums From / to ordinal using casts is back. Add "--use-old-enums", deprecating lookup.
2025-06-30 21:41:52 +02:00
Christoffer Lerno
40554192b1
- Make accepting arguments for main a bit more liberal, accepting main(int argc, ZString* argv)
...
- Make `$echo` and `@sprintf` correctly stringify compile time initializers and slices.
- Fixes methodsof to pick up all sorts of extension methods. #2192
- Fix regression accidentally allowing `$assert $foo, $bar`
2025-06-08 00:23:04 +02:00
Christoffer Lerno
f2daf2e11e
@sprintf macro (based on the $$sprintf builtin) allows compile time format strings #1874 .
2025-06-06 03:18:28 +02:00
Christoffer Lerno
9baeca3a8e
$eval now also works with @foo, #foo, $Foo and $foo parameters #2114 .
2025-06-06 01:23:23 +02:00
Christoffer Lerno
d697b910ba
Removed the naive check for compile time modification, which fixes #1997 but regresses in detection.
2025-06-01 23:50:13 +02:00
Christoffer Lerno
2f3954a7d9
Deprecate SomeFn.params
2025-05-16 21:57:18 +02:00
Christoffer Lerno
64ef3fc756
Some folding was missing in binary op compile time resolution #2135 .
2025-05-15 16:04:55 +02:00
Christoffer Lerno
24ebe975d8
Allow the right hand side of ||| and &&& be runtime values.
2025-05-14 23:40:36 +02:00
Christoffer Lerno
abe4727c3a
Deprecate uXX and iXX bit suffixes.
...
Add experimental LL / ULL suffixes for int128 and uint128 literals.
2025-05-13 23:48:59 +02:00
Christoffer Lerno
900365c25e
Fix stringify for compound initializers #2120 .
2025-05-04 15:31:55 +02:00
Christoffer Lerno
3244898610
- @if now does implicit conversion to bool like $if. #2086
2025-04-16 23:49:12 +02:00
Christoffer Lerno
6454856fdb
String str = "" is now guaranteed to be null terminated. #2083
2025-04-16 23:19:28 +02:00
Christoffer Lerno
fde2bb2a7e
Support @if on locals.
2025-04-15 13:20:10 +02:00
Christoffer Lerno
5c77c9a754
- Change distinct -> typedef.
...
- Order of attribute declaration is changed for `alias`.
- Added `LANGUAGE_DEV_VERSION` env constant.
- Rename `anyfault` -> `fault`.
- Changed `fault` -> `faultdef`.
- Added `attrdef` instead of `alias` for attribute aliases.
2025-03-15 20:10:47 +01:00
Christoffer Lerno
8b49e6c14d
Rename def to alias.
2025-03-13 11:22:27 +01:00