Christoffer Lerno
daa952d990
Update quicksort.
2023-07-04 21:03:48 +02:00
Pierre Curto
f8a3e4f6f0
add basic quicksort support ( #816 )
...
* lib/std/sort: refactor binarysearch namespace to prepare for sorting
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* std/lib/sort: add basic quicksort support
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std/hash: use method first parameter inferred type
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std/hash: add fnv64a support
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
---------
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-07-04 20:15:03 +02:00
Christoffer Lerno
c249c3f3b6
Fix of accidentally printing "prev" when using $checks. Updated binary search.
2023-07-04 02:29:02 +02:00
Pierre Curto
55d17ec990
add the std::sort::binarysearch module
...
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-07-04 01:35:10 +02:00
Pierre Curto
2ac213a3ce
lib/std/io/stream: add ReadBuffer and WriteBuffer streams
...
ReadBuffer and WriterBuffer buffer stream reads and writes to a stream.
Useful in situations where the underlying stream is sensitive to the number
of read or write calls.
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-07-01 17:38:09 +02:00
Christoffer Lerno
57c8b5fc75
Fix on rethrow + macros.
2023-06-27 20:41:17 +02:00
Christoffer Lerno
fc054dad81
Added some to_string.
2023-06-26 16:21:07 +02:00
Christoffer Lerno
83f8bbb91b
Update range to have exclusive and inclusive range.
2023-06-26 10:18:09 +02:00
Christoffer Lerno
8c73a450a1
Reduce memory consumtion. Add "range"
2023-06-25 21:39:53 +02:00
Christoffer Lerno
fedffc2f35
Name change, some updates using "from end" indexing.
2023-06-24 15:20:40 +02:00
Pierre Curto
55a1f794cf
lib/std/encoding: add base64 support
...
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-06-24 14:23:18 +02:00
Pierre Curto
0ab0f727ad
lib/std: fix ByteWriter.read_from method ( #793 )
...
* lib/std: fix ByteWriter.read_from method
When reading from a stream which does not have an available method,
ByteWriter would not make any progress if its buffer was empty.
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* test/unit/stdlib/io: use separate module for TestReader
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
---------
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-06-23 10:44:36 +02:00
Pierre Curto
f439539c6e
lib::std::core::bitorder: add read and write
...
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-06-19 23:34:30 +02:00
Christoffer Lerno
8eaad81800
Dead strip by default. Add list to_string. Fix missing check for dynamic calls.
2023-06-05 14:54:17 +02:00
Christoffer Lerno
3e54d13b62
Prefer def
2023-06-02 20:08:45 +02:00
Christoffer Lerno
ddd0497922
Better lowering of distinct types. Noreturn function call expr recognized as a "jump" for escape analysis. Preferring "def" in libs. To upper / to lower for ascii. Initial dynlib support.
2023-05-21 21:41:01 +02:00
Tonis
a877d4458c
Improve Matrix identity functions and add Quaternion to matrix function ( #765 )
...
* Edit matrix identity fn and add quaternion to matrix fn
* Change matrix identity macros to constants
---------
Co-authored-by: Tonis <tanton@paysure.solutions >
2023-05-16 11:50:01 +02:00
Christoffer Lerno
172d561f07
Change syntax of $if, $assert, $include, $echo. Introduces $error
2023-05-06 12:18:00 +02:00
Christoffer Lerno
e8642d6797
Fixes to access grammar. "delete" => "remove"
2023-04-24 09:10:35 +02:00
Christoffer Lerno
8059dc1539
delete_if, retain_if, rindex_of, compact, compact_count added to List.
2023-04-21 14:45:25 +02:00
Christoffer Lerno
809321e20c
Updated grammar. Removal of elif. Removal of ':' ';' in some ct statements. Empty faults is now an error. Remove "define" for types. Remove "private". Better errors on incorrect bitstruct syntax. Introduction of wildcard type rather than optional wildcard. Removal of scaled vector type. mkdir and rmdir. Disallow define @Foo() = { @inline }. Add handling for @optreturn and change it to @return!. Restrict interface style functions. Updated x64 ABI. stdlib updates to string. Removed deprecated functions. Update how variadics are implemented. Extended error messages. x86 ABI fixes. Shift check fixes. '!' and '?' are flipped. No trailing ',' allowed in functions. Fix to string parsing. Allow l suffix. Simplifying flatpath. any replaces variant, anyfault replaces anyerr. Allow getting the underlying type of anyfault. De-duplicate string constants. Fix of readme. Extended list. Fix of "(MyEnum)x + 1". Clock and DateTime types. Fixes to array concat.
2023-04-21 10:56:39 +02:00
Christoffer Lerno
316af36723
Add dstringwriter.
2023-03-22 12:23:47 +01:00
Christoffer Lerno
9850adfa56
Rename OUT_OF_DISK => OUT_OF_SPACE. Allow byte writer to take a buffer.
2023-03-22 11:52:45 +01:00
Christoffer Lerno
954521228e
Make casts explicit when casting to pointer offset. Better localization of error when narrowing fails. New printf formatting based on musl plus %a output.
2023-03-19 21:15:44 +01:00
Christoffer Lerno
48a35b3277
Signbit, tests of frexp.
2023-03-18 19:13:17 +01:00
Christoffer Lerno
8b0df0ee11
try? / catch?
2023-03-17 22:49:48 +01:00
Christoffer Lerno
7075f834dd
Remove null-casts for anyerr.
2023-03-15 16:28:48 +01:00
Christoffer Lerno
e2b9a35dfe
Add tentative ".ordinal" on faults. Allow anyerr and fault to be initialized with null.
2023-03-15 14:32:00 +01:00
Christoffer Lerno
fb761b0cc5
Added OnStack allocator. Added dirname, basename and extension to path functions.
2023-03-13 11:51:27 +01:00
Christoffer Lerno
2607062cb6
Updated Path. Some work towards loading dirs.
2023-03-11 18:32:44 +01:00
Christoffer Lerno
7a2d73c690
mproved Path code.
2023-03-10 18:46:21 +01:00
Christoffer Lerno
d2a16961cf
More refactorings in the stdlib. More Path functions. Updated Win32 format for types. Fix bug with codegen of defer if ... More string functions.
2023-03-09 20:44:27 +01:00
Christoffer Lerno
b94c647ead
Distinct String
2023-03-08 14:32:07 +01:00
Christoffer Lerno
89de0a70d2
"@ensure" now correctly only runs on non-optional results. Subtypes now merge to a single type. Beginning deprecation of "std::core::str". Refreshed String functions. Consistent use of ".using" parameter. Functions moved to string methods. Tests on more string methods. Fixes to split, rindex_of.
2023-03-08 00:13:48 +01:00
Christoffer Lerno
7008dab113
Add primitive and incomplete object printout. First version of json parser.
2023-03-07 09:53:01 +01:00
Christoffer Lerno
300f4d38ab
Addition of object type. Fixes to const union initialization.
2023-03-06 23:58:13 +01:00
Tonis
ff4c35fae1
Added Matrix identity macros and few matrix unit tests ( #742 )
...
* Add matrix identity macros
* Add matrix some matrix unit tests
---------
Co-authored-by: Tonis <tanton@paysure.solutions >
2023-03-05 20:39:55 +01:00
Dmitry Atamanov
549e1b6029
Added std::collections::enummap.
2023-03-04 22:41:22 +01:00
Christoffer Lerno
3449d2ea88
Remove all array pointer decay.
2023-03-02 19:47:24 +01:00
Christoffer Lerno
07e4aab48b
Fix of bool -> float vector cast. Correctly widen C style varargs for distinct types and optionals.
2023-03-02 11:35:05 +01:00
Christoffer Lerno
2f255ac5c3
Sha1.
2023-02-24 10:49:01 +01:00
Christoffer Lerno
b175b9318a
Fix conversion if (int x = foo()). Initial stream api. Extended enumset.
2023-02-22 17:06:06 +01:00
Christoffer Lerno
e3416a1c40
Allow @test with modules. Change name mangling for non exports.
2023-02-20 16:02:30 +01:00
Christoffer Lerno
d35d50555e
ipv4/ipv6 parsing and back to string.
2023-02-20 09:31:11 +01:00
Christoffer Lerno
19963e4e19
Fix attributes for nested bitstructs. Add some functions to std::net
2023-02-19 23:35:02 +01:00
Christoffer Lerno
62fbf4da47
Add simple bitstruct.
2023-02-18 16:59:52 +01:00
Christoffer Lerno
6e8c69cd52
Add & ^ | to bitstructs.
2023-02-18 16:21:30 +01:00
Christoffer Lerno
a0a5c940f1
Add --strip-unused.
2023-02-16 22:11:42 +01:00
Dmitry Atamanov
4519eebe4d
Added @likely, @unlikely and @expect macros. ( #727 )
2023-02-15 00:02:01 +01:00
Christoffer Lerno
df77b692d6
Support "typedef"
2023-02-14 16:49:27 +01:00