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
Christoffer Lerno
25bccf4883
New faults and syntax ( #2034 )
...
- Remove `[?]` syntax.
- Change `int!` to `int?` syntax.
- New `fault` declarations.
- Enum associated values can reference the calling enum.
2025-03-10 00:11:35 +01:00
Christoffer Lerno
2439405e70
- $foreach "()" replaced by trailing ":" $foreach ($x, $y : $foo) -> $foreach $x, $y : $foo:
...
- `$for` "()" replaced by trailing ":" `$for (var $x = 0; $x < FOO; $x++)` -> `$for var $x = 0; $x < FOO; $x++:`
- `$switch` "()" replaced by trailing ":" `$switch ($Type)` -> `$switch $Type:`
- Empty `$switch` requires trailing ":" `$switch` -> `$switch:`
2025-03-04 16:13:47 +01:00
Christoffer Lerno
cbacd64987
Update tests to (Foo) { ... } syntax.
2025-02-18 18:53:30 +01:00
Christoffer Lerno
300983f831
Compile time array assign ops, e.g. $c[1] += 3 #1890 .
2025-02-03 00:35:20 +01:00
Christoffer Lerno
f8b2f7f268
Refactor casts and make untyped list conversions not dependent on context.
2025-02-01 23:37:32 +01:00
Christoffer Lerno
2b3b7e32b8
Fix bug indexing into a constant array at compile time.
2025-02-01 00:36:30 +01:00
Christoffer Lerno
03e2b30ede
Compile time array inc/dec #1890 .
2025-01-31 23:58:44 +01:00
Christoffer Lerno
9092defd46
defer is broken when placed before a $foreach #1912
2025-01-31 14:39:51 +01:00
Christoffer Lerno
3e4f9e875f
Add test for casts and append.
2025-01-25 23:18:35 +01:00
Christoffer Lerno
e40bab2d30
Allow (int[*]) { 1, 2 } cast style initialization. Experimental change from [*] to [?]. Fix issue where compile time declarations in expression list would not be handled properly.
2025-01-25 22:10:12 +01:00
Christoffer Lerno
e2b11c17bc
- Compile time array assignment #1806 .
...
- Allow `+++` to work on all types of arrays.
2025-01-25 00:48:06 +01:00
Christoffer Lerno
b145c073f0
VERY experimental <[ ]> syntax for generics. Continue lvalue refactoring.
2025-01-23 01:29:35 +01:00
Christoffer Lerno
948d56b321
Refactor $ct lvalue handling.
2025-01-23 00:00:22 +01:00
Christoffer Lerno
5de03abe0d
Concatenating an const empty slice with another array caused a null pointer access.
2025-01-18 23:50:31 +01:00
Christoffer Lerno
5a36f0bc16
Fix issue with @const where the statement $foo = 1; was not considered constant.
2025-01-18 22:40:58 +01:00