Christoffer Lerno
ea86c9d37a
Fix of issue where multiple methods were accepted for the same type. Fix of issue where a method was linked to a type alias instead of the underlying type. #1661
2024-12-06 13:09:47 +01:00
Christoffer Lerno
d1a2e6e5bd
Update Windows debug output.
2024-12-06 02:18:36 +01:00
konimarti
c96985f1db
sort: add is_sorted ( #1660 )
...
* sort: add is_sorted
Add is_sorted function to check whether a list is sorted or not. Sort
order (ascending or descending) will be detected by looking at the data.
Add tests.
* update the release notes
* refactor: use lambda
2024-12-05 22:37:13 +01:00
Christoffer Lerno
b7010c83e0
Fix windows emit loc.
2024-12-04 21:33:03 +01:00
Christoffer Lerno
20a3d19ac7
Update Windows build to use LLVM 19.1.4
2024-12-04 14:00:18 +01:00
Christoffer Lerno
0ded93ab9b
Do not produce expression locations for windows.
2024-12-04 12:21:12 +01:00
Christoffer Lerno
ec82ec0426
Fix CI.
2024-12-04 00:02:36 +01:00
Christoffer Lerno
6281f8ff89
Add -q option, make --run-once implicitly -q.
...
Add `-v`, `-vv` and `-vvv` options for increasing verbosity, replacing debug-log and debug-stats options. #1601
2024-12-03 23:37:31 +01:00
Koni Marti
2c9d2d4fd7
update the release notes
2024-12-03 21:21:38 +01:00
Christoffer Lerno
8569239bc1
Crash when using --no-obj without compile-only. #1653
2024-12-03 19:48:24 +01:00
konimarti
5463c398cb
Add quickselect ( #1654 )
...
* sort: extract partition from quicksort
Extract the partition logic from quicksort into a macro. This allows to
reuse the partition logic for, e.g., the quickselect algorithm.
* sort: implement quickselect
implement Hoare's selection algorithm (quickselect) on the basis of the
already implemented quicksort. Quickselect allows to find the kth
smallest element in a unordered list with an average time complexity of
O(N) (worst case: O(N^2)).
* add quicksort benchmark
Create a top-level benchmarks folder. Add the benchmark implementation
for the quicksort algorithm.
Benchmarks can then be run in the same way as unit tests from the
root folder with:
c3c compile-benchmarks benchmarks/stdlib/sort
2024-12-03 19:27:26 +01:00
Nexus
7381734913
fix: prevent infinite read-loop by updating left_to_read after write ( #1652 )
...
* fix not updated `left_to_read` after the buffer has been written
2024-12-02 14:34:57 +01:00
Christoffer Lerno
462322026f
Fix bug with missing target in test and crash in benchmark. Note that this doesn't resolve the issues with these yet.
2024-11-30 20:26:04 +01:00
Christoffer Lerno
b5e5c719ed
Enforce single module compilation for static libraries to make constructors run properly.
2024-11-30 15:34:54 +01:00
neokeld
a0f4976b07
Add char_at method in DString
2024-11-30 13:30:20 +01:00
Christoffer Lerno
44c2486a74
Update test for LLVM 20
2024-11-30 12:53:58 +01:00
Christoffer Lerno
5fc6672784
Crash compiling for arm64 when returning 16 byte and smaller structs by value not a power of 2 #1649 .
2024-11-30 11:47:49 +01:00
Christoffer Lerno
bcb1edba90
Update tests.
2024-11-28 23:32:34 +01:00
Christoffer Lerno
8099e7a75d
Update LLVM debug info.
2024-11-28 21:59:20 +01:00
Christoffer Lerno
cc9a501351
Fix bug preventing optionals from being used in ranges or as indices.
2024-11-28 00:48:58 +01:00
Christoffer Lerno
b536a23124
Updated release notes.
2024-11-27 13:46:39 +01:00
Christoffer Lerno
6ca5bcc6b8
Add simple memcpy, memcmp and memset functions for nolibc.
2024-11-27 13:45:41 +01:00
Christoffer Lerno
ac966f118a
Updated base32 / base64 API.
2024-11-27 11:58:28 +01:00
Christoffer Lerno
f13472a8c3
Contracts on generic modules would evaluate too late, sometimes not catching the error until it already occurred elsewhere. Add file::save.
2024-11-27 00:02:43 +01:00
Christoffer Lerno
0e213ae777
Disable report heap allocs using parameter.
2024-11-26 03:11:10 +01:00
Christoffer Lerno
a0c82a6a47
Updated base32 API.
2024-11-26 03:01:45 +01:00
Christoffer Lerno
a087ba608b
Begin unifying baseXX encodings. b64 / hex data strings can now be used with \` as well.
2024-11-25 16:20:10 +01:00
Tim Jurcka
9112d63655
Fix args passed to __asan_region_is_poisoned
2024-11-25 11:44:39 +01:00
Koni Marti
3f7f7a0aa7
base64: use url encoding with updated api
...
Ensure that the URL alphabet for base64 is used with the urlencode
functions (urlencode, urlencode_buffer, urlencode_temp and
urlencode_new) are used. Add a new test.
2024-11-25 11:44:24 +01:00
Koni Marti
8d03aafe72
base32: update base32 api
...
Update the base32 api to be consistent with the recent changes to the
base64 api introduced by commit 60101830 ("Updated base64 encoding
api").
2024-11-25 11:43:40 +01:00
Koni Marti
b0c0fd7dc8
encoding: implement hex encoding (base16)
...
Implement hex encoding and decoding (base16) according to RFC 4648.
Add unit tests.
Link: https://www.rfc-editor.org/rfc/rfc4648
2024-11-25 11:41:22 +01:00
Nexus
c273f26cb3
Add "sources" option support for library. ( #1631 )
...
* Add "sources" support for library manifest
* Add "sources" to library manifest creation
* Add "sources" key to target manifest
* Added fallback for already made libraries
* Remove src/ in library creation
* add changes to releasenotes.md
2024-11-24 15:37:15 +01:00
Christoffer Lerno
60101830cc
Updated base64 encoding api.
2024-11-24 00:14:31 +01:00
Ellipse12
a58d782704
added check for to_string in is_struct_with_default_print
...
The function wasn't checking if the struct had the method `to_string` which made it segfault when trying to override the default to_string on a struct
2024-11-23 23:08:45 +01:00
Koni Marti
9b94c1dda9
fix: base64 decoding
...
Fix the base64 decoding. If there's an 'A' character in the encoded
text, the base64 decode function returns an INVALID_PADDING error. The
reason lies in the way Base64Decoder.init tries to find a suitable
invalid character. Fix this by defining the invalid character as 0xff
(which is already the case for a decoding without padding).
This error has not been caught by the test harness, because no test
contains an 'A' character in the the encoded text yet. Add a new test.
2024-11-23 23:06:44 +01:00
Christoffer Lerno
201a6b350e
Support MSVCRT and OLDNAMES.lib in python script.
2024-11-23 18:54:27 +01:00
Christoffer Lerno
b2724caeda
Begin work on asm label support.
2024-11-23 17:10:42 +01:00
Sander van den Bosch
9d99d556a1
Add .tlb file extention from msvc files to .gitignore
2024-11-22 22:37:38 +01:00
Christoffer Lerno
a1a6511e26
Remove "Timespec"
2024-11-22 16:50:29 +01:00
Christoffer Lerno
652456646f
Prevent methods from using names of properties or fields. #1638
2024-11-22 16:40:33 +01:00
Christoffer Lerno
ca0dc49f64
Improve support for Windows cross compilation on targets with case sensitive file systems.
2024-11-21 23:28:58 +01:00
Christoffer Lerno
ae1b39eb60
Not possible to alias or take reference for extension methods on non-user defined types. #1637
2024-11-21 14:48:13 +01:00
Christoffer Lerno
22f7faf60e
SimpleHeapAllocator bug when splitting blocks allowed memory overrun.
2024-11-21 13:36:24 +01:00
Christoffer Lerno
f3bf9eb14d
Update mingw packages.
2024-11-21 11:31:55 +01:00
Christoffer Lerno
347a1a48d4
Indexing an Optional slice would crash in codegen #1636 .
2024-11-21 11:30:53 +01:00
Christoffer Lerno
c9793457f3
Fix issue with properties in different targets not being respected. #1633
2024-11-21 01:24:44 +01:00
Christoffer Lerno
50d31ba398
Fix issue with overloaded subscript and ++/--.
2024-11-20 23:44:42 +01:00
Sander van den Bosch
2788c4cc00
Add new AMX and other feature flags
2024-11-20 23:43:30 +01:00
Christoffer Lerno
ba54232b8d
Fix issue with overloaded subscript and ++/--.
2024-11-20 00:23:08 +01:00
Christoffer Lerno
489bb70901
Updated cast rules
2024-11-19 00:04:10 +01:00