Skip to content

Un avertissement sans issue est une plainte : dire quoi faire, pas seulement quoi - #54

Merged
Beennnn merged 1 commit into
mainfrom
claude/reprise-sans-binaires-fu4e2h
Sep 7, 2026
Merged

Un avertissement sans issue est une plainte : dire quoi faire, pas seulement quoi#54
Beennnn merged 1 commit into
mainfrom
claude/reprise-sans-binaires-fu4e2h

Conversation

@Beennnn

@Beennnn Beennnn commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Le message posé hier à la place de l'arbre expliquait exactement la plateforme — async-profiler, aucun binaire Windows, le reste est mesuré — et laissait le lecteur sans rien à faire. C'est ce qu'il a répondu le lendemain matin : « ce message n'est pas concret, il ne dit pas où est le problème ni comment le résoudre concrètement ».

Il a raison, et c'est la règle que ce projet applique partout ailleurs, jusque dans le conseil d'exclusion de Footprint : un avertissement sans issue est une plainte.

Avant / après

Avant

Le temps est échantillonné par async-profiler, qui ne publie aucun binaire pour Windows. Sur ce système l'outil le dit au lancement et mesure le reste : la couverture et les valeurs capturées ne sont pas touchées, et cet onglet est le seul qui reste vide.

Après

Le temps est échantillonné par async-profiler, qui ne publie aucun binaire pour Windows, et cette exécution a été mesurée sous Windows. Rien d'autre n'est touché : la couverture et les valeurs capturées sont complètes, dans l'onglet Code.

Pour obtenir l'arbre d'appels, relancer la même commande depuis un shell WSL, ou sur une machine Linux ou macOS — le jar, les options et le rapport ne changent pas. Sous WSL, donner à --out un chemin côté Linux plutôt que sous /mnt/c : le rapport écrit des milliers de petits fichiers, et cette traversée le rend lent.

Le piège /mnt/c est nommé parce qu'il est la conséquence directe du modèle de coût déjà mesuré dans ce dépôt : le prix est le nombre de fichiers multiplié par la latence d'un open, et une traversée 9p est précisément une latence par open.

Les cinq causes portent maintenant leur geste

Cause Geste
Recherche sans résultat vider le champ de recherche
Aucun profil : Windows WSL, Linux ou macOS — et le piège /mnt/c
Aucun profil : --level coverage relancer sans --level
Paquet masqué le bandeau au-dessus de l'arbre les rend
Profil sans source « L'analyse des sources » propose la ligne SOURCE_DIRS
Profil hors des classes analysées élargir --classes et --sources

ViewContractTest tient désormais les cinq gestes et non plus seulement les cinq diagnostics : une cause qui perdrait son issue casse la construction.

La console avait la même plainte

   ⚠️ timing measurements unavailable on this platform — coverage and values remain available

devient

   ⚠️ no call tree on Windows 11: async-profiler publishes no binary for it.
      Coverage and captured values are measured as usual. To obtain the tree, run
      the same command from WSL, or on a Linux or macOS machine.

Le nom du système remplace « cette plateforme » : sur la machine où on lit ça, il n'y a rien d'autre pour vérifier.

Vérification

  • Rendu comparé sur les 8 610 chaînes des dix-huit états des deux rapports de référence : 0 différence. La bande Windows est lue à part, sur un contexte forcé, dans les deux langues.
  • 296 tests, 72 vérifications de la recette locale.

🤖 Generated with Claude Code

https://claude.ai/code/session_01J956wjynbd7fkZx4HpjHzP


Generated by Claude Code

…ulement quoi

Le message posé hier à la place de l'arbre expliquait exactement la plateforme —
async-profiler, aucun binaire Windows, le reste est mesuré — et laissait le lecteur
sans rien à faire. C'est ce qu'il a répondu le lendemain matin : « ce message n'est
pas concret, il ne dit pas où est le problème ni comment le résoudre ». Il a raison,
et c'est la règle que ce projet applique partout ailleurs, jusque dans le conseil
d'exclusion de Footprint.

La branche Windows nomme donc WSL, dit que le jar et les options ne changent pas, et
donne le seul piège de cette route : garder --out côté Linux plutôt que sous /mnt/c,
parce que le rapport écrit des milliers de petits fichiers et que cette traversée est
lente. Les quatre autres causes avaient déjà leur geste ; ViewContractTest tient
maintenant les cinq gestes et non plus seulement les cinq diagnostics.

La ligne de console au lancement portait la même plainte — « timing measurements
unavailable on this platform » — et reçoit le même traitement, avec le nom du système
plutôt que « cette plateforme ».

Vérifié au rendu : 0 différence sur les 8 610 chaînes des dix-huit états, la bande
Windows étant lue sur un contexte forcé. 296 tests, 72 vérifications de recette.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J956wjynbd7fkZx4HpjHzP
@Beennnn
Beennnn marked this pull request as ready for review September 7, 2026 08:30
@Beennnn
Beennnn merged commit 3cd7a08 into main Sep 7, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants