openjdk.ruOpenJDK на русском

JEP draft: Low-level classfile reflection

Низкоуровневая рефлексия class-файлов

ОтветственныйJohn Rose
ТипFeature
ОбластьJDK
СтатусDraft
Компонентhotspot / runtime
Создан2020/06/24 18:45
Обновлён2024/07/10 00:03
Задача8248259

ЧЕРНОВИК ЧЕРНОВИК ЧЕРНОВИК

Идея в том, чтобы у JDK и JVM был закрытый API для единообразной рефлексии того, что содержится в class-файле (за исключением того, что было отброшено при загрузке). Для этого уже есть механизмы, основанные на API и созданные специально для рефлексии и для раскрытия аннотаций (рефлексия CP), а также (более амбициозный) JVMCI для внешних JIT-компиляторов.

Они плохо масштабируются, и мы не хотим определять похожий API для потоков данных species в то же время, когда дорабатываем сами эти потоки данных. Поэтому пора сделать низкоуровневый рефлектор — нечто вроде реконструктора class-файлов в JVMTI, но менее костыльное и более «живое» (то есть отражающее текущее состояние связывания CP и не претендующее на генерацию целого class-файла).

У меня есть работающий прототип этого. Он пригодится нам для прототипирования потоков данных species (включая чтение любых атрибутов, которые нам понадобится добавить в classifies). Кроме того, я ожидаю, что позднее он станет основой для переноса большей части прежних API в код на Java.