DMD : la version 2.085 du compilateur de référence du langage D est disponible
Avec un meilleur interfaçage à Objective-C
Le 2019-03-04 17:51:40, par Patrick Ruiz, Chroniqueur Actualités
La D Language Foundation annonce la disponibilité en téléchargement de la version 2.085.0 de DMD – le compilateur de référence du langage D. Au menu : des avancées dans l’interfaçage avec le langage Objective-C d’Apple ; du nouveau avec le ramasse-miettes et des améliorations au niveau de l’interfaçage avec la bibliothèque standard du langage C++.
Envoyé par la D Language Foundation
Sur le front de l’interfaçage avec Objective-C, la D Language Foundation annonce qu’il est désormais possible de déclarer des classes Objective-C directement comme des classes D.
Envoyé par la D Language Foundation
La D Language Foundation prévient à ce propos que « pour mieux faciliter l'interaction entre les deux langues, ces classes ont un comportement légèrement modifié. Toutes les méthodes statiques et finales d'une classe extern (Objective-C) sont virtuelles. »
L’autre nouveauté en ce qui concerne l’interfaçage avec le langage Objective-C est qu’il est désormais possible de déclarer des variables d’instance au sein de classes Objective-C – ainsi qu’à l’intérieur d’une méthode contenue dans une classe Objective-C – pour effectuer un appel spécial.
Depuis la version 2.067 du compilateur, il est possible de configurer le ramasse-miettes depuis la ligne de commande ou des options intégrées à un exécutable. Avec la version 2.085, les développeurs peuvent s’appuyer sur cette possibilité pour choisir precise comme option de ramasse-miettes.
Envoyé par la D-Language Foundation
Avec la version 2.085, le compilateur de référence du langage D se dote d’une nouvelle option de contrôle du comportement du ramasse-miettes lorsque l’exécution d’un programme arrive à son terme. L’objectif de son introduction est de donner au développeur la possibilité de provoquer la libération inconditionnelle des zones de mémoire utilisées par un programme en fin d’exécution.
La dernière mouture du compilateur de référence du langage D vient avec deux améliorations en ce qui concerne l’interfaçage avec la bibliothèque standard du C++. Noter à ce propos que les programmes D pourront désormais allouer de la mémoire à partir du heap C++, ce, en s’appuyant sur les opérateurs new et delete. Enfin, la version 2.085 donne l’accès aux conteneurs de la STL par le biais de la classe std::allocator<T> exposée via un module C++.
Source : dlang
Et vous ?
Que pensez-vous des nouvelles fonctionnalités livrées avec cette version du compilateur de référence pour le langage D ?
Avez-vous déjà fait usage du langage D ? Si oui, pour quelle raison devrait-on s'y intéresser ?
Voir aussi :
Quel langage pourrait remplacer C ? Après avoir comparé Go, Rust et D, le choix d'Andrei Alexandrescu se porte sur D
Débuter avec le langage D, un tutoriel de Sébastien Tahier
Code Objective-C : |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | extern (Objective-C) class NSObject { static NSObject alloc() @selector("alloc"); NSObject init() @selector("init"); void release() @selector("release"); } extern (Objective-C) class Foo : NSObject { override static Foo alloc() @selector("alloc"); override Foo init() @selector("init"); int bar(int a) @selector("bar:") { return a; } } void main() { auto foo = Foo.alloc.init; scope (exit) foo.release(); assert(foo.bar(3) == 3); } |
La D Language Foundation prévient à ce propos que « pour mieux faciliter l'interaction entre les deux langues, ces classes ont un comportement légèrement modifié. Toutes les méthodes statiques et finales d'une classe extern (Objective-C) sont virtuelles. »
L’autre nouveauté en ce qui concerne l’interfaçage avec le langage Objective-C est qu’il est désormais possible de déclarer des variables d’instance au sein de classes Objective-C – ainsi qu’à l’intérieur d’une méthode contenue dans une classe Objective-C – pour effectuer un appel spécial.
Code : |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | extern (Objective-C) class NSObject { void release() @selector("release"); } extern (Objective-C) class Foo : NSObject { // instance variable int bar; int foo() @selector("foo") { return 3; } int getBar() @selector("getBar") { return bar; } } extern (Objective-C) class Bar : Foo { static Bar alloc() @selector("alloc"); Bar init() @selector("init"); override int foo() @selector("foo") { // super call return super.foo() + 1; } } |
La dernière mouture du compilateur de référence du langage D vient avec deux améliorations en ce qui concerne l’interfaçage avec la bibliothèque standard du C++. Noter à ce propos que les programmes D pourront désormais allouer de la mémoire à partir du heap C++, ce, en s’appuyant sur les opérateurs new et delete. Enfin, la version 2.085 donne l’accès aux conteneurs de la STL par le biais de la classe std::allocator<T> exposée via un module C++.
Source : dlang
Et vous ?
Voir aussi :
-
MarkandMembre éclairéD... le langage mort né. Je déteste Go, mais je pense que même Go est mieux que D.le 05/03/2019 à 9:38
-
Matthieu76Membre éclairéBah je ne vois pas l'intérêt de ce language, aussi verbeux que le C++ mais sans ces performances.le 05/03/2019 à 10:29