d的6月至2月月会议
目标
为导向的任务清单代替旧的愿景
文件,维护当前主要的长期目标
和一些更小的短期目标
列表,分解成具体任务
.
如,主要的长期目标是内存安全
(如,特定错误,完全启用DIP1000
支持)和Phobosv2
.还讨论了其他目标,如实现命名参数
,改进编译时自省
,改进Phobos
的@safety
等等.
如何改进错误消息,
Walter
建议大家针对遇到的,需要改进
的特定错误消息
提出Bugzilla
问题.Walter
还表示,愿意接受
命令行开关实现,该开关使错误消息
中的URL
可提供更多信息
.
Phobosv2
是官方计划吗?这对我来说是新闻!有没有机会一睹它的计划?
总体目标
是不会取代当前的Phobos
,而是与它并排
.更改/改进/新功能
在std.v2
命名空间中,可与现有的std
包一起导入.
7月
Razvan
来监督Bugzilla
优先问题进展.
系统变量
DIP1000
上.讨论主题:有许多接受无效
的错误;一些与DIP1000
无关的更改已集中在-preview=dip1000
开关后面;如何帮助新的D程序员
快速掌握DIP1000
;DIP1000
的过渡路径;及预览
开关和重大变化的关系.
当没有已知
方法可从函数
中转义指针
时.dip1000
就好了.
8月
抛按属性
cov与o问题
github上
提议项目
旨在解决当两个依赖项
又依赖于第三个依赖项
的不同版本
时dub
出现的问题.目前,配音会报错.该提案要求提供两个新的编译器开关
,dub
可利用它们来解决版本差异
,d作者
建议探索dmd
是否存在-mv
可用switch
来解决问题.
Martin.Kinkelin
显著改进了对LDC
的DLL
支持,以使Phobos/Druntime
按DLL
使用.
Ali
提出了重命名@trusted
来反射@certified
,但没人积极响应的;Walter
为ImportC
提出了他的位域
实现,并建议D
也可,讨论后,每个人都同意;Andrei
提出了旧PR来加imported
来内联导入
,库较语言有些限制,但似乎同意继续.
10月
Martin
报告说,LDC
的DLL
支持运行良好,并已在Symmetry
中成功使用.
在上个季度,Iain
已向GCC
提交了用于引导D编译器
的补丁,并且正在等待批准.一旦有了这些,可删除当前的C++
前端和库,并添加dmd
(d前端),druntime
和phobos
的主版本.这样,GDC
将使用最新版本的D
.
Iain
一直在与Walter
合作开发ImportC
.Walter
最近的PR
添加了对va_start
和va_end
支持,现在可干净编译预处理的zlib
为目标代码
.Iain
测试针对zlib
的套件测试输出
,以查看ImportC
中是否存在隐藏
运行时错误.选择zlib
作为测试目标,因为在Phobos
中使用DMC
编译的,因此最好使用DMD
编译它.
自动测试仪
等问题.
如何把D编译器
包放入更多发行版
DustMite
的一些更改计划
磁盘使用
第一个:-chackaction=context
导致发布
版本中的链接器
错误.目前,只在单元测试
版本中使用开关
很好.第二:不能简单自定义vibe.d
中DateTime
.维护
他想使用DLangTour
使Ali
书中的所有示例
都可运行.
Petar
认为Hackerpilot(BrianSchott)
开发的工具(dcd,dfmt,dsymbol
等)非常有用,但在不同的存储库
中时,为它们做出贡献很烦人.希望全部合并
到一个存储库
中.
如果改进编译器
和Phobos/DRuntime
的错误消息
,很容易教学.如,RangeError
无效数组索引,应报告具体
是哪个数字
;失败断言
应报告有问题的表达式
;等等.这对每个人
都有用,而不仅是初学者
.
Martin,Petar
和Ali
表示强烈支持-preview=in
.支持论点:
它避免了模板代码
中带in ref
参数,如,按引用传递int
;编译器
可优化为按值
传递int
.
不必自己决定
是按引用|值
传递const
参数;编译器
会在当前平台
上为你做到最好
.
消除了多个函数重载
和/或staticif
块来手动执行
,简化了语言(且更容易理解).
消除了对-preview=rvaluerefparams
(及该功能所基于的DIP
,位置)的需要,并且禁止修改右值.
阿提拉和沃尔特
有强烈保存意见.两个主要反对意见:
(A)
如果-preview=rvaluerefparams
坏了,或DIP
错误,应该修复它.
(Walter)
,-preview=in
别名和别名
的问题取决于编译器
是否优化
为按值传递,且因平台而异
;这是不一致,因为行为
是不可预测
的;别名很少,使得这更有害,可默默地引入损坏内存
.
不会杀死-preview=in
.它需要更改,以便:
in
即const scope ref
;编译器不会基于平台
特定的启发传递值
.in
接受右值引用
.
编译器优化
来可按in
使用更合适
的启发式
传递值(如,可证明没有别名
).
1月
罗伯特,nullable
修复
Mathias
非常希望看到统一闭包和函数
指针.普遍认为这是个很好目标
.
Iain
总结了自上次季度会议
以来他在GDC
上工作.他提出了从Arm
到x86
的与D的80
位实数有关的交叉编译
问题.如果说错了,Iain
可纠正我,但问题是Arm
不支持80
位实数,因此前端
需要模拟器
来在x86
交叉编译时正确处理
编译时操作(CTFE,常折叠)
.沃尔特必须考虑.
该问题
更大的问题是修复aliasthis
问题都可能导致严重的损坏.Andrei
建议使用DIP
来替换和修复aliasthis
.
Walter
谈到了新-vasm
开关,他添加到DMD
中的反汇编
程序,及如何对工作有益.
查找超类
2月
dip,该DIP
默认更改类中toString
实现的运行时行为Exception
,使其仅在设置环境变量
时生成栈跟踪输出
.
Vladimir
指出栈跟踪输出
仅在启用调试符号
时有用.
Ali
建议也许可配置为Exception
,但应该
始终打印Error
.atila
和Mathias
指出,想要的都可在主函数
中抓住所有Exception
.这不处理静态构造器
,但他们说静态构造器
应该是nothrow
的.
Walter
说不必DIP
,可按增强请求
发布在Bugzilla
中.
Martin
表示他查看了DRuntime
源.可由用户配置
栈跟踪处理器,因此可能不必增强请求
.用户跟踪处理器
设置为返回null
的函数就足够了.
Martin
后来说,他一直在单元测试模式
下发射模板
.用-unittest
编译时,与-allinst
类似,但已显著减少.显示内存使用量和编译时间
减少了36%
.还可删.
伊恩
Iain
说他在上个月
从DRuntime
中删除了大约5,000
个LOC
.除此外,他同意马丁
稳定分支看法.
Ali
报告说他完成了他的用d编程
编辑,实体书也已更新.
沃尔特
ImportC
Walter
说,他认为ImportC
对D来说意义重大
.他想让大家"克服困难
",让它正常工作.他认为他的C扩展
允许在C中导入D文件
的效果
很好,他正在考虑提交它给C
委员会.ImportC
最大的困难是必须实现或放弃
的编译器扩展
.
Walter
问Iain
和Martin
,他们是否打算在GDC
和LDC
中实施ImportC
.
Iain
解释说,它在导入C头文件
至D程序时
使用,但命令行
上传递的C文件
在通过GCC
驱动并交给C编译器
.Walter
查询GDC
是否可取命令行标志
来绕过它而直接传递给ImportC
而不是GCC
,Iain
说这是不可能的.他和沃尔特集思广益,但伊恩说GDC
无法控制该main
功能.他还指出,GCC
已经是很好的C编译器
,因此他认为不必绕过它.
Martin
说目前可在LDC
中导入C标头
并使用ImportC
编译C源码,但他还未实现Walter
在DMD
后端为ImportC
实现的两个
新AST
节点(初化列表和位域
).他想在胶水层
中处理并输出
错误,指出LDC
目前对ImportC
的支持有限.实现位域
需要一些工作.
Walter
说他现在认为让C初化
程序流入后端新的AST
节点是一个错误.他计划更改实现,以便前端语义
例程转换
它们为D初化
程序.
位域
Walter
随后提出了D中的位域
.他预料到这是显而易见的,无争议
的特征,并对它的抵制
感到惊讶.
第一个反对
是它会破坏反射API
.他指出,位域
工作与反射API
一起而不会破坏(调用者
取按位域联
的字段,因此可取其地址
,并有从"位域"来的名字).可添加特征
来专门取位域
.
Martin
说他对该解决方案
很满意,但想知道在取位域
地址时会怎样.沃尔特说会无法编译.Martin
认为这损害了语言优雅性
,而且已有了库解决方案("不是很好",但它有效
).这触发了关于数据结构压缩
机会(特别是在DMD
中)的长时间讨论,这是否对DMD
有益,与C的兼容性
,库与语言
解决方案,经验报告(Mathias
描述了他的公司如何处理绑定中的位域
而不是使用库
解决方案),改进库
解决方案使其更优雅,ImportC
中的位域实现,C
编译器位域布局等等.
Max
一时兴起开始实现Andrei
和John
正在开发(尚未提交)的DIP
的串插值.d作者
指出强烈反对
复杂的串插值
功能.要易于解释.难以解释的都是行不通的.决定允许预览
切换之前,他需要查看DIP
.
现在完成命名参数
,应该是更高优先级,Walter
同意了.Walter
强调命名参数
要与结构初化器
互换.为了向后兼容,必须保留结构初化器
,但他希望命名参数
可替换它们.
新问题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现