热门
最新
红包
立Flag
投票
同城
我的
发布
勇敢牛牛Smile
4 年前
truelei1370165441
#2022 以后会在这个博客不定期分享,计算机视觉领域、算法设计与分析、通信原理、信号与系统等一些重难点的的心得体会,本人总结有不正确或不完善的,还请各位大佬批评指正,一起共同进步!
人工智能时代
下一条:
将YJIT Ruby编译器移植到Rust的经验最近Reddit上有一篇博文:“去年,我在Shopify的团队实现了YJIT,一个用于CRuby的新的即时编译器(JIT)。因为CRuby代码库是用C99实现的,所以我们也决定用C99实现YJIT,这样与CRuby代码库的其他部分的集成就会尽可能的简单。然而,我们发现用纯C语言实现JIT编译器很快就变得乏味了,而且随着我们不断为YJIT增加功能,我们发现我们项目的复杂性变得难以管理。”虽然这篇文章是给Rust老手看的,但实际上一直在试图纠正新手对不安全区块的一个常见误解:(1)unsafe并没有放松对现有语言结构的任何检查,也没有取消对如何使用它们的任何要求。它只是允许你访问额外的语言特性。(2)无论你是否使用as和raw指针强行为同一分配创建第二个&mut,LLVM IR仍然会得到noalias这样的注解,因此,仍然会调用未定义行为(Undefined Behaviour),所以说unsafe不遵守这些规则,有点像暗示你可以走到高速公路上,因为unsafe拆除了安全栅栏。unsafe块不是为编译器准备的。它们是为其他人准备的......尤其是未来十年或更久以后新加入的团队成员。Rust的很多安全特性都让人意识到"经验证明,单个人也许能写出好的C和C++,但一群人却不能"。
立即登录