Welcome to another weekly log!
There was a bit of variety this week. The Stackage migration is still my main task, but when you’re responsible for running systems, you can never focus 100% of your effort in one place.
For example, I made a small improvement to GitLab emails, fixing a typo in the SPF record (don’t ask). Since we had to disable the GitHub OAuth integration due to spammers, people need to use the password reset option to log back in to their accounts. This SPF record usually doesn’t cause any trouble, but may have done so for some people. Let me know if you ever have any problems with receiving emails.
Another highlight from this week was that I dealt with spurious failures in GHC CI again. The work of reducing spurious failures is never-ending. Like any working piece of machinery, little flaws build up over time. It’s impossible to notice every little problem when it gets introduced. So occasionally it needs maintenance.
Some systems are more reliable than others, of course. I have a few projects in mind. Just off the top of my head:
- Visualize test failures on the master branch
- Automate more of the CI infrastructure
- Encourage more contributions to GHC, the testsuite, and CI by improving docs and onboarding
Anyway, it turns out the biggest problem was a misbehaving CI runner, which has been taken out of the pool now. I still want to look at a few more failed jobs just to be sure there’s nothing else bad happening. I have opened a number of tickets for the other problems that I’ve found so far. See issue list below!
As a bonus, I cleaned up my local tooling for investigating spurious failures, which should be easier for other people to use now. Check it out at local-tooling · master · Bryan R / spurious-failures · GitLab.
Once I’ve made enough progress, I will return to the Stackage migration. There are still two processes that need to be updated to write to the new HF haddocks bucket. I found out the hard way that these two need to be migrated simultaneously. Planning for how to deal with that, as well as figuring it out in the first place, has slowed me down a little bit. I still need to come up with a way to test the changes before deploying them. I want to do the synchronized deployment right the first time.
Well, that’s all for now! See you next time.
And here’s the next batch of issues discussed in the GHC triage meeting. Unlike most weeks, I stayed for the entire 2.25 hours that it took to work through these. It’s a lot of work!
P.S. did you know there is a weekly open GHC call? If you have an interest in GHC development, you should join! See SPJ’s invitation in the ghc-devs archive: GHC Weekly call
GHC issues triaged this week
-
#24339: Add support for executing TH splices on the host platform during cross compilation. · Issues · Glasgow Haskell Compiler / GHC · GitLab
- apparently also discussed last week
- sounds valuable, but really hard
-
#24341: `addWordC` for other word sizes. · Issues · Glasgow Haskell Compiler / GHC · GitLab
- work in progress
-
#24343: Document which GHC version introduced GHC2021 · Issues · Glasgow Haskell Compiler / GHC · GitLab
- work in progress
-
#24344: errnoToIOError is not necessarily thread-safe · Issues · Glasgow Haskell Compiler / GHC · GitLab
- oh no
- problem is strerror isn’t thread-safe
- can be fixed by using a better member of the strerror family
-
#24345: Concurrent GHC sessions clobber RTS linker state · Issues · Glasgow Haskell Compiler / GHC · GitLab
- OP mentions that this is probably fine (not a supported workflow)
-
#24346: Specialize sconcat for the Semigroup instance of First · Issues · Glasgow Haskell Compiler / GHC · GitLab
- needs CLC proposal; in progress
-
#24347: genapply program is built with wrong constants when cross compiling · Issues · Glasgow Haskell Compiler / GHC · GitLab
- very good that Cheng found this bug. Part of GHC’s overall cross-compilation improvement that’s been happening
-
#24348: [aarch64, ppc64le, s390x] ghc-9.6.4 rts fails to build with gcc14 · Issues · Glasgow Haskell Compiler / GHC · GitLab
- fixed in master, needs to be backported
-
#24349: `time` fails to compile with LLVM backend on ARMv7 (32-bit platforms more generally?) · Issues · Glasgow Haskell Compiler / GHC · GitLab
- actually another cross-compiler problem, this time with 64 stage N and 32 bit stage N+1
- already fixed, just needs a backport
-
#24350: Comment on withBinaryFile seems wrong · Issues · Glasgow Haskell Compiler / GHC · GitLab
- “sounds plausible”
- After a quick look at the code devs agreed
-
#24351: Parser: Make use of `happy`'s `%error` declaration to get suggestions for valid tokens at error position · Issues · Glasgow Haskell Compiler / GHC · GitLab
- also plausible
-
#24352: Rewrite "obvious" non-terminating expressions · Issues · Glasgow Haskell Compiler / GHC · GitLab
- Unfortunately this actually changes the meaning of the expression so it isn’t a sound optimization
-
#24353: Expose a stable subset of `DynFlags` API for TH · Issues · Glasgow Haskell Compiler / GHC · GitLab
-
addForeignSource
may already be a solution. - Other comments made on the ticket
-
-
#24354: Bootstrap of v9.6.4 Fails to Install Built libffi libs, Uses Build Directories, Not DESTDIR Directory · Issues · Glasgow Haskell Compiler / GHC · GitLab
- some error with backporting to the 9.6 series apparently
-
#24355: ghc-9.8.1/configure: line 9793: FP_PROG_LD_BUILD_ID: command not found · Issues · Glasgow Haskell Compiler / GHC · GitLab
- Ben found the culprit. The culprit is Ben.
- Already fixed on master; needs a backport
-
#24356: Install bash completion file · Issues · Glasgow Haskell Compiler / GHC · GitLab
- The only reason this isn’t an easy task is that it involves modifying the install Makefile,
which is actually a really hard task
- The only reason this isn’t an easy task is that it involves modifying the install Makefile,
-
#24357: Backpack Regression for Representation-Polymorphic Binders · Issues · Glasgow Haskell Compiler / GHC · GitLab
- Does seem concerning
- There’s resource constraints for fixing this one but Sam is gonna take a cursory look to triage it
-
#24358: For Ratios, round produces incorrect results for some fixed-width signed integer values · Issues · Glasgow Haskell Compiler / GHC · GitLab
- oh yikes
- Ben will look at this with high prio
-
#24359: Allow expressions in SPECIALISE pragmas · Issues · Glasgow Haskell Compiler / GHC · GitLab
- Everyone thinks it looks great
- There was some discussion. Mostly they just want the
f @Int
syntax, though the proposal is much more general than that.
-
#24360: Tracking Issue: Migration to filepath 1.5 · Issues · Glasgow Haskell Compiler / GHC · GitLab
- Yep. It’s expected to be a fair amount of coordination and will be one of the bigger challenges of releasing GHC 9.10.
-
#24361: Darwin: T8089 failing after receiving signal 9 · Issues · Glasgow Haskell Compiler / GHC · GitLab
- Wow, problem was debugged in realtime and Ben is already fixing it.
- A race in the testsuite driver
- (Update: fixed in master now)
-
#24362: Many unexpected test timeouts · Issues · Glasgow Haskell Compiler / GHC · GitLab
- These were caused by the misbehaving runner
-
#24363: Intermittent cabal solver failure building (I think) "binary" · Issues · Glasgow Haskell Compiler / GHC · GitLab
- All on the same job, which is basically dead and should be removed
-
#24364: Intermittent cabal solver failing building (I think) hadrian · Issues · Glasgow Haskell Compiler / GHC · GitLab
- Maybe a cabal bug?
- #24365: Intermittent hadrian exception: resource busy (file is locked) · Issues · Glasgow Haskell Compiler / GHC · GitLab
-
#24366: Intermittent stat failures for MultiLayerModulesRecomp · Issues · Glasgow Haskell Compiler / GHC · GitLab
- Many of those are probably not spurious. Might need more info
- At least one of them happened in a Marge batch merge, but many of them didn’t, and may have been legit failures.
-
#24367: Add support for llvm-16 · Issues · Glasgow Haskell Compiler / GHC · GitLab
- yes. May require some extra work since llvm-16 might have breaking changes.
- Aren’t gonna rush it
- The new pass manager isn’t documented well unfortunately
- There’s the challenge of supporting the old pass manager and the new pass manager at the same time
-
#24368: (Semi-) Abitrary Code Execution using `-main-is` flag · Issues · Glasgow Haskell Compiler / GHC · GitLab
- Actually a surprise to everybody on the call
- I’m not enough of an expert to understand the security implications
- But it’s not quite what the docs say is possible so makes sense to change
- #24369: CI: ensure more tests are run using LLVM · Issues · Glasgow Haskell Compiler / GHC · GitLab