Comments (8)
Yes. It's GHC c++ routing library so that the rest of the ecosystem doesn't need to deal with figuring out how to link c++.
I believe this is with ghc961?
from haskell.nix.
It looks like it was with ghc 9.4.5 based on the configure flags.
double-conversion.cabal
2.0.4.2 has:
if impl(ghc >= 9.4)
build-depends: system-cxx-std-lib == 1.0
I can't reproduce the issue building the double-conversion
library though. For instance with:
nix-build -E '((import ./. {}).pkgs-unstable.haskell-nix.hackage-package { compiler-nix-name = "ghc945"; name = "double-conversion"; }).components.library'
It looks like somehow the --dependency
args in your output are strangly missing --dependency=system-cxx-std-lib=system-cxx-std-lib-1.0
. It is also odd that --dependency=exceptions=exceptions-0.10.5
and --dependency=stm=stm-2.5.1.0
are included when they are not needed.
Do you have any modules
that change nonReinstallablePkg
or bootPkgs
?
from haskell.nix.
@hamishmack is right, this is GHC 9.4. We also do specify nonReinstallablePkgs
, here's the relevant module for that:
{
# https://github.com/input-output-hk/haskell.nix/issues/1809#issuecomment-1358469589
reinstallableLibGhc = false;
nonReinstallablePkgs =
[
"rts"
"ghc-heap"
"ghc-prim"
"integer-gmp"
"integer-simple"
"base"
"deepseq"
"array"
"ghc-boot-th"
"pretty"
"template-haskell"
"ghc-boot"
"ghc"
"Win32"
"array"
"binary"
"bytestring"
"containers"
"directory"
"filepath"
"ghc-boot"
"ghc-compact"
"ghc-prim"
"hpc"
"mtl"
"parsec"
"process"
"text"
"time"
"transformers"
"unix"
"xhtml"
"ghc-bignum"
# package ghc-9.4.3 is unusable due to missing dependencies:
# exceptions-0.10.5 stm-2.5.1.0 terminfo-0.4.1.5
"stm"
"exceptions"
"terminfo"
#
];
}
from haskell.nix.
Ok, it looks like adding "system-cxx-std-lib"
to nonReinstallablePkgs
was all I needed to do. Shall we close this?
from haskell.nix.
Actually now that reinstallableLibGhc = true
is the default, I think we can be more aggressive making nonReinstallablePkgs
when it is false
include the full set of packages needed by ghc
. I think that means adding:
- exceptions (ghc >=9.0.1)
- stm (ghc >=9.0.1)
- system-cxx-std-lib (ghc >=9.4.1)
We have been reluctant to change this in the past because reinstallableLibGhc = false
was the default and having these packages pinned to the version that comes with GHC might have been a confusing change for people not building ghc
packages (see #1183).
from haskell.nix.
What breaks if you remove that whole module (setting reinstallableLibGhc = false
and nonReinstallablePkgs = ...
)?
from haskell.nix.
I have merged #1941 so we should not need to include nonReinstallablePkgs
now. Just { reinstallableLibGhc = false; }
should cause all the packages required by ghc
to be included in nonReinstallablePkgs
.
from haskell.nix.
Yea, just specifying reinstallableLibGhc = false
has sorted it now. Thanks!
from haskell.nix.
Related Issues (20)
- Better “Getting Started” documentation entry-point
- Haskell.nix can't find linear-base HOT 5
- some bad code signatures for aarch64-darwin on cache.iog.io HOT 10
- Haddock failure for package with custom setup HOT 4
- Add `compiler-nix-name` to the component derivation names
- Add haskell-language-server-2.2.0.0 to flake inputs and build.nix
- Add GHC 9.4.6 HOT 6
- GHC 9.6, Wasm, and GHCJS
- cross-compilation documentation seems out of date
- mkFlake should arguably not build private sub-libraries HOT 2
- Haddock derivations should define hydra-build-products
- How do you do cross-compilation with the flakes interface? HOT 3
- Dry-run on darwin causes a bunch of mingw32 packages to be built HOT 2
- Unable to override Stackage resolver compiler HOT 1
- Packages with `arch(wasm32)` conditionals are broken HOT 1
- Annoying new nix-tools GHC version warning HOT 1
- Haddock builder should put doc in a folder based on the component, not the package HOT 2
- New `bitvec` produces broken object files due to CPU model probing HOT 6
- pre-build phase isn't working? HOT 2
- Check materialization in pure nix HOT 14
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from haskell.nix.