Zack Puhl
078d9dc0b7
Add LinkedList Operators and Update Tests ( #2438 )
...
* Add LinkedList Operators and Update Tests
* add linkedlist printing and `@new` macros (single-line init and pool-capable)
* add linkedlist node and reg iterator; comparisons w/ ==
* Fix benchmarks. Drop random access to the linked list using []. Only return a direct array view.
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-09-06 11:57:21 +02:00
Christoffer Lerno
e605a21fd3
Revert "Revert 0.7.6 code for 0.7.5 re-release"
...
This reverts commit d1349c9cfb .
2025-09-05 23:30:35 +02:00
Christoffer Lerno
d1349c9cfb
Revert 0.7.6 code for 0.7.5 re-release
2025-09-05 18:42:54 +02:00
niedlich
cf14787552
Typo fixes ( #2457 )
...
* fix typos in comments and strings
* fix typos in symbols (and some comments/strings)
* fix typos in releasenotes.md
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-09-04 01:07:07 +02:00
Christoffer Lerno
47316dac59
Add compile time ternary $val ??? <expr> : <expr>.
2025-08-28 01:56:05 +02:00
Zack Puhl
410a25f334
Add array @reduce, @filter, @any, @all, & @indices_of ( #2419 )
...
* wip: array reduce and any/all
* wip: continue adding more functional-like array module functions
* wip: documentation and other fixes
* finish unit tests, require INDEX variable in lambdas, ready for first review
* don't worry about iterating by ref (it wasn't passing it that way anyhow)
* update release notes again
* simplify, remove "summary operators" and related tests
* Use more $defined, remove "has_operator". Fix regression in `$defined(var $f = 123)`
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-08-25 14:47:08 +02:00
Sander van den Bosch
261184b5c1
Add HashSet and String methods ( #2386 )
...
* Add `String.contains_char` using `String.index_of_char` and `HashSet.values` together with `HashSet.tvalues`
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-08-16 16:57:31 +02:00
Zack Puhl
702b63ddb7
Add array::zip and Related Macros ( #2370 )
...
* zip / zip_into
* Deprecate `add_array` in favour of `push_all` on lists.
* Add support for generic lists for zip.
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-08-16 13:30:24 +02:00
Zack Puhl
eb8fb8871f
Fix $$str_hash to use a5hash like String.hash() ( #2403 )
...
* Fix `$$str_hash` to use `a5hash` like `String.hash()`
2025-08-14 20:24:01 +02:00
Zack Puhl
c8d39251a9
Add compile-time @min and @max ( #2378 )
...
* Add compile-time `@min` and `@max`
2025-08-13 17:23:24 +02:00
Zack Puhl
aae873c044
Add bitsizeof to Builtins ( #2376 )
...
* Add `bitsizeof` to Builtins
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-08-06 13:55:39 +02:00
Zack Puhl
6471728ee5
Add @clz CT macro ( #2367 )
...
* Add `@clz` CT macro
2025-08-06 13:42:52 +02:00
LowByteFox
0e10b71cbf
Stdlib: SingleSizeObjectPool implementation ( #2360 )
...
* implement working single size object pool
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-08-04 14:54:26 +02:00
Zack Puhl
9d2be2851b
Add @try Builtin ( #2333 )
...
* Add @try macro
* Add @try_catch. Update release notes.
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-07-29 00:50:56 +02:00
Christoffer Lerno
9575698fa4
Add String conversion functions snake_case -> PascalCase and vice versa.
2025-07-23 00:26:44 +02:00
Christoffer Lerno
869bcf8b2b
Removing use of $assignable and deprecate it. Fix regression for stacktraces on MacOS. Added readline_to_stream. Regression: Chaining an optional together with contracts could in some cases lose the optional.
2025-07-21 03:20:40 +02:00
Kiana
802fbfcf1e
Add ansi.c3 for AnsiColor support ( #2261 )
...
* Add ansi.c3 for AnsiColor support
* Added tests
updated functions to macros
added formatting codes
* Fixed indentation
* Update names. Add plain rgb version. Add runtime colors.
* Update indentation, add 21-29
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-07-06 01:37:54 +02:00
Christoffer Lerno
0d170a70b6
Make to_float more tolerant to spaces.
2025-07-05 19:42:44 +02:00
Christoffer Lerno
af192354fd
Comparing a null ZString with a non-null ZString would crash.
2025-07-02 01:22:34 +02:00
Disheng Su
d46733e11a
Add string escaping and unescaping functionality ( #2243 )
...
* Add `String.escape`, `String.unescape` for escaping and unescaping a string.
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-06-29 20:11:11 +02:00
Christoffer Lerno
e0237096d6
- Support untyped second argument for operator overloading.
...
- Distinct versions of builtin types ignore @operator overloads #2204 .
- @operator macro using untyped parameter causes compiler segfault #2200 .
- Add comparison with `==` for ZString types.
2025-06-13 17:12:39 +02:00
Christoffer Lerno
5e45c34f21
- Deprecate String.is_zstr and String.quick_zstr #2188 .
2025-06-06 15:30:46 +02:00
Christoffer Lerno
b5ddc36d7f
Limit vector max size, default is 4096 bits, but may be increased using --max-vector-size.
2025-05-23 21:40:14 +02:00
DragonFriend
50b4d7aa35
Add replace and treplace to String ( #2127 )
...
* Add replace and treplace functions to String
2025-05-14 11:00:20 +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
d313afa487
Add String.count to count the number of instances of a string.
2025-05-02 21:48:04 +02:00
Christoffer Lerno
8a0907cb70
Add String.tokenize_all to replace the now deprecated String.splitter
2025-05-02 20:51:15 +02:00
Christoffer Lerno
8a09b2e5f7
std::ascii moved into std::core::ascii. Old _m variants are deprecated, as is uint methods.
2025-05-02 18:06:28 +02:00
Christoffer Lerno
0d3299f267
Added String.quick_ztr and String.is_zstr
2025-05-02 13:22:13 +02:00
joshringuk@gmail.com
434a0e8e4b
array contains
2025-04-18 18:15:01 +02:00
Christoffer Lerno
f85198e3ee
Added += and related as overloads. Updated tests and docs. Slice2 extracted to its own file.
2025-04-14 00:55:46 +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
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
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
2a895ec7be
First 0.7 update, removing all deprecated features.
2025-03-03 00:32:20 +01:00
Christoffer Lerno
33b05bcfeb
More deprecations in lib6, and updates to lib7
2025-02-27 11:10:41 +01:00
Alex Veden
5046608d1f
added io::stdout().flush() - to force printing test name before possible deadlock
...
mem::scoped() and long jump resilience fixed #1963
fixed --test-nosort argument + extra test for teardown_fn memory leak
Some renaming. Simplify robust test allocator handling. Pop temp allocators in test runner.
`Thread` no longer allocates memory on posix.
Update unprintable struct output.
Correctly give an error if a character literal contains a line break.
2025-02-20 01:15:48 +01:00
Christoffer Lerno
cbacd64987
Update tests to (Foo) { ... } syntax.
2025-02-18 18:53:30 +01:00
Christoffer Lerno
c4212c4649
- Test runner will also check for leaks.
...
- `write` of qoi would leak memory.
- Issue when having an empty `Path` or just "."
- `set_env` would leak memory.
2025-02-10 00:39:02 +01:00
Christoffer Lerno
63f619e5b6
Add tracking allocator to test runner. #1809
2025-02-09 03:10:35 +01:00
Christoffer Lerno
bc63c16c93
Add @select to perform the equivalent of a ? x : y at compile time.
2025-02-06 22:21:26 +01:00
Aleksandr Vedeneev
3a502feb1d
test::eq/ne/gt syntax ( #1928 )
...
* test::eq/ne/gt syntax
* renamed @almost to test::eq_approx
2025-02-05 22:50:25 +01:00
Christoffer Lerno
3c50376175
New test runner
2025-01-30 01:09:48 +01:00
Rene Hangstrup Møller
d8ca0f69f6
fix allocator::new_aligned #1898
2025-01-27 20:38:11 +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
b941f93416
Deprecate old void! @benchmark and @test functions.
2025-01-09 20:33:53 +01:00
Louis Brauer
35812bd7ba
Add String.trim_left() / right() ( #1773 )
...
* Add String.trim_left() / right()
* Fix formatting
2025-01-05 21:53:18 +01:00
Christoffer Lerno
9c22ab8925
Add "skip_empty" to split methods. Add split_to_buffer method.
2024-12-21 15:43:37 +01:00
neokeld
a0f4976b07
Add char_at method in DString
2024-11-30 13:30:20 +01:00