dhall-lang / dhall-json

This repository has moved to https://github.com/dhall-lang/dhall-haskell/tree/master/dhall-json
BSD 3-Clause "New" or "Revised" License
65 stars 6 forks source link

Fails to compile with the latest `dhall-haskell` #21

Closed deepfire closed 6 years ago

deepfire commented 6 years ago

https://github.com/dhall-lang/dhall-json/blob/d6adaa265dcf8ab5899396b05d612b2d8092dca4/src/Dhall/JSON.hs#L173

This line yields an error, when compiled with the tip of dhall-haskell's master:

src/Dhall/JSON.hs:173:29: error:
    Not in scope: data constructor ‘Dhall.Core.Chunks’
    Perhaps you meant ‘Dhall.Core.Const’ (imported from Dhall.Core)
    Module ‘Dhall.Core’ does not export ‘Chunks’.
note: keeping build directory ‘/tmp/nix-build-dhall-json-1.0.9.drv-14’
deepfire commented 6 years ago

..more specifically, the overrides I'm using are:

  (with haskell.packages.ghc802; {
    dhall-json = overrideCabal dhall-json (drv: {
      src = pkgs.fetchFromGitHub {
        owner  = "dhall-lang";
        repo   = "dhall-json";
        rev    = "d6adaa265dcf8ab5899396b05d612b2d8092dca4";
        sha256 = "0pvbpbg6475drvpakny12y3z2dv0vj6x4hlk853dgb84xbsd8i33";
      };
      jailbreak = true;
    });
    dhall      = overrideCabal dhall (drv: {
      src = pkgs.fetchFromGitHub {
        owner  = "dhall-lang";
        repo   = "dhall-haskell";
        rev    = "4a085aa3d622886cf7dd96a1ad475ba914d5ab1f";
        sha256 = "0849rvv9m5rgxgvn60q2bwfr7m1syjkgxrrs4xafs10ymfdx0g9f";
      };
      jailbreak = true;
      libraryHaskellDepends = drv.libraryHaskellDepends ++ [
        insert-ordered-containers
        lens-family-core
        prettyprinter-ansi-terminal
        repline
      ];
    });
Gabriella439 commented 6 years ago

I cannot reproduce. I checked out revision d6adaa265dcf8ab5899396b05d612b2d8092dca4 of this repository and replaced dhall.nix with:

{ mkDerivation, ansi-terminal, ansi-wl-pprint, base
, base16-bytestring, bytestring, case-insensitive, containers
, contravariant, cryptonite, deepseq, directory, exceptions
, fetchgit, filepath, haskeline, http-client, http-client-tls
, insert-ordered-containers, lens-family-core, memory, mtl
, optparse-generic, parsers, prettyprinter
, prettyprinter-ansi-terminal, repline, scientific, stdenv, tasty
, tasty-hunit, text, text-format, transformers, trifecta
, unordered-containers, vector
}:
mkDerivation {
  pname = "dhall";
  version = "1.11.1";
  src = fetchgit {
    url = "git@github.com:dhall-lang/dhall-haskell.git";
    sha256 = "0849rvv9m5rgxgvn60q2bwfr7m1syjkgxrrs4xafs10ymfdx0g9f";
    rev = "4a085aa3d622886cf7dd96a1ad475ba914d5ab1f";
  };
  isLibrary = true;
  isExecutable = true;
  libraryHaskellDepends = [
    ansi-wl-pprint base base16-bytestring bytestring case-insensitive
    containers contravariant cryptonite directory exceptions filepath
    http-client http-client-tls insert-ordered-containers
    lens-family-core memory parsers prettyprinter
    prettyprinter-ansi-terminal scientific text text-format
    transformers trifecta unordered-containers vector
  ];
  executableHaskellDepends = [
    ansi-terminal base haskeline mtl optparse-generic prettyprinter
    prettyprinter-ansi-terminal repline text trifecta
  ];
  testHaskellDepends = [
    base deepseq insert-ordered-containers prettyprinter tasty
    tasty-hunit text vector
  ];
  description = "A configuration language guaranteed to terminate";
  license = stdenv.lib.licenses.bsd3;
}

... and built this repository successfully

I also verified that revision 4a085aa3d622886cf7dd96a1ad475ba914d5ab1f of the dhall package does export the Chunks constructor from the Dhall.Core module:

https://github.com/dhall-lang/dhall-haskell/blob/4a085aa3d622886cf7dd96a1ad475ba914d5ab1f/src/Dhall/Core.hs#L27

I think the root cause is that there is some mistake in the way that you overrode the dhall dependency in your Nix expression and your dhall-json package is being built against a version of dhall that is version 1.8 or older. Another clue that this might be happening is that you had to jailbreak your dhall-json which shouldn't be necessary if you are building against the correct version of dhall.

deepfire commented 6 years ago

Gabriel, I'm sorry, you're completely right -- I have got used to deep overrides so much I didn't notice the override I employed was shallow -- so the dhall override was not taking effect for dhall-json.

Thank you for bearing with me!

Gabriella439 commented 6 years ago

No problem :)