> 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 > <https://github.com/alpmestan/ghc.nix#building-ghc>: `./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 <li...@qseep.net>: > >> 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 >> <https://gitlab.haskell.org/ghc/ghc/-/wikis/building/preparation/mac-osx> >> 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 the problem. >> - Then, I checked out the branch update_flake_lock_action >> - This is apparently a branch designed to fix the problem >> - Didn’t fix the problem >> - Then I regenerated the lock file again, with nix flake update >> - That worked! Well, at least that got me to a ghc.nix prompt >> - So, I did: >> - ./boot >> - ./configure >> - cabal v2-update >> - hadrian/build -j --flavour=quick >> - It chugged along for quite a while. Sadly, it ended with this >> error: >> - >> - Linking >> >> /Users/lyle/Sync/devel/haskell/ghc/hadrian/dist-newstyle/build/aarch64-osx/ghc-9.2.4/hadrian-0.1.0.0/x/hadrian/build/hadrian/hadrian >> ... >> Data.Binary.Get.runGet at position 1181: Unknown encoding for >> constructor >> - What also worries me is that I thought I read somewhere that >> ghc.nix doesn’t work for cross-compilers, so even if it works for >> the native backend, it may not work for the JS backend. >> >> >> Any help would be much appreciated! >> — Lyle >> _______________________________________________ >> ghc-devs mailing list >> ghc-devs@haskell.org >> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs >> > > _______________________________________________ > ghc-devs mailing > listghc-devs@haskell.orghttp://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > > _______________________________________________ > ghc-devs mailing list > ghc-devs@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs >
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs