graalvm / simplelanguage

A simple example language built using the Truffle API.

Home Page:http://openjdk.java.net/projects/graal/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The sl shell script doesn't work when installed using gu

mthmulders opened this issue · comments

Steps to reproduce
Inside a fresh checkout of the project:

  1. Build the GraalVM component with mvn package --am --pl ./component.
  2. Install the component in a GraalVM installation with gu install -L component/sl-component.jar.
  3. Run sl language/tests/HelloWorld.sl

Expected situation
Output is something like "Hello World!"

Actual behaviour
Output is

Could not find language on /usr/bin/language/target/simplelanguage.jar. Did you run mvn package?

Analysis
I believe this is due to the fact that the sl script in the project root fails to detect it is invoked from an installed GraalVM component and so it follows the path for "local" invocations, i.e. from the project checkout.

The sl binary from the component is symlinked into /usr/bin, so extracting the GraalVM version by inspecting "$SCRIPT_HOME/../release" fails.

I think it can be fixed by following the symlink (/usr/bin/sl) using readlink -f, and updating the relative paths to the language jar and the launcher jar accordingly.