Christoffer Lerno
dd80e8b799
Compile time type assignment (eg $Foo = int) is no longer an expression.
2025-06-20 23:31:40 +02:00
Christoffer Lerno
20c13c0bb4
- Incorrect handling of constant null fault causing compiler crash #2232 .
2025-06-20 15:29:52 +02:00
Christoffer Lerno
75f78551cf
Rename TypdefDecl to TypeAliasDecl
2025-06-18 11:59:44 +02:00
Christoffer Lerno
93640699be
Support distrinct types as the base type of bitstructs. #2218
2025-06-17 16:49:46 +02:00
Christoffer Lerno
779f548a00
Allow generics over distinct types #2216 .
2025-06-16 23:16:35 +02:00
Christoffer Lerno
f0201f971e
Fix NULL -> false.
2025-06-13 22:51:51 +02:00
Christoffer Lerno
e0237096d6
- Support untyped second argument for operator overloading.
...
- Distinct versions of builtin types ignore @operator overloads #2204 .
- @operator macro using untyped parameter causes compiler segfault #2200 .
- Add comparison with `==` for ZString types.
2025-06-13 17:12:39 +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
4cfa5441d2
Additional fixes on $define
2025-06-06 15:38:46 +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
7f85534414
- Implicitly convert from constant typeid to Type in $Type assignment, and $assignable.
...
- Make $Type parameters accept constant typeid values.
2025-06-05 00:37:16 +02:00
Christoffer Lerno
00f1206f3c
Compiler didn't check foreach over flexible array member, and folding a flexible array member was allowed #2164 .
2025-05-28 22:21:06 +02:00
Christoffer Lerno
349d9ef3cf
Allow recursive generic modules.
2025-05-28 15:39:35 +02:00
Christoffer Lerno
52541a03eb
@jump now included in --list-attributes #2155 .
2025-05-26 16:18:08 +02:00
Christoffer Lerno
9d5b31dad5
Missing error on default values for body with default arguments #2148 .
2025-05-23 18:57:21 +02:00
Christoffer Lerno
7fcc91edc8
Improve error message when encountering recursively defined structs. #2146
2025-05-19 21:36:47 +02:00
Christoffer Lerno
23897bc9a4
- Incorrect parsing of ad hoc generic types, like Foo{int}**** #2140 .
...
- $define did not correctly handle generic types #2140 .
2025-05-17 21:14:10 +02:00
Christoffer Lerno
8ada2a70d9
Using a non-const as the end range for a bitstruct would trigger an assert.
2025-05-17 18:55:58 +02:00
Christoffer Lerno
8c741c617c
Variable aliases of aliases would not resolve correctly. #2131
...
Variable aliases could not be assigned to.
2025-05-15 09:36:16 +02:00
Christoffer Lerno
634438eb82
Cleanup.
2025-05-08 21:05:43 +02:00
Christoffer Lerno
584a8a2e60
- Fix regression in Time diff due to operator overloading #2124
...
- Add `Duration * Int` and `Clock - Clock` overload.
2025-05-06 22:33:39 +02:00
Christoffer Lerno
3636898ac0
Fixed enum regression after 0.7.0 enum change.
2025-04-29 11:53:32 +02:00
Christoffer Lerno
8ac02a28cc
Error message for casting generic to incompatible type does not work properly with nested generics #1953
2025-04-27 00:40:43 +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
fde2bb2a7e
Support @if on locals.
2025-04-15 13:20:10 +02:00
Christoffer Lerno
b64dcde21d
Make aliases able to use @deprecated. Prefer math::I and math::I_F for math::IMAGINARY and math::IMAGINARYF the latter is deprecated. Combination of += and [] overloads now properly handled in most cases.
2025-04-14 20:51:01 +02:00
Christoffer Lerno
f85198e3ee
Added += and related as overloads. Updated tests and docs. Slice2 extracted to its own file.
2025-04-14 00:55:46 +02:00
Christoffer Lerno
dca805bd8a
Added tests to sincos. Correctly detect multiple overloads of the same type. Fix regression quaternion overload. Remove "1." style.
2025-04-13 15:46:27 +02:00
Christoffer Lerno
3888fcb182
- Add @operator_r and @operator_s attributes.
2025-04-13 13:43:03 +02:00
Christoffer Lerno
de73265d28
Fix operator overload struct placement.
2025-04-11 21:27:59 +02:00
Christoffer Lerno
6e42bfef3b
Typo
2025-04-11 21:04:46 +02:00
Christoffer Lerno
01357ef6d7
Check before hitting assert.
2025-04-11 21:00:30 +02:00
Christoffer Lerno
0f2d425297
Operator overloading for + - * / % & | ^ << >> ~ == !=
2025-04-11 18:46:22 +02:00
Christoffer Lerno
94b8330ac5
Function @require checks are added to the caller in safe mode. #186
2025-04-06 15:28:10 +02:00
Christoffer Lerno
65fb977e89
Clearer errors when using a &ref parameter with type.
2025-04-04 13:21:53 +02:00
Christoffer Lerno
4538a1f50d
- Correctly errors when a generic module contains a self-generic type.
2025-03-26 18:04:00 +01:00
Christoffer Lerno
d760378b02
- Added @format attribute for compile time printf validation #2057 .
...
- Bug when printing a boolean value as an integer using printf.
2025-03-24 13:32:44 +01: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
c9dbd86d82
Crash resolving a method on Foo[2] when Foo is distinct #2042 .
2025-03-12 15:45:43 +01:00
Christoffer Lerno
ff75f2c21f
Update naming of enum const.
2025-03-10 00:15:50 +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
a088a5057a
Remove if (catch foo) { case ... } syntax.
2025-03-07 22:48:28 +01:00
Christoffer Lerno
fb6b048bd0
Remove operator(@construct). Fix sample.
2025-03-03 00:32:20 +01:00
Christoffer Lerno
2a895ec7be
First 0.7 update, removing all deprecated features.
2025-03-03 00:32:20 +01:00
Christoffer Lerno
1b0ac13d76
Deprecation of operator(@construct)
2025-02-28 10:39:08 +01:00
Christoffer Lerno
3da9f73338
- Output into /.build/obj/<platform> by default.
...
- Output llvm/asm into llvm/<platform> and asm/<platform> by default.
- Don't delete .o files not produced by the compiler.
- Correctly handle in/out when interacting with inout.
2025-02-22 22:34:26 +01:00
Christoffer Lerno
79db06ecd1
Crash when trying to define a method macro that isn't @construct but has no arguments.
2025-02-20 15:51:21 +01:00
Christoffer Lerno
cec9b21707
Missing end padding when including a packed struct #1966 .
2025-02-13 21:15:27 +01:00
Christoffer Lerno
c4f9efc8f5
Allow fn int test() => @pool() { return 1; } short function syntax usage #1906 .
2025-02-08 22:45:14 +01:00
Christoffer Lerno
77db50bce8
Allow function types to have a calling convention. #1938
2025-02-07 22:03:15 +01:00