Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
With optional dependencies on three new packages for components that are
no longer included in this package. (graaljs and graal-llvm are required
by test.sh; I don’t see a need to explicitly test graal-visualvm there.)
|
|
|
|
|
|
|
|
Apparently the only reason that the `node --polyglot` added to test.sh
in the previous commit worked on my system is that it silently fell back
to `node --polyglot --jvm`; however, it’s *supposed* to run polyglot
Node + everything else as a native image, without a JVM. And apparently,
R can’t be built as a native image (for engineering reasons, I’ve been
told), so if it doesn’t fall back to --jvm mode, then our test doesn’t
work. Consequently, we should actually specify --polyglot --jvm.
The fallback happens when libpolyglot.so is missing. It’s supposed to be
built by `gu rebuild libpolyglot`, and apparently `gu` prints a message
recommending that you run this command when you use it to install a new
language; since we bypass gu, we should print a similar message in our
package installation process. We don’t directly run the command for the
same reason that gu doesn’t: it’s way too expensive, requiring over four
hours of CPU time on my system. Even as a hook, rather than a
post-install script (i.e. only running once at the end of all package
installs, not once per package), I can’t justify this expenditure for
everyone installing the package, especially since most people probably
won’t need this (evidently I’ve been using GraalVM for years without
ever having built libpolyglot.so). So we just make the hook print a
message for users, and they can hopefully decide for themselves if they
want to run the command or not. (If people ask about the message in the
AUR comments, we can probably iterate on the phrasing a bit.)
|
|
The Node.js component is no longer included in this package, making it
separate from the JS language (which is still included), so we should
make sure to test it in test.sh. The simplest way to do that is to
replace R with Node as the host language for the polyglot test.
|
|
|
|
|
|
The GraalVM 21.0.0 base download does not include the Node.js component
anymore, so that’s available as a separate package now. Add it as an
optional dependency of this one, so that people can find it easily
(since it used to be bundled with this package).
|
|
I don’t think we can test interop with other languages easily (Espresso
source is JVM bytecode, not Java source code), but we can at least test
it as the main language, similar to native-image.
|
|
|
|
|
|
And silence emcc in test.sh, since it otherwise prints some noise to
stderr when some compilation parts aren’t cached.
|
|
Needs Emscripten to compile the C file, which apparently puts the emcc
binary in an unusual location, so add that to the PATH as well. I also
considered adding the .wasm file to the Git repository directly, but it
seems the format changes occasionally – a file I used to test earlier
GraalWasm releases didn’t work with 20.3.0 anymore – so let’s instead
have the test script compile the source code from scratch, and require
the testing user to have emscripten installed.
|
|
|
|
|
|
|
|
|
|
The corresponding files have been available upstream for a few releases
already, I just never thought to make them available. Thanks to AUR user
alex4o [1] for the tip!
[1]: https://aur.archlinux.org/account/alex4o/
|
|
|
|
|
|
If we don’t specify the 'staticlibs' option, makepkg will remove static
library (.a) files when building the package, which breaks native-image.
Many thanks to AUR user mcescher [1] for figuring this out!
[1]: https://aur.archlinux.org/account/mcescher/
|
|
With the 19.3.0 release, GraalVM supports two Java versions: Java 8 and
Java 11. Accordingly, the former graal-bin package is split into two:
jdk8-graalvm-bin and jdk11-graalvm-bin (this package). We use this
opportunity to make several other adjustments as well.
The main product name seems to be “GraalVM”, not just “Graal”, so we
reflect this in the package name and in the Java name.
We no longer provide a version of the package name without the “-bin”
suffix. It doesn’t seem likely that a built-from-source version will be
added to the AUR soon, and other packages like jdk8-openj9-bin or
jdk8-j9-bin don’t provide non-bin versions either.
We no longer recommend a native-image package. The old package only did
this because it used to include that functionality; this new package has
never included native-image, so I don’t see the need to recommend it.
People interested in it should be able to find it easily enough.
A test script is included, which I’d been using locally for some time
already. It assumes you’ve locally installed current versions of the
GraalVM, FastR, TruffleRuby, GraalPython and native-image packages, and
is typically run just before pushing the updated PKGBUILDs to the AUR.
Note that the jdk11 version of native-image is not yet functional, so
the script currently fails.
And finally, a .gitignore file never hurts.
|