Size: a a a

2018 November 14

λ

λoλdog in graalvm_ru
именно граалевский
источник

λ

λoλdog in graalvm_ru
вылетело из головы
источник

OS

Oleg Shelajev in graalvm_ru
Truffle, сделать интерпретатор для васма
источник

λ

λoλdog in graalvm_ru
спасибо
источник

OS

Oleg Shelajev in graalvm_ru
Пока что можно скомпилировать в asm.js и просто запускать. Должно работать вроде
источник

LS

Lev Serebryakov in graalvm_ru
Паша Финкельштейн
там внутри цикл и потенциально вообще любая логика
Ну, его эталонная реализация без выпендрёжа — это  мёртвый цикл. Это же машина тьюринга упрощённая до предела. Да, он ТП, но его безхитростно написанное ядро — это два массива (команд и памяти), два индекса (указывающие в этои два массива) и мёртвый цикл со свитчом на 10 строчек. Хватит ли у трюфеля или чего-то ещё это суперкомпилировать (по сути) под конкретное содержание одного из массивов (команд) — я не уверен и вообще сильно сомневаюсь.
источник

k

koctbik in graalvm_ru
Максимум что из классических профильных оптимизацией можно учесть что в часть свитчей ходит реже и сделать их ниже, а суперкомпиляция должна учитывать семантику исходного языка
источник

ПФ

Паша Финкельштейн in graalvm_ru
но повторяющиеся операции можно схлопывать
источник

ПФ

Паша Финкельштейн in graalvm_ru
а ещё весь рантайм языка превратится в 8 функций )
источник

λ

λoλdog in graalvm_ru
Oleg Shelajev
Пока что можно скомпилировать в asm.js и просто запускать. Должно работать вроде
Эт разные вещи )
источник

k

koctbik in graalvm_ru
Паша Финкельштейн
но повторяющиеся операции можно схлопывать
Это надо учитывать семантику bf
источник

λ

λoλdog in graalvm_ru
@shelajevoleg а есть где нибудь дока ? Желательно с примером интерпретации байткода. Ну и насколько сложно будет туда встроить рантайм хаки(типа тредов и подсчета стоимости вызова)
источник

OS

Oleg Shelajev in graalvm_ru
Спеки пожалуй как таковой нет. Можно посмотреть как сделан sulong
источник

OS

Oleg Shelajev in graalvm_ru
источник

OS

Oleg Shelajev in graalvm_ru
Сулонг работает для ллвм биткода
источник

OS

Oleg Shelajev in graalvm_ru
Они могут быть похожими
источник

OS

Oleg Shelajev in graalvm_ru
Хаки наверное не сложнее чем на остальных платформах, треды у тебя на джвм есть, надо только синтаксис и модель памяти наверное придумать для васма?
источник

OS

Oleg Shelajev in graalvm_ru
Подсчет стоимости вызова наверное сложно, особенно для джитующихся вещей
источник

OS

Oleg Shelajev in graalvm_ru
Я не знаю как такое делают
источник

λ

λoλdog in graalvm_ru
Oleg Shelajev
Хаки наверное не сложнее чем на остальных платформах, треды у тебя на джвм есть, надо только синтаксис и модель памяти наверное придумать для васма?
мне не сколько это интересно, сколько насколько сложно сделать интринзик
источник