À propos du projet
cx est un langage de programmation hybride de la famille C, alliant bas niveau et haut niveau, axé sur la performance à l'exécution et la productivité du développeur, dans cet ordre de priorité. Il est décrit comme simple et sans opinion, prenant en charge les styles de programmation impératifs, génériques, orientés données, fonctionnels et orientés objet. Il compile en code natif via LLVM ou un backend C, sans ramasse-miettes ni runtime caché.
Le projet approche de sa version 0.1. Le README note que certaines fonctionnalités prévues ne sont pas encore implémentées, que les fonctionnalités implémentées peuvent changer et que des bogues existent. La documentation est disponible sur le site Web du projet et sous forme Markdown dans le dossier docs, avec des exemples de code dans le répertoire examples. Les questions et discussions sont dirigées vers les problèmes GitHub ou le serveur Discord du projet.
La compilation à partir des sources nécessite un compilateur C++20, CMake 3.16 ou plus récent, et LLVM/Clang 23. Le README fournit des instructions spécifiques à la plateforme pour Linux (installations basées sur apt et archives LLVM précompilées), macOS (Homebrew) et Windows (binaires LLVM précompilés). La compilation produit les binaires cx et cx-lsp. Le serveur de langage prend en charge les diagnostics, le survol, l'accès à la définition, les complétions, la recherche de références et la mise en surbrillance sémantique dans les éditeurs compatibles LSP.
Les contributions sont les bienvenues via les problèmes GitHub et un tableau Trello. Les tests utilisent lit et psutil installés via pip, puis une cible CMake check exécute la suite complète via CTest, couvrant les tests lit/compilateur, les programmes d'exemple sur les backends LLVM et C, les extraits de documentation et les tests de bout en bout du serveur de langage. Les sous-ensembles peuvent être exécutés avec des filtres ctest. Le style de code C++ est imposé par ClangFormat via les cibles CMake format et lint. Un frontend WebAssembly et une chaîne d'outils C dans le navigateur prennent en charge un terrain de jeu navigateur et un site Web, avec un script de construction pour le développement local. Le projet est sous licence MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.