Hi all,
Am 16.07.20 um 23:16 schrieb David Kastrup:
%%%%%%%%%%%%%%%% \version "2.21.0" \include "oll-core/package.ily"
%%%%%%%%%%%%%%%%
=>
Starting lilypond 2.21.0 [Untitled]... Processing
`/tmp/frescobaldi-ux6dspgj/tmpa64z83u_/document.ly' Parsing...
/home/simon/openlilylib/oll-core/package.ily:57:2: error: GUILE
signaled an error for the expression beginning here # (if (not
(defined? 'openlilylib-root)) Value out of range 0 to
18446744073709551615: -1 fatal error: failed files:
"/tmp/frescobaldi-ux6dspgj/tmpa64z83u_/document.ly" Exited with return
code 1.
When the C++ code converts a Scheme value to integral types, recent
changes in LilyPond's Guile interfaces now make sure that the value
actually can be represented by the given type. The value here would
appear to be -1 which has no representation in an unsigned int.
No idea where this happens, but maybe this helps someone else figuring
out where OpenLily was likely previously triggering undefined behavior
and now causes an error exit.
Since this hit me today when starting to try out openLilyLib for the
first time in a long time (I hadn't realized I was using 2.21.0), I
looked around a bit: This was fixed in
commit 1e60f8128a9cf6bdf8bf06f995b871e0d1285d22Author: David Kastrup
<d...@gnu.org>Date: Sat May 16 15:03:57 2020 +0200 Fix input
location when parsing This fixes a regression introduced by commit
5a4039b700f3a7447401780c720070d14e2891bd Author: Han-Wen Nienhuys
<han...@lilypond.org> Date: Fri Jan 31 08:24:44 2020 +0100
Clean up embedded scheme parsing/evaluation. Renames and reorders
functions to clarify the mechanism. No consequential functional
changes. Separates input and output parameters. Reported in
<https://lists.gnu.org/archive/html/lilypond-devel/2020-05/msg00060.html>
by Martin Neubauer.
To wit, we have
\version "2.21.1"#(display (ly:input-file-line-char-column (*location*)))
yielding ( 0 0 0) in 2.21.1, and
(/tmp/frescobaldi-be_shbjr/tmpy52v52mn/document.ly 3 1 1), and the first
thing openLilyLib does when initializing is
(let*((this (car (ly:input-file-line-char-column (*location*)))) (path
(string-split this #\/)) (oll-root (list-head path (- (length path)
2)))) ...
No wonder this bombed out for "this" being an empty string.
Lukas