Demat'iNal,
En fin de semaine dernière, alors que je faisais un petit patch de modernisation du code de Firefox, une relectrice a pointé du doigt que depuis C++20, je pouvais utiliser std::remove_cvref_t<...> au lieu de std::remove_cv_t<std::remove_reference_t<...>>.
Elle avait bien sûr raison, ça donne un code plus agréable à lire. Et comme je joue pas mal avec clang-tidy ces derniers temps, je me suis dit « mais généralisons cette règle », comme ça on pourra l'appliquer à la base de code toute entière automatiquement et garantir l'absence de régression.
Aussitôt vim, aussitôt fait, PR ouverte en début de semaine et acceptée aujourd'hui. Le patch pour Firefox est dans les tuyaux également.
Tous ces changements sont bien mineurs, et il n'y a pas de quoi en faire un flan, mais l'histoire est jolie : en un tour de semaine, une remarque de relectrice est généralisée dans un outil dont tout le monde peut profiter.
Et je ne peux m'empêcher de remarquer que si un tout autre outil appartenant à une classe de programme ayant le vent en poupe actuellement aurait pu faire le travail, l'approche illustrée dans ce journal a l'avantage d'être :
- déterministe
- reproductible
- open-source
- gratuite
- gratifiante à développer
no sooner said than done

# Joli travail, effectué avec élégance
Posté par Sébastien Wilmet (site web personnel, Mastodon) . Évalué à 5 (+3/-0).
Ça c'est une bonne pratique, de contribuer aux couches qui correspondent le mieux au problème à résoudre.
Souvent, quand il y a des bugs dans une bibliothèque, c'est plus facile de se dire : je vais contourner le bug dans mon code, même si c'est vraiment pas propre. Eh bien, il y a moyen de mieux faire, au minimum rapporter le bug dans le projet amont est déjà une première étape.
Donc, ce journal illustre qu'il y a moyen de bien faire les choses :-)
(bon OK, contribuer à LLVM/Clang n'est pas donné à tout le monde, mais en commençant par lire et modifier un peu le code d'une petite bibliothèque bien documentée mais avec l'un ou l'autre bug, ça peut être un bon point de départ).
# Merci !
Posté par ilhooq . Évalué à 3 (+3/-0).
Merci pour ce partage d'expérience des coulisses du développement de Firefox !
La compréhension du patch ne semble pas à la portée d'un amateur mais au moins ça nous montre tous le processus de validation et de collaboration au sein de l'équipe.
Je découvre par ailleurs Phabricator. Serait-il possible d'en savoir plus sur cet outil ?
[^] # Re: Merci !
Posté par serge_sans_paille (site web personnel) . Évalué à 4 (+2/-0).
Phabricator est un outil de revue de code que j'ai croisé par deux fois : il était utilisé par LLVM avant son passage à Github comme l'explique l'ancienne url
Mozilla maintient un fork de l'outil dont le support n'est plus garanti upstream. Un scenario d'usage classique est la soumission de patch à travers un outil en ligne de commande (historiquement
arcanist), la relecture de code via une interface web, la possibilité de suivre les différentes révisions d'un patch de manière claire (les commentaires sont attachées à chaque version), de créer des patchset.Il est possible de créer des règles pour gérer qui revoit un patch en fonction des fichiers touchés etc. Du point de vue utilisateur, c'est un chouette outil. Je n'ai pas d'avis sur la partie administration.
[^] # Re: Merci !
Posté par thoasm . Évalué à 4 (+1/-0).
Utilisé aussi chez Wikimedia : https://phabricator.wikimedia.org/
# Petite coquille (une coquillette ?)
Posté par serge_sans_paille (site web personnel) . Évalué à 2 (+0/-0).
Le billet mentionne
std::remove_cv_ref_tmais il fallait bien sûr lirestd::remove_cvref_t. Et il manque un espace après le «^^![^] # Re: Petite coquille (une coquillette ?)
Posté par Benoît Sibaud (site web personnel) . Évalué à 3 (+0/-0).
Corrigé pour la première phrase. Je n'ai pas compris la seconde phrase.
[^] # Re: Petite coquille (une coquillette ?)
Posté par serge_sans_paille (site web personnel) . Évalué à 2 (+0/-0).
«mais généralisons cette règle » => « mais généralisons cette règle »
Merci !
[^] # Re: Petite coquille (une coquillette ?)
Posté par Benoît Sibaud (site web personnel) . Évalué à 3 (+0/-0). Dernière modification le 29 juin 2026 à 07:43.
Corrigé, merci. Fait chaud non ? Ça paraît tellement évident maintenant alors qu'hier je cherchais où était la syntaxe C++ en
^^!et qu'est-ce que ça voulait bien dire, est-ce qu'on parlait>>vs> >(apparemment les compilos sont tout à fait capables de différencier du double templating d'un opérateur>>, bref je n'y étais pas du tout.[^] # Re: Petite coquille (une coquillette ?)
Posté par shbrol . Évalué à 3 (+2/-0). Dernière modification le 29 juin 2026 à 13:59.
The Reflection Operator (
^^), aussi nommé "cat ears operator" ;-)[^] # Re: Petite coquille (une coquillette ?)
Posté par Benoît Sibaud (site web personnel) . Évalué à 4 (+1/-0).
Y a un traité de non-prolifération de la ponctuation sur les claviers pour éviter que le comité du C++ ne rajoute de nouveaux opérateurs ? Il faudrait urgemment les désarmer. Un jour y en a un ou une qui va se lever et se dire tiens si je rajoutais
:(){ :|:& };:comme opérateur pour avoir chaud l'hiver.# Douche
Posté par Faya . Évalué à 5 (+3/-0).
Je n'ai rien d'intelligent à dire sur cette performance (à part "merci"). Donc je relève cette coquille très drôle dans les échanges sur le patch de Firefox :
C'est quand tu check si ça a l'aspect d'un douche-bag ou bien ?
[^] # Re: Douche
Posté par serge_sans_paille (site web personnel) . Évalué à 4 (+2/-0).
Quand il fait chaud, le meilleur endroit pour réfléchir est certainement la douche froide !
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.