Skip to content

[#14169-G4] endjin#95 : traduire les champs statiques DateTime (MaxValue/MinValue) en constantes ticks #19054

Description

@jsboige

Grain: DEEP/research-code -- lane myia-po-2027:CoursIA -- prev: MED/tooling #19049

Sous-grain de #14169 (Z3.Linq amont). Source : finding n°1 du banc d'intégration P2 (#16609, rapport endjin#110 c.2026-09-21) — seul échec sur la voie partagée.

Constat mesuré

Sur la branche feature/datetime-ticks d'endjin#95, contraindre un symbole DateTime au-delà de la plage via DateTime.MaxValue lève NotSupportedException: Unknown parameter encountered: MaxValue au lieu du comportement attendu (le fork CoursIA produit une OverflowException nommant le symbole). La traduction DateTime gère les littéraux mais pas les champs statiques.

Travail

  1. Traduire DateTime.MaxValue/MinValue (champs statiques) en constantes ticks dans le visitor de la branche feat(ml): add open exercises to ML.NET notebooks (ECE TP) #95.
  2. Test MSTest (harnais de la pile Howard) couvrant le cas au-delà de la plage.
  3. PR croisée endjin (base feature/datetime-ticks), branche sur notre fork.

Acceptance

  • Test rouge sur la tête de feature/datetime-ticks, vert avec le fix.
  • lake build n/a — projet .NET : build + suite de la branche verts localement (folder feed Z3 5.1.0).
  • PR endjin ouverte, diff limité au visitor + test.

Part of #14169. See #16609 (banc P2, preuve du finding).

Activity

  1. jsboige commented on Oct 4, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2027:CoursIA -- paths: MyIA.AI.Notebooks/SymbolicAI/SMT/Z3.Linq/** -- travail sur le fork MyIntelligenceAgency/Z3.Linq (branche + PR endjin), sans edition dans CoursIA en dehors du gitlink si bump

  2. jsboige commented on Oct 4, 2026

    @jsboige
    OwnerAuthor

    PR ouverte upstream : endjin/Z3.Linq#113 (branche fix/datetime-static-fields-95 sur le fork, base feature/datetime-ticks @1a458e4).

    Mesures (acceptance de l'issue) :

    • Rouge sur la tête sans fix : les 4 nouveaux tests échouent sur NotSupportedException: Unknown parameter encountered: MaxValue/MinValue/UnixEpoch. — symptôme exact de l'issue.
    • Vert avec le fix : 258 passed / 0 failed (suite complète, folder feed Z3 5.1.0, dotnet run --project solutions/Z3.Linq.Tests/Z3.Linq.Tests.csproj).
    • Diff limité à ExpressionVisitor.cs (+13, garde static InitOnly sur DateTime uniquement) + DateTimeStaticFieldsTests.cs (nouveau).

    Gain secondaire documenté dans la PR : le contrat de lecture documenté de Theorem.ToDateTime (OverflowException nommant le symbole pour un modèle hors range) devient atteignable depuis la forme inline t.X1 > DateTime.MaxValue — jusque-là elle mourait sur le champ avant même que Z3 ne soit consulté.

    Grain: MED/refactor — lane myia-po-2027:CoursIA — prev: DEEP/tooling #19049

  3. jsboige commented on Oct 7, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2025:CoursIA — tapis central du 07/10 02:43Z, file profonde posee par le coordinateur au dispatch (rang 2/3) : [#14169-G4] endjin#95 : traduire les champs statiques DateTime (MaxValue/MinValue) en cons. Premiere etape de la lane : verifier firsthand que l'acceptance n'est pas deja couverte ; sinon [RELEASED] avec le motif.

  4. jsboige commented on Oct 7, 2026

    @jsboige
    OwnerAuthor

    [RELEASED] lane myia-po-2025:CoursIA — acceptance deja couverte, verifie firsthand au head du grain :

    • La traduction des champs statiques DateTime (MaxValue/MinValue/UnixEpoch) en constantes ticks est livree sur Reduce DateTime's static fields to their constant value endjin/Z3.Linq#113 (ouverte par po-2027, branche fork fix/datetime-static-fields-95, base feature/datetime-ticks @1a458e4) — mesures d'acceptance completes dans le commentaire du 07/10 : rouge sans fix (4 tests, symptome exact NotSupportedException: Unknown parameter encountered), vert avec fix (258 passed / 0 failed).
    • Verifie a l'instant : fix(QC): make QC-Py-04 the definitive QuantBook tutorial #113 est OPEN, 0 commentaire, 0 review — rien a lever, rien a reparer ; la suite est le merge cote mainteneurs endjin (acteur externe, aucune action possible depuis une lane CoursIA).

    Le grain etait le rang 2/3 du tapis du 07/10 02:43Z ; le classement L1356 s'applique (livraison deja posee avant mon claim). La lane passe au grain suivant de la file profonde (#18305).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions