5 points par GN⁺ 2025-02-02 | 4 commentaires | Partager sur WhatsApp
  • 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-build est 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

 
ganadist 2025-02-03

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.

 
nemorize 2025-02-02

Donc... en résumé, ça veut dire que Xcode est toujours une vraie daube, comme avant ?
Bouhouhou...

 
roxie 2025-02-02

zzz

 
GN⁺ 2025-02-02
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

    • Les concurrents sont plus open source, ont plus de contributeurs et un périmètre plus restreint
    • Tant que des outils comme Xcode ne seront pas open source, l’écart avec les autres langages continuera de se creuser
  • Swift est un langage sympa

    • En cas d’erreur « index out of range », le message d’erreur n’indique pas où elle s’est produite
    • Golang indique le fichier et le numéro de ligne où l’erreur s’est produite
  • La situation de Swift rappelle les débuts de C#

    • C# aussi a été présenté comme open source et cross-platform, sans être à la hauteur des attentes
  • 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

    • Xcode est en partie surévalué avec sa note de 3,1
  • La nouvelle release de SwiftPM offre l’opportunité de fournir un moteur d’exécution de build unifié sur toutes les plateformes

    • Ce sera la clé pour construire l’écosystème multiplateforme de Swift
  • 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

    • Le serveur de langage est déjà open source
  • Heureux de voir Swift gagner en indépendance vis-à-vis d’Apple

    • Sur un projet cross-platform, URLSession.shared.data ne compilait pas sous Linux, ce qui a poussé à passer à un autre langage
  • On se demande si Swift prend vraiment au sérieux les systèmes embarqués