Christoffer Lerno
f006b05010
Fix issue with accessing arrays in access-overloaded types, e.g. list[1][2] #1665 .
2024-12-08 18:04:29 +01:00
Koni Marti
c5a727aa9b
math: update complex numbers
...
Add inverse, conjugate, and equals functions to the Complex numbers. Add
an IMAGINARY constant to represent the imaginary unit. Also, add unit
tests for different types.
2024-12-08 16:51:44 +01:00
konimarti
e67e9d3bbf
Fix fnv a hashes ( #1667 )
...
* fix fnv32a
* fix fnv64a
* Simplify code
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2024-12-07 15:39:45 +01:00
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