From d2939bc617ae81083572b3274d81c846b390426b Mon Sep 17 00:00:00 2001 From: Max Slater Date: Thu, 25 Jan 2024 17:35:18 -0500 Subject: [PATCH 1/3] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2026613..fb90b89 100644 --- a/README.md +++ b/README.md @@ -40,10 +40,11 @@ The following configurations are supported: | OS | Compiler | Arch | |---------|-------------|--------------| | Windows | MSVC 19.37+ | x64 | -| Linux | Clang 17+ | Any | +| Linux | Clang 17+ | x64, aarch64 | | macOS | Clang 17+ | x64, aarch64 | -Note that aside from MSVC on Windows, the [gcc vector extensions](https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html) (which are [implemented by clang](https://clang.llvm.org/docs/LanguageExtensions.html#vectors-and-extended-vectors)) are used to implement the SIMD operations. See `rpp/rpp/impl/simd.cpp`. +Except for MSVC on Windows, the [gcc vector extensions](https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html) (also [implemented by clang](https://clang.llvm.org/docs/LanguageExtensions.html#vectors-and-extended-vectors)) are used to emit SIMD operations. +On Linux, other architectures should therefore work, but they have not been tested. Other configurations (GCC, etc.) may be added in the future. From ad3c20456dbd93f79215d77480482f1f9e529ed0 Mon Sep 17 00:00:00 2001 From: Max Slater Date: Thu, 25 Jan 2024 17:46:30 -0500 Subject: [PATCH 2/3] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fb90b89..b3e1941 100644 --- a/README.md +++ b/README.md @@ -278,6 +278,7 @@ For faster parallel builds, you can instead generate [ninja](https://ninja-build - [ ] scheduler work stealing - [ ] io_uring for Linux file IO - [ ] sockets + - [ ] use relaxed atomics on aarch64 - Types - [ ] Result - [ ] Map: don't store hashes of integer keys From 85cf202af3db2dc1fb631a05b0426cc79082707f Mon Sep 17 00:00:00 2001 From: TheNumbat Date: Sun, 28 Jan 2024 17:00:42 -0500 Subject: [PATCH 3/3] expose libc::free --- rpp/base.h | 1 + rpp/impl/base.cpp | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/rpp/base.h b/rpp/base.h index abb183a..2dd69e2 100644 --- a/rpp/base.h +++ b/rpp/base.h @@ -116,6 +116,7 @@ void* memcpy(void* dest, const void* src, u64 bytes) noexcept; [[nodiscard]] i32 snprintf(u8* buffer, u64 buffer_size, const char* fmt, ...) noexcept; [[nodiscard]] i64 strtoll(const char* str, char** endptr, i32 base) noexcept; [[nodiscard]] f32 strtof(const char* str, char** endptr) noexcept; +void free(void* ptr) noexcept; void keep_alive() noexcept; } // namespace Libc diff --git a/rpp/impl/base.cpp b/rpp/impl/base.cpp index c10e33e..e73fd5a 100644 --- a/rpp/impl/base.cpp +++ b/rpp/impl/base.cpp @@ -11,6 +11,10 @@ namespace rpp::Libc { void keep_alive() noexcept { } +void free(void* ptr) noexcept { + ::free(ptr); +} + void exit(i32 code) noexcept { ::exit(code); }