|
From: | Lukas-Fabian Moser |
Subject: | Re: 2.21 and OLL |
Date: | Tue, 15 Sep 2020 20:06:10 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 |
Hi all,
%%%%%%%%%%%%%%%% \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 1e60f8128a9cf6bdf8bf06f995b871e0d1285d22 Author: David Kastrup <dak@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 <hanwen@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
[Prev in Thread] | Current Thread | [Next in Thread] |