- Feb 06, 2025
-
-
Cheng Shao authored
This patch avoids using mmap() to allocate executable memory for mkConInfoTable on platforms without tables-next-to-code, see added comment for explanation. (cherry picked from commit 839ac52e) (cherry picked from commit e54e3335) (cherry picked from commit 23cab8a1)
-
Cheng Shao authored
This patch changes mblock size to page size on wasm. It allows us to simplify our wasi-libc fork, makes it much easier to test third party libc allocators like emmalloc/mimalloc, as well as experimenting with threaded RTS in wasm. (cherry picked from commit 558353f4) (cherry picked from commit f3ea9fb8) (cherry picked from commit f747805f)
-
Cheng Shao authored
(cherry picked from commit 2eee65e1) (cherry picked from commit 3f7b718f) (cherry picked from commit 77cc78eb)
-
Cheng Shao authored
(cherry picked from commit ae50a8eb) (cherry picked from commit b7e93bc9) (cherry picked from commit f2388ebc)
-
Cheng Shao authored
This commit removes an obsolete ln script in ghc-bignum/gmp. See 060251c2 for its original intention, but it's been obsolete for a long time, especially since the removal of the make build system. Hence the house cleaning. (cherry picked from commit c62dc317) (cherry picked from commit 5f4848c0) (cherry picked from commit 5b9561d6)
-
Cheng Shao authored
On posix platforms, when performing read/write on FDs, we check the nonblocking flag first. For FDs without this flag (e.g. stdout), we call fdReady() first, which in turn calls poll() to wait for I/O to be available on that FD. This is problematic for wasm32-wasi: although select()/poll() is supported via the poll_oneoff() wasi syscall, that syscall is rather heavyweight and runtime behavior differs in different wasi implementations. The issue is even worse when targeting browsers, given there's no satisfactory way to implement async I/O as a synchronous syscall, so existing JS polyfills for wasi often give up and simply return ENOSYS. Before we have a proper I/O manager that avoids poll_oneoff() for async I/O on wasm, this patch improves the status quo a lot by merely pretending all FDs are "nonblocking". Read/write on FDs will directly invoke read()/write(), which are much more reliably handled in existing wasi implementations, especially those in browsers. Fixes #23275 and the following test cases: T7773 isEOF001 openFile009 T4808 cgrun025 Approved by CLC proposal #234: https://github.com/haskell/core-libraries-committee/issues/234 (cherry picked from commit 2eca52b4) (cherry picked from commit 288692dd)
-
Cheng Shao authored
(cherry picked from commit bd575a13)
-
Cheng Shao authored
This patch includes all wasm32-specific testsuite fixes. (cherry picked from commit bd2bfdec)
-
See #22630 and !9552 This commit: - splits req_smp into req_target_smp and req_ghc_smp - changes the testsuite driver to calculate req_ghc_smp - changes a handful of tests to use req_target_smp instead of req_smp - changes a handful of tests to use req_host_smp when needed The problem: - the problem this solves is the ambiguity surrounding req_smp - on master req_smp was used to express the constraint that the program being compiled supports smp _and_ that the host RTS (i.e., the RTS used to compile the program) supported smp. Normally that is fine, but in cross compilation this is not always the case as was discovered in #22630. The solution: - Differentiate the two constraints: - use req_target_smp to say the RTS the compiled program is linked with (and the platform) supports smp - use req_host_smp to say the RTS the host is linked with supports smp WIP: fix req_smp (target vs ghc) add flag to separate bootstrapper split req_smp -> req_target_smp and req_ghc_smp update tests smp flags cleanup and add some docstrings only set ghc_with_smp to bootstrapper on S1 or CC Only set ghc_with_smp to bootstrapperWithSMP of when testing stage 1 and cross compiling test the RTS in config/ghc not hadrian re-add ghc_with_smp fix and align req names fix T11760 to use req_host_smp test the rts directly, avoid python 3.5 limitation test the compiler in a try block align out of tree and in tree withSMP flags mark failing tests as host req smp testsuite: req_host_smp --> req_ghc_smp Fix ghc vs host, fix ghc_with_smp leftover (cherry picked from commit 06036d93)
-
Cheng Shao authored
This patch does a few things: - Always build 64-bit atomic ops in rts/ghc-prim, even on 32-bit platforms - Remove legacy "64bit" cabal flag of rts package - Fix hs_xchg64 function prototype for 32-bit platforms - Fix AtomicFetch test for wasm32 (cherry picked from commit 87095f6a)
-
- Jan 27, 2025
-
-
This patch bumps the gmp-tarballs submodule and updates gmp to 6.3.0. The tarball format is now xz, and gmpsrc.patch has been patched into the tarball so hadrian no longer needs to deal with patching logic when building in-tree GMP. (cherry picked from commit 6399d52b)
-
- Jan 20, 2025
-
-
Luite Stegeman authored
-
- Jan 16, 2025
-
-
Luite Stegeman authored
-
Luite Stegeman authored
-
(cherry picked from commit 80769bc9)
-
Luite Stegeman authored
-
The foreign imports of `enabled_capabilities` and `getNumberOfProcessors` were declared as `CInt` whereas they are defined as `uint32_t`. (cherry picked from commit e10d31ad)
-
A kqueue file descriptor isn't inherited by a child created with fork. As such we mustn't try to close this file descriptor as we would close a random one, e.g. the one used by timerfd. Fix #24672 (cherry picked from commit e7a26d7a)
-
- Jun 28, 2024
-
-
Zubin authored
-
- Apr 15, 2024
-
-
Zubin authored
Metric Increase: MultiLayerModulesTH_Make Metric Decrease: MultiLayerModulesTH_Make
-
Zubin authored
-
Zubin authored
-
Zubin authored
Bump directory submodule to 1.3.8.4 Bump process submodule to 1.6.18.0
-
This patch adds the req_process predicate to the testsuite to assert the platform has a process model, also marking tests that involve spawning processes as req_process. Also bumps hpc & process submodule. (cherry picked from commit ce580426)
-
- Apr 02, 2024
- Jan 08, 2024
-
-
A regression in the new iconv() distributed with XCode 15 and MacOS Sonoma causes the test 'encoding004' to fail in the CP936 roundrip. We mark this test as fragile until this is fixed upstream (rather than broken, since previous versions of iconv pass the test) See #24161 (cherry picked from commit c411c431)
-
- Jan 03, 2024
-
-
(cherry picked from commit 97a187bf)
-
- Dec 18, 2023
-
-
While fixing these I've also changed the way we store addresses into ByteArray#. Addr# are composed of two parts: a JavaScript array and an offset (32-bit number). Suppose we want to store an Addr# in a ByteArray# foo at offset i. Before this patch, we were storing both fields as a tuple in the "arr" array field: foo.arr[i] = [addr_arr, addr_offset]; Now we only store the array part in the "arr" field and the offset directly in the array: foo.dv.setInt32(i, addr_offset): foo.arr[i] = addr_arr; It avoids wasting space for the tuple. (cherry picked from commit 2d5c1dde)
-
- Dec 15, 2023
-
-
Zubin authored
-
Updates filepath submodule Updates unix submodule Fixes #24240 (cherry picked from commit 36b9a38c)
-
Zubin authored
-
See: https://www.unicode.org/versions/Unicode15.1.0/ (cherry picked from commit 778c84b6)
-
- Dec 13, 2023