An example is attached. It contains just a faulty music-function that crashes 
guile (car and cdr expect a pair, not an empty list):

aa = #(define-music-function (a b) () (car '()))
{ a\aa }


In 2.12, when you had an error in some GUILE code, lilypond would print out 
the error together with the location where the error occured

GNU LilyPond 2.12.3
»crash.ly« wird verarbeitet
Analysieren...
crash.ly:4:2: In procedure car in expression (car (quote ())):
crash.ly:4:2: Wrong type (expecting pair): ()


However, in lilypond 2.15.9 (and probably also some earlier versions), 
lilypond suddenly only prints out the error message, but not where the error 
occurred (neither file nor expression is displayed):

GNU LilyPond 2.15.9
»crash.ly« wird verarbeitet
Analysieren...
ERROR: Wrong type (expecting pair): ()


As you can imagine, from this error output it is basically impossible to find 
the correct location of broken guile code somewhere in out scm/ directory (see 
also my comment at issue 1.770, which I wouldn't have been able to fix without 
the 2.12 error message)


Is there any way to revert GUILE's error reporting back to the 2.12 "verbose" 
output? 
I think this deserves a bug report with priority "High", according to the 
latest GOP-8 ("anything which makes it difficult for serious contributors to 
help out (e.g. difficult to find the relevant source tree(s), [...]).")

Cheers,
Reinhold

-- 
------------------------------------------------------------------
Reinhold Kainhofer, reinh...@kainhofer.com, http://reinhold.kainhofer.com/
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * LilyPond, Music typesetting, http://www.lilypond.org
\version "2.12.0"

aa = #(define-music-function (a b) ()
 (car '())
 (make-music 'Music))


{ 
  a\aa
}
_______________________________________________
bug-lilypond mailing list
bug-lilypond@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-lilypond

Reply via email to