[GHC] #10550: Drop truncated package name prefix from package keys
GHC
ghc-devs at haskell.org
Sat Jun 20 20:42:12 UTC 2015
#10550: Drop truncated package name prefix from package keys
-------------------------------------+-------------------------------------
Reporter: ezyang | Owner: ezyang
Type: bug | Status: new
Priority: normal | Milestone: 7.12.1
Component: Package | Version: 7.11
system | Operating System: Unknown/Multiple
Keywords: | Type of failure: None/Unknown
Architecture: | Blocked By:
Unknown/Multiple | Related Tickets:
Test Case: |
Blocking: |
Differential Revisions: |
-------------------------------------+-------------------------------------
Early on when we moved to package keys, we decided it would be useful for
documentation purposes to have a package key be something like
`ghcpr_8TmvWUcS1U1IKHT0levwg3` rather than just `8TmvWUcS1U1IKHT0levwg3`,
which would leave a user with no idea what the key is.
I now think that this is more trouble than its worth:
1. We have fixed library *paths* so that the full package name, version,
key is in the path, e.g. libraries are installed to
`/home/ezyang/Dev/ghc-7.10.2/usr/lib/ghc-7.10.2/ghc-
prim-0.4.0.0-8TmvWUcS1U1IKHT0levwg3` instead of
`/home/ezyang/Dev/ghc-7.10.1/usr/lib/ghc-7.10.1/ghcpr_8TmvWUcS1U1IKHT0levwg3`.
This means that the biggest case where users might care about package keys
is no longer relevant; a user will always be able to get the real package
key.
2. The other case where package keys show up is in symbol names. However,
symbol names already contain *modules names*, so today we have
`procezu0hwN3CTKynhHQqQkChnSdH_SystemziProcess_rawSystem1_info` but
`0hwN3CTKynhHQqQkChnSdH_SystemziProcess_rawSystem1_info` seems just about
as clear (in particular, five letters just doesn't seem like enough to
adequately describe long package names.)
3. Now, the reason why we don't want to truncate the prefix name is
because it makes it more difficult to reliably, deterministically generate
a package key based on a few parameters about a package: namely, any
algorithm needs to know that `take 5 (filter (/= '-') packageName)` and
prefix that onto the key. Really, we only care about the hash, but for
most equality tests the prefix matters too! So it would be much nicer if
we didn't have to care about the hash as well.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10550>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list