swiftlang/swift : le dépôt du langage de programmation Swift
Swift est un langage de programmation système haute performance à la syntaxe claire et moderne, sûr en mémoire par défaut, avec un accès transparent au code C et Objective-C existant.
En bref
- De quoi s’agit-il ?
- Présentation du dépôt du langage Swift, de son processus de contribution, des scripts de construction de toolchain et des ressources documentaires.
- À qui s’adresse-t-il ?
- Le README oriente les utilisateurs vers swift.org pour la documentation du langage et vers le dossier docs du dépôt pour les détails internes du compilateur, tout en proposant des étapes concrètes de construction, d'installation et de dépannage.
- Puis-je l’utiliser commercialement ?
- Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Le dépôt a reçu de nouveaux commits au cours des dernières 24 heures.
- En quel langage est-il écrit ?
- Principalement Swift, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Objectif du dépôt et caractéristiques du langage
swiftlang/swift est le dépôt officiel du langage de programmation Swift. Le README décrit Swift comme un langage de programmation système haute performance avec une syntaxe propre et moderne, un accès transparent au code et aux frameworks C et Objective-C existants, et une sécurité mémoire par défaut. Il insiste sur le fait que Swift n'est pas un langage dérivé du C ; il s'agit plutôt d'un langage indépendant inspiré d'Objective-C et d'autres langages, regroupant des fonctionnalités de base telles que le contrôle de flux, les structures de données et les fonctions, ainsi que des constructions de haut niveau comme les objets, les protocoles, les fermetures et les génériques. Le README indique également que Swift adopte les modules, éliminant le besoin d'en-têtes et la duplication de code qu'ils entraînent. Ces descriptions proviennent directement du README ; les chiffres des métadonnées (étoiles, forks, problèmes ouverts) indiquent l'activité du dépôt mais ne prouvent pas directement la qualité ou les performances du langage.
Directives de contribution et code de conduite
Le README accueille et encourage les contributions, dirigeant les contributeurs vers le guide Contributing to Swift sur swift.org et exigeant que les modifications soient testées avant de soumettre une pull request, conformément aux directives du projet pour contribuer au code. Pour favoriser une communauté inclusive, Swift a adopté le code de conduite défini par Contributor Covenant, que le README dit être utilisé dans de nombreuses communautés open source et qui exprime bien les valeurs du projet. Pour les premiers contributeurs, le dépôt inclut un guide à docs/HowToGuides/FirstPullRequest.md. Le README ne précise pas le processus de revue, les accords de licence des contributeurs ou les attentes des mainteneurs ; ces détails devraient être confirmés à partir des guides externes liés ou de la documentation du dépôt.
Commencer avec les constructions et le développement
Le README offre différents points de départ selon l'objectif. Ceux qui souhaitent contribuer des corrections et des fonctionnalités au compilateur peuvent suivre le guide First Pull Request. Ceux qui veulent construire le compilateur ponctuellement peuvent suivre le guide Getting Started. Ceux qui veulent construire une toolchain ponctuellement doivent suivre le guide Getting Started jusqu'à la section « Building the project », puis utiliser la section Swift Toolchains. Il existe aussi une FAQ pour les questions courantes. Le README ne liste pas les dépendances système ni les versions minimales de Xcode, mais il renvoie à la section de dépannage du guide Getting Started pour les problèmes de construction, et mentionne que passer --clean ou --reconfigure à build-script peut résoudre certains problèmes liés à Xcode.
Le script build-toolchain et ses options
Les toolchains Swift sont créées à l'aide du script utils/build-toolchain, également utilisé par l'IC de swift.org pour produire des instantanés et permettant de reproduire localement ces constructions à des fins de développement ou de distribution. Un appel typique est ./swift/utils/build-toolchain $BUNDLE_PREFIX, où $BUNDLE_PREFIX est préfixé à la date de construction pour former l'identifiant de bundle de la toolchain, par exemple com.example.YYYYMMDD. Le script crée un fichier nommé swift-LOCAL-YYYY-MM-DD-a-osx.tar.gz dans le répertoire courant. Le README liste plusieurs options désactivées par défaut : --dry-run pour un essai à blanc, --test pour tester la toolchain après compilation, --distcc pour distribuer la partie C++ de la construction avec distcc, et --sccache pour mettre en cache les artefacts de construction C++ pour les constructions ultérieures. D'autres options peuvent être ajoutées ; le README conseille de passer --help pour voir l'ensemble complet.
Installation d'une toolchain dans Xcode sur macOS
Pour les utilisateurs macOS, le README explique comment installer une toolchain construite dans Xcode. Tout d'abord, désarchivez la toolchain et copiez-la dans /Library/Developer/Toolchains/ ou ~/Library/Developer/Toolchains/, avec des exemples comme sudo tar -xzf swift-LOCAL-YYYY-MM-DD-a-osx.tar.gz -C / ou tar -xzf swift-LOCAL-YYYY-MM-DD-a-osx.tar.gz -C ~/. Le script génère également une archive contenant les symboles de débogage, qui peut être installée par-dessus l'archive principale pour permettre la symbolisation des plantages du compilateur ; la commande correspondante utilise un nom de fichier avec -symbols. Enfin, la toolchain locale est sélectionnée dans Xcode via Xcode->Toolchains. Ces instructions sont spécifiques à macOS ; le README ne couvre pas l'installation sur d'autres systèmes d'exploitation.
Dépannage des échecs de construction
En cas d'échec de construction, le README suggère de consulter la section « Troubleshooting build issues » du guide Getting Started et de s'assurer que la bonne version de Xcode est utilisée. Si des erreurs persistent après un changement de version de Xcode, passer --clean à build-script peut aider. Lorsqu'une nouvelle version de Xcode est publiée, --reconfigure peut mettre à jour la construction sans recompiler tout le projet. Ce sont les seules mesures de dépannage mentionnées dans le README ; il ne décrit pas de diagnostics plus approfondis, de catégories d'erreurs courantes ni la manière de demander de l'aide, comme soumettre des problèmes. Les lecteurs devront peut-être s'appuyer sur les guides liés ou les canaux communautaires pour un soutien supplémentaire.
Références documentaires et statut de la licence
Le README renvoie à swift.org/documentation/ pour apprendre le langage et à la fichier docs/README.md dans le dépôt pour la conception interne du compilateur. Les métadonnées du dépôt indiquent une licence Apache-2.0, mais le README et l'extrait de licence fournis ne contiennent pas le texte de la licence, de sorte que des conditions d'octroi spécifiques ne peuvent pas être citées ici. Le README ne traite pas des rapports de sécurité, des politiques de support ou des processus de publication. Pour tout cela, les utilisateurs devraient consulter swift.org ou d'autres fichiers du dépôt, car le README seul ne les établit pas.
Conclusion éditoriale
Le README oriente les utilisateurs vers swift.org pour la documentation du langage et vers le dossier docs du dépôt pour les détails internes du compilateur, tout en proposant des étapes concrètes de construction, d'installation et de dépannage. Les métadonnées du dépôt indiquent une licence Apache-2.0, mais le README lui-même ne décrit pas les termes de la licence ; les affirmations sur les performances et la sécurité de Swift doivent être vérifiées à l'aide de la documentation officielle et de benchmarks. Pour swift, adoptez ce projet seulement si les exigences décrites correspondent à votre contexte. Vérifiez avec les commandes, fichiers et versions cités dans le README, notamment main et la licence Apache-2.0, avant toute intégration durable.
Notes de la communauté