2009-04-21 6 views

Répondre

13

Un noyau commun, appelé druntime, a été créé pour D2. Le matériel d'exécution de bas niveau, comme la collecte des ordures et le filetage, était auparavant l'obstacle à l'interopérabilité entre Phobos et Tango dans le même projet. La fonctionnalité de niveau supérieur de Phobos dépendait du runtime de Phobos et de Tango.

Une mise à jour majeure de Phobos a été publiée (juste hier (20/04/09)). Cette mise à jour essaie d'utiliser certaines des nouvelles fonctionnalités de D2 et introduit le concept de gammes, qui sont comme des itérateurs mais plus faciles à travailler et plus puissants. D2 Phobos est très différent de son homologue D1 sous-alimenté.

Tango est de loin la meilleure bibliothèque standard pour D1. Un port D2 est en cours, et progressera probablement beaucoup plus rapidement lorsque D2 est stable. Une grande question est de savoir si les développeurs de Tango vont le mettre à jour pour profiter pleinement des fonctionnalités de D2, ou s'ils vont simplement se concentrer sur le faire fonctionner avec D2 de la même manière qu'avec D1. En contraste avec les deux bibliothèques, Phobos a tendance à se concentrer davantage sur la simplification des choses simples, le sucre syntaxique, la commodité et à repousser les limites de ce qui peut être fait dans une bibliothèque standard. C'est quelque chose d'un croisement entre STL et la bibliothèque standard de Python, aussi étrange que cela puisse paraître. Le tango a tendance à avoir un aspect plus proche de Java. Il est plus axé sur l'ampleur des fonctionnalités et la manipulation des cas d'utilisation inhabituelle gracieusement. Il reste plus dans le sous-ensemble sain de D (pas autant de métaprogrammation de modèle, etc., bien que D puisse être considéré comme une caractéristique majeure de promouvoir la métaprogrammation de modèles dans un état de sous-ensemble sain).Ma propre supposition (spéculation, mais cela a beaucoup de sens) est que Phobos deviendra analogue à STL, c'est-à-dire une bibliothèque vraiment standard de fonctionnalités de base, et Tango deviendra une bibliothèque utilitaire, un peu comme Boost, comme plus de ses fonctionnalités de base est absorbée par Phobos et/ou druntime. Enfin, comme d'autres l'ont noté, D1 est supposé être stable, donc rien ne change ici.

6

On dirait d'Octobre ils étaient moving toward compatibility, mais je ne sais pas ce qui est arrivé depuis ...

Edit:

J'ai aussi trouvé this, ce qui semble indiquer qu'il n'y a pas de plans à en fait fusionner:

La situation pour D1 ne sera pas modifiée. Cependant D2, à partir de version 2.020, a eu Phobos divisé en 2 bibliothèques, druntime.lib et phobos.lib. Ceci permet d'utiliser un temps d'exécution commun avec les deux Phobos et Tango. Bien qu'il n'y ait pas de plan pour fusionner les deux bibliothèques ou même inclure Tango avec des versions de DMD, ce sera permettre aux deux bibliothèques d'être utilisés au même temps sans une couche de compatibilité .

4

Dans 2.0, Tango pourra fonctionner comme une bibliothèque utilitaire au-dessus d'un noyau partagé. Le noyau partagé est déjà en place, cependant, le projet Tango n'a pas encore de support 2.0.

Dans 1.0, il n'y aura pas de changement. C'est parce que la spécification 1.0 est effectivement gelée pour permettre à une cible stable de se développer.

Questions connexes