Apple annonce l’open source de Swift Build
(swift.org)- Swift gagne en popularité comme langage prenant en charge diverses plateformes, et peut être utilisé sur de nombreux appareils embarqués et systèmes d’exploitation
- Apple publie en open source Swift Build, un moteur de build puissant et extensible
- Swift Build est utilisé comme moteur de build de Xcode, et sert également à la « compilation des apps de l’App Store ainsi que des systèmes d’exploitation d’Apple ».
- La compilation ciblant Linux et Windows est également prise en charge
-
Fonctionnalités clés de Swift Build
- Un système de build transforme la description d’un projet et son code source en artefacts de sortie comme des outils en ligne de commande, des bibliothèques ou des applications
- Swift Build est un composant d’infrastructure qui planifie et exécute les builds demandés par des clients de niveau supérieur comme Swift Package Manager ou Xcode
- Grâce à une intégration étroite avec le compilateur Swift, il coordonne de manière fiable et efficace la compilation des projets Swift
- Il prend en charge différents types de produits et propose des options avancées de configuration de build
- Il inclut des optimisations du graphe de build afin de maximiser le parallélisme lors de la compilation de code Swift et C
-
Feuille de route de Swift Build
- Comparé au moteur de build de Xcode, celui de Swift Package Manager reste relativement simple
- Sur les plateformes Apple, l’existence de deux méthodes différentes pour compiler les packages a entraîné de la confusion chez les utilisateurs
- Apple veut résoudre ce problème en intégrant le moteur de build de Xcode aux projets Swift et en le développant en open source avec le compilateur Swift
- SwiftPM a ainsi l’opportunité de fournir un moteur d’exécution de build unifié sur toutes les plateformes
- Ce changement sera transparent pour les utilisateurs et conservera une compatibilité totale avec tous les packages existants
- Il pose les bases pour proposer de nouvelles fonctionnalités et améliorations sur l’ensemble des plateformes et des outils
- Soumission d’une PR pour intégrer Swift Build comme moteur de build alternatif de SwiftPM
- L’objectif est d’achever, avec la communauté, l’intégration du système de build afin que tous les modèles de projet et toutes les plateformes bénéficient des futures améliorations des outils
-
Appel à participation
- L’équipe se réjouit de collaborer avec la communauté pour continuer à faire évoluer la manière de compiler le code Swift.
- Le dépôt
swift-buildest disponible dans l’organisation Swift sur GitHub, avec un README et une documentation expliquant comment le compiler et y contribuer. - Les contributions via pull requests et issues sont les bienvenues, et les retours comme les idées d’amélioration sont attendus sur les forums Swift.
- Il s’agit d’un nouveau chapitre passionnant pour le système de build de Swift, qui devrait permettre de libérer tout le potentiel de Swift.
4 commentaires
La page 12 de https://llvm.org/devmtg/2016-11/… me semble contenir l’essentiel.
Modèle traditionnel de compilateur/système de build UNIX
• Le compilateur s’exécute comme un processus séparé
• Mécanismes primitifs pour communiquer les dépendances
• Pipeline d’entrée/sortie fixe défini par la ligne de commande
• C’est une API...
• ... et nous ne l’avons pas changée depuis des décennies
• Nous ❤ casser les API
Du côté de Java, il semble exister une API qui indique les dépendances entre les morceaux de code, de sorte que les outils de build sachent comment réaliser un incremental build,
ex : Gradle
Il semble qu’il faille aller dans cette direction pour les builds natifs aussi.
Donc... en résumé, ça veut dire que Xcode est toujours une vraie daube, comme avant ?
Bouhouhou...
zzz
Avis Hacker News
L’idée que Swift est « bon pour tout, mais meilleur sur les plateformes Apple » peut nuire au langage. Cela n’attire pas davantage de monde dans l’écosystème Swift
Swift est un langage sympa
La situation de Swift rappelle les débuts de C#
Il serait souhaitable que Swift soit construit sur LLVM standard plutôt que sur le fork LLVM d’Apple
Swift devrait viser à se détacher de Xcode
La nouvelle release de SwiftPM offre l’opportunité de fournir un moteur d’exécution de build unifié sur toutes les plateformes
On se demande si cela peut ouvrir la voie à un développement Swift possible sans Xcode
On ne sait pas clairement à quel point Swift Build est bien intégré avec les outils de Swift et son serveur de langage
Heureux de voir Swift gagner en indépendance vis-à-vis d’Apple
URLSession.shared.datane compilait pas sous Linux, ce qui a poussé à passer à un autre langageOn se demande si Swift prend vraiment au sérieux les systèmes embarqués