< 返回版块

ChaosBot 发表于 2018-10-18 11:53

Tags:rustnews

「研究项目」「系列文章」shifgrethor:Rust实现的垃圾收集库

Rust官方核心人员withoutboats开发了一个内存安全的垃圾收集库。它只是一个研究项目,并不能实际使用。

当然也可以用于学习目的,了解Rust的语言能力如何用于编码安全API中的复杂内存管理要求。

从长远来看,shifgrethor很可能会成为可用的高性能的垃圾回收器。当然,该项目不太可能成为Rust项目的常用功能。也就是说,请不要理解为「Rust要加GC了」。

shifgrethor的存在,只是为了要寻找一个实用的场景,用户可以使用GC来处理复杂的内存管理。比如涉及共享所有权的时候,可以使用动态的方式来管理内存。

shifgrethor是一个精准的跟踪GC

  • 允许循环引用。不同于引用计数,这种GC不会导致内存泄漏。
  • 精准的GC。它可以确切地知道哪些数据是活跃的,哪些不是。

Shifgrethor允许完全自由引用

  • 可以解引用GC指针,可正常获得堆中的对象
  • GC堆中的对象可以持有不在GC堆中对象的借用/引用,即使它们在栈上
  • GC堆中的对象可以拥有栈中的对象。
  • 可以讲GC指针从栈上移动到堆上。

GC是一种共享所有权,因此还需要内部可变性。

shifgrethor

博文 Read


为Cargo释放更多空间

Rust虽好,但是Cargo太贪空间

作者推荐了两个技巧节省空间:

  • 使用$HOME /.cargo
  • 使用semver crate

Read

reddit还有更多讨论: Read


「小工具」rr:用于重构/重命名的CLI工具

rr


「新语言」Rust实现的高效编程语言Formality

可用于写智能合约

特性:

  • 具有形式证明,可用于定理证明,Readme里还有一个证明a + b == b + a的示例
  • 无GC
  • 兼容EVM ,可以运行以太坊合约
  • 兼容GPU,可以编译为OpenCL/CUDA
  • 简单,2k行代码实现

看上去目前还未完善,还有很多工作要做

formality


「视频」Bay Rust Meetup上排名前100的crate介绍

该视频介绍了Rust生态系统中前100个crate

文字总结:http://thume.ca/crates/

Read


「实验项目」rails/rails_fast_attributes: 使用Rust提升Rails性能

刚在Ruby Summit China大会上讲完《Ruby的好朋友-Rust》,今天就看到了这个

是Diesel作者用Helix来帮助提升ActiveRecord的属性映射性能 ​​​​

Helix是Cargo作者带头实现的方便用Rust扩展Ruby的库

rails/rails_fast_attributes


「社区」新包 pin-cell

官方核心开发人员withoutboats开发了新的crate,pin-cell,类似于RefCell,但PinCell是针对pinned可变引用的内部可变类型。

为什么PinCell很有用?

从一个object到此object内部包含object的操作叫做「projection」,比如从结构体到其包含的字段,从Vec到其中的元素。Rust中可以按值、按引用、按可变引用来进行projection。

讲pinned引用转换为某些类型的操作叫做「pin projection」,当前讲pinned引入到RefCell是不安全的,所以必须用PinCell来安全处理「projection」。

Read


「社区」Rust SGX SDK v1.0.4发布

Rust SGX SDK由百度X-Lab维护,是为英特尔SGX enclaves开发安全可信计算应用程序的便捷框架。

在此版本中,添加了对最新英特尔SGX SDK 2.3.1的支持,并且(世界上首次)启用了基于SGX远程证明的内存安全Enclave-Enclave / Untrusted-to-Enclave TLS通信。

Read


Rust与编程三定律

本文作者模仿阿西莫夫机器人三定律自创的叫信息学三定律(Three Laws of Informatics)

(感觉叫编程三定律好多了)

  • 程序必须正确(Programs must be correct.)
  • 程序必须可维护,但不能违反第一条定律(Programs must be maintainable, except where it would conflict with the First Law.)
  • 程序必须高效,但不能违反前两条定律(Programs must be efficient, except where it would conflict with the First or Second Law.)

(好像有点道理)

本文很长,作者比较了众多语言,从编程语言发展历史,阐述了编程三定律背后的意义。从这个角度来看,Rust应该是目前唯一遵循此三定律的语言。

Read


「系列文章」Gfx-hal指南Part 2:顶点缓冲区(Vertex buffers)

Read


评论区

写评论
Jonir Rings 2018-10-22 10:52

三定律的解释原文很有趣~~老司机的经验之谈很值得我这种新上路的参考啊

1 共 1 条评论, 1 页