谁叫叒鸡静态语言只会想象存翻译过的二进制元数据(光是一个凭空搞出 ABI 兼容性问题就够二了)。
throw e = escape (\_ -> (\h -> h e))
try a catch h = (capture (let x = a in \_ -> x)) h
直接平摊什么异常处理到 delimited control 里。什么蛋蛋 exception table ,直接就是 normal flow 里的东西,根本就没 overhead 了。
啥,还嫌生成的代码大?不服,你 C++ 实现个 delimited control operator 试试,要运行时膨胀出多少 size overhead ?哦,那啥 co_屑 也是缩水版的 control operator 、、、懂?
throw e = escape (\_ -> (\h -> h e))
try a catch h = (capture (let x = a in \_ -> x)) h
直接平摊什么异常处理到 delimited control 里。什么蛋蛋 exception table ,直接就是 normal flow 里的东西,根本就没 overhead 了。
啥,还嫌生成的代码大?不服,你 C++ 实现个 delimited control operator 试试,要运行时膨胀出多少 size overhead ?哦,那啥 co_屑 也是缩水版的 control operator 、、、懂?