DMD : la version 2.085 du compilateur de référence du langage D est disponible
Avec un meilleur interfaçage à Objective-C
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++.
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
Envoyé par la D Language Foundation
Code Objective-C : Sélectionner tout - Visualiser dans une fenêtre à part
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.
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } }
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.Envoyé par la D-Language Foundation
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
Partager