 RustBelt - Rust 的形式化语义模型第三届中国 Rust 开发者大会 王俊吉 RustBelt - Rust 的形式化语义模型 Outline Background • RustBelt Project • Rust Types Overview Rust Semantics • Type System • The own Predict • Exclusive Ownership & Mutable Borrow0 码力 | 21 页 | 2.63 MB | 1 年前3 RustBelt - Rust 的形式化语义模型第三届中国 Rust 开发者大会 王俊吉 RustBelt - Rust 的形式化语义模型 Outline Background • RustBelt Project • Rust Types Overview Rust Semantics • Type System • The own Predict • Exclusive Ownership & Mutable Borrow0 码力 | 21 页 | 2.63 MB | 1 年前3
 新一代分布式高性能图数据库的构建 - 沈游人超 700 人团队,其中 80% 为技术人员,创始团队在完成全球第一个中文知 识图谱网站研发后,探索知识图谱技术在企业领域的应用。 2021 年,海致院 士专家工作站成立,站内清华大学计算机博士生占比达 90% 以上。 企业级数据解决方案专家 为建行、工行、交行、招行、上交所、深交所、中国人寿等 70+ 银行证券保险 企业、公安部、上海市公安局、武汉市公安局等 100+ 公安机构,国家电网、 专注于数据智能技术赋能中国数字经济发展 海致高性能图计算院士专家工作站 郑纬民 - 海致科技首席科学家 中国工程院院士、清华大学计算机科学与技术系教 授、中国计算机学会前理事长,中国计算机系统结构 的学科带头人,我国高性能计算和存储系统等方面的 泰斗和先行者。 2021 年 3 月 25 日,海致科技与清华大学计算机科学与技术系共同建设高性能图计算院士专家工作站 。 高性能图计算是高性能计算、图计算 杂数据的实时处理和存储需求,是计算机领域竞争新战略制高点。 产学结合、协同创新,打造全球领先的国产自研图数据库 AtlasGraph ,培育世界级的图计算软硬件 生态体系,保持对全球科技竞争的战略均衡。 海致高性能图计算院士专家工作站 海致获得“ 2021 年 CCF 科学技术奖科技进步卓越奖” CCF 科学技术奖被认为是计算机科学与技术领域最具影响力的专业奖项之一, 其中科技进步卓越奖是 CCF 科技进步奖评选中的最高级别奖项,旨在嘉奖在计0 码力 | 38 页 | 24.68 MB | 1 年前3 新一代分布式高性能图数据库的构建 - 沈游人超 700 人团队,其中 80% 为技术人员,创始团队在完成全球第一个中文知 识图谱网站研发后,探索知识图谱技术在企业领域的应用。 2021 年,海致院 士专家工作站成立,站内清华大学计算机博士生占比达 90% 以上。 企业级数据解决方案专家 为建行、工行、交行、招行、上交所、深交所、中国人寿等 70+ 银行证券保险 企业、公安部、上海市公安局、武汉市公安局等 100+ 公安机构,国家电网、 专注于数据智能技术赋能中国数字经济发展 海致高性能图计算院士专家工作站 郑纬民 - 海致科技首席科学家 中国工程院院士、清华大学计算机科学与技术系教 授、中国计算机学会前理事长,中国计算机系统结构 的学科带头人,我国高性能计算和存储系统等方面的 泰斗和先行者。 2021 年 3 月 25 日,海致科技与清华大学计算机科学与技术系共同建设高性能图计算院士专家工作站 。 高性能图计算是高性能计算、图计算 杂数据的实时处理和存储需求,是计算机领域竞争新战略制高点。 产学结合、协同创新,打造全球领先的国产自研图数据库 AtlasGraph ,培育世界级的图计算软硬件 生态体系,保持对全球科技竞争的战略均衡。 海致高性能图计算院士专家工作站 海致获得“ 2021 年 CCF 科学技术奖科技进步卓越奖” CCF 科学技术奖被认为是计算机科学与技术领域最具影响力的专业奖项之一, 其中科技进步卓越奖是 CCF 科技进步奖评选中的最高级别奖项,旨在嘉奖在计0 码力 | 38 页 | 24.68 MB | 1 年前3
 CeresDB Rust 生产实践 任春韶CeresDB Rust 生产实践 任春韶 CeresDB 核心开发者 蚂蚁集团技术专家  CeresDB 介绍  Rust 生产实践 - Tokio Preemption - Future Cancellation 目录 CeresDB – 历程 2018.02 2018.10 2019.02 ~ 2020.11 2021.9  自研存储引擎  1.0.0 版本发布 spawn(task1) cpu_runtime.spawn(task2) cpu_runtime.spawn(task3) 生产实践 – Preemption 总结: Mixed workload: 碰到混合负载的时候,把 CPU 密集型任务隔离出去 会得到比较好的效果。 相关 Blog : 1. https://tokio.rs/blog/2020-04-preemption 2. https://www0 码力 | 22 页 | 6.95 MB | 1 年前3 CeresDB Rust 生产实践 任春韶CeresDB Rust 生产实践 任春韶 CeresDB 核心开发者 蚂蚁集团技术专家  CeresDB 介绍  Rust 生产实践 - Tokio Preemption - Future Cancellation 目录 CeresDB – 历程 2018.02 2018.10 2019.02 ~ 2020.11 2021.9  自研存储引擎  1.0.0 版本发布 spawn(task1) cpu_runtime.spawn(task2) cpu_runtime.spawn(task3) 生产实践 – Preemption 总结: Mixed workload: 碰到混合负载的时候,把 CPU 密集型任务隔离出去 会得到比较好的效果。 相关 Blog : 1. https://tokio.rs/blog/2020-04-preemption 2. https://www0 码力 | 22 页 | 6.95 MB | 1 年前3
 KCL: Rust 在编译器领域的实践与探索,充分 利用Kubernetes和云的混合能力,通过端到端的交付工作 流程,真正实现集中定义、随处交付。 KusionStack 架构 • KCL:面向应用研发者的 配置策略专用高级编程语 言,及其协议组,工具链及 IDE 插件 • Kusion:运维引擎、工具 链、服务层,IDE 工作空间 及社区技术集成套件 • Konfig:应用配置及基础 模型共享仓库,及面向 GitOps 工作流程(如 Python 版本的一半 01 02 03 04 Case1: 单文件编译 > https://github.com/KusionStack/kcl#showcase Case2: Konfig模型 + 用户定义 > https://github.com/KusionStack/konfig/blob/ main/base/examples/native/ng 错误恢复: 不完整代码的编译 • 代码补全 • 错误代码的语义分析 2. 增量编译 • 大规模场景下的编译优化和 IDE 性能提升 • 编译粒度: 项目 -> 文件 -> 函数/定义 3. 结构化语义模型(Structured Semantic Model) • Using the tree as a store for semantic info is convenient in traditional0 码力 | 25 页 | 3.50 MB | 1 年前3 KCL: Rust 在编译器领域的实践与探索,充分 利用Kubernetes和云的混合能力,通过端到端的交付工作 流程,真正实现集中定义、随处交付。 KusionStack 架构 • KCL:面向应用研发者的 配置策略专用高级编程语 言,及其协议组,工具链及 IDE 插件 • Kusion:运维引擎、工具 链、服务层,IDE 工作空间 及社区技术集成套件 • Konfig:应用配置及基础 模型共享仓库,及面向 GitOps 工作流程(如 Python 版本的一半 01 02 03 04 Case1: 单文件编译 > https://github.com/KusionStack/kcl#showcase Case2: Konfig模型 + 用户定义 > https://github.com/KusionStack/konfig/blob/ main/base/examples/native/ng 错误恢复: 不完整代码的编译 • 代码补全 • 错误代码的语义分析 2. 增量编译 • 大规模场景下的编译优化和 IDE 性能提升 • 编译粒度: 项目 -> 文件 -> 函数/定义 3. 结构化语义模型(Structured Semantic Model) • Using the tree as a store for semantic info is convenient in traditional0 码力 | 25 页 | 3.50 MB | 1 年前3
 Comprehensive Rust(简体中文) 2024122018。 – 这些版本支持对语言进行向后不兼容的更改。 – 为防止破坏代码,版本是可选的:通过 Cargo.toml 文件为 crate 选择合适的版本。 – 为免分割生态系统,Rust 编译器可以混合使用为不同版本编写的代码。 – 请注意,不借助 cargo 直接使用编译器的情况相当少见(大多数用户从不这样做)。 – 值得一提的是,Cargo 本身就是一个功能强大且全面的工具。它能够实现许多高级功能,包括 i32) -> &(i32, i32) { let point = (x, 0); return &point; } • 引用被称为“借用”了其所引用的值,这对于不熟悉指针的学生来说是一个很好的模型:代码可以通 过引用来访问值,但原始变量仍然保有对该值的“所有权”。本课程会在第 3 天详细介绍所有权。 43 • 引用是以指针的形式实现的,其关键优势在于它们可以比其所指的内容小得多。熟悉 C 依赖垃圾回收器来识别无法再访问的内存并将其舍弃。这保证可对所有指针 进行解引用操作,从而消除了释放后使用等各类 bug。但是,垃圾回收 (GC) 会产生运行时成本,并 且很难进行适当调优。 在许多情况下,Rust 的所有权和借用模型可以实现 C 语言的性能,能够精确地在所需位置执行分配和释 放操作,且为零成本。它还提供类似于 C++ 智能指针的工具。必要时,它还提供引用计数等其他选项,甚至 还有第三方 crate 可以支持运行时垃圾回收(本课程中不作介绍)。0 码力 | 359 页 | 1.33 MB | 10 月前3 Comprehensive Rust(简体中文) 2024122018。 – 这些版本支持对语言进行向后不兼容的更改。 – 为防止破坏代码,版本是可选的:通过 Cargo.toml 文件为 crate 选择合适的版本。 – 为免分割生态系统,Rust 编译器可以混合使用为不同版本编写的代码。 – 请注意,不借助 cargo 直接使用编译器的情况相当少见(大多数用户从不这样做)。 – 值得一提的是,Cargo 本身就是一个功能强大且全面的工具。它能够实现许多高级功能,包括 i32) -> &(i32, i32) { let point = (x, 0); return &point; } • 引用被称为“借用”了其所引用的值,这对于不熟悉指针的学生来说是一个很好的模型:代码可以通 过引用来访问值,但原始变量仍然保有对该值的“所有权”。本课程会在第 3 天详细介绍所有权。 43 • 引用是以指针的形式实现的,其关键优势在于它们可以比其所指的内容小得多。熟悉 C 依赖垃圾回收器来识别无法再访问的内存并将其舍弃。这保证可对所有指针 进行解引用操作,从而消除了释放后使用等各类 bug。但是,垃圾回收 (GC) 会产生运行时成本,并 且很难进行适当调优。 在许多情况下,Rust 的所有权和借用模型可以实现 C 语言的性能,能够精确地在所需位置执行分配和释 放操作,且为零成本。它还提供类似于 C++ 智能指针的工具。必要时,它还提供引用计数等其他选项,甚至 还有第三方 crate 可以支持运行时垃圾回收(本课程中不作介绍)。0 码力 | 359 页 | 1.33 MB | 10 月前3
 Comprehensive Rust(繁体中文)2018。 – 這些版本可針對語言進行回溯不相容的變更。 – 為避免破壞程式碼,版本皆為自行選擇採用:您可以透過 Cargo.toml 檔案選擇所需版本。 – 為避免分割生態系統,Rust 編譯器可混合寫給不同版本的程式碼。 – 請說明很少會略過 cargo 直接使用編譯器,大部分使用者都不會這麼做。 – It might be worth alluding that Cargo itself x_axis(x: i32) -> &(i32, i32) { let point = (x, 0); return &point; } • 參照可說是「借用」自身參照的值,對不熟悉指標的學生而言,這是不錯的模型,因為程式碼可以使用 參照來存取值,但仍歸原始的變數所「擁有」。本課程將在第 3 天進一步說明擁有權。 • 參照需以指標的形式實作,主要優點是大小會比指向的目標小得多。熟悉 C 或 C++ 的學生會覺得參 會利用垃圾收集器來識別並捨棄無法再存取的記憶體。這能確保任何指標都 可以取消參照,進而消除 UAF (使用已釋放記憶體) 和其他類別的錯誤。不過,GC 會耗費執行階段 成本,且很難正確調整。 在許多情況下,Rust 的擁有權和借用模型效能都能媲美 C 語言,並在必要處精準分配及釋放,達成零成 本作業。Rust 也提供類似 C++ 智慧指標的工具。如有需要,您還可以使用參照計數等其他選項,而且甚至 還有第三方 Crate,可支援執行階段的垃圾收集作業0 码力 | 358 页 | 1.41 MB | 10 月前3 Comprehensive Rust(繁体中文)2018。 – 這些版本可針對語言進行回溯不相容的變更。 – 為避免破壞程式碼,版本皆為自行選擇採用:您可以透過 Cargo.toml 檔案選擇所需版本。 – 為避免分割生態系統,Rust 編譯器可混合寫給不同版本的程式碼。 – 請說明很少會略過 cargo 直接使用編譯器,大部分使用者都不會這麼做。 – It might be worth alluding that Cargo itself x_axis(x: i32) -> &(i32, i32) { let point = (x, 0); return &point; } • 參照可說是「借用」自身參照的值,對不熟悉指標的學生而言,這是不錯的模型,因為程式碼可以使用 參照來存取值,但仍歸原始的變數所「擁有」。本課程將在第 3 天進一步說明擁有權。 • 參照需以指標的形式實作,主要優點是大小會比指向的目標小得多。熟悉 C 或 C++ 的學生會覺得參 會利用垃圾收集器來識別並捨棄無法再存取的記憶體。這能確保任何指標都 可以取消參照,進而消除 UAF (使用已釋放記憶體) 和其他類別的錯誤。不過,GC 會耗費執行階段 成本,且很難正確調整。 在許多情況下,Rust 的擁有權和借用模型效能都能媲美 C 語言,並在必要處精準分配及釋放,達成零成 本作業。Rust 也提供類似 C++ 智慧指標的工具。如有需要,您還可以使用參照計數等其他選項,而且甚至 還有第三方 Crate,可支援執行階段的垃圾收集作業0 码力 | 358 页 | 1.41 MB | 10 月前3
 Comprehensive Rust(繁体中文) 2024062018。 – 這些版本可針對語言進行回溯不相容的變更。 – 為避免破壞程式碼,版本皆為自行選擇採用:您可以透過 Cargo.toml 檔案選擇所需版本。 – 為避免分割生態系統,Rust 編譯器可混合寫給不同版本的程式碼。 – 請說明很少會略過 cargo 直接使用編譯器,大部分使用者都不會這麼做。 – It might be worth alluding that Cargo itself x_axis(x: i32) -> &(i32, i32) { let point = (x, 0); return &point; } • 參照可說是「借用」自身參照的值,對不熟悉指標的學生而言,這是不錯的模型,因為程式碼可以使用 參照來存取值,但仍歸原始的變數所「擁有」。本課程將在第 3 天進一步說明擁有權。 • 參照需以指標的形式實作,主要優點是大小會比指向的目標小得多。熟悉 C 或 C++ 的學生會覺得參 會利用垃圾收集器來識別並捨棄無法再存取的記憶體。這能確保任何指標都 可以取消參照,進而消除 UAF (使用已釋放記憶體) 和其他類別的錯誤。不過,GC 會耗費執行階段 成本,且很難正確調整。 在許多情況下,Rust 的擁有權和借用模型效能都能媲美 C 語言,並在必要處精準分配及釋放,達成零成 本作業。Rust 也提供類似 C++ 智慧指標的工具。如有需要,您還可以使用參照計數等其他選項,而且甚至 還有第三方 Crate,可支援執行階段的垃圾收集作業0 码力 | 356 页 | 1.41 MB | 1 年前3 Comprehensive Rust(繁体中文) 2024062018。 – 這些版本可針對語言進行回溯不相容的變更。 – 為避免破壞程式碼,版本皆為自行選擇採用:您可以透過 Cargo.toml 檔案選擇所需版本。 – 為避免分割生態系統,Rust 編譯器可混合寫給不同版本的程式碼。 – 請說明很少會略過 cargo 直接使用編譯器,大部分使用者都不會這麼做。 – It might be worth alluding that Cargo itself x_axis(x: i32) -> &(i32, i32) { let point = (x, 0); return &point; } • 參照可說是「借用」自身參照的值,對不熟悉指標的學生而言,這是不錯的模型,因為程式碼可以使用 參照來存取值,但仍歸原始的變數所「擁有」。本課程將在第 3 天進一步說明擁有權。 • 參照需以指標的形式實作,主要優點是大小會比指向的目標小得多。熟悉 C 或 C++ 的學生會覺得參 會利用垃圾收集器來識別並捨棄無法再存取的記憶體。這能確保任何指標都 可以取消參照,進而消除 UAF (使用已釋放記憶體) 和其他類別的錯誤。不過,GC 會耗費執行階段 成本,且很難正確調整。 在許多情況下,Rust 的擁有權和借用模型效能都能媲美 C 語言,並在必要處精準分配及釋放,達成零成 本作業。Rust 也提供類似 C++ 智慧指標的工具。如有需要,您還可以使用參照計數等其他選項,而且甚至 還有第三方 Crate,可支援執行階段的垃圾收集作業0 码力 | 356 页 | 1.41 MB | 1 年前3
 Rust 程序设计语言 简体中文版 1.85.0指针以及相关的 trait。 8/562Rust 程序设计语言 简体中文版 第十六章将引导我们了解不同的并发编程模型,并探讨 Rust 如何帮助你无畏地进行多线程编 程。第十七章将在此基础上进一步探索 Rust 的 async 和 await 语法,以及它们所支持的轻量 级并发模型。 第十八章着眼于 Rust 风格与你可能比较熟悉的 OOP(面向对象编程)原则之间的比较。第十 九章是一个模式和模式匹配的参考,它们是在 符,则不得不使用更多的方法调用或者 match 表达式来实现这些逻辑。 注意你可以在返回 Result 的函数中对 Result 使用 ? 运算符,可以在返回 Option 的函数中对 Option 使用 ? 运算符,但是不可以混合搭配。? 运算符不会自动将 Result 转化为 Option, 反之亦然;在这些情况下,可以使用类似 Result 的 ok 方法或者 Option 的 ok_or 方法来显式 转换。 目前为止,我们所使用的所有 double)一样,替代演员完成高难度的场景。测试替身在运行测试时替代某个类型。mock 对 象 是特定类型的测试替身,它们记录测试过程中发生了什么以便可以断言操作是正确的。 Rust 并不像其他语言那样在标准库中提供内建的对象模型,Rust 也没有像其他语言那样在标 准库中内建 mock 对象功能,不过我们确实可以创建一个与 mock 对象有着相同功能的结构 体。 如下是一个我们想要测试的场景:我们在编写一个记录某个值与最大值的差距的库,并根据当0 码力 | 562 页 | 3.23 MB | 25 天前3 Rust 程序设计语言 简体中文版 1.85.0指针以及相关的 trait。 8/562Rust 程序设计语言 简体中文版 第十六章将引导我们了解不同的并发编程模型,并探讨 Rust 如何帮助你无畏地进行多线程编 程。第十七章将在此基础上进一步探索 Rust 的 async 和 await 语法,以及它们所支持的轻量 级并发模型。 第十八章着眼于 Rust 风格与你可能比较熟悉的 OOP(面向对象编程)原则之间的比较。第十 九章是一个模式和模式匹配的参考,它们是在 符,则不得不使用更多的方法调用或者 match 表达式来实现这些逻辑。 注意你可以在返回 Result 的函数中对 Result 使用 ? 运算符,可以在返回 Option 的函数中对 Option 使用 ? 运算符,但是不可以混合搭配。? 运算符不会自动将 Result 转化为 Option, 反之亦然;在这些情况下,可以使用类似 Result 的 ok 方法或者 Option 的 ok_or 方法来显式 转换。 目前为止,我们所使用的所有 double)一样,替代演员完成高难度的场景。测试替身在运行测试时替代某个类型。mock 对 象 是特定类型的测试替身,它们记录测试过程中发生了什么以便可以断言操作是正确的。 Rust 并不像其他语言那样在标准库中提供内建的对象模型,Rust 也没有像其他语言那样在标 准库中内建 mock 对象功能,不过我们确实可以创建一个与 mock 对象有着相同功能的结构 体。 如下是一个我们想要测试的场景:我们在编写一个记录某个值与最大值的差距的库,并根据当0 码力 | 562 页 | 3.23 MB | 25 天前3
 Rust 到底香不香?Rust 到底香不香? 霍丙乾 bennyhuo Kotlin 开发者的首“锈” 个人介绍 • 霍丙乾 bennyhuo • 猿辅导资深移动客户端工程师,Google 开发者专家 • 《深入理解 Kotlin 协程》 《深入实践 Kotlin 元编程》作者 • B 站连载《Rust 程序设计语言》读书视频已更新至 第 13 章 分享经历 2017.11 Android 技术大会 将0 码力 | 10 页 | 484.75 KB | 1 年前3 Rust 到底香不香?Rust 到底香不香? 霍丙乾 bennyhuo Kotlin 开发者的首“锈” 个人介绍 • 霍丙乾 bennyhuo • 猿辅导资深移动客户端工程师,Google 开发者专家 • 《深入理解 Kotlin 协程》 《深入实践 Kotlin 元编程》作者 • B 站连载《Rust 程序设计语言》读书视频已更新至 第 13 章 分享经历 2017.11 Android 技术大会 将0 码力 | 10 页 | 484.75 KB | 1 年前3
 Rust语言核心竞争力-庄晓立unsafe代码块内,经过专业资深程序员谨慎编写的代码, 同样是能保证内存安全的。(通过人脑保证,而非机器) 机器通过执行一系列冰冷的规则拒绝不安全代码。但是机 器有机器的局限。unsafe代码充分发挥人的主观能动性, 允许专家在不受机器束缚的前提下写出安全的代码。 神舟十号与天宫一号有自动对接的同时还有人工对接。 内存安全小结 Rust语言通过: • 优秀的类型系统设计 • 严格的编译器静态审查 • 配合程序员局部核对0 码力 | 51 页 | 1.09 MB | 1 年前3 Rust语言核心竞争力-庄晓立unsafe代码块内,经过专业资深程序员谨慎编写的代码, 同样是能保证内存安全的。(通过人脑保证,而非机器) 机器通过执行一系列冰冷的规则拒绝不安全代码。但是机 器有机器的局限。unsafe代码充分发挥人的主观能动性, 允许专家在不受机器束缚的前提下写出安全的代码。 神舟十号与天宫一号有自动对接的同时还有人工对接。 内存安全小结 Rust语言通过: • 优秀的类型系统设计 • 严格的编译器静态审查 • 配合程序员局部核对0 码力 | 51 页 | 1.09 MB | 1 年前3
共 23 条
- 1
- 2
- 3













