From 792fd51f41212b0bf1d8a121a4f228a92fec3906 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 17 Oct 2013 11:53:40 +0200 Subject: [PATCH] Fold two stack trace messages in derivations Combined with the previous changes, stack traces involving derivations are now much less verbose, since something like while evaluating the builtin function `getAttr': while evaluating the builtin function `derivationStrict': while instantiating the derivation named `gtk+-2.24.20' at `/home/eelco/Dev/nixpkgs/pkgs/development/libraries/gtk+/2.x.nix:11:3': while evaluating the derivation attribute `propagatedNativeBuildInputs' at `/home/eelco/Dev/nixpkgs/pkgs/stdenv/generic/default.nix:78:17': while evaluating the attribute `outPath' at `/nix/store/212ngf4ph63mp6p1np2bapkfikpakfv7-nix-1.6/share/nix/corepkgs/derivation.nix:18:9': ... now reads while evaluating the attribute `propagatedNativeBuildInputs' of the derivation `gtk+-2.24.20' at `/home/eelco/Dev/nixpkgs/pkgs/development/libraries/gtk+/2.x.nix:11:3': ... --- doc/manual/release-notes.xml | 5 +++-- src/libexpr/primops.cc | 6 ++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/doc/manual/release-notes.xml b/doc/manual/release-notes.xml index 926cac086e..c9cab2eef3 100644 --- a/doc/manual/release-notes.xml +++ b/doc/manual/release-notes.xml @@ -57,8 +57,9 @@ are: - In order to be less verbose, stack traces no longer show - calls to builtin functions. + Stack traces are less verbose: they no longer show calls to + builtin functions and only show a single line for each derivation + on the call stack. diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc index 0585f5bbe0..30dd15ac0d 100644 --- a/src/libexpr/primops.cc +++ b/src/libexpr/primops.cc @@ -394,10 +394,8 @@ static void prim_derivationStrict(EvalState & state, Value * * args, Value & v) } } catch (Error & e) { - e.addPrefix(format("while evaluating the derivation attribute `%1%' at %2%:\n") - % key % *i->pos); - e.addPrefix(format("while instantiating the derivation named `%1%' at %2%:\n") - % drvName % posDrvName); + e.addPrefix(format("while evaluating the attribute `%1%' of the derivation `%2%' at %3%:\n") + % key % drvName % posDrvName); throw; } }