summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-10-17 11:53:40 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-10-17 11:57:25 +0200
commit792fd51f41212b0bf1d8a121a4f228a92fec3906 (patch)
tree495ba3ee5096f299710af679ebf7ed31b2af1478
parentf440558acc76c2939cf5f0744c6669279b6351a0 (diff)
downloadguix-792fd51f41212b0bf1d8a121a4f228a92fec3906.tar.gz
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':
  ...
-rw-r--r--doc/manual/release-notes.xml5
-rw-r--r--src/libexpr/primops.cc6
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:</para>
   </listitem>
 
   <listitem>
-    <para>In order to be less verbose, stack traces no longer show
-    calls to builtin functions.</para>
+    <para>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.</para>
   </listitem>
 
 </itemizedlist>
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;
         }
     }