Christoffer Lerno
e2f17a770b
Using [] or .foo on $$ functions would not raise error but instead crash #2919 .
2026-02-11 02:53:17 +01:00
Christoffer Lerno
4899ee14e2
Resolving &X.b when X is a const incorrectly checked for runtime constness #2842
...
Creating a generic instance fails if it is created after interface checking #2840
2026-01-25 21:24:27 +01:00
Christoffer Lerno
cdabe8fd9e
- Create optional with ~ instead of ?. return io::EOF?; becomes return io::EOF~.
...
- Deprecated use of `?` to create optional.
2026-01-20 16:10:28 +01:00
Christoffer Lerno
0fea6c6056
- Bitstruct with unevaluated user-defined type would cause a crash.
...
- Using named parameters with builtins would cause a crash.
- In some cases, using missing identifiers with builtins would cause a crash.
- Using `$defined` with function call missing arguments would cause a crash.
- Adding @nostrip to a test function would crash.
- Mixing struct splat, non-named params and named params would crash rather than to print an error.
- Creating a char vector from bytes would crash.
- Using $$wstr16 with an illegal argument would crash instead of printing an error.
2026-01-19 02:49:54 +01:00
Christoffer Lerno
dd8449576f
- Passing a non-conststring to module attributes like @cname would trigger an assert rather than printing an error.
...
- Passing different types to arg 1 and 2 for $$matrix_transpose would trigger an assert.
- Zero init of optional compile time variable would crash the compiler.
- Using multiple declaration for generics in generic module would fail.
- Defining an extern const without a type would crash rather than print an error.
- Typedef followed by brace would trigger an assert.
- Union with too big member would trigger an assert.
2026-01-18 22:47:17 +01:00
Christoffer Lerno
a326e31e57
Add missing fix.
2026-01-17 18:52:55 +01:00
Christoffer Lerno
945a3f3fc0
Add mem::store and mem::load which may combine both aligned and volatile operations.
2026-01-17 18:52:30 +01:00
Christoffer Lerno
e76278cfd7
Fix test
2025-12-25 22:50:06 +01:00
Christoffer Lerno
e706c914a8
Fix test.
2025-12-25 21:39:19 +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
070b13c81c
More fixes to $$LINE
2025-12-16 21:48:35 +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
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
a000ae560a
Add new builtins $$str_snakecase $$str_replace and $$str_pascalcase.
...
Added `@str_snakecase`, `@str_replace` and `@str_pascalcase` builtin compile time macros based on the `$$` builtins.
2025-10-09 22:13:59 +02:00
Christoffer Lerno
3caaf0a3e8
Compiler hang with unaligned load-store pair. #2470
2025-09-09 00:07:45 +02:00
Christoffer Lerno
a0497e9274
math::overflow_* wrappers incorrectly don't allow distinct integers #2221 .
2025-06-21 13:28:45 +02:00
Christoffer Lerno
966e8107f8
Add $$matrix_mul and $$matrix_transpose builtins.
2025-05-27 00:50:21 +02:00
Christoffer Lerno
abe4727c3a
Deprecate uXX and iXX bit suffixes.
...
Add experimental LL / ULL suffixes for int128 and uint128 literals.
2025-05-13 23:48:59 +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
Zack Puhl
177df6321a
add test file for wide string constants
...
add full UTF-8 to wide-str language capabilities
move wstr language constant expressions to builtins and adjust test cases
2025-03-04 13:46:59 +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
8e0d6d11b9
Deprecated '&' macro arguments.
2025-01-08 22:13:49 +01:00
Christian Buttner
cc9ca35e04
Add $debugtrap builtin. ( #1220 )
...
Add `$breakpoint` builtin.
2024-07-04 00:50:29 +02:00
Christian Buttner
12051e7544
Fix $$unaligned_store arg check and add test. ( #1224 )
...
Fix `$$unaligned_store` arg check and add test.
2024-07-04 00:44:32 +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
Dmitry Atamanov
40d5ce0937
Fixes $$set_rounding_mode builtin.
2023-09-06 23:11:33 +02:00
Dmitry Atamanov
b77f254ab1
Tune @expect, @likely, @unlikely and @prefetch macros.
2023-08-24 16:09:56 +02:00
Christoffer Lerno
34306cbf5d
Fixes missing checks to body arguments. Do not create debug declaration for value-only parameter. Bug in alignment for atomics. Macro ref parameters are pointers.
2023-07-15 15:11:44 +02:00
Christoffer Lerno
184cc19d36
Further grammar fixes.
2023-04-28 19:11:57 +02:00
Christoffer Lerno
e3416a1c40
Allow @test with modules. Change name mangling for non exports.
2023-02-20 16:02:30 +01:00
Christoffer Lerno
c9e1e2d763
Replace $$shufflevector with $$swizzle and $$swizzle2. Add builtin swizzle accessors.
2023-01-22 01:12:55 +01:00
Christoffer Lerno
1ab304dc64
Fix of overalignment on deref.
2023-01-19 12:29:17 +01:00
Christoffer Lerno
dc16f65c8e
Change printfln to printfn. Make LLVM 15 tests default.
2023-01-11 18:00:08 +01:00
Christoffer Lerno
f622b3bd4c
Cleanup of naming change to optional. Fix of builtin optional handling.
2022-12-27 23:55:23 +01:00
Dmitry Atamanov
8b0d409695
Add inlined memcpy and memset builtins and macros. ( #668 )
2022-12-12 11:45:01 +01:00
Christoffer Lerno
73619817ba
Update panic function and early work on tests. Optimize ABI lowering.
2022-11-03 19:38:34 +01:00
Christoffer Lerno
98ae13c03d
Add exact and overflow builtins.
2022-10-28 01:14:10 +02:00
Christoffer Lerno
b1ed066e55
Fix coerce store / load to properly rely on alloc size like Clang does it. Version bump.
2022-10-15 22:12:52 +02:00
Christoffer Lerno
feba7b8ed2
Rename muladd and fmuladd and insert it at codegen.
2022-10-10 11:14:57 +02:00
Dmitry Atamanov
3624c2a72c
Added $$muladd built-in.
2022-10-10 11:14:57 +02:00
Dmitry Atamanov
7fa129932d
Added $$memmove built-in.
2022-10-08 21:41:11 +02:00
Christoffer Lerno
4fa4b2a631
Refactored builtins. Added reduce operations and powi. Version bump.
2022-09-19 14:58:48 +02:00
Christoffer Lerno
9b14340a57
Added prefetch builtin.
2022-09-18 23:27:42 +02:00
Christoffer Lerno
a66c0942f8
Adding saturated builtins. Remove LLVM 12 support. Remove old llvm optimizer use.
2022-09-17 12:03:08 +02:00
Christoffer Lerno
c8166f6fdb
Adding $$reverse. Bump to 0.3.45
2022-09-16 14:53:17 +02:00
Christoffer Lerno
4d27150952
Adding $$shufflevector. Bump to 0.3.44
2022-09-16 13:39:03 +02:00
Dmitry Atamanov
7a07b8ff13
Add new built-ins ( #551 )
...
* Added new built-ins: $$copysign, $$exp2, $$floor, $$llrint, $$llround, $$lrint, $$lround, $$nearbyint, $$rint, $$round, $$roundeven
* Disable $$llrint, $$llround, $$lrint and $$lround
2022-08-30 09:50:28 +02:00
Dmitry Atamanov
5d15ec23bb
Rename $$fabs to $$abs
2022-08-29 12:51:02 +02:00
Christoffer Lerno
54d6b1a4ec
Fix $$min/$$max for vector.
2022-08-29 10:23:16 +02:00