原文
gettext国际化包.
Mathias
问题,dmd
正在移动
具有复制构造器
的结构
.导致了不能移植core.stdcpp
.但是LDC
和GDC
按期望工作.
d作者
认为事情是因为,其中一个复制构造器
正在传递右值
,导致复制
到栈上,而未更新内部指针
.
建议
进一步简化
该示例,以确定问题
.
GDC
行为是由于附加到非平凡
结构内部标志
,来避免复制
,即该类型结构
总是按引用
传递和返回.
他一直致力于改进dub
以支持更多用例
并输出更好的错误消息
.
DRuntime
和Phobos
要用一组特定
标志编译.如果编译用户代码
时使用的标志与这些标志
不匹配,就有问题.
-preview=in
预览开关问题,
Walter
说,他想到的唯一方法
是预览
功能不应改变ABI
,但可转向仅包含头的库.Martin
建议DRuntime
和Phobos
这样,因为它们是生态系统
中拥有的唯一预编译库
.如果是dub
项目,问题
就消失了.
在D中提出定义C++
命名空间的两种
方法,一种使用标识符
,另一种是使用串.前者先出现,后来添加后者
来解决前者缺陷.他想弃用标识符
选项.
最后,他谈到了如何编译core.stdcpp
进DRuntime
并且依赖于特定的C++
运行时.最初,把它添加进DRuntime
的前提是它等同于已存在的C绑定
.问题是C绑定
不会生成
符号,但C++
绑定会.导致ABI
不匹配.Mathias
认为他们应该退出
运行时.沃尔特同意了.
伊恩
他一直在为BruceCarneal
提供与SIMD
相关的一些技术支持
.导致一些新的SIMD
内置函数.他还把大约600
行代码从编译器
移到库中.
在上游,他在std.math
中加了浮/双精
的日志实现.
丹尼斯
在pr中提出减少object.d
的大小.分成模块.而object.d
只公共导入.
object.d
越大,编译
速度越慢,分成小文件可能更慢.
大小增加,是从DRuntime
转为模板
开始.应从object.d
中删除它.
私有模块实现.
Max
关注新的CTFE
.对Max
,newCTFE
性能,并不那么重要,因为代码更易于使用
且使用
内存更少.
Martin
说应过多地关注x87
.DMD
很有趣,因为它仅支持x86
.GCC/GDC
使用跨平台
的软浮点
仿真,而LDC
使用主机平台的real
.
必须决定是要跨所有平台
(如GDC
使用的)的抽象精度
,还是在主机
上模拟目标精度
.重要的是newCTFE
必须可像当前前端
一样处理任意real_t
类型.Max
认为通过重构
是可行的.
Iain
指出,一旦合并DMD
和DRuntime
,就不再rebase
.