Skip to content

Hadrian does not work with a cabal v2-installed "Happy"

I installed Happy with:

cabal new-install --symlink-bindir=~/Software/ghc-8.6.3/bin  happy

where ~/Software/ghc-8.6.3/bin is in my PATH.

When I run hadrian/build.sh -c --flavour=devel2 I get the following error:

happy: /home/roland/.cabal/share/x86_64-linux-ghc-8.6.3/happy-1.19.9/HappyTemplate-arrays-coerce: openFile: does not exist (No such file or directory)

It's correct, I don't have a file .cabal/share/x86_64-linux-ghc-8.6.3/happy-1.19.9/HappyTemplate-arrays-coerce.

However I have a file .cabal/store/ghc-8.6.3/happy-1.19.9-84db80555b9a8f54be2ca475bccbc751401ffbff30194c8c26d08a002a665431/share/HappyTemplate-arrays-coerce.

If I do an old-fashioned cabal v1-install happy, it creates the missing file .cabal/share/x86_64-linux-ghc-8.6.3/happy-1.19.9/HappyTemplate-arrays-coerce and Hadrian is now able to build!

Hadrian should not depend on old-style cabal installs!

Program versions:

roland@goms:~/Projekte/ghc$ cat /etc/issue
Debian GNU/Linux 9 \n \l

roland@goms:~/Projekte/ghc$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 8.6.3

roland@goms:~/Projekte/ghc$ hadrian/build.sh --version
Up to date
Shake build system, version 0.17.4

roland@goms:~/Projekte/ghc$ happy --version
Happy Version 1.19.9 Copyright (c) 1993-1996 Andy Gill, Simon Marlow (c) 1997-2005 Simon Marlow

Happy is a Yacc for Haskell, and comes with ABSOLUTELY NO WARRANTY.
This program is free software; you can redistribute it and/or modify
it under the terms given in the file 'LICENSE' distributed with
the Happy sources.

roland@goms:~/Projekte/ghc$ cabal --version
cabal-install version 2.4.1.0
compiled using version 2.4.1.0 of the Cabal library
Edited by Roland Senn
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information