Christoffer Lerno
4d93db51ee
Check properly has use list.
2026-01-07 19:59:40 +01:00
Christoffer Lerno
067a4f7cb1
Fixed codegen for vec->array in the boolean case.
2026-01-01 00:25:32 +01:00
Christoffer Lerno
a2c886a2d9
- Compiler assert when passing returning CT failure immediately rethrown #2689 .
2025-12-26 22:02:02 +01:00
Christoffer Lerno
f3b71ed7eb
- $$MASK_TO_INT and $$INT_TO_MASK to create bool masks from integers and back.
...
- Fix bug when creating bool vectors in certain cases.
2025-12-25 20:55:11 +01:00
Christoffer Lerno
475816251b
- Strings assigned to longer arrays would crash codegen, e.g. char[10] x = "abcd.
2025-12-12 20:35:11 +01:00
Christoffer Lerno
0b52819090
- Bug on rethrow in return with defer #2603 .
2025-11-27 12:53:12 +01:00
Christoffer Lerno
8ec3a52ef7
- Add float[<3>] x = { .xy = 1.2, .z = 3.3 } swizzle initialization for vectors. #2599
2025-11-26 11:31:22 +01:00
Christoffer Lerno
a816a78e98
Fix alignment.
2025-11-20 12:09:38 +01:00
Christoffer Lerno
39694e65c0
- *(int*)1 incorrectly yielded an assert in LLVM IR lowering #2584 .
2025-11-20 10:36:32 +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
5070840da9
- Regression vector ABI: initializing a struct containing a NPOT vector with a constant value would crash LLVM. #2559
2025-11-04 01:04:07 +01:00
Christoffer Lerno
b3bce10699
Remove division-by-zero checks for floating point in safe mode #2556 .
2025-11-03 02:43:01 +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
9cf271f5fb
Refactoring codegen with Flat / Lowered types. Helpers for struct gep. type_get_indexed_type no longer returns the canonical type, fixes issues in #2534
2025-10-21 16:53:38 +02:00
Giuliano Macedo
614c6989d8
Fixed incorrect format strings when using error_exit. ( #2530 )
...
* Fixed incorrect format strings when using `error_exit`.
2025-10-20 11:24:07 +02:00
Christoffer Lerno
e37343fbe3
Refactor the C ABI conversion to use frontend independent types.
2025-10-14 19:38:51 +02:00
Christoffer Lerno
df67b7dddd
Allow .. ranges to use "a..a-1" in order to express zero length.
2025-10-10 00:34:30 +02:00
Christoffer Lerno
0d85caf21c
Add splat defaults for designated initialization #2441 .
...
Add ??? and +++= to list-precedence.
2025-10-09 12:45:55 +02:00
Christoffer Lerno
44d736a537
Add +++= operator.
2025-09-25 14:48:00 +02:00
Christoffer Lerno
3ccabd625c
Renaming
2025-09-22 23:08:11 +02:00
Christoffer Lerno
3345e70c63
Comparing slices and arrays of user-defined types that implement == operator now works #2486 .
2025-09-19 11:21:29 +02:00
Christoffer Lerno
8035991ac3
?? with void results on both sides cause a compiler crash #2472
2025-09-10 10:47:14 +02:00
Christoffer Lerno
69b3263a00
- Added path::home_directory, path::documents_directory, path::videos_directory, path::pictures_directory, path::desktop_directory, path::screenshots_directory,
...
`path::public_share_directory`, `path::templates_directory`, `path::saved_games_directory`, `path::music_directory`, `path::downloads_directory`.
Fix codegen bug in expressions like `foo(x()) ?? io::EOF?` causing irregular crashes.
2025-09-06 02:27:10 +02:00
LowByteFox
6dbd81a6f9
add ability for TinyCC to compile c3c ( #2459 )
...
* add ability for TinyCC to compile c3c
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-09-06 01:47:48 +02:00
Christoffer Lerno
e605a21fd3
Revert "Revert 0.7.6 code for 0.7.5 re-release"
...
This reverts commit d1349c9cfb .
2025-09-05 23:30:35 +02:00
Christoffer Lerno
d1349c9cfb
Revert 0.7.6 code for 0.7.5 re-release
2025-09-05 18:42:54 +02:00
niedlich
cf14787552
Typo fixes ( #2457 )
...
* fix typos in comments and strings
* fix typos in symbols (and some comments/strings)
* fix typos in releasenotes.md
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-09-04 01:07:07 +02:00
Christoffer Lerno
d291a40f69
Compiler hangs on == overload if other is generic #2443
...
Fix missing end of line when encountering errors in project creation.
2025-08-31 23:40:55 +02:00
Christoffer Lerno
cb006dd715
- Compiler module-scope pointer to slice with offset, causes assert. #2446
2025-08-31 23:18:27 +02:00
Christoffer Lerno
ca2fabc9f9
- $defined(#hash) will not check the internal expression, just that #hash exists.
...
- Added optional macro arguments using `macro foo(int x = ...)` which can be checked using `$defined(x)`.
- Supplemental `roundeven` has a normal implementation.
2025-08-29 11:23:39 +02:00
Christoffer Lerno
961aa0ef61
Struct and typedef subtypes inherit dynamic functions.
2025-08-23 22:31:29 +02:00
vssukharev
b7c9a4e2e9
Several fixes for the compiler ( #2422 )
...
* Update .gitignore for nix
* Fix build failure when compiling with -Werror=maybe-uninitialized
* Fix test failure formatting
* Add separateDebugInfo to c3c Nix build
2025-08-20 21:47:22 +02:00
Manu Linares
ba55946c9a
Fixes slicing with negative value error message - llvm_codegen_expr.c ( #2410 )
...
* Fixes slicing with negative value error message - llvm_codegen_expr.c
Fixes printing negative value
Example:
```
fn void main()
{
int[100] arr;
usz a = 35;
usz b = 36;
arr[b:a - b];
}
```
output should be:
ERROR: 'Negative value (-1) given for slice length.'
* Update releasenotes.
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-08-18 23:12:03 +02:00
Christoffer Lerno
b52ab886d2
Compiler segfault on global slice initialization with null[:0] #2404 .
2025-08-15 20:10:28 +02:00
Christoffer Lerno
85dc9c45ab
- Deprecate @compact use for comparison. Old behaviour is enabled using --use-old-compact-eq.
...
- Switch available for types implementing `@operator(==)`.
- `Type.is_eq` is now true for types with `==` overload.
- Functions being tested for overload are now always checked before test.
- Compile time indexing at compile time in a $typeof was no considered compile time.
2025-08-14 15:53:35 +02:00
Christoffer Lerno
db99de9717
Improve codegen for stack allocated large non-zero arrays.
2025-08-12 17:01:39 +02:00
Christoffer Lerno
4625b457fb
Add additional checks for phi to prevent miscompilation.
2025-08-03 17:46:03 +02:00
Christoffer Lerno
151a28a92a
Codegen error in if (try x = (false ? io::EOF? : 1)), i.e. using if-try with a CT known value.
2025-08-03 16:28:11 +02:00
Christoffer Lerno
9fe6c77d28
Codegen error in if (try x = (true ? io::EOF? : 1)), i.e. using if-try with a known Empty.
2025-08-03 13:33:53 +02:00
Christoffer Lerno
2c6ff00261
Fix alignment.
2025-08-01 10:55:04 +02:00
Christoffer Lerno
61a21203f4
Assigning string literal to char[<*>] stores pointer rather than characters. #2357
2025-08-01 10:32:53 +02:00
Christoffer Lerno
334ee975b9
Assignment evaluation order now right->left, following C++17.
2025-07-31 11:49:42 +02:00
Christoffer Lerno
869bcf8b2b
Removing use of $assignable and deprecate it. Fix regression for stacktraces on MacOS. Added readline_to_stream. Regression: Chaining an optional together with contracts could in some cases lose the optional.
2025-07-21 03:20:40 +02:00
Christoffer Lerno
2acf3c57c7
Check unaligned array access.
2025-07-18 20:45:57 +02:00
Christoffer Lerno
379d16abe7
Some refactoring of ranges. env::AUTHORS and env::AUTHOR_EMAILS
2025-07-16 12:23:24 +02:00
Christoffer Lerno
a20e74c401
Fixes to thread local pointer handling.
2025-07-06 00:22:21 +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
9285dfefad
- $member.get supports bitstructs.
...
- $member.set for setting members without the *& trick.
- io::struct_to_format now supports bitstructs.
2025-06-29 01:19:09 +02:00
Christoffer Lerno
df8904909b
Fix bugs relating to optional interface addr-of #2244 .
2025-06-27 15:02:12 +02:00
Christoffer Lerno
2b0fb52f65
Fix regression: Enum inference with compare operators #2241
2025-06-25 00:55:29 +02:00