Список рассылки OpenJDK получил обновленную информацию о ходе реализации проекта Valhalla, проекта OpenJDK, предназначенного для «изучения и инкубации» продвинутых кандидатов на виртуальные машины Java и языковые функции, такие как типы значений и общая специализация.
Брайан Гетц, архитектор языка Java Oracle, представил обновление в сообщении в списке рассылки OpenJDK, в котором подробно описан прогресс на данный момент. Valhalla началась еще в 2014 году, и в течение последующих пяти лет Гетц наблюдал за рядом прототипов для изучения вариантов.
В своем посте Гетц сказал::
«Мы считаем, что сейчас мы находимся на том этапе, когда у нас есть четкий и согласованный путь для улучшения языка Java и виртуальной машины с помощью типов значений, чтобы они четко взаимодействовали с существующими универсальными классами и имели совместимый путь для миграции наших существующих классов на основе значений во встроенные классы и наших существующих универсальных классов в специализированные универсальные классы.»
Основная функция, представляющая интерес для группы Valhalla, — это встроенные типы, но, как говорит Гетц:
«такое фундаментальное возмущение системы типов JVM влечет за собой множество других функций и проблем, таких как специализированные универсальные интерфейсы, а также инструменты для обеспечения совместимой миграции существующих API на встроенные типы и специализированные универсальные интерфейсы.»
Самый последний прототип Valhalla, получивший название “L World” (поскольку встроенные классы могут совместно использовать L-носитель со ссылками на объекты), сумел объединить ссылки и строки в одном наборе дескрипторов типов, байт-кодов и типов без существенных компромиссов. Именно это привело к заявлению Гетца о наличии четкого и последовательного пути для улучшения языка Java и виртуальной машины с помощью типов значений.
Гетц говорит, что цель состоит в том, чтобы:
«Дайте разработчикам возможность сопоставлять макеты данных с моделью производительности современного оборудования, предоставляя разработчикам Java более простой путь к плоским (эффективным с точки зрения кэша) и плотным (эффективным с точки зрения памяти) макетам данных без ущерба для абстракции или безопасности типов.»
В этом посте содержится полная информация о Валгалле, включая ссылки на другие документы и некоторые интересные диаграммы.