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
Christoffer Lerno
3f45ed14b9
Compare @compact structs.
2024-07-12 23:54:07 +02:00
Christoffer Lerno
ca4b782912
MemberIndex -> ArrayIndex
2024-07-12 18:27:05 +02:00
Christoffer Lerno
ce17dbe240
Bug fix for rethrow + defer catch. More types and functions for win32
2024-07-02 02:48:48 +02:00
Christoffer Lerno
f521a0dd77
FOREACH_BEGIN / VECEACH replaced by FOREACH / FOREACH_IDX
2024-07-01 13:31:41 +02:00
Christoffer Lerno
e7f9c11a14
"panic-msg" setting to suppress panic message output.
2024-06-23 10:42:03 +02:00
Christoffer Lerno
e02f73417c
Trailing body arguments may now be &ref, #hash, $const and $Type arguments.
2024-06-22 22:04:20 +02:00
Christoffer Lerno
8878a49a1d
Introduction of TYPE_FUNC_PTR / TYPE_FUNC_RAW. Fixed rules for function pointers.
2024-06-21 10:46:28 +02:00
Christoffer Lerno
e293c435af
0.6.0: init_new/init_temp removed. LinkedList API rewritten. List "pop" and "remove" function now return Optionals. RingBuffer API rewritten. Allocator interface changed. Deprecated Allocator, DString and mem functions removed. "identity" functions are now constants for Matrix and Complex numbers. @default implementations for interfaces removed. any* => any, same for interfaces. Emit local/private globals as "private" in LLVM, following C "static". Updated enum syntax. Add support [rgba] properties in vectors. Improved checks of aliased "void". Subarray -> slice. Fix of llvm codegen enum check. Improved alignment handling. Add --output-dir #1155 . Removed List/Object append. GenericList renamed AnyList. Remove unused "unwrap". Fixes to cond. Optimize output in dead branches. Better checking of operator methods. Disallow any from implementing dynamic methods. Check for operator mismatch. Remove unnecessary bitfield. Remove numbering in --list* commands Old style enum declaration for params/type, but now the type is optional. Add note on #1086 . Allow making distinct types out of "void", "typeid", "anyfault" and faults. Remove system linker build options. "Try" expressions must be simple expressions. Add optimized build to Mac tests. Register int. assert(false) only allowed in unused branches or in tests. Compile time failed asserts is a compile time error. Remove current_block_is_target. Bug when assigning an optional from an optional. Remove unused emit_zstring. Simplify phi code. Remove unnecessary unreachable blocks and remove unnecessary current_block NULL assignments. Proper handling of '.' and Win32 '//server' paths. Add "no discard" to expression blocks with a return value. Detect "unsigned >= 0" as errors. Fix issue with distinct void as a member #1147 . Improve callstack debug information #1184 . Fix issue with absolute output-dir paths. Lambdas were not type checked thoroughly #1185 . Fix compilation warning #1187 . Request jump table using @jump for switches. Path normalization - fix possible null terminator out of bounds. Improved error messages on inlined macros.
...
Upgrade of mingw in CI. Fix problems using reflection on interface types #1203 . Improved debug information on defer. $foreach doesn't create an implicit syntactic scope.
Error if `@if` depends on `@if`. Updated Linux stacktrace. Fix of default argument stacktrace. Allow linking libraries directly by file path. Improve inlining warning messages. Added `index_of_char_from`. Compiler crash using enum nameof from different module #1205 . Removed unused fields in find_msvc. Use vswhere to find msvc. Update tests for LLVM 19
2024-06-12 10:14:26 +02:00