Ну вот допустим у меня есть лексический контекст в котором много переменных. И мне захотелось его поотлаживать, подергать функции этих переменных.
Писать биндиндинги и дефы в топ лвл мне не захотелось.
Молодец. Теперь покажи мне в этой портянке локальную переменную «х». Естественно, из портянки должно быть понятно, что ее имя - «х» (иначе как ты собрался евалить внутри локального контекста)?
Ну и где у тебя тут переменная «x», уебанец? Тут пронумерованный слот в стеке.
И почему ты показываешь такой промежуточный IR, от которого во время выполнения уже давно ничего не останется? Показывай выхлоп дизассемблера после JIT.
Ты запредельно ебанутая свинячья отрыжка. Нет здесь никакого x во время исполнения. Во время исполнения есть регистр CPU, а никакой информации о том, что когда-то была некая переменная «x» не сохранилось.
Если продолжать твое ошибочную идею. То можно сказать что нет ни каких регистров CPU. А есть лишь проводники по которым идет ток.
Но у меня мозг пока еще не так деградировал как у тебя и я это говорить не будут.
Ебанутый ты выпездок, повторяю для тупой грязной блядвы, никакой *информации* о существовании переменной x и о ее области видимости в момент вызова eval нет и быть не может. Про регистр я тоже напиздел - внутри вызова eval уже даже того значения регистра ее будет.
Ты не понял. Есть определенный стандарт виртуальной машины, и этот стандарт тебе не гарантирует наличие переменных после компиляции. Ты можешь, конечно, попытаться написать такой евал с передачей локального контекста - но его запуск будет undefined behavior. Кроме того, доподлинно известно, что все распространенные вм джавы такой хуйни не поддерживают. А поддерживают только еще не написанные вм существующие только в твоих фантазиях.