mORMot2 DailyLecture quotidienne des commits upstream

L’inspection des logs préserve les fichiers MAB et gagne le traçage des appelants

Cette édition renforce surtout les outils autour de TSynLog sans modifier les protocoles backend. Les lecteurs de logs ne plantent plus sur des données de profiler vides ou des sélections de texte brut, et TDebugFile ne supprime plus un fichier .mab externe illisible. FreeBSD, FPC et Android reçoivent des corrections socket et POSIX, tandis que la découverte du symbole appelant passe désormais par TDebugFile sur tous les compilateurs pris en charge.

En bref

  • Visez la build 2.4.17019 au commit fc996116ae8a2534c5e763ac180649cdb78013ab.
  • TDebugFile.Create ne supprime plus un fichier .mab externe illisible fourni via aExeName.
  • TSynLogFile et TSynLogFileView gèrent sans plantage les logs sans sllEnter, les lignes texte brut copiées et un filtre de niveaux vide.
  • Le dimensionnement des sockets UNIX FreeBSD et les corrections de compilation FPC, BSD et Android sont complets dans la build finale.
  • TDebugFile.AppendCallerShort est nouveau ; TSynLog.Enter ou Log sans texte résout aussi l’appelant sous FPC, comme sous Delphi.
  • Le package Lazarus conserve maintenant mormot.crypt.pkcs11 lorsqu’il régénère mormot2.pas.

Conseil de mise à jour

Visez la build 2.4.17019. Mettez à niveau rapidement si LogView ouvre des .mab externes, si des logs peuvent ne contenir aucun sllEnter, ou si FreeBSD, FPC BSD ou Android est ciblé. Recompilez chaque package, testez la copie de texte brut et le filtre vide, puis vérifiez si les symboles appelants automatiques modifient le volume ou le coût des logs. Aucun marqueur superseded_by n’étaye une plage à éviter.

Build2.4.17002 → 2.4.17019
Commits13
Lignes+796 -383
Lecture3 min

8 sur 8 entrées · 13 commits upstream

Sujets
# Entrée Catégorie Unités
1 Élevée Les logs vides ou texte brut ne cassent plus le viewer TSynLogFile.SetLogProcMerged évite maintenant l’accès aux tableaux du profiler sans événement sllEnter. TSynLogFileView.GetLineForClipboard renvoie la ligne brute lorsque fLevels vaut nil, et Select efface fSelectedCount avant de traiter un filtre d’événements vide. TTestCoreBase.Debugging ajoute les régressions. Correctifs mormot.core.log a01ae51e+56-8

core: fixed TSynLogFile/TSynLogFileView edge cases found by the LogView tool

Impact

LogView et les analyseurs évitent les accès nil ou hors limites sur les logs sans profiling de méthodes, peuvent copier les lignes texte brut et n’affichent aucune ligne lorsque tous les niveaux sont décochés.

API publique

  • TSynLogFile.SetLogProcMergedbehaviour-changed — Activer le profiling fusionné sans sllEnter laisse maintenant un profiler vide au lieu de déréférencer des tableaux vides.
  • TSynLogFileView.GetLineForClipboardbehaviour-changed — Les fichiers texte brut renvoient la ligne sélectionnée et les index hors limites une chaîne vide.

Sven Harazim · 05:49 UTC · voir le commit sur GitHub →

2 Élevée Les fichiers MAB externes illisibles ne sont plus supprimés TDebugFile.Create tente toujours LoadMab lorsque le timestamp du cache correspond, mais n’appelle plus DeleteFile si aucun bloc ou symbole n’est chargé. Correctifs mormot.core.log 4ca916cb+1-3

core: TDebugFile.Create() won't delete an unreadable .mab file

Impact

Passer un .mab choisi par l’utilisateur via aExeName, comme le fait LogView, ne peut plus détruire ce fichier parce qu’il est illisible, invalide ou incompatible. Le fallback vers .map ou .dbg reste actif.

API publique

  • TDebugFile.Createbehaviour-changed — Un MAB illisible est conservé au lieu d’être supprimé avant le fallback de chargement des symboles.

Sven Harazim · 09:29 UTC · voir le commit sur GitHub →

3 Élevée Les chemins BSD, FPC et Android convergent après le merge plateforme Le suivi utilise CPUAARCH64 pour CPU_ARCH_TEXT, fait accepter pointer à PosixStatFS sur les deux compilateurs, choisit les champs st_ino Android via DELPHIPOSIX, corrige la syntaxe socket conditionnelle et un cast FPC, puis charge getifaddrs via LibraryOpen et LibraryResolve. Compilateur & plateforme mormot.core.os+4 e68dce4a+17-20

all: some fixes after #598

Impact

Le travail Delphi Android fusionné et la taille socket FreeBSD compilent correctement sur les cibles POSIX Delphi/FPC. Android utilise le champ d’identifiant adapté à la RTL, et FPC ne dépend plus ici des déclarations dlopen directes.

API publique

  • PosixStatFSsignature-changed — Le paramètre Info est maintenant pointer sous FPC comme sous Delphi, au lieu de PStatfs sous FPC.

Arnaud Bouchez · 12:16 UTC · PR #598 · voir le commit sur GitHub →

4 Moyenne Le package Lazarus conserve le support PKCS #11 packages/lazarus/mormot2.lpk ajoute mormot.crypt.pkcs11 comme item 114, décale les éléments suivants et porte le nombre de fichiers de 123 à 124. Correctifs mormot.crypt.pkcs11 7b98b09a+24-20

packages: added mormot.crypt.pkcs11 to the Lazarus package

Impact

Ouvrir ou reconstruire le package Lazarus ne régénère plus mormot2.pas sans mormot.crypt.pkcs11. Les usages directs et Delphi ne changent pas.

À regarder

Recompilez le package Lazarus et vérifiez que mormot.crypt.pkcs11 reste dans l’unité agrégée générée.

Sven Harazim · 09:31 UTC · voir le commit sur GitHub →

5 Moyenne Les adresses socket UNIX utilisent la taille native FreeBSD TSockAddrUnix utilise un sun_path de 104 octets sur les plateformes avec sun_len et 108 ailleurs. SOCKADDR_SIZE suit ce layout, tandis que TNetAddr.Size et SetFamily traitent AF_UNIX explicitement. Correctifs mormot.net.sock+1 b6262622+22-9

net: fixed TSockAddrUnix size for FreeBSD

Impact

FreeBSD et les autres cibles avec sun_len ne passent plus un buffer sockaddr_un trop grand et ne renvoient plus la taille générique pour AF_UNIX. Linux et Windows ne changent pas.

API publique

  • SOCKADDR_SIZEbehaviour-changed — La constante publique vaut 106 au lieu de 110 sur les plateformes dont les records socket contiennent sun_len.

Arnaud Bouchez · 07:50 UTC · voir le commit sur GitHub →

6 Moyenne Les symboles appelants peuvent être ajoutés sans allocation heap TDebugFile.AppendCallerShort capture jusqu’à 62 frames brutes, supprime les doublons et ajoute les emplacements résolus dans une ShortString. RawStackTrace est partagé avec StackTrace et protège l’interception d’exceptions lors du parcours sous Delphi et FPC. Nouveautés mormot.core.log 19b48603+186-111

core: new TDebugFile.AppendCallerShort method

Impact

Le code de log et diagnostic peut obtenir des emplacements appelants compacts sous FPC comme sous Delphi sans construire de résultat RawUtf8. La qualité dépend toujours des données .map, .gdb ou .mab.

API publique

  • TDebugFile.AppendCallerShortadded — Cette nouvelle procédure de classe ajoute aSkip/aDepth emplacements de stack résolus dans une ShortString fournie.

Arnaud Bouchez · 13:23 UTC · voir le commit sur GitHub →

7 Moyenne Les entrées TSynLog sans texte identifient l’appelant sur chaque cible TSynLog.Enter avec aMethodName=nil et TSynLog.Log(Level) appellent TDebugFile.AppendCallerShort avant le verrou writer. LogEnter accepte un emplacement PShortString précalculé, et la capture d’adresse réservée à Delphi est supprimée. Nouveautés mormot.core.log fc996116+74-145

core: TSynLog.Enter/Log with no text nor method name will use caller info

Impact

Les logs FPC peuvent maintenant inclure le même contexte de symbole appelant que Delphi si les données de debug existent. Les appels sans texte capturent la stack et peuvent produire plus de texte ; mesurez les chemins de log chauds.

À regarder

Passez en revue les appels Enter et Log sans texte, confirmez le nouveau texte appelant et mesurez les chemins fréquents avec les artefacts de debug de production.

API publique

  • TSynLog.Enterbehaviour-changed — Un aMethodName nil déclenche maintenant la résolution de l’appelant TDebugFile sous FPC comme sous Delphi.
  • TSynLog.Logbehaviour-changed — L’overload ne prenant qu’un niveau ajoute maintenant l’emplacement appelant résolu s’il est disponible.

Arnaud Bouchez · 13:24 UTC · voir le commit sur GitHub →

8 Faible Les records host POSIX suivent le type C natif La déclaration interne hostent.h_length passe de TSockLen à cint pour correspondre à l’ABI C. Un commentaire sockaddr_dl est précisé sans changer le layout. Compilateur & plateforme mormot.net.sock.posix de2e5034+4-4

net: minor cleanup after latest PR

Impact

Les bindings de résolution de noms POSIX utilisent le type entier natif sous FPC et Delphi. Les API applicatives et Windows ne changent pas.

Arnaud Bouchez · 08:02 UTC · voir le commit sur GitHub →

Activité upstream commits par jour · 60 derniers jours
Commits977
Jours actifs44/60
Plus chargé2026-09-30
Pic60
2026-08-15: 0 commits2026-08-16: 0 commits2026-08-17: 0 commits2026-08-18: 0 commits2026-08-19: 0 commits2026-08-20: 0 commits2026-08-21: 0 commits2026-08-22: 0 commits2026-08-23: 0 commits2026-08-24: 0 commits2026-08-25: 0 commits2026-08-26: 0 commits2026-08-27: 26 commits2026-08-28: 11 commits2026-08-29: 10 commits2026-08-30: 1 commit2026-08-31: 23 commits2026-09-01: 0 commits2026-09-02: 20 commits2026-09-03: 29 commits2026-09-04: 35 commits2026-09-05: 13 commits2026-09-06: 0 commits2026-09-07: 0 commits2026-09-08: 23 commits2026-09-09: 10 commits2026-09-10: 17 commits2026-09-11: 23 commits2026-09-12: 14 commits2026-09-13: 9 commits2026-09-14: 7 commits2026-09-15: 4 commits2026-09-16: 24 commits2026-09-17: 26 commits2026-09-18: 21 commits2026-09-19: 59 commits2026-09-20: 13 commits2026-09-21: 5 commits2026-09-22: 34 commits2026-09-23: 17 commits2026-09-24: 57 commits2026-09-25: 22 commits2026-09-26: 26 commits2026-09-27: 0 commits2026-09-28: 2 commits2026-09-29: 19 commits2026-09-30: 60 commits2026-10-01: 26 commits2026-10-02: 30 commits2026-10-03: 32 commits2026-10-04: 15 commits2026-10-05: 1 commit2026-10-06: 26 commits2026-10-07: 37 commits2026-10-08: 27 commits2026-10-09: 35 commits2026-10-10: 33 commits2026-10-11: 9 commits2026-10-12: 11 commits2026-10-13: 35 commits
2026-08-152026-10-13