2.1 Why does the syntax change?

Often, syntax changes are made to make the input simpler to both read and write, but occasionally the changes are made to accommodate new features or enhancements to existing functions.

To illustrate this here is a real example:

All \paper and \layout property names were supposed to be written in the form first-second-third. However, in LilyPond version 2.11.60, it was noticed that the printallheaders property did not follow this convention. Should this property be left alone (confusing new users with an inconsistent format)? Or should it be changed (annoying old users with existing LilyPond input files)?

The decision was made to change the name of the property to print-all-headers, and by using the convert-ly command the old users had a way to automatically update their existing input files.

However, the convert-ly command cannot always be used to manage all syntax changes. In versions of LilyPond before 2.4.2, accents and non-English characters were entered using standard LaTeX notation. For example the French word for ‘Christmas’ was entered as No\"el. But in LilyPond 2.6 onwards, the special ë must be entered directly as a UTF-8 character. The convert-ly command cannot change LaTeX special characters into UTF-8 characters, so older LilyPond input files have to edited manually.

The conversion rules of the convert-ly command work using text pattern-matching and replacement (rather than ‘understanding’ the context of what it is changing within a given input file). This has several consequences:

LilyPond — Usage v2.21.6 (development-branch).