[GHC] #16316: `-package-env=` in OPTIONS_GHC not supported
GHC
ghc-devs at haskell.org
Thu Feb 14 08:02:27 UTC 2019
#16316: `-package-env=` in OPTIONS_GHC not supported
-------------------------------------+-------------------------------------
Reporter: hvr | Owner: (none)
Type: feature | Status: new
request |
Priority: high | Milestone:
Component: Compiler | Version: 8.6.3
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
I just realised we're missing an ingredient in order to support persistent
package-environment workflows for standalone scripts:
Consider the following use-cases:
----
1.
Script requires package environemnts disabled
{{{#!hs
#!/usr/bin/env runghc
{-# OPTIONS_GHC -package-env=- #-}
main = putStrLn "Hello World"
}}}
----
2.
User manually maintains a package environment for scripts or teaching
exercises (this is a quite common way to teach Haskell which I subscribe
to, by letting students interact with ghc and ghci directly instead, and
only properly introducing `cabal` lateron when it's actually needed)
{{{
cabal v2-install --lib lens lens-aeson --package-env=lets-lens
}}}
and the scripts shall be using that custom named package environment:
{{{#!hs
#!/usr/bin/env runghc
{-# OPTIONS_GHC -package-env=lets-lens #-}
import Control.Lens
main = do
putStrLn "Hello Lens"
-- ...lens using code...
}}}
----
Currently both of these use-cases don't work because
{{{
$ ghci-8.6.3 Main.hs
GHCi, version 8.6.3: http://www.haskell.org/ghc/ :? for help
Main.hs:3:16: error:
unknown flag in {-# OPTIONS_GHC #-} pragma: -package-env=lets-lens
|
3 | {-# OPTIONS_GHC -package-env=lets-lens #-}
| ^^^^^^^^^^^^^^^^^^^^^^^^
}}}
I do realise that it's tricky to support package-db related commands in
`OPTIONS_GHC` but it'd nevertheless be quite important to support this in
some way (possibly with some restrictions) in order to properly support
the package-env based workflows (NB: the legacy user pkg-db based ones
aren't available anymore in future cabal versions -- package-environments
have completely replaced the legacy user-pkg db there).
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16316>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list