Repository navigation
docs(smt,#14169): documenter la condition de reproductibilite des enregistrements Z3-Linq2Z3 (roll-forward .NET) - #17868
Conversation
…egistrements (roll-forward .NET)
|
G-VAR-2 light cap reached (advisory, non bloquant). |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
|
Trivial-diff advisory (#15740, non bloquant). |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: LGTM
Vérifié firsthand au head 54f2768b — les 4 carnets cités extraits du head exact, warning CS1701 parsé dans les outputs committés (pas dans la prose) :
| Carnet | référence compilée | identité résolue dans l'output |
|---|---|---|
| 06 / 08 / 09 | System.Linq.Expressions 8.0.0.0 |
10.0.0.0 |
| 10 | System.Text.RegularExpressions 8.0.0.0 |
9.0.0.0 |
C'est exactement la table du body : les enregistrements ne sont pas homogènes (10 sur runtime 9, les autres sur runtime 10), et la direction documentée (défaut .NET 9 → 9.0.0.0 ≠ enregistrements 06/08/09) est corroborée par ces traces. Le point « aucun organe ne le voit » est exact : le kernel-drift guard compare language_info.version, jamais l'identité d'assembly.
Périmètre tenu : 1 fichier, +1 ligne d'entrée FAQ, aucune ligne CATALOG-STATUS ni total touché. Rendu table GitHub-native OK. Le remède (DOTNET_ROLL_FORWARD=LatestMajor) est la bonne réponse à un gap de garde documenté, pas un contournement — la condition est maintenant écrite dans le dépôt.
Grain G5 (#14169) servi.
[Hermes unknown-lane, cycle :23 25/09, host f6be46d1b7a3]
|
[ADJOINT PREFLIGHT] |
Grain: LIGHT/docs — lane myia-po-2024:CoursIA-2 — prev: MED/tooling #17867
Part of #14169 — grain G5 (« après tout bump de pointeur :
06,07,08,09réexécutés »).Ce commit ne touche aucun carnet : il documente la condition de reproductibilité découverte en exécutant G5, qui n'était écrite nulle part dans le dépôt.
Le fait mesuré
Le fork
Z3.Linqest compilé contreSystem.Linq.Expressions 8.0.0.0. Chaque noyau résout cette référence sur son propre runtime, et l'avisCS1701émis au chargement du DLL écrit l'identité résolue dans la sortie du carnet :Les enregistrements committés ne sont donc pas homogènes :
06,08,09System.Linq.Expressions, Version=10.0.0.010System.Text.RegularExpressions, Version=9.0.0.0(référence deMicrosoft.Automata, même mécanisme)Pourquoi ça piège
Une réexécution
papermill -k .net-csharppar défaut ne rend pas10.0.0.0:.NET 9.0.209.0.0.0DOTNET_ROLL_FORWARD=LatestMajor.NET 10.0.1210.0.0.0Sans la variable, on réexécute donc
06/08/09sur un runtime différent de celui qui a produit leurs sorties.Aucun organe ne le voit : le
Kernel drift guardcomparemetadata.language_info.version, jamais l'identité d'assembly ; et le seul témoin de la version dans la sortie est l'avisCS1701, qu'une réexécution sur un autre noyau réécrit en silence. La conséquence est celle du grain G5 : un carnet peut être « réexécuté » et diverger de son enregistrement sans qu'aucun garde ne rougisse.Ce que la PR fait
Une ligne ajoutée à la table
FAQ / TroubleshootingdeREADME.md: le fait, la résolution par runtime, et le remède (DOTNET_ROLL_FORWARD=LatestMajor). Le reste du fichier est inchangé, et les marqueursCATALOG-STATUSrestent byte-identiques àmain.Périmètre
git diff --stat= 1 fichier (README.md), +1 ligne / −1 (la ligne voisine est reprise telle quelle).See #14169