Thanks for the explanation. I’m just hoping that someone can update the README at https://github.com/alpmestan/ghc.nix. It still says to run
nix-shell ~/ghc.nix/shell.nix --run './boot && ./configure $CONFIGURE_ARGS && make -j4' Thanks for your help! Lyle On May 31, 2023 at 2:41:28 AM, Sebastian Graf <sgraf1...@gmail.com> wrote: > > 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 >
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs