KCL: Rust 在编译器领域的实践与探索第三届中国Rust开发者大会 KCL: Rust 在编译器领域的实践与探索 张正 蚂蚁集团 Agenda 01 KusionStack 与 KCL 02 用 Rust 重写 KCL 03 Rust 重写后的收益 04 更多的探索 01 KusionStack 与 KCL KusionStack是什么? KusionStack架构 KCL KusionStack 是什么? (平台服务即代码)理念,研发者 可以用统一的组织和操作界面定义应用交付生命周期,充分 利用Kubernetes和云的混合能力,通过端到端的交付工作 流程,真正实现集中定义、随处交付。 KusionStack 架构 • KCL:面向应用研发者的 配置策略专用高级编程语 言,及其协议组,工具链及 IDE 插件 • Kusion:运维引擎、工具 链、服务层,IDE 工作空间 及社区技术集成套件 Language Server KCL Compiler KCL Package Manager 02 用 Rust 重写 KCL Python 代码翻译 栈式虚拟机 Rust 编译器 KCL 编译器架构升级 Source Code AST LLVM IR Native/WASM Source Code AST Bit code VM Source Code Python0 码力 | 25 页 | 3.50 MB | 1 年前3
尝试用RUST写教学操作系统尝试用RUST写教学操作系统 向勇、陈渝 清华大学计算机系 20181123 1 背景 • 用什么语言写操作系统? – 汇编 – C – C++ – GO – RUST – … 2 3 各位老师所教的课程信息统计 计算机组成原理 编译原理 操作系统 其他 A B C D 提交 多选题 1分 此题未设答案 我们的尝试-教学操作系统ucore 7 我们的尝试-系统类课程的协调 8 用RUST写操作系统: 2018年春季操作系统课 http://os.cs.tsinghua.edu.cn/oscourse/OS2018spring/projects#A.2Bi.2F56C4u.2Bi6FbnpqMkAli6Q- 9 用RUST写操作系统: 2018年秋季操作系统专题训练课 unsafe块是一个精妙的设计,在你 想偷懒破坏安全性时给你带来⼩ 小的骚扰 13 Rust的安全特征 • 类型安全: 远离void* 保安全. 远离隐式cast • 内存安全: 编译器自动推断变量的生命周期, 自动插 入free,防止程序员忘记写free. (原则上) 不会有null- pointer-dereference, double free, use-after-free0 码力 | 23 页 | 1.53 MB | 1 年前3
应用 waPC (rust) 做软件测试工具第三届中国 Rust 开发者大会 应用 waPC (rust) 做软件测试工具 Alan poon 潘泳权 大家好! @rustropy_gaming ruito_89 PhoTto / image / chart Webassembly Procedures Call waPC 协议标准化了本机代码调用 WebAssembly 和 WebAssembly 调用本机代码的通信 (messaging) Microservices • Multiple backend product line with complex upstream • Common testing platform 大公司抓包工具的需求 软件测试工具 • 模拟数据规则 • 自动化测试 • Supports http/https/tcp/websocket(MITM) • Can use rust to construct own wasm API • Support websocket stand in for wasm API 抓包 - Wasm Mock Server wasm 工具 does not invent the wheel 软件测试工具 • 模拟数据规则 • 自动化测试 ModifyRequest(req *http.Request) error{ … req_,err:=wasm.Invoke(ctx0 码力 | 30 页 | 2.50 MB | 1 年前3
Rust原子操作高性能实践 Rust Atomic Deep Dive - 王璞第三届中国Rust开发者大会 Rust Atomic Deep Dive Pu Wang @ DatenLord 2023/06/17 Rust原子操作高性能实践 What are atomic operations in Rust? What Why need atomic operations? Why How 01 02 03 Memory order in atomic operations0 码力 | 19 页 | 1.88 MB | 1 年前3
⽤ egg 孵化你的 SQL 优化器 - 王润基第三届中国Rust开发者⼤会 ⽤ egg 孵化你的 SQL 优化器 王润基 RisingWave 内核开发⼯程师 ? Parser Binder Optimizer Executor SQL AST Logical Plan Physical Plan Table Catalog Storage RisingLight 查询引擎的整体结构 SELECT name, url 连接重排序 连接算法选择 TopN A Order TopN A Limit 查询优化 定义计划节点 定义重写规则 ⽤纯 Rust 编写的第⼀代优化器 Visitor 模式 ⽤纯 Rust 编写的第⼀代优化器 e-class e-node Rewriting Rewriting (* ?x 2) => (<< ?x 1) Rewriting (* ?x 2) =>0 码力 | 39 页 | 6.48 MB | 1 年前3
Rust OS 开源操作系统训练营的教与学-0615-李明第三届中国Rust开发者大会 Rust OS 开源操作系统训练营的教与学 李明 清华大学 2023-6-17 Rust China Conf 2023 Rust OS 开源操作系统训练营的教与学 1 Rust OS 开源训练营的起因和发展 Title Title Title 开源操作系统训练营的起源(2020年) 陈渝老师 向勇老师 OS Tutorial Summer 训练营的愿景和目标 目标 愿景 核心产出 探索新一代安全高性能操作系统的设计与构建 影响并培养更多的人学会写操作系统 每年为高校和企业培养1000名操作系统开发人才 参加训练营要回答的三个问题 你为什么要来参加这个活动? 为什么要以开源 的方式来参与? 我们如何能把这些 知识技能学到? Rust OS 开源操作系统训练营的教与学 2 开源训练营的总体规划和教学实践 教什么?怎么学? RISC-V体系结构 一阶段 完成94道Rustlings编程题 (2周) OS 大实验 rCore/uCore 内核 二阶段 完成5个OS编程大实验 (2周) ArceOS 组件化 操作系统 三阶段 Hypervisor 虚拟化技术 四阶段 完成1个OS组件或驱动 (4周) 完成1个硬件虚拟化适配 (4周) 台阶式向上迈进 训练营的教学/实习安排 • 春夏季训练营0 码力 | 26 页 | 2.62 MB | 1 年前3
在Solana合约链实现IBC协议跨链互操作 - 苏胤榕@DaviRain 在Solana合约链 实现IBC协议跨链互操作 简单介绍下IBC协议是什么,及其生态 简介 > 介绍IBC协议和其在跨链互操作中的作用 IBC协议中的角色和参与者 1. 客户端 2. 连接 3. 通道 4. 包 4. 中继器 解释为什么选择在Rust合约链中实现IBC协议 - IBC协议的核心已经被协议核心团队用Rust语言实现。 解释为什么选择Rust作为实现IBC协议的语言 1. Rust语言的安全性和性能优势 2. Rust生态系统的丰富性 3.Solana平台的支持:Solana是一个基于Rust开发 的 高性能区块链平台,提供了完善的开发工具和文档,可 以帮助开发者更加便捷地进行Rust合约链开发。 4. Informal Systems提供的IBC协议Rust语言实现和 协议的形式化验证可以有效提高IBC协议的安全性和可 靠性,保障跨链交易的安全和正确性。 在Solana链上实现IBC协议的核心要点 IBC在Solana上的实现> 集成ibc-rs仓库实现solana-ibc TAO 集成ibc-rs仓库实现Solana-ibc TAO 在Relayer侧(中继器)需要实现的对应链的创建查询接口 为什么能将所有Rust合约链看作ICS06 Solomachine Client 这里就是整个方案的核心, 为什么我能将所有的rust合约链能看作是ICS06 solomachine0 码力 | 29 页 | 3.05 MB | 1 年前3
Rust与算法 - 谢波第三届中国 Rust 开发者大会 Rust 与 算法 谢波 …………………………………………………………………………. …………………………………………………………………………… ...... …………………………………………………………………………… ……………… …………………………………………………………………………… ………………………. …………………………………………………………………………… 算法相关知识 • Rust 实现数据结构 • Rust 实现算法 • 总结及学习资源 背景介绍 • 个人信息 • 写作动机 • 可参考点 • 为什么 背景介绍 # 个人职业 # 与 Rust 结缘 # 前 GPT 时代作品 个人信息 结算及大数据系统研发工程师 疫情下的明智选择 / 个人项目实践 学习中总结探索 2015 年发布,很多人近几年才知道 Rust , Rust 中国大会第十届 Rust 处于起步阶段 中文圈学习资料或书籍少,有部分是翻译国外产品,能 不能中国人向国外输出作品 Rust 缺少学习资源 Rust 未来大有可为 Rust 在操作系统,数据库,各种框架和工具上应用范围 广 写作动机 当情况不明时,抱着一个纯粹的目标干事就行了,其他 的留给时间检验。不懂就学,技术写作更像一种共创, 要反复总结和修改 ( 费曼学习法 ) 。 写作本书给我的启示0 码力 | 28 页 | 3.52 MB | 1 年前3
运⾏在浏览器中的 P2P ⽹络 - 李敏成运⾏在浏览器中的 P2P ⽹络 李敏成 from RingsNetwork Montivation 连接所有钱包持有者 去中⼼化的 Pure P2P ⽹络 The Idea 最好的节点载体是浏览器 ⽤户群体 钱包插件 运⾏环境 How to P2P Did: Wallet Address E2E secure(sign/encryption): Wallet Discovery Connect through WebRTC Route by Chord DHT Rings-node browser extension Rings-node daemon 浏览器节点 服务器节点 Node communication Node A Node B Create Offer ConnectNodeSend ConnectNodeReport Pending0 码力 | 23 页 | 1.74 MB | 1 年前3
Rust并行编译的挑战与突破Rust并行编译的挑战与突破 李原 2022年5月28日 • 相关浅谈 • Rust并行编译的挑战与突破 • 从并行编译到并行程序设计 • Rust社区与并行编译 目录 相关浅谈 Rust编译速度之殇 编译器设计造成编译速度缓慢 · 单态化 · 借用检查 · 宏展开 · MIR优化 ... Rust规模编译速度慢于C++ Rust编译速度之殇 提升编译效率成为近年社区重点工作 2017-2021,Rust编译速度已提升一倍以上 Rust社区编译器性能工作组 Rust编译器并行化 Cargo多crate并行 二进制生成并行 更多更好的并行化? Rust编译器架构 语法树生成 宏展开 命名解析 泛型解析 类型检查 借用检查 单态化 二进制生成 增量编译系统 底层数据 结构 Rust语言编译器结构总览 考虑内部编译流程并行化 Rust并行并发 编译时线程安全检查 线程安全数据结构造成效率损失 Mutex与RwLock rustc profileing 数据 · 代码复杂度及健壮性 · benchmark资源限制 · profileing成本 ... 收益 > 代价? Rust并行编译的挑战与突破 挑战:消减共享数据结构效率损失 共享数据结构的性能损耗问题 基于条件编译的共享数据结构实现 缺点:用户需自行生成编译器 挑战:消减共享数据结构效率损失0 码力 | 25 页 | 4.60 MB | 1 年前3
共 48 条
- 1
- 2
- 3
- 4
- 5













