🔗 An Async / Await Library for Emacs Lisp

https://nullprogram.com/blog/2019/03/10/

For the same reason, stackless async/await coroutines can also be implemented as a library. So that’s what I did, letting Emacs’ generator library do most of the heavy lifting. The package is called aio :

介绍了 emacs-aio 包的由来、实现和存在的不足。

“有stack和stackless的两种coroutine是什么”我还特意看过的,当时觉得懂了,现在又不记得了

建议读一下 TAOCP 第一卷的 1.4。

Coroutine 本来是用汇编编程的概念,本身是没有 stack 的。

有没有 stack 的区别就是需不需要 allocate call stack frame 的区别。用 function 实现自然需要 call stack,有 call stack 就能 suspend,甚至还能有 first class continuation。

已经有全功能的promise了,不需要用这个阉割版的。

然后配合generator可以用async await

4赞