- Feb 06, 2025
-
-
Cheng Shao authored
This commit cleans up how we include the xxhash.h header and only define XXH_INLINE_ALL, which is sufficient to inline the xxHash functions without symbol collision. (cherry picked from commit ee01de7d)
-
Cheng Shao authored
This commit enables XXH3_64bits hash to be used on all 64-bit platforms. Previously it was only enabled on x86_64, so platforms like aarch64 silently falls back to using XXH32 which degrades the hashing function quality. (cherry picked from commit 4a97bdb8)
-
Cheng Shao authored
(cherry picked from commit b19ec331)
-
Cheng Shao authored
This commit enables the generic cmm optimizations in other NCGs to be run in the wasm backend as well, followed by a late cmm control-flow optimization pass. The added optimizations do catch some corner cases not handled by the pre-NCG cmm pipeline and are useful in generating smaller CFGs. (cherry picked from commit c6ce242e)
-
Cheng Shao authored
This commit explicitly disables the ncgPIC flag for the wasm32 target. The wasm backend doesn't support PIC for the time being. (cherry picked from commit 87e34888)
-
Cheng Shao authored
This commit moves GHC.CmmToAsm.cmmToCmm to a standalone module, GHC.Cmm.GenericOpt. The main motivation is enabling this logic to be run in the wasm backend NCG code, which is defined in other modules that's imported by GHC.CmmToAsm, causing a cyclic dependency issue. (cherry picked from commit 6534da24)
-
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)
-
Cheng Shao authored
(cherry picked from commit af771148)
-
Cheng Shao authored
We used to have MIN_UPD_SIZE macro that describes the minimum reserved size for thunks, so that the thunk can be overwritten in place as indirections or blackholes. However, this macro has not been actually defined or used anywhere since a long time ago; StgThunkHeader already reserves a padding word for this purpose. Hence this patch which drops stale mentions of MIN_UPD_SIZE. (cherry picked from commit c1e3719c)
-
Cheng Shao authored
(cherry picked from commit a4785b33)
-
Cheng Shao authored
-
(cherry picked from commit def46c8c)
-
(cherry picked from commit fb629e24)
-
(cherry picked from commit 08d14925)
-
- Dec 20, 2024
-
-
Ben Gamari authored
-
- Dec 10, 2024
- Dec 03, 2024
-
-
Ben Gamari authored
As reported in #24546, the `dlTest` artifact should be extracted into the `testsuite` directory. (cherry picked from commit 9d936c57)
-
- Dec 02, 2024
-
-
Ben Gamari authored
ghcup can apparently infer the output name of an artifact from its URL. Consequently, we should only include the `dlOutput` field when it would differ from the filename of `dlUri`. Fixes #24547. (cherry picked from commit 6d398066) (cherry picked from commit 878e8529)
-
- Nov 27, 2024
-
-
(cherry picked from commit 471b2672)
-
Ben Gamari authored
This test has been routinely timing out on Darwin; this is being investigated but for the time being we will disable it to move ahead with the 9.8.4 release.
-
- Nov 26, 2024
-
-
- Nov 25, 2024
-
-
Ben Gamari authored
Bump the CPP in genSym to ensure that we don't look for `ghc_unique_counter64` in any compilers earlier than 9.8.4. Inconsistency noticed in #25519.
-
- Nov 22, 2024
-
-
Ben Gamari authored
This has failed repeatedly on Darwin.
-
- Nov 20, 2024
-
-
Ben Gamari authored
As noted in #25509, the `-this-package-name` must be passed for each package to ensure that GHC can response references to the packages' exposed modules via package-qualified imports. Fix this. Closes #25509.
-
Ben Gamari authored
-
Ben Gamari authored
As noted in filepath#241 [1], `filepath-1.4.301.0` is not `-Werror`-clean. [1] https://github.com/haskell/filepath/issues/241
-
- Nov 19, 2024
-
-
In #22010 we established that Int was not always sufficient to store all the uniques we generate during compilation on 32-bit platforms. This commit addresses that problem by using Word64 instead of Int for uniques. The core of the change is in GHC.Core.Types.Unique and GHC.Core.Types.Unique.Supply. However, the representation of uniques is used in many other places, so those needed changes too. Additionally, the RTS has been extended with an atomic_inc64 operation. One major change from this commit is the introduction of the Word64Set and Word64Map data types. These are adapted versions of IntSet and IntMap from the containers package. These are planned to be upstreamed in the future. As a natural consequence of these changes, the compiler will be a bit slower and take more space on 32-bit platforms. Our CI tests indicate around a 5% residency increase. Metric Increase: CoOpt_Read CoOpt_Singletons LargeRecord ManyAlternatives ManyConstructors MultiComponentModules MultiComponentModulesRecomp MultiLayerModulesTH_OneShot RecordUpdPerf T10421 T10547 T12150 T12227 T12234 T12425 T12707 T13035 T13056 T13253 T13253-spj T13379 T13386 T13719 T14683 T14697 T14766 T15164 T15703 T16577 T16875 T17516 T18140 T18223 T18282 T18304 T18698a T18698b T18923 T1969 T19695 T20049 T21839c T3064 T3294 T4801 T5030 T5321FD T5321Fun T5631 T5642 T5837 T6048 T783 T8095 T9020 T9198 T9233 T9630 T9675 T9872a T9872b T9872b_defer T9872c T9872d T9961 TcPlugin_RewritePerf UniqLoop WWRec hard_hole_fits (cherry picked from commit 9edcb1fb)
-
Ben Gamari authored
This is a partial backport of the treatment given to modules names in !10448, removing the dependence of BRK_FUN on the representation of `Unique`.
-
Ben Gamari authored
-
- Nov 18, 2024
-
-
Ben Gamari authored
Fixes inappropriate catching of asynchronous exceptions.
-
- Nov 14, 2024
-
-
Ben Gamari authored
-
- Nov 13, 2024
-
-
Ben Gamari authored
-
Ben Gamari authored
-
- Nov 12, 2024
-
- Nov 11, 2024
-
-
Here we enable documentation building on 1. Darwin: The sphinx toolchain was already installed so we enable html and manpages. 2. Rocky8: Full documentation (toolchain already installed) 3. Alpine: Full documetnation (toolchain already installed) 4. Windows: HTML and manpages (toolchain already installed) Fixes #24465 (cherry picked from commit 67ace1c5)
-
- Nov 09, 2024
-
-
Ben Gamari authored
This includes a fix for filepath#219. Fixes #24597.
-