Code Monkey home page Code Monkey logo

ghc.nix's Introduction

This repository has been moved to https://gitlab.haskell.org/ghc/ghc.nix


These Nix expressions provide an environment for GHC development.

This repository does not contain the GHC sources themselves, so make sure you've cloned that repository first. The directions at https://ghc.dev are an excellent place to start.

CI

Simple usage

Quickstart

To enter an environment without cloning this repository you can run:

nix-shell https://github.com/alpmestan/ghc.nix/archive/master.tar.gz --attr devShells.<your-system>.default

where <your-system> would be the nix name of your system, in the typical case this is one of

  • x86_64-linux (for x86_64 Linux systems)
  • aarch64-linux (for ARM Linux systems)
  • x86_64-darwin (for old macs that do not have apple silicon)
  • aarch64-darwin (for macs with apple silicon)

Hence, an invocation on an x86_64 Linux system would look like this:

nix-shell https://github.com/alpmestan/ghc.nix/archive/master.tar.gz --attr devShells.x86_64-linux.default

Using flakes

This repository is flakes enabled, which means, that you can more easily get a devShell using:

nix develop github:alpmestan/ghc.nix

Building GHC

These commands assume you have cloned this repository to ~/ghc.nix. shell.nix has many parameters, all of them optional. You should take a look at ghc.nix for more details.

$ nix-shell ~/ghc.nix/shell.nix
# from the nix shell:
$ ./boot && configure_ghc
# example hadrian command: use 4 cores, build a 'quickest' flavoured GHC
# and place all the build artifacts under ./_mybuild/.
$ hadrian/build -j4 --flavour=quickest --build-root=_mybuild

# if you have never used cabal-install on your machine, you will likely
# need to run the following before the hadrian command:
$ cabal update

Note

configure_ghc runs ./configure $CONFIGURE_ARGS. While this is technically optional, this argument ensures that configure knows where the compiler's dependencies (e.g. gmp, libnuma, libdw) are found, allowing the compiler to be used even outsite of nix-shell. Plus, for the JavaScript cross compiler, configure_ghc actually runs the wrapper emconfigure!

If you are using zsh and you want to run ./configure directly, you must pass ${=CONFIGURE_ARGS} instead; otherwise zsh will escape the spaces in $CONFIGURE_ARGS and interpret it as one single argument. See also https://unix.stackexchange.com/a/19533/61132.

When you want to let Nix fetch Hadrian dependencies enter the shell with

$ nix-shell ~/ghc.nix/shell.nix --arg withHadrianDeps true

When using flakes, this argument is automatically applied.

Using haskell-language-server

You can also use ghc.nix to provide the right version of haskell-language-server (hls) if you want to use hls whilst developing on GHC. In order to do so, pass the withIde argument to your nix-shell invocation.

nix-shell ~/.ghc.nix/shell.nix --arg withIde true

When using flakes, this argument is also automatically applied.

$ nix develop github:alpmestan/ghc.nix
# HLS is already available

Running ./validate

$ nix-shell ~/ghc.nix/shell.nix --pure --run 'THREADS=4 ./validate'

See other flags of validate by invoking ./validate --help or just by reading its source code.

Note ./validate --slow builds the compiler in debug mode which has the side-effect of disabling performance tests.

Building and running for i686-linux from x86_64-linux

It's trivial!

$ nix-shell ~/ghc.nix/shell.nix --arg nixpkgs '(import <nixpkgs> {}).pkgsi686Linux'

Building a WebAsm or JavaScript cross-compiler

Both cross-compilers are supported with nix-shell or the flake-based nix develop.

CC, CONFIGURE_ARGS, etc. environment variables will be overridden to configure the cross-compiler.

Once in the shell, use ./boot && configure_ghc, then proceed with hadrian as usual.

HLS should also just work.

For WebAsm:

nix-shell ~/ghc.nix --arg withWasm true
# or
nix develop github:alpmestan/ghc.nix#wasm-cross

For JavaScript:

nix-shell ~/ghc.nix --arg withEMSDK true
# or
nix develop github:alpmestan/ghc.nix#js-cross

Note for the JavaScript backend, use bignum=native or the native_bignum transformer.

Cachix

There is a Cachix cache (ghc-nix) which is filled by our CI. To use it, run the following command and follow the instructions:

cachix use ghc-nix

The cache contains Linux x64 binaries of all packages that are used during a default build (i.e. a build without any overridden arguments).

Updating ghc.nix

  • to update everything: nix flake update
  • to update other inputs: run nix flake lock --update-input other-input-name
  • available inputs:
    • nixpkgs (used to provide some tooling, like texlive)
    • flake-compat (to ensure compatibility with pre-flake nix)
    • all-cabal-hashes (for the cabal-hashes of the haskell packages used)
  • to use a certain commit for any of the inputs: use flag --override-input, e.g.
    nix develop --override-input all-cabal-hashes "github:commercialhaskell/all-cabal-hashes/f4b3c68d6b5b128503bc1139cfc66e0537bccedd"
    this is not yet support in flake-compat mode, you will have to manually set the version in the flake.nix by appending /your-commit-hash to the input you want to change, then running nix flake lock --update-input input-you-want-to-update. Of course you can also just manually pass your own nixpkgs version to the shell.nix, this will override the one provided by the flake.
  • if you plan to upstream your modifications to ghc.nix, don't forget to run the formatter using nix fmt

Flake support

ghc.nix now also has basic flake support, nixpkgs and the cabal-hashes are pinned in the flake inputs.

To format all nix code in this repository, run nix fmt, to enter a development shell, run nix develop.

  • To change the settings of the devShell to your liking, just adjust the userSettings attribute-set in the top-level flake.

Warning Building a derivation from the local (ghc) hadrian requires builtins.getEnv which is only available if --impure is passed.

Using the flake template

It is common that you want to change the settings that ghc.nix uses to set up a devShell. Currently there is no good way in nix to pass nix expressions to flakes.

This is why we provide a flake template that you can add to your git worktree as follows:

$ nix flake init -t github:alpmestan/ghc.nix

This will add three files to your worktree:

  • a flake.nix which you can edit your userSettings in as usual
  • a flake.lock file which pins the ghc.nix version and transitively nixpkgs and all-cabal-hashes
  • a .envrc file for convenient use with direnv

Legacy nix-commands support

We use flake-compat to ensure compatibility of the old nix commands with the new flake commands and to use the flake inputs pinned by nix itself. Unfortunately there is a shortcoming of the current implementation of the flake nix commands that makes it so that you cannot pass arguments to the devShells. To ensure backwards compatibility, we call a function that we keep as flake output from the ./shell.nix file. Most importantly, this means that the shell.nix in this repo doesn't behave like a normal flake-compat shell but rather like a legacy shell.nix that can indeed be passed arguments. The default.nix behaves just like you would expect it to behave with the use of flake-compat.

The following table shows what ./ghc.nix can be configured with; the first column is the name of the attribute to be configured, the second argument the description of that argument, the third the default value for that argument and the third one, whether or not the flake.nix takes over orchestration of this attribute, this is the case if they're either pinned by the lock-file (e.g. nixpkgs) or can introduce impurity (e.g. system)

If you do not want to pass your arguments with --arg, but rather capture your passed arguments in a .nix file, you can locally create a file, say shell.nix with the following contents:

import ./path/to/ghc.nix/shell.nix {
  withHadrianDeps = true;
  withIde = true;
  # ... and so on
}

be careful to specify the path to the shell.nix, not to the default.nix.

attribute-name description default orchestrated by nix flake
system the system this is run on builtins.currentSystem or flake system
nixpkgs the stable nixpkgs set used nixpkgs as pinned in the lock-file
all-cabal-hashes the all-cabal-hashes version used all-cabal-hashes as pinned in the lock-file
bootghc the bootstrap ghc version "ghc924"
version the version of ghc to be bootstrapped "9.3"
hadrianCabal where hadrian is to be found (builtins.getEnv "PWD") + "/hadrian/hadrian.cabal"
useClang whether Clang is to be used for C compilation false
withLlvm whether llvm should be included in the librarySystemDepends false
withDocs whether to include dependencies to compile docs true
withGhcid whether to include ghci false
withIde whether to include hls false
withHadrianDeps whether to include dependencies for hadrian false
withDwarf whether to enable libdw unwinding support nixpkgs.stdenv.isLinux
withNuma whether to enable numa support nixpkgs.stdenv.isLinux
withDtrace whether to include linuxPackage.systemtap nixpkgs.stdenv.isLinux
withGrind whether to include valgrind true
withEMSDK whether to include emscripten for the js-backend, will create an .emscripten_cache folder in your working directory of the shell for writing. EM_CACHE is set to that path, prevents sub word sized atomic kinds of issues false
withWasm whether to include wasi-sdk & wasmtime for the ghc wasm backend false
withFindNoteDef install a shell script find_note_def; find_note_def "Adding a language extension" will point to the definition of the Note "Adding a language extension" true

direnv

With nix-direnv support, it is possible to make direnv load ghc.nix upon entering your local ghc directory. Just put a .envrc containing use flake /home/theUser/path/to/ghc.nix# in the ghc directory. This works for all flake URLs, so you can also put use flake github:alpmestan/ghc.nix# in there and it should work.

Warning If you're building an older GHC (not including this commit), be careful about not checking out .direnv, it's the local cache of your development shell which makes loading it upon entering the directory instant.

contributing

  • we check formatting and linting in our CI, so please be careful to run nix flake check --allow-import-from-derivation --impure before submitting changes as a PR
  • the tooling to run the linting is provided by a nix devShell which you can easily obtain by running nix develop .#formatting. Now you only have to run pre-commit run --all to check for linting and to reformat; using this devShell, the formatting will also be checked before committing. You can skip the check by passing --no-verify to the git commit command
  • ghc.nix also offers direnv integration, so if you have it installed, just run direnv allow to automatically load the formatting devShell and the accompanying pre-commit hook.

ghc.nix's People

Contributors

adamse avatar alpmestan avatar angerman avatar bgamari avatar chreekat avatar deepfire avatar doyougnu avatar ericson2314 avatar fendor avatar gabriella439 avatar ggreif avatar github-actions[bot] avatar int-index avatar jappeace avatar lambdadog avatar mangoiv avatar mpickering avatar mrkkrp avatar neosimsim avatar qrilka avatar sgraf812 avatar supersven avatar tek avatar terrorjack avatar vaibhavsagar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ghc.nix's Issues

Add CI pipelines for WebAssembly and Javascript targets

WebAssembly and Javascript targets seem to be pretty active these days. And, they seem to need some special "hacks".

IMHO it would be good to ensure ghc.nix reliably works for these targets, too, by adding GitHub CI pipelines. (Or, by adding them to existing ones. With "pipelines" I don't necessarily refer to the GitHub actions term, but to the general idea of a CI "thing".)

cabal: The program 'alex' could not be determined.

I dont know how to trace this error so I thought I would try here, as you helped me out on irc/ghc-dev, so my apologies if this should go elsewhere.
I completed the build and now I want to run the docs build, as thats where my focus is:
I have messed about with my configuration of nixos in a bid to understand how it works.

I had on reply on irc: (siarheit): "could it be your alex binary fails to start at all?"
But it made no sense.

Command was:
nix-shell ./ghc.nix/ --run 'hadrian/build.sh --trace docs'

Full message is:
Entering a GHC development shell with CFLAGS, CPPFLAGS, LDFLAGS and
LD_LIBRARY_PATH correctly set, to be picked up by ./configure.

CC              = /nix/store/cg650dmmsy2bmsbx1y5f8qqpjb5hr0g2-gcc-wrapper-7.3.0/bin/cc
CC_STAGE0       = /nix/store/cg650dmmsy2bmsbx1y5f8qqpjb5hr0g2-gcc-wrapper-7.3.0/bin/cc
CFLAGS          = -I/nix/store/p9zl3jj7gzwn11h4w8n46w9ql3df31d3-ghc-build-environment/include
CPPFLAGS        = -I/nix/store/p9zl3jj7gzwn11h4w8n46w9ql3df31d3-ghc-build-environment/include
LDFLAGS         = -L/nix/store/p9zl3jj7gzwn11h4w8n46w9ql3df31d3-ghc-build-environment/lib
LD_LIBRARY_PATH = /nix/store/p9zl3jj7gzwn11h4w8n46w9ql3df31d3-ghc-build-environment/lib
LLVM            = NO
libdw           = YES
numa            = YES
configure flags = --enable-dwarf-unwind

Please report bugs, problems or contributions to
https://github.com/alpmestan/ghc.nix
Resolving dependencies...
Build profile: -w ghc-8.2.2 -O1
In order, the following will be built (use -v for more details):

  • hadrian-0.1.0.0 (exe:hadrian) (configuration changed)
    Configuring executable 'hadrian' for hadrian-0.1.0.0..
    cabal: The program 'alex' version >=3.1 is required but the version of
    /home/gander/.cabal/store/ghc-8.2.2/alex-3.2.4-8e59163a7521e7d29e8a27987d587ff2b6203aeb585fa79705d0c7a26f36ebac/bin/alex could not be determined.

I did:
nix-shell ./ghc.nix/ --run 'alex --version'
to get:
Alex version 3.2.4, (c) 2003 Chris Dornan and Simon Marlow

Doesn't work on macOS Big Sur

We need newer nixpkgs for Big Sur to work around an ld issue. However, the latest nixpkgs is too new and features alex 3.2.6. I have used a random commit from Dec 4 and got it working:

niv update nixpkgs -r daf9fa3518ded8e053103f3679255c174c6dd77a

Also should use nix-shell ghc.nix --arg withGrind false because valgrind is marked as broken.

Can't run on macOS

Running

nix-shell https://github.com/alpmestan/ghc.nix/archive/master.tar.gz

... fails with:

error: Package ‘numactl-2.0.12’ in /nix/store/rw2dcrqrgk9jnx7vbnc3rr4g1hccdpwi-nixpkgs-18.09pre150352.7c826371c49/nixpkgs/pkgs/os-specific/linux/numactl/default.nix:31 is not supported on ‘x86_64-apple-darwin’, refusing to evaluate.

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

(use '--show-trace' to show detailed location information)

mktexnam: Could not map source abbreviation for phvr8t.

Whilst running:
nix-shell ./ghc.nix/ --run 'hadrian/build.sh docs'

I get the following error:

Transcript written on Haddock.log.
shakeArgsWith 0.000s 0%
Function shake 0.328s 10% ===
Database read 0.000s 0%
With database 0.000s 0%
Running rules 2.667s 89% =========================
Total 2.995s 100%
Error when running Shake build system:

  • docs
  • _build/docs/pdfs/Haddock.pdf
    user error (Development.Shake.cmd, system command failed
    Command: /nix/store/p9zl3jj7gzwn11h4w8n46w9ql3df31d3-ghc-build-environment/bin/xelatex -halt-on-error Haddock.tex
    Current directory: /run/user/1000/extra-dir-55140388394314
    Exit code: 1
    Stderr:
    kpathsea: Running mktextfm phvr8t
    /nix/store/qlrg74z2h0p8h5wb50l8rb6fvbyp6wwj-texlive-combined-2017/share/texmf/web2c/mktexnam: Could not map source abbreviation for phvr8t.
    /nix/store/qlrg74z2h0p8h5wb50l8rb6fvbyp6wwj-texlive-combined-2017/share/texmf/web2c/mktexnam: Need to update ?
    mktextfm: Running mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input phvr8t
    This is METAFONT, Version 2.7182818 (Web2C 2017/NixOS.org) (preloaded base=mf)

kpathsea: Running mktexmf phvr8t

! I can't find file `phvr8t'.
<*> ...:=ljfour; mag:=1; nonstopmode; input phvr8t

Please type another input file name
! Emergency stop.
<*> ...:=ljfour; mag:=1; nonstopmode; input phvr8t

Transcript written on mfput.log.
grep: phvr8t.log: No such file or directory
mktextfm: `mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input phvr8t' failed to make phvr8t.tfm.
kpathsea: Appending font creation commands to missfont.log.
)

The full message is at:

Q1: It says: "mktexnam: Need to update ?"
How {should,would} I do that?

I have zapped /nix after running hadrian/build.sh -c -j
But I this error before.
I have tried to locate 'phvr8t' and thought I found it in another texlive package.
I installed it but I wasnt able to enable it to be 'seen' by nix-shell/hadrian.

Rename master branch to main

I'm a non-native speaker and don't have strong feelings about the word master (it just doesn't trigger the other associations in my head as it would likely for native speakers.)

However, to not tip on anybody's toes or hurt anybody's feelings, I think we should rename master to main as most projects do nowadays.

"--pure" resets LANG, making "make TAGS" fail

Hey,

We already discussed this issue in #ghc, but I think it's good to describe it in detail, so that you can decide if my upcoming fix is reasonable.

➜  ghc git:(master) nix-shell --pure ghc.nix                                                                           ~/src/ghc
Entering a GHC development shell with CFLAGS, CPPFLAGS, LDFLAGS and
LD_LIBRARY_PATH correctly set, to be picked up by ./configure.

    CC              = /nix/store/10yq7kwlvbc6h658izmrlsspry1g9f3c-gcc-wrapper-7.3.0/bin/cc
    CC_STAGE0       = /nix/store/10yq7kwlvbc6h658izmrlsspry1g9f3c-gcc-wrapper-7.3.0/bin/cc
    CFLAGS          = -I/nix/store/rk1z7yrb600nhfii9p0av2wv6v0mxbjq-ghc-build-environment/include
    CPPFLAGS        = -I/nix/store/rk1z7yrb600nhfii9p0av2wv6v0mxbjq-ghc-build-environment/include
    LDFLAGS         = -L/nix/store/rk1z7yrb600nhfii9p0av2wv6v0mxbjq-ghc-build-environment/lib
    LD_LIBRARY_PATH = /nix/store/rk1z7yrb600nhfii9p0av2wv6v0mxbjq-ghc-build-environment/lib
    LLVM            = NO
    libdw           = YES
    numa            = YES
    configure flags = --enable-dwarf-unwind

Please report bugs, problems or contributions to
https://github.com/alpmestan/ghc.nix

[nix-shell:~/src/ghc]$ locale
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
➜  ghc git:(master) nix-shell ghc.nix                                                                                  ~/src/ghc
Entering a GHC development shell with CFLAGS, CPPFLAGS, LDFLAGS and
LD_LIBRARY_PATH correctly set, to be picked up by ./configure.

    CC              = /nix/store/10yq7kwlvbc6h658izmrlsspry1g9f3c-gcc-wrapper-7.3.0/bin/cc
    CC_STAGE0       = /nix/store/10yq7kwlvbc6h658izmrlsspry1g9f3c-gcc-wrapper-7.3.0/bin/cc
    CFLAGS          = -I/nix/store/rk1z7yrb600nhfii9p0av2wv6v0mxbjq-ghc-build-environment/include
    CPPFLAGS        = -I/nix/store/rk1z7yrb600nhfii9p0av2wv6v0mxbjq-ghc-build-environment/include
    LDFLAGS         = -L/nix/store/rk1z7yrb600nhfii9p0av2wv6v0mxbjq-ghc-build-environment/lib
    LD_LIBRARY_PATH = /nix/store/rk1z7yrb600nhfii9p0av2wv6v0mxbjq-ghc-build-environment/lib
    LLVM            = NO
    libdw           = YES
    numa            = YES
    configure flags = --enable-dwarf-unwind

Please report bugs, problems or contributions to
https://github.com/alpmestan/ghc.nix

[nix-shell:~/src/ghc]$ locale
LANG=de_DE.UTF-8
LC_CTYPE=de_DE.UTF-8
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=

make TAGS needs an UTF-8 locale, this can be seen in this gist: https://gist.github.com/supersven/7a22044db686a09c438c3b488a42edee

I'm currently preparing a patch, that will export LANG="en_US.UTF-8" in shellHook.

Best regards,

Sven

Nofib test suite requires regex-compat

I was hoping that I could simply do

(hspkgs.shellFor rec {
  packages = pkgset: [ hsdrv hspkgs.regex-compat ];

to accomplish this. However, in doing this only regex-base and regex-posix (i.e. regex-compat deps) were in the ghc-pkg list. Not being very familiar with the haskell-nix infrastructure, I am not sure if this is an issue with your code or in the larger haskell tooling for nix.

Strangely, I was able to add regex-compat to my ghc environment by including a package that has it as a dependency.

  packages = pkgset: [ hsdrv
    hspkgs.aeson-schema # why do I have this here? because it contains
                        # regex-compat as a dependency and for some reason
                        # package dependencies aren't working properly
    ];

Haskell packages and haskell-language-server must come from same source

Otherwise, haskell-language-server exits with

✗ haskell-language-server-wrapper
Found "/home/sven/src/ghc-decode-stack/hie.yaml" for "/home/sven/src/ghc-decode-stack/a"
Run entered for haskell-language-server-wrapper(haskell-language-server-wrapper) Version 1.9.1.0 x86_64 ghc-9.2.4
Current directory: /home/sven/src/ghc-decode-stack
Operating system: linux
Arguments: []
Cradle directory: /home/sven/src/ghc-decode-stack
Cradle type: Bios

Tool versions found on the $PATH
cabal:          3.8.1.0
stack:          Not found
ghc:            9.2.4


Consulting the cradle to get project GHC version...
Project GHC version: 9.2.4
haskell-language-server exe candidates: ["haskell-language-server-9.2.4","haskell-language-server"]
Launching haskell-language-server exe at:/nix/store/z3qk83yb4a3xnhaqyrv3bq8nx033dfmi-haskell-language-server-1.9.1.0/bin/haskell-language-server-9.2.4
GHC ABIs don't match!

Expected: Cabal-3.6.3.0:b55ffb91ce7f1b9c5df3b03fb288d75e array-0.5.4.0:6d55a425610e594571b293e4622b2a4a base-4.16.3.0:e8c9c14132bb32c49af64bbc00ce1ac4 binary-0.8.9.0:ed6ce9420b7494aacfb811dd3a496fb9 bytestring-0.11.3.1:33f1c6f4360ba6dc74433d30fce92f4f containers-0.6.5.1:2b5f75998338b844e891dbc28626794a deepseq-1.4.6.1:668b9314249362ef775c84f0d51fbf16 directory-1.3.6.2:96128be1b38161db5cd3673471f263e0 exceptions-0.10.4:c07d6fd95bf6ff94c1bb960e4e7795da filepath-1.4.2.2:6b395c326fc6dc6f778858ef61fd4beb ghc-9.2.4:4a9744916a7f7409462711ae41dd1402 ghc-bignum-1.2:e5ca9d59f186001b3d5453ec3847089c ghc-boot-9.2.4:78926cc050da4d74d3efdf0777a6032d ghc-boot-th-9.2.4:c869b365237dbbd069dfc9e0d936de29 ghc-compact-0.1.0.0:8f96c2f973c7a2d1da673ab5c9bb806f ghc-heap-9.2.4:d00f2cbb148a2de4bf8d23f363d66faf ghc-prim-0.8.0:ffd93db3214a208120a0aa30265df32b ghci-9.2.4:4581c8e9cb51cd6c7b44bf7a8352c6d2 haskeline-0.8.2:8d86a0f3b3e50fdea4ff9672f96b010c hpc-0.6.1.0:fc136795f48786003c538364b5dc42ad integer-gmp-1.1:5321278c82753c1bf23a48c46cce8f39 libiserv-9.2.4:91680f40927fd4c4aa58a350b2106e2e mtl-2.2.2:8d81a59a94ce76b6e2edb98154a26d99 parsec-3.1.15.0:cad0c870f7194b9e7f48a0024ab80c4e pretty-1.1.3.6:95955993c393bd057c5bab8498b42aa5 process-1.6.13.2:c744f639d31aa1503e28fc5b100142a8 rts-1.0.2: stm-2.5.0.2:1427d7212d440b5a5bc15e3940aac0e4 template-haskell-2.18.0.0:e7fbd48db4a0a452767fc47822198dbc terminfo-0.4.1.5:c91fca0eb97794f54cb966358b20e9d6 text-1.2.5.0:03880739471d7d4c35ee407b369c1c7d time-1.11.1.1:84989064a35010cd41b75d23f72964a6 transformers-0.5.6.2:a737c041f11fd3d693619d1d17c7d5d1 unix-2.7.2.2:22e6fe8d7b56d71377ce6d792b8bf803 xhtml-3000.2.2.1:d90bcb60a3823f0ed6b380cf61b17223
Got:      Cabal-3.6.3.0:08f981daf55bc84dcdcfd849154c67ed array-0.5.4.0:5e538c9485baaaf12083eab746e12667 base-4.16.3.0:0bb0867aca220d444aacea861fe45078 binary-0.8.9.0:1b87768ed27a6001244ef85f709d2270 bytestring-0.11.3.1:b5e7ffc8b5b0a5671df132927eed96f8 containers-0.6.5.1:925a484d4464031b3aaa2c61955e2ab5 deepseq-1.4.6.1:c5c953a4dc77218b95c11c87e6bb9f1f directory-1.3.6.2:08bb04cacc43128bb6dd7d6d997504c9 exceptions-0.10.4:657ccfde32f25699ed52aac9b7f4abde filepath-1.4.2.2:98287279ec5174a08d74d3b5586cb6e0 ghc-9.2.4:f613bcef38e4c1c83fda8f14e7ed852f ghc-bignum-1.2:7f280c8386a2cf4598fc9913eb5c61b4 ghc-boot-9.2.4:401ea99c24d25ff835274b5903c37c99 ghc-boot-th-9.2.4:4f1649805da8d6fd3dcc496a07ae0855 ghc-compact-0.1.0.0:661377b25d4f8c2cea2ee1d03996afe4 ghc-heap-9.2.4:dbf5614dc90bb7ffdd62ffb4b2a71cc5 ghc-prim-0.8.0:7f1d822ee320e35a9fc289f7a45c29d6 ghci-9.2.4:74c66371217b976dad2c2b0f5cdef30a haskeline-0.8.2:0c4243edb68c6ecc40e526e1fc95ff26 hpc-0.6.1.0:e368daef9c19a85267866d50c067139c integer-gmp-1.1:e96a02e6246243bea2cac99fa275b0a0 libiserv-9.2.4:d5cce2fe8036fdd2870a3ece6ef35e32 mtl-2.2.2:63ccd1d926dbdf32009effed8933863e parsec-3.1.15.0:4ec0c91716a871fddbe96ddc8e836c9c pretty-1.1.3.6:f5f9fc89e0f32d32653c5945c0361264 process-1.6.13.2:1e84ff2fb00fe05e2894d0740ed71427 rts-1.0.2: stm-2.5.0.2:d431ee62846324330006e2746808ec08 template-haskell-2.18.0.0:7c17227823fb424fa44cb35a6d094c26 terminfo-0.4.1.5:2d56ce71a14a9084faea900051de23d4 text-1.2.5.0:566f1e97efafd0230beb1c17f327fa0d time-1.11.1.1:2c1d4e9e33cdc41c916e82aa1e7499cb transformers-0.5.6.2:d9995777d2a6f91cac4a22dc93472324 unix-2.7.2.2:2ae615eb50aab45db4fef1498cbada6b xhtml-3000.2.2.1:2f0f6506700a9125261adc1b3840aa80
Content-Length: 203

{"jsonrpc":"2.0", "method":"window/showMessage", "params": {"type": 1, "message": "Couldn't find a working/matching GHC installation. Visit https://haskell4nix.readthedocs.io/nixpkgs-users-guide.html#how-to-install-haskell-language-server to learn how to correctly install a matching hls for your ghc with nix."}}%                                                                                                                

Having trouble building ghc

I've tried with and without Hadrian to load ghc.nix. In both cases I get a failed build with some variation of ghc-pkg: /home/brian/mygit/ghc/libraries/bootstrapping.conf/package.cache: GHC.PackageDb.readPackageDb: inappropriate type (not enough bytes) )

Here's a slightly more complete backtrace:

[brian@leungbk-nixos:~/mygit/ghc]$ nix-shell --pure ghc.nix
[nix-shell:~/mygit/ghc]$ cabal update
[nix-shell:~/mygit/ghc]$ ./boot && ./configure $CONFIGURE_ARGS && make -j8

[...]
Creating compiler/stage1/build/GHC/Settings/Config.hs ... 
Creating includes/dist/build/ghcautoconf.h...
Configuring ghc-boot-th-8.11.0.20200529...
Configuring hsc2hs-0.68.7...
Done.
done.
ghc-cabal: ghc-pkg dump failed: dieVerbatim: user error (ghc-cabal:
'/nix/store/vysnbfiax8xyanbimqw6ag70z41nk5dd-ghc-8.8.2/bin/ghc-pkg'
exited with an error:
ghc-pkg: /home/brian/mygit/ghc/libraries/bootstrapping.conf/package.cache:
GHC.PackageDb.readPackageDb: inappropriate type (not enough bytes)
)

make[1]: *** [libraries/ghc-boot-th/ghc.mk:3: libraries/ghc-boot-th/dist-boot/package-data.mk] Error 1
make[1]: *** Waiting for unfinished jobs....
ghc-cabal: ghc-pkg dump failed: dieVerbatim: user error (ghc-cabal:
'/nix/store/vysnbfiax8xyanbimqw6ag70z41nk5dd-ghc-8.8.2/bin/ghc-pkg'
exited with an error:
ghc-pkg: /home/brian/mygit/ghc/libraries/bootstrapping.conf/package.cache:
GHC.PackageDb.readPackageDb: inappropriate type (not enough bytes)
)

make[1]: *** [utils/hsc2hs/ghc.mk:21: utils/hsc2hs/dist/package-data.mk] Error 1
make: *** [Makefile:124: all] Error 2

[nix-shell:~/mygit/ghc]$ 

I'd appreciate any help.

Issues with WSL and mounted file systems

Hey,

not really an issue, but you might want to make a note of it.
I tried to use nix with ghc.nix on a WSL-shell.

When running in a mounted file system (e.g. my normal Windows user repo) I got issues with compilation, different ones each time.
This was simply fixed when using a wsl-native directory and not the mounted.

Might a short note for WSL users is good somewhere, took me a while to figure it out.

Building docs

When I try to do hadrian/build.sh --flavour=quick docs in a ghc.nix shell (with-docs=true), then Latex complains about the pcrr8t module missing. Maybe we need more packages from texlive?

@alpmestan has a workaround:

right I've never really managed to solve that, so I always do --docs=no-sphinx[-pdf]

... which was good enough for me. Just opening this issue to track that.

Don't run tests for Haskell code

Building and running tests for all dependencies takes a long time. I suggest disabling tests for all Haskell code. Here's an answer that might be useful in that regard. I've added that overlay to my personal set of overlays, but maybe we should also deactivate tests in the derivation for the shell...

Edit: The overlay means that none of the haskell packages are cached on Hydra. Yuck

Re-enable ghcide

Looks like ghcide-nix now supports GHC 8.8.3. (I haven't tested it, yet, but the related branch was pushed to master this morning.)

That means we can revert the related changes from #65.

Issues with LOCALE settings.

Using nix-shell ~/ghc.nix I get locale errors from perl during tests:

+perl: warning: Setting locale failed.
+perl: warning: Please check that your locale settings:
+       LANGUAGE = (unset),
+       LC_ALL = "en_US.utf8",
+       LANG = "en_US.utf8"
+    are supported and installed on your system.
+perl: warning: Falling back to the standard locale ("C").
*** unexpected failure for hpc001(normal)

I found a workaround using nix-shell ~/ghc.nix -p glibcLocales however that's bothersome to remember. Adding glibcLocales to the dep list for whatever reason doesn't work only the shell invocation does.

Could you add this behaviour to the nix expression?

withHadrianDeps no longer works

For a recent ghc-head checkout, setting withHadrianDeps = true will still result in the building of various hadrian dependency packages if they aren't built already in the cabal store.

boot fails with version `GLIBC_2.33' not found

$ ./boot
Booting .
Booting libraries/ghc-bignum/
Booting libraries/unix/
sh: /nix/store/ikl21vjfq900ccbqg1xasp83kadw6q8y-glibc-2.32-46/lib/libc.so.6: version `GLIBC_2.33' not found (required by /nix/store/1pl0x17adk2r9rx99rlfny9r0alha5m8-ncurses-6.3/lib/libncursesw.so.6)
sh: /nix/store/ikl21vjfq900ccbqg1xasp83kadw6q8y-glibc-2.32-46/lib/libc.so.6: version `GLIBC_2.33' not found (required by /nix/store/1pl0x17adk2r9rx99rlfny9r0alha5m8-ncurses-6.3/lib/libncursesw.so.6)
Booting libraries/process/
sh: /nix/store/ikl21vjfq900ccbqg1xasp83kadw6q8y-glibc-2.32-46/lib/libc.so.6: version `GLIBC_2.33' not found (required by /nix/store/1pl0x17adk2r9rx99rlfny9r0alha5m8-ncurses-6.3/lib/libncursesw.so.6)
Booting libraries/base/
Booting libraries/directory/
sh: /nix/store/ikl21vjfq900ccbqg1xasp83kadw6q8y-glibc-2.32-46/lib/libc.so.6: version `GLIBC_2.33' not found (required by /nix/store/1pl0x17adk2r9rx99rlfny9r0alha5m8-ncurses-6.3/lib/libncursesw.so.6)
sh: /nix/store/ikl21vjfq900ccbqg1xasp83kadw6q8y-glibc-2.32-46/lib/libc.so.6: version `GLIBC_2.33' not found (required by /nix/store/1pl0x17adk2r9rx99rlfny9r0alha5m8-ncurses-6.3/lib/libncursesw.so.6)
Booting libraries/time/
sh: /nix/store/ikl21vjfq900ccbqg1xasp83kadw6q8y-glibc-2.32-46/lib/libc.so.6: version `GLIBC_2.33' not found (required by /nix/store/1pl0x17adk2r9rx99rlfny9r0alha5m8-ncurses-6.3/lib/libncursesw.so.6)
Booting libraries/terminfo/
autoreconf in . failed with exit code 1
autoreconf in libraries/ghc-bignum/ failed with exit code 1
autoreconf in libraries/unix/ failed with exit code 1
autoreconf in libraries/process/ failed with exit code 1
autoreconf in libraries/base/ failed with exit code 1
autoreconf in libraries/directory/ failed with exit code 1
sh: /nix/store/ikl21vjfq900ccbqg1xasp83kadw6q8y-glibc-2.32-46/lib/libc.so.6: version `GLIBC_2.33' not found (required by /nix/store/1pl0x17adk2r9rx99rlfny9r0alha5m8-ncurses-6.3/lib/libncursesw.so.6)
autoreconf in libraries/time/ failed with exit code 1
sh: /nix/store/ikl21vjfq900ccbqg1xasp83kadw6q8y-glibc-2.32-46/lib/libc.so.6: version `GLIBC_2.33' not found (required by /nix/store/1pl0x17adk2r9rx99rlfny9r0alha5m8-ncurses-6.3/lib/libncursesw.so.6)
autoreconf in libraries/terminfo/ failed with exit code 1

valgrind

I got the news that running nofib under cachegrind delivers precise results (albeit slowly). That necessitates the presence of valgrind, so I added:

modified   default.nix
@@ -20,6 +20,7 @@ in
 , withHadrianDeps ? false
 , withDwarf ? nixpkgs.stdenv.isLinux  # enable libdw unwinding support
 , withNuma  ? nixpkgs.stdenv.isLinux
+, withGrind ? true
 , cores     ? 4
 }:
 
@@ -57,6 +58,7 @@ let
       ]
       ++ docsPackages
       ++ optional withLlvm llvm_7
+      ++ optional withGrind valgrind
       ++ optional withNuma numactl
       ++ optional withDwarf elfutils
       ++ optional withIde ghcide

It works. Okay to submit as PR?

feature: future improvement possibilities

  • Do not rebuild the entire thing when there was no change in the .nix files.

    Currently, the CI rebuilds, even if the only change is in the README. This can be avoided to reduce the CI minutes used.

  • Check linting and formatting in the CI

    Perhaps we can check linting and formatting of the .nix files and the README in CI and enforce formatting by using something like pre-commmit-hooks.nix.

  • add app attributes to do common tasks in the ghc repo

    • build entire ghc
    • test entire ghc
  • switch to flake-parts

README instructions unclear

I'm trying to follow the README and the first instructions mention files & directories that don't exists. What is mk.build.sample and where do I find it?

$ echo "BuildFlavour = quick" > mk/build.mk
$ cat mk/build.mk.sample >> mk/build.mk
$ nix-shell ~/ghc.nix/ --run './boot && ./configure $CONFIGURE_ARGS && make -j4'
# works with --pure too

./validate problems

Using ghc commit 93220d46fc, ./validate --fast gives me:

==== STAGE 1 TESTS ==== 

SUMMARY for test run started at Mon Jun 11 16:00:32 2018 CEST
 0:00:01 spent to go through
       2 total tests, which gave rise to
       6 test cases, of which
       4 were skipped

       0 had missing libraries
       2 expected passes
       0 expected failures

       0 caused framework failures
       0 caused framework warnings
       0 unexpected passes
       0 unexpected failures
       0 unexpected stat failures

==== STAGE 2 TESTS ==== 

Unexpected results from:
TEST="T14999 process001 process002"

SUMMARY for test run started at Mon Jun 11 15:48:26 2018 CEST
 0:12:06 spent to go through
    6414 total tests, which gave rise to
   19781 test cases, of which
   13461 were skipped

      28 had missing libraries
    6137 expected passes
     152 expected failures

       0 caused framework failures
       0 caused framework warnings
       0 unexpected passes
       3 unexpected failures
       0 unexpected stat failures

Unexpected failures:
   /run/user/1001/ghctest-b8ebz91k/test   spaces/./codeGen/should_compile/T14999.run           T14999 [bad stdout] (normal)
   /run/user/1001/ghctest-b8ebz91k/test   spaces/../../libraries/process/tests/process001.run  process001 [bad exit code] (normal)
   /run/user/1001/ghctest-b8ebz91k/test   spaces/../../libraries/process/tests/process002.run  process002 [bad exit code] (normal)

./validate --slow had many more last time I tried (several weeks ago).

error: nix-shell requires a single derivation

I am trying to build ghc with nix.

My ghc repository is up to date.

I am running this:

$ nix-shell https://github.com/alpmestan/ghc.nix/archive/master.tar.gz
error: nix-shell requires a single derivation
Try 'nix-shell --help' for more information.

on ghc.nix commit: 133516af8426d775fa0dc75c787edd56299ee6cf

Its a while since I used it but then it worked.
Am I missing something?

Make the `shellHook` silent

Hey,

I had two problems that I think I solved by disabling the console output of shellHook. I.e. simply commenting out the lines that print to stdout:

#    echo Entering a GHC development shell.
#    echo
#    echo Please report bugs, problems or contributions to
#    echo https://github.com/alpmestan/ghc.nix

Both issues appeared on Darwin. I haven't checked yet if they appear on NixOs, too.

direnv

I've got a direnv .envrc file in the ghc root folder (This way I can get project specific dependencies into Emacs):

use_nix

This loads a trivial shell.nix:

import ./ghc.nix/default.nix

It crashed with this error:

~ cd src/ghc
direnv: loading .envrc
direnv: ([/nix/var/nix/profiles/per-user/sventennie/profile/bin/direnv export zsh]) is taking a while to execute. Use CTRL-C to give up.
direnv: ([/nix/var/nix/profiles/per-user/sventennie/profile/bin/direnv apply_dump /dev/fd/63]) is taking a while to execute. Use CTRL-C to give up.
direnv: error unmarshal() base64 decoding: illegal base64 data at input byte 8
direnv: error exit status 1

After commenting out the mentioned lines, it works as expected:

~ cd src/ghc
direnv: loading .envrc
direnv: ([/nix/var/nix/profiles/per-user/sventennie/profile/bin/direnv export zsh]) is taking a while to execute. Use CTRL-C to give up.
direnv: ([/nix/var/nix/profiles/per-user/sventennie/profile/bin/direnv apply_dump /dev/fd/63]) is taking a while to execute. Use CTRL-C to give up.
direnv: export +ACLOCAL_PATH +AR +AR_FOR_TARGET +AS +AS_FOR_TARGET +CC +CC_FOR_TARGET +CMAKE_OSX_ARCHITECTURES +CONFIG_SHELL +CXX +CXX_FOR_TARGET +DETERMINISTIC_BUILD +FONTCONFIG_FILE +HOST_PATH +IN_NIX_SHELL +LD +LD_DYLD_PATH +LD_FOR_TARGET +LD_LIBRARY_PATH +LOCALE_ARCHIVE +MACOSX_DEPLOYMENT_TARGET +NIX_BINTOOLS +NIX_BINTOOLS_WRAPPER_x86_64_apple_darwin_TARGET_HOST +NIX_BINTOOLS_WRAPPER_x86_64_apple_darwin_TARGET_TARGET +NIX_BUILD_CORES +NIX_BUILD_DONT_SET_RPATH +NIX_BUILD_TOP +NIX_CC +NIX_CC_WRAPPER_x86_64_apple_darwin_TARGET_HOST +NIX_CC_WRAPPER_x86_64_apple_darwin_TARGET_TARGET +NIX_CFLAGS_COMPILE +NIX_COREFOUNDATION_RPATH +NIX_CXXSTDLIB_COMPILE +NIX_CXXSTDLIB_LINK +NIX_DONT_SET_RPATH +NIX_ENFORCE_NO_NATIVE +NIX_GHC +NIX_GHCPKG +NIX_GHC_DOCDIR +NIX_GHC_LIBDIR +NIX_HARDENING_ENABLE +NIX_IGNORE_LD_THROUGH_GCC +NIX_INDENT_MAKE +NIX_LDFLAGS +NIX_NO_SELF_RPATH +NIX_STORE +NIX_TARGET_BINTOOLS +NIX_TARGET_CC +NIX_TARGET_CFLAGS_COMPILE +NIX_TARGET_CXXSTDLIB_COMPILE +NIX_TARGET_CXXSTDLIB_LINK +NIX_TARGET_LDFLAGS +NM +NM_FOR_TARGET +PATH_LOCALE +PERL5LIB +PYTHONHASHSEED +PYTHONNOUSERSITE +PYTHONPATH +RANLIB +RANLIB_FOR_TARGET +SDKROOT +SIZE +SIZE_FOR_TARGET +SOURCE_DATE_EPOCH +STRINGS +STRINGS_FOR_TARGET +STRIP +STRIP_FOR_TARGET +TARGET_AR +TARGET_AS +TARGET_CC +TARGET_CXX +TARGET_LD +TARGET_NM +TARGET_RANLIB +TARGET_SIZE +TARGET_STRINGS +TARGET_STRIP +TEMP +TEMPDIR +TMP +__darwinAllowLocalNetworking +__impureHostDeps +__propagatedImpureHostDeps +__propagatedSandboxProfile +__sandboxProfile +buildInputs +builder +configureFlags +depsBuildBuild +depsBuildBuildPropagated +depsBuildTarget +depsBuildTargetPropagated +depsHostHost +depsHostHostPropagated +depsTargetTarget +depsTargetTargetPropagated +doCheck +doInstallCheck +gl_cv_func_getcwd_abort_bug +hardeningDisable +installPhase +name +nativeBuildInputs +out +outputs +patches +phases +propagatedBuildInputs +propagatedNativeBuildInputs +shell +shellHook +stdenv +strictDeps +system ~LANG ~PATH

Haskell Language Server / VSCode

I tried @mpickering 's hie branch (https://github.com/mpickering/haskell-ide-engine/tree/hie-bios) with my own wrapper script:

#! /bin/sh

echo "Args: " $@ >> hie.log
# $@ to pass whatever arguments our IDE may want hie-wrapper to receive.
HIE=~/src/haskell-ide-engine/dist-newstyle/build/x86_64-osx/ghc-8.6.4/haskell-ide-engine-1.0.0.0/x/hie/build/hie/hie
nix-shell --run "$HIE -l hie.log -d --bios-verbose $@"

First VSCode refused to connect (unfortunately without a good error message; only indicating that the server "crashed" five times and will give up now).
After commenting out the lines mentioned above, VSCode works with this specific hie branch/executable.

So, maybe we should consider to not output anything on the console, as that seems to interfere with other tools...?

Bash error is thrown with (direnv+nix-direnv+emacs-direnv) setup, when I try to build ghc using ghc.nix?

Hello there, again I'm trying to build ghc in an isolated environment using ghc.nix, but my (direnv+nix-direnv+emacs-direnv) setup is causing an error to be thrown. I fixed the hadrian.cabal file not found error by just moving my shell.nix up one directory into the ghc repository, but the bash error still remains?
Here's the pastebin:

trace: checking if /home/zeta/open-source-projects/haskell-projects/ghc/hadrian/hadrian.cabal is present: yes
bash: /nix/store/hl4m94j3yl7v5jfpn2kq0rkvj5kj428b-ghc-8.8.4-with-packages: Is a directory

And here is the shell.nix that file that I placed with a .envrc file inside the ghc repository root directory(I renamed the default.nix file to ghc-build.nix):

{ pkgs ? import {}}:

let
ghc-build = import ./ghc.nix/ghc-build.nix {};
in
pkgs.mkShell
{
nativeBuildInputs = with pkgs;
[
ghc-build
];
}

Thanks in advance for the help!

LLVM 9

There are a few test cases that fail in optllvm way. Steps to reproduce:

hadrian/build --flavour=Quick --freeze1 test --only="T11649 T5681 T7571 T8131b"

The issue is that their output contains:

You are using an unsupported version of LLVM!
Currently only 9 is supported. System LLVM version: 7.1.0
We will try though...

feature: future improvement possibilities

Do not rebuild the entire thing when there was no change in the .nix files.

Currently, the CI rebuilds, even if the only change is in the README. This can be avoided to reduce the CI minutes used.

Check linting and formatting in the CI

Perhaps we can check linting and formatting of the .nix files and the README in CI and enforce formatting by using something like pre-commmit-hooks.nix.

add app attributes to do common tasks in the ghc repo

  • build entire ghc
  • test entire ghc
  • anything else?

getting ghc.nix to work with lorri setup, for isolated nix environments?

hello there,

the nix setup that i'm currently using to work in isolated nix environments is:

(lorri+direnv+emacs-direnv), which works very well. Anyways, i was wondering if i will need to make any extra changes to ghc.nix's default.nix file in order to get ghc.nix working with this lorri setup? i'm guessing all that i need to do is wrap the default.nix's code in a mkShell function, but i'm not sure? if you could clarify this.

also, if most of the nix users end up using a nix setup similar to this, would you consider changing the default.nix file to account for that setup? it would save the hassle of having to manually do this.

thanks in advance for the help and the consideration of making this change.

cabal: Could not resolve dependencies: [__1] rejecting: hadrian-0.1.0.0 (conflict: Cabal==2.3.0.0, hadrian => Cabal>=2.5 && <2.6)

Hello,

Whilst running this:
nix-shell ./ghc.nix/ --run 'hadrian/build.sh -c -j4 --flavour=quickest' from within ghc/, I got the following:

Entering a GHC development shell with CFLAGS, CPPFLAGS, LDFLAGS and
LD_LIBRARY_PATH correctly set, to be picked up by ./configure.

CC              = /nix/store/lzh9rcw3rjvbaj7n3z4nzsvcz85k2p2m-gcc-wrapper-7.3.0/bin/cc
CC_STAGE0       = /nix/store/lzh9rcw3rjvbaj7n3z4nzsvcz85k2p2m-gcc-wrapper-7.3.0/bin/cc
CFLAGS          = -I/nix/store/c7f4wxaa1a5x1zq1x7w6q2nqmxacvfpi-ghc-build-environment/include
CPPFLAGS        = -I/nix/store/c7f4wxaa1a5x1zq1x7w6q2nqmxacvfpi-ghc-build-environment/include
LDFLAGS         = -L/nix/store/c7f4wxaa1a5x1zq1x7w6q2nqmxacvfpi-ghc-build-environment/lib
LD_LIBRARY_PATH = /nix/store/c7f4wxaa1a5x1zq1x7w6q2nqmxacvfpi-ghc-build-environment/lib
LLVM            = NO
libdw           = YES
numa            = YES
configure flags = --enable-dwarf-unwind

Please report bugs, problems or contributions to
https://github.com/alpmestan/ghc.nix
Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] next goal: Cabal (user goal)
[__0] rejecting: Cabal-2.4.1.0, Cabal-2.4.0.1, Cabal-2.4.0.0 (constraint from
user target requires ==2.3.0.0)
[__0] trying: Cabal-2.3.0.0
[__1] next goal: hadrian (user goal)
[__1] rejecting: hadrian-0.1.0.0 (conflict: Cabal==2.3.0.0, hadrian =>
Cabal>=2.5 && <2.6)
[__1] fail (backjumping, conflict set: Cabal, hadrian)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: Cabal, hadrian

Add ghcid

ghcid is a tremendously useful tool for haskell development, and with it working on ghc now, it seems like a good idea to add it to ghc.nix

`nix-shell` fails on `happy`

I'm sure this is a silly mistake on my part, but nix-shell ghc.nix is failing with the output below (omitting the successful packages):

Preprocessing test suite 'tests' for happy-1.19.11..
Building test suite 'tests' for happy-1.19.11..
[1 of 1] Compiling Main             ( test.hs, dist/build/tests/tests-tmp/Main.o )
Linking dist/build/tests/tests ...
Preprocessing executable 'happy' for happy-1.19.11..
Building executable 'happy' for happy-1.19.11..
[ 1 of 19] Compiling AbsSyn           ( src/AbsSyn.lhs, dist/build/happy/happy-tmp/AbsSyn.o )
[ 2 of 19] Compiling GenUtils         ( src/GenUtils.lhs, dist/build/happy/happy-tmp/GenUtils.o )
[ 3 of 19] Compiling NameSet          ( src/NameSet.hs, dist/build/happy/happy-tmp/NameSet.o )
[ 4 of 19] Compiling ParamRules       ( src/ParamRules.hs, dist/build/happy/happy-tmp/ParamRules.o )
[ 5 of 19] Compiling ParseMonad       ( src/ParseMonad.hs, dist/build/happy/happy-tmp/ParseMonad.o )
[ 6 of 19] Compiling Lexer            ( src/Lexer.lhs, dist/build/happy/happy-tmp/Lexer.o )
[ 7 of 19] Compiling AttrGrammar      ( src/AttrGrammar.lhs, dist/build/happy/happy-tmp/AttrGrammar.o )
[ 8 of 19] Compiling AttrGrammarParser ( src/AttrGrammarParser.hs, dist/build/happy/happy-tmp/AttrGrammarParser.o )
[ 9 of 19] Compiling Grammar          ( src/Grammar.lhs, dist/build/happy/happy-tmp/Grammar.o )
[10 of 19] Compiling LALR             ( src/LALR.lhs, dist/build/happy/happy-tmp/LALR.o )
[11 of 19] Compiling First            ( src/First.lhs, dist/build/happy/happy-tmp/First.o )
[12 of 19] Compiling Parser           ( src/Parser.hs, dist/build/happy/happy-tmp/Parser.o )
[13 of 19] Compiling Paths_happy      ( dist/build/happy/autogen/Paths_happy.hs, dist/build/happy/happy-tmp/Paths_happy.o )
[14 of 19] Compiling Info             ( src/Info.lhs, dist/build/happy/happy-tmp/Info.o )
[15 of 19] Compiling PrettyGrammar    ( src/PrettyGrammar.hs, dist/build/happy/happy-tmp/PrettyGrammar.o )
[16 of 19] Compiling ProduceGLRCode   ( src/ProduceGLRCode.lhs, dist/build/happy/happy-tmp/ProduceGLRCode.o )
[17 of 19] Compiling Target           ( src/Target.lhs, dist/build/happy/happy-tmp/Target.o )
[18 of 19] Compiling ProduceCode      ( src/ProduceCode.lhs, dist/build/happy/happy-tmp/ProduceCode.o )
[19 of 19] Compiling Main             ( src/Main.lhs, dist/build/happy/happy-tmp/Main.o )
Linking dist/build/happy/happy ...
running tests
Running 1 test suites...
Test suite tests: RUNNING...
make: Entering directory '/build/happy-1.19.11/tests'
rm -f *.n.hs *.a.hs *.g.hs *.gc.hs *.ag.hs *.agc.hs *.info *.hi *.bin *.exe *.o *.run.stdout *.run.stderr
--> Checking error001.y...
../dist/build/happy/happy --strict --template=.. error001.y 1>error001.run.stdout 2>error001.run.stderr || true
../dist/build/happy/happy --strict --template=.. Test.ly -o Test.n.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  Test.n.hs -o Test.n.bin
[1 of 1] Compiling Main             ( Test.n.hs, Test.n.o )
Linking Test.n.bin ...
--> Checking Test.n.bin...
./Test.n.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -a Test.ly -o Test.a.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  Test.a.hs -o Test.a.bin
[1 of 1] Compiling Main             ( Test.a.hs, Test.a.o )
Linking Test.a.bin ...
--> Checking Test.a.bin...
./Test.a.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -g Test.ly -o Test.g.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  Test.g.hs -o Test.g.bin
[1 of 1] Compiling Main             ( Test.g.hs, Test.g.o )
Linking Test.g.bin ...
--> Checking Test.g.bin...
./Test.g.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -gc Test.ly -o Test.gc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  Test.gc.hs -o Test.gc.bin
[1 of 1] Compiling Main             ( Test.gc.hs, Test.gc.o )
Linking Test.gc.bin ...
--> Checking Test.gc.bin...
./Test.gc.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -ag Test.ly -o Test.ag.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  Test.ag.hs -o Test.ag.bin
[1 of 1] Compiling Main             ( Test.ag.hs, Test.ag.o )
Linking Test.ag.bin ...
--> Checking Test.ag.bin...
./Test.ag.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -agc Test.ly -o Test.agc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  Test.agc.hs -o Test.agc.bin
[1 of 1] Compiling Main             ( Test.agc.hs, Test.agc.o )
Linking Test.agc.bin ...
--> Checking Test.agc.bin...
./Test.agc.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. TestMulti.ly -o TestMulti.n.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  TestMulti.n.hs -o TestMulti.n.bin
[1 of 1] Compiling Main             ( TestMulti.n.hs, TestMulti.n.o )
Linking TestMulti.n.bin ...
--> Checking TestMulti.n.bin...
./TestMulti.n.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -a TestMulti.ly -o TestMulti.a.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  TestMulti.a.hs -o TestMulti.a.bin
[1 of 1] Compiling Main             ( TestMulti.a.hs, TestMulti.a.o )
Linking TestMulti.a.bin ...
--> Checking TestMulti.a.bin...
./TestMulti.a.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -g TestMulti.ly -o TestMulti.g.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  TestMulti.g.hs -o TestMulti.g.bin
[1 of 1] Compiling Main             ( TestMulti.g.hs, TestMulti.g.o )
Linking TestMulti.g.bin ...
--> Checking TestMulti.g.bin...
./TestMulti.g.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -gc TestMulti.ly -o TestMulti.gc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  TestMulti.gc.hs -o TestMulti.gc.bin
[1 of 1] Compiling Main             ( TestMulti.gc.hs, TestMulti.gc.o )
Linking TestMulti.gc.bin ...
--> Checking TestMulti.gc.bin...
./TestMulti.gc.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -ag TestMulti.ly -o TestMulti.ag.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  TestMulti.ag.hs -o TestMulti.ag.bin
[1 of 1] Compiling Main             ( TestMulti.ag.hs, TestMulti.ag.o )
Linking TestMulti.ag.bin ...
--> Checking TestMulti.ag.bin...
./TestMulti.ag.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -agc TestMulti.ly -o TestMulti.agc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  TestMulti.agc.hs -o TestMulti.agc.bin
[1 of 1] Compiling Main             ( TestMulti.agc.hs, TestMulti.agc.o )
Linking TestMulti.agc.bin ...
--> Checking TestMulti.agc.bin...
./TestMulti.agc.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. TestPrecedence.ly -o TestPrecedence.n.hs
unused terminals: 1
shift/reduce conflicts:  6
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  TestPrecedence.n.hs -o TestPrecedence.n.bin
[1 of 1] Compiling Main             ( TestPrecedence.n.hs, TestPrecedence.n.o )
Linking TestPrecedence.n.bin ...
--> Checking TestPrecedence.n.bin...
./TestPrecedence.n.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -a TestPrecedence.ly -o TestPrecedence.a.hs
unused terminals: 1
shift/reduce conflicts:  6
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  TestPrecedence.a.hs -o TestPrecedence.a.bin
[1 of 1] Compiling Main             ( TestPrecedence.a.hs, TestPrecedence.a.o )
Linking TestPrecedence.a.bin ...
--> Checking TestPrecedence.a.bin...
./TestPrecedence.a.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -g TestPrecedence.ly -o TestPrecedence.g.hs
unused terminals: 1
shift/reduce conflicts:  6
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  TestPrecedence.g.hs -o TestPrecedence.g.bin
[1 of 1] Compiling Main             ( TestPrecedence.g.hs, TestPrecedence.g.o )
Linking TestPrecedence.g.bin ...
--> Checking TestPrecedence.g.bin...
./TestPrecedence.g.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -gc TestPrecedence.ly -o TestPrecedence.gc.hs
unused terminals: 1
shift/reduce conflicts:  6
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  TestPrecedence.gc.hs -o TestPrecedence.gc.bin
[1 of 1] Compiling Main             ( TestPrecedence.gc.hs, TestPrecedence.gc.o )
Linking TestPrecedence.gc.bin ...
--> Checking TestPrecedence.gc.bin...
./TestPrecedence.gc.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -ag TestPrecedence.ly -o TestPrecedence.ag.hs
unused terminals: 1
shift/reduce conflicts:  6
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  TestPrecedence.ag.hs -o TestPrecedence.ag.bin
[1 of 1] Compiling Main             ( TestPrecedence.ag.hs, TestPrecedence.ag.o )
Linking TestPrecedence.ag.bin ...
--> Checking TestPrecedence.ag.bin...
./TestPrecedence.ag.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -agc TestPrecedence.ly -o TestPrecedence.agc.hs
unused terminals: 1
shift/reduce conflicts:  6
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  TestPrecedence.agc.hs -o TestPrecedence.agc.bin
[1 of 1] Compiling Main             ( TestPrecedence.agc.hs, TestPrecedence.agc.o )
Linking TestPrecedence.agc.bin ...
--> Checking TestPrecedence.agc.bin...
./TestPrecedence.agc.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. bug001.ly -o bug001.n.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  bug001.n.hs -o bug001.n.bin
[1 of 1] Compiling Main             ( bug001.n.hs, bug001.n.o )
Linking bug001.n.bin ...
--> Checking bug001.n.bin...
./bug001.n.bin
42
../dist/build/happy/happy --strict --template=.. -a bug001.ly -o bug001.a.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  bug001.a.hs -o bug001.a.bin
[1 of 1] Compiling Main             ( bug001.a.hs, bug001.a.o )
Linking bug001.a.bin ...
--> Checking bug001.a.bin...
./bug001.a.bin
42
../dist/build/happy/happy --strict --template=.. -g bug001.ly -o bug001.g.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  bug001.g.hs -o bug001.g.bin
[1 of 1] Compiling Main             ( bug001.g.hs, bug001.g.o )
Linking bug001.g.bin ...
--> Checking bug001.g.bin...
./bug001.g.bin
42
../dist/build/happy/happy --strict --template=.. -gc bug001.ly -o bug001.gc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  bug001.gc.hs -o bug001.gc.bin
[1 of 1] Compiling Main             ( bug001.gc.hs, bug001.gc.o )
Linking bug001.gc.bin ...
--> Checking bug001.gc.bin...
./bug001.gc.bin
42
../dist/build/happy/happy --strict --template=.. -ag bug001.ly -o bug001.ag.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  bug001.ag.hs -o bug001.ag.bin
[1 of 1] Compiling Main             ( bug001.ag.hs, bug001.ag.o )
Linking bug001.ag.bin ...
--> Checking bug001.ag.bin...
./bug001.ag.bin
42
../dist/build/happy/happy --strict --template=.. -agc bug001.ly -o bug001.agc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  bug001.agc.hs -o bug001.agc.bin
[1 of 1] Compiling Main             ( bug001.agc.hs, bug001.agc.o )
Linking bug001.agc.bin ...
--> Checking bug001.agc.bin...
./bug001.agc.bin
42
../dist/build/happy/happy --strict --template=.. monad001.y -o monad001.n.hs
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monad001.n.hs -o monad001.n.bin
[1 of 1] Compiling Main             ( monad001.n.hs, monad001.n.o )
Linking monad001.n.bin ...
--> Checking monad001.n.bin...
./monad001.n.bin
2.5../dist/build/happy/happy --strict --template=.. -a monad001.y -o monad001.a.hs
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monad001.a.hs -o monad001.a.bin
[1 of 1] Compiling Main             ( monad001.a.hs, monad001.a.o )
Linking monad001.a.bin ...
--> Checking monad001.a.bin...
./monad001.a.bin
2.5../dist/build/happy/happy --strict --template=.. -g monad001.y -o monad001.g.hs
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monad001.g.hs -o monad001.g.bin
[1 of 1] Compiling Main             ( monad001.g.hs, monad001.g.o )
Linking monad001.g.bin ...
--> Checking monad001.g.bin...
./monad001.g.bin
2.5../dist/build/happy/happy --strict --template=.. -gc monad001.y -o monad001.gc.hs
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monad001.gc.hs -o monad001.gc.bin
[1 of 1] Compiling Main             ( monad001.gc.hs, monad001.gc.o )
Linking monad001.gc.bin ...
--> Checking monad001.gc.bin...
./monad001.gc.bin
2.5../dist/build/happy/happy --strict --template=.. -ag monad001.y -o monad001.ag.hs
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monad001.ag.hs -o monad001.ag.bin
[1 of 1] Compiling Main             ( monad001.ag.hs, monad001.ag.o )
Linking monad001.ag.bin ...
--> Checking monad001.ag.bin...
./monad001.ag.bin
2.5../dist/build/happy/happy --strict --template=.. -agc monad001.y -o monad001.agc.hs
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monad001.agc.hs -o monad001.agc.bin
[1 of 1] Compiling Main             ( monad001.agc.hs, monad001.agc.o )
Linking monad001.agc.bin ...
--> Checking monad001.agc.bin...
./monad001.agc.bin
2.5../dist/build/happy/happy --strict --template=.. monad002.ly -o monad002.n.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monad002.n.hs -o monad002.n.bin
[1 of 1] Compiling Main             ( monad002.n.hs, monad002.n.o )
Linking monad002.n.bin ...
--> Checking monad002.n.bin...
./monad002.n.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -a monad002.ly -o monad002.a.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monad002.a.hs -o monad002.a.bin
[1 of 1] Compiling Main             ( monad002.a.hs, monad002.a.o )
Linking monad002.a.bin ...
--> Checking monad002.a.bin...
./monad002.a.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -g monad002.ly -o monad002.g.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monad002.g.hs -o monad002.g.bin
[1 of 1] Compiling Main             ( monad002.g.hs, monad002.g.o )
Linking monad002.g.bin ...
--> Checking monad002.g.bin...
./monad002.g.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -gc monad002.ly -o monad002.gc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monad002.gc.hs -o monad002.gc.bin
[1 of 1] Compiling Main             ( monad002.gc.hs, monad002.gc.o )
Linking monad002.gc.bin ...
--> Checking monad002.gc.bin...
./monad002.gc.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -ag monad002.ly -o monad002.ag.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monad002.ag.hs -o monad002.ag.bin
[1 of 1] Compiling Main             ( monad002.ag.hs, monad002.ag.o )
Linking monad002.ag.bin ...
--> Checking monad002.ag.bin...
./monad002.ag.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -agc monad002.ly -o monad002.agc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monad002.agc.hs -o monad002.agc.bin
[1 of 1] Compiling Main             ( monad002.agc.hs, monad002.agc.o )
Linking monad002.agc.bin ...
--> Checking monad002.agc.bin...
./monad002.agc.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. precedence001.ly -o precedence001.n.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  precedence001.n.hs -o precedence001.n.bin
[1 of 1] Compiling Main             ( precedence001.n.hs, precedence001.n.o )
Linking precedence001.n.bin ...
--> Checking precedence001.n.bin...
./precedence001.n.bin
../dist/build/happy/happy --strict --template=.. -a precedence001.ly -o precedence001.a.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  precedence001.a.hs -o precedence001.a.bin
[1 of 1] Compiling Main             ( precedence001.a.hs, precedence001.a.o )
Linking precedence001.a.bin ...
--> Checking precedence001.a.bin...
./precedence001.a.bin
../dist/build/happy/happy --strict --template=.. -g precedence001.ly -o precedence001.g.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  precedence001.g.hs -o precedence001.g.bin
[1 of 1] Compiling Main             ( precedence001.g.hs, precedence001.g.o )
Linking precedence001.g.bin ...
--> Checking precedence001.g.bin...
./precedence001.g.bin
../dist/build/happy/happy --strict --template=.. -gc precedence001.ly -o precedence001.gc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  precedence001.gc.hs -o precedence001.gc.bin
[1 of 1] Compiling Main             ( precedence001.gc.hs, precedence001.gc.o )
Linking precedence001.gc.bin ...
--> Checking precedence001.gc.bin...
./precedence001.gc.bin
../dist/build/happy/happy --strict --template=.. -ag precedence001.ly -o precedence001.ag.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  precedence001.ag.hs -o precedence001.ag.bin
[1 of 1] Compiling Main             ( precedence001.ag.hs, precedence001.ag.o )
Linking precedence001.ag.bin ...
--> Checking precedence001.ag.bin...
./precedence001.ag.bin
../dist/build/happy/happy --strict --template=.. -agc precedence001.ly -o precedence001.agc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  precedence001.agc.hs -o precedence001.agc.bin
[1 of 1] Compiling Main             ( precedence001.agc.hs, precedence001.agc.o )
Linking precedence001.agc.bin ...
--> Checking precedence001.agc.bin...
./precedence001.agc.bin
../dist/build/happy/happy --strict --template=.. precedence002.y -o precedence002.n.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  precedence002.n.hs -o precedence002.n.bin
[1 of 1] Compiling Main             ( precedence002.n.hs, precedence002.n.o )
Linking precedence002.n.bin ...
--> Checking precedence002.n.bin...
./precedence002.n.bin
Plus' (Divide' (Num' 6) (Num' 7)) (Num' 8)
../dist/build/happy/happy --strict --template=.. -a precedence002.y -o precedence002.a.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  precedence002.a.hs -o precedence002.a.bin
[1 of 1] Compiling Main             ( precedence002.a.hs, precedence002.a.o )
Linking precedence002.a.bin ...
--> Checking precedence002.a.bin...
./precedence002.a.bin
Plus' (Divide' (Num' 6) (Num' 7)) (Num' 8)
../dist/build/happy/happy --strict --template=.. -g precedence002.y -o precedence002.g.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  precedence002.g.hs -o precedence002.g.bin
[1 of 1] Compiling Main             ( precedence002.g.hs, precedence002.g.o )
Linking precedence002.g.bin ...
--> Checking precedence002.g.bin...
./precedence002.g.bin
Plus' (Divide' (Num' 6) (Num' 7)) (Num' 8)
../dist/build/happy/happy --strict --template=.. -gc precedence002.y -o precedence002.gc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  precedence002.gc.hs -o precedence002.gc.bin
[1 of 1] Compiling Main             ( precedence002.gc.hs, precedence002.gc.o )
Linking precedence002.gc.bin ...
--> Checking precedence002.gc.bin...
./precedence002.gc.bin
Plus' (Divide' (Num' 6) (Num' 7)) (Num' 8)
../dist/build/happy/happy --strict --template=.. -ag precedence002.y -o precedence002.ag.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  precedence002.ag.hs -o precedence002.ag.bin
[1 of 1] Compiling Main             ( precedence002.ag.hs, precedence002.ag.o )
Linking precedence002.ag.bin ...
--> Checking precedence002.ag.bin...
./precedence002.ag.bin
Plus' (Divide' (Num' 6) (Num' 7)) (Num' 8)
../dist/build/happy/happy --strict --template=.. -agc precedence002.y -o precedence002.agc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  precedence002.agc.hs -o precedence002.agc.bin
[1 of 1] Compiling Main             ( precedence002.agc.hs, precedence002.agc.o )
Linking precedence002.agc.bin ...
--> Checking precedence002.agc.bin...
./precedence002.agc.bin
Plus' (Divide' (Num' 6) (Num' 7)) (Num' 8)
../dist/build/happy/happy --strict --template=.. bogus-token.y -o bogus-token.n.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  bogus-token.n.hs -o bogus-token.n.bin
[1 of 1] Compiling Main             ( bogus-token.n.hs, bogus-token.n.o )
Linking bogus-token.n.bin ...
--> Checking bogus-token.n.bin...
./bogus-token.n.bin
Test worked
../dist/build/happy/happy --strict --template=.. -a bogus-token.y -o bogus-token.a.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  bogus-token.a.hs -o bogus-token.a.bin
[1 of 1] Compiling Main             ( bogus-token.a.hs, bogus-token.a.o )
Linking bogus-token.a.bin ...
--> Checking bogus-token.a.bin...
./bogus-token.a.bin
Test worked
../dist/build/happy/happy --strict --template=.. -g bogus-token.y -o bogus-token.g.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  bogus-token.g.hs -o bogus-token.g.bin
[1 of 1] Compiling Main             ( bogus-token.g.hs, bogus-token.g.o )
Linking bogus-token.g.bin ...
--> Checking bogus-token.g.bin...
./bogus-token.g.bin
Test worked
../dist/build/happy/happy --strict --template=.. -gc bogus-token.y -o bogus-token.gc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  bogus-token.gc.hs -o bogus-token.gc.bin
[1 of 1] Compiling Main             ( bogus-token.gc.hs, bogus-token.gc.o )
Linking bogus-token.gc.bin ...
--> Checking bogus-token.gc.bin...
./bogus-token.gc.bin
Test worked
../dist/build/happy/happy --strict --template=.. -ag bogus-token.y -o bogus-token.ag.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  bogus-token.ag.hs -o bogus-token.ag.bin
[1 of 1] Compiling Main             ( bogus-token.ag.hs, bogus-token.ag.o )
Linking bogus-token.ag.bin ...
--> Checking bogus-token.ag.bin...
./bogus-token.ag.bin
Test worked
../dist/build/happy/happy --strict --template=.. -agc bogus-token.y -o bogus-token.agc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  bogus-token.agc.hs -o bogus-token.agc.bin
[1 of 1] Compiling Main             ( bogus-token.agc.hs, bogus-token.agc.o )
Linking bogus-token.agc.bin ...
--> Checking bogus-token.agc.bin...
./bogus-token.agc.bin
Test worked
../dist/build/happy/happy --strict --template=.. bug002.y -o bug002.n.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  bug002.n.hs -o bug002.n.bin
[1 of 1] Compiling Main             ( bug002.n.hs, bug002.n.o )
Linking bug002.n.bin ...
--> Checking bug002.n.bin...
./bug002.n.bin
../dist/build/happy/happy --strict --template=.. -a bug002.y -o bug002.a.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  bug002.a.hs -o bug002.a.bin
[1 of 1] Compiling Main             ( bug002.a.hs, bug002.a.o )
Linking bug002.a.bin ...
--> Checking bug002.a.bin...
./bug002.a.bin
../dist/build/happy/happy --strict --template=.. -g bug002.y -o bug002.g.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  bug002.g.hs -o bug002.g.bin
[1 of 1] Compiling Main             ( bug002.g.hs, bug002.g.o )
Linking bug002.g.bin ...
--> Checking bug002.g.bin...
./bug002.g.bin
../dist/build/happy/happy --strict --template=.. -gc bug002.y -o bug002.gc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  bug002.gc.hs -o bug002.gc.bin
[1 of 1] Compiling Main             ( bug002.gc.hs, bug002.gc.o )
Linking bug002.gc.bin ...
--> Checking bug002.gc.bin...
./bug002.gc.bin
../dist/build/happy/happy --strict --template=.. -ag bug002.y -o bug002.ag.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  bug002.ag.hs -o bug002.ag.bin
[1 of 1] Compiling Main             ( bug002.ag.hs, bug002.ag.o )
Linking bug002.ag.bin ...
--> Checking bug002.ag.bin...
./bug002.ag.bin
../dist/build/happy/happy --strict --template=.. -agc bug002.y -o bug002.agc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  bug002.agc.hs -o bug002.agc.bin
[1 of 1] Compiling Main             ( bug002.agc.hs, bug002.agc.o )
Linking bug002.agc.bin ...
--> Checking bug002.agc.bin...
./bug002.agc.bin
../dist/build/happy/happy --strict --template=.. Partial.ly -o Partial.n.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  Partial.n.hs -o Partial.n.bin
[1 of 1] Compiling Main             ( Partial.n.hs, Partial.n.o )
Linking Partial.n.bin ...
--> Checking Partial.n.bin...
./Partial.n.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -a Partial.ly -o Partial.a.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  Partial.a.hs -o Partial.a.bin
[1 of 1] Compiling Main             ( Partial.a.hs, Partial.a.o )
Linking Partial.a.bin ...
--> Checking Partial.a.bin...
./Partial.a.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -g Partial.ly -o Partial.g.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  Partial.g.hs -o Partial.g.bin
[1 of 1] Compiling Main             ( Partial.g.hs, Partial.g.o )
Linking Partial.g.bin ...
--> Checking Partial.g.bin...
./Partial.g.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -gc Partial.ly -o Partial.gc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  Partial.gc.hs -o Partial.gc.bin
[1 of 1] Compiling Main             ( Partial.gc.hs, Partial.gc.o )
Linking Partial.gc.bin ...
--> Checking Partial.gc.bin...
./Partial.gc.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -ag Partial.ly -o Partial.ag.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  Partial.ag.hs -o Partial.ag.bin
[1 of 1] Compiling Main             ( Partial.ag.hs, Partial.ag.o )
Linking Partial.ag.bin ...
--> Checking Partial.ag.bin...
./Partial.ag.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -agc Partial.ly -o Partial.agc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  Partial.agc.hs -o Partial.agc.bin
[1 of 1] Compiling Main             ( Partial.agc.hs, Partial.agc.o )
Linking Partial.agc.bin ...
--> Checking Partial.agc.bin...
./Partial.agc.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. issue91.y -o issue91.n.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue91.n.hs -o issue91.n.bin
[1 of 1] Compiling Main             ( issue91.n.hs, issue91.n.o )
Linking issue91.n.bin ...
--> Checking issue91.n.bin...
./issue91.n.bin
../dist/build/happy/happy --strict --template=.. -a issue91.y -o issue91.a.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue91.a.hs -o issue91.a.bin
[1 of 1] Compiling Main             ( issue91.a.hs, issue91.a.o )
Linking issue91.a.bin ...
--> Checking issue91.a.bin...
./issue91.a.bin
../dist/build/happy/happy --strict --template=.. -g issue91.y -o issue91.g.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue91.g.hs -o issue91.g.bin
[1 of 1] Compiling Main             ( issue91.g.hs, issue91.g.o )
Linking issue91.g.bin ...
--> Checking issue91.g.bin...
./issue91.g.bin
../dist/build/happy/happy --strict --template=.. -gc issue91.y -o issue91.gc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue91.gc.hs -o issue91.gc.bin
[1 of 1] Compiling Main             ( issue91.gc.hs, issue91.gc.o )
Linking issue91.gc.bin ...
--> Checking issue91.gc.bin...
./issue91.gc.bin
../dist/build/happy/happy --strict --template=.. -ag issue91.y -o issue91.ag.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue91.ag.hs -o issue91.ag.bin
[1 of 1] Compiling Main             ( issue91.ag.hs, issue91.ag.o )
Linking issue91.ag.bin ...
--> Checking issue91.ag.bin...
./issue91.ag.bin
../dist/build/happy/happy --strict --template=.. -agc issue91.y -o issue91.agc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue91.agc.hs -o issue91.agc.bin
[1 of 1] Compiling Main             ( issue91.agc.hs, issue91.agc.o )
Linking issue91.agc.bin ...
--> Checking issue91.agc.bin...
./issue91.agc.bin
../dist/build/happy/happy --strict --template=.. issue93.y -o issue93.n.hs
unused rules: 26
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue93.n.hs -o issue93.n.bin
[1 of 1] Compiling Main             ( issue93.n.hs, issue93.n.o )
make: *** [Makefile:92: issue93.n.bin] Killed
../dist/build/happy/happy --strict --template=.. -a issue93.y -o issue93.a.hs
unused rules: 26
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue93.a.hs -o issue93.a.bin
[1 of 1] Compiling Main             ( issue93.a.hs, issue93.a.o )
make: *** [Makefile:92: issue93.a.bin] Killed
../dist/build/happy/happy --strict --template=.. -g issue93.y -o issue93.g.hs
unused rules: 26
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue93.g.hs -o issue93.g.bin
[1 of 1] Compiling Main             ( issue93.g.hs, issue93.g.o )
Linking issue93.g.bin ...
--> Checking issue93.g.bin...
./issue93.g.bin
../dist/build/happy/happy --strict --template=.. -gc issue93.y -o issue93.gc.hs
unused rules: 26
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue93.gc.hs -o issue93.gc.bin
[1 of 1] Compiling Main             ( issue93.gc.hs, issue93.gc.o )
Linking issue93.gc.bin ...
--> Checking issue93.gc.bin...
./issue93.gc.bin
../dist/build/happy/happy --strict --template=.. -ag issue93.y -o issue93.ag.hs
unused rules: 26
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue93.ag.hs -o issue93.ag.bin
[1 of 1] Compiling Main             ( issue93.ag.hs, issue93.ag.o )
Linking issue93.ag.bin ...
--> Checking issue93.ag.bin...
./issue93.ag.bin
../dist/build/happy/happy --strict --template=.. -agc issue93.y -o issue93.agc.hs
unused rules: 26
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue93.agc.hs -o issue93.agc.bin
[1 of 1] Compiling Main             ( issue93.agc.hs, issue93.agc.o )
Linking issue93.agc.bin ...
--> Checking issue93.agc.bin...
./issue93.agc.bin
../dist/build/happy/happy --strict --template=.. issue94.y -o issue94.n.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue94.n.hs -o issue94.n.bin
[1 of 1] Compiling Main             ( issue94.n.hs, issue94.n.o )
Linking issue94.n.bin ...
--> Checking issue94.n.bin...
./issue94.n.bin
../dist/build/happy/happy --strict --template=.. -a issue94.y -o issue94.a.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue94.a.hs -o issue94.a.bin
[1 of 1] Compiling Main             ( issue94.a.hs, issue94.a.o )
Linking issue94.a.bin ...
--> Checking issue94.a.bin...
./issue94.a.bin
../dist/build/happy/happy --strict --template=.. -g issue94.y -o issue94.g.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue94.g.hs -o issue94.g.bin
[1 of 1] Compiling Main             ( issue94.g.hs, issue94.g.o )
Linking issue94.g.bin ...
--> Checking issue94.g.bin...
./issue94.g.bin
../dist/build/happy/happy --strict --template=.. -gc issue94.y -o issue94.gc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue94.gc.hs -o issue94.gc.bin
[1 of 1] Compiling Main             ( issue94.gc.hs, issue94.gc.o )
Linking issue94.gc.bin ...
--> Checking issue94.gc.bin...
./issue94.gc.bin
../dist/build/happy/happy --strict --template=.. -ag issue94.y -o issue94.ag.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue94.ag.hs -o issue94.ag.bin
[1 of 1] Compiling Main             ( issue94.ag.hs, issue94.ag.o )
Linking issue94.ag.bin ...
--> Checking issue94.ag.bin...
./issue94.ag.bin
../dist/build/happy/happy --strict --template=.. -agc issue94.y -o issue94.agc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue94.agc.hs -o issue94.agc.bin
[1 of 1] Compiling Main             ( issue94.agc.hs, issue94.agc.o )
Linking issue94.agc.bin ...
--> Checking issue94.agc.bin...
./issue94.agc.bin
../dist/build/happy/happy --strict --template=.. issue95.y -o issue95.n.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue95.n.hs -o issue95.n.bin
[1 of 1] Compiling Main             ( issue95.n.hs, issue95.n.o )
Linking issue95.n.bin ...
--> Checking issue95.n.bin...
./issue95.n.bin
../dist/build/happy/happy --strict --template=.. -a issue95.y -o issue95.a.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue95.a.hs -o issue95.a.bin
[1 of 1] Compiling Main             ( issue95.a.hs, issue95.a.o )
Linking issue95.a.bin ...
--> Checking issue95.a.bin...
./issue95.a.bin
../dist/build/happy/happy --strict --template=.. -g issue95.y -o issue95.g.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue95.g.hs -o issue95.g.bin
[1 of 1] Compiling Main             ( issue95.g.hs, issue95.g.o )
Linking issue95.g.bin ...
--> Checking issue95.g.bin...
./issue95.g.bin
../dist/build/happy/happy --strict --template=.. -gc issue95.y -o issue95.gc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue95.gc.hs -o issue95.gc.bin
[1 of 1] Compiling Main             ( issue95.gc.hs, issue95.gc.o )
Linking issue95.gc.bin ...
--> Checking issue95.gc.bin...
./issue95.gc.bin
../dist/build/happy/happy --strict --template=.. -ag issue95.y -o issue95.ag.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue95.ag.hs -o issue95.ag.bin
[1 of 1] Compiling Main             ( issue95.ag.hs, issue95.ag.o )
Linking issue95.ag.bin ...
--> Checking issue95.ag.bin...
./issue95.ag.bin
../dist/build/happy/happy --strict --template=.. -agc issue95.y -o issue95.agc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  issue95.agc.hs -o issue95.agc.bin
[1 of 1] Compiling Main             ( issue95.agc.hs, issue95.agc.o )
Linking issue95.agc.bin ...
--> Checking issue95.agc.bin...
./issue95.agc.bin
../dist/build/happy/happy --strict --template=.. AttrGrammar001.y -o AttrGrammar001.n.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  AttrGrammar001.n.hs -o AttrGrammar001.n.bin
[1 of 1] Compiling Main             ( AttrGrammar001.n.hs, AttrGrammar001.n.o )
Linking AttrGrammar001.n.bin ...
--> Checking AttrGrammar001.n.bin...
./AttrGrammar001.n.bin
Test works
../dist/build/happy/happy --strict --template=.. -a AttrGrammar001.y -o AttrGrammar001.a.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  AttrGrammar001.a.hs -o AttrGrammar001.a.bin
[1 of 1] Compiling Main             ( AttrGrammar001.a.hs, AttrGrammar001.a.o )
Linking AttrGrammar001.a.bin ...
--> Checking AttrGrammar001.a.bin...
./AttrGrammar001.a.bin
Test works
../dist/build/happy/happy --strict --template=.. -g AttrGrammar001.y -o AttrGrammar001.g.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  AttrGrammar001.g.hs -o AttrGrammar001.g.bin
[1 of 1] Compiling Main             ( AttrGrammar001.g.hs, AttrGrammar001.g.o )
Linking AttrGrammar001.g.bin ...
--> Checking AttrGrammar001.g.bin...
./AttrGrammar001.g.bin
Test works
../dist/build/happy/happy --strict --template=.. -gc AttrGrammar001.y -o AttrGrammar001.gc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  AttrGrammar001.gc.hs -o AttrGrammar001.gc.bin
[1 of 1] Compiling Main             ( AttrGrammar001.gc.hs, AttrGrammar001.gc.o )
Linking AttrGrammar001.gc.bin ...
--> Checking AttrGrammar001.gc.bin...
./AttrGrammar001.gc.bin
Test works
../dist/build/happy/happy --strict --template=.. -ag AttrGrammar001.y -o AttrGrammar001.ag.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  AttrGrammar001.ag.hs -o AttrGrammar001.ag.bin
[1 of 1] Compiling Main             ( AttrGrammar001.ag.hs, AttrGrammar001.ag.o )
Linking AttrGrammar001.ag.bin ...
--> Checking AttrGrammar001.ag.bin...
./AttrGrammar001.ag.bin
Test works
../dist/build/happy/happy --strict --template=.. -agc AttrGrammar001.y -o AttrGrammar001.agc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  AttrGrammar001.agc.hs -o AttrGrammar001.agc.bin
[1 of 1] Compiling Main             ( AttrGrammar001.agc.hs, AttrGrammar001.agc.o )
Linking AttrGrammar001.agc.bin ...
--> Checking AttrGrammar001.agc.bin...
./AttrGrammar001.agc.bin
Test works
../dist/build/happy/happy --strict --template=.. AttrGrammar002.y -o AttrGrammar002.n.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  AttrGrammar002.n.hs -o AttrGrammar002.n.bin
[1 of 1] Compiling Main             ( AttrGrammar002.n.hs, AttrGrammar002.n.o )
Linking AttrGrammar002.n.bin ...
--> Checking AttrGrammar002.n.bin...
./AttrGrammar002.n.bin
Test worked
../dist/build/happy/happy --strict --template=.. -a AttrGrammar002.y -o AttrGrammar002.a.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  AttrGrammar002.a.hs -o AttrGrammar002.a.bin
[1 of 1] Compiling Main             ( AttrGrammar002.a.hs, AttrGrammar002.a.o )
Linking AttrGrammar002.a.bin ...
--> Checking AttrGrammar002.a.bin...
./AttrGrammar002.a.bin
Test worked
../dist/build/happy/happy --strict --template=.. -g AttrGrammar002.y -o AttrGrammar002.g.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  AttrGrammar002.g.hs -o AttrGrammar002.g.bin
[1 of 1] Compiling Main             ( AttrGrammar002.g.hs, AttrGrammar002.g.o )
Linking AttrGrammar002.g.bin ...
--> Checking AttrGrammar002.g.bin...
./AttrGrammar002.g.bin
Test worked
../dist/build/happy/happy --strict --template=.. -gc AttrGrammar002.y -o AttrGrammar002.gc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  AttrGrammar002.gc.hs -o AttrGrammar002.gc.bin
[1 of 1] Compiling Main             ( AttrGrammar002.gc.hs, AttrGrammar002.gc.o )
Linking AttrGrammar002.gc.bin ...
--> Checking AttrGrammar002.gc.bin...
./AttrGrammar002.gc.bin
Test worked
../dist/build/happy/happy --strict --template=.. -ag AttrGrammar002.y -o AttrGrammar002.ag.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  AttrGrammar002.ag.hs -o AttrGrammar002.ag.bin
[1 of 1] Compiling Main             ( AttrGrammar002.ag.hs, AttrGrammar002.ag.o )
Linking AttrGrammar002.ag.bin ...
--> Checking AttrGrammar002.ag.bin...
./AttrGrammar002.ag.bin
Test worked
../dist/build/happy/happy --strict --template=.. -agc AttrGrammar002.y -o AttrGrammar002.agc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  AttrGrammar002.agc.hs -o AttrGrammar002.agc.bin
[1 of 1] Compiling Main             ( AttrGrammar002.agc.hs, AttrGrammar002.agc.o )
Linking AttrGrammar002.agc.bin ...
--> Checking AttrGrammar002.agc.bin...
./AttrGrammar002.agc.bin
Test worked
../dist/build/happy/happy --strict --template=.. test_rules.y -o test_rules.n.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  test_rules.n.hs -o test_rules.n.bin
[1 of 1] Compiling Main             ( test_rules.n.hs, test_rules.n.o )
Linking test_rules.n.bin ...
--> Checking test_rules.n.bin...
./test_rules.n.bin
Tests passed.
../dist/build/happy/happy --strict --template=.. -a test_rules.y -o test_rules.a.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  test_rules.a.hs -o test_rules.a.bin
[1 of 1] Compiling Main             ( test_rules.a.hs, test_rules.a.o )
Linking test_rules.a.bin ...
--> Checking test_rules.a.bin...
./test_rules.a.bin
Tests passed.
../dist/build/happy/happy --strict --template=.. -g test_rules.y -o test_rules.g.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  test_rules.g.hs -o test_rules.g.bin
[1 of 1] Compiling Main             ( test_rules.g.hs, test_rules.g.o )
Linking test_rules.g.bin ...
--> Checking test_rules.g.bin...
./test_rules.g.bin
Tests passed.
../dist/build/happy/happy --strict --template=.. -gc test_rules.y -o test_rules.gc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  test_rules.gc.hs -o test_rules.gc.bin
[1 of 1] Compiling Main             ( test_rules.gc.hs, test_rules.gc.o )
Linking test_rules.gc.bin ...
--> Checking test_rules.gc.bin...
./test_rules.gc.bin
Tests passed.
../dist/build/happy/happy --strict --template=.. -ag test_rules.y -o test_rules.ag.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  test_rules.ag.hs -o test_rules.ag.bin
[1 of 1] Compiling Main             ( test_rules.ag.hs, test_rules.ag.o )
Linking test_rules.ag.bin ...
--> Checking test_rules.ag.bin...
./test_rules.ag.bin
Tests passed.
../dist/build/happy/happy --strict --template=.. -agc test_rules.y -o test_rules.agc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  test_rules.agc.hs -o test_rules.agc.bin
[1 of 1] Compiling Main             ( test_rules.agc.hs, test_rules.agc.o )
Linking test_rules.agc.bin ...
--> Checking test_rules.agc.bin...
./test_rules.agc.bin
Tests passed.
../dist/build/happy/happy --strict --template=.. monaderror.y -o monaderror.n.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monaderror.n.hs -o monaderror.n.bin
[1 of 1] Compiling Main             ( monaderror.n.hs, monaderror.n.o )
Linking monaderror.n.bin ...
--> Checking monaderror.n.bin...
./monaderror.n.bin
../dist/build/happy/happy --strict --template=.. -a monaderror.y -o monaderror.a.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monaderror.a.hs -o monaderror.a.bin
[1 of 1] Compiling Main             ( monaderror.a.hs, monaderror.a.o )
Linking monaderror.a.bin ...
--> Checking monaderror.a.bin...
./monaderror.a.bin
../dist/build/happy/happy --strict --template=.. -g monaderror.y -o monaderror.g.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monaderror.g.hs -o monaderror.g.bin
[1 of 1] Compiling Main             ( monaderror.g.hs, monaderror.g.o )
Linking monaderror.g.bin ...
--> Checking monaderror.g.bin...
./monaderror.g.bin
../dist/build/happy/happy --strict --template=.. -gc monaderror.y -o monaderror.gc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monaderror.gc.hs -o monaderror.gc.bin
[1 of 1] Compiling Main             ( monaderror.gc.hs, monaderror.gc.o )
Linking monaderror.gc.bin ...
--> Checking monaderror.gc.bin...
./monaderror.gc.bin
../dist/build/happy/happy --strict --template=.. -ag monaderror.y -o monaderror.ag.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monaderror.ag.hs -o monaderror.ag.bin
[1 of 1] Compiling Main             ( monaderror.ag.hs, monaderror.ag.o )
Linking monaderror.ag.bin ...
--> Checking monaderror.ag.bin...
./monaderror.ag.bin
../dist/build/happy/happy --strict --template=.. -agc monaderror.y -o monaderror.agc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monaderror.agc.hs -o monaderror.agc.bin
[1 of 1] Compiling Main             ( monaderror.agc.hs, monaderror.agc.o )
Linking monaderror.agc.bin ...
--> Checking monaderror.agc.bin...
./monaderror.agc.bin
../dist/build/happy/happy --strict --template=.. monaderror-explist.y -o monaderror-explist.n.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monaderror-explist.n.hs -o monaderror-explist.n.bin
[1 of 1] Compiling Main             ( monaderror-explist.n.hs, monaderror-explist.n.o )
Linking monaderror-explist.n.bin ...
--> Checking monaderror-explist.n.bin...
./monaderror-explist.n.bin
testing Z Z
testing T S
../dist/build/happy/happy --strict --template=.. -a monaderror-explist.y -o monaderror-explist.a.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monaderror-explist.a.hs -o monaderror-explist.a.bin
[1 of 1] Compiling Main             ( monaderror-explist.a.hs, monaderror-explist.a.o )
Linking monaderror-explist.a.bin ...
--> Checking monaderror-explist.a.bin...
./monaderror-explist.a.bin
testing Z Z
testing T S
../dist/build/happy/happy --strict --template=.. -g monaderror-explist.y -o monaderror-explist.g.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monaderror-explist.g.hs -o monaderror-explist.g.bin
[1 of 1] Compiling Main             ( monaderror-explist.g.hs, monaderror-explist.g.o )
Linking monaderror-explist.g.bin ...
--> Checking monaderror-explist.g.bin...
./monaderror-explist.g.bin
testing Z Z
testing T S
../dist/build/happy/happy --strict --template=.. -gc monaderror-explist.y -o monaderror-explist.gc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monaderror-explist.gc.hs -o monaderror-explist.gc.bin
[1 of 1] Compiling Main             ( monaderror-explist.gc.hs, monaderror-explist.gc.o )
Linking monaderror-explist.gc.bin ...
--> Checking monaderror-explist.gc.bin...
./monaderror-explist.gc.bin
testing Z Z
testing T S
../dist/build/happy/happy --strict --template=.. -ag monaderror-explist.y -o monaderror-explist.ag.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monaderror-explist.ag.hs -o monaderror-explist.ag.bin
[1 of 1] Compiling Main             ( monaderror-explist.ag.hs, monaderror-explist.ag.o )
Linking monaderror-explist.ag.bin ...
--> Checking monaderror-explist.ag.bin...
./monaderror-explist.ag.bin
testing Z Z
testing T S
../dist/build/happy/happy --strict --template=.. -agc monaderror-explist.y -o monaderror-explist.agc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  monaderror-explist.agc.hs -o monaderror-explist.agc.bin
[1 of 1] Compiling Main             ( monaderror-explist.agc.hs, monaderror-explist.agc.o )
Linking monaderror-explist.agc.bin ...
--> Checking monaderror-explist.agc.bin...
./monaderror-explist.agc.bin
testing Z Z
testing T S
../dist/build/happy/happy --strict --template=.. typeclass_monad001.y -o typeclass_monad001.n.hs
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  typeclass_monad001.n.hs -o typeclass_monad001.n.bin
[1 of 1] Compiling Main             ( typeclass_monad001.n.hs, typeclass_monad001.n.o )
Linking typeclass_monad001.n.bin ...
--> Checking typeclass_monad001.n.bin...
./typeclass_monad001.n.bin
2.5../dist/build/happy/happy --strict --template=.. -a typeclass_monad001.y -o typeclass_monad001.a.hs
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  typeclass_monad001.a.hs -o typeclass_monad001.a.bin
[1 of 1] Compiling Main             ( typeclass_monad001.a.hs, typeclass_monad001.a.o )
Linking typeclass_monad001.a.bin ...
--> Checking typeclass_monad001.a.bin...
./typeclass_monad001.a.bin
2.5../dist/build/happy/happy --strict --template=.. -g typeclass_monad001.y -o typeclass_monad001.g.hs
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  typeclass_monad001.g.hs -o typeclass_monad001.g.bin
[1 of 1] Compiling Main             ( typeclass_monad001.g.hs, typeclass_monad001.g.o )
Linking typeclass_monad001.g.bin ...
--> Checking typeclass_monad001.g.bin...
./typeclass_monad001.g.bin
2.5../dist/build/happy/happy --strict --template=.. -gc typeclass_monad001.y -o typeclass_monad001.gc.hs
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  typeclass_monad001.gc.hs -o typeclass_monad001.gc.bin
[1 of 1] Compiling Main             ( typeclass_monad001.gc.hs, typeclass_monad001.gc.o )
Linking typeclass_monad001.gc.bin ...
--> Checking typeclass_monad001.gc.bin...
./typeclass_monad001.gc.bin
2.5../dist/build/happy/happy --strict --template=.. -ag typeclass_monad001.y -o typeclass_monad001.ag.hs
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  typeclass_monad001.ag.hs -o typeclass_monad001.ag.bin
[1 of 1] Compiling Main             ( typeclass_monad001.ag.hs, typeclass_monad001.ag.o )
Linking typeclass_monad001.ag.bin ...
--> Checking typeclass_monad001.ag.bin...
./typeclass_monad001.ag.bin
2.5../dist/build/happy/happy --strict --template=.. -agc typeclass_monad001.y -o typeclass_monad001.agc.hs
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  typeclass_monad001.agc.hs -o typeclass_monad001.agc.bin
[1 of 1] Compiling Main             ( typeclass_monad001.agc.hs, typeclass_monad001.agc.o )
Linking typeclass_monad001.agc.bin ...
--> Checking typeclass_monad001.agc.bin...
./typeclass_monad001.agc.bin
2.5../dist/build/happy/happy --strict --template=.. typeclass_monad002.ly -o typeclass_monad002.n.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  typeclass_monad002.n.hs -o typeclass_monad002.n.bin
[1 of 1] Compiling Main             ( typeclass_monad002.n.hs, typeclass_monad002.n.o )
Linking typeclass_monad002.n.bin ...
--> Checking typeclass_monad002.n.bin...
./typeclass_monad002.n.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -a typeclass_monad002.ly -o typeclass_monad002.a.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  typeclass_monad002.a.hs -o typeclass_monad002.a.bin
[1 of 1] Compiling Main             ( typeclass_monad002.a.hs, typeclass_monad002.a.o )
Linking typeclass_monad002.a.bin ...
--> Checking typeclass_monad002.a.bin...
./typeclass_monad002.a.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -g typeclass_monad002.ly -o typeclass_monad002.g.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  typeclass_monad002.g.hs -o typeclass_monad002.g.bin
[1 of 1] Compiling Main             ( typeclass_monad002.g.hs, typeclass_monad002.g.o )
Linking typeclass_monad002.g.bin ...
--> Checking typeclass_monad002.g.bin...
./typeclass_monad002.g.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -gc typeclass_monad002.ly -o typeclass_monad002.gc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  typeclass_monad002.gc.hs -o typeclass_monad002.gc.bin
[1 of 1] Compiling Main             ( typeclass_monad002.gc.hs, typeclass_monad002.gc.o )
Linking typeclass_monad002.gc.bin ...
--> Checking typeclass_monad002.gc.bin...
./typeclass_monad002.gc.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -ag typeclass_monad002.ly -o typeclass_monad002.ag.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  typeclass_monad002.ag.hs -o typeclass_monad002.ag.bin
[1 of 1] Compiling Main             ( typeclass_monad002.ag.hs, typeclass_monad002.ag.o )
Linking typeclass_monad002.ag.bin ...
--> Checking typeclass_monad002.ag.bin...
./typeclass_monad002.ag.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -agc typeclass_monad002.ly -o typeclass_monad002.agc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  typeclass_monad002.agc.hs -o typeclass_monad002.agc.bin
[1 of 1] Compiling Main             ( typeclass_monad002.agc.hs, typeclass_monad002.agc.o )
Linking typeclass_monad002.agc.bin ...
--> Checking typeclass_monad002.agc.bin...
./typeclass_monad002.agc.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. typeclass_monad_lexer.y -o typeclass_monad_lexer.n.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  typeclass_monad_lexer.n.hs -o typeclass_monad_lexer.n.bin
[1 of 1] Compiling Main             ( typeclass_monad_lexer.n.hs, typeclass_monad_lexer.n.o )
Linking typeclass_monad_lexer.n.bin ...
--> Checking typeclass_monad_lexer.n.bin...
./typeclass_monad_lexer.n.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -a typeclass_monad_lexer.y -o typeclass_monad_lexer.a.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  typeclass_monad_lexer.a.hs -o typeclass_monad_lexer.a.bin
[1 of 1] Compiling Main             ( typeclass_monad_lexer.a.hs, typeclass_monad_lexer.a.o )
Linking typeclass_monad_lexer.a.bin ...
--> Checking typeclass_monad_lexer.a.bin...
./typeclass_monad_lexer.a.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -g typeclass_monad_lexer.y -o typeclass_monad_lexer.g.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  typeclass_monad_lexer.g.hs -o typeclass_monad_lexer.g.bin
[1 of 1] Compiling Main             ( typeclass_monad_lexer.g.hs, typeclass_monad_lexer.g.o )
Linking typeclass_monad_lexer.g.bin ...
--> Checking typeclass_monad_lexer.g.bin...
./typeclass_monad_lexer.g.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -gc typeclass_monad_lexer.y -o typeclass_monad_lexer.gc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  typeclass_monad_lexer.gc.hs -o typeclass_monad_lexer.gc.bin
[1 of 1] Compiling Main             ( typeclass_monad_lexer.gc.hs, typeclass_monad_lexer.gc.o )
Linking typeclass_monad_lexer.gc.bin ...
--> Checking typeclass_monad_lexer.gc.bin...
./typeclass_monad_lexer.gc.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -ag typeclass_monad_lexer.y -o typeclass_monad_lexer.ag.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  typeclass_monad_lexer.ag.hs -o typeclass_monad_lexer.ag.bin
[1 of 1] Compiling Main             ( typeclass_monad_lexer.ag.hs, typeclass_monad_lexer.ag.o )
Linking typeclass_monad_lexer.ag.bin ...
--> Checking typeclass_monad_lexer.ag.bin...
./typeclass_monad_lexer.ag.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. -agc typeclass_monad_lexer.y -o typeclass_monad_lexer.agc.hs
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  typeclass_monad_lexer.agc.hs -o typeclass_monad_lexer.agc.bin
[1 of 1] Compiling Main             ( typeclass_monad_lexer.agc.hs, typeclass_monad_lexer.agc.o )
Linking typeclass_monad_lexer.agc.bin ...
--> Checking typeclass_monad_lexer.agc.bin...
./typeclass_monad_lexer.agc.bin
"Test works\n"
../dist/build/happy/happy --strict --template=.. rank2.y -o rank2.n.hs
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  rank2.n.hs -o rank2.n.bin
[1 of 1] Compiling Main             ( rank2.n.hs, rank2.n.o )
Linking rank2.n.bin ...
--> Checking rank2.n.bin...
./rank2.n.bin
(5,5.0,True)
../dist/build/happy/happy --strict --template=.. -a rank2.y -o rank2.a.hs
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  rank2.a.hs -o rank2.a.bin
[1 of 1] Compiling Main             ( rank2.a.hs, rank2.a.o )
Linking rank2.a.bin ...
--> Checking rank2.a.bin...
./rank2.a.bin
(5,5.0,True)
../dist/build/happy/happy --strict --template=.. -g rank2.y -o rank2.g.hs
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  rank2.g.hs -o rank2.g.bin
[1 of 1] Compiling Main             ( rank2.g.hs, rank2.g.o )
Linking rank2.g.bin ...
--> Checking rank2.g.bin...
./rank2.g.bin
(5,5.0,True)
../dist/build/happy/happy --strict --template=.. -gc rank2.y -o rank2.gc.hs
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  rank2.gc.hs -o rank2.gc.bin
[1 of 1] Compiling Main             ( rank2.gc.hs, rank2.gc.o )
Linking rank2.gc.bin ...
--> Checking rank2.gc.bin...
./rank2.gc.bin
(5,5.0,True)
../dist/build/happy/happy --strict --template=.. -ag rank2.y -o rank2.ag.hs
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  rank2.ag.hs -o rank2.ag.bin
[1 of 1] Compiling Main             ( rank2.ag.hs, rank2.ag.o )
Linking rank2.ag.bin ...
--> Checking rank2.ag.bin...
./rank2.ag.bin
(5,5.0,True)
../dist/build/happy/happy --strict --template=.. -agc rank2.y -o rank2.agc.hs
unused terminals: 1
ghc -hide-all-packages -package base -package array -package mtl -Wall -Werror -fforce-recomp  rank2.agc.hs -o rank2.agc.bin
[1 of 1] Compiling Main             ( rank2.agc.hs, rank2.agc.o )
Linking rank2.agc.bin ...
--> Checking rank2.agc.bin...
./rank2.agc.bin
(5,5.0,True)
make: Target 'all' not remade because of errors.
rm monaderror.a.hs issue91.agc.hs bogus-token.gc.hs Partial.a.hs monad002.gc.hs monad002.ag.hs issue91.a.hs monaderror-explist.a.hs typeclass_monad002.a.hs AttrGrammar002.a.hs issue95.gc.hs Partial.agc.hs typeclass_monad002.gc.hs Test.gc.hs AttrGrammar002.gc.hs typeclass_monad_lexer.agc.hs issue91.ag.hs monaderror.gc.hs precedence001.agc.hs TestPrecedence.a.hs issue94.agc.hs TestMulti.gc.hs typeclass_monad_lexer.a.hs precedence001.a.hs monaderror-explist.ag.hs bug001.gc.hs AttrGrammar001.agc.hs monad002.a.hs Partial.ag.hs issue94.gc.hs issue93.agc.hs TestPrecedence.ag.hs precedence002.a.hs AttrGrammar001.a.hs test_rules.ag.hs typeclass_monad001.a.hs monad001.agc.hs typeclass_monad_lexer.ag.hs precedence001.ag.hs rank2.gc.hs issue93.a.hs bug002.ag.hs bug001.a.hs TestMulti.agc.hs monad001.a.hs TestMulti.a.hs bogus-token.agc.hs Partial.gc.hs monad002.agc.hs AttrGrammar001.ag.hs precedence002.ag.hs bug001.agc.hs issue93.ag.hs issue95.agc.hs bogus-token.a.hs monaderror.agc.hs rank2.ag.hs monad001.ag.hs Test.agc.hs issue91.gc.hs typeclass_monad001.agc.hs bogus-token.ag.hs TestPrecedence.agc.hs Test.a.hs test_rules.agc.hs typeclass_monad_lexer.gc.hs precedence001.gc.hs AttrGrammar002.ag.hs issue95.a.hs monaderror.ag.hs typeclass_monad002.agc.hs bug002.agc.hs TestPrecedence.gc.hs bug001.ag.hs precedence002.agc.hs bug002.a.hs rank2.agc.hs test_rules.a.hs test_rules.gc.hs AttrGrammar002.agc.hs monaderror-explist.gc.hs Test.ag.hs precedence002.gc.hs AttrGrammar001.gc.hs bug002.gc.hs issue94.a.hs typeclass_monad001.ag.hs issue95.ag.hs issue93.gc.hs typeclass_monad001.gc.hs issue94.ag.hs TestMulti.ag.hs monad001.gc.hs monaderror-explist.agc.hs rank2.a.hs typeclass_monad002.ag.hs
make: Leaving directory '/build/happy-1.19.11/tests'
Test suite tests: FAIL
Test suite logged to: dist/test/happy-1.19.11-tests.log
0 of 1 test suites (0 of 1 test cases) passed.
builder for '/nix/store/99b48la1yxvv9cdxm9i7r2nl4mjcza05-happy-1.19.11.drv' failed with exit code 1
error: build of '/nix/store/0nln57lvrf08szi2wfl4ihjiykhpxkk7-cabal-install-3.0.0.0.drv', '/nix/store/99b48la1yxvv9cdxm9i7r2nl4mjcza05-happy-1.19.11.drv', '/nix/store/dw5xn9yp4a8nzrdxiihfj9xak1k5zzf8-alex-3.2.4.drv', '/nix/store/phpldalrz8s3gql39f70k3gyicb4y6s1-texlive-combined-2018.drv' failed

Missmatch in Cabal Hash

Running:

nix-shell https://github.com/alpmestan/ghc.nix/archive/master.tar.gz --attr devShells.x86_64-darwin.default

I get the following error:

trace: checking if /Users/lapplis/Code/ghc/hadrian/hadrian.cabal is present:  yes
error:
       … while calling the 'derivationStrict' builtin

         at //builtin/derivation.nix:9:12: (source not available)

       … while evaluating derivation 'ghc-shell-for-hadrian-0.1.0.0-0'
         whose name attribute is located at /nix/store/hdbi4byxghl15z8c5sf4kp198ywjphkk-source/pkgs/stdenv/generic/make-derivation.nix:302:7

       … while evaluating attribute 'nativeBuildInputs' of derivation 'ghc-shell-for-hadrian-0.1.0.0-0'

         at /nix/store/hdbi4byxghl15z8c5sf4kp198ywjphkk-source/pkgs/stdenv/generic/make-derivation.nix:342:7:

          341|       depsBuildBuild              = lib.elemAt (lib.elemAt dependencies 0) 0;
          342|       nativeBuildInputs           = lib.elemAt (lib.elemAt dependencies 0) 1;
             |       ^
          343|       depsBuildTarget             = lib.elemAt (lib.elemAt dependencies 0) 2;

       (stack trace truncated; use '--show-trace' to show the full trace)

       error: hash mismatch in file downloaded from 'https://api.github.com/repos/commercialhaskell/all-cabal-hashes/tarball/82e253f8bf75aec8127af50889725d2e611c96c4':
         specified: sha256:156g114qhm93a1vz3nw8v360730ibpkps9bvkyl6bk00c3s8rhgg
         got:       sha256:1235wsvxsbsrs7iwbliyqayk7dy2kdkjx4f7954x1m9gz3152qvf

System:

Macbook Pro
2 GHz Quad-Core Intel Core i5
MacOs Ventura 13.3 (22E252)
Nix Version 2.15.0

macOS Hadrian build (configure) won't find nm

Invoking like this:

hadrian/build.sh -j4 --flavour=quickest --build-root=_mybuild -c

The log in #22 shows a similar error:

Linking /Users/ggreif/ghc/hadrian/dist-newstyle/build/x86_64-osx/ghc-8.6.5/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian ...
| Running boot...
| Run Configure ".": hadrian/cfg/system.config.in (and 3 more) => hadrian/cfg/system.config (and 3 more)
xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools.
error: nm: invalid argument --
Usage: nm [-agnopruUmxjlfAP[s segname sectname] [-] [-t format] [[-arch <arch_flag>] ...] [file ...]

Here the "Install Xcode" dialog pops up.

In my setup all tools reside in the /nix/store, and I have no developer tools installed.

Interestingly, the build continues. Somewhat into the process the same dialog pops up because of objdump.

`./configure $CONFIGURE_ARGS` leads to linker errors on Ubuntu 20.04

Whenever I try ./configure $CONFIGURE_ARGS instead of ./configure as recommended by the README, I get

/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpn_lshift'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpn_rshift'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpz_get_d'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpz_get_d_2exp'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpn_gcd_1'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpz_init'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpz_gcd'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpz_clear'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpz_gcdext'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpn_tdiv_qr'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpz_sizeinbase'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpz_export'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpz_probab_prime_p'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpz_nextprime'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpz_powm'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpz_powm_sec'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpz_invert'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpn_and_n'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpn_andn_n'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpn_ior_n'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpn_xor_n'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpn_mul'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpn_cmp'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpn_sub'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpn_sub_1'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpn_add_1'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpn_mod_1'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpn_add'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpn_divrem_1'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSghc-bignum-1.3-ghc9.3.20211124.so: error: undefined reference to '__gmpn_mul_1'
/home/sgraf-local/code/hs/ghc/misc2/_validate/stage1/lib/../lib/x86_64-linux-ghc-9.3.20211124/libHSbase-4.16.0.0-ghc9.3.20211124.so: error: undefined reference to '__gmpn_popcount'
collect2: error: ld returned 1 exit status
`cc' failed in phase `Linker'. (Exit code: 1)
Command failed

in a hadrian build. These errors happen when using the stage1 compiler to compile (and link) hpc.

Conversely, if I don't pass $CONFIGURE_ARGS, then the build works as expected, but I can't link any program compiled by the stage2 compiler if I leave the nix-shell.

I'm using ghc.nix through lorri+zsh on Ubuntu 20.04.

ghc.nix repository needs documentation for working with tools used for isolated nix environments.

Hello there, I use (direnv+nix-direnv+emacs-direnv), but I'm having a hard time finding instructions on how to set this up with ghc.nix repository instead of just using the nix-shell command, it would be any of you could add documentation for using ghc.nix with tools like (direnv+nix-direnv+emacs-direnv) for working in isolated environments, I feel in the dark here. Well so far I only got 1 bash error that I need to fix, so that's a good sign.

Thanks in advance for the help!

Add GHC version tags

There doesn't seem to be an easy way to tell which commit should be used for which GHC version. It would be helpful to add some tags for that purpose.

Hadrian instructions don't work

I'm trying to follow the instructions in the README. I cloned this repo to ~/repos/ghc and successfully ran ./boot && ./configure, but this is what I get when I try to build with Hadrian:

[nix-shell:~/repos/ghc]$ hadrian/build.sh -j4 --flavour=quickest --build-root=_mybuild
Warning: The package list for 'hackage.haskell.org' does not exist. Run 'cabal                                                          
update' to download it.
Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] trying: hadrian-0.1.0.0 (user goal) 
[__1] unknown package: hadrian:happy:exe.happy (dependency of hadrian)
[__1] fail (backjumping, conflict set: hadrian, hadrian:happy:exe.happy)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: hadrian, hadrian:happy:exe.happy

Is there something I'm missing?

Upgrade default GHC version

Hi,

I just tested today the following:

$ git clone --recursive [email protected]:ghc/ghc.git
$ cd ghc/
$ git clone https://github.com/alpmestan/ghc.nix
$ nix-shell ghc.nix
$ ./boot
$ ./configure 

The last step (./configure) fails as such:

checking for gfind... no
checking for find... /nix/store/xhdbfv3kivss6y04xk9i4a5pknaww1az-findutils-4.7.0/bin/find
checking for sort... /nix/store/3kqc2wmvf1jkqb2jmcm7rvd9lf4345ra-coreutils-8.31/bin/sort
checking for GHC version date... inferred 8.11.0.20200331
checking for GHC Git commit id... inferred 4b9c586472bf99425f7bbcf346472d7c54f05028
checking for ghc... /nix/store/hcrblsvvbmamb2lwsv68n87dvncr6pq3-ghc-8.6.5/bin/ghc
checking version of ghc... 8.6.5
configure: error: GHC version 8.8 or later is required to compile GHC.

I think the default version of GHC should be upgraded to GHC 8.8 or more, what do you think?

Cheers!

Note: This seems to require an update of nixpkgs.src-json which is done using nix/update-pin.sh nixpkgs HEAD or nix/update-pin.sh nixpkgs be0d1dc5a6c42456dbddde9b347d49cfaad034ef if I'm not mistaken?

bash: hadrian/build.sh: No such file or directory

hello there, i decided to build ghc with nix again(after about 2 months), but for some reason now that error is being thrown when i run: hadrian/build.sh -j4 --flavour=perf --build-root=_mybuild -c , this error never happened before so i'm not sure what's going on? also when is ghcide expected to be up and running again? i really need that tool. (thank you for taking the time to read this issue)
also, whenever i go into nix-shell it shows this weird output:

[zeta@nixos:/ghc]$ nix-shell ghc.nix/
Recommended ./configure arguments (found in $CONFIGURE_ARGS:
or use the configure_ghc command):

--with-gmp-includes=/nix/store/a7qdsbw0fnk4rdbi50m65i26202wwr71-gmp-6.1.2-dev/include
--with-gmp-libraries=/nix/store/sisy13ic6giv9yn0fyl2n9cpm84xscvx-gmp-6.1.2/lib
--with-libnuma-includes=/nix/store/kl730qs2qmqh2q1ipq06djm7if4l4408-numactl-2.0.13/include
--with-libnuma-libraries=/nix/store/kl730qs2qmqh2q1ipq06djm7if4l4408-numactl-2.0.13/lib
--with-libdw-includes=/nix/store/ac28lb0a4hvs5imvarz3zhq7j68j8f4n-elfutils-0.176/include
--with-libdw-libraries=/nix/store/ac28lb0a4hvs5imvarz3zhq7j68j8f4n-elfutils-0.176/lib
--enable-dwarf-unwind

More stable nixpkgs sources

Currently, ghc.nix seems to build "the whole world". (Even tar is compiled!) That's too time consuming and thus not good.

We should check, when we can remove the dependency on nixpkgs-unstable, again. (I guess that's the root cause.)

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.