lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: "loco" after ottava


From: Jean Abou Samra
Subject: Re: "loco" after ottava
Date: Sat, 3 Dec 2022 16:56:56 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0

Le 03/12/2022 à 15:41, Thomas Morley a écrit :
Granted, if I use -dcheck-internal-types I mostly wear my developer
hat. But sometimes I use it even for huge custom codings as part of
debugging processes.



Why? What does it catch?

In my view, warnings about a property being set on a grob
that has no interface for it are nothing you need to care
about as a user. This check merely helps ensuring that the
IR remains complete when developers add features. I see no
reason why it would be bad to set a property on a grob even
if it doesn't have an interface declaring this property,
if you set another property in this grob to something that
will read it. For example, it's a common pattern to set
stencil to #ly:text-interface::print and text to some markup,
even on grobs that don't have text-interface. That's fine.
On the other hand, if you change the stencil default for
a given grob to #ly:text-interface::print in the source,
you shouldn't forget to add text-interface to that grob.

The other thing check-internal-types catches is callbacks
returning a value of the wrong type, but I have never
encountered this case AFAIR.


That said, we not only want to attract new users but new developers, too.
Some of them may not be experienced programmers but musicians with
some interest in coding (like me).
Playing hide and seek with them may not be appreciated...
We could place the info about -dhelp-internal in CG, but that would
spread "help-infos" over two manuals.
Thus I prefer my suggestion above.


Consider me indifferent.



Also, hiding internal things from mere users would arguable lead to a
very small IR.
We could just delete all internal grob and context properties.
Which would be a very bad thing, if I think back how often I used them...



I view internal properties and internal options differently.
LilyPond has a blurry line between users and developers.
"Internal" for properties draws a line between advanced users
and other users. Internal properties are thing that you can
use if you know how to use them from Scheme and (like many
Scheme things) accept the lesser degree of stability that
you can expect from them. In contrast, for me, the options
currently listed as "internal" really only make sense if
you are a contributor working on the source, e.g.,
debug-gc-assert-parsed-dead catches low-level garbage
collection problems, debug-parser is only useful if you
know your way around the Bison / C++ parser, etc.


Jean

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]