
Hm, we may have lost the package version part, if it's not included in
#10279: panic on haskell-src-exts -------------------------------------+------------------------------------- Reporter: throwaway123 | Owner: ezyang Type: bug | Status: patch Priority: normal | Milestone: 8.0.1 Component: Template Haskell | Version: 7.10.1 Resolution: | Keywords: Operating System: Linux | Architecture: x86_64 Type of failure: Compile-time | (amd64) crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D1342 Wiki Page: | -------------------------------------+------------------------------------- Comment (by ezyang): Right. So the extended fix suggested by this ticket is a little out of date because of another renaming which is coming soon for GHC 8.0. The main change was "package key" turned into "unit id", and "installed package id" turned into "component id". The main semantic change was that installed package ids don't identify packages anymore; they identify components (usually the library component, but there are other components in a package too); and the main reason we moved away from the "package" nomenclature is laid out in #10622. So, as far as this ticket is concerned, the easy way to fix it is to just take anywhere you see "Package" and rename it to "Unit" (and "PkgKey" to "UnitId".) There is one little unfortunate thing, which is instead of the "Package" we have "Unit", which might be slightly confusing for users (it's not to be confused with `()`) but I can't think of a good alternative. OK, more on the ticket comments: package id strings. I will check this. It doesn't matter, the name and the version is reported from the installed package (unit) database. We don't extract it out from the UnitId. The UnitId is opaque! So we're querying against the DATABASE.
If we could provide a way to generate readable strings with version numbers from current package ids, then that would solve the problem. But I'm not sure if version numbers are included in package ids.
With new Cabal, UnitId should be readable by default.
I believe we can even hide PkgKey type completely, just provide Package to users.
That's a possibility, but I think it makes sense to keep them decoupled, so users can synthesize UnitIds (PkgKeys). -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10279#comment:34 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler