Galahad, o novo projeto OpenJDK para mesclar a construção nativa do GraalVM

OpenJDK revelado uma notícia em que propõe a criação de um novo projeto, que tem o nome "Galahad" destina-se a mesclar algumas partes do código GraalVM Edição da comunidade en o kit de desenvolvimento de java.

A equipe anunciou que o objetivo inicial do projeto Galahad é contribuir com a última versão do compilador JIT do GraalVM e integrá-lo como uma alternativa ao compilador JIT da máquina virtual HotSpot existente. Este é o desenvolvimento mais recente em um esforço de longo prazo para fornecer a capacidade de compilar aplicativos Java para código de máquina antes que o programa seja executado.

GraalVM é uma Java Virtual Machine (JVM) e um Java Development Kit (JDK) criado pela Oracle. É um ambiente de tempo de execução de alto desempenho Ajuda a melhorar o desempenho e a eficiência dos aplicativos.

Seus objetivos incluem: escrever um compilador mais rápido e de fácil manutenção, melhorar o desempenho das linguagens executadas na JVM, reduzir os tempos de inicialização do aplicativo, integrar o suporte multilíngue ao ecossistema Java, além de fornecer um conjunto de ferramentas de programação para isso GraalVM adiciona um compilador de otimização ao JDC.

Isso otimiza o desempenho dos diferentes idiomass e garante a interoperabilidade de aplicativos multilíngues. Juntamente com o suporte para código Java, o GraalVM também suporta outras linguagens de programação, incluindo Scala, Kotlin, Groovy, Clojure, R, Python, JavaScript e Ruby.

Essencialmente, ele permite que os desenvolvedores executem códigos com eficiência em vários idiomas e bibliotecas em um único aplicativo. O projeto OpenJDK agora quer aproveitar esses recursos e anunciou recentemente um roteiro que permitirá o suporte ao GraalVM.

O apoio de GraalVM destina-se principalmente a fornecer Usuários do OpenJDK a capacidade de compilar aplicativos Java em código de máquina antes da execução do programa. À primeira vista, isso parece um tanto estranho.

Na verdade, uma das primeiras coisas que um novo desenvolvedor Java aprende é que "a linguagem de programação Java não compila para código de máquina, mas para bytecode JVM". Essa máxima simples tem implicações profundas, sendo a mais fundamental que a plataforma Java depende de um poderoso ambiente de execução dinâmica, a JVM, para execução.

Esse ambiente de tempo de execução permite técnicas de execução dinâmica, como carregamento e reflexão de classe, que não possuem análogos reais em linguagens compiladas por AOT. Na verdade, é o ponto de partida de tudo o que torna o Java tão poderoso e o que o tornou tão revolucionário quando chegou ao cenário do software há cerca de 25 anos. Apesar disso, sempre houve interesse na capacidade de compilar programas Java diretamente no código da máquina e executá-los independentemente sem uma JVM.

Existem várias razões para esse desejo: reduzir o tempo de aquecimento para que os aplicativos Java atinjam seu desempenho máximo, reduzir os requisitos de memória dos aplicativos Java ou simplesmente um desejo geral de evitar o uso de recursos para subsistemas em tempo de execução. aplicação pode não precisar. Vários projetos tentaram concretizar essa possibilidade. O mais recente, e sem dúvida o mais bem-sucedido até hoje, é o projeto GraalVM. Este projeto não é do OpenJDK, mas de um projeto de pesquisa do Oracle Labs. A primeira versão de produção, GraalVM 19.0, chegou em maio de 2019.

Desde então, o GraalVM tem operado como um projeto autônomo com um ciclo de lançamento diferente e interação limitada com o OpenJDK.

Por enquanto, Galahad está focado em contribuir com a versão mais recente do compilador GraalVM JIT e integrá-lo como uma alternativa ao compilador C2. A tecnologia de compilação AOT será adicionada posteriormente necessários para tornar o compilador Graal JIT instantaneamente disponível na inicialização da JVM. Deve-se notar que a base de código GraalVM completa não será confirmada, apenas os principais componentes JIT e AOT, bem como a ferramenta Native Image. As funções proprietárias da Oracle presentes no GraalVM Enterprise Editton não devem ser atribuídas ao projeto.

finalmente se você está interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir.