探索安全的内存管理:Shifgrethor
Shifgrethor 是什么?
Shifgrethor 是一个创新性的实验性项目,旨在为 Rust 提供一种精确且安全的垃圾收集(GC)API。这个库的宗旨是保证在使用 GC 的过程中依然能够保持 Rust 原有的所有安全性保证,防止各种内存错误的发生。
如何访问数据?
与传统的 GC API 不同,Shifgrethor 允许直接对托管堆中的对象进行引用。这包括:
- GC 对象可以拥有非托管堆分配的数据,并在这些对象被回收时自动释放。
- GC 对象可持有栈引用,确保在栈上的数据超出作用域后在安全代码中无法读取。
- 可以在堆或栈上存储指向 GC 对象的指针。
更令人惊讶的是,这些组合可以相互关联,如 GC 对象可以拥有指向栈上的引用向量,该向量又包含其他 GC 对象。
关于 Shifgrethor 的垃圾收集
Shifgrethor 实现了一个简单的标记-清除垃圾收集器,但这并不是其重点。它的设计目标是为了提供一个适用于高效、并发、精确的追踪垃圾收集器的 API。尽管当前实现不支持线程安全,但 API 理论上可适应这一需求,并且能用于支持移动 GC 的情况,只要它们提供了适当的固定机制。
项目状态与未来应用
目前,Shifgrethor 处于研发阶段,可能存在重大问题,不适合实际生产环境。但如果你对探索新的内存管理技术感兴趣,欢迎参与和试验。
名称由来
"Shifgrethor" 来自乌苏拉·K·勒古恩的小说《黑暗左手》中的词汇,代表着一种心灵感应的能力,暗示了该项目想要实现内存管理的新维度。
Shifgrethor 如何工作?
Shifgrethor 使用根跟踪算法,通过跟踪从非托管内存到托管内存的引用(称为“根”),找出所有仍然可以通过这些根访问的对象。根使用侵入式集合跟踪,借助 Rust 的固定 API 保证根在确定的栈顺序中被释放。
-
扎根(Rooting): 利用宏
letroot!
创建根,根携带生命周期'root
,与创建它的作用域相同。Gc
指针表示已扎根的数据,其生命周期与创建它的根一致。 -
追踪(Tracing): 需要定义如何通过类型追踪到其他对象。类型需要实现特定的追踪trait,并使用衍生访问器保证安全接口。
此外,Shifgrethor 限制了在析构函数中直接操作 GC 数据,而是提供了一个安全的最终化方法 finalize()
,仅允许无 GC 引用的情况执行清理。
总的来说,Shifgrethor 尝试为 Rust 社区提供一种全新的思考方式,以解决复杂的内存管理和安全问题,让开发者能够在享受 GC 带来的便利的同时,依旧保持 Rust 的内存安全性。
现在,是你探索 Shifgrethor 的绝佳时机,一同发掘它在内存管理领域的潜力,为未来的技术进步贡献力量!
- DDeepSeek-V3.1-BaseDeepSeek-V3.1 是一款支持思考模式与非思考模式的混合模型Python00
- QQwen-Image-Edit基于200亿参数Qwen-Image构建,Qwen-Image-Edit实现精准文本渲染与图像编辑,融合语义与外观控制能力Jinja00
GitCode-文心大模型-智源研究院AI应用开发大赛
GitCode&文心大模型&智源研究院强强联合,发起的AI应用开发大赛;总奖池8W,单人最高可得价值3W奖励。快来参加吧~057CommonUtilLibrary
快速开发工具类收集,史上最全的开发工具类,欢迎Follow、Fork、StarJava04GitCode百大开源项目
GitCode百大计划旨在表彰GitCode平台上积极推动项目社区化,拥有广泛影响力的G-Star项目,入选项目不仅代表了GitCode开源生态的蓬勃发展,也反映了当下开源行业的发展趋势。07GOT-OCR-2.0-hf
阶跃星辰StepFun推出的GOT-OCR-2.0-hf是一款强大的多语言OCR开源模型,支持从普通文档到复杂场景的文字识别。它能精准处理表格、图表、数学公式、几何图形甚至乐谱等特殊内容,输出结果可通过第三方工具渲染成多种格式。模型支持1024×1024高分辨率输入,具备多页批量处理、动态分块识别和交互式区域选择等创新功能,用户可通过坐标或颜色指定识别区域。基于Apache 2.0协议开源,提供Hugging Face演示和完整代码,适用于学术研究到工业应用的广泛场景,为OCR领域带来突破性解决方案。00openHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!C0381- WWan2.2-S2V-14B【Wan2.2 全新发布|更强画质,更快生成】新一代视频生成模型 Wan2.2,创新采用MoE架构,实现电影级美学与复杂运动控制,支持720P高清文本/图像生成视频,消费级显卡即可流畅运行,性能达业界领先水平Python00
- GGLM-4.5-AirGLM-4.5 系列模型是专为智能体设计的基础模型。GLM-4.5拥有 3550 亿总参数量,其中 320 亿活跃参数;GLM-4.5-Air采用更紧凑的设计,拥有 1060 亿总参数量,其中 120 亿活跃参数。GLM-4.5模型统一了推理、编码和智能体能力,以满足智能体应用的复杂需求Jinja00
Yi-Coder
Yi Coder 编程模型,小而强大的编程助手HTML013
热门内容推荐
最新内容推荐
项目优选









