LINUX.ORG.RU

Для чего используется класс InstructionSequence в Ruby?

 


1

2

Вот, недавно наткнулся на документацию класса «RubyVM::InstructionSequence», получается обычные ruby скрипты можно компилировать в что-то вроде бинарного кода, но что с ним делать дальше негде в официальной документации я не нашёл, позже обнаружил упоминание "RubyVM::InstructionSequence.load" как «скрытой фитчи» в github репозитории пятилетней давности, которая вроде как для запуска этого самого кода, дальше все поиски выводили на тоже очень старые записи.
RubyVM::InstructionSequence.private_methods выводит несколько интересных, судя по названию, методов, но «load» там нет и как этими методами воспользоваться я тоже не знаю. В общем, может кто-нибудь прольёт мне свет на всё это дело? Что из себя представляет класс «InstructionSequence»? Для каких целей его нормальные люди используют? Для чего вообще методы «disasm» и «compile»?

Deleted

Последнее исправление: BIGWELLD (всего исправлений: 1)

Ответ на: комментарий от TDrive

Где-то читал что загрузчик специально максимально огородили от заранее скомпиленого кода только из-за того что не захотели(не согли) сделать верификатор или из-за того что этот байткод считается внутренним форматом, в который можно в любой момент внести изменения, не задумываясь о совместимости, и такую ситуацию стремятся сохранить.

Deleted
()
Ответ на: комментарий от TDrive

Но тогда мне всё-равно остаётся не ясно зачем метод «compile» и что делают приватные методы «inherited» и «initialize», и как их вызвать.

Deleted
()
Ответ на: комментарий от Deleted

inherited и initialize он наследует, inherited это колбек который вызывается каждый раз когда инициализруется какой нибудь наследник класса а initialize ... ну блин ... new, initialize... это же основы.

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

Ну в общем мне теперь ясно, что там всё проще чем я думал.

Deleted
()

Для каких целей его нормальные люди используют?

Для дебага VM.

st4l1k ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.