Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
1.9 kB · 101 lines
Nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102{ lib, stdenv, fetchurl,}:let version = "110.99.8"; baseurl = "https://smlnj.cs.uchicago.edu/dist/working/${version}";
arch = if stdenv.hostPlatform.is64bit then "64" else "32";
hashes = builtins.fromJSON (builtins.readFile ./hashes.json);
fetchSource = name: fetchurl { url = "${baseurl}/${name}"; hash = hashes.${name}; };
bootSource = if stdenv.hostPlatform.is64bit then "boot.amd64-unix.tgz" else "boot.x86-unix.tgz";
sources = map fetchSource [ bootSource "config.tgz" "cm.tgz" "compiler.tgz" "runtime.tgz" "system.tgz" "MLRISC.tgz" "smlnj-lib.tgz" "old-basis.tgz" "ckit.tgz" "nlffi.tgz" "cml.tgz" "eXene.tgz" "ml-lpt.tgz" "ml-lex.tgz" "ml-yacc.tgz" "ml-burg.tgz" "pgraph.tgz" "trace-debug-profile.tgz" "heap2asm.tgz" "smlnj-c.tgz" "doc.tgz" "asdl.tgz" ];
instdenv.mkDerivation { pname = "smlnj"; inherit version sources;
unpackPhase = '' for s in $sources; do b=$(basename $s) cp $s ''${b#*-} done unpackFile config.tgz mkdir base ./config/unpack $TMP runtime '';
patchPhase = '' sed -i '/^PATH=/d' config/_arch-n-opsys base/runtime/config/gen-posix-names.sh echo SRCARCHIVEURL="file:/$TMP" > config/srcarchiveurl '';
buildPhase = '' ./config/install.sh -default ${arch} '';
installPhase = '' mkdir -pv $out cp -rv bin lib $out
cd $out/bin for i in *; do sed -i "2iSMLNJ_HOME=$out/" $i done '';
passthru.updateScript = ./update.sh;
meta = { description = "Standard ML of New Jersey, a compiler"; homepage = "http://smlnj.org"; license = lib.licenses.bsd3; platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-darwin" ]; maintainers = with lib.maintainers; [ skyesoss thoughtpolice ]; mainProgram = "sml"; };}