Swift 5.9 est disponible

Par:
ftonic

mer, 20/09/2023 - 08:32

Swift arrive en version 5.9. Cette version est supportée par Xcode 15 actuellement en bêta. Le langage apporte un lot important d'améliorations et d'ailleurs l'équipe qualifie la 5.9 de version majeure. Elle ajoute les macros, intégration du langage dans un code C++, apparition des parameter packs. 

Les macros aident les développeurs à réduire les codes répétitifs. Son usage se veut le plus simple possible. On définit le code utilisé puis on lui donne un nom de macro sous la forme @Nom Macro puis on l'appelle dans le code par @Nom Macro. Les macros sont supportées sur macOS, Linux et bientôt sur Windows. Les parameters packs permettent d'écrire des types génériques et des fonctions. Un parameter pack est un code générique qui accepte toute sorte de types de paramètres. Pour mieux maîtriser la mémoire et la tuner finalement, le langage introduit l'opérateur consume. 

Le langage introduit aussi de nouvelles fonctionnalités de debug dans le compilateur et le LLDB. LLVB est un debugger appartenant au projet LLVM. C'est le debugger par défaut de Xcode. 

L'autre grosse nouveauté est l'interopérabilité C++. Désormais, Swift supporte l'interopérabilité bi-directionnelle avec C++ et Objective-C++. Ainsi, on peut appeler du code Swift dans C++ et inversement. Attention : tout n'est pas possible. D'autre part, la 5.9 fait des changements dans le gestionnaire de package : CompilerPluginSupport, embedInCode, SwiftPM. Ce dernier support le format bundle du Swift SDK. Sur la partie swift-syntax, outil de parsing du langage, plusieurs améliorations sont annoncées sur les erreurs , apparition du parsing incrémental et une documentation étendue. 

Sur la version Windows, Swift 5.9 promet plusieurs évolutions : nouveaux flags Windows sur la toolchain (-windows-sdk-root-windows-sdk-version-visualc-tools-root-visualc-tools-version). Le projet annonce aussi une meilleure stabilité des codes concurrents sous Windows. 

Pour plus de détails : swift.org/blog/swift-5.9-released