Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Support testing for GraalVM x86, ARM64 #8

Open
achrinza opened this issue Dec 8, 2021 · 0 comments
Open

Support testing for GraalVM x86, ARM64 #8

achrinza opened this issue Dec 8, 2021 · 0 comments

Comments

@achrinza
Copy link
Member

achrinza commented Dec 8, 2021

GraalVM is a high performance JDK distribution that enables polyglot programming. Generally, it sacrifices startup performance in favour of general execution performance.

It provides 2 modes: JVM, and Polyglot. JVM mode support interoperability with Java, while Polyglot mode supports interoperability between between Node.js, Python, Java, Ruby, R, WASM, and Java (Experimental).

Supported architectures

For supported architectures, Linux x86-64 and Linux ARM64 should be suffice.

OS CPU Arch.
Windows x86-64
macOS x86-64
Linux x86-64
Linux ARM64

See: https://www.graalvm.org/docs/getting-started/#install-graalvm

Why should LoopBack support it?

GraalVM enables polyglot programming, which provides new opportunities for allowing LoopBack users to interact between Java and Node.js, and the other programming languages. Furthermore, GraalVM allows users to run LoopBack on a JVM instead of Node.js itself, thereby allowing re-use of familiar tooling if any.

LoopBack implements programming paradigms that are familiar to Java developers (e.g. dependency injection, inversion of control, meta-framework), and GraalVM may be able to provide an opportunity for Java users to more quickly adopt LoopBack.

In addition, LoopBack users may benefit from optimizations performed by GraalVM.

Enabling active testing for GraalVM would provide confidence that LoopBack packages will work on the JVM.

Compatibility

Oracle claims to be fully compatible with ECMAScript 2021, and has subjectively incorporated some of the v8-specific extensions. They also test against a subset of NPM packages to ensure compatibility.

See: https://www.graalvm.org/javascript/

Release cycle

The versioning scheme is based on the year, so 19.x is released in 2019, while 20.x is released at 2020. GraalVM has a yearly major release cycle, and "minor Feature releases of GraalVM Community are produced every three months on a predictable schedule, always on the Tuesday closest to the 17th of the months of February, May, August, and November. ... The final Feature release, e.g., 20.3, is supported for 12 months with bug and vulnerability fixes." This means that, at any point in time, there may be up to 2 versions that need to be supported simultaneously (e.g. 19.3.1 and 20.3.4).

See: https://www.graalvm.org/release-notes/version-roadmap/

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant