Christoffer Lerno
292bf1cbbc
Designated initialization with ranges would not error on overflow by 1.
2026-01-03 02:32:40 +01:00
Christoffer Lerno
6e4614b6a4
- Fix bug when converting from vector to distinct type of wider vector. #2604
2025-11-27 16:40:55 +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
a38a627a1d
Allow (Foo)0 bitstruct casts even if type sizes do not match.
2025-10-25 20:33:47 +02:00
Christoffer Lerno
04cd079d4e
- Compiler segfault when accessing member of number cast to bitstruct #2516 .
...
- Additional fix to #2515
- Compiler assert when getting a member of a `bitstruct : char @bigendian` #2517 .
2025-10-07 00:12:41 +02:00
Christoffer Lerno
b4b14674b4
- Bitstruct truncated constant error escapes $defined #2515
2025-10-06 20:50:56 +02:00
Christoffer Lerno
872f63eecc
- Bitstruct value cannot be used to index a const array in compile time. #2512
2025-10-05 22:23:07 +02:00
Christoffer Lerno
d3db91536c
Incorrect nameof on nested struct names. #2492
2025-09-20 15:00:44 +02:00
Christoffer Lerno
be98a01ed8
types::has_equals fails with assert for bitstructs #2377
2025-08-11 20:53:11 +02:00
Christoffer Lerno
1d25197bfd
Bitstructs no longer overloadable with bitops. #2374
2025-08-06 14:51:37 +02:00
Christoffer Lerno
3b6d68ef21
Compiler segfault when using bitwise not on number literal cast to bitstruct #2373 .
2025-08-06 00:55:56 +02:00
Christoffer Lerno
5b835bec3e
Fix to codegen when using a bitstruct constant defined using a cast with an operator #2248 .
2025-07-07 17:09:32 +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
dc1e5323ab
Segfault in the compiler when using a bitstruct constant defined using a cast with an operator #2248 .
2025-06-27 23:00:14 +02:00
Christoffer Lerno
93640699be
Support distrinct types as the base type of bitstructs. #2218
2025-06-17 16:49:46 +02:00
Christoffer Lerno
c7f0d54328
Designated const initializers with {} would overwrite the parent field.
2025-05-18 23:40:52 +02:00
Christoffer Lerno
8ada2a70d9
Using a non-const as the end range for a bitstruct would trigger an assert.
2025-05-17 18:55:58 +02:00
Christoffer Lerno
6454856fdb
String str = "" is now guaranteed to be null terminated. #2083
2025-04-16 23:19:28 +02:00
Christoffer Lerno
5c77c9a754
- Change distinct -> typedef.
...
- Order of attribute declaration is changed for `alias`.
- Added `LANGUAGE_DEV_VERSION` env constant.
- Rename `anyfault` -> `fault`.
- Changed `fault` -> `faultdef`.
- Added `attrdef` instead of `alias` for attribute aliases.
2025-03-15 20:10:47 +01:00
Christoffer Lerno
cbacd64987
Update tests to (Foo) { ... } syntax.
2025-02-18 18:53:30 +01:00
Christoffer Lerno
79a4b6855b
- Detect unaligned loads #1951 .
...
- Fix issue where aligned bitstructs did not store/load with the given alignment.
2025-02-10 22:07:15 +01:00
Christoffer Lerno
214e806a33
Deprecate `fn void! main() type main functions.
2025-01-08 23:17:50 +01:00
Christoffer Lerno
f801372074
Optimize temp variables in LLVM.
2025-01-06 04:25:47 +01:00
Christoffer Lerno
314c6f94f0
Remove the last "cast" operations.
2025-01-06 01:51:03 +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
5af224ab16
Remove 3 casts and replace them with a single new normal expression node.
2024-12-30 00:55:40 +01: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
3f1738e0fe
Unified constant handling.
2024-09-13 15:11:15 +02:00
Christian Buttner
41db9c43e5
Allow omitting = true for designated initializers of bitstruct bools.
2024-06-22 15:57:41 +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
9436efe554
Compiler crash on designated initializer for structs with bitstruct.
2024-05-20 14:42:09 +02:00
Christoffer Lerno
ed9f15becf
Foreach uses non-wrapping add/dec.
2024-05-08 23:05:12 +02:00
Christoffer Lerno
82227e8901
Incorrect cast of bitstructs #1186
2024-04-26 17:39:30 +02:00
Christoffer Lerno
75e7176675
Bitstruct cast to other bitstruct by way of underlying type would fail #1159 .
2024-02-26 23:51:14 +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
54f32ed71b
Fix alignment for remaining bitstruct binary ops. Turn off broken Mingw LLVM in CI.
2023-10-13 14:43:04 +02:00
Christoffer Lerno
fed343e3bb
Fix alignment for negating bitstructs. Update mingw LLVM versions in CI.
2023-10-13 13:57:44 +02:00
Christoffer Lerno
a9c28cce6d
Default protocols. Closes #1039
2023-10-10 23:30:33 +02:00
Christoffer Lerno
99cfaa1583
Refactor protocols.
2023-10-06 22:31:41 +02:00
Christoffer Lerno
49c4595457
Dynamic protocols.
2023-10-05 15:20:41 +02:00
Christoffer Lerno
37bb16cca1
Updated cast code.
2023-09-12 12:48:52 +02:00
Christoffer Lerno
4c081f59ff
Refactoring, adding printf / printfn to all streams.
2023-09-03 10:14:04 +02:00
Christoffer Lerno
9a6d83f526
Updated stream API.
2023-09-03 01:14:15 +02:00
Christoffer Lerno
69553fd80e
Bitstruct designated initializer sometimes failed. This addresses. #954
2023-08-27 18:10:22 +02:00
Christoffer Lerno
def97eea9d
Fixes member visibility for anonymous bitstruct. Bitstruct member attributes works. Anonymous bitstruct assignment fixed.
2023-08-03 01:00:30 +02:00
Christoffer Lerno
45d1b1d671
Fix where bitstructs in subarrays triggered the wrong lowering. Fixes #877
2023-07-23 20:50:53 +02:00
Christoffer Lerno
5a2fe4c9d9
Fix to macro codegen.
2023-07-19 01:34:50 +02:00
Christoffer Lerno
3e54d13b62
Prefer def
2023-06-02 20:08:45 +02:00