À propos du projet
Compiler Explorer est un site web interactif pour explorer comment le code source est traduit en assembleur. Les utilisateurs modifient le code dans un panneau et voient la sortie compilée en temps réel, ce qui le rend utile pour apprendre, enseigner, déboguer et comparer le comportement des compilateurs.
Les langages pris en charge incluent C, C++, C#, F#, Rust, Go, D, Haskell, Swift, Pascal, ispc, Python, Java et plus de 30 autres au total. Plusieurs compilateurs sont disponibles pour chaque langage, et la disposition de l'interface est configurable, utilisant GoldenLayout pour son système de panneaux. L'instance publique est disponible sur godbolt.org, et le projet peut également être exécuté en tant qu'instance locale.
Le projet a débuté en 2012 comme un moyen de montrer comment les constructions C++ correspondent à l'assembleur, et le site public rapporte désormais plus de 3 000 000 de compilations par semaine. Il est écrit en TypeScript sur Node.js. Une configuration locale typique sur Linux peut être démarrée avec make, qui installe les dépendances et sert l'application sur le port 10240. Une cible make dev permet le rechargement automatique et un démarrage plus rapide, et npm run dev est disponible comme alternative. La prise en charge des langages peut être restreinte au démarrage, par exemple uniquement C++.
La configuration est gérée via des fichiers clé=valeur dans etc/config, avec des fichiers *.local.properties qui remplacent les valeurs par défaut et sont exclus du contrôle de version. Un CE Properties Wizard peut détecter et configurer les compilateurs locaux pour de nombreux langages, et le projet infra séparé fournit une commande ce_install pour installer un grand ensemble de compilateurs. Pour les environnements d'entreprise ou hors ligne, le service de raccourcissement d'URL peut être remplacé par un module interne.
Une API RESTful permet des compilations programmatiques en assembleur et la liste des compilateurs disponibles, avec une documentation dans le dépôt. Le projet maintient une FAQ dans son wiki, un document de feuille de route, des directives de contribution, un code de conduite et une liste de contrôle pour les tests d'interface utilisateur. Le support communautaire est disponible via Discord, un canal Slack et des listes de diffusion publiques. Les domaines officiels incluent godbolt.org, godbo.lt et compiler-explorer.com, avec des sous-domaines fournissant un état local indépendant et des points d'entrée spécifiques aux langages.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.