Closed serkm closed 1 month ago
Here is a minimal example where this branch shines. On master, you can observe it slowing down, while this branch stays fast.
effect E(): Unit
effect F(i: Int): Unit
def f(i: Int): Unit / F = {
try {
do F(i);
if (i != 0) {
f(i - 1)
}
} with E {
resume(())
}
}
def main() = {
try{
f(1000000)
} with F { (i: Int) =>
println(i)
resume(())
}
}
Alternative to #636. The meta-stack now stays movable and only prompts have a stable address.