Christoffer Lerno
f1efdf3d98
Incorrect zero analysis on foo["test"] = {} #1360
2024-08-16 16:50:58 +02:00
Christoffer Lerno
8d6dabf65c
Struct members declared in a single line declaration were not sharing attributes. #1266
2024-07-30 02:45:50 +02:00
Christian Buttner
8285720180
Add tests and improvements for @nopadding and @compact.
2024-07-17 17:00:36 +02:00
Christoffer Lerno
416cd30b42
Wrong size for structs containing overaligned structs #1219
2024-07-02 15:17:41 +02:00
Christoffer Lerno
684850dda1
Fixing flexible array resolution.
2024-06-21 18:36:39 +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
bae5d9c7f8
Improved checks of aliased "void".
2024-02-26 18:45:55 +01:00
Christoffer Lerno
7ea3d230bb
0.5.5 features ( #1151 )
...
0.5.5 Disallow multiple `_` in a row in digits, e.g. `1__000`. #1138 . Fixed toposort example. Struct/union members now correctly rejects members without storage size #1147 . `math::pow` will now correctly promote integer arguments. `math::pow` will now correctly promote integer arguments. Added `new_aligned` and `alloc_aligned` functions to prevent accidental under-alignment when allocating simd. Pointer difference would fail where alignment != size (structs etc) #1150 . Add test that overalignment actually works for lists. Fixed array calculation for npot2 vectors. Use native aligned alloc on Windows and POSIX. Deprecates "offset". Simplification of the Allocator interface.
2024-02-22 17:13:51 +01: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
5e8816e6df
Fixes to native backtrace.
2023-11-13 17:20:46 +01:00
Christoffer Lerno
37bb16cca1
Updated cast code.
2023-09-12 12:48:52 +02:00
Christoffer Lerno
a23112fae6
Added parentof.
2023-08-29 11:51:09 +02:00
Christoffer Lerno
a864822a89
Do not assert when encountering resolved non-identifier access child expressions. Addresses #913
2023-08-04 15:50:21 +02:00
Christoffer Lerno
72f5bac346
When a member is checked, still add it to the environment. Addresses #903 .
2023-07-31 12:35:41 +02:00
Christoffer Lerno
c18526f10a
Fix of nested union/struct initialization. Fixes #886 .
2023-07-26 21:12:04 +02:00
Christoffer Lerno
3e54d13b62
Prefer def
2023-06-02 20:08:45 +02:00
Christoffer Lerno
b794c893d6
Dynamic dispatch.
2023-05-25 22:28:45 +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
0dcad6f5cf
Improve and simplify casts.
2023-03-01 22:43:50 +01:00
Christoffer Lerno
afa41f0c10
Updated name mangling.
2023-02-20 17:48:47 +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
df77b692d6
Support "typedef"
2023-02-14 16:49:27 +01:00
Christoffer Lerno
5e457be605
Implement more @export / @private improvements. Make @private default… ( #729 )
2023-02-13 08:31:40 +01:00
Christoffer Lerno
6cef75b608
Removes win x86 target. Add win aarch64. Fixes to jump buffer sizes. Fix returning bool[2] in the SysV ABI. Array comparison now works. Prevent flexible array comparisons. Prevent zero size unions.
2023-02-06 18:09:31 +01:00
Christoffer Lerno
539d733ceb
Remove LLVM 14 support. Simplify ABI lowering.
2023-01-30 12:39:04 +01:00
Christoffer Lerno
dc16f65c8e
Change printfln to printfn. Make LLVM 15 tests default.
2023-01-11 18:00:08 +01:00
Christoffer Lerno
da1a45f718
Remove iptrdiff and uptrdiff. Bump version to 0.3.100
2022-11-17 23:44:54 +01:00
Christoffer Lerno
160659c4e3
Optimize sret / byval. Fixes to types and failables.
2022-10-15 02:45:19 +02:00
Christoffer Lerno
fc943a98ef
Foreach_r, bump to 0.3.15
2022-08-13 03:04:09 +02:00
Christoffer Lerno
1d572f3e7c
Allow distinct printthrough in printf. Added tests.
2022-07-21 18:13:11 +02:00
Christoffer Lerno
d3a053e049
Updated mangling and bump to 0.2.18
2022-07-20 12:22:03 +02:00
Christoffer Lerno
abfccb5576
Fix issues with union of const. Bump version 0.2.12
2022-07-11 17:58:11 +02:00
Christoffer Lerno
ea5d7cd2e7
Fixes initialization of anonymous structs. Bump version 0.2.11
2022-07-10 23:29:05 +02:00
Christoffer Lerno
b1d83e2ccd
Auto-import std::core. Fix module assignment of declarations. Introspection improvements. Deref null error panics in safe mode. Support for LLVM 15
2022-06-29 21:57:35 +02:00
Christoffer Lerno
e09e5c06d3
User defined attributes.
2022-05-11 20:55:09 +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
2802b2b96d
Ensure, $eval and $evaltype, @unreachable() replaces $unreachable. <Type>.sizeof
2022-03-04 15:49:17 +01:00
Christoffer Lerno
dce33ba5b5
Fixing #380 where const aggregates were copied by value.
2022-01-20 16:52:28 +01:00
Christoffer Lerno
4059d22315
Remove unnecessary load in LLVM statement lowering. Added more tests from Clang.
2022-01-17 17:08:28 +01:00
Christoffer Lerno
0f4a43717e
Fixes to the aarch64 ABI.
2022-01-15 01:37:43 +01:00
Christoffer Lerno
ea3b50d039
Codegen with better annotations on globals.
2022-01-10 13:58:15 +01:00
Christoffer Lerno
869aa7ed76
Do not store direct parameters that are only read.
2022-01-04 23:16:32 +01:00
Christoffer Lerno
a0be188902
Lexing updated with simpler code. Note: may have bugs.
2021-12-27 15:45:54 +01:00
Christoffer Lerno
680b077eb1
Flexible array member added, zero sized structs removed.
2021-12-14 19:00:33 +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
29e7af843a
Remove old try-catch. Top down promotion for binary etc. Prevent non-simple widening. Introducing wildcard failable. Move LLVM GEP usage. Regcall test and fix. Optimized slice assign.
2021-10-26 18:40:41 +02:00
Christoffer Lerno
9942be54dc
More optimized memclear. Added helper function on array gep.
2021-10-21 23:37:14 +02:00
Christoffer Lerno
e4c7dde30b
Fix of shadowing bug. Allow pointer and subarrays to be constant initialized. Compile time values may now pass around anything considered compile time constant. It's possible to index into an initializer list at compile time. (Some work still remains on this)
2021-09-18 01:13:42 +02:00