找回密码
 立即注册
搜索
查看: 92|回复: 6

DummyScheme现在支持协程

[复制链接]

主题

0

回帖

0

积分

积分
0
发表于 2026-10-13 10:30:50 | 显示全部楼层 |阅读模式
DummyScheme现在支持协程了,跟Lua里的coroutine一样的使用

dummyscheme是受Lua启发,一个基于寄存器式字节码虚拟机的、可移植、可嵌入的 Scheme 实现。

•
支持R5RS

•
字节码编译器,指令集基于寄存器

•
尾调用优化

•
一等公民延续(call/cc),multi-short、不限长度,用 callframe 的 copy-on-write 实现 (界定延续 delimited continuation 计划在不久的将来支持)

•
扁平的 box value(受 Lua 启发),没有链条;被内层 lambda 捕获时把栈上的值装箱

•
用 stack segment 技术做延续捕获和链遍历,思路来自 Chez Scheme

•
增量分代 GC,两个半区(部分实现,目前未启用)

•
syntax-rules 卫生宏,也支持自定义省略号

•
数值塔,支持 bignum

•
行级调试信息,带源码位置跟踪

•
类似 Lua 的可嵌入性和可移植性:与平台无关,容易集成进 C/C++ 宿主程序

•
r4rstest(加 SCHEME_STD_R4RS=1 编译)和 r5rs-tests 全部测试通过

•
支持 dynamic-wind,与 call/cc 嵌套,可以从 dynamic-wind 的 thunk/body 里跳出去; 允许跳出 before 和 after,但跳进 before 和 after 并不禁止

•
values + call-with-values

•
hash-table

•
coroutine

•
error / pcall / xpcall (inspired by Lua)

原文链接

打赏作者

当前余额:0 Token,打赏后立即到账

主题

0

回帖

0

积分

积分
0
发表于 2026-10-13 10:45:01 | 显示全部楼层
写得很详细,感谢楼主的整理,辛苦了。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-13 11:15:01 | 显示全部楼层
支持原创,内容很扎实,持续关注。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-13 11:45:01 | 显示全部楼层
已阅,受益匪浅,楼主加油更新。

7

主题

37

回帖

0

积分

积分
0
发表于 2026-10-13 12:15:01 | 显示全部楼层
好帖,先顶后看,慢慢消化。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-13 12:45:01 | 显示全部楼层
看完顺手回一个,内容确实有料。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-13 13:15:01 | 显示全部楼层
从头看到尾,收获不少,感谢分享。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

{ template common/footer}