Wasm GC 还不适合实时图形处理

2025-01-18

作者David Thompson在博客中指出,尽管Wasm GC已在主流浏览器中可用,但它在实时图形处理方面存在严重缺陷。主要问题在于Wasm GC堆对象对宿主(JavaScript)而言是不透明的,导致需要逐字节复制数据才能进行WebGL渲染,极大降低了性能。与之相比,Wasm线性内存可以直接被JavaScript访问,效率更高。作者尝试了几种解决方法,但都无法令人满意。他呼吁Wasm社区尽快解决这个问题,否则将严重限制WebGPU等技术的应用。

阅读更多

Guile 的面向对象编程问题

2024-12-30

本文探讨了 Guile Scheme 的面向对象编程系统 GOOPS 与 Common Lisp 对象系统 CLOS 之间的差异,并指出了 GOOPS 的一些不足。例如,GOOPS 的setter 特化与继承不兼容,不支持 before/after/around 方法限定符,方法组合算法不可控,方法参数特化受限,不支持关键字参数,并且缺少文档字符串。作者认为这些问题导致 GOOPS 使用起来不够优雅且易于出错,并提出了一些改进建议,例如模仿 CLOS 的行为,增加方法限定符,改进方法参数特化机制等。

阅读更多
开发 GOOPS CLOS

优化Guile Scheme

2024-09-25

文章介绍了优化Guile Scheme代码以提升性能的技巧,主要围绕减少内存分配和使用特定类型的数值计算展开。作者通过分析代码、使用性能分析工具和字节码反汇编,展示了如何通过避免不必要的内存分配、使用单态过程、强制内联函数以及使用字节向量等方法来提高代码执行效率。

阅读更多
未分类 Guile

Lisp:是锦上添花还是构建一切的基石?

2024-06-01

本文探讨了Lisp在游戏开发中的两种应用模式:将其作为“脚本语言”(锦上添花)或作为主要编程语言(构建一切的基石)。作者以Fennel+love2d、S7+raylib、Guile+Chickadee以及Hoot+HTML5 canvas为例,详细分析了每种模式的优缺点,并指出Guile和Common Lisp在“构建一切的基石”模式下展现出的巨大潜力。作者认为,尽管“基石”模式更具挑战性,但从长远来看,它能赋予开发者更大的灵活性和控制力,是Lisp未来发展的方向。

阅读更多
未分类