12 Athens - Release 3

De RAD Studio
Aller à : navigation, rechercher

Remonter à Accueil

Remonter à Nouveautés des releases précédentes

Une mise à jour de RAD Studio 12.3 Athens est disponible (12 mars 2025).

Remarque:

RAD Studio 12 Athens - Release 3 (12.3) est disponible. RAD Studio 12.3 comporte de nouvelles fonctionnalités ainsi que des améliorations de fonctionnalités existantes.

Les améliorations de RAD Studio 12.3 sont fortement axées sur la qualité, tout en incluant des améliorations notables dans la chaîne d'outils C++ et l'EDI. Les principales améliorations de qualité et de fonctionnalités se répartissent comme suit :

  • Release initiale de l'EDI 64 bits
  • Chaîne d'outils Clang C++
  • Niveau d'API Android
  • Audit de code intelligent
  • RAD Studio WebStencils
  • Bibliothèques

Principales améliorations de 12.3 selon les différentes parties du produit

Release initiale de l'EDI 64 bits

RAD Studio 12.3 introduit la release initiale de l'EDI 64 bits. Pour l'installer, sélectionnez l'option correspondante dans la boîte de dialogue Gérer les plates-formes. Dans le menu Démarrer, un raccourci “RAD Studio (Release initiale de l'EDI 64 bits)” permet d'exécuter la version 64 bits de l'EDI.

La release initiale de l'EDI 64 bits a été conçue pour le développement Windows pour Win64. Elle prend en charge les éléments suivants :

  • Plates-formes Delphi Win64 et C++ Moderne Win 64 pour la compilation et le débogage.
  • Applications VCL et FMX, packages, DLL, bibliothèques statiques et applications console.
  • Conception de fiches VCL et FMX.
  • Edition de code.
  • FireDAC et dbExpress
  • Pilotes de bases de données 64 bits
Attention: Dans cette release, l'EDI 32 bits reste la version par défaut de l'EDI. Les EDI 32 bits (version normale) et 64 bits (Release initiale) peuvent être installées et utilisées en parallèle.
Attention: La release initiale de l'EDI 64 bits est conçue pour développer en Windows 64 bits, mais ne dispose pas encore de toutes les fonctionnalités de la version 32 bits de l'EDI. Des fonctionnalités seront ajoutées dans les futures versions.

Plates-formes cible

Dans cette release, la release initiale de l'EDI 64 bits prend en charge les plates-formes cible Delphi Win64 et C++ Moderne Win64 pour la compilation et le débogage.

Lorsqu'un projet sans cible Win64 (Delphi Win64 ou C++ Moderne Win64) est ouvert dans la nouvelle EDI 64 bits, la cible Win64 est automatiquement ajoutée et activée. Vous trouverez de plus amples informations sur les plates-formes cible prises en charge sur la page EDI 64 bits.

Plates-formes non-Win64

Tout projet conçu pour une plate-forme autre que Win64 (Windows 32 bits, Linux, iOS, etc.) peut être ouvert dans l'EDI 64 bits. Toutefois, ces plates-formes non-Win64 seront temporairement cachées. Seule la plate-forme Win64 est disponible dans la release initiale.

Une fois le projet enregistré et rouvert dans l'EDI 32 bits, ces plates-formes sont à nouveau visibles.

Lorsque vous utilisez la version 64 bits de l'EDI, vous pouvez apporter des modifications à votre projet en toute sécurité, y compris aux options du projet, puis ouvrir votre projet ultérieurement dans l'EDI 32 bits.

Débogueur Delphi

L'EDI 64 bits utilise maintenant un nouveau débogueur LLDB pour Delphi Win64.

De plus, les packages de l'EDI sont maintenant construits avec des fichiers RSM au lieu de TDS.

Comme ce débogueur diffère de celui utilisé pour déboguer les applications Delphi Win64 depuis l'EDI 32 bits, l'expérience de débogage sera différente. Comme pour l'EDI, il s'agit de la release initiale du nouveau débogueur Delphi.

Débogage C++ / Delphi

Les utilisateurs de C++ peuvent maintenant déboguer le code Delphi lors de la liaison dynamique avec les packages (avec un fichier .rsm, comme pour tous nos packages.) Cela signifie que vous pouvez effectuer un pas à pas approfondi du code Delphi depuis C++ et vice-versa. Si un seul projet possède à la fois des sources C++ et Delphi liées entre elles dans le même module (cela inclut la liaison statique aux packages), le code source Delphi ne peut pas être débogué ; cette version requiert la liaison dynamique des packages.

Registre et paramètres

Quand vous choisissez l'EDI 64 bits dans l'installateur, les deux versions 32 bits et 64 bits sont installées côte à côte. La plupart des paramètres sont partagés entre les deux versions de l'EDI. Cela permet de disposer de listes de projets identiques, de définir un thème et d'avoir les mêmes options générales quelle que soit la version en cours d'exécution.

Certaines clés spécifiques possèdent deux versions. Le suffixe 'x64' accompagne celles qui sont utilisées par l'EDI 64 bits.

Composants et packages

Les packages de conception sont maintenant en version 64 bits. Lorsque vous ouvrez votre package dans l'EDI 64 bits, la plate-forme Windows 64 bits est ajoutée si elle n'est pas déjà présente.

Autres fonctionnalités de l'EDI 64 bits

Même si cette release cible uniquement Win64, la grande majorité des autres fonctionnalités de l'EDI fonctionnent normalement. Tous les composants sont présents, et les fonctionnalités standard de l'EDI comme la conception de fiches (VCL et FMX), l'édition de code, le débogage et les composants de base de données, y compris l'utilisation des pilotes de base de données, FireDAC et dbExpress, fonctionnent normalement.

Voici une liste de certaines fonctionnalités de l'EDI 64 bits.

  • L'EDI 64 bits utilise la version 64 bits du compilateur Delphi lors de la compilation.
  • La plate-forme Windows 64 bits Moderne utilise les binaires 64 bits du compilateur, du lieur et du débogueur quelle que soit la version de l'EDI utilisée.
  • L'ASLR d'entropie élevée (HE ASLR) est activée pour la DLL de l'éditeur de code, tous les packages de l'EDI et l'EDI elle-même.
  • Les paramètres du débogueur sont stockés dans une clé de registre distincte pour l'EDI 64 bits.

Nous sommes ravis de livrer cette release initiale de l'EDI 64 bits !

Niveau 35 de l'API pour les cibles Android

RAD Studio version 12.3 supporte le niveau 35 de l'API pour Delphi pour Android. RAD Studio 12.3 cible l'API niveau 35, une exigence à partir d'août 2025 pour les applications distribuées dans les magasins d'applications. Alors que l'objectif est de cibler le nouveau niveau de l'API, les modifications nécessaires englobent plusieurs technologies, car nous devons mettre à jour notre chaîne d'outils afin de tenir compte des exigences associées. Voici quelques détails supplémentaires :

  • RAD Studio 12.3 met à jour l'installation par défaut du SDK Android pour installer le composant SDK Android NDK 27.1.12297006.
  • Cette release met à jour l'installation par défaut du SDK Android basée sur la version 16.0 du composant Outils en ligne de commande du SDK Android.
  • Après la migration vers NDK Android 27, la boîte de dialogue de configuration du SDK Android définit automatiquement la valeur par défaut des options du SDK Android approprié. L'image suivante montre l'option sur l'écran Gestionnaire de fonctionnalités.

Fichier:NDK.png

Autres mises à jour relatives à Android

Voici une liste des modifications et améliorations apportées à Android.

  • Cette release met à jour les compilateurs DCCAARM et DCCAARM64 pour transmettre l'émulation cible au lieur externe.
  • La valeur par défaut de l'attribut du manifeste cibleSdkVersion est maintenant 35.
  • Les clients peuvent fournir des options d'approvisionnement pour le type de construction 'Développement' de la même manière que pour le type 'Magasin d'applications'. Si aucune option personnalisée n'est fournie, les options d'approvisionnement par défaut du type de construction 'Développement' sont utilisées.
  • Cette release ajoute une option --allow-rosegment aux compilateurs Delphi Android pour prendre en charge les routines backtrace. La nouvelle option de compilation --allow-rosegment peut la désactiver.
  • Cette release intègre une version mise à jour de la bibliothèque Jetpack Core dont dépend le framework FireMonkey.


La nouvelle release propose une solution pour l'exigence de prise en charge de tailles de page 16 Ko pour Android 15.

  • Une nouvelle option --max-page-size:<pageSize> pour les compilateurs Delphi Android DCCAARM et DCCAARM64 a été ajoutée.
  • Le compilateur DCCAARM utilise la valeur par défaut de '4096' comme taille de page maximale.
  • Le compilateur DCCAARM64 utilise la valeur par défaut de '16384' comme taille de page maximale.
  • Ce compilateur peut être configuré avec la directive {$MAXPAGESIZE <intconst>}. Tous les compilateurs reconnaissent cette directive, mais les compilateurs non-Android l'ignorent. Elle peut être spécifiée dans le fichier source du projet (.dpr) ou du projet package (.dpk). Elle est ignorée si elle se trouve dans les fichiers source unité.
  • La valeur spécifiée est traitée comme une valeur 64 bits non signée et transmise au lieur externe. Le compilateur Delphi ne vérifie pas sa validité, mais le lieur externe la considère comme une valeur incorrecte.

Améliorations de qualité pour chaque partie du produit

Cette release est principalement axée sur la qualité, et les sections suivantes listent certaines améliorations.

Compilateurs Clang C++ Builder

Prise en charge des jeux d'instructions

Les jeux d'instructions RAD Studio version 12.3 jusqu'à AVX2 sont officiellement pris en charge, ce qui inclut SSE2 (par défaut pour Win64), SSE3, SSSE3, SSE4.1, SSE4.2, AVX et AVX2.

600px

Les jeux d'instructions précédents sont également implicitement activés quand vous choisissez un jeu d'instructions plus moderne.

Cela permet au compilateur d'optimiser l'utilisation du jeu d'instructions le plus approprié au code. Lors de la compilation avec un jeu d'instructions spécifique, veuillez noter que votre application ne s'exécutera pas sur un CPU qui ne prend pas en charge ce jeu d'instructions. Le jeu d'instructions par défaut reste SSE2 (le standard pour Windows 64 bits), mais nous sommes ravis d'offrir des gains de performance pour vos applications.

Performances du compilateur

La release 12.3 améliore la vitesse et les performances du compilateur. Nos tests indiquent que le compilateur est maintenant jusqu'à 15 % plus rapide dans les cas d'utilisation généraux. Le formatage des fichiers source en UTF-8 avec BOM contribue à augmenter la vitesse du compilateur de 5 à 6 %. Même si votre utilisation peut varier, cette release offre une vitesse de compilation potentielle jusqu'à 20 % plus rapide. La STL et la RTL utilisées par la chaîne d'outils Moderne sont formatées en UTF8 avec BOM.

Sanitizers et sécurité

La boîte de dialogue Options de projet contient maintenant une nouvelle section Sécurité, avec des paramètres qui améliorent la sécurité et la qualité de votre code source et de votre application. Dans cette release, nous avons deux nouveaux paramètres :

  • Address sanitizer (ASan) : ce paramètre détecte diverses erreurs de mémoire (utilisation après libération, double libération, accès hors limites, etc.).
  • Undefined Behavior sanitizer (UBSan) : ce paramètre détecte diverses opérations qui peuvent "sembler" fonctionner mais produisent des échecs silencieux ou des comportements inattendus, qui sont en fait des comportements non conformes au standard C++.

En voici quelques exemples : débordements d'entiers signés, décalages de bits trop larges pour le type de données, déréférencement de pointeurs incorrects de diverses façons, etc. Ces deux paramètres permettent de vérifier le comportement de votre application à l'exécution. Vous trouverez de plus amples informations sur ces deux sanitizers dans la documentation Clang : Address sanitizer et Undefined Behavior sanitizer.

Veuillez noter que les sanitizers détectent seulement les problèmes dans le code C++. Si vous modifiez le paramétrage et que les deux paramètres ne sont pas tous les deux activés, vous devez nettoyer et reconstruire votre projet, car les fichiers objet construits avec la prise en charge des sanitizers ne sont pas compatibles avec ceux construits sans prise en charge des sanitizers. Par conséquent, ils ne doivent pas être liés.

Qualité

Avec la nouvelle chaîne d'outils, cette release est principalement axée sur la qualité.

  • L'expert génère du code correct pour les applications de service, ce qui permet de les compiler avec la plate-forme Moderne. Si vous obtenez une erreur comme “utilisation d'un contrôleur de service non déclaré” pour votre projet de service, vous devez créer un nouveau projet puis ajouter votre code.
  • Le suffixe $(Auto) fonctionne pour les packages C++ et peut être combiné à un autre texte. Par exemple, $(Auto)x pour générer un fichier ‘...290x.bpl’.
  • Les indicateurs -ffunction-sections et -fdata-sections sont maintenant facultatifs et désactivés par défaut. Ils permettent de réduire la taille de votre binaire final mais, dans certains cas, suppriment des sections obligatoires dont certaines bibliothèques tierce partie dépendent. Nous vous encourageons à utiliser tous les paramètres disponibles pour optimiser votre application afin de déterminer ceux qui sont les plus adaptés à votre base de code.
  • L'utilisation de fichiers C++ avec une extension .cc fonctionne normalement lors de la compilation.

Divers autres problèmes de qualité ont été résolus et nous vous encourageons à utiliser la chaîne d'outils Moderne pour tous les projets C++.

En outre, les packages C++ existants sont pris en charge pour les packages de conception chargés dans l'EDI.

LSP Delphi

Les améliorations du LSP Delphi sont essentiellement axées sur la qualité.

  • Des problèmes de compilation majeurs lors de l'analyse du code pour LSP ont été résolus.
  • Quand vous utilisez l'EDI 32 bits et activez l'utilisation de la version 64 bits du moteur Delphi LSP alors qu'une plate-forme non-Windows est active, le message d'avertissement suivant s'affiche :
“[LSP] Currently the 64-bit LSP server only supports targeting Windows platform”.

BLE et Bluetooth

La release 12.3 est axée sur l'amélioration de la qualité de notre support Bluetooth sur toutes les plates-formes prises en charge.

Améliorations de l'audit de code intelligent

La release 12.3 de RAD Studio est axée sur l'amélioration de la qualité de l'intégration de moteurs d'IA introduite dans la version 12.2. Cette section explique les nouvelles implémentations et améliorations pour l'audit de code intelligent.

A partir de la version 12.3, la boîte de dialogue de configuration de l'audit de code intelligent offre une liste des modèles disponibles récupérée à partir du moteur d'IA, qui doit être d'abord configuré.

Remarque: Cette fonctionnalité n'est pas disponible pour Claude.

L'exemple suivant indique la liste des modèles disponibles pour OpenAI.

600px

La fenêtre de chat de l'audit de code intelligent prend maintenant en charge Markdown (s'il est renvoyé par l'appel de l'API), offrant ainsi des informations nettement plus visibles. L'implémentation exploite les composants HTML Delphi déjà utilisés dans l'éditeur pour les prévisualisations HTML et Markdown. Voici un exemple :

300px

RAD Studio version 12.3 permet de lire le contexte de l'éditeur à partir de la fenêtre de chat, avec des boutons pour insérer le texte actuellement sélectionné ou l'unité entière. Outre les boutons, il est possible d'utiliser les tokens $SELECTION et $UNIT dans la fenêtre de chat. Par exemple, le fait de saisir “Explain this code $selection” dans la fenêtre de chat enverra la requête au moteur d'IA actif avec le code source actuellement sélectionné.

450px

Il est désormais possible de sélectionner du texte dans l'éditeur et d'émettre une commande à partir de cette sélection de texte puis d'envoyer les résultats dans la fenêtre de chat plutôt que dans l'éditeur.

450px

Les autres améliorations notables sont répertoriées ci-dessous :

  • RAD Studio version 12.3 contient une nouvelle commande Rechercher l'unité basée sur l'IA. Demandez à un moteur d'IA quelle unité ajouter à l'instruction uses pour pouvoir utiliser une classe ou un type de données spécifique.
  • Utilisez la fonction Annuler pour supprimer le texte ajouté à l'éditeur par l'audit de code intelligent.
  • Des URL et des paramètres supplémentaires de configuration de l'audit de code intelligent sont vérifiés conformément à certaines règles d'édition de code.
  • Les paramètres des plugins de l'audit de code intelligent incluent maintenant un délai de requête.

Améliorations de WebStencils

WebStencils, la bibliothèque de templates HTML introduite dans RAD Studio 12.2, a été étendue dans les directions suivantes :

  • A partir de RAD Studio 12.3, WebStencils offre l'accès aux classes/objets imbriqués avec une syntaxe comme @MyObject.SubObject.PropertyName.
  • Cela permet d'utiliser la même syntaxe pour accéder aux sous-tables dans les ensembles de données imbriqués, @MyDataSet.DataSetField.SubField.
  • Le traitement du symbole “@” est plus flexible lorsqu'il n'est pas associé à une directive WebStencils. Il n'est pas nécessaire de le doubler dans certains scénarios de cas d'utilisation, comme dans les en-têtes.
  • Cette release améliore la façon dont RAD Server et WebStencils gèrent les caractères UTF8.

FireDAC et les bases de données

En termes d'accès à FireDAC et aux bases de données en général, voici les principales modifications :

  • Cette release améliore le filtrage pour le mappage de requête SQL du composant TFDTable.
  • L'outil de conversion des composants de base de données Refind offre maintenant un script de migration d'IBX vers FireDAC. Consultez notre page de documentation pour apprendre à l'utiliser et obtenir de plus amples informations.
  • Cette release prend en charge Oracle DRCP (Database Resident Connection Pooling).
  • Cette release ajoute le support pour se connecter à MySQL 8.4.

MS SQL Server

  • Prise en charge officielle de Microsoft SQL Server 2022.
  • Prise en charge des séquences MSSQL dans FireDAC.
  • Cette release prend en charge les procédures stockées dans MSSQL avec plusieurs paramètres TVP du même type de table.

MongoDB

  • Dans cette release, le support de FireDAC a été mis à jour pour inclure les versions 3.0 à 8.0 (ce qui a nécessité la mise à jour des DLL client libbson et libmongoc vers la version 1.29.0).
  • Un nouveau paramètre permet de se connecter à une base de données MongoDB (FireDAC).
    • UseSRV - Spécifiez True pour activer une liste des serveurs disponibles avec DNS. Définissez la valeur True quand vous vous connectez à MongoDB Atlas.

Qualité de la VCL

Dans la VCL, la release 12.3 résout des problèmes liés aux styles VCL. Cette release résout également des problèmes liés à HighDPI et d'autres problèmes généraux liés à l'IU dans les contrôles VCL, tels que :

  • TStatusBar stylés sur un cadre.
  • MainMenu avec les styles et leurs marges.
  • Affichage d'un TCheckbox sur un TToolbar.
  • Dessin de la bordure et des contrôles lors de changements de thèmes à répétition.
  • Dessin de TComboBoxEx.
  • Dessin des composants CheckBoxes par THeaderControl.
  • ImageMargins de TButton avec une image.
  • Appel de OnMeasureItem pour l'élément de menu OwnerDraw.
  • L'éditeur de TImageCollection se souvient du caractère sélectionné pour séparer le nom de fichier de la taille.
  • L'éditeur de TImageCollection pour le composant TVirtualImageList prend en charge les fichiers .ico.

Qualité de FireMonkey

Cette release offre de nombreuses améliorations de qualité et une nouvelle fonctionnalité Style VCL pour FireMonkey. Parmi les nouvelles fonctionnalités, citons la disponibilité d'un nouveau convertisseur de style VCL en style FireMonkey (disponible sous la forme bin\vsf2fm.exe).

vsf2fm <file or folder>
Params:
  -origin - raw converter result
  -bin - convert to binary fsf-format instead of textual style-format
  -idx - convert to indexed binary fsf-format instead of textual style-format

Voici un exemple d'usage typique des outils :

vsf2fm -idx iOS7.vsf iOSAlternate.vsf

Améliorations notables de FMX

Certaines améliorations notables sont répertoriées ci-dessous :

  • La version de Skia4Delphi livrée avec RAD Studio a été mise à jour vers la version la plus récente.
  • Les barres de défilement VertScrollBox ont été améliorées sur Mac.
  • Les améliorations supplémentaires de TMemo incluent le déplacement du texte à l'intérieur du TMemo, le passage du point d'insertion à la ligne suivante, l'utilisation de CaretPosition dans l'événement OnMouseUp et la position du point d'insertion lors du redimensionnement des contrôles.
  • Améliorations de Skia sur Mac et dans TskLabel.
  • Améliorations de ListBox et ListView (Filtre).
  • Chargement dynamique des styles sur les plates-formes non-Windows.
  • Amélioration de la gestion de l'ordre Z dans Windows.

Améliorations de RAD Server

La section suivante répertorie les améliorations apportées à RAD Server dans RAD Studio 12.3.

  • Pour éviter de renvoyer des valeurs de format date/heure différentes dans les requêtes GET et LIST, RAD Studio version 12.3 a amélioré le code et introduit roFDDateTimeFormat pour contrôler la représentation des valeurs date/heure dans les réponses GET/PUT/POST JSON.
  • RAD Studio 12.3 inclut une option pour éviter d'enregistrer en clair des valeurs texte pour MasterSecret et Appsecret dans emsserver.ini. La valeur prend maintenant en charge le format "#<MD5 hash>#". En outre, un bouton "Obfuscate Keys" dans EMSDevServer convertit le MasterSecret/AppSecret en texte brut au format de hachage MD5.
  • Cette release prend en charge le concept de variables personnalisées à l'échelle de l'instance stockées dans la section emsserver.ini “[variables]”. Ces variables peuvent ensuite être utilisées dans les éléments suivants :
    • Le code des points de terminaison d'une ressource personnalisée.
    • Les propriétés TEMSFileResource, comme dans la définition d'un correctif dépendant de la configuration, par exemple dans PathTemplate = “$(Project1)/templates”.
    • Les propriétés TEMSDataSetResource.
  • Cette release propose un nouvel attribut [EndpointHide] RAD Server pour masquer les points de terminaison. Cela s'avère utile pour les points de terminaison des composants TEMSDataSetResource et TEMSFileResource. Par exemple :
   [EndpointHide('put')]
   [EndpointHide('post')]
   [EndpointHide('delete')]

Autres améliorations

Voici une liste des autres améliorations de qualité relatives à RAD Studio 12.3.

  • Les problèmes liés à l'importateur WSDL ont été résolus et la qualité de SOAP a été améliorée.
  • Tregistre.ReadMultiString tolère maintenant les lignes vides.
  • Vous pouvez modifier la couleur et la forme du point d'insertion de l’éditeur. Cela améliore l'accessibilité.
  • Le menu TDump a été activé pour les projets Delphi.
  • Des problèmes de dessin dans l'éditeur et le volet Désassemblage ont été résolus.

Voir aussi