[graalvm-dev] Introducing qbicc

David Lloyd david.lloyd at redhat.com
Thu May 20 07:00:39 PDT 2021


Hi Everyone,

We have created a new Github project, qbicc [1], to capture some of
the prototyping work we are doing around native images. Qbicc is an
experimental sandbox project intended for VM developers to rapidly
prototype potential approaches to challenges surrounding native Java
support in a way that is independent from any particular JVM
implementation.

With the announcement of Project Leyden - which aims to standardize
native image generation in Java - it has become clear that use cases
around native compilation are more important than ever, and we expect
that the qbicc project will help to drive the discussion around the
art of the possible in a broad range of compile-to-native Java
applications. Many of the ideas being explored in qbicc have been
guided not only by application considerations, but also by our
experience with GraalVM and OpenJDK HotSpot. Red Hat intends to not
only continue contributing to GraalVM, but to also contribute to
Project Leyden at OpenJDK, and to that end we have done extensive
initial analysis and have started a discussion about it [2]. Further,
we expect the ideas prototyped in qbicc will help identify new
contribution opportunities to both the GraalVM and OpenJDK
communities.

Qbicc is a small code base with few interdependencies so changes to
each area are localized.  This makes it easier to experiment with and
explore designs that are infeasible to retrofit into dynamic JVMs on
an experimental basis. Some of the areas we have focussed on recently
with qbicc include the object header design, array design, using
typeids rather than native pointers, Lightweight Rapid Type Analysis
(RTA, to minimize the classes, and methods required in the closed
world), and more. Areas we are currently looking into include
addressing heap serialization and optimizing compile time
initialization, with a potential view towards identifying ways in
which these features might possibly be standardized in Leyden.

As mentioned above, qbicc is not intended for end users and we
currently have no plans to build any products around it. Our aim is to
use this project to experiment with approaches to native image
generation and thereby drive discussions within the Leyden project and
GraalVM native-image, with real-world data and experience in areas
that are directly applicable to the benefit of Java runtimes and
applications.

We invite you to use our GitHub discussion board [3] and interactive
developer Zulip chat [4] to join the discussion.

[1] https://github.com/qbicc/qbicc
[2] https://mail.openjdk.java.net/pipermail/discuss/2021-April/005788.html
[3] https://github.com/qbicc/qbicc/discussions
[4] https://qbicc.zulipchat.com
-- 
- DML • he/him




More information about the GraalVM-Dev mailing list