finish caller
Some checks are pending
Nasal Interpreter Test / mac-aarch64 (push) Waiting to run
Nasal Interpreter Test / linux-x86_64 (push) Waiting to run

Signed-off-by: ValKmjolnir <lhk101lhk101@qq.com>
This commit is contained in:
ValKmjolnir
2025-10-24 00:03:43 +08:00
parent f04996201a
commit 72933f4bf6
9 changed files with 3759 additions and 3721 deletions

24
test/caller.nas Normal file
View File

@@ -0,0 +1,24 @@
var a = func(x, y, z) {
for (var i = 0; i < 20; i += 1) {
var cl = caller(i);
if (cl == nil) {
return;
}
print("[", i, "]\t", cl[1], "\t -> called from ", cl[2], ":", cl[3], "\n");
}
}
var b = func(x, y) {
a(1, 2, 3);
}
var c = func(x) b(1, 2);
var d = func c(1);
var e = func d();
var f = func e();
var g = func f();
var h = func g();
var i = func h();
var j = func i();
j();

View File

@@ -109,7 +109,7 @@ for (var t = 0; t < 10; t += 1) {
counter += 1;
for (var i = 0; i < t + 1; i += 1)
coroutine.resume(co);
if (counter - int(counter / 1000) * 1000 == 0) {
if (counter - int(counter / 2500) * 2500 == 0) {
var rate = counter / 2e5;
print(" ", bar.bar(rate), " ",
padding.leftpad(str(int(rate*100)),3), "% | ",
@@ -120,7 +120,7 @@ for (var t = 0; t < 10; t += 1) {
}
tm.stamp();
for (var i = 0; i < 1e5; i += 1)
for (var i = 0; i < 2e5; i += 1)
consumer();
println(" ", bar.bar(1), " 100% | ",
str(int(1e3 * counter / tm.elapsedMSec())),