Christoffer Lerno
56d25cdeeb
Remove array->vector casts
2025-01-03 01:35:51 +01:00
Christoffer Lerno
14d8e93004
Return type inference bugs with macros #1757
2025-01-02 17:34:37 +01:00
Christoffer Lerno
faf1c5cb64
Introduce EXPR_RVALUE for some additional refactoring.
2025-01-01 12:19:00 +01:00
Christoffer Lerno
a913f21c45
Fix issue with compiling a constant struct containing a string array in a local context.
2024-12-31 16:45:10 +01:00
Christoffer Lerno
322c70433b
Refactoring, stop using int to bool as cast. Merge make any.
2024-12-31 16:32:37 +01:00
Christoffer Lerno
df74cbf06f
Fix bug where !! and ! was not recognized to jump out of the current scope. Remove more casts.
2024-12-30 01:43:02 +01:00
Christoffer Lerno
5af224ab16
Remove 3 casts and replace them with a single new normal expression node.
2024-12-30 00:55:40 +01:00
Christoffer Lerno
f5cea221a6
Miscompile when indexing an array with small unsigned types.
2024-12-28 17:39:25 +01:00
Christoffer Lerno
e453e6f9ca
- Add enum.from_ordinal and fault.from_ordinal
...
- Deprecate cast-style conversion from integer to enum.
- Make deprecation an error in test mode.
2024-12-23 15:27:59 +01:00
Christoffer Lerno
0ded93ab9b
Do not produce expression locations for windows.
2024-12-04 12:21:12 +01:00
Christoffer Lerno
347a1a48d4
Indexing an Optional slice would crash in codegen #1636 .
2024-11-21 11:30:53 +01:00
Christoffer Lerno
746046c8c0
Fix bug where a > 0 ? f() : g() could cause a compiler crash if both returned void!.
2024-11-10 01:18:56 +01:00
Christoffer Lerno
b882265e52
Start work on 0.6.5
2024-11-10 01:18:56 +01:00
Waqar Ahmed
213831289a
Fix compile with gcc 14.2.1 ( #1594 )
...
* Fix compile with gcc 14.2.1 Fixes -Werror=maybe-uninitialized warnings
* Updated to use INVALID_PTR rather than NULL.
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2024-11-04 00:20:14 +01:00
Christoffer Lerno
cc6a24cf80
Null-check function pointer invocation #1573 .
2024-10-26 18:41:47 +02:00
Christoffer Lerno
d344cc6020
(uptr)&((Foo*)null).a incorrectly inserts a null check. #1544 .
...
Fix regression handling typedefs from generic modules.
2024-10-22 12:15:39 +02:00
Christoffer Lerno
31cd839063
Switch to <* *> docs. Fix issue with dynamically loaded C3 libs with other C3 code.
2024-10-14 02:14:34 +02:00
Christoffer Lerno
9f6a4eb300
Empty expression block would crash compiler with debug on #1554 .
2024-10-13 02:19:26 +02:00
Christoffer Lerno
cba25710fe
Refactor and unify linker visibility and fix issues with weak stdlib.
2024-10-11 21:45:44 +02:00
Christoffer Lerno
02e9bfaf31
Separate const slice. Fix #1489 . Fix const slice appending. Remove unintended print of char[] as String. Support const conversion of array -> slice.
2024-10-03 15:04:33 +02:00
Christoffer Lerno
029d5e9068
Const initializer further cleanup.
2024-09-23 00:29:43 +02:00
Christoffer Lerno
cdae3ec936
Some refactoring of the bitstruct representation. Correctly represent inner types. #1471
2024-09-21 13:43:52 +02:00
Christoffer Lerno
d727696830
Segfault using ternary with no assignment #1468 .
2024-09-21 00:57:36 +02:00
Christoffer Lerno
ac479c7e40
llvm issue with try when bool is combined #1467
2024-09-20 20:15:44 +02:00
Christoffer Lerno
9f51bfcc10
Support casting bitstructs to bool.
2024-09-19 01:03:06 +02:00
Christoffer Lerno
08219fc57e
Fix reordering semantics in struct assignment.
2024-09-17 22:41:49 +02:00
Christoffer Lerno
f51230e793
Fix bugs in "trap-on-wrap" #1434 .
2024-09-14 16:19:40 +02:00
Christoffer Lerno
45a94cfe86
Asserts are now correctly included and traced in when running tests. Removed accidental debug trace.
2024-09-14 13:48:27 +02:00
Christoffer Lerno
3f1738e0fe
Unified constant handling.
2024-09-13 15:11:15 +02:00
Christoffer Lerno
d6cf622e49
Make subscript use its own "index" type rather than reuse Range.
2024-09-10 22:11:19 +02:00
Christoffer Lerno
503032cbcf
Update range checking.
2024-09-10 13:21:07 +02:00
Christoffer Lerno
1cb91c0ac9
Fold default args in non-debug.
2024-09-06 23:04:09 +02:00
Christoffer Lerno
de13023981
Converting a slice to a vector/array would copy too little data.
2024-09-06 15:36:43 +02:00
Christoffer Lerno
28428fcf30
Handle "splice splat" in the vararg slot as an expression.
2024-09-06 10:43:03 +02:00
Christoffer Lerno
ed5d338a39
Added new style named arguments.
2024-09-05 22:13:22 +02:00
Christoffer Lerno
2506c2579b
Prevent loading / storing large structs with LLVM.
2024-09-02 01:16:48 +02:00
Christoffer Lerno
8b7a3f1835
Optimize the value after foo()!!
2024-09-01 21:14:30 +02:00
Christoffer Lerno
22151a0a03
Fix bug with defer (catch err) when used together with regular defer.
2024-08-28 10:41:59 +02:00
Christoffer Lerno
fb4a231703
Add $member.get(value) to replace value.$eval($member.nameof)
2024-08-20 14:24:12 +02:00
Christoffer Lerno
f8ca173fd8
Refactoring a bit.
2024-08-11 15:05:36 +02:00
Christoffer Lerno
44db4a21fc
Add @tag and .tagof .has_tagof. Allow bitstructs to have attributes.
2024-08-09 15:03:44 +02:00
Christoffer Lerno
b1785606cc
LLVM codegen for constants in enums could fail.
2024-08-06 00:28:03 +02:00
Christoffer Lerno
2748cf99b3
- Fix issue where a compile time parameter is followed by "...".
...
- Fix issue with some conversions to untyped list.
- Experimental change: add `+++` `&&&` `|||` as replacement for `$concat`, `$and` and `$or`.
2024-08-04 23:16:25 +02:00
Christoffer Lerno
d91c289bf6
Distinct inline can now be called if it is aliasing a function pointer.
2024-08-03 03:08:38 +02:00
Christoffer Lerno
3d0fc33441
&& doesn't work correctly with lambdas #1279 .
2024-08-01 21:16:23 +02:00
Christoffer Lerno
ea0124433a
Remove "EXPR_GROUP" to simplify the code somewhat.
2024-07-26 14:34:08 +02:00
Christoffer Lerno
68fb916195
Fix when memcmp is defined.
2024-07-14 16:51:38 +02:00
Christoffer Lerno
dfb8a1b8cb
Improved bool and float array comparisons.
2024-07-14 14:16:17 +02:00
Christoffer Lerno
6c38409c57
Array comparison now uses built-in memcmp on LLVM to enable optimizations.
2024-07-14 01:35:19 +02:00
Christoffer Lerno
0e62423e06
Bitstruct in struct fix.
2024-07-13 01:54:45 +02:00