lilypond-devel
[Top][All Lists]
Advanced

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

Re: Could we do something to promote convert-ly?


From: Jean Abou Samra
Subject: Re: Could we do something to promote convert-ly?
Date: Wed, 9 Feb 2022 20:02:26 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0

Le 09/02/2022 à 16:40, Valentin Petzel a écrit :
Hello Jean,

2.23 would only provide such an alias if an earlier version was specified. So a 
user can only keep using ParenthesisItem when explicitely stating that he'd be 
using an old version of the language.

Thus this would also not at all affect recent files.

The problem is that Lilypond does reject too new files, but not old files. This 
means that Lilypond assumes it can understand older language versions when it 
basically has no clue about it. So basically Lilypond makes a promise it cannot 
keep.


In my opinion, it will never be able to keep it. Syntax changes
are unavoidable if we want to move forward on certain issues, and
remaining fully compatible would mean a lot of parsing trouble,
and often impossibility to change things (e.g., if we want to
change how the file is rendered without changing the syntax).
I think adding code to make it kept more while still not kept
fully would make it sound like we are promising more than we
can give, as you describe is already the case, so it would in
fact go against the objective.

Also, we're not a library used by consumer software that is packaged
in several environments and needs to be compatible with several
versions. I see essentially no disadvantage to just updating
the file once, and it is a lot simpler for everyone.



A different approach would be issuing a warning when compiling an old version. 
This would make clear that Lilypond does in fact not offer any support for 
files written in previous versions.



That sounds pretty much like what I propose, except that
I don't think we should warn if compilation succeeds.
We don't guarantee that input files will continue to work,
but some people might want to write code that is compatible
with several versions (that's what ly:version? is all for
after all). Also, I think it would be just too noisy given
that it's relatively frequent on mailing lists to take
code with \version "2.20.x" (if the person did not upgrade,
maybe because of macOS 64-bits) or with \version "2.22.x"
when one is running 2.23.x (because one is a contributor
too). On the other hand, if the example does not compile,
it may be a real indication of a syntax incompatibility.
It is true that some minimal examples are given to demonstrate
an error, but then we can't guess everything. Compilation
failing is not a perfect heuristic, but it seems like
a reasonably dependable one. (Especially considering that
an error often causes others downstream, so this is just
one other such error in the cases where the heuristic fails.)

Jean





reply via email to

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