Pierre Curto
c060569599
add tests for Mutex ( #925 )
...
* std/lib: add tests for Mutex
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/collections: add missing import
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* std/collections: add RingBuffer
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
---------
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-08-13 17:39:09 +02:00
Christoffer Lerno
d83f591184
Check for mutex initialization. Fix missing check on optional for certain macro situations.
2023-08-12 11:55:49 +02:00
Christoffer Lerno
b6f302d1c6
Fix issues with thread, add some simple test.
2023-08-12 02:16:46 +02:00
Pierre Curto
a846ab9cc0
std/lib/threads: fix typo
...
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-08-11 21:08:17 +02:00
Christoffer Lerno
3e765a3f3e
Hash maps now copy keys if keys are copyable.
2023-08-10 21:14:24 +02:00
Christoffer Lerno
5b5bc7fdbb
Fix void[] -> char[] cast.
2023-08-07 20:58:20 +02:00
Christoffer Lerno
68aadc958f
Added read_any/write_any.
2023-08-07 19:55:10 +02:00
Pierre Curto
e4febe62ef
lib/std/io: make PathWalker return an optional
...
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-08-02 23:05:28 +02:00
Pierre Curto
9b1c75d061
std/lib: simplify String.{,r}index_of and improve speed for the index… ( #907 )
...
* std/lib: simplify String.{,r}index_of and improve speed for the index_of one
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std/collections: add EnumMap.get_ref
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
---------
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-08-02 11:43:58 +02:00
Pierre Curto
701d6a0746
std/lib/io: add Scanner ( #904 )
...
* std/lib/io: add Scanner
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std/core: use existing methods in String.convert_ascii_to_{lower, upper}
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
---------
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-08-01 10:47:21 +02:00
Christoffer Lerno
8a335fc64c
Updated stack trace. This addresses #898 .
2023-07-31 10:57:56 +02:00
Christoffer Lerno
b759abc954
Fix to DString reserve.
2023-07-29 22:42:55 +02:00
Pierre Curto
6808a38c9f
add std::io::stream::ByteBuffer; fix std::io::Path::walk ( #895 )
...
* lib/std/io/stream: add some inlines
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std/io/stream add ByteBuffer
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std/io/path: fix free of paths in walk
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std/bits: remove unnecessary receiver type
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
---------
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-07-29 21:21:45 +02:00
Christoffer Lerno
108b2244d8
Fix bug in aligned_realloc, fixes issue when a type is not resolved before the cast. #897
2023-07-28 22:21:23 +02:00
Christoffer Lerno
ada3ea08fc
Some initial parse output. Enforce handling of optionals. Fix issue where constants were folded despite the fact that they shouldn't be. Fix bug related to return foo() where foo() returns void!. ( #893 )
2023-07-27 22:58:41 +02:00
Pierre Curto
d0fa473d61
lib/std/io: assert in Formatter.out_str on "Invalid enum" if an enum value is out of range ( #892 )
...
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-07-27 21:18:31 +02:00
Christoffer Lerno
499c82b089
Updated indentation to C3 standard.
2023-07-26 14:01:24 +02:00
Pierre Curto
a376d8e2bf
add ERRNO for macOS, improve net error messages ( #885 )
...
* lib/std/libc: add ERRNO values for macOS
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std/net: improve error messages
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
---------
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-07-26 13:41:35 +02:00
Pierre Curto
59b077223b
use IoError.UNSUPPORTED_OPERATION instead of asserts; improve Path.walk
...
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-07-26 13:05:12 +02:00
Christoffer Lerno
3929e2057d
Change unreachable code to error. Remove unreachable where the compiler now can detect reachability.
2023-07-25 23:31:05 +02:00
Pierre Curto
242006d05d
add is_absolute and absolute methods to path::Path ( #882 )
...
* lib/std/io/os: remove unnecessary dup in native_ls
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std/core: add String.index_of_char and String.rindex_of_char
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std/io: add Path.is_absolute
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std/io: add Path.absolute
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std: fix Path.normalize on files starting with `.`; add Path.walk
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
---------
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-07-25 23:23:56 +02:00
Christoffer Lerno
b74b62e242
Fixes to broken docs parsing. Fixes #880 .
2023-07-25 17:55:46 +02:00
Pierre Curto
3e78a70552
lib/std/io: replace IoError.FILE_EOF with IoError.EOF
...
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-07-25 11:32:47 +02:00
Christoffer Lerno
9e477056ed
Fixes to $defined implementation.
2023-07-23 23:55:38 +02:00
Dmitry Atamanov
e72ec2f605
std::bits fixes.
2023-07-22 17:40:08 +02:00
Christoffer Lerno
c4f8d5f25e
Update range.
2023-07-19 21:56:52 +02:00
Dmitry Atamanov
7fbedae604
Add has function to Range and ExclusiveRange.
2023-07-19 21:45:14 +02:00
Pierre Curto
b453186de5
lib/std/collections: add init and tinit methods to PriorityQueue
...
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-07-19 21:44:20 +02:00
Dmitry Atamanov
49ea950f78
Add is_even and is_odd to math module
2023-07-19 11:38:49 +02:00
Christoffer Lerno
5aae9f3204
Correctly apply fixup to switch macros. Addresses new issue in #862 . Updates @pool.
2023-07-19 11:38:18 +02:00
Christoffer Lerno
5c2e82fc8b
More use of temp allocator.
2023-07-19 02:46:43 +02:00
Christoffer Lerno
4dcfb7a675
Fix of #862 where enums declarations where not regenerated. Updated @pool implementation.
2023-07-18 23:23:53 +02:00
Pierre Curto
491c5ceec5
support for List in quicksort; add HashMap.@each ( #861 )
...
* compiler: fix typo in error message about failed name resolution
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std/sort: add List support to quicksort
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std/collections: add HashMap.@each
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
---------
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-07-18 12:18:12 +02:00
Christoffer Lerno
2e6c8721bc
Fix of is_comparable.
2023-07-17 21:22:16 +02:00
Pierre Curto
fd5336c56e
lib/std/io/stream: add LimitReader ( #858 )
...
* lib/std/io/stream: add LimitReader
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std: more method conversions to use new receiver notation
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
---------
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-07-17 20:22:29 +02:00
Pierre Curto
89e084938f
cross platform socket interface ( #857 )
...
* lib/std/net: add Network, Socket and Listener
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std/net: add SocketOption
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std/net: fixes for win32 and wasm
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
---------
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-07-16 14:14:36 +02:00
Pierre Curto
35bffdadc2
improve the sort and collections libs ( #853 )
...
* lib/std/sort: unify binarysearch and binarysearch_with; add comments to quicksort
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std/collections: mark List.{len, is_empty, get} with @inline
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std/collections: add PriorityQueueMax; add tests for PriorityQueue and PriorityQueueMax
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
---------
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-07-15 19:08:54 +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
ab32e0dc9d
Fix for tests & callstack.
2023-07-13 21:48:48 +02:00
Christoffer Lerno
26ee4babcf
Native_fopen for Win32 had incorrect arguments.
2023-07-13 19:54:27 +02:00
Christoffer Lerno
c7d90baad1
Error message on bus error or segmentation fault. Some additional SIG… ( #848 )
...
* Error message on bus error or segmentation fault. Some additional SIG info. Full debug info by default. Trapping is now debugtrap rather than trap for LLVM. Row now initialized when entering function for stacktrace.
2023-07-13 15:25:06 +02:00
Pierre Curto
1ffe430df0
lib/std/sort: use Hoare's algorithm in quicksort
...
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-07-11 11:09:51 +02:00
Pierre Curto
0efb142c88
std/lib/sort: avoid overflow in binary search
...
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-07-11 11:09:51 +02:00
Pierre Curto
2437573a8f
lib/std/io: add Stream.read_all ( #843 )
...
* lib/std/io: add Stream.read_all
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
* lib/std/core: use shortened receiver notation
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
---------
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-07-10 20:13:31 +02:00
Christoffer Lerno
e2676a5c7f
Change zero terminated wide strings to use WString over Char16
2023-07-09 20:10:17 +02:00
IgneousRed
943d010dfc
New Rngs ( #841 )
...
* New Rngs
* Mistake
* fix Mcg using wrong constant
2023-07-09 15:00:19 +02:00
Christoffer Lerno
38cc24af27
binarysearch is now a builtin, quicksort as well.
2023-07-09 01:49:43 +02:00
Christoffer Lerno
053f7880e5
Simplified quicksort with $switch.
2023-07-09 01:46:45 +02:00
Christoffer Lerno
9543fbbf1c
Exhaustive switch on enums. This addresses #838
2023-07-09 01:18:01 +02:00
Pierre Curto
77b3214746
std/lib/sort: update quicksort to use the new generics
...
Signed-off-by: Pierre Curto <pierre.curto@gmail.com >
2023-07-08 14:06:40 +02:00