diff --git a/pkgs/tools/package-management/nix/modular/src/nix/package.nix b/pkgs/tools/package-management/nix/modular/src/nix/package.nix index deb49c9e7b4d..737b57f9433e 100644 --- a/pkgs/tools/package-management/nix/modular/src/nix/package.nix +++ b/pkgs/tools/package-management/nix/modular/src/nix/package.nix @@ -1,6 +1,7 @@ { lib, mkMesonExecutable, + stdenv, nix-store, nix-expr, @@ -12,6 +13,11 @@ # Configuration Options version, + + # Whether to link against mimalloc for malloc override. + # Significantly improves evaluation performance on allocation-heavy + # workloads (~10-15% on large evaluations). + withMimalloc ? !stdenv.hostPlatform.isWindows, }: mkMesonExecutable (finalAttrs: { @@ -25,10 +31,11 @@ mkMesonExecutable (finalAttrs: { nix-expr nix-main nix-cmd - mimalloc - ]; + ] + ++ lib.optional ((lib.versionAtLeast version "2.35pre") && withMimalloc) mimalloc; - mesonFlags = [ + mesonFlags = lib.optionals (lib.versionAtLeast version "2.35pre") [ + (lib.mesonEnable "mimalloc" withMimalloc) ]; meta = {