From e5eb5cbed4960db2efc04988bb1d5eceb578464a Mon Sep 17 00:00:00 2001 From: sempiternal-aurora <78790545+sempiternal-aurora@users.noreply.github.com> Date: Mon, 13 Apr 2026 21:44:59 +1000 Subject: [PATCH 1/4] polyml: migrate to by-name (cherry picked from commit f418e625da4d5cdda3e1c72eab2964968ff88f54) --- .../polyml/default.nix => by-name/po/polyml/package.nix} | 0 pkgs/top-level/all-packages.nix | 1 - 2 files changed, 1 deletion(-) rename pkgs/{development/compilers/polyml/default.nix => by-name/po/polyml/package.nix} (100%) diff --git a/pkgs/development/compilers/polyml/default.nix b/pkgs/by-name/po/polyml/package.nix similarity index 100% rename from pkgs/development/compilers/polyml/default.nix rename to pkgs/by-name/po/polyml/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f5386706df28..1adc70e3a7b5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4887,7 +4887,6 @@ with pkgs; php85Extensions = recurseIntoAttrs php85.extensions; php85Packages = recurseIntoAttrs php85.packages; - polyml = callPackage ../development/compilers/polyml { }; polyml56 = callPackage ../development/compilers/polyml/5.6.nix { }; polyml57 = callPackage ../development/compilers/polyml/5.7.nix { }; From d9611a2cd77723d76aa54f029679ac9e8bd51cfd Mon Sep 17 00:00:00 2001 From: sempiternal-aurora <78790545+sempiternal-aurora@users.noreply.github.com> Date: Mon, 13 Apr 2026 22:21:30 +1000 Subject: [PATCH 2/4] polyml: cleanup and mark cross broken Compilation requires running one of the make build targets, so cross compilation isn't possible Also remove old design patterns in favour of newer ones. (cherry picked from commit 6e36170c0f4d6875795bc52d3d5e7e30c9711646) --- pkgs/by-name/po/polyml/package.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/po/polyml/package.nix b/pkgs/by-name/po/polyml/package.nix index be8ff324271f..2e0b750e8c1a 100644 --- a/pkgs/by-name/po/polyml/package.nix +++ b/pkgs/by-name/po/polyml/package.nix @@ -7,14 +7,17 @@ libffi, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "polyml"; version = "5.9.2"; + __structuredAttrs = true; + strictDeps = true; + src = fetchFromGitHub { owner = "polyml"; repo = "polyml"; - rev = "v${version}"; + rev = "v${finalAttrs.version}"; sha256 = "sha256-dHP5XNoLcFIqASfZVWu3MtY3B3H66skEl8ohlwTGyyM="; }; @@ -44,12 +47,6 @@ stdenv.mkDerivation rec { doCheck = true; - checkPhase = '' - runHook preCheck - make check - runHook postCheck - ''; - meta = { description = "Standard ML compiler and interpreter"; longDescription = '' @@ -58,8 +55,11 @@ stdenv.mkDerivation rec { homepage = "https://www.polyml.org/"; license = lib.licenses.lgpl21; platforms = with lib.platforms; (linux ++ darwin); + # Broken as make target `polyimport.o` requires running code + # compiled by the cross-compiler + broken = !(stdenv.buildPlatform.canExecute stdenv.hostPlatform); maintainers = with lib.maintainers; [ kovirobi ]; }; -} +}) From 19e44e2608e842745dde447a432609c8b3d30147 Mon Sep 17 00:00:00 2001 From: sempiternal-aurora <78790545+sempiternal-aurora@users.noreply.github.com> Date: Sun, 19 Apr 2026 23:44:31 +1000 Subject: [PATCH 3/4] polyml: replace kovirobi with sempiternal-aurora as maintainer (cherry picked from commit d9bf2ea7eaef208ce218755d80d014c5d38a858b) --- pkgs/by-name/po/polyml/package.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/by-name/po/polyml/package.nix b/pkgs/by-name/po/polyml/package.nix index 2e0b750e8c1a..d8f6aff45d7f 100644 --- a/pkgs/by-name/po/polyml/package.nix +++ b/pkgs/by-name/po/polyml/package.nix @@ -58,8 +58,6 @@ stdenv.mkDerivation (finalAttrs: { # Broken as make target `polyimport.o` requires running code # compiled by the cross-compiler broken = !(stdenv.buildPlatform.canExecute stdenv.hostPlatform); - maintainers = with lib.maintainers; [ - kovirobi - ]; + maintainers = with lib.maintainers; [ sempiternal-aurora ]; }; }) From 23f75822bd61ba518421641c92d8112f3fa2b599 Mon Sep 17 00:00:00 2001 From: sempiternal-aurora <78790545+sempiternal-aurora@users.noreply.github.com> Date: Sun, 19 Apr 2026 23:44:38 +1000 Subject: [PATCH 4/4] polyml: Fix polyc linking script polyc linking script hardcodes the linker to be the value of `$CXX` at compile time. This is bad for environments without `g++` in path. Fix this by patching the correct path into the script. Co-Authored-By: Ricardo Correia Co-Authored-By: Ivan Trubach (cherry picked from commit 3a717e7522076b62cc6a9f49551cd82acb79e8bc) --- pkgs/by-name/po/polyml/package.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/by-name/po/polyml/package.nix b/pkgs/by-name/po/polyml/package.nix index d8f6aff45d7f..18674635298b 100644 --- a/pkgs/by-name/po/polyml/package.nix +++ b/pkgs/by-name/po/polyml/package.nix @@ -1,6 +1,7 @@ { lib, stdenv, + pkgsHostTarget, fetchFromGitHub, autoreconfHook, gmp, @@ -35,6 +36,7 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ libffi gmp + pkgsHostTarget.stdenv.cc ]; nativeBuildInputs = [ autoreconfHook ]; @@ -45,6 +47,11 @@ stdenv.mkDerivation (finalAttrs: { "--with-gmp" ]; + preInstall = '' + substituteInPlace polyc \ + --replace-fail "LINK=\"$CXX\"" "LINK=\"${lib.getExe' pkgsHostTarget.stdenv.cc "c++"}\"" + ''; + doCheck = true; meta = {