专栏首页Rust语言学习交流【Rust日报】 2020-01-31 Rust編譯模型災難

【Rust日报】 2020-01-31 Rust編譯模型災難

rust 1.41了!

除了一些功能更新

重要的是不再支援32-bit Apple產品了

read more

open-source security key

google 使用rust實作了 OpenSK

支援 FIDO U2F, FIDO2 兩種標準

read more

Rust編譯模型災難

文章作者Brian Anderson是Rust編程語言 及其姊妹項目Servo Web瀏覽器的共同創始人之一。

他現在在PingCAP擔任高級數據庫工程師。

他希望解決TiKV編譯緩慢的問題

在開發模式下進行完全重建可能需要15分鐘,在發布模式下可能需要30分鐘。

對於大型系統項目的開發人員來說,這聽起來可能並不那麼糟糕,

但是它比許多開發人員對現代編程環境所期望的要慢得多。

TiKV是一個相對較大的Rust代碼庫,

有200萬行程式碼。相比之下,Rust本身包含300萬行,而Servo則包含270萬行。

編程語言設計充滿了權衡利弊。這些基本選擇之一是runtime性能與編譯性能,

Rust團隊幾乎總是選擇runtime性能而不是編譯更快速。

如果快速編譯時間不是Rust設計的核心原則,那麼Rust的核心設計原則是什麼?這裡有一些:

實用性-它應該是一種可以在現實世界中使用的語言。

實用主義-它應該要讓人覺得可用,並且將其整合到之前的系統中。

內存安全性-它必須強制執行內存安全性,並且不能接受記憶體存取錯誤。

性能-它必須與C++在一樣快。

並發-它必須提供現代的解決方案來編寫並發代碼。

但這並不是說Rust設計師沒有在快速編譯時間中考慮任何因素。

但因為利弊的權衡,編譯器的性能還是愈來愈慢。

當作者每天使用Rust編譯器工作時,

電腦上至少擁有三份程式碼是很常見的,在其他所有版本都在構建和測試的同時。

我將開始在工作區1編寫程式,開始編譯,然後跳到工作區2,

開始在工作區2工作,編譯後再切換回工作區1。不斷進行在不同的工作區中切換。

雖然在2019年Rust的編譯速度有了提升,但目前Rust還是編譯的不夠快。

下一集會是作者如何優化Rust的編譯速度以達到產品經理的期待

read more

Bastion 0.34

什麼是Bastion?

Bastion是一個高度可用的容錯runtime系統,具有面向動態調度的輕量級流程模型。

它為輕量級過程實現提供了諸如並發之類的參與者模型,

並有效地利用了所有系統資源,並保證了每次傳送最多的消息。

基於消息的通信與actor model的Mesh網路。

runtime容錯能力使其成為分佈式系統的理想選擇。

具有NUMA感知和仿射緩存SMP執行程序的完全異步runtime。

監督系統使管理生命週期變得容易。

目前哪邊有用到Bastion?

SkyNet (Discord 機器人,用來重新發送已刪除的訊息)

在AWS Lambda中,我們使用Bastion啟用重試機制,並嘗試不同的解析策略來處理數據。

read more

Tide 0.6 了

Tide是一個還不成熟的 web framework

這一版增加了對CORS的支持與新的cookies API

也增加了一些新語法讓人用起來更簡單

read more

oreboot

oreboot是coreboot的分支

https://zh.wikipedia.org/wiki/Coreboot

來自維基百科的說明

coreboot,原名LinuxBIOS,是一個旨在取代大多數電腦中專有韌體(BIOS或UEFI)的軟體專案,它採用輕量級韌體設計,只執行載入和執行現代32位元或64位元作業系統所需的最少量任務。

Oreboot當前僅支援LinuxBoot。

Oreboot想利用Rust的安全性製作一個安全穩定快速的BIOS程式。

read more

本文分享自微信公众号 - Rust语言学习交流(rust-china),作者:damody

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-01-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【Rust日报】2019-09-18 async-std v0.99.6 版本更新

    这个版本增加了几个新的组合器、work-stealing 算法执行器,以及使用 IntoStream 和 FromStream 的 collect 流的能力。

    MikeLoveRust
  • 【Rust日报】2019-11-27 Tokio 0.2 发布

    cheats.rs —— Rust 备忘录网站用示意图讲解了 Rust 的各种数据类型,非常直观

    MikeLoveRust
  • 【Rust日报】 2019-07-11:重磅:Rust 在 techempower 上已经霸榜了,hyper 拿下头名

    Golomb-compressed sets(GCS)是一种空间利用率很高的数据结构,可以用于判断一个元素是否属于这个集合。它与 Bloom Filter 非常...

    MikeLoveRust
  • 【Rust日报】2020-07-30 fixed_vec减少Rust数组冗余边界检查

    rust的Vec在使用索引的时候总会触发边界检查,在某些时候降低了程序的性能。通常解决方法是尽可能使用迭代器来处理数组。

    MikeLoveRust
  • 英国警方,即将窥探你的网络足迹

    大数据文摘
  • [译]厌倦了NullPointException?Optional拯救你!

    有人说,当你处理过了空指针异常才真正成为一个Java开发者。抛开玩笑话不谈,空指针确实是很多bug的根源。Java SE 8引入了一个新的叫做java.util...

    weishu
  • Educational Codeforces Round 21(A.暴力,B.前缀和,C.贪心)

    A. Lucky Year time limit per test:1 second memory limit per test:256 megabytes i...

    Angel_Kitty
  • 【Rust日报】2019-11-26 - 跨平台原生Rust GUI库,并且受到赞助了

    重要的特性:同时支持本地GUI和Web UI。就是一份代码,可以编译到不同平台上运行。

    MikeLoveRust
  • 使用Java8中的Optional类来消除代码中的null检查

    lw900925.github.io/java/java8-optional.html

    JAVA葵花宝典
  • 【笔记】《计算机图形学》(6)——变换矩阵

    这系列的笔记来自著名的图形学虎书《Fundamentals of Computer Graphics》,这里我为了保证与最新的技术接轨看的是英文第五版,而没有选...

    ZifengHuang

扫码关注云+社区

领取腾讯云代金券