C++委员会拒绝Rust风格安全模型提案

据提案联合作者透露,尽管内存安全问题持续引发担忧,C++标准委员会已放弃了一项旨在创建严格安全语言子集的详细提案。

"Rust安全模型在委员会中不受欢迎。我这边的进一步工作也不会改变这种情况。Profiles方案赢得了这场争论。"

"安全与安保工作组投票决定优先考虑Profiles而非Safe C++。如需最新进展,请咨询Profiles团队。Safe C++项目不会继续推进。"Sean Baxter在今年6月如是说。

当开发者如Simone Bellavia注意到该提案的周年纪念时,这个话题重新浮出水面。一年前,Baxter告诉The Reg,该项目将使C++开发者获得Rust级别的内存安全性,而无需学习新语言。"Safe C++防止用户编写不安全的代码,"他说,"这包括借用检查等编译时智能分析来防止释放后使用漏洞,以及用于类型安全的初始化分析。"

Safe C++支持代码的渐进式迁移,因为它只适用于安全上下文中的代码。现有的不安全代码将照常运行。

即使是提案是否被放弃这个问题本身也不够明确。C++委员会成员兼C++演进工作组(EWG)联合主席Erich Keane表示,Baxter的提案"获得了鼓励性投票,大约一半(20/45)的人支持Sean的论文,30/45的人支持Profiles工作(6人中立)...Sean完全可以继续这项工作,委员会中的许多人都希望看到他在标准化方面做出进一步努力。"

对此,Baxter回应道:"Rust安全模型在委员会中不受欢迎。我这边的进一步工作不会改变这种情况。Profiles赢得了争论。"

他补充说,EWG采纳的语言演进原则包括"我们应该避免要求安全或纯函数注解,这种注解的语义是安全或纯函数只能调用其他安全或纯函数"。他表示,这是一个"不可调和的设计分歧。安全函数着色是Rust安全模型的核心"。

C++发明者Bjarne Stroustrup支持Profiles方案,他告诉我们,该方案的理念是:"我希望获得这套保证,然后它将被强制执行。"据Stroustrup说,"令人遗憾的是,标准委员会感到困惑,没有保证这将包含在C++ 26中。"

话虽如此,Profiles方案同样备受争议,有人抱怨"Profiles看起来不像任何已建立的可行解决方案,没有实现,而且今年早些时候也未能进入C++ 26标准,委员会反而要求另一份白皮书"。

Baxter不相信Profiles能够实现目标。"如果Profiles有成功的机会,我会实现它。但它们永远不会成功。我在这里提供了许多失败原因的例子:https://www.circle-lang.org/draft-profiles.html,"他昨天在Hacker News上说。

他补充道:"整个标准库都是不安全的。我提议了一个严格安全的std2,但被拒绝了。"

围绕如何让C++更安全的争议可能意味着转向不同的语言是更好的解决方案,无论是Rust,还是谷歌实验性的"C++继任者"Carbon项目等其他选择,后者的路线图显示可能在"2028年之后"发布1.0版本语言。

Q&A

Q1:Safe C++提案的核心功能是什么?

A:Safe C++是一个旨在创建严格安全C++语言子集的提案,其核心功能是防止用户编写不安全代码,包括借用检查等编译时智能分析来防止释放后使用漏洞,以及用于类型安全的初始化分析。它支持代码的渐进式迁移,只适用于安全上下文中的代码。

Q2:为什么C++委员会拒绝了Safe C++提案?

A:据提案作者Sean Baxter表示,Rust安全模型在委员会中不受欢迎。委员会在投票中选择优先考虑Profiles方案而非Safe C++。另外,委员会采纳的语言演进原则与Safe C++的安全函数着色机制存在不可调和的设计分歧。

Q3:Profiles方案与Safe C++有什么不同?

A:Profiles方案由C++发明者Bjarne Stroustrup支持,理念是"我希望获得这套保证,然后它将被强制执行"。但该方案同样备受争议,被批评不像任何已建立的可行解决方案,没有实现,且未能进入C++ 26标准。提案作者Baxter认为Profiles永远不会成功。


六自由度机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代码实现)内容概要:本文档围绕六自由度机械臂的ANN人工神经网络设计展开,详细介绍了正向与逆向运动学求解、正向动力学控制以及基于拉格朗日-欧拉法推导逆向动力学方程的理论与Matlab代码实现过程。文档还涵盖了PINN物理信息神经网络在微分方程求解、主动噪声控制、天线分析、电动汽车调度、储能优化等多个工程与科研领域的应用案例,并提供了丰富的Matlab/Simulink仿真资源和技术支持方向,体现了其在多学科交叉仿真与优化中的综合性价值。; 适合人群:具备一定Matlab编程基础,从事机器人控制、自动化、智能制造、电力系统或相关工程领域研究的科研人员、研究生及工程师。; 使用场景及目标:①掌握六自由度机械臂的运动学与动力学建模方法;②学习人工神经网络在复杂非线性系统控制中的应用;③借助Matlab实现动力学方程推导与仿真验证;④拓展至路径规划、优化调度、信号处理等相关课题的研究与复现。; 阅读建议:建议按目录顺序系统学习,重点关注机械臂建模与神经网络控制部分的代码实现,结合提供的网盘资源进行实践操作,并参考文中列举的优化算法与仿真方法拓展自身研究思路。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值