> I’m just hoping that someone can update the README at https://github.com/alpmestan/ghc.nix.
That "someone" could be you! :O In fact, you are probably the most qualified to do so! On Sat, 3 Jun 2023, 22.17 Lyle Kopnicky, <li...@qseep.net> wrote: > 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 >
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs