Re: [GHC] #910: --make should have a -j flag for parallel building

#910: --make should have a -j flag for parallel building -------------------------------------+------------------------------------- Reporter: igloo | Owner: Type: feature request | Status: closed Priority: normal | Milestone: ⊥ Component: Compiler | Version: 6.4.2 Resolution: fixed | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: N/A Blocked By: 8184, 8235 | Blocking: Related Tickets: #9221 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by rwbarton): Wearing my GHC developer's hat: I don't like environment flags controlling the compiler's behavior, since they make it harder to reproduce or identify issues. It's very helpful if I can tell the user to run `cabal build -v` and extract the ghc command line and know that everything that affects ghc's operation is specified on that command line or in the input files. Implicit global state is bad, right? Of course, in reality there is already implicit global state (versions of installed packages, versions of C compiler/CPP/LLVM/etc.), but the less the better. Compare for example [https://gcc.gnu.org/onlinedocs/gcc /Environment-Variables.html Environment Variables Affecting GCC], which roughly amounts to LANG, TMPDIR and where to look for headers and libraries. In principle `-jN` should not affect ghc's behavior, and then I would not really be against adding an environment variable for it, but in practice it does: see #9370, which I think is still unfixed, not to mention the possibility of bugs in `-jN` itself. Wearing my GHC user's hat: I don't really see the need for an environment variable here. Doesn't the `stack build --ghc-options="-j4"` that nh2 mentioned solve your immediate problem? And using this environment variable doesn't strike me as the Right Solution to any problem: if you are invoking ghc directly then you don't need the environment variable, while if you are invoking it from a larger build system then ideally you would make the build system aware of the amount of parallelism ghc is using, and at that point you might as well make the build system aware of the `-jN` flag as well. In summary, I don't think there is a good case for adding such an environment variable. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/910#comment:66 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC