* When something goes wrong in the evaluation of a Nix expression,
print a nice backtrace of the stack, rather than vomiting a gigantic
  (and useless) aterm on the screen.  Example:
    error: while evaluating file `.../pkgs/system/test.nix':
    while evaluating attribute `subversion' at `.../pkgs/system/all-packages-generic.nix', line 533:
    while evaluating function at `.../pkgs/applications/version-management/subversion/default.nix', line 1:
    assertion failed at `.../pkgs/applications/version-management/subversion/default.nix', line 13
  Since the Nix expression language is lazy, the trace may be
  misleading.  The purpose is to provide a hint as to the location of
  the problem.
			
			
This commit is contained in:
		
							parent
							
								
									a520b1cbc3
								
							
						
					
					
						commit
						59b94ee18a
					
				
					 8 changed files with 201 additions and 90 deletions
				
			
		|  | @ -52,6 +52,9 @@ private: | |||
| ATerm string2ATerm(const string & s); | ||||
| string aterm2String(ATerm t); | ||||
| 
 | ||||
| /* Show a position. */ | ||||
| string showPos(ATerm pos); | ||||
| 
 | ||||
| /* Generic bottomup traversal over ATerms.  The traversal first
 | ||||
|    recursively descends into subterms, and then applies the given term | ||||
|    function to the resulting term. */ | ||||
|  | @ -63,11 +66,12 @@ ATerm bottomupRewrite(TermFun & f, ATerm e); | |||
| 
 | ||||
| /* Query all attributes in an attribute set expression.  The
 | ||||
|    expression must be in normal form. */ | ||||
| void queryAllAttrs(Expr e, ATermMap & attrs); | ||||
| void queryAllAttrs(Expr e, ATermMap & attrs, bool withPos = false); | ||||
| 
 | ||||
| /* Query a specific attribute from an attribute set expression.  The
 | ||||
|    expression must be in normal form. */ | ||||
| Expr queryAttr(Expr e, const string & name); | ||||
| Expr queryAttr(Expr e, const string & name, ATerm & pos); | ||||
| 
 | ||||
| /* Create an attribute set expression from an Attrs value. */ | ||||
| Expr makeAttrs(const ATermMap & attrs); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue