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显著改进了对LDCDLL支持,以使Phobos/DruntimeDLL使用.

Ali提出了重命名@trusted来反射@certified,但没人积极响应的;WalterImportC提出了他的位域实现,并建议D也可,讨论后,每个人都同意;Andrei提出了旧PR来加imported来内联导入,库较语言有些限制,但似乎同意继续.

10月

Martin报告说,LDCDLL支持运行良好,并已在Symmetry中成功使用.
在上个季度,Iain已向GCC提交了用于引导D编译器的补丁,并且正在等待批准.一旦有了这些,可删除当前的C++前端和库,并添加dmd(d前端),druntimephobos的主版本.这样,GDC将使用最新版本的D.

Iain一直在与Walter合作开发ImportC.Walter最近的PR添加了对va_startva_end支持,现在可干净编译预处理的zlib目标代码.Iain测试针对zlib的套件测试输出,以查看ImportC中是否存在隐藏运行时错误.选择zlib作为测试目标,因为在Phobos中使用DMC编译的,因此最好使用DMD编译它.

自动测试仪等问题.

如何把D编译器包放入更多发行版
DustMite的一些更改计划
磁盘使用

第一个:-chackaction=context导致发布版本中的链接器错误.目前,只在单元测试版本中使用开关很好.第二:不能简单自定义vibe.dDateTime.维护

他想使用DLangTour使Ali书中的所有示例都可运行.
Petar认为Hackerpilot(BrianSchott)开发的工具(dcd,dfmt,dsymbol等)非常有用,但在不同的存储库中时,为它们做出贡献很烦人.希望全部合并到一个存储库中.

如果改进编译器Phobos/DRuntime错误消息,很容易教学.如,RangeError无效数组索引,应报告具体哪个数字;失败断言应报告有问题的表达式;等等.这对每个人都有用,而不仅是初学者.

Martin,PetarAli表示强烈支持-preview=in.支持论点:
它避免了模板代码中带in ref参数,如,按引用传递int;编译器可优化为按值传递int.
不必自己决定是按引用|值传递const参数;编译器会在当前平台上为你做到最好.

消除了多个函数重载和/或staticif块来手动执行,简化了语言(且更容易理解).

消除了对-preview=rvaluerefparams(及该功能所基于的DIP,位置)的需要,并且禁止修改右值.
阿提拉和沃尔特有强烈保存意见.两个主要反对意见:
(A)如果-preview=rvaluerefparams坏了,或DIP错误,应该修复它.
(Walter),-preview=in别名和别名的问题取决于编译器是否优化为按值传递,且因平台而异;这是不一致,因为行为不可预测的;别名很少,使得这更有害,可默默地引入损坏内存.
不会杀死-preview=in.它需要更改,以便:
inconst scope ref;编译器不会基于平台特定的启发传递值.in接受右值引用.
编译器优化来可按in使用更合适启发式传递值(如,可证明没有别名).

右值
malloc和calloc

1月

罗伯特,nullable
修复
Mathias非常希望看到统一闭包和函数指针.普遍认为这是个很好目标.
Iain总结了自上次季度会议以来他在GDC上工作.他提出了从Armx86的与D的80位实数有关的交叉编译问题.如果说错了,Iain可纠正我,但问题是Arm不支持80位实数,因此前端需要模拟器来在x86交叉编译时正确处理编译时操作(CTFE,常折叠).沃尔特必须考虑.

该问题
更大的问题是修复aliasthis问题都可能导致严重的损坏.Andrei建议使用DIP来替换和修复aliasthis.
Walter谈到了新-vasm开关,他添加到DMD中的反汇编程序,及如何对工作有益.
查找超类

2月

dip,该DIP默认更改类中toString实现的运行时行为Exception,使其仅在设置环境变量时生成栈跟踪输出.
Vladimir指出栈跟踪输出仅在启用调试符号时有用.
Ali建议也许可配置为Exception,但应该始终打印Error.atilaMathias指出,想要的都可在主函数中抓住所有Exception.这不处理静态构造器,但他们说静态构造器应该是nothrow的.
Walter说不必DIP,可按增强请求发布在Bugzilla中.
Martin表示他查看了DRuntime源.可由用户配置栈跟踪处理器,因此可能不必增强请求.用户跟踪处理器设置为返回null的函数就足够了.
Martin后来说,他一直在单元测试模式发射模板.用-unittest编译时,与-allinst类似,但已显著减少.显示内存使用量和编译时间减少了36%.还可删.

伊恩
Iain说他在上个月DRuntime中删除了大约5,000LOC.除此外,他同意马丁稳定分支看法.
Ali报告说他完成了他的用d编程编辑,实体书也已更新.

沃尔特

ImportC

Walter说,他认为ImportC对D来说意义重大.他想让大家"克服困难",让它正常工作.他认为他的C扩展允许在C中导入D文件效果很好,他正在考虑提交它给C委员会.ImportC最大的困难是必须实现或放弃编译器扩展.
WalterIainMartin,他们是否打算在GDCLDC中实施ImportC.

Iain解释说,它在导入C头文件D程序时使用,但命令行上传递的C文件在通过GCC驱动并交给C编译器.Walter查询GDC是否可取命令行标志来绕过它而直接传递给ImportC而不是GCC,Iain说这是不可能的.他和沃尔特集思广益,但伊恩说GDC无法控制该main功能.他还指出,GCC已经是很好的C编译器,因此他认为不必绕过它.

Martin说目前可在LDC导入C标头并使用ImportC编译C源码,但他还未实现WalterDMD后端为ImportC实现的两个AST节点(初化列表和位域).他想在胶水层中处理并输出错误,指出LDC目前对ImportC的支持有限.实现位域需要一些工作.
Walter说他现在认为让C初化程序流入后端新的AST节点是一个错误.他计划更改实现,以便前端语义例程转换它们为D初化程序.
位域
Walter随后提出了D中的位域.他预料到这是显而易见的,无争议的特征,并对它的抵制感到惊讶.
第一个反对是它会破坏反射API.他指出,位域工作与反射API一起而不会破坏(调用者取按位域联的字段,因此可取其地址,并有从"位域"来的名字).可添加特征来专门取位域.

Martin说他对该解决方案很满意,但想知道在取位域地址时会怎样.沃尔特说会无法编译.Martin认为这损害了语言优雅性,而且已有了库解决方案("不是很好",但它有效).这触发了关于数据结构压缩机会(特别是在DMD中)的长时间讨论,这是否对DMD有益,与C的兼容性,库与语言解决方案,经验报告(Mathias描述了他的公司如何处理绑定中的位域而不是使用解决方案),改进解决方案使其更优雅,ImportC中的位域实现,C编译器位域布局等等.

Max一时兴起开始实现AndreiJohn正在开发(尚未提交)的DIP串插值.d作者指出强烈反对复杂的串插值功能.要易于解释.难以解释的都是行不通的.决定允许预览切换之前,他需要查看DIP.

现在完成命名参数,应该是更高优先级,Walter同意了.Walter强调命名参数要与结构初化器互换.为了向后兼容,必须保留结构初化器,但他希望命名参数可替换它们.
新问题

posted @   zjh6  阅读(16)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示