专栏首页Rust语言学习交流【Rust日报】2021-08-24 RustSBI 0.2.0-alpha.5 版本发布

【Rust日报】2021-08-24 RustSBI 0.2.0-alpha.5 版本发布

RustSBI 0.2.0-alpha.5 版本发布

RustSBI 0.2.0-alpha.5版本发布。良好支持您的业务和学术研究系统,兼容性强,先进的模块化设计,值得信赖。RustSBI是RISC-V下的引导程序环境,它支持多款模拟器和芯片平台。在今年的首届全国大学生系统能力竞赛操作系统赛中,RustSBI被来自全国高校的赛队广泛使用,用于实现自己的比赛用系统,并取得全国一、二和三等奖。

本次更新特性:

  1. 完整支持RISC-V SBI 0.3正式版标准
  2. 支持SBI PMU性能监视扩展

兼容性修改指南:

  1. rustsbi::ecall指令要求[usize; 6],加入ctx.a5;
  2. 降级embedded-hal到0.2.6

文档主页:https://docs.rs/rustsbi/0.2.0-alpha.5/


default-args: 零开销实现带缺省值的函数

default-args: zero-cost default arguments in rust!

通过使用default_args::default_args!宏来实现带缺省值的函数,下面是用例:

use default_args::default_args;

// this would make a macro named `foo`
// and original function named `foo_`
default_args! {
    fn foo(important_arg: u32, optional: u32 = 100) -> String {
        format!("{}, {}", important_arg, optional)
    }
}

// in other codes ...
assert_eq!(foo!(1), "1, 100"); // foo(1, 100)
assert_eq!(foo!(1, 3), "1, 3"); // foo(1, 3)
assert_eq!(foo!(1, optional = 10), "1, 10"); // foo(1, 10)

// let's make another one
default_args! {
    #[inline]
    pub async unsafe extern "C" fn bar<S1, S2, S3>(a: S1, b: S2 = "b", c: S3 = "c") -> String
    where
        S1: AsRef<str>,
        S2: AsRef<str>,
        S3: AsRef<str>,
    {
        format!("{}, {}, {}", a.as_ref(), b.as_ref(), c.as_ref())
    }
    // that was long signature!
}

// in other codes ...
assert_eq!(unsafe { bar!("a") }.await, "a, b, c");
assert_eq!(unsafe { bar!("a", "d") }.await, "a, d, c");
// you can even mix named & unnamed argument in optional arguments
assert_eq!(unsafe { bar!("a", "d", c = "e") }.await, "a, d, e");
assert_eq!(unsafe { bar!("a", c = "e") }.await, "a, b, e");

项目主页:https://github.com/buttercrab/default-args.rs


RustDesk 1.1.8 发布:开源远程桌面软件

RustDesk 1.1.8 release: yet another remote desktop software

开源远程桌面软件RustDesk 1.1.8 版本发布,更多细节参见Release Notes

项目主页:https://github.com/rustdesk/rustdesk


From 日报小组 odd-cat

社区学习交流平台订阅:

Rust.cc 论坛: 支持 rss

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

本文分享自微信公众号 - Rust语言学习交流(rust-china),作者:odd-cat

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-08-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【Rust 日报】2021-06-03 RustSBI组织宣布成立

    RustSBI是RISC-V平台下的引导程序实现,它完全由Rust编写,并已经被录入RISC-V SBI国际标准。6月3日,RustSBI已经在GitHub上成...

    MikeLoveRust
  • 【Rust日报】2021-08-23 UltraOS获第一届全国大学生操作系统比赛一等奖

    2021第一届全国大学生操作系统比赛的比赛结果公布了,哈工大(深圳)的李程浩,宫浩辰,任翔宇获得了内核实现赛道的一等奖,指导教师为夏文老师和江仲鸣老师。他们用R...

    MikeLoveRust
  • 【Rust 日报】2021-06-13 cacao 0.2.0 发布,使用 Rust 构建 native 的 MacOS 应用

    本月我们对 cross chain bridges 感兴趣。随着以太坊最近满负荷运转,其他区块链项目正在关注从现在到功能性以太坊2 之间的机会之窗,以吸走该链的...

    MikeLoveRust
  • 【Rust日报】 2019-08-12:Tokio alpha 版发布,新版本支持async/await

    Read More: https://tokio.rs/blog/2019-08-alphas/

    MikeLoveRust
  • 【Rust日报】2021-08-08 《Rust In Action》书籍第一版发布

    由rust.cc举办的Rust Meetup今天在杭州鼎创财富中心B2座2层举办,主要议程如下:

    MikeLoveRust
  • 【Rust日报】2021-08-28 开源操作系统夏令营最终报告会安排

    会议主题:开源操作系统夏令营最终报告会 会议时间:2021/08/29 09:00-11:30 (GMT+08:00) 中国标准时间 - 北京 点击链接入会,或...

    MikeLoveRust
  • 【Rust日报】 2019-08-15:欢迎使用最新的 async/await

    这不是闹着玩儿的操作系统了,这可是面向商业的正式的操作系统(一个 Linux 发行版)。官网地址在这里

    MikeLoveRust
  • 【Rust日报】2019-09-05:hyper 0.13 alpha 版本发布,支持 async/await

    hyper 0.13 alpha 版本发布,它是一个使用 Rust 编写的成熟 HTTP 库,并且是速度最快的 HTTP 库之一,同时因其正确性得到了许多人的认...

    MikeLoveRust
  • 【Rust日报】2021-08-14 reqwest 增加中间件支持

    TrueLayer 团队用支持中间件的客户端reqwest-middleware包装 reqwest,并暴露相同的简单 API,在满足弹性和可观察性要求下,使其...

    MikeLoveRust
  • 云原生爱好者周刊:长得最像苹果的 Linux 桌面

    无论学习任何知识,我们都要经历“先把书读厚,再把书读薄”这个过程。读厚就是分解、详细分析,是输入的过程,读薄便是归纳总结,是输出的过程。归纳总结最好的方式就是思...

    米开朗基杨
  • Kubernetes v1.15.3 证书过期更新

    问题关键字:x509: certificate has expired or is not yet valid

    欧巴云
  • 【Rust日报】2021-05-28 分享一下我上次的 binary search PR 导致知名公链波卡发生线上事故的缘由

    知名公链波卡 (Polkadot) 5 月 24 号某个节点发生了一次比较大的线上事故(Out Of Memory),做梦也没想到是因为我上次优化 Rust 标...

    MikeLoveRust
  • 【Rust日报】2021-07-09 Sycamore v0.5.0发布

    Sycamore 是一个用于在 Rust 和 WebAssembly 中构建同构 Web 应用程序的库。v0.5.0 版本是Sycamore迄今为止最大的版本,...

    MikeLoveRust
  • 【Rust日报】2021-01-01 2021新年快乐!Rust 1.49发布!

    这是2020年第一期日报,Rust日报小组祝大家新的一年身体健康,工作顺利,Rust学得越来越好!2021年也是Rust很关键的一年,我们也将会迎来新的2021...

    MikeLoveRust
  • 【Rust日报】2021-02-17 - Rust 圆桌年话

    Rust 语言作为一门新兴语言,从2015年发布以来,收获了不少关注度。Rust 目前也逐渐进入了成熟的阶段。并且在2021年02月08号,Rust 基金会也宣...

    MikeLoveRust
  • 【Rust 日报】2021-05-16 Rust 六岁啦

    2021年5月15日是Rust六岁生日(从2015年 1.0 版本算起),在这过去的六年里发生了许多变化,但Rust没有什么不同,依然没有基金会,没有Const...

    MikeLoveRust
  • 【Rust日报】2021-02-27 Rust 常量泛型 MVP beta版

    常量泛型(const generics)是Rust最受期待的功能之一,其从最初RFC被接受至今已有三年了,现在其第一个版本已经在Rust beta版本中提供,并...

    MikeLoveRust
  • 【Rust日报】2021-05-08 我对Rust的第二印象以及为什么我认为它是最好的通用语言!

    我们很兴奋地宣布Rust的新AWS SDK的alpha版本发布。在Rust中开发的AWS客户想要一个本地的Rust SDK,这样他们就可以使用他们习惯的语言结构...

    MikeLoveRust
  • 【Rust日报】 2019-05-05:清华大学陈渝副教授:尝试将Rust/Risc-V等新技术用于系统类课程教学

    XV是一个终端16进制查看器,作者之前是Java开发者,XV是他的第一个Rust项目。他在本文主要介绍了UX中使用panic的一些经验。

    MikeLoveRust

扫码关注云+社区

领取腾讯云代金券