Christoffer Lerno
ce8167a102
- Incorrectly try compile time int check on vector #2815
...
- Generating typeid from function gives incorrect typeid #2816
- Recursive definitions not discovered when initializer is access on other const #2817
- Slice overrun detected late hit codegen assert #2822
2026-01-24 19:38:51 +01:00
Christoffer Lerno
5fa820a462
When a global const has invalid attributes, handling is incorrect, leading to a crash #2785 .
2026-01-21 00:43:30 +01:00
Christoffer Lerno
52afbdbde9
Recursive constant definition not properly detected, leading to assert #2780
2026-01-20 18:28:13 +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
83d6b35afe
Add d as floating point suffix for double types.
2025-05-28 12:02:24 +02: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
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
214e806a33
Deprecate `fn void! main() type main functions.
2025-01-08 23:17:50 +01:00
Christoffer Lerno
a8aad53038
It was possible to create 0 length arrays using byte literals. #1678
2024-12-14 02:49:45 +01:00
Christoffer Lerno
723e1dd9a6
Fix issue with overloaded *= etc
2024-12-11 20:56:11 +01:00
Christoffer Lerno
e153c76719
Bit negate now properly does type promotion.
2024-06-23 16:13:37 +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
Christoffer Lerno
deb4cc7c4b
0.5.3: Single-module not respected. Fix issue with compiler defined types. Fix optimization levels for projects. Use GEP i8 on offsets. Optimize foreach on len 1 arrays. Move panic blocks last. Fix generic module wildcard imports. Deprecate init_temp / init_new. Fix issue with macro vaarg and untyped lists. Fix extern const globals.
2024-01-14 15:34:54 +01:00
Christoffer Lerno
a46bf4fbe0
Improve "const" error message #1079 .
2023-11-22 19:12:04 +01:00
Christoffer Lerno
57424d8b6b
Fixes #786 , constant initialization with constants sometimes causing an error lowering to LLVM. Fixes bug passing void as a vararg argument to an any vararg.
2023-06-19 10:38:37 +02:00
Christoffer Lerno
4c1edfb941
Dev ( #777 )
...
* The new @if directive.
2023-06-10 23:16:28 +02:00
Christoffer Lerno
172d561f07
Change syntax of $if, $assert, $include, $echo. Introduces $error
2023-05-06 12:18:00 +02:00
Christoffer Lerno
184cc19d36
Further grammar fixes.
2023-04-28 19:11:57 +02:00
Christoffer Lerno
5ee0d52ff1
Deprecate :; in $if etc.
2023-03-20 01:03:54 +01:00
Christoffer Lerno
0dcad6f5cf
Improve and simplify casts.
2023-03-01 22:43:50 +01:00
Christoffer Lerno
e3416a1c40
Allow @test with modules. Change name mangling for non exports.
2023-02-20 16:02:30 +01:00
Christoffer Lerno
5e457be605
Implement more @export / @private improvements. Make @private default… ( #729 )
2023-02-13 08:31:40 +01:00
Christoffer Lerno
dc16f65c8e
Change printfln to printfn. Make LLVM 15 tests default.
2023-01-11 18:00:08 +01:00
Christoffer Lerno
f46697bc54
Updated casts ( #684 )
...
Cast code rework. Remove llvm_set_bool and friends.
2022-12-27 14:16:47 +01:00
Christoffer Lerno
407ed5a63d
Fix vector init and float promotion. Fix of 1.0f.
2022-10-08 14:30:17 +02:00
Christoffer Lerno
6f5f5feb97
Fixing distinct, typedef and bitstruct copying. Fix where global constants did not need to be constant. Bump to 0.2.26
2022-07-27 18:12:27 +02:00
Christoffer Lerno
d3a053e049
Updated mangling and bump to 0.2.18
2022-07-20 12:22:03 +02:00
Christoffer Lerno
890c4bc435
0.2.0. Build system improvements. Target changes x64-windows -> windows-x64, x64-darwin -> macos-x64. Improved mac support. LLD linking for Mac, Windows, Linux. Cross linking for Mac, Windows. Clean up string use. Fix of debug handling of multiple compilation units per module. MSVC CI
2022-04-26 13:20:33 +02:00
Christoffer Lerno
dce33ba5b5
Fixing #380 where const aggregates were copied by value.
2022-01-20 16:52:28 +01:00
Christoffer Lerno
ea3b50d039
Codegen with better annotations on globals.
2022-01-10 13:58:15 +01:00
Christoffer Lerno
910b2179f9
Updates to base64 parsing.
2021-12-04 00:25:55 +01:00
Christoffer Lerno
974cd0acc5
Rollback global.
2021-11-17 10:37:23 +01:00
Christoffer Lerno
b52b42d4da
Complete transition to fn. Introduce global/threadlocal
2021-11-16 17:46:44 +01:00
Christoffer Lerno
7c7ee58b6b
Fix in byte output for globals.
2021-08-21 22:16:35 +02:00
Christoffer Lerno
f198e6c53a
Added multi line strings raw strings. This also somewhat improves error reporting on strings.
2021-08-21 21:50:41 +02:00
Christoffer Lerno
64f20da080
Better handling of void/void*, unified local/global var analysis. Native base64 / hex data array (needs more checks)
2021-08-20 10:29:17 +02:00
Christoffer Lerno
dd8b850544
Support for "static" keyword.
2021-05-30 16:30:16 +02:00
Christoffer Lerno
97ac957cb7
"Public by default"
2021-05-30 16:30:16 +02:00
Christoffer Lerno
fc31c15914
Updated cast syntax in code samples.
2021-05-18 17:23:27 +02:00
Christoffer Lerno
460c0d04d7
Generic modules.
2021-05-12 17:25:59 +02:00
Christoffer Lerno
9b86b00834
Compilation is now done with each module compiled together.
2021-05-11 14:58:21 +02:00
Christoffer Lerno
07595df412
Change cast and int rules: constant folding always starts. Promotion using left side on all operands to bit width. Implicit narrowing to max size on right hand side.
2021-03-17 18:25:00 +01:00
Christoffer Lerno
4f064e7da2
Initial checkin of docs parsing. char is now unsigned, and signed char is "ichar".
2021-01-29 18:46:17 +01:00
Christoffer Lerno
4222f2731e
&&temp operator. Macro evaluation.
2020-10-16 18:11:30 +02:00
Christoffer Lerno
8586bf3f8d
Constants are now variables. Constant compile time constants are typeless and act as #define and are now also correctly parsed. Enums are also correctly lowered. And expressions are copied when inlining constants. Compile time ints can no longer be bitnegated.
2020-07-29 22:08:47 +02:00
Christoffer Lerno
7b7abf5d4a
Fixes to defer, allowing break in defer (instead of continue). Fixed bug in PTR->BOOL cast. Extended test system to support multi files and codegen.
2020-07-27 11:40:45 +02:00