expanded MAKE_FUNCTION and MAKE_LAMBDA to encode literal frame index to name.

expanded hak_context_t to store the name field taken from the compiled block
This commit is contained in:
2025-09-05 22:41:45 +09:00
parent 313d1f9800
commit d8113efc28
20 changed files with 405 additions and 281 deletions

View File

@ -152,7 +152,8 @@ fun Z:abc() {
printf "%d %d %d\n" a b c ## this is not recognized as ....
}
fun k () {
class Q {
fun(#class) k () {
k := (Z:basicNew 10) ## #varying is really required? what is the big deal even if you allow it regardless?
##k := (Z:new) ## no way to add extra fields.
k:basicAtPut 2 "hello"
@ -163,4 +164,16 @@ printf "%O\n" (k:basicAt 20)
##k := (Z:new)
##k:aaa
}
(k)
}
try {
(Q:k)
} catch (e) {
printf "EXCEPTION: %O\n" e
try {
throw 10000
} catch (e) {
printf "EXCEPTION-X: %O\n" e
}
}