Re: Trouble building GHC

2023-05-31 Thread Lyle Kopnicky
>
> Thanks, Georgi and Sebastian.
>

The instructions at https://github.com/alpmestan/ghc.nix and
https://ghc.dev/ seem a bit outdated, then. I’m not sure who maintains
those.

In the README.md  for ghc.nix, it says to run:

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

That failed didn’t work for me and I was told I needed to use nix-develop,
which worked.

Then later, it says to run:

$ ./boot && ./configure $CONFIGURE_ARGS # In zsh, use ${=CONFIGURE_ARGS}

…which as you pointed out should be updated to configure_ghc.

Anyway, that got me further, but I still get several fatal errors of this
sort:

compiler/GHC/Tc/Zonk/Type.hs:1277:13: error:
• Illegal equational constraint Anno
  (StmtLR GhcTc GhcTc (LocatedA
(body GhcTc)))
~ SrcSpanAnnA
  (Use GADTs or TypeFamilies to permit this)
• In the type signature:
zonkStmt :: Anno (StmtLR GhcTc GhcTc (LocatedA (body GhcTc)))
~ SrcSpanAnnA =>
(LocatedA (body GhcTc) -> ZonkTcM (LocatedA (body GhcTc)))
-> Stmt GhcTc (LocatedA (body GhcTc))
   -> ZonkBndrTcM (Stmt GhcTc (LocatedA (body GhcTc)))
 |
1277 | zonkStmt :: Anno (StmtLR GhcTc GhcTc (LocatedA (body GhcTc))) ~
SrcSpanAnnA
 |
^^^...
Command failed
Build failed.


Georgi, I might just ping you on Slack about it. (We’re coworkers.)

Thanks,
Lyle
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: Trouble building GHC

2023-05-31 Thread Lyle Kopnicky
Hi folks,

I managed to get GHC to build with the help of user chreekat on #ghc, who
pointed out that the issue I was having with building .hi files had been
filed  by Richard
Eisenberg, and a workaround had been written by Ben Gamari. I cherry-picked
that workaround, and it fixed the problem! After that, it only took 13 1/2
minutes to build GHC.

I still haven’t gotten it working via nix, but that’s OK - I only needed to
get it working one way or the other.

Thanks,
Lyle

>
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: Trouble building GHC

2023-05-31 Thread Sebastian Graf
> I've had no issues with the configure step by running the configure_ghc
shell function that the flake provides.

For reference, this is the relevant ghc.nix issue:
https://github.com/alpmestan/ghc.nix/issues/111
It seems that the `configure_ghc` used to be a shell function in
https://github.com/alpmestan/ghc.nix/blob/b200a76a4f28d6434e4678827a0373002e641b12/default.nix#L156
.
Nowadays, it became a standalone bash script (great work, Magnus!), which
explains why it works for you:
https://github.com/alpmestan/ghc.nix/blob/f34c21877257fc37bbcf8962dc006024bfd0f946/ghc.nix#L138

You can't do `./configure $CONFIGURE_ARGS` in zsh directly, though.

Am Mi., 31. Mai 2023 um 09:49 Uhr schrieb Georgi Lyubenov <
godzbaneb...@gmail.com>:

> Just chiming in to mention that I'm on zsh, and I've had no issues with
> the configure step by running the configure_ghc shell function that the
> flake provides.
> On 5/31/23 10:13, Sebastian Graf wrote:
>
> Hi Lyle,
>
> I'm sorry that you have so much trouble in getting your first build done.
> The Classes.hi issue sounds like something I had experienced in the past,
> but I'm not having it at the moment.
> Are you also using symlinks by any chance? Then it is very likely that you
> have been bitten by https://gitlab.haskell.org/ghc/ghc/-/issues/22451,
> the workaround to which would be to do something like `cd "$(readlink -f
> .)"` before you start your build.
>
> Regarding your second issue using ghc.nix, a quick google turned up
> https://gitlab.haskell.org/ghc/ghc/-/issues/20429#note_379762.
> Is it possible that you didn't start from a clean build?
> E.g., at the least you should `rm -rf _build` (note that `hadrian/cabal
> clean` sadly is insufficient IIRC for reasons I don't recall).
> I often simply do `git clean -fxd` to be extra sure.
> After that, you'll have to boot, configure (including passing
> $CONFIGURE_ARGS) and build again.
> By the way, are you using ZSH? I'm using it and I have to pass the
> CONFIGURE_ARGS in a slightly different way
> : `./configure
> ${=CONFIGURE_ARGS}`.
>
> I also updated
> https://gitlab.haskell.org/ghc/ghc/-/wikis/building/preparation/linux#nixnixos
> to account for new-style flakified builds+direnv, if that's a workflow that
> you are familiar with.
>
> Hope that helps,
> Sebastian
>
> Am Mi., 31. Mai 2023 um 05:14 Uhr schrieb Lyle Kopnicky :
>
>> Hi folks, I’m new here. I’ll be attending the GHC Contributors’ Workshop
>> next week, and in preparation, I’m trying to build GHC, both the native
>> code backend and the JS backend. So far, I’ve only tried to build it with
>> the native code backend, but I haven’t been able to get it to work. I’ve
>> gotten help from some friendly folks on the #ghc channel on Matrix, and
>> made some progress, but I’m still stuck.
>>
>> Is there anyone here who could be a point person for helping me get it to
>> build? BTW I’m located on the west coast of the US (until next week when
>> I’ll be in Switzerland), so time lag may be a factor.
>>
>> I’m using a Mac with aarch64 and macOS 13.3. Here are some of the things
>> I’ve tried, and issues I’ve run into:
>>
>>
>>- Started with the advice from this wiki:
>>https://gitlab.haskell.org/ghc/ghc/-/wikis/building
>>- Checked out the ghc source, on HEAD.
>>- The rest of the steps were at
>>https://gitlab.haskell.org/ghc/ghc/-/wikis/building/preparation/mac-osx
>>- Already had Apple’s command line tools, but when I tried to do
>>operations using them, I got an error saying I needed the full Xcode, so I
>>installed that.
>>- brew install autoconf automake python sphinx-doc
>>   - Worked fine, also added sphinx-build to the path
>>- Initially tried using ghc 9.2.7 to build - later tried switching to
>>9.4.4 and eventually 9.4.5
>>- cabal update; cabal install alex happy haddock
>>- This is where I ran into trouble - couldn’t build haddock. Cabal
>>   said it couldn’t resolve the dependencies.
>>   - I tried switching to ghc 9.4.4 and cabal 3.10.1.0 - same problem
>>   - User romes (Rodrigo) on #ghc helped with this - was able to
>>   reproduce it and filed a ticket:
>>   https://github.com/haskell/haddock/issues/1596
>>   - However he pointed out that haddock was already supplied through
>>   ghcup so I don’t need to build it.
>>- Already had MacTex installed and I installed the DejaVu font family.
>>- ./boot && ./configure
>>   - Worked fine, although ./boot gave me lots of autoconf warnings
>>   like:
>>   configure.ac:9: warning: The macro `AC_HELP_STRING' is obsolete.
>>   configure.ac:9: You should run autoupdate.
>>   - Apparently autoconf has renamed these macros to pluralize them,
>>   and also encloses the arguments in square brackets.
>>- hadrian/build
>>   - Ran into another problem: The build failed with:
>>   Error, file does not exist and no rule available:
>>
>>   
>> 

Re: Trouble building GHC

2023-05-31 Thread Matthew Pickering
Hi Lyle,

It seems that you set-up a proper native toolchain (without nix) and
that you might be running into this issue:
https://gitlab.haskell.org/ghc/ghc/-/issues/22451

Do you have any symlinks anywhere around the build folder?

Cheers,

Matt

On Wed, May 31, 2023 at 4:14 AM Lyle Kopnicky  wrote:
>
> Hi folks, I’m new here. I’ll be attending the GHC Contributors’ Workshop next 
> week, and in preparation, I’m trying to build GHC, both the native code 
> backend and the JS backend. So far, I’ve only tried to build it with the 
> native code backend, but I haven’t been able to get it to work. I’ve gotten 
> help from some friendly folks on the #ghc channel on Matrix, and made some 
> progress, but I’m still stuck.
>
> Is there anyone here who could be a point person for helping me get it to 
> build? BTW I’m located on the west coast of the US (until next week when I’ll 
> be in Switzerland), so time lag may be a factor.
>
> I’m using a Mac with aarch64 and macOS 13.3. Here are some of the things I’ve 
> tried, and issues I’ve run into:
>
> Started with the advice from this wiki: 
> https://gitlab.haskell.org/ghc/ghc/-/wikis/building
> Checked out the ghc source, on HEAD.
> The rest of the steps were at 
> https://gitlab.haskell.org/ghc/ghc/-/wikis/building/preparation/mac-osx
> Already had Apple’s command line tools, but when I tried to do operations 
> using them, I got an error saying I needed the full Xcode, so I installed 
> that.
> brew install autoconf automake python sphinx-doc
>
> Worked fine, also added sphinx-build to the path
>
> Initially tried using ghc 9.2.7 to build - later tried switching to 9.4.4 and 
> eventually 9.4.5
> cabal update; cabal install alex happy haddock
>
> This is where I ran into trouble - couldn’t build haddock. Cabal said it 
> couldn’t resolve the dependencies.
> I tried switching to ghc 9.4.4 and cabal 3.10.1.0 - same problem
> User romes (Rodrigo) on #ghc helped with this - was able to reproduce it and 
> filed a ticket: https://github.com/haskell/haddock/issues/1596
> However he pointed out that haddock was already supplied through ghcup so I 
> don’t need to build it.
>
> Already had MacTex installed and I installed the DejaVu font family.
> ./boot && ./configure
>
> Worked fine, although ./boot gave me lots of autoconf warnings like:
> configure.ac:9: warning: The macro `AC_HELP_STRING' is obsolete.
> configure.ac:9: You should run autoupdate.
> Apparently autoconf has renamed these macros to pluralize them, and also 
> encloses the arguments in square brackets.
>
> hadrian/build
>
> Ran into another problem: The build failed with:
> Error, file does not exist and no rule available:
> /Users/lyle/devel/haskell/ghc/_build/stage1/libraries/ghc-prim/build/GHC/Classes.hi
> Rodrigo helped me out with this. Introduced me to other build flags like -j 
> —flavour-quick.
> The issue proved quite persistent, but it might fail on different .hi files.
> It turns out if you ask Hadrian to build that specific file, it works. So 
> somehow it can find a rule! Then you can proceed to rebuild and it will fail 
> on a different .hi file. Obviously it would be tedious to do this for all the 
> possible files it can fail on.
> I also tried not building profiled libraries.
> I tried, instead of using the Apple toolchain, using llvm 12, then llvm 16. 
> But I got different errors from that.
> Rodrigo was unable to reproduce the issue.
>
> So, I thought I’d try the Nix approach.
> First I had to repair my nix installation, because apparently updating macOS 
> overwrites /etc/zshrc, overwriting the bit that sources 
> '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh’
> Nix reminded me when I ran commands that I needed to add the flag 
> '--extra-experimental-features nix-command’ and sometimes 
> '--extra-experimental-features flakes’
> The instructions from the wiki didn’t work, got an error:
>
> nix build -f .gitlab/darwin/toolchain.nix -o toolchain.sh 
> --extra-experimental-features nix-command
> error: cannot evaluate a function that has an argument without a value 
> ('system’)
>
> But folks on #ghc recommended I use ghc.nix instead
>
> Pointed me to https://ghc.dev/
> That linked to these instructions: 
> https://github.com/alpmestan/ghc.nix#building-ghc
> But those instructions failed with:
>
> error: nix-shell requires a single derivation
>
> User Artem said my command was wrong, instead recommended:
>
> nix develop https://github.com/alpmestan/ghc.nix/archive/master.tar.gz
>
> Once I added the magic experimental flags…
> It failed, with:
>
> error: NAR hash mismatch in input 
> 'github:commercialhaskell/all-cabal-hashes/02bb1361217e690d83af9cc132b1d2bf2096763c'
>  (/nix/store/zbav3qqbyz7mn7rh4iwybs0ni01ppdbj-source), expected 
> 'sha256-HdAnlSc4U8ftnZrBZr2CewsPQs03V9K2gkTVHKG8IfA=', got 
> 'sha256-86BgvJ+ebMxTp+nPxo659hsNJbhE6CYJWiIbQXX+sBM=
>
> User MangoIV helped me out with this.
> First I tried regenerating the lock file, with nix flake update.
>
> Didn’t fix 

Re: Trouble building GHC

2023-05-31 Thread Georgi Lyubenov
Just chiming in to mention that I'm on zsh, and I've had no issues with 
the configure step by running the configure_ghc shell function that the 
flake provides.


On 5/31/23 10:13, Sebastian Graf wrote:

Hi Lyle,

I'm sorry that you have so much trouble in getting your first build done.
The Classes.hi issue sounds like something I had experienced in the 
past, but I'm not having it at the moment.
Are you also using symlinks by any chance? Then it is very likely that 
you have been bitten by 
https://gitlab.haskell.org/ghc/ghc/-/issues/22451, the workaround to 
which would be to do something like `cd "$(readlink -f .)"` before you 
start your build.


Regarding your second issue using ghc.nix, a quick google turned up 
https://gitlab.haskell.org/ghc/ghc/-/issues/20429#note_379762.

Is it possible that you didn't start from a clean build?
E.g., at the least you should `rm -rf _build` (note that 
`hadrian/cabal clean` sadly is insufficient IIRC for reasons I don't 
recall).

I often simply do `git clean -fxd` to be extra sure.
After that, you'll have to boot, configure (including passing 
$CONFIGURE_ARGS) and build again.
By the way, are you using ZSH? I'm using it and I have topass the 
CONFIGURE_ARGS in a slightly different way 
: `./configure 
${=CONFIGURE_ARGS}`.


I also updated 
https://gitlab.haskell.org/ghc/ghc/-/wikis/building/preparation/linux#nixnixos 
to account for new-style flakified builds+direnv, if that's a workflow 
that you are familiar with.


Hope that helps,
Sebastian

Am Mi., 31. Mai 2023 um 05:14 Uhr schrieb Lyle Kopnicky :

Hi folks, I’m new here. I’ll be attending the GHC Contributors’
Workshop next week, and in preparation, I’m trying to build GHC,
both the native code backend and the JS backend. So far, I’ve only
tried to build it with the native code backend, but I haven’t been
able to get it to work. I’ve gotten help from some friendly folks
on the #ghc channel on Matrix, and made some progress, but I’m
still stuck.

Is there anyone here who could be a point person for helping me
get it to build? BTW I’m located on the west coast of the US
(until next week when I’ll be in Switzerland), so time lag may be
a factor.

I’m using a Mac with aarch64 and macOS 13.3. Here are some of the
things I’ve tried, and issues I’ve run into:

  * Started with the advice from this wiki:
https://gitlab.haskell.org/ghc/ghc/-/wikis/building
  * Checked out the ghc source, on HEAD.
  * The rest of the steps were at
https://gitlab.haskell.org/ghc/ghc/-/wikis/building/preparation/mac-osx
  * Already had Apple’s command line tools, but when I tried to do
operations using them, I got an error saying I needed the full
Xcode, so I installed that.
  * brew install autoconf automake python sphinx-doc
  o Worked fine, also added sphinx-build to the path
  * Initially tried using ghc 9.2.7 to build - later tried
switching to 9.4.4 and eventually 9.4.5
  * cabal update; cabal install alex happy haddock
  o This is where I ran into trouble - couldn’t build haddock.
Cabal said it couldn’t resolve the dependencies.
  o I tried switching to ghc 9.4.4 and cabal 3.10.1.0 - same
problem
  o User romes (Rodrigo) on #ghc helped with this - was able
to reproduce it and filed a ticket:
https://github.com/haskell/haddock/issues/1596
  o However he pointed out that haddock was already supplied
through ghcup so I don’t need to build it.
  * Already had MacTex installed and I installed the DejaVu font
family.
  * ./boot && ./configure
  o Worked fine, although |./boot| gave me lots of autoconf
warnings like:
configure.ac:9 : warning: The macro
`AC_HELP_STRING' is obsolete.
configure.ac:9 : You should run
autoupdate.
  o Apparently autoconf has renamed these macros to pluralize
them, and also encloses the arguments in square brackets.
  * hadrian/build
  o Ran into another problem: The build failed with:
Error, file does not exist and no rule available:

/Users/lyle/devel/haskell/ghc/_build/stage1/libraries/ghc-prim/build/GHC/Classes.hi
  o Rodrigo helped me out with this. Introduced me to other
build flags like |-j —flavour-quick|.
  o The issue proved quite persistent, but it might fail on
different |.hi| files.
  o It turns out if you ask Hadrian to build that specific
file, it works. So somehow it can find a rule! Then you
can proceed to rebuild and it will fail on a different
|.hi| file. Obviously it would be tedious to do this for
all the possible files it can fail on.
  

Re: Trouble building GHC

2023-05-31 Thread Sebastian Graf
Hi Lyle,

I'm sorry that you have so much trouble in getting your first build done.
The Classes.hi issue sounds like something I had experienced in the past,
but I'm not having it at the moment.
Are you also using symlinks by any chance? Then it is very likely that you
have been bitten by https://gitlab.haskell.org/ghc/ghc/-/issues/22451, the
workaround to which would be to do something like `cd "$(readlink -f .)"`
before you start your build.

Regarding your second issue using ghc.nix, a quick google turned up
https://gitlab.haskell.org/ghc/ghc/-/issues/20429#note_379762.
Is it possible that you didn't start from a clean build?
E.g., at the least you should `rm -rf _build` (note that `hadrian/cabal
clean` sadly is insufficient IIRC for reasons I don't recall).
I often simply do `git clean -fxd` to be extra sure.
After that, you'll have to boot, configure (including passing
$CONFIGURE_ARGS) and build again.
By the way, are you using ZSH? I'm using it and I have to pass the
CONFIGURE_ARGS in a slightly different way
: `./configure
${=CONFIGURE_ARGS}`.

I also updated
https://gitlab.haskell.org/ghc/ghc/-/wikis/building/preparation/linux#nixnixos
to account for new-style flakified builds+direnv, if that's a workflow that
you are familiar with.

Hope that helps,
Sebastian

Am Mi., 31. Mai 2023 um 05:14 Uhr schrieb Lyle Kopnicky :

> Hi folks, I’m new here. I’ll be attending the GHC Contributors’ Workshop
> next week, and in preparation, I’m trying to build GHC, both the native
> code backend and the JS backend. So far, I’ve only tried to build it with
> the native code backend, but I haven’t been able to get it to work. I’ve
> gotten help from some friendly folks on the #ghc channel on Matrix, and
> made some progress, but I’m still stuck.
>
> Is there anyone here who could be a point person for helping me get it to
> build? BTW I’m located on the west coast of the US (until next week when
> I’ll be in Switzerland), so time lag may be a factor.
>
> I’m using a Mac with aarch64 and macOS 13.3. Here are some of the things
> I’ve tried, and issues I’ve run into:
>
>
>- Started with the advice from this wiki:
>https://gitlab.haskell.org/ghc/ghc/-/wikis/building
>- Checked out the ghc source, on HEAD.
>- The rest of the steps were at
>https://gitlab.haskell.org/ghc/ghc/-/wikis/building/preparation/mac-osx
>- Already had Apple’s command line tools, but when I tried to do
>operations using them, I got an error saying I needed the full Xcode, so I
>installed that.
>- brew install autoconf automake python sphinx-doc
>   - Worked fine, also added sphinx-build to the path
>- Initially tried using ghc 9.2.7 to build - later tried switching to
>9.4.4 and eventually 9.4.5
>- cabal update; cabal install alex happy haddock
>- This is where I ran into trouble - couldn’t build haddock. Cabal
>   said it couldn’t resolve the dependencies.
>   - I tried switching to ghc 9.4.4 and cabal 3.10.1.0 - same problem
>   - User romes (Rodrigo) on #ghc helped with this - was able to
>   reproduce it and filed a ticket:
>   https://github.com/haskell/haddock/issues/1596
>   - However he pointed out that haddock was already supplied through
>   ghcup so I don’t need to build it.
>- Already had MacTex installed and I installed the DejaVu font family.
>- ./boot && ./configure
>   - Worked fine, although ./boot gave me lots of autoconf warnings
>   like:
>   configure.ac:9: warning: The macro `AC_HELP_STRING' is obsolete.
>   configure.ac:9: You should run autoupdate.
>   - Apparently autoconf has renamed these macros to pluralize them,
>   and also encloses the arguments in square brackets.
>- hadrian/build
>   - Ran into another problem: The build failed with:
>   Error, file does not exist and no rule available:
>
>   
> /Users/lyle/devel/haskell/ghc/_build/stage1/libraries/ghc-prim/build/GHC/Classes.hi
>   - Rodrigo helped me out with this. Introduced me to other build
>   flags like -j —flavour-quick.
>   - The issue proved quite persistent, but it might fail on different
>   .hi files.
>   - It turns out if you ask Hadrian to build that specific file, it
>   works. So somehow it can find a rule! Then you can proceed to rebuild 
> and
>   it will fail on a different .hi file. Obviously it would be tedious
>   to do this for all the possible files it can fail on.
>   - I also tried not building profiled libraries.
>   - I tried, instead of using the Apple toolchain, using llvm 12,
>   then llvm 16. But I got different errors from that.
>   - Rodrigo was unable to reproduce the issue.
>- So, I thought I’d try the Nix approach.
>- First I had to repair my nix installation, because apparently
>updating macOS overwrites /etc/zshrc, overwriting the bit that sources
>