快讯:Cranelift已成为Rustc编译器的后端之一

此前的Rustc编译器基于LLVM后端开发。由红帽、Mozilla和英特尔等公司组成的“字节码联盟”发布了编译器后端软件Cranelift,它致力于功能和安全性,并完全使用Rust语言构成。评论认为,相比于目前的LLVM后端,Cranelift小幅提高了调试模式的编译速度。Cranelift的另一特色是,可以重复利用输出的字节码值,以提高生成效率。这意味着,Rust编译器从前到后,从最底层的生成、优化后端,到语词法、软约束前端,已经有能力全由Rust语言自举。

Cranelift最出名的应用是作为网页汇编(WebAssembly)的运行时,它是知名项目Wasmtime的后端,协助编译网页汇编代码到机器码,以此提供给网页浏览器,完成即时执行工作。

GitHub合并请求:https://github.com/rust-lang/rust/pull/77975

Reddit讨论帖:https://www.reddit.com/r/rust/comments/jil2rs/cranelift_has_just_been_successfully_merged_as_an/

hrtf:双耳空间音效定位处理库

开发者德米特里·斯迪潘诺夫发布了这个库,实现了有名的“头部相关传输函数”(HRTF)算法。这是一种空间音效定位的处理技术,它的实现原理非常复杂。人耳聆听自然界声音时,声音除了直接传导,还会通过耳廓、肩膀反射到人耳内;人的大脑能根据经验,判断得到音源的距离和方向。为了用虚拟空间的音源模拟这个过程,就应当使用特殊设计的算法处理音源,来得到真实的声场感。

在空间听觉的研究和实现中,头部相关联的冲激响应(HRIR)占有十分重要的地位。这款处理库使用头部关联的冲激响应,创建一个三维空间内的点集,它们包含左、右耳的声谱,进而使用函数,处理输入的采样数据。默认的点集数据由44100赫兹频率下采样;对更多的频率,这款库将自动执行重采样操作,适应算法到用户需要的采样频率。

这款库使用了重叠-存储卷积法完成运算过程,因此依赖于重量级的傅里叶转换库rustfft,需要使用较多的运算和内存操作。hrtf库使用MIT协议在GitHub开源。

GitHub仓库地址:https://github.com/mrDIMAS/hrtf

Rust-analyzer发布第四十八次更新公告

被广泛使用的Rust语言静态分析软件rust-analyzer发布了本次更新公告。现在,rust-analyzer的所有故障记录都能输出到人类友好的日志,源码中也为此完善了详细的注释。名字更长的项目和类型,能通过project.json文件指定更短的项目显示名称,以供开发环境显示和提示。不活跃的cfg宏标签现在将会高亮。

细节的功能更新包括将字符串常量更换为字符常量、自动补全clippy的标签,以及填写借用类型函数参数时提示借用局部变量。本次更新还包括若干项内部优化和修复。

rust-analyzer项目官网:https://rust-analyzer.github.io/thisweek/2020/10/26/changelog-48.html

作为编程语言,Rust语言的弱点在哪里?

Reddit网友发起了帖子,来论证Rust语言还不够完善和满意的地方。帖子收到了较多客观的讨论。

网友认为,Rust语言的学习曲线较陡峭,编译速度有待提升,图形、音频等生态圈部分还需要更多的促进。从市场来看,Rust语言的工作岗位还不够多。另外,它一部分语言特性是其它语言没有的,需要第一次学习Rust的开发者适应和注意。

Rust是一门优秀的语言,这也不妨碍我们客观审视它的各项特征,来更好地改进和优化它,也为新学习Rust的开发者提供有参考价值的帮助。

Reddit贴文:https://www.reddit.com/r/rust/comments/jia2xn/what_are_some_of_rusts_weaknesses_as_a_language/

命令行任务管理器Pueue发布0.8.0版本

Pueue是一款任务管理器,允许并行或顺序地执行用户安排的任务,提供友好轻便的控制台界面。我们可以以Shell命令的格式输入任务,使用这款管理器能抽象它们,来得到更方便的功能。

任务管理器Pueue和具体的某个终端没有关联,因此我们能从登录到系统的任何终端,调整和控制已经安排的任务。即使所有的终端断开了连接,任务也将继续进行。

目前项目支持Linux和macOS操作系统,可以使用cargo安装。或者要下载编译好的可执行文件,可以通过NixOS、Homebrew和Arch Linux的AUR等包管理器安装。项目已经在GitHub上以MIT形式开源,项目主页提供了完善的使用说明书和文档。

项目主页:https://github.com/Nukesor/pueue



社区学习交流平台订阅:

  • Rustcc论坛: 支持rss