2.1 LilyPond est une langue vivante
La syntaxe de LilyPond change de temps en temps, que ce soit pour rendre les fichiers plus faciles à lire et à écrire, ou pour intégrer de nouvelles fonctionnalités.
En voici un exemple flagrant :
Tous les noms des propriétés de \paper
et \layout
sont
libellés sous la forme
premier-deuxième-troisième
. Nous avons
constaté, une fois la version 2.11.60 mise à disposition, que la
propriété printallheaders
ne respectait pas cette convention.
Aurions-nous dû la laisser telle que, au risque de dérouter les nouveaux
utilisateurs par cette exception au formatage, ou bien la modifier – ce
qui allait obliger ceux qui l’avaient déjà utilisée à se mettre en
chasse ?
Pour ce cas d’espèce, nous avons décidé de changer le nom de cette
propriété en print-all-headers
et de permettre à ceux qui avaient
utilisé l’ancienne syntaxe de modifier automatiquement leurs fichiers à
l’aide de notre utilitaire convert-ly
.
Malheureusement, convert-ly
ne peut pas réaliser toutes les
modifications. Par exemple, dans les versions de LilyPond antérieures à
la 2.4.2, les accents et les lettres non anglaises étaient entrées en
utilisant LaTeX – par exemple, No\"el
. À partir de la
version 2.6, le caractère ë
doit être entré directement dans le
fichier LilyPond comme caractère UTF-8. convert-ly
ne peut pas
changer tous les caractères LaTeX en caractères UTF-8 ; vous devez
mettre à jour vos vieux fichiers LilyPond manuellement.
Les règles de conversion de convert-ly
reposent sur la
recherche et le remplacement de motifs textuels plutôt que sur les
capacités intellectuelles de LilyPond, en conséquence de quoi :
- La fiabilité de la conversion dépend de la qualité même de chaque jeu de règles ainsi que sur la complexité des modifications respectives à apporter. Certaines conversions peuvent donc requérir une intervention manuelle ; la version de « départ » devrait toujours rester disponible pour comparaison.
- Seules des conversions à une syntaxe plus récente sont possibles ; aucune règle ne permet de revenir en arrière. La copie de travail d’un fichier LilyPond ne devrait donc être mise à jour que lorsque la version sur laquelle il repose n’est plus maintenue. Des système de gestion de version tels que Git permettent de se tenir à jour sur plusieurs versions.
- LilyPond, ainsi que Scheme, gèrent plutôt bien l’emplacement ou
l’absence d’espaces ; les règles utilisées par
convert-ly
tendent cependant à effectuer certains postulats en matière de style. Suivre le style adopté dans les différent manuels est un gage de mise à jour sans problème si l’on considère que ces manuels sont eux-même mis à jour avecconvert-ly
.