Developpez.com - Rubrique Pascal

Le Club des Développeurs et IT Pro

Free Pascal 3.2

La nouvelle version majeure du compilateur Pascal est enfin disponible !

Le 2020-06-21 22:35:38, par gvasseur58, Responsable Lazarus & Pascal
Nous l'avions annoncée dès septembre 2019, nous l'attendions donc depuis longtemps : la version majeure 3.2 du compilateur Free Pascal est enfin disponible au téléchargement !

Pour celles et ceux qui ne le connaîtraient pas, Free Pascal est un compilateur Pascal 32, 64 et 16 bits à vocation professionnelle. Développé en open source depuis plus de vingt-sept ans par une large communauté de développeurs bénévoles très actifs, il est réputé pour sa grande stabilité, sa vitesse de compilation et un code produit très performant. Il peut cibler de nombreuses architectures de processeur : Intel x86 (y compris 8086), AMD64 / x86-64, PowerPC, PowerPC64, SPARC, ARM, AArch64, MIPS et la machine virtuelle Java. Les systèmes d'exploitation pris en charge incluent Linux, FreeBSD, Haiku, Mac OS X/iOS/iPhoneSimulator/Darwin, DOS (16 et 32 ​​bits), Windows 32, Windows 64, WinCE, OS/2, MorphOS, Nintendo GBA, Nintendo DS, Nintendo Wii, Android , AIX et AROS. De plus, la prise en charge de l'architecture Motorola 68k est disponible dans les versions de développement.

En plus des habituelles corrections de bogues et de la prise en charge de nouvelles cibles (AArch64, Linux/ppc64le, Android/x86_64 et même Windows 16 bits), Free Pascal 3.2 apporte entre autres les améliorations générales suivantes :

  • prise en compte des espaces de nommage par défaut ;
  • nombreuses améliorations concernant les tableaux dynamiques (insertion, suppression, concaténation, opérateur d'addition, constantes, initialisation des variables dès leur déclaration, constructeurs) ;
  • extension des directives $Push et $Pop pour $MinEnumSize, $PackSet et $PackRecords ;
  • section class threadvar dans les déclarations de classes et d'enregistrements ;
  • amélioration et extension des types génériques, y compris pour les routines hors des classes ;
  • nouveaux opérateurs pour la gestion des types enregistrements (Initialize, Copy, AddRef, Finalize) ;
  • extension RTTI et assistances de types pour les interfaces d'objets ;
  • nouvelles unités : rtl-generics (génériques), rtti (à titre expérimental !), ProcessUnicode (version Unicode de TProcess) ;
  • la classe TRegistry supporte totalement Unicode ;
  • le paquet CHM a été réécrit pour éliminer des bogues et améliorer ses performances.


Comme le développement de la branche 3.0 du compilateur s'est étendu sur cinq ans (!), cette nouvelle version est fortement recommandée pour les développements futurs. Il est fort probable que les EDI fondés sur ce compilateur (Lazarus, Code Typhon), vont rapidement proposer son intégration.

Pour la liste complète des modifications, c'est ici (en anglais).
Pour les changements affectant les programmes anciens, c'est ici (en anglais).
Pour le téléchargement du compilateur, c'est que ça se passe.

Source : Équipe Free Pascal

Et vous ?
Allez-vous utiliser cette version majeure de Free Pascal ?
Que pensez-vous des améliorations apportées ?
  Discussion forum
5 commentaires
  • Jipété
    Expert éminent sénior
    Envoyé par gvasseur58
    Allez-vous utiliser cette version majeure de Free Pascal ?
    Oui !
    Car il se trouve que depuis la semaine dernière je suis en mode "mise en place d'un nouveau système" avec tout qui change, dont entre autres le passage à 64 bits (je croise les doigts).

    Bon, je vais attendre quelques jours, histoire de laisser les principaux bugs être découverts et corrigés,

    Envoyé par gvasseur58
    Que pensez-vous des améliorations apportées ?
    Pas la moindre idée dans la mesure où, en général, je ne vois pas FP, étant à 100 % dans Lazarus (et ça sera l'occasion de tester la dernière : est-ce qu'on peut enfin supprimer ou à tout le moins cacher des onglets de composants ?)
  • BeanzMaster
    Expert confirmé
    Envoyé par gvasseur58

    Allez-vous utiliser cette version majeure de Free Pascal ?
    Oui et je l'utilise déja avec Lazarus 2.0.8

    Envoyé par gvasseur58

    Que pensez-vous des améliorations apportées ?
    Les types generic enfin mieux supportés, ainsi qu'un meilleur support pour les tableaux dynamiques, est un vrai plus
    La prise en charge de la directive vectorcall sous windows, en assembleur, va encore améliorer les performances des code en asm utilisant les instructions SIMD SSE/AVX

    Il n'y a pas photo comparé à la précédente version 3.0.4 le code des applications à été sérieusement optimisé. J"ai pu mesurer des différences des temps d'execution plus rapide allant jusqu"a +30% suivant les options de compilation.

    A noter qu'une version de Lazarus 2.0.10 basée sur cette release de FPC 3.2 sortira entre le 4 et 11 juillet prochain. L'actuelle version 2.0.8 avec FPC 3.2 est expérimentale et à là a titre de test

    Envoyé par Jipété
    Oui !
    Car il se trouve que depuis la semaine dernière je suis en mode "mise en place d'un nouveau système" avec tout qui change, dont entre autres le passage à 64 bits (je croise les doigts).

    Bon, je vais attendre quelques jours, histoire de laisser les principaux bugs être découverts et corrigés,
    Bonne nouvelle JP enfin !

    Envoyé par Jipété

    Pas la moindre idée dans la mesure où, en général, je ne vois pas FP, étant à 100 % dans Lazarus (et ça sera l'occasion de tester la dernière : est-ce qu'on peut enfin supprimer ou à tout le moins cacher des onglets de composants ?)
    Alors oui dans Lazarus 2.0.8 tu peux cacher un onglets de composants

    A+
    Jérôme
  • der§en
    Membre éprouvé
    Jipété qui migre, hourra, on va sabrer le champagne

    Le voila en route, vers une version 2 des travaux d'Hercules Pascalien...
  • Jipété
    Expert éminent sénior
    Vous excitez pas les copains,
    Envoyé par BeanzMaster
    Bonne nouvelle JP enfin !
    Envoyé par der§en
    Jipété qui migre, hourra, on va sabrer le champagne

    Le voila en route, vers une version 2 des travaux d'Hercules Pascalien...
    Oh que oui...

    Lecture édifiante...
    Et tant que je suis face à ce mur infranchissable, le reste n'avancera pas (pas la peine de tout installer s'il faut reformatter pour installer autre chose…)
  • Jipété
    Expert éminent sénior
    Salut,

    Envoyé par Jipété
    Lecture édifiante...
    Et tant que je suis face à ce mur infranchissable, le reste n'avancera pas (pas la peine de tout installer s'il faut reformatter pour installer autre chose…)
    Bonne nouvelle, il semblerait que le problème soit réglé avec la 7.0 rc1 que je viens de tester à l'instant, et sans avoir eu besoin de me taper un rapport de bug et tout le tintouin, ouf !

    Plus qu'à attendre la définitive (et, au passage, mine de rien c'est top de chez top ce nouveau format appimage, j'ai déjà testé Inkscape 1.0 et donc maintenant LO 7.0-rc1, depuis un dd SSD ça envoie du lourd de chez lourd, un bonheur ! )

    Bientôt l'install du fourbi FPC/Laz…

    ,