Thomas Morley <thomasmorle...@gmail.com> writes:

> Hi all,
>
> I just tried to to update/review and modify an old score. I've got an
> assertion failure.
>
> With released 2.19.65:
> /home/gub/NewGub/gub/target/linux-64/src/lilypond-git.sv.gnu.org--lilypond.git-release-unstable/lily/grob-property.cc:242:
> scm_unused_struct* Grob::try_callback_on_alist(scm_unused_struct**,
> SCM, SCM): Assertion `((((scm_t_bits) (0? (*(SCM*)0=((value))):
> (value))) == ((scm_t_bits) (0? (*(SCM*)0=(((SCM) ((((4)) << 8) +
> scm_tc8_flag)))): ((SCM) ((((4)) << 8) + scm_tc8_flag)))))) ||
> (((scm_t_bits) (0? (*(SCM*)0=(value)): value)) == ((scm_t_bits) (0?
> (*(SCM*)0=(marker)): marker)))' failed.
> Aborted (core dumped)
>
> With a build from recent master:
> /home/hermann/lilypond-git/lily/grob-property.cc:242:
> scm_unused_struct* Grob::try_callback_on_alist(scm_unused_struct**,
> SCM, SCM): Assertion `scm_is_null (value) || scm_is_eq (value,
> marker)' failed.

Hey, that error message is an improvement.  The funny thing is that I am
responsible for that improvement (because those error messages were
getting on my nerves), but it is actually a patch to the GNU C library
rather than to LilyPond.  It would appear that you are compiling with a
newer version of the C library than our distributed 2.19.65 is using.

> It took my quite a while and was going on my nerves before I found the
> culprit in my file with a lot of included functions from other files,
> etc, etc. The above error-messages didn't help in any way.
> Could we please put out a meaningful message for the problem triggered
> with (stripped down):
>
> \version "2.19.65"
>
> {
>   \override Fingering #'stencil =
>     #(lambda (grob)
>       (ly:grob-set-property! grob 'stencil
>         (grob-interpret-markup grob #{ \markup \normal-text "foo" #})))
>   a''-1
> }
>
> I doubt many people would have been able to read the error and
> directly point to the faulty coding.

Assertion failures should not be triggered by users anyway.  They point
to a violation of the program's assumptions severe enough that it makes
no sense to continue.  So this should likely become a programming error
instead.

You still won't get sensible behavior here since the return value will
(I think) be wrong, too.

-- 
David Kastrup

_______________________________________________
bug-lilypond mailing list
bug-lilypond@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-lilypond

Reply via email to