Christoffer Lerno
a7309b217e
Add --print-large-functions for checking which functions likely dominate the compile time.
2026-02-16 00:13:19 +01:00
Christoffer Lerno
a78a169a17
Slim down the string_to_int tests by 800 MB.
2026-02-15 00:05:35 +01:00
Zack Puhl
768d24d580
[stdlib] Add array even, odd, and unlace macros
2026-02-13 23:19:31 +01:00
Fernando López Guevara
f079fa82b2
fix(std-io): make uint128 decimal formatting safe ( #2924 )
...
* fix(std-io): make uint128 decimal formatting safe and add all-base
numeric coverage
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2026-02-11 23:50:16 +01:00
Zack Puhl
75d454b6a6
Add mem_allocator realloc_array Macros ( #2760 )
...
* Add mem_allocator `realloc_array` Macros
* test, ensure `realloc_array` to 0 size returns `null`
* update release notes
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2026-01-25 16:12:44 +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
Book-reader
cd2d1a04d8
Use a Printable struct for ansi rgb formatting instead of explicit allocations ( #2696 )
...
* Use a `Printable` struct for ansi rgb formatting
* update release notes
* Some renaming.
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2026-01-15 22:26:18 +01:00
Zack Puhl
3f7a547d8a
Merge AsciiCharset CT/non-CT Functions ( #2688 )
...
* Merge AsciiCharset CT/non-CT Functions
* release notes
* incorporate helpful review feedback
* re-separate 'create_set' and 'contains' but keep 'combine_sets'; update tests
* tabs (annoying IDE)
* Restored old code verbatim for smaller diff. Split combine_sets into easier to macro/function for runtime / macro version, this also allows for more easy type checks.
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2026-01-15 21:39:48 +01:00
mikelgarai
cd4c586c3f
Fixed macro hash_vec(vec): it was checking only the first bytes (4 or 8, not sure) ( #2718 )
...
* Fixed macro hash_vec(vec): it was checking only 8 bytes
* use $sizeof() directly as it is correct now
* Added unit test for vector types
Tests that hashes match for same values and that they don't match
when changing a single bit on any of the vector elements
* Changed hardcoded value for the compiler option
* Release note
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2026-01-14 23:22:10 +01:00
Christoffer Lerno
e93f22fbda
- bitorder::read and bitorder::write may fail because of unaligned access #2734 .
2026-01-12 01:11:31 +01:00
Christoffer Lerno
739e91efa4
- Reduced memory usage for backtraces on Linux.
...
- `String.tokenize_all` would yield one too many empty tokens at the end.
- `String.replace` no longer depends on `String.split`.
2025-12-31 10:08:00 +01:00
Zack Puhl
9aec5de105
[stdlib] Add CT @in Macro/Builtin ( #2662 )
...
* [stdlib] Add CT `@in` Macro/Builtin
2025-12-19 15:55:20 +01:00
Manu Linares
dec49b05b8
Fix: Correct precision calculation for floating point formatting ( #2657 )
...
* Fix: Correct precision calculation for floating point formatting
---------
Signed-off-by: Manuel Barrio Linares <mbarriolinares@gmail.com >
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2025-12-19 15:51:42 +01:00
Christoffer Lerno
415c9639e7
- Deprecated DString.append_chars, use DString.append_string
...
- Deprecated `DString.append_string` for DStrings, use `DString.append_dstring` instead.
- Added `DString.append_char_buffer`.
2025-12-16 20:17:54 +01:00
Christoffer Lerno
887ed5b9e9
- String.to_integer does not correctly return in some cases where it should #2590 .
2025-11-24 12:46:31 +01:00
m0tholith
7063e684ba
Make expected error in test::@error macro optional
...
If not supplied with a fault, `test::@error` checks if a fault of any
type/value was returned
2025-11-07 11:46:37 +01:00
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