D标准库的当前状态是什么?

Łuk*_*Lew 9 d tango standard-library phobos

有两个Phobos和Tango.据我所知,它们是多余的,不相容的.有没有计划加入他们?如果是的话,什么时候会发生?

dsi*_*cha 13

为D2建立了一个名为druntime的通用核心.低级运行时的东西,比如垃圾收集和线程,以前是同一项目中Phobos和Tango互操作的障碍.Phobos的更高级功能取决于Phobos运行时,同样适用于Tango.

Phobos的重大更新已经发布(事实上就在昨天(4/20/20)).此更新尝试使用D2的一些新功能,并引入了范围的概念,它类似于迭代器,但更易于使用且功能更强大.D2 Phobos与其动力不足的D1对手非常不同.

Tango是迄今为止D1更好的标准库.D2端口正在进行中,当D2稳定时,可能会更快地进展.一个很大的问题是Tango开发者是否会更新它以充分利用D2功能,或者他们是否只是专注于使其与D2一样使用D2.

对比这两个库,Phobos倾向于更多地关注简单的事情,语法糖,方便性以及推动标准库中可以完成的工作.这是STL和Python标准库之间的交叉,听起来很奇怪.Tango倾向于拥有更多类似Java的感觉.它更专注于广泛的功能和优雅地处理不寻常的用例.它更多地保留在D的理智子集中(没有那么多的模板元编程等,尽管可以说D的一个主要特征是将模板元编程推广到理智的子集状态),并采用更实用的API设计方法.

我自己的猜测(猜测,但它有很多意义)是Phobos将变得类似于STL,即真正标准的核心功能库,Tango将成为一个实用程序库,有点像Boost,因为它的核心更多功能被吸收到Phobos和/或druntime.

最后,正如其他人所说,D1应该是稳定的,因此这里没有任何变化.


mwi*_*ahl 6

看起来像十月份他们正朝着兼容性方向发展,但我不知道从那时起发生了什么......

编辑:

我也发现了这一点,这似乎表明没有实际合并的计划:

D1的情况不会有任何变化.但是,从版本2.020开始,D2已将Phobos拆分为2个库,druntime.lib和phobos.lib.这是为了允许公共运行时与Phobos和Tango一起使用.虽然没有计划合并两个库甚至包括Tango和DMD版本,但这将允许两个库同时使用而没有兼容层.