Оптимизация хвостовых вызовов у Java 8?

Я попытался копать в Интернете, чтобы ответить на мой вопрос. Я нашел несколько документов, связанных с Project DaVinci. Это помечено JSR 292, которое связано с включением замыканий в JVM. Был ли реализован этот проект и является ли он частью Java 8?

Ответы

Ответ 1

Насколько я знаю, Java 8 не имеет оптимизации хвостового вызова. Afaik это не связано с фактическим трюком компилятора, потому что это просто, но для сохранения вызова в целях безопасности. Но я предполагаю, что это возможно с перезаписью байт-кода.

Ответ 2

Java не поддерживает TCO на уровне компилятора, но его можно реализовать с помощью Java 8 с использованием лямбда-выражений. Он описывается Venkat Subramaniamin в "Функциональное программирование на Java".