summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* ci: Run head.hackage jobs on upstream-testing branch rather than masterwip/head-hackage-validateMatthew Pickering2022-12-231-1/+1
| | | | | | | | | This change allows less priviledged users to trigger head.hackage jobs because less permissions are needed to trigger jobs on the upstream-testing branch, which is not protected. There is a CI job which updates upstream-testing each hour to the state of the master branch so it should always be relatively up-to-date.
* ci: Don't run abi-test-nightly on release jobsMatthew Pickering2022-12-231-1/+0
| | | | | | The test is not configured to get the correct dependencies for the release pipelines (and indeed stops the release pipeline being run at all)
* head.hackage: Use slow-validate bindist for linting jobsMatthew Pickering2022-12-231-14/+54
| | | | | | | | | | | | | | | | | | | | | | | | This enables the SLOW_VALIDATE env var for the linting head.hackage jobs, namely the jobs enabled manually, by the label or on the nightly build now use the deb10-numa-slow-validate bindist which has assertions enabled. See #22623 for a ticket which was found by using this configuration already! The head.hackage jobs triggered by upstream CI are now thusly: hackage-lint: Can be triggered on any MR, normal validate pipeline or nightly build. Runs head.hackage with -dlint and a slow-validate bindist hackage-label-lint: Trigged on MRs with "user-facing" label, runs the slow-validate head.hackage build with -dlint. nightly-hackage-lint: Runs automatically on nightly pipelines with slow-validate + dlint config. nightly-hackage-perf: Runs automaticaly on nightly pipelines with release build and eventlogging enabled. release-hackage-lint: Runs automatically on release pipelines with -dlint on a release bindist.
* ci: Move wasm pipelines into nightly rather than masterMatthew Pickering2022-12-231-2/+3
| | | | | See #22664 for the changes which need to be made to bring one of these back to the validate pipeline.
* rts/m32: Fix sanity checkingBen Gamari2022-12-221-1/+1
| | | | | Previously we would attempt to clear pages which were marked as read-only. Fix this.
* Fix unifier bug: failing to decompose over-saturated type familySimon Peyton Jones2022-12-223-13/+37
| | | | This simple patch fixes #22647
* base: Fix event manager shutdown race on non-Linux platformsBen Gamari2022-12-221-3/+10
| | | | | | | During shutdown it's possible that we will attempt to use a closed fd to wakeup another capability's event manager. On the Linux eventfd path we were careful to handle this. However on the non-Linux path we failed to do so. Fix this.
* Refactor mkRuntimeErrorSimon Peyton Jones2022-12-2212-102/+182
| | | | | | | | | This patch fixes #22634. Because we don't have TYPE/CONSTRAINT polymorphism, we need two error functions rather than one. I took the opportunity to rname runtimeError to impossibleError, to line up with mkImpossibleExpr, and avoid confusion with the genuine runtime-error-constructing functions.
* JS: fix support for -outputdir (#22641)Sylvain Henry2022-12-224-62/+56
| | | | | | | The `-outputdir` option wasn't correctly handled with the JS backend because the same code path was used to handle both objects produced by the JS backend and foreign .js files. Now we clearly distinguish the two in the pipeline, fixing the bug.
* EPA: Make EOF position part of AnnsModuleAlan Zimmerman2022-12-2225-209/+190
| | | | | Closes #20951 Closes #19697
* Bump libffi-tarballs submoduleBen Gamari2022-12-221-0/+0
| | | | We will now use libffi-3.4.4.
* rts: Drop paths from configure from cabal fileBen Gamari2022-12-221-4/+0
| | | | | | | | | | | | | | A long time ago we would rely on substitutions from the configure script to inject paths of the include and library directories of libffi and libdw. However, now these are instead handled inside Hadrian when calling Cabal's `configure` (see the uses of `cabalExtraDirs` in Hadrian's `Settings.Packages.packageArgs`). While the occurrences in the cabal file were redundant, they did no harm. However, since b5c714545abc5f75a1ffdcc39b4bfdc7cd5e64b4 they have no longer been interpolated. @mpickering noticed the suspicious uninterpolated occurrence of `@FFIIncludeDir@` in #22595, prompting this commit to finally remove them.
* hadrian bindist: Install manpages to share/man/man1/ghc.1Matthew Pickering2022-12-221-3/+14
| | | | | | | | When the installation makefile was copied over the manpages were no longer installed in the correct place. Now we install it into share/man/man1/ghc.1 as the make build system did. Fixes #22371
* Don't consider large byte arrays/compact regions pinned.Andreas Klebinger2022-12-225-6/+18
| | | | | Workaround for #22255 which showed how treating large/compact regions as pinned could cause segfaults.
* Bump GHC version to 9.7ghc-9.7-startBen Gamari2022-12-222-1/+1
|
* ghc-boot: Fix bootstrappingBen Gamari2022-12-211-3/+6
|
* base: Bump version to 4.18Ben Gamari2022-12-2120-9/+9
| | | | Requires various submodule bumps.
* configure: Bump version to 9.6Ben Gamari2022-12-211-1/+1
|
* Fix an assertion check in addToEqualCtListSimon Peyton Jones2022-12-214-9/+42
| | | | | | | The old assertion saw that a constraint ct could rewrite itself (of course it can) and complained (stupid). Fixes #22645
* Fix shadowing lacuna in OccurAnalSimon Peyton Jones2022-12-215-23/+129
| | | | | | | | | | | | Issue #22623 demonstrated another lacuna in the implementation of wrinkle (BS3) in Note [The binder-swap substitution] in the occurrence analyser. I was failing to add TyVar lambda binders using addInScope/addOneInScope and that led to a totally bogus binder-swap transformation. Very easy to fix.
* rts: explicitly store return value of ccall checkClosure to prevent type ↵Ying-Ruei Liang (TheKK)2022-12-211-1/+2
| | | | error (#22617)
* Abstract over the right free varsSimon Peyton Jones2022-12-215-53/+142
| | | | | | | | | | | | | | | | | Fix #22459, in two ways: (1) Make the Specialiser not create a bogus specialisation if it is presented by strangely polymorphic dictionary. See Note [Weird special case in SpecDict] in GHC.Core.Opt.Specialise (2) Be more careful in abstractFloats See Note [Which type variables to abstract over] in GHC.Core.Opt.Simplify.Utils. So (2) stops creating the excessively polymorphic dictionary in abstractFloats, while (1) stops crashing if some other pass should nevertheless create a weirdly polymorphic dictionary.
* Fix testsBodigrim2022-12-211-1/+1
| | | | | | | T13253 imports MonadTrans, which acquired a quantified constraint in transformers-0.6, thus increase in allocations Metric Increase: T13253
* Update submodule transformers to 0.6.0.4Bodigrim2022-12-211-0/+0
|
* Update submodule haskeline to HEAD (to allow transformers-0.6)Bodigrim2022-12-211-0/+0
|
* Allow transformers-0.6 in ghc, ghci, ghc-bin and hadrianBodigrim2022-12-214-4/+4
|
* Make GHC.Driver.Main.hscTcRnLookupRdrName to return NonEmptyBodigrim2022-12-204-28/+27
|
* GHCi.UI: avoid head and tail in parseCallEscape and aroundBodigrim2022-12-201-16/+18
|
* GHCi.UI: fix various usages of head and tailBodigrim2022-12-201-28/+25
|
* configure: Use AS_HELP_STRING instead of AC_HELP_STRINGBen Gamari2022-12-201-1/+1
| | | | | | The latter has been deprecated. See #22566.
* configure: Drop uses of AC_PROG_CC_C99Ben Gamari2022-12-203-48/+0
| | | | | | | As noted in #22566, this macro is deprecated as of autoconf-2.70 `AC_PROG_CC` now sets `ac_cv_prog_cc_c99` itself. Closes #22566.
* packaging: Fix upload_ghc_libs.py scriptMatthew Pickering2022-12-201-3/+8
| | | | | | | This change reflects the changes where .cabal files are now generated by hadrian rather than ./configure. Fixes #22518
* Scrub some partiality in `GHC.Cmm.Info.Build`: `doSRTs` takes a `[(CAFSet, ↵M Farkas-Dyck2022-12-204-9/+23
| | | | CmmDecl)]` but truly wants a `[(CAFSet, CmmStatics)]`.
* testsuite: Mark T16392 as fragile on windowswip/fragile-testMatthew Pickering2022-12-201-1/+3
| | | | See #22649
* rts/libdw: Silence uninitialized usage warningsBen Gamari2022-12-181-3/+3
| | | | | | | | As noted in #22538, previously some GCC versions warned that various locals in Libdw.c may be used uninitialized. Although this wasn't strictly true (since they were initialized in an inline assembler block) we fix this by providing explicit empty initializers. Fixes #22538
* rts: Drop racy assertionBen Gamari2022-12-181-0/+3
| | | | | | | 0e274c39bf836d5bb846f5fa08649c75f85326ac added an assertion in `dirty_MUT_VAR` checking that the MUT_VAR being dirtied was clean. However, this isn't necessarily the case since another thread may have raced us to dirty the object.
* Correct `exitWith` Haddocksamesgen2022-12-181-7/+5
| | | | The `IOError`-specific `catch` in the Prelude is long gone.
* ci: support hello.wasm in ci.sh cross testing logicCheng Shao2022-12-171-0/+4
|
* compiler: make .wasm the default executable extension on wasm32Cheng Shao2022-12-172-4/+5
| | | | Following convention as in other wasm toolchains. Fixes #22594.
* base: add missing autoconf checks for waitpid/umaskCheng Shao2022-12-172-0/+12
| | | | These are not present in wasi-libc. Required for fixing #22589
* compiler: add optional tail-call support in wasm NCGCheng Shao2022-12-167-32/+87
| | | | | | | | | When the `-mtail-call` clang flag is passed at configure time, wasm tail-call extension is enabled, and the wasm NCG will emit `return_call`/`return_call_indirect` instructions to take advantage of it and avoid the `StgRun` trampoline overhead. Closes #22461.
* compiler: change fallback function signature to Cmm function signature in ↵Cheng Shao2022-12-161-2/+4
| | | | | | | | | | wasm NCG In the wasm NCG, when handling a `CLabel` of undefined function without knowing its function signature, we used to fallback to `() -> ()` which is accepted by `wasm-ld`. This patch changes it to the signature of Cmm functions, which equally works, but would be required when we emit tail call instructions.
* compiler: add missing export list of GHC.CmmToAsm.Wasm.FromCmmCheng Shao2022-12-161-63/+7
| | | | Also removes some unreachable code here.
* compiler: remove obsolete commented code in wasm NCGCheng Shao2022-12-161-1/+0
| | | | | It was just a temporary hack to workaround a bug in the relooper, that bug has been fixed long before the wasm backend is merged.
* testsuite: Mark T9405 as fragile instead of broken on WindowsCheng Shao2022-12-161-1/+1
| | | | It's starting to pass again, and the unexpected pass blocks CI.
* Accept allocations increase on WindowsBodigrim2022-12-160-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is because of `filepath-1.4.100.0` and AFPP, causing increasing round-trips between lists and ByteArray. See #22625 for discussion. Metric Increase: MultiComponentModules MultiComponentModulesRecomp MultiLayerModules MultiLayerModulesRecomp T10421 T10547 T12150 T12227 T12234 T12425 T13035 T13253 T13253-spj T13701 T13719 T15703 T16875 T18140 T18282 T18304 T18698a T18698b T18923 T20049 T21839c T21839r T5837 T6048 T9198 T9961 TcPlugin_RewritePerf hard_hole_fits
* Bump submodule directory to 1.3.8.0 and hpc to HEADBodigrim2022-12-162-0/+0
|
* rts: Note race with wakeBlockingQueueBen Gamari2022-12-161-1/+2
|
* rts: Ensure that all accesses to pending_sync are atomicBen Gamari2022-12-161-2/+2
|
* rts: Statically allocate capabilitiesBen Gamari2022-12-163-19/+19
| | | | This is a rather simplistic way of solving #17289.