置顶位置

2024-07-24

这篇文章探讨了Rust语言中Pin类型的目标和历史,以及如何通过语言层面的改变来简化与固定引用(pinned reference)的交互。作者认为,当前Pin类型作为纯粹的库类型,缺乏语言层面的支持,导致了使用上的困难。文章提出了引入“固定位置”(pinned place)的概念,并为其添加原生语法支持,使得与固定引用的交互更接近于普通引用。此外,文章还建议在方法解析中自动插入固定引用运算符,并支持安全的固定投影,以简化固定方法的实现。

阅读更多
未分类

Pin

2024-07-22

这篇文章深入探讨了 Rust 异步生态系统中的基础构建块 Pin。作者首先阐述了 Pin 的作用:防止自引用类型在移动时导致的内存安全问题。接着,作者详细解释了 Pin 的设计理念,包括其前身 Move trait 的局限性以及 Pin 如何通过包装指针和引入 Unpin trait 来解决这些问题。文章还分析了 Pin 的可用性问题,例如重新借用、特殊 API 和 Pinned projections 等方面,并指出了这些问题源于 Pin 作为一个纯粹的库类型缺乏语言层面的语法支持。最后,作者展望了改进 Pin 的方向,即引入 Pinned places 的概念。

阅读更多
未分类 Pin

引用就像跳转

2024-05-14

文章探讨了编程语言中引用(指针)的优缺点,以及如何处理可变的、别名化的状态。作者认为,引用会导致难以局部推理系统组件的行为,并回顾了各种解决这个问题的方法,包括面向对象编程、纯函数式编程和Rust的借用检查器。作者认为Rust的方案,即保证状态在发生变化时不被别名化,是一种强大的工具,因为它允许局部分析系统的行为。作者主张开发新的编程语言,在不使用共享可变状态的情况下允许命令式编程。

阅读更多
未分类

Coroutines and effects

2024-04-21

此网站的文章探讨了协程和效果的概念,提供了对协程和效果在 Go 语言中使用的深入了解。文章涵盖了协程的基础知识,包括创建、挂起和恢复协程,以及各种类型的效果,如并发和取消。文章还讨论了协程和效果的实际应用,例如构建并行和可取消的任务。

阅读更多
未分类