Apple libère l’outil de migration Swift

12/07/2017
logo du language Swift

Apple publie son Swift Language Migrator inclus dans l’environnement de développement de la firme à la pomme Xcode 9. Ce dernier a été récemment annoncé à la WWDC 2017.

3 passes pour une nouvelle syntaxe

Complètement réécrit pour faire partie entièrement du compilateur, l’outil gère des projets contenant à la fois des codes dans la syntaxe Swift 3.2 et Swift 4. L’outil de migration effectue son travail au travers une série de plusieurs passes. La première dénommée est exécutée lorsque le compilateur ne peut pas vérifier le type du fichier principal. Lorsque cela se produit, l’outil applique toutes les suggestions de correctifs du compilateur et tente le processus jusqu'à deux fois dans le but de produire une représentation AST du code (arbre syntaxique abstrait). La seconde passe, la passe nommée AST est effectuée après le précorrectif si la migration concerne un code précédent Swift 4. Elle inclut la prise en compte des modifications au niveau de l'API à partir du SDK précédent, de sorte que le code source est adapté au nouveau SDK API. La dernière passe essaie d'appliquer toutes les suggestions de correctifs fournies par le compilateur en mode Swift 4. Cette étape est exécutée jusqu'à sept fois, car à chaque étape, les nouveaux problèmes peuvent devenir visibles. Pour les premières et dernières phases, l’outil appliquera par défaut toutes les corrections, associées à des erreurs, tandis que la correction associée aux avertissements est optionnelle.

Intégration dans Xcode

Un assistant intégré à Xcode 9 permettra de mettre à niveau un projet vers la syntaxe Swift 4. Cependant le guide de migration indique clairement que tous les projets doivent être d’abords validés en langage Swift 3.2. Il ne faudra pas espérer que le processus de migration d’un code base produise automatiquement un projet compilable. Les notes de version de Xcode9 (disponibles pour les développeurs enregistrés sur le programme Apple) listent l’ensemble des problèmes connus à ce jour dans le processus de migration.

comments powered by Disqus
top