Admin message

Due to a large amount of spam we do not allow new users to create repositories, they are "external" users. If you are a new user and want to create a repository, for example for forking GHC, open a new issue on ghc/ghc using the "get-verified" issue template

Darwin use of nix is too unpredictable
Currently GHC's CI infrastructure relies on `nix` on Darwin to provide the native toolchain, GHC, and associated build dependencies. While convenient, it is not convinced that this configuration provides us with the environment that a non-Nix Darwin user would see. For instance, ``` $ cat > toolchain.nix <<EOF let sources = import ./nix/sources.nix; #nixpkgsSrc = sources.nixpkgs; nixpkgsSrc = <nixpkgs>; #nixpkgsSrc = /Users/administrator/nixpkgs; aarch64Pkgs = import nixpkgsSrc { system = "aarch64-darwin"; }; x86Pkgs = import nixpkgsSrc { system = "x86_64-darwin"; }; in let ghcVer = "ghc8105Binary"; ghc = aarch64Pkgs.haskell.compiler."${ghcVer}"; alex = hsPkgs.alex; happy = hsPkgs.happy; hsPkgs = x86Pkgs.haskellPackages; in aarch64Pkgs.writeTextFile { name = "toolchain"; text = '' export PATH PATH="${aarch64Pkgs.autoconf}/bin:$PATH" PATH="${aarch64Pkgs.automake}/bin:$PATH" PATH="${aarch64Pkgs.clang}/bin:$PATH" PATH="${aarch64Pkgs.llvm_11}/bin:$PATH" PATH="${aarch64Pkgs.coreutils}/bin:$PATH" export HAPPY="${happy}/bin/happy" export ALEX="${alex}/bin/alex" export GHC="${ghc}/bin/ghc" export SPHINX_BUILD="${aarch64Pkgs.python3Packages.sphinx}/bin/sphinx-build" export CABAL_INSTALL="${hsPkgs.cabal-install}/bin/cabal" export CABAL="$CABAL_INSTALL" export CURSES_LIB_DIRS="${aarch64Pkgs.ncurses}/lib" ''; } EOF $ nix build -I nixpkgs=https://github.com/bgamari/nixpkgs/archive/faf319a81bf.tar.gz -f toolchain.nix $ source result $ $CABAL update $ $CABAL install -w $GHC --lib clock ``` will fail with a slew of warnings from the system's `stdio.h` since the `clang` provided by `nixpkgs` is incompatible with the system's `libc` headers, e.g.: ``` /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:388:41: error: warning: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Wnullability-completeness] int (* _Nullable)(void *)); ``` On the other hand, if I drop `clang` from `PATH` I rather get assembler errors as the assembler is trying to assemble AArch64 assembly as x86 syntax.
issue