< 返回版块

odd-cat 发表于 2022-01-19 10:27

Tags:rust,日报,paudle,yew,trunk,wordle,Rust-For-Linux,YJIT,lipstack,relm4

Paudle: 使用Yew编写的类似Wordle的猜字谜游戏

Paudle: A Wordle-like in Rust using Yew

Paudle是对Josh Wardle的优秀文字游戏Wordle的重新实现。这个版本是用YewRust制作的。作者仿照了Wordle的颜色和布局(当然还有游戏逻辑),但实现都是原创的。 与最初的版本不同,这一版本完全是基于客户端的,因此没有什么可以阻止你作弊——如果你能找出如何从运行的WASM中提取当前单词的话。

运行步骤:

# 安装wasm target
rustup target add wasm32-unknown-unknown
# 安装trunk
cargo install trunk
# 拉取paudle代码仓库
git clone https://github.com/pmsanford/paudle && cd paudle
# 运行
trunk serve
# 然后在浏览器打开 http://localhost:8080/ 即可

wordle

关于Wordle

Wordle 和填字游戏都属于字谜游戏的一种。

这个游戏每天更新一期,玩家唯一目标,就是在六次尝试机会之内,猜出一个五个字母的单词。 为此,游戏界面是一个 5×6 的方块阵列。玩家通过下方键盘输入猜测结果后,游戏会给字母方块标上颜色,提示猜测的准确性:

绿色 🟩:说明答案里有这个字母、所在位置也正确;

黄色 🟨:说明答案里有这个字母、但不在这个位置;

灰色 ⬜️:说明答案里没有这个字母。

然后,玩家根据获得的提示继续尝试,直到猜对答案,或者用尽六次机会。

参考:

Rust For Linux内核补丁使用升级的Rust工具链进行修订,构建改进

Rust For Linux Kernel Patches Revised With Upgraded Rust Toolchain, Build Improvements

Miguel Ojeda已经发布了他的第三次补丁迭代,这些补丁实现了支持Linux内核中Rust编程语言的基本基础设施。 早在12月份就有了v2补丁,而现在刚刚过了一个月,3版补丁就可以进行测试了。

随着Rust编译器版本已经确定,更新后的Rust for Linux内核代码现在迁移到了Rust 1.58版本。此次补丁新增特性包括自动检测是否有合适的Rust工具链可用、其他构建系统改进、改进的文档以及其他通用代码清理和改进。

Miguel指出,在Rust方面也有一些改进,“我们需要的一个不稳定的特性,-Zsymbol-mangling-version=v0将在Rust 1.59.0中得到稳定。另一个特性,maybe_uninit_extra 可能会在Rust 1.60.0中得到改进。”

Linux内核的Rust基础设施以及一些基本的示例代码目前使这个v3修补程序系列有33.5k行新代码。

请参阅内核邮件列表上的v3补丁以供查看。

希望今年Rust能够进入Linux内核的主线!

将Ruby 的 JIT 编译器YJIT迁移到Rust

Porting ruby YJIT to Rust

YJIT 是用于 Ruby 的 JIT 编译器,它采用了惰性基础块版本管理 (lazy Basic Block Versioning, LBBV) 架构。与当前的 CRuby 解释器相比,在进行实际基准测试时,YJIT 的平均速度大约提升了 23%。

现在YJIT团队希望探索使用Rust来帮助开发YJIT。而CRuby的其余部分将继续使用非Rust的工具链进行构建,而且构建Ruby应用时仍然支持YJIT开关。

价值主张:

  • Rust的类型系统将尽早捕获更多的bug,有助于防止新的bug;
  • 更易于管理日益复杂的YJIT
  • 更容易维护代码库;
  • 对于新手来说更容易,因为编译器捕获了更多的bug;
  • 更好的性能,因为我们可以实现更复杂的优化;
  • 更容易添加对新平台的支持(这增加了复杂性);
  • Rust拥有成熟且易于安装的工具,如源代码格式化程序和编辑器插件;
  • Rust作为一个编程语言社区,其背后有着巨大的热情。这可以转化为对YJIT和Ruby的更大热情。

集成:

  • YJIT将只依赖于Rust语言和标准库,而不依赖于其他依赖项;
  • YJIT将能够在没有互联网连接的情况下进行构建;
  • Rust对交叉编译有很好的支持;
  • Rust在我们计划使用YJIT支持的所有平台(Mac、Linux、Windows)上都受支持;
  • 已编译的CRuby二进制文件不会对共享库有任何新的依赖项;
  • 在禁用YJIT的情况下,CRuby仍然可以在没有rustc的情况下进行构建

完整的意见说明参阅:Porting YJIT to Rust (request for feedback)

lipstack: 面向C语言的类Rust语法前端

lipstick: a Rust-like syntax frontend for C

lipstack将Rust的语法汇编成C。尽管它没有借用检查器或生命周期管理,但它并不是一个“Rust语法子集”。它只是C语言的一个Rust的语法前端。

可以在Playground来实战体验它是怎样运作的。

参考:

一个新的Relm 4:宣布Relm4 v0.4!

A new Relm 4 you: announcing Relm4 v0.4!


From 日报小组 odd-cat

社区学习交流平台订阅:

Rust.cc 论坛: 支持 rss

微信公众号:Rust 语言中文社区

评论区

写评论
zzliujianbo 2022-01-19 15:41

学习了,加油!

1 共 1 条评论, 1 页