Goetz Обновляет OpenJDK С Прогрессом Valhalla


Список рассылки OpenJDK получил обновленную информацию о ходе реализации проекта Valhalla, проекта OpenJDK, предназначенного для “изучения и инкубации” продвинутых кандидатов на виртуальные машины Java и языковые функции, такие как типы значений и общая специализация.

Брайан Гетц, архитектор языка Java Oracle, представил обновление в сообщении в списке рассылки OpenJDK, в котором подробно описан прогресс на данный момент. Valhalla началась еще в 2014 году, и в течение последующих пяти лет Гетц наблюдал за рядом прототипов для изучения вариантов.

В своем посте Гетц сказал::

“Мы считаем, что сейчас мы находимся на том этапе, когда у нас есть четкий и согласованный путь для улучшения языка Java и виртуальной машины с помощью типов значений, чтобы они четко взаимодействовали с существующими универсальными классами и имели совместимый путь для миграции наших существующих классов на основе значений во встроенные классы и наших существующих универсальных классов в специализированные универсальные классы.”

Основная функция, представляющая интерес для группы Valhalla, – это встроенные типы, но, как говорит Гетц:

“такое фундаментальное возмущение системы типов JVM влечет за собой множество других функций и проблем, таких как специализированные универсальные интерфейсы, а также инструменты для обеспечения совместимой миграции существующих API на встроенные типы и специализированные универсальные интерфейсы.”

Самый последний прототип Valhalla, получивший название “L World” (поскольку встроенные классы могут совместно использовать L-носитель со ссылками на объекты), сумел объединить ссылки и строки в одном наборе дескрипторов типов, байт-кодов и типов без существенных компромиссов. Именно это привело к заявлению Гетца о наличии четкого и последовательного пути для улучшения языка Java и виртуальной машины с помощью типов значений.

Гетц говорит, что цель состоит в том, чтобы:

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

В этом посте содержится полная информация о Валгалле, включая ссылки на другие документы и некоторые интересные диаграммы.


Добавить комментарий