From d1dd6fa8287734864bf83cf4189aeb837ea84ca3 Mon Sep 17 00:00:00 2001 From: Rodney Lorrimar Date: Wed, 5 Sep 2018 22:16:57 +1000 Subject: [PATCH 1/2] [DEVOPS-1032] nix: allow building without optimization Used like this: nix-build --arg fasterBuild true -A cardano-sl-wallet-new --- default.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/default.nix b/default.nix index e539bd5ea3c..9977903a8a6 100644 --- a/default.nix +++ b/default.nix @@ -22,6 +22,7 @@ in , enablePhaseMetrics ? true , allowCustomConfig ? true , useStackBinaries ? false +, fasterBuild ? false }: with pkgs.lib; @@ -111,6 +112,14 @@ let }); }; + # Disabling optimization for cardano-sl packages will + # return a build ~20% faster (measured in DEVOPS-1032). + fasterBuildOverlay = self: super: { + mkDerivation = args: super.mkDerivation (args // optionalAttrs (localLib.isCardanoSL args.pname) { + configureFlags = (args.configureFlags or []) ++ [ "--ghc-options=-O0" ]; + }); + }; + dontCheckOverlay = self: super: { mkDerivation = args: super.mkDerivation (args // { doCheck = false; @@ -133,7 +142,8 @@ let ++ optional enablePhaseMetrics metricOverlay ++ optional enableBenchmarks benchmarkOverlay ++ optional enableDebugging debugOverlay - ++ optional forceDontCheck dontCheckOverlay; + ++ optional forceDontCheck dontCheckOverlay + ++ optional fasterBuild fasterBuildOverlay; cardanoPkgs = builtins.foldl' (pkgs: overlay: pkgs.extend overlay) cardanoPkgsBase activeOverlays; connect = let From ed4793f2242f6976b2cef2ba9acbf64979097582 Mon Sep 17 00:00:00 2001 From: Rodney Lorrimar Date: Tue, 11 Sep 2018 10:31:46 +1000 Subject: [PATCH 2/2] [DEVOPS-1032] release.nix: pass through fasterBuild arg --- release.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/release.nix b/release.nix index 3e5dd514b74..c2c4ccf1590 100644 --- a/release.nix +++ b/release.nix @@ -4,9 +4,11 @@ in { supportedSystems ? [ "x86_64-linux" "x86_64-darwin" ] , scrubJobs ? true , cardano ? { outPath = ./.; rev = "abcdef"; } + , fasterBuild ? false , nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; gitrev = cardano.rev; + inherit fasterBuild; } }: