Giter VIP home page Giter VIP logo

Comments (8)

angerman avatar angerman commented on July 30, 2024

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.

hamishmack avatar hamishmack commented on July 30, 2024

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.

ocharles avatar ocharles commented on July 30, 2024

@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.

ocharles avatar ocharles commented on July 30, 2024

Ok, it looks like adding "system-cxx-std-lib" to nonReinstallablePkgs was all I needed to do. Shall we close this?

from haskell.nix.

hamishmack avatar hamishmack commented on July 30, 2024

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.

hamishmack avatar hamishmack commented on July 30, 2024

What breaks if you remove that whole module (setting reinstallableLibGhc = false and nonReinstallablePkgs = ...)?

from haskell.nix.

hamishmack avatar hamishmack commented on July 30, 2024

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.

ocharles avatar ocharles commented on July 30, 2024

Yea, just specifying reinstallableLibGhc = false has sorted it now. Thanks!

from haskell.nix.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.