Christoffer Lerno
3888fcb182
- Add @operator_r and @operator_s attributes.
2025-04-13 13:43:03 +02:00
Christoffer Lerno
89d205258e
Fix test.
2025-04-11 19:11:49 +02:00
Christoffer Lerno
0f2d425297
Operator overloading for + - * / % & | ^ << >> ~ == !=
2025-04-11 18:46:22 +02:00
Christoffer Lerno
8cce7f6836
Incorrect rounding at compile time going from double to int.
2025-04-07 02:36:04 +02:00
Christoffer Lerno
ded5fde2d5
Fix test, fix type name.
2025-04-04 13:48:07 +02:00
Christoffer Lerno
65fb977e89
Clearer errors when using a &ref parameter with type.
2025-04-04 13:21:53 +02:00
Christoffer Lerno
e3f3b6f5f1
Better errors trying to convert an enum to an int and vice versa. Trying to cast an enum to int and back caused the compiler to crash.
2025-04-04 02:38:51 +02:00
Christoffer Lerno
1668999f90
Better errors on some common casting mistakes (pointer->slice, String->ZString, deref pointer->array) #2064 .
2025-04-04 00:12:52 +02:00
Sander van den Bosch
561a683230
Added .hash() functions for vectors ( #2043 )
...
* Added .hash() functions for vectors
* Update test to a non-zero sized vector
* Changed vector hash functions to hash the underlying bytes in a char slice, the same approch is used for arrays
* Added test for hashed
* Updated formatting to be consistant with C3 code style
* Formatting, use "self"
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-03-31 16:33:48 +02:00
Christoffer Lerno
5c46b0c2a0
Add @each_row for the csv module.
2025-03-26 18:19:19 +01:00
Christoffer Lerno
4538a1f50d
- Correctly errors when a generic module contains a self-generic type.
2025-03-26 18:04:00 +01:00
Christoffer Lerno
fa707db078
Do not implicitly convert enums to ordinal in formatting functions.
2025-03-25 12:27:51 +01:00
Christoffer Lerno
d760378b02
- Added @format attribute for compile time printf validation #2057 .
...
- Bug when printing a boolean value as an integer using printf.
2025-03-24 13:32:44 +01:00
Christoffer Lerno
82f1b543ed
&self not runtime null-checked in macro #1827 . Regression in temp allocators.
2025-03-23 22:50:09 +01:00
Christoffer Lerno
a03d821602
- Use @pool_init() to set up a temp pool on a thread. Only the main thread has implicit temp pool setup.
...
- `tmem` is now a variable.
2025-03-21 17:08:58 +01:00
Christoffer Lerno
207bcfea02
os::exit and os::fastexit added.
2025-03-20 13:36:59 +01:00
Christoffer Lerno
0beb30c979
Updated error message #2037
2025-03-19 23:25:56 +01:00
Christoffer Lerno
84753bde6d
- Allow inferred type on body parameters. E.g. @stack_mem(1024; alloc) { ... };
2025-03-18 15:40:26 +01:00
Christoffer Lerno
72608ce01d
- Temp allocator now supports more than 2 in-flight stacks.
...
- Printing stacktrace uses its own temp allocator.
- `@pool` no longer takes an argument.
- `Allocator` interface removes `mark` and `reset`.
- DynamicArenaAllocator has changed init function.
- Added `BackedArenaAllocator` which is allocated to a fixed size, then allocates on the backing allocator and supports mark/reset.
2025-03-18 15:16:22 +01:00
Christoffer Lerno
82cc49b388
- !!foo now works same as as ! ! foo.
...
- Incorrectly allowed getting pointer to a macro #2049 .
2025-03-16 23:57:30 +01: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
8b49e6c14d
Rename def to alias.
2025-03-13 11:22:27 +01:00
Christoffer Lerno
b8ae2b06d6
Rename @return! to @return?
2025-03-12 21:40:30 +01:00
Christoffer Lerno
c9dbd86d82
Crash resolving a method on Foo[2] when Foo is distinct #2042 .
2025-03-12 15:45:43 +01:00
Christoffer Lerno
d5b211a786
Fault nameof prefixes the first last module path, for instance std::io::EOF is rendered as io::EOF.
2025-03-11 22:46:02 +01:00
Christoffer Lerno
f5d02cd0d2
Crash when trying to convert a struct slice to a vector #2039 .
2025-03-11 21:18:19 +01:00
Christoffer Lerno
8c23c5028d
Make @public import recursive. #2018
...
`import` can now both be @public and @norecurse.
2025-03-10 15:33:29 +01:00
Christoffer Lerno
fbc8168bb9
Improve error message on foo ?? io::EOF with missing '?' #2036 . Fix build on Android
2025-03-10 11:02:43 +01: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
BWindey
1461414128
[TEST] Add unit tests for libc ( #1974 )
...
Some tests for libc + fixes
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-03-08 22:25:21 +01:00
m0tholith
dc8b35e62f
Added is_initalized function to list, linkedlist, and anylist types ( #2027 )
...
* Added `is_initalized` function to list, linkedlist, and anylist types
2025-03-08 21:49:17 +01:00
Christoffer Lerno
1dca90b89d
Fix tests.
2025-03-07 23:54:01 +01:00
Christoffer Lerno
a088a5057a
Remove if (catch foo) { case ... } syntax.
2025-03-07 22:48:28 +01:00
Christoffer Lerno
5482107ca8
Some formatting and updated test. Updated releasenotes.
2025-03-07 00:14:41 +01:00
Stephen Molloy
1fba9a7993
String.to_float("+") fails ( #2021 )
...
* When stripping +/- from the start of a string in String.to_real: only do this if the string length is greater than 1.
* Added a test for the String.to_float("+") bug
2025-03-07 00:02:13 +01:00
Christoffer Lerno
cf0405930e
Fix case where occasionally atomic_load would miscompile.
2025-03-05 01:58:07 +01:00
Christoffer Lerno
2439405e70
- $foreach "()" replaced by trailing ":" $foreach ($x, $y : $foo) -> $foreach $x, $y : $foo:
...
- `$for` "()" replaced by trailing ":" `$for (var $x = 0; $x < FOO; $x++)` -> `$for var $x = 0; $x < FOO; $x++:`
- `$switch` "()" replaced by trailing ":" `$switch ($Type)` -> `$switch $Type:`
- Empty `$switch` requires trailing ":" `$switch` -> `$switch:`
2025-03-04 16:13:47 +01:00
Jonas
46b52ec9ce
Fix Atomic.max ( #2011 )
...
* Fix atomic max and comments in std::atomic
* Updates to `Atomic` to handle distinct types and booleans.
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-03-04 15:39:03 +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
0ef99c23a8
Allow swizzling assign, eg. abc.xz += { 5, 10 };
2025-03-04 02:18:24 +01:00
Christoffer Lerno
0a905d8458
Change all hash functions to have a common hash function.
2025-03-03 20:07:02 +01:00
Christoffer Lerno
261bfb97c6
Rename length_sq to sq_magnitude
2025-03-03 18:47:55 +01:00
Christoffer Lerno
cc94199131
Remove Vec2 and other aliases from std::math.
2025-03-03 18:13:39 +01:00
Christoffer Lerno
0925010c07
Removal of any-switches
2025-03-03 15:02:25 +01:00
Christoffer Lerno
3d6f28919c
Aliases were incorrectly considered compile time constants.
2025-03-03 11:35:18 +01:00
Christoffer Lerno
910fc6e364
Post and pre-decrement operators switched places for vector elements. #2010 .
2025-03-03 01:21:01 +01:00
Christoffer Lerno
c40198b016
- new_* functions in general moved to version without new_ prefix.
...
- `string::new_from_*` changed to `string::from_*`.
- `String.to_utf16_copy` and related changed to `String.to_utf16`.
- `String.to_utf16_tcopy` and related changed to `String.to_temp_utf16`
- `mem::temp_new` changed to `mem::tnew`.
- `mem::temp_alloc` and related changed to `mem::talloc`.
- `mem::temp_new_array` changed to `mem::temp_array`.
2025-03-03 00:32:20 +01:00
Christoffer Lerno
61c67c8f23
Fix address sanitizer to work on MachO targets (e.g. MacOS).
2025-03-03 00:32:20 +01:00
Christoffer Lerno
74a6e9f0c0
Add struct swizzle test.
2025-03-03 00:32:20 +01:00
Christoffer Lerno
8bb99c6f81
Fixes to examples and MSVC compilation.
2025-03-03 00:32:20 +01:00