Yes, it’s another weekly log.
BONUS: I’m trying a new thing where I summarize the tickets covered in the weekly GHC triage meeting. I’ll put it at the bottom of this log!
Since last time, I finished fixing head.hackage to comply with a recent bugfix in Cabal. (If you don’t know what head.hackage is, then don’t worry, this never affected you.) The problem was that head.hackage’s repo timestamp was not updated in a timely manner. I fixed this by regenerating the timestamp once a night. I implemented this as a scheduled GitLab pipeline on the head.hackage repository.
In hindsight, I’m not sure a GitLab pipeline (or any CI pipeline) is the right choice for jobs like this one. Although CI pipelines can be used to provide some UI and visibility for routine batch jobs, that’s not what they’re designed for. But I’ll leave it for now.
Once head.hackage was done, I moved back to the Stackage migration. Yesterday we migrated the hackage-metadata-refresh process to the new server. This process updates three repos:
- GitHub - commercialhaskell/all-cabal-hashes: A repository containing all cabal files, with added metadata for package hashes
- GitHub - commercialhaskell/all-cabal-files: A repository containing all of the cabal files for all public Haskell packages
- GitHub - commercialhaskell/all-cabal-metadata: Current metadata for all cabal files.
(These are alternate views into hackage.haskell.org that are used by Stack.)
Today, we migrated the hackage-mirror-update process that keeps hackage.fpcomplete.com up to date.
We’ve now migrated three background Stackage processes. These were all the “easy” ones: they are scheduled batch jobs and nobody will notice if they stop running for 10 minutes or so. That made it easy to gracefully move them to a new server with no external consequences. However, they still push to an S3 bucket owned by FPComplete, so the migration isn’t complete. The data migration will take place after the process migration.
The remaining processes are public facing: https://www.stackage.org/ and https://casa.stackage.org/. (There is one other background process, but it needs privileged access to the Casa server, so I am considering migrating it in lockstep). These migrations will be visible to users, so I will announce the migration window once we are ready for it.
Now for the ticket triage summary. In this log I will summarize the last two triage meetings.
I may or may not keep doing this! It doesn’t add a whole lot of extra work for me, since I am mostly just observing GHC maintainers during this meeting anyway. And I think it could be valuable to give a glimpse into the workload of GHC maintainers to demonstrate how much is constantly going on. But as I am not an expert, my summary of events will be faulty and my coverage of the issues will be sparse. So if this is valuable to you, please let me know.
My best effort summary of recent tickets would be:
- Multiple issues caused by a Darwin upgrade
- Bugs in newish language extensions
- Bugs in newish features, like
-finfo-table-map
- Problems with linking
- Primarily on Windows. Both linking (in general) and Windows (in general) are perennial fonts of joy
- Tricky issues uncovered about async exceptions
- A long, long tail of random stuff.
Thanks for reading!
See the full dump of issues and my notes by clicking here.
-
2023-11-14
-
#24154: Type applications in constructor patterns will require the TypeAbstractions extension starting from GHC 9.12 · Issues · Glasgow Haskell Compiler / GHC · GitLab
- stability issue with a change to TypeApplications or TypeAbstractions.
- Unexpected change to a language extension where a user has no idea whether or not the language extension is stable, unstable, experimental, …
- GHC is not well equipped technically to deal with these kinds of problems. It’s actually a GHC SC thing, and this triage group is not GHC SC. But it is a GHC issue… what is GHC HQ to do?
- Limited human resources
- Personal note: Maybe the lifecycle proposal thing, rather than trying to force it into a publicly agreed legally binding proposal, could be adopted by the GHC SC as a working practice of some sort?
-
#24156: Better hadrian error when configure was not run · Issues · Glasgow Haskell Compiler / GHC · GitLab
- hadrian better error message, not hi prio
-
#24159: The types-in-terms syntax (forall, ->, =>) · Issues · Glasgow Haskell Compiler / GHC · GitLab
- task
-
#24160: panic in allocateRegsAndSpill when using FMA primops · Issues · Glasgow Haskell Compiler / GHC · GitLab
- andreas has a patch already, it’s a bug fix in codegen
-
#24161: iconv regression in recent macOS distributions · Issues · Glasgow Haskell Compiler / GHC · GitLab
- new iconv library on new macos is wrong and breaks tests. All we can do right now is mark those tests as fragile on darwin.
-
#24167: ld: warning: ignoring duplicate libraries: '-lm' · Issues · Glasgow Haskell Compiler / GHC · GitLab, similar
- changes to linker output breaks ghc tests
- can’t really just fix because ghc and cabal and other things all affect linker flags - the whole world needs to get up to speed on this
-
#24168: ld: warning: -single_module is obsolete · Issues · Glasgow Haskell Compiler / GHC · GitLab, similar
- new ld warnings
- All the new macos darwin linker issues might be fixable, but it’s hard to say.
-
#24169: Remove dataToTag# primop(s) from GHC.PrimopWrappers · Issues · Glasgow Haskell Compiler / GHC · GitLab
- i have no idea what this is about. something about DataToTag. See note…?
-
#24170: Test `linker_unload` causes assertion failure in runtime linker on GHC 9.4 branch · Issues · Glasgow Haskell Compiler / GHC · GitLab
- 9.4 assertion failures in test
linker_unload
on aarch64. No repro yet though Andreas worked on it for a while - “These errors really should be better” (?)
- Something about relocating code and trampolines and displacement limitations
- 9.4 assertion failures in test
-
#24171: Internal error/segfault when profiling ghc · Issues · Glasgow Haskell Compiler / GHC · GitLab
- segfault when profiling ghc
-
#24172: Do not highlight Haskell Error № in red · Issues · Glasgow Haskell Compiler / GHC · GitLab
- request to change the new error code highlighting from red to something not red (perhaps nothing)
- Someone is free to change it, perhaps to leave it normal colored and underlined.
-
#24173: `-Wunused-packages` overreports with alternative Preludes · Issues · Glasgow Haskell Compiler / GHC · GitLab
- reports the implicit prelude as ‘unused’
- similar to #24120: Unused Package Warning for `system-cxx-std-lib` Dependency · Issues · Glasgow Haskell Compiler / GHC · GitLab, which exposes the quirk of cabal that you can use it to import nothing but linker flags
-
#24174: OverloadedRecordDot: "type" can't be used as a field name · Issues · Glasgow Haskell Compiler / GHC · GitLab
- Probably just an oversight on the original proposal, needs discussion there
-
#24175: -fbyte-code-and-object-code does not overwrite the existing hi file · Issues · Glasgow Haskell Compiler / GHC · GitLab
- reporter found the cause - probably a bug in the hashing of hi files to check for recompliation
-
#24176: Panic with QuantifiedConstraints + RequiredTypeArguments · Issues · Glasgow Haskell Compiler / GHC · GitLab
- type-level bug in some new feature
- RequiredTypeArguments is fairly new and therefore likely to have bugs (see previous personal note)
-
#24177: Allocation variations in MultiLayerModulesTH_Make · Issues · Glasgow Haskell Compiler / GHC · GitLab
- Due to the changed environment on upgraded darwins, this performance test goes faster in some envs and slower in others. Matthew is trying to figure out why but it’s not easy. Can’t profile it because it’s dynamically linked
- We have to mark the tests as fragile now
-
#24179: Dead code and compiled file size in Windows · Issues · Glasgow Haskell Compiler / GHC · GitLab
- Perhaps split sections isn’t working right yet on Windows (#22834: Split sections is broken on Windows · Issues · Glasgow Haskell Compiler / GHC · GitLab was a recent fix)
-
#24181: Regression: GHC 9.4.7 still produced statically linked binaries on ubuntu-20.04, GHC 9.4.8 doesn't · Issues · Glasgow Haskell Compiler / GHC · GitLab
- or did it? is it a linker bug? marked “info needed”
-
#24182: ghc-toolchain differences reported when building on Linux sparc64 · Issues · Glasgow Haskell Compiler / GHC · GitLab
- ghc-toolchain fails to build on sparc64
- At the very least it’s a very misleading error
-
#24183: head.hackage failures on GHC nightly pipeline: ghcide, singletons · Issues · Glasgow Haskell Compiler / GHC · GitLab
- due to use of ghc internals. A victim of GHC’s unstable API
-
#24184: Simplifier: Try not to force all binds after each run · Issues · Glasgow Haskell Compiler / GHC · GitLab
- simplifier bug of some kind, went by quickly
-
#24185: Merge objects broken when `-L` is not supported (fallback case using ar) · Issues · Glasgow Haskell Compiler / GHC · GitLab
- merge objects broken when making dll or .so (shared objects)
- “I think this is just broken, Ben, and I don’t know how to fix it”
-
#24186: Test `linker_unload` fails when hadrian is run in very verbose (-VV) mode. · Issues · Glasgow Haskell Compiler / GHC · GitLab
- may be one of many such failures
- something about Make falling over?
- Maybe hadrian verbosity shouldn’t affect test verbosity…?
- Not considered a huge deal since it won’t affect many
- #24187: Thunk is incorrectly updated on async exception in GHCi · Issues · Glasgow Haskell Compiler / GHC · GitLab
-
#24189: Async exceptions ignored and reraised by `catch` still update enclosing thunks · Issues · Glasgow Haskell Compiler / GHC · GitLab
- async exceptions ignored and reraised still update enclosing thunks
- Previous two something about how catch and async exceptions interact. Extremely tricky and ppl are hoping reporter (@lexilambda) continues to make progress
-
#24188: `NOINLINE` honored up until `Prep`, then `Prep` inlines it · Issues · Glasgow Haskell Compiler / GHC · GitLab
- Prep is the last core pass before moving to STG
- Kind of curious but not considered super high pri
-
#24154: Type applications in constructor patterns will require the TypeAbstractions extension starting from GHC 9.12 · Issues · Glasgow Haskell Compiler / GHC · GitLab
-
2023-11-21
-
#24193: Use separate namespaces in the Python testdriver · Issues · Glasgow Haskell Compiler / GHC · GitLab
- !7414 actually started this work
-
#24194: HEAD in profiling mode produces segfaulting executables on ancient Ubuntu (16.04) · Issues · Glasgow Haskell Compiler / GHC · GitLab
- “gold is buggy” in that vintage
- maybe related #22266: Source shown in error messages can be wrong if file changes during compilation · Issues · Glasgow Haskell Compiler / GHC · GitLab?
-
#24195: Unify the separate testsuites for hpc · Issues · Glasgow Haskell Compiler / GHC · GitLab
- sounds good
- a happy consequence of hpc finally getting some love (thanks @binderd!)
-
#24196: Assertion failure with cyclic import · Issues · Glasgow Haskell Compiler / GHC · GitLab
- boot files are a constant source of bugs, apparently very sutble
- easy to fix nontheless
-
#24197: `dumpIPEToEventLog` disregards maximum event length · Issues · Glasgow Haskell Compiler / GHC · GitLab
- quite a few bugs lurking here
- needs backports
-
#24198: ASAN support for pinned arrays · Issues · Glasgow Haskell Compiler / GHC · GitLab
- About supporting ASAN instead of valgrind
- But this is kinda hard
- You’d want to be able to tell ASAN “leave the runtime alone” but not easy
-
#24199: stale ghc-toolchain target file will result in Prelude.read: no parse · Issues · Glasgow Haskell Compiler / GHC · GitLab
- ghc-toolchain bug, already fixed or getting there
-
#24200: 9.2.8 armv7 bindist is broken · Issues · Glasgow Haskell Compiler / GHC · GitLab
- Yes, GHC HQ accidentally released a bindist from a CI job that failed. A consequence of using legacy workflows. This is something that is no longer possible because of changed policies and better code.
-
#24201: Kill `MatchOrigin` previously `Origin` · Issues · Glasgow Haskell Compiler / GHC · GitLab
- Refactor task for the Haskell syntax type
- Some concern about unforced API breakage from this change or the one that inspired it
-
#24202: DataToTag instances in signature files don't work · Issues · Glasgow Haskell Compiler / GHC · GitLab
- signature file issue
- related to DataToTag class that is new
- ???
- weird OverlappingInstances error
- backpack may have surfaced a bug in the new code?
-
#24203: GHC is reluctant to unbox Int with -O when returned in a sum field · Issues · Glasgow Haskell Compiler / GHC · GitLab
- Some perf problem
- Already lots of discussion
-
#24205: Document that `QuantifiedConstraints` implies `ExplicitForAll` · Issues · Glasgow Haskell Compiler / GHC · GitLab
- Some documentation thing about language extensions
- #24206: Performance of nofib/spectral/mandel2 is absurdly fragile · Issues · Glasgow Haskell Compiler / GHC · GitLab
-
#24207: Toolchain.Target should not be serialized/cached by Hadrian · Issues · Glasgow Haskell Compiler / GHC · GitLab
- quality improvement to hadrian
-
#24193: Use separate namespaces in the Python testdriver · Issues · Glasgow Haskell Compiler / GHC · GitLab