Hasty Briefsbeta

双语

Building a Copying GC for the Plush Programming Language

6 months ago
  • #programming
  • #garbage-collection
  • #actor-model
  • Plush是一种受Lox/JavaScript启发的动态类型编程语言,专为音频与图形编程设计。
  • 该语言采用基于参与者的并行模型,通过避免锁和内存安全问题简化多线程编程。
  • Plush虚拟机内置垃圾回收器,可管理参与者间传递消息的内存,确保失效对象被回收。
  • 虚拟机自动静默拷贝参与者间的消息,程序员无需手动冻结或深拷贝数据。
  • 每个参与者配备两个分配器:私有分配器实现无锁内存分配,邮箱分配器专用于接收消息。
  • 采用碰撞分配器与复制式垃圾回收机制,确保内存分配既快速又简单。
  • 通过与友人协作攻克了垃圾回收器实现的拖延问题,两周内完成90%开发进度。
  • 在M1芯片MacBook Air上运行的3D动画演示达到60帧/秒,展现了Plush的性能实力。
  • 待完善的垃圾回收功能包括:满消息分配器处理及大规模回收的性能优化。
  • 现招募贡献者协助性能调优,并共同开发图形/音频应用等演示程序。