Releases: Galactic-Shrine/GsPlusPlus
Release list
0.27.0-alpha.8
Gs++ 0.27.0-alpha.8
Gs++ 0.27.0-alpha.8 est une préversion publique du langage, du compilateur et
de sa chaîne native x86-64. Elle étend la première passe sémantique
auto-hébergée d’alpha.7 jusqu’au typage récursif des membres, constructeurs,
agrégats et compositions d’expressions déjà déterminables dans l’AST compact.
Frontend auto-hébergé unifié
- regroupement du classificateur, du lexeur, de l’analyseur syntaxique et de
l’analyseur sémantique dans l’unique image publiqueFrontend.GsE; - conservation de leurs quatre
.GsObjcomme modules internes de construction,
sans installer plusieurs applications spécialisées ; - exposition des quatre points d’entrée depuis l’image unifiée pour maintenir
les comparaisons différentielles de chaque étape ; - maintien de seulement deux imports d’hôte : allocation et libération de
mémoire sousGalacticShrine::GsPP::Hote.
Résolution sémantique étendue
- sélection typée des surcharges libres et membres depuis les paramètres,
variables, littéraux, conversions et valeurs temporaires déjà connus ; - résolution des champs, alias, méthodes et opérateurs par
.ou->, avec
héritage simple et contrôle des accès publics, protégés ou privés ; - résolution surchargée des constructeurs locaux, délégations
soi(...),
appels de baseparent(...)et initialiseurs de champs ; - construction implicite des bases et champs objets, validation des valeurs de
champs par défaut et initialisation obligatoire des champs constants ; - reconstruction des dimensions de tableaux et validation récursive des
agrégats imbriqués, structures, unions et valeurs scalaires ; - propagation des types de retour des fonctions, méthodes, opérateurs membres,
comparaisons et opérateurs logiques à travers les expressions imbriquées ; - typage récursif des indexations de tableaux ou pointeurs, de l’adresse
&,
du déréférencement*et des appels par pointeur de fonction ; - prise en charge des tableaux de callbacks et des callbacks retournant un
autre callback, y compris les signatures imbriquées fermées par>>.
Le corpus différentiel compte maintenant quatre-vingt-quatre familles d’erreurs
sémantiques positionnées, comparées au bootstrap C++ pour le code, la ligne et
la colonne.
Contrats préservés
Cette préversion ne modifie ni les formats natifs ni l’ABI publique :
.GsObj,.GsAet.GsErestent en version 1.0 ;- leurs champs ABI restent fixés à 1 ;
- leurs signatures restent
GSOBJ:0,GSA:0etGSE:0; - le préfixe d’espace de noms public reste
GalacticShrine::GsPP::; - les tailles de
NoeudDeclaration,SymboleSemantique,
ResolutionSemantique, des requêtes et des résultats publics restent
inchangées.
Validation de la publication
La publication est validée sous Visual Studio 2026 et GNU/Linux avec :
- CTest complet sur les deux chaînes ;
- conformité portable 20/20 ;
- quatre scénarios de benchmark smoke sur chaque chaîne ;
- comparaison bit à bit de
Frontend.GsE; - vérification du format GsE 1.0 et de ses imports/exports ;
- extraction et utilisation indépendante de chaque paquet.
La preuve détaillée se trouve dans
Documentation/Validations/VALIDATION-GS-PLUS-PLUS-0.27.0-alpha.8.md.
Périmètre encore partiel
Alpha.8 ne termine pas le frontend 0.27. Restent notamment à migrer ou à
valider exhaustivement :
- les contraintes complètes des valeurs adressables et des indices ;
- l’arité et les paramètres de tous les appels indirects ;
- les opérateurs libres et toutes les combinaisons intrinsèques ;
- les conversions implicites, qualifications et liaisons de références ;
- les plans exécutables complets de construction, destruction et durée de vie ;
- la reconstruction fonctionnelle d’une génération suivante du compilateur.
Ressources
GsPlusPlus-0.27.0-alpha.8-Windows-x86_64.zip;GsPlusPlus-0.27.0-alpha.8-Linux-x86_64.tar.gz;SHA256SUMS.txt.
Chaque archive contient les outils, le SDK, les bibliothèques Gs++, les
exemples, le logo et la documentation Markdown. Après téléchargement, comparez
les empreintes avec SHA256SUMS.txt. Le commit et le tag de publication sont
signés. Cette version reste une préversion et ses interfaces de frontend
peuvent encore évoluer avant Gs++ 1.0.
0.27.0-alpha.7
Gs++ 0.27.0-alpha.7
Gs++ 0.27.0-alpha.7 est une préversion publique du langage, du compilateur et
de sa chaîne native x86-64. Elle ouvre la phase sémantique du frontend
auto-hébergé avec une première passe écrite en Gs++ et adopte le préfixe
d’espace de noms canonique GalacticShrine::GsPP::.
Nouveautés
- ajout de
AnalyseurSemantique.GsE, construit depuis un contrat et une
implémentation Gs++ indépendants du bootstrap à l’exécution ; - indexation des types, fonctions, variables globales, alias, champs, alias de
champs, énumérateurs, paramètres et variables locales depuis l’AST compact ; - résolution des paramètres, variables locales, globales simples ou
qualifiées, récepteurs de classesoi/this, récepteurs de baseparent
/superet groupes de fonctions surchargées utilisés comme cibles d’appel ; - détection positionnée des doubles déclarations et conflits de symboles, des
noms inconnus, des adresses de surcharge ambiguës et de l’absence de toute
fonction ; - comparaison différentielle avec le bootstrap C++ sur des corpus bilingues
valides et quinze familles d’erreurs sémantiques ; - contrat à stockage fourni par l’appelant, avec interrogation des capacités,
sorties partielles bornées et contrôle de l’arène mémoire ; - migration sans alias de compatibilité des API Gs++ de
Gs::…vers
GalacticShrine::GsPP::…; - convention des commentaires de bloc multilignes sous la forme
/** … **/,
vérifiée par le corpus différentiel du lexeur.
Le contrat sémantique fixe SymboleSemantique à 48 octets,
ResolutionSemantique à 32 octets, ResultatAnalyseSemantique à 56 octets et
RequeteAnalyseSemantique à 120 octets. L’image demande seulement les deux
imports d’hôte d’allocation et de libération sous
GalacticShrine::GsPP::Hote.
Rupture d’ABI des noms de symboles
Les projets étant encore locaux et reconstruisibles, cette préversion ne
conserve aucun alias Gs::. Toute source, bibliothèque ou image produite avec
une alpha antérieure doit être reconstruite. Les formats restent toutefois
inchangés : .GsObj, .GsA et .GsE sont en version 1.0, avec ABI 1 et les
signatures GSOBJ:0, GSA:0 et GSE:0.
Périmètre encore partiel
La première passe sémantique ne termine pas le frontend 0.27. La résolution
complète des types, la sélection typée des surcharges, les membres, les
conversions, les constructeurs, la visibilité, l’héritage et les règles de
durée de vie restent assurés par le bootstrap C++ ou à migrer.
Ressources
GsPlusPlus-0.27.0-alpha.7-Windows-x86_64.zip;GsPlusPlus-0.27.0-alpha.7-Linux-x86_64.tar.gz;SHA256SUMS.txt.
Chaque archive contient les outils, le SDK, les bibliothèques Gs++, les quatre
images GsE auto-hébergées, les exemples, le logo et la documentation Markdown.
Vérification
Après téléchargement, comparez les empreintes avec SHA256SUMS.txt. Le commit
et le tag de publication sont signés. Cette version reste une préversion et ses
interfaces de frontend peuvent encore évoluer avant Gs++ 1.0.
0.27.0-alpha.6
Gs++ 0.27.0-alpha.6
Gs++ 0.27.0-alpha.6 est une préversion publique du langage, du compilateur et
de sa chaîne native x86-64. Elle poursuit le frontend auto-hébergé en
construisant en Gs++ l’AST interne complet des expressions prises en charge par
le bootstrap syntaxique.
Nouveautés
- onze genres publics supplémentaires pour les littéraux, références de
variables, expressions unaires et binaires, affectations, appels, accès aux
membres, indexations, conversions et agrégats ; - analyse récursive avec les mêmes priorités et associativités que le frontend
bootstrap C++ ; - parcours préordre et relations parent-enfant depuis les déclarations ou
instructions jusqu’à chaque sous-expression ; - conservation des valeurs entières, chaînes décodées, noms qualifiés,
opérateurs et empreintes des types de conversion ; - distinction publique des littéraux booléens, des accès membres via pointeur
et des références à la baseparent/super; - expressions rattachées aux globales, énumérateurs, champs, listes
d’initialisation de constructeurs, retours, variables locales,
conditionnelles, boucles et instructions d’expression ; - comparaison différentielle sur des corpus français et anglais couvrant les
onze genres, les six opérateurs unaires et les dix-huit opérateurs binaires ; - trente-trois diagnostics syntaxiques positionnés comparés au bootstrap,
dont les erreurs de conversion, d’appel, d’indexation, d’agrégat et de
dépassement d’un entier 64 bits ; - maintien de la propreté de l’arène mémoire et de la reproductibilité entre
Windows et GNU/Linux.
Le contrat de nœud reste fixé à 64 octets. Les structures de requête et de
résultat restent respectivement à 80 et 48 octets. L’image produite ne demande
que les deux imports d’hôte explicites d’allocation et de libération.
Périmètre encore partiel
Cette alpha termine l’AST syntaxique des expressions dans la tranche
auto-hébergée actuelle, mais ne prétend pas terminer le frontend 0.27. Les
premières résolutions sémantiques restent assurées par le bootstrap C++ et
doivent encore être migrées avant de déclarer le frontend complet.
Les formats .GsObj, .GsA et .GsE restent en version 1.0, avec ABI 1 et
signatures GSOBJ:0, GSA:0 et GSE:0.
Ressources
GsPlusPlus-0.27.0-alpha.6-Windows-x86_64.zip;GsPlusPlus-0.27.0-alpha.6-Linux-x86_64.tar.gz;SHA256SUMS.txt.
Chaque archive contient les outils, le SDK, les bibliothèques Gs++, les trois
images GsE auto-hébergées, les exemples, le logo et la documentation Markdown.
Vérification
Après téléchargement, comparez les empreintes avec SHA256SUMS.txt. Le commit
et le tag de publication sont signés. Cette version reste une préversion et ses
interfaces de frontend peuvent encore évoluer avant Gs++ 1.0.
0.27.0-alpha.5
Gs++ 0.27.0-alpha.5
Gs++ 0.27.0-alpha.5 est une préversion publique du langage, du compilateur et
de sa chaîne native x86-64. Elle fait progresser le frontend auto-hébergé en
construisant en Gs++ la hiérarchie des blocs et instructions des fonctions et
des membres exécutables de classes.
Nouveautés
- blocs de fonction et blocs imbriqués dans l’AST auto-hébergé ;
- instructions
retourner, instructions d’expression et variables locales ; - conditionnelles
si/sinonet bouclestantque, avec branches imbriquées ; - relations parent-enfant en préordre entre fonction, bloc, contrôle et
instruction ; - conservation de la présence d’une expression, d’une branche
sinon, d’un
initialiseur local ou d’une construction explicite ; - six genres de nœuds et trois drapeaux publics supplémentaires, sans changer
la taille du contrat ABI ; - alias bilingues génériques pour employer le nœud compact comme
NoeudSyntaxique/SyntaxNode; - comparaison différentielle avec le frontend bootstrap sur des corps français
et anglais structurellement équivalents ; - vingt-deux diagnostics syntaxiques positionnés comparés au bootstrap ;
- maintien de la propreté de l’arène mémoire et de la reproductibilité entre
Windows et GNU/Linux.
Le contrat de nœud reste fixé à 64 octets. Les structures de requête et de
résultat restent respectivement à 80 et 48 octets. L’image produite ne demande
que les deux imports d’hôte explicites d’allocation et de libération.
Périmètre encore partiel
Cette alpha ne prétend pas terminer le frontend 0.27. Les déclarations et la
hiérarchie des instructions sont représentées, mais les expressions sont
encore seulement délimitées et signalées par des drapeaux. Leur AST interne et
les premières étapes sémantiques restent à migrer.
Les formats .GsObj, .GsA et .GsE restent en version 1.0, avec ABI 1 et
signatures GSOBJ:0, GSA:0 et GSE:0.
Ressources
GsPlusPlus-0.27.0-alpha.5-Windows-x86_64.zip;GsPlusPlus-0.27.0-alpha.5-Linux-x86_64.tar.gz;SHA256SUMS.txt.
Chaque archive contient les outils, le SDK, les bibliothèques Gs++, les trois
images GsE auto-hébergées, les exemples et la documentation Markdown.
Vérification
Après téléchargement, comparez les empreintes avec SHA256SUMS.txt. Le commit
et le tag de publication sont signés. Cette version reste une préversion et ses
interfaces de frontend peuvent encore évoluer avant Gs++ 1.0.
0.27.0-alpha.4
Gs++ 0.27.0-alpha.4
Gs++ 0.27.0-alpha.4 est une préversion publique du langage, du compilateur et
de sa chaîne native x86-64. Elle achève la représentation compacte des
déclarations du frontend auto-hébergé en ajoutant les membres exécutables des
classes aux fonctions et données déjà couvertes.
Nouveautés
- méthodes, constructeurs, destructeurs et surcharges d’opérateurs dans l’AST
écrit en Gs++ ; - relations parent-enfant entre classes, membres exécutables et paramètres
explicitement présents dans la source ; - genres de nœuds dédiés et conservation de la visibilité, de la virtualité et
du remplacement ; - description des initialisations de base, de champs et des constructeurs
délégués par des drapeaux stables ; - délimitation bornée des corps et des arguments d’initialisation imbriqués ;
- diagnostics positionnés supplémentaires et comparaison différentielle avec
le frontend bootstrap sur des corpus français et anglais ; - maintien de la propreté de l’arène mémoire et de la reproductibilité entre
Windows et GNU/Linux.
Le paramètre soi que le bootstrap synthétise pour son traitement sémantique
n’est pas présenté comme un paramètre source. Le contrat
NoeudDeclaration reste fixé à 64 octets. Les structures de requête et de
résultat restent respectivement à 80 et 48 octets. L’image produite ne demande
que les deux imports d’hôte explicites d’allocation et de libération.
Périmètre encore partiel
Cette alpha ne prétend pas terminer le frontend 0.27. Toutes les déclarations
sont maintenant représentées, mais les corps et initialiseurs sont seulement
délimités. Leur AST d’instructions et d’expressions reste à migrer, avant les
premières étapes sémantiques auto-hébergées.
Les formats .GsObj, .GsA et .GsE restent en version 1.0, avec ABI 1 et
signatures GSOBJ:0, GSA:0 et GSE:0.
Ressources
GsPlusPlus-0.27.0-alpha.4-Windows-x86_64.zip;GsPlusPlus-0.27.0-alpha.4-Linux-x86_64.tar.gz;SHA256SUMS.txt.
Chaque archive contient les outils, le SDK, les bibliothèques Gs++, les trois
images GsE auto-hébergées, les exemples et la documentation Markdown.
Vérification
Après téléchargement, comparez les empreintes avec SHA256SUMS.txt. Le commit
et le tag de publication sont signés. Cette version reste une préversion et ses
interfaces de frontend peuvent encore évoluer avant Gs++ 1.0.
0.27.0-alpha.3
Gs++ 0.27.0-alpha.3
Gs++ 0.27.0-alpha.3 est une préversion publique du langage, du compilateur et
de sa chaîne native x86-64. Elle étend le frontend auto-hébergé aux
déclarations de données, après le lexeur et les fonctions libres livrés par les
deux premières préversions 0.27.
Nouveautés
- variables globales publiques, externes, initialisées et en tableau dans
l’AST écrit en Gs++ ; - structures, unions et classes de données avec champs, visibilité et héritage
simple ; - énumérations, énumérateurs, alias de déclarations et alias de champs ;
- nœuds parents-enfants et empreintes de types normalisées entre les syntaxes
française et anglaise ; - délimitation bornée des corps et initialiseurs imbriqués ;
- diagnostics positionnés supplémentaires et contrôle de la propreté de
l’arène mémoire ; - comparaison différentielle avec le frontend bootstrap sur Windows et Linux.
Le contrat NoeudDeclaration reste fixé à 64 octets. Les structures de requête
et de résultat restent respectivement à 80 et 48 octets. L’image produite ne
demande que les deux imports d’hôte explicites d’allocation et de libération.
Périmètre encore partiel
Cette alpha ne prétend pas terminer le frontend 0.27. Les méthodes,
constructeurs, destructeurs et opérateurs de classes sont encore refusés par
l’analyseur auto-hébergé. Les corps et initialiseurs sont délimités, mais leur
AST d’instructions et d’expressions reste à migrer.
Les formats .GsObj, .GsA et .GsE restent en version 1.0, avec ABI 1 et
signatures GSOBJ:0, GSA:0 et GSE:0.
Ressources
GsPlusPlus-0.27.0-alpha.3-Windows-x86_64.zip;GsPlusPlus-0.27.0-alpha.3-Linux-x86_64.tar.gz;SHA256SUMS.txt.
Chaque archive contient les outils, le SDK, les bibliothèques Gs++, les trois
images GsE auto-hébergées, les exemples et la documentation Markdown.
Vérification
Après téléchargement, comparez les empreintes avec SHA256SUMS.txt. Le commit
et le tag de publication sont signés. Cette version reste une préversion et ses
interfaces de frontend peuvent encore évoluer avant Gs++ 1.0.
0.27.0-alpha.2
Gs++ 0.27.0-alpha.2
Gs++ 0.27.0-alpha.2 est une préversion publique du langage, du compilateur et
de sa chaîne native. Elle poursuit l’auto-hébergement du frontend avec une
première représentation AST écrite en Gs++.
Nouveautés principales
- nouvelle image
AnalyseurDeclarations.GsE; - AST compact de 64 octets par nœud, à stockage fourni par l’appelant ;
- analyse des fonctions libres, paramètres et espaces de noms ;
- prise en charge des types natifs bilingues, types qualifiés, qualificatifs,
pointeurs, références et tableaux fixes ; - construction des jetons et de l’AST de travail dans l’arène hébergée ;
- interrogation de capacité et sorties bornées ;
- diagnostics positionnés et propagation distincte des erreurs lexicales ;
- comparaison différentielle avec l’analyseur C++ de bootstrap ;
- images
Lexeur.GsEetAnalyseurDeclarations.GsEidentiques entre les
constructions MSVC et GNU.
Validation
- Windows x64, Visual Studio 2026/v145 : 3/3 CTest ;
- GNU/Linux x86-64 : 4/4 CTest ;
- conformité portable : 20/20 sur les deux chaînes ;
- benchmark fonctionnel smoke : 4/4 scénarios sur les deux chaînes ;
AnalyseurDeclarations.GsEvalide en format GsE 1.0, ABI 1, avec deux
imports d’hôte explicites.
Téléchargements
GsPlusPlus-0.27.0-alpha.2-Windows-x86_64.zip;GsPlusPlus-0.27.0-alpha.2-Linux-x86_64.tar.gz;SHA256SUMS.txt.
Les paquets contiennent les outils natifs, le SDK, les bibliothèques Gs++, les
trois images auto-hébergées, les exemples, les README français et anglais, la
documentation Markdown et la licence MPL-2.0.
Compatibilité
Les formats GsObj, GsA et GsE restent en version 1.0. Les champs ABI restent à
1 et la signature de liaison reste GsAbi:x64-ms-v1. Les signatures binaires
restent GSOBJ:0, GSA:0 et GSE:0.
Limites connues
Le frontend auto-hébergé demeure partiel. Cette version ne migre pas encore
les structures, classes, unions, énumérations, alias, variables globales,
instructions, expressions ni l’analyse sémantique. Les corps de fonctions
sont seulement délimités par leurs accolades dans la nouvelle tranche.
Cette préversion est destinée à l’évaluation et au développement. Elle ne doit
pas être présentée comme Gs++ 1.0 ni comme un compilateur entièrement
auto-hébergé.
0.27.0-alpha.1
Gs++ 0.27.0-alpha.1
Première préversion publique autonome du compilateur, du SDK et des
bibliothèques Gs++.
Cette version est publiée comme alpha : le compilateur natif actuel et la
tranche livrée sont testés, mais le frontend auto-hébergé 0.27 n’est pas encore
complet et les interfaces peuvent évoluer avant Gs++ 1.0.
Points principaux
- nouveaux projets
.GsPjet.GsProjectau format XML 1.0 ; - nouvelles solutions
.GsPsau format XML 1.0 ; - vocabulaire XML français et anglais, validation stricte et chemins relatifs
au document ; - refus de l’ancien prototype texte
clé = valeur; - construction CMake autonome sous Windows et Linux ;
- chaîne Windows alignée sur Visual Studio 2026 et le toolset MSVC v145 ;
- README produit moderne en français et version anglaise équivalente ;
- classificateur de mots-clés et lexeur auto-hébergés avec test différentiel ;
- formats GsObj/GsA/GsE conservés en version 1.0, ABI conservée à 1 ;
- signatures internes conservées :
GSOBJ:0,GSA:0,GSE:0.
Indépendance de ShrineOS
Le dépôt, le graphe CMake et les paquets ne contiennent ni SanctuaireSE ni
Noyau.GsE. Gs++ peut être construit et testé comme produit autonome. ShrineOS
pourra consommer Gs++ séparément, sans dépendance inverse du compilateur vers le
noyau.
Validation
- Windows / Visual Studio 2026 : 3/3 CTest, conformité 20/20 ;
- Linux / GNU : 4/4 CTest, conformité 20/20 ;
- benchmarks smoke : 4/4 scénarios sur chaque hôte ;
- CI GitHub : Windows et Linux réussis ;
Lexeur.GsEidentique entre MSVC et GNU :
583a2a8c4b31fc742548e54831df51dd6d7baea2a52a72d28c4bf5072a32aa0a.
La preuve détaillée se trouve dans
Documentation/Validations/VALIDATION-GS-PLUS-PLUS-0.27.0-alpha.1.md.
Le schéma XML normatif est décrit dans
Documentation/FORMAT_PROJETS_GS_PLUS_PLUS_1.0.md.
Paquets
GsPlusPlus-0.27.0-alpha.1-Windows-x86_64.zip;GsPlusPlus-0.27.0-alpha.1-Linux-x86_64.tar.gz;SHA256SUMS.txtpour vérifier les téléchargements.
Chaque paquet contient les quatre outils natifs, les en-têtes SDK,
GsSysteme.GsA, GsHebergee.GsA, les images auto-hébergées, les sources des
bibliothèques, les exemples et la documentation Markdown.
Licence : Mozilla Public License 2.0.