【Rust每日新闻】 2018-10-25 by blackanger

View this thread on steempeak.com
· @blackanger ·
【Rust每日新闻】 2018-10-25
### 「Rust每日新闻」调查问卷

还没有提交问卷的小伙伴,来填写一下问卷。

回头会把统计结果给大家分享,目前的统计结果很有意思,但是样本有点少,需要大家的配合。到时候把结果放出来,大家也可以对国内的Rust社区有一个了解。

[ 来填问卷喽 ]( https://wj.qq.com/s/2801182/f890 )

---

### 「小工具」tinyrick:形式比较自由的Rust build工具

该工具实现了一些宏,包装了Rust的一些构建命令,让开发者可以自定义自己的构建工具

[tinyrick](https://github.com/mcandre/tinyrick)

---

### 「工具」Reflow:统一代理规则

此程序可以自动充分利用所有代理,VPN和接口。

构建于网络层,可以自动让应用层选择每一个连接的代理。

[reflow](https://github.com/net-reflow/reflow)

[Read more Reddit](https://www.reddit.com/r/rust/comments/9qvn97/reflow_a_systemlevel_proxy_switcher_a_routing/)

---

### 「博文」四种语言中的代数数据类型

该文作者对Haskell、Scala、Rust和TypeScript四种语言提供的代数数据类型(ADT)进行了对比。

结论:

- 作者认为Haskell 的最简单
-  Rust的次之,几乎和Haskell一样简单
- Scala 排第三
- TypeScript最后,虽然比较冗长,但还是朝着简洁类型系统迈出了一大步

[Read More](https://blog.softwaremill.com/algebraic-data-types-in-four-languages-858788043d4e)

---

### Rust,Battlecode和Halite:初学者对AI编程竞赛的体验

该作者在学习Rust的第一个主要项目是Halite II 机器人,它是Two Sigma的AI编程竞赛的升级。广义上讲,它是一个游戏,在连续的二维地图上控制船队,寻路,并在舰与舰之间对战,资源管理等等,这些都有时间限制。

后来作者参加MIT的Battlecode 2018,对方的机器人引擎是Rust实现的,而作者的是用Python,所以作者的机器人总是不断的超时。后来作者也切换到了Rust解决了这个问题。

截止到今天,Halite III发布了,是一个资源管理游戏,支持Rust语言,大家可以去玩玩,用Rust打排名赛,截止到明年1月份。

[Read More ](https://www.reddit.com/r/rust/comments/9r48v3/rust_battlecode_and_halite_a_beginners_experience/)

[ halite.io ](https://halite.io/)

[Halite III代码仓库中可以找到Rust支持套件](https://github.com/HaliteChallenge/Halite-III/blob/master/starter_kits/Rust/src/main.rs)

---

### 「研究项目」「系列文章」Shifgrethor III: Rooting

本文是Shifgrethor GC的第三篇,withoutboats讲述了该GC标记算法中如何标记根对象。

前两篇内容索引:

- [I](https://t.me/rust_daily_news/1437)
- [II](https://t.me/rust_daily_news/1476)

精确跟踪GC一般有两种rooting策略:

- 栈映射。编译器生成栈的元数据,来记录栈帧中GC指针的位置。GC按此元数据通过遍历栈来标识所有活动对象的根。
- 运行时收集。运行时维护所有活动对象的root集合。遵循此模式的大多数Rust实现都使用了侵入式双向链表。

栈映射通常被认为是最一流的办法,但是Rust遇到了一些问题。首先,栈映射需要语言自身支持,用库无法实现。其次,栈映射只能映射到栈,而不是堆。

所以shifgrethor最初的实现是利用了Pin API实现了一个侵入式双向链表。因为root指针不能被移动。本文主要描述了该设计遇到Rust借用检查器,产生的一些问题,以及他如何解决。将来也许可能增加新的语法来支持这个。后面会写文章专门讨论这个想法。

下一篇文章将讲述如何通过root跟踪GC堆的对象。

[ Read More ](https://boats.gitlab.io/blog/post/shifgrethor-iii/)

---


「博文」Rust学习心得

该文作者是《Ruby原理剖析》原作者Pat写的。他现在也开始学习Rust,尝试用Rust改写之前的Ruby脚本,然后在这个过程中有一些心得,通过该文进行记录。

感兴趣的可以看看

[Read More](http://patshaughnessy.net/2018/10/24/summer-school-with-the-rust-compiler)

---

每日新闻订阅地址:

- [Telgram Channel](https://t.me/rust_daily_news )
- [阿里云语雀订阅](https://www.yuque.com/chaosbot/rustnews)
- [Stemmit](https://steemit.com/@blackanger)
- [Rust.cc论坛](https://rust.cc)
- [GitHub](https://github.com/RustStudy/rust_daily_news)

欢迎通过GitHub issues投稿。
👍  
properties (23)
post_id64,875,748
authorblackanger
permlinkrust-2018-10-25
categoryrust
json_metadata{"tags":["rust","rust-lang","daily-news"],"links":["https:\/\/wj.qq.com\/s\/2801182\/f890","https:\/\/github.com\/mcandre\/tinyrick","https:\/\/github.com\/net-reflow\/reflow","https:\/\/www.reddit.com\/r\/rust\/comments\/9qvn97\/reflow_a_systemlevel_proxy_switcher_a_routing\/","https:\/\/blog.softwaremill.com\/algebraic-data-types-in-four-languages-858788043d4e","https:\/\/www.reddit.com\/r\/rust\/comments\/9r48v3\/rust_battlecode_and_halite_a_beginners_experience\/","https:\/\/halite.io\/","https:\/\/github.com\/HaliteChallenge\/Halite-III\/blob\/master\/starter_kits\/Rust\/src\/main.rs","https:\/\/t.me\/rust_daily_news\/1437","https:\/\/t.me\/rust_daily_news\/1476","https:\/\/boats.gitlab.io\/blog\/post\/shifgrethor-iii\/","http:\/\/patshaughnessy.net\/2018\/10\/24\/summer-school-with-the-rust-compiler","https:\/\/t.me\/rust_daily_news","https:\/\/www.yuque.com\/chaosbot\/rustnews","https:\/\/steemit.com\/@blackanger","https:\/\/rust.cc","https:\/\/github.com\/RustStudy\/rust_daily_news"],"app":"steemit\/0.1","format":"markdown"}
created2018-10-25 03:15:57
last_update2018-10-25 03:15:57
depth0
children0
net_rshares500,722,368
last_payout2018-11-01 03:15:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length2,517
author_reputation29,136,973,866
root_title"【Rust每日新闻】 2018-10-25"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)