
-package-name foo Tells GHC the the module being compiled forms part of package foo. If this flag is omitted (a very common case) then the default
The ghc documentation at http://www.haskell.org/ghc/docs/latest/html/users_guide/packages.html says the following: package main is assumed.
Note: the argument to -package-name should be the full package
identifier for the package, that is it should include the version number. For example: -package mypkg-1.2. I observe that the example uses -package rather than -package-name, and wonder if this is a mistake. Moreover, when I attempt to use the flag, like so: $ ghc -package-name hat-2.06 ... <command line>: cannot parse 'hat-2.06' as a package identifier This used to work with ghc-6.6.x and ghc-6.8.x, but seems to have stopped working with ghc-6.10.x. I surmise that the leading zero after the version point separator is to blame? It seems an unfortunate regression. Regards, Malcolm

On Wed, 2009-11-25 at 04:56 +0000, Malcolm Wallace wrote:
Moreover, when I attempt to use the flag, like so:
$ ghc -package-name hat-2.06 ... <command line>: cannot parse 'hat-2.06' as a package identifier
This used to work with ghc-6.6.x and ghc-6.8.x, but seems to have stopped working with ghc-6.10.x. I surmise that the leading zero after the version point separator is to blame? It seems an unfortunate regression.
On the contrary, it is good that it checks this now. The package name compiled into the code really ought to match the package name registered with ghc-pkg and the latter is a package identifier, not an arbitrary string. In principle it would be possible to parse 2.06 as a Version [2,6], however I think we decided that allowing that redundancy in the original string is not a good idea since people might expect 2.6 and 2.06 to be different. It would also mean we could not rely on lossless round trips between parser and printer which would be annoying for things like finding the file or directory containing a package (imagine we go looking for "2.6/" when the files are really in "2.06/"). Duncan
participants (2)
-
Duncan Coutts
-
Malcolm Wallace