Fish Shell 计划采用 Rust 重写
fish 是适用于 Linux、macOS 的命令行 Shell,其名字取于 "the friendly interactive shell" 的简称,最大特点就是方便易用、功能强大、智能并且用户友好。很多其他 Shell 需要配置才有的功能,fish 默认提供,不需要任何配置。
fish 作者近日提交 PR 称要用 Rust 重写 Fish Shell 项目。
他认为应该将 Fish Shell 的开发语言从 C++ 过渡到 Rust,目标是在下一个主要版本发布之前完成它,重写原因包括:
- 没有人真正喜欢 C++ 或 CMake,也没有摆脱旧工具链的明确途径。每年的“开发痛苦”都会加重。
- C++ 正在成为一种“遗留语言”,未来寻找贡献者将变得困难,而 Rust 拥有一个活跃且不断发展的社区。
- Rust 是实现并发函数执行所需要的语言。
- 用 Rust 编写将有助于 fish 继续被认为是现代和有价值的。
因此,fish 作者表示这应该称作“移植”而不是“重写”,因为他们不会从头开始;相反,他们会在一个版本的跨度内,逐步地将逐个模块从 C++ 转换为 Rust。他们将使用 FFI,以便 Rust 和 C++ 位可以相互通信,直到 C++ 消失,并且测试和 CI 在每次提交时会继续保持通过。
为了证明“Rust 重写计划”可以执行,在这个 PR 中,作者将 FLOG、主题监视器、wgetopt、builtin_wait 和其他一些功能移植到了 Rust。Rust 位存在于 C++ 内部并与之链接的 crate 中。开发者可以按照常见的方式进行构建:
关于使用 Rust 重写 Fish Shell 的详细描述,访问此文档。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Spring 2022 调查:看好 Project Loom 和 Spring Native
VMware 发布了一份对 Spring 开发人员的 2022年度调查,涵盖 1421 名活跃的 Spring 专业人士。探讨了微服务、反应式和无服务器等现代架构的采用情况;包括对模块化单体的检查,以及哪些新技术在这一领域中得到了发展。还调查了 Spring 社区处理软件升级的情况、了解常见的痛点,并确定了学习 Spring 功能和 Spring 相关技术的主要途径。 报告指出,API 是主要用例。许多架构师和开发人员都将 API 作为其架构的核心部分,Spring 社区也是如此。自 2020 年以来,该社区选择 exposing API(内部和外部)作为 Spring 的最流行用途。随着现代和云原生应用的增长,使用 Spring 进行 API 开发的情况还在继续增加。 SOAP Web服务占 Spring 实现的 API 的 30%,高于前一年的 28%。基于 XML 的 SOAP Web 服务对于大多数开发人员来说早已被 REST API 和 JSON 以及基于 JSON 的 OpenAPI(曾经称为 Swagger)所取代;但尽管plain JSON(81%)和 OpenAPI(...
- 下一篇
谷歌推出 MusicLM,从文本生成音乐的模型
谷歌研究院宣布推出 MusicLM,这是一种从文本描述中生成高保真音乐的模型。MusicLM 将音乐的生成过程视为分层的序列到序列建模任务,并以 24 kHz 的频率生成音乐。 无论文本描述是一段话、一个故事,或仅为一个单词,MusicLM 都能生成对应对应的音乐,还能根据文本中的年代、时间、地点等要素来调整音乐的风格。 MusicLM 主页中有许多样本,可以看到,文本描述中有许多氛围描述的语句,比如“迷失在太空中的体验”、“营造出一种舒缓和冒险的氛围”、“唤起一种惊奇和敬畏的感觉”,也有一些具体的应用场景,比如“街机游戏的配乐”、“适合跳舞”。可以看 MusicLM 可以轻松驾驭这些模糊的描述和具体场景的组合 。 除了长文本,MusicLM 也能从一个单词或短语中创造出对应的旋律,比如“摇摆“、”轻松的爵士“、”旋律技术“等: 除此之外还可以按”故事模式“生成音乐,只需设定对应的时间戳,MusicLM 就会根据时间戳生成不同风格的音乐(不过转换起来非常生硬,有种”画风突变“的感觉)。 除了上述生成方式,MusicLM 还可以通过在描述文本中插入一些关键词来精修音乐,如”嗡嗡声“、”原...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,CentOS7官方镜像安装Oracle11G
- Mario游戏-低调大师作品
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8编译安装MySQL8.0.19
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境