Je participe à cette rencontre à distance (elle se passe à Hawaii et il n'était pas possible pour moi d'y aller). J'ai aussi été extrêmement occupé toute la semaine alors j'ai suivi les travaux de manière épisodique, avec une très faible contribution. Je ne tiendrai donc aujourd'hui que les détails de la plénière du samedi.
Les principaux thèmes de la rencontre sont la progression des travaux pour C++ 26.
Tout ce qui suit est anonymisé et simplifié, dans le respect du code de conduite d'ISO en vigueur lors de nos rencontres.
Ce document est incomplet (j'ai manqué de temps). Je compléterai dès que possible.
Pour les « journaux de voyage » d'autres participants, voir :
Nous avons eu une rencontre canadienne d'une trentaine de minutes hier soir. Un seul sujet semblait contentieux, soit p2864 (une « dé-dépréciation » d'un mécanisme de conversion implicite des énumérations lors d'opérations arithmétiques), avec des membres de la délégation canadienne contre et d'autres fortement pour.
La plénière débute à 13 h, heure de Montréal, donc 8 h à Kona. Nous sommes une quarantaine à participer à distance. John Spicer dirige la rencontre.
On fait le tour des rapports des divers SG et des WG. SG1 dit avoir travaillé sur une douzaine de propositions, et avoir réfléchir aux problèmes associés aux cas de OOTA (Out of Thin Air). SG4 essaie d'adapter le Networking TS aux efforts du côté des Senders & Receivers. SG5 est semi-dormant pour le moment (enjeux de publication de la TS avec ISO, donc efforts administratifs). SG6 a travaillé sur les concepts numériques et les unités de mesure (grosse semaine), avec certains enjeux (arrondis sur les nombres à virgule flottante, certains aspects des calculs sur les entiers) susceptibles d'entrer dans C++26. SG7 pense avoir espoir d'intégrer la réflexivité dans C++26 (wow, applaudissements!). SG9 continue de faire progresser les Ranges et a traité plusieurs propositions en vue de C++26. SG12 semble dormant et en quelque sorte intégré à EWG. SG14 s'est rencontré à CppCon mais pas cette semaine. SG15 travaille toujours en vue d'un Ecosystem TS et d'une meilleure intégration des modules (on parle d'intégrer SG2 à SG15, mais c'est pas décidé car il y a des tâches qui ne se recoupent pas). SG16 se rencontre souvent mais pas cette semaine (ils ont beaucoup de pain sur la planche; ce sont des héros!). EGWI a vu huit propositions, dont trois devraient leur revenir dans le futur et cinq qui ont été envoyées à EWG (des trucs pertinents!). LEWGI ne s'est pas rencontré séparément de LEWG. SG19 ne s'est pas rencontré cette semaine mais demeure actif. SG21 a travaillé fort (Timur Doumler a un jeune bébé et est parti plus tôt; il nous laisse une vidéo expliquant les décisions prises cette semaine.. J'ai hâte!); on compte avoir P2900, un Working Paper complet, pour la rencontre de Tokyo en mars prochain (applaudissements!). SG22 ne s'est pas rencontré mais a reçu des demandes. SG23 s'est rencontré et manipule des dossiers chauds; entre autres idées, les profils semblent retenus comme direction principale pour leurs travaux (intéressant).
EWG présente son rapport. Beaucoup de trucs là-dedans, dont certains ont été relayés à CWG. À noter, un effort concerté pour supprimer, ou à tout le moins documenter, les cas de comportement indéfini. On planifie se concentrer sur la réflexivité et les contrats à Tokyo, pour viser C++26 dans les deux cas.
LEWG présente son rapport. Ils se sont rencontrés toute la semaine durant. Plusieurs dossiers seront soumis à des votes électroniques, incluant std::hive (enfin!) et std::simd (cool!). Leur principal dossier était celui des politiques de LEWG (voir p2267 et p2979).
CWG a travaillé sur 44 dossiers, parfois en collaboration avec EWG pour choisir une direction (ça semble avoir été un succès). On mentionne avoir enfin dit ce qui se passe quand on déréférence un pointeur nul ou un one-past-the-end-pointer (c'était auparavant du comportement indéfini implicite, faute d'explication).
Les votes vont comme suit.
(unanime)
(unanime)
(unanime; cool!!!)
(demande de vote; consensus)
Il y avait aussi une autre motion au menu, « Apply the changes in P2748R3 (Disallow Binding a Returned Glvalue to a Temporary) to the C++ Working Paper » mais elle a été raturée (il y a un truc là-dedans qui posait problème et on s'en est rendu compte dans le courant de la semaine; ça reviendra à Tokyo).
LWG a travaillé sur plusieurs dossiers, en particulier l'API pour le BLAS qui est un effort colossal (autour de 1000 pages, mais LWG en discute régulièrement depuis plusieurs mois... le BLAS est un standard qui a du vécu, mais nous aurons une API contemporaine maintenant pour l'utiliser). On va travailler beaucoup sur p2300 (les Senders & Receivers) au cours des prochains mois; LWG pense devoir y passer pratiquement la moitié de son temps pour les deux prochaines années – c'est très différent du reste de la bibliothèque et ça demande beaucoup d'attention.
Les votes vont comme suit.
(unanime)
(unanime)
(unanime)
(demande de vote; consensus). On explique que la terminologie dans cette proposition est moins normative qu'à l'habitude dû à la nature de la proposition, mais qu'on a des pistes de solution
(unanime)
(demande de vote; consensus). Certaines questions techniques sont soulevées quant au recours à des types plutôt qu'à des fonctions; ces questions ont été posées lors des votes électroniques, mais LEWG explique que les commentaires saisis lors de votes électroniques sont traités comme des recommandations pour les auteurs
(unanime)
(unanime)
(demande de vote; consensus)
(demande de vote; consensus). Je dois avouer être surpris de la demande de vote ici...
(unanime)
(demande de vote; consensus)
(demande de vote; consensus)
(unanime)
(unanime)
(unanime)
(unanime)
(demande de vote; consensus)
(unanime, avec applaudissements!)
Le reste est de la routine; on prépare les prochaines rencontres (Tokyo, puis St-Louis et Wrocław – à mes oreilles de non-polonais, ça sonne comme Vrot-Vwaff), pour l'essentiel, et on ferme vers 14 h 45 heure de Montréal (9 h 45 heure de Kona)