【Rust日報】 2019-07-31:Debian Buster 將會預裝Rust編譯器

「SO問答」既然兩個可變引用不能別名爲啥Rust編譯器沒有對其進行優化

#Rust #stackoverflowjava

該問題的做者描述,好比C代碼中:python

void adds(int *a, int *b) {
*a += *b;
*a += *b;
}

兩個指針a和b有可能互爲別名(倆指針指向同一數據),因此clang在編譯該代碼的時候,會在寄存器中存儲兩次(%rsi),%eax來防止這種狀況。固然也可使用restrict關鍵字來對參數進行約束,顯式地告訴編譯器這倆指針不可能互爲別名(但在C語言中,restrict關鍵字僅僅是告訴編譯器能夠優化,它不會幫助開發者進行檢查,也就是說,極可能由於開發者沒有遵循此契約而引起未定義行爲)。從而生成的優化代碼中只存儲一次寄存器。編程

可是做者發如今Rust中雖然有編譯器檢查,兩個可變引用不存在互爲別名的狀況,可是編譯器並無所以而進行任何優化:api

#![crate_type = "staticlib"]
#[no_mangle]
fn adds(a: &mut i32, b: &mut i32) {
*a += *b;
*a += *b;
}

因此他比較擔心,是否是在Safe Rust之下也可能存在別名?安全

該貼的回覆給出了答案:微信

Rust最初啓用了LLVM的noalias屬性,但這致使了非預期的編譯結果(算是LLVM的一個Bug,等issues 54878修復之後就正常了)。如今也可使用-Zmutable-noalias=yes參數進行編譯就能獲得預期結果。網絡

  • Read More異步

  • issues/54878async

「學術」使用類型化指針反轉進行高效析構

#TypedPointerReversal #paper編程語言

HAL INRIA貌似是法國國家信息及自動化研究院。該論文提出了ML風格編程語言的資源管理模型,旨在兼容OCmal理念和運行時模型,提議使用析構函數擴展OCmal,在系統編程全部權和借用模式之上來提高OCmal的安全性、效率。

沒錯,借用了Rust/C++中的一些概念。感興趣的能夠看看,對資源管理應該會有深刻的瞭解。

該組織已經發布了多篇關於Rust研究的論文了。

Read More

Python和Rust實現神經網絡

#NeuralNetworks

這篇文章是做者探索Rust是否適合數據科學的工做。他分別用python和rust實現了一個小型的神經網絡,而後進行了性能測試,利用火焰圖進行分析,最終得出一個結論:

  • 大部分時間都花在作線性代數上,無論Rust仍是Python,因此使用Rust永遠也不會有10倍的加速。

  • Python進行優化之後,性能能夠提高兩倍,Rust原則上能夠進行相同的優化,但目前ndarray還不支持2維數據以上的矩陣乘法。

  • 做者認爲,Rust目前尚未作好勝任數據科學的工做。將來還須要更完善的生態系統。

Read More

關於Rust依賴安全的最新思考

#RestSec

很高興有人在幫咱們思考這個問題:當一個crate依賴愈來愈多的crates時,咱們有什麼辦法能夠審計它們?

Read More

paperclip: OpenAPI的代碼生成工具

#openapi #WIP

0.3發佈,支持OpenAPI V2接口。

paperclip

rocket-lamb: 方便在aws lambda上面跑rocket的庫

#rocket

rocket-lamb

async-injector: Rust的異步反應式依賴注入庫

#async

新庫,WIP狀態。該庫是從做者的另一個項目OxidizeBot(高性能Twitch機器人)中提取出來的。

  • Read More

  • async-injector

  • OxidizeBot

「討論」Rust如何實現代數效應

#AlgebraicEffects

看樣子該貼做者是一個函數式粉絲。評論回覆中有人用Rust實現了一個代數效應庫effective-rust。

代數效應目前是一個學術/實驗概念,它容許你經過使用相似於throw catch的機制來改變稱爲「效果」的某些計算元素(如函數調用,打印語句等)。

  • Reddit 討論

  • effective-rust

  • Algebraic Effects相關文章

  • what-does-algebraic-effects-mean-in-fp

Debian Buster 將會預裝Rust編譯器

#Debian

2019年7月6日發佈的Debian GNU/Linux 10 「Buster」 操做系統將預裝Rust編譯器。


From 日報小組 Chaos

日報訂閱地址:

獨立日報訂閱地址:

  • Telgram Channel

  • 阿里雲語雀訂閱

  • Steemit

  • GitHub

社區學習交流平臺訂閱:

  • Rust.cc 論壇: 支持 rss

  • Rust Force: 支持 rss

  • 微信公衆號:Rust 語言學習交流


本文分享自微信公衆號 - Rust語言中文社區(rust-china)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索