Size: a a a

2019 October 04

λ

λoλdog in graalvm_ru
Но вроде тож пофиксили
источник

ВВ

Виктор Вербицкий in graalvm_ru
λoλdog
Ругань может быть на имена не по спеке
Ессно. А что ещё в яве обфусцировать-то? Порядок байткода сильно не перетасуешь, т.к. проверку при загрузке в jvm не пройдет
источник

ВВ

Виктор Вербицкий in graalvm_ru
λoλdog
Но вроде тож пофиксили
Ну вот надо перепроверить. Может с последними версиями получше стало
источник

AG

Asad Ganiev in graalvm_ru
Просто я думал если код запускается вне зависимости от обфускации то в native image без проблем можно компилить
источник

ВВ

Виктор Вербицкий in graalvm_ru
¯\_(ツ)_/¯
источник

ВВ

Виктор Вербицкий in graalvm_ru
Я так думаю, что конечная цель именно такая. Но пока сыровато...
источник

AG

Asad Ganiev in graalvm_ru
JIT компилятор определял горячие методы при запуске, то есть чем больше вызывался метод тем горячее становился и компилировался в native код, да?
источник

AG

Asad Ganiev in graalvm_ru
А как graal определяет горячие методы в AOT?
источник

ВВ

Виктор Вербицкий in graalvm_ru
Asad Ganiev
А как graal определяет горячие методы в AOT?
В общем случае никак
источник

ВВ

Виктор Вербицкий in graalvm_ru
Но в коммерческой версии можно профиль собрать и перекомпилировать под этот конкретный профиль
источник

AG

Asad Ganiev in graalvm_ru
Понятно
источник

A

Alex in graalvm_ru
Asad Ganiev
Сомневаюсь.
сходите почитайте почему котлиновские корутины не компилируются 😉
источник

ВВ

Виктор Вербицкий in graalvm_ru
😂
источник

A

Alex in graalvm_ru
источник

A

Alex in graalvm_ru
уже несколько проектов котлиновских их у себя выплили, так как хотят native-image
источник

AG

Asad Ganiev in graalvm_ru
К сожалению я не знаю котлин )
источник

AG

Asad Ganiev in graalvm_ru
А как насчет рефлекшна в java. та же ситуация?
источник

A

Alex in graalvm_ru
At the moment, Graal does not support compilation of non-reducible loops (i.e., loops with multiple entry-points). This is fine on HotSpot as we can just delegate execution of such methods to either the interpreter or C1 and they are fairly rare (for example javac or scalac would never produce such code patterns).
However, as you have seen, there is no backup strategy available on SVM/native-image.

Structured loops at an important (an conscious) decision in the design of the Graal IR so i don't think we want to change that. However there are ways we could improve support for non-reducible loops that appear in bytecodes.

In particular we could select the entry point that we want to keep and then duplicate parts of the loop on the other entry path so that a single entry point remains. This would cause some increase in code size but at least it would allow Graal to better support Kotlin coroutines .
источник

A

Alex in graalvm_ru
в коменте все красиво разложено
источник

A

Alex in graalvm_ru
после обфускации единственное правило: байткод должен быть валидным

но это не значит что грааль умеет данные структуры данных переваривать
может вам повезет
а может и не повезет
источник