À propos de WG21, Kona 2023 (novembre)

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 :

Jour 5 – 11 novembre 2023

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 Polls

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.

1. Accept as a Defect Report and apply the proposed resolution of all issues in P3046R0 (Core Language Working Group "ready" Issues for the November, 2023 meeting) to the C++ Working Paper

(unanime)

2. Accept as a Defect Report and apply the changes in P2308R1 (Template parameter initialization) to the C++ Working Paper

(unanime)

3. Apply the changes in P2662R3 (Pack Indexing) to the C++ Working Paper

(unanime; cool!!!)

4. Apply the changes in P2864R2 (Remove Deprecated Arithmetic Conversion on Enumerations From C++26) to the C++ Working Paper

(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 polls

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.

1. Apply the changes for all Ready and Tentatively Ready issues in P3040R0 (C++ Standard Library Issues to be moved in Kona, Nov. 2023) to the C++ working paper

(unanime)

2. Apply the changes in P0543R3 (Saturation arithmetic) to the C++ working paper

(unanime)

3. Apply the changes in P2407R5 (Freestanding Library: Partial Classes) to the C++ working paper

(unanime)

4. Apply the changes in P2546R5 (Debugging Support) to the C++ working paper

(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

5. Accept as a Defect Report and apply the changes in P2905R2 (Runtime format strings) to the C++ working paper

(unanime)

6. Apply the changes in P2918R2 (Runtime format strings II) to the C++ working paper

(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

7. Accept as a Defect Report and apply the changes in P2909R4 (Fix formatting of code units as integers (Dude, where’s my char?)) to the C++ working paper

(unanime)

8. Apply the changes in P0952R2 (A new specification for std::generate_canonical) to the C++ working paper

(unanime)

9. Apply the changes in P2447R6 (std::span over an initializer list) to the C++ working paper

(demande de vote; consensus)

10. Apply the changes in P2821R5 (span.at()) to the C++ working paper

(demande de vote; consensus). Je dois avouer être surpris de la demande de vote ici...

11. Apply the changes in P2868R3 (Remove Deprecated std::allocator Typedef From C++26) to the C++ working paper

(unanime)

12. Apply the changes in P2870R3 (Remove basic_string::reserve() From C++26) to the C++ working paper

(demande de vote; consensus)

13. Apply the changes in P2871R3 (Remove Deprecated Unicode Conversion Facets from C++26) to the C++ working paper

(demande de vote; consensus)

14. Apply the changes in P2819R2 (Add tuple protocol to complex) to the C++ working paper

(unanime)

15. Apply the changes in P2937R0 (Freestanding: Remove strtok) to the C++ working paper

(unanime)

16. Apply the changes in P2833R2 (Freestanding Library: inout expected span) to the C++ working paper

(unanime)

17. Accept as a Defect Report and apply the changes in P2836R1 (std::basic_const_iterator should follow its underlying type’s convertibility) to the C++ working paper

(unanime)

18. Apply the changes in P2264R7 (Make assert() macro user friendly for C and C++) to the C++ working paper

(demande de vote; consensus)

19. Apply the changes in P1673R13 (A free function linear algebra interface based on the BLAS) to the C++ working paper

(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)


Valid XHTML 1.0 Transitional

CSS Valide !