diff --git a/.github/scripts/install_musl.sh b/.github/scripts/install_musl.sh index f72551395..f2f7df969 100644 --- a/.github/scripts/install_musl.sh +++ b/.github/scripts/install_musl.sh @@ -36,23 +36,12 @@ fi # install musl if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then - # Download musl tarball and signature - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz" -o /tmp/musl.tar.gz - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz.asc" -o /tmp/musl.tar.gz.asc - - # Import musl GPG key - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 836489290BB6B70F99FFDA0556BCDB593020450F - - # Verify GPG signature - echo "Verifying musl GPG signature..." - gpg --verify /tmp/musl.tar.gz.asc /tmp/musl.tar.gz - - mkdir -p "/tmp/dep_musl-${MUSL_VERSION}" - cd "/tmp/dep_musl-${MUSL_VERSION}" - - # shellcheck disable=SC2002 - cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . - + # Download musl git repo + cd /tmp + git clone https://git.musl-libc.org/git/musl /tmp/musl + cd /tmp/musl + git checkout "v$MUSL_VERSION" + echo "musl-${MUSL_VERSION}: configure..." ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 148e2c4f2..5a5649ea1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -419,23 +419,12 @@ jobs: # install musl if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then - # Download musl tarball and signature - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz" -o /tmp/musl.tar.gz - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz.asc" -o /tmp/musl.tar.gz.asc - - # Import musl GPG key - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 836489290BB6B70F99FFDA0556BCDB593020450F - - # Verify GPG signature - echo "Verifying musl GPG signature..." - gpg --verify /tmp/musl.tar.gz.asc /tmp/musl.tar.gz - - mkdir -p "/tmp/dep_musl-${MUSL_VERSION}" - cd "/tmp/dep_musl-${MUSL_VERSION}" - - # shellcheck disable=SC2002 - cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . - + # Download musl git repo + cd /tmp + git clone https://git.musl-libc.org/git/musl /tmp/musl + cd /tmp/musl + git checkout "v$MUSL_VERSION" + echo "musl-${MUSL_VERSION}: configure..." ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null @@ -728,23 +717,12 @@ jobs: # install musl if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then - # Download musl tarball and signature - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz" -o /tmp/musl.tar.gz - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz.asc" -o /tmp/musl.tar.gz.asc - - # Import musl GPG key - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 836489290BB6B70F99FFDA0556BCDB593020450F - - # Verify GPG signature - echo "Verifying musl GPG signature..." - gpg --verify /tmp/musl.tar.gz.asc /tmp/musl.tar.gz - - mkdir -p "/tmp/dep_musl-${MUSL_VERSION}" - cd "/tmp/dep_musl-${MUSL_VERSION}" - - # shellcheck disable=SC2002 - cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . - + # Download musl git repo + cd /tmp + git clone https://git.musl-libc.org/git/musl /tmp/musl + cd /tmp/musl + git checkout "v$MUSL_VERSION" + echo "musl-${MUSL_VERSION}: configure..." ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null @@ -1037,23 +1015,12 @@ jobs: # install musl if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then - # Download musl tarball and signature - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz" -o /tmp/musl.tar.gz - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz.asc" -o /tmp/musl.tar.gz.asc - - # Import musl GPG key - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 836489290BB6B70F99FFDA0556BCDB593020450F - - # Verify GPG signature - echo "Verifying musl GPG signature..." - gpg --verify /tmp/musl.tar.gz.asc /tmp/musl.tar.gz - - mkdir -p "/tmp/dep_musl-${MUSL_VERSION}" - cd "/tmp/dep_musl-${MUSL_VERSION}" - - # shellcheck disable=SC2002 - cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . - + # Download musl git repo + cd /tmp + git clone https://git.musl-libc.org/git/musl /tmp/musl + cd /tmp/musl + git checkout "v$MUSL_VERSION" + echo "musl-${MUSL_VERSION}: configure..." ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 03ebad6fb..23319b565 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -417,23 +417,12 @@ jobs: # install musl if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then - # Download musl tarball and signature - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz" -o /tmp/musl.tar.gz - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz.asc" -o /tmp/musl.tar.gz.asc - - # Import musl GPG key - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 836489290BB6B70F99FFDA0556BCDB593020450F - - # Verify GPG signature - echo "Verifying musl GPG signature..." - gpg --verify /tmp/musl.tar.gz.asc /tmp/musl.tar.gz - - mkdir -p "/tmp/dep_musl-${MUSL_VERSION}" - cd "/tmp/dep_musl-${MUSL_VERSION}" - - # shellcheck disable=SC2002 - cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . - + # Download musl git repo + cd /tmp + git clone https://git.musl-libc.org/git/musl /tmp/musl + cd /tmp/musl + git checkout "v$MUSL_VERSION" + echo "musl-${MUSL_VERSION}: configure..." ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null @@ -726,23 +715,12 @@ jobs: # install musl if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then - # Download musl tarball and signature - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz" -o /tmp/musl.tar.gz - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz.asc" -o /tmp/musl.tar.gz.asc - - # Import musl GPG key - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 836489290BB6B70F99FFDA0556BCDB593020450F - - # Verify GPG signature - echo "Verifying musl GPG signature..." - gpg --verify /tmp/musl.tar.gz.asc /tmp/musl.tar.gz - - mkdir -p "/tmp/dep_musl-${MUSL_VERSION}" - cd "/tmp/dep_musl-${MUSL_VERSION}" - - # shellcheck disable=SC2002 - cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . - + # Download musl git repo + cd /tmp + git clone https://git.musl-libc.org/git/musl /tmp/musl + cd /tmp/musl + git checkout "v$MUSL_VERSION" + echo "musl-${MUSL_VERSION}: configure..." ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null @@ -1035,23 +1013,12 @@ jobs: # install musl if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then - # Download musl tarball and signature - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz" -o /tmp/musl.tar.gz - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz.asc" -o /tmp/musl.tar.gz.asc - - # Import musl GPG key - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 836489290BB6B70F99FFDA0556BCDB593020450F - - # Verify GPG signature - echo "Verifying musl GPG signature..." - gpg --verify /tmp/musl.tar.gz.asc /tmp/musl.tar.gz - - mkdir -p "/tmp/dep_musl-${MUSL_VERSION}" - cd "/tmp/dep_musl-${MUSL_VERSION}" - - # shellcheck disable=SC2002 - cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . - + # Download musl git repo + cd /tmp + git clone https://git.musl-libc.org/git/musl /tmp/musl + cd /tmp/musl + git checkout "v$MUSL_VERSION" + echo "musl-${MUSL_VERSION}: configure..." ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null diff --git a/.github/workflows/prb.yml b/.github/workflows/prb.yml index 82f45ec2c..4011828de 100644 --- a/.github/workflows/prb.yml +++ b/.github/workflows/prb.yml @@ -308,23 +308,12 @@ jobs: # install musl if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then - # Download musl tarball and signature - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz" -o /tmp/musl.tar.gz - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz.asc" -o /tmp/musl.tar.gz.asc - - # Import musl GPG key - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 836489290BB6B70F99FFDA0556BCDB593020450F - - # Verify GPG signature - echo "Verifying musl GPG signature..." - gpg --verify /tmp/musl.tar.gz.asc /tmp/musl.tar.gz - - mkdir -p "/tmp/dep_musl-${MUSL_VERSION}" - cd "/tmp/dep_musl-${MUSL_VERSION}" - - # shellcheck disable=SC2002 - cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . - + # Download musl git repo + cd /tmp + git clone https://git.musl-libc.org/git/musl /tmp/musl + cd /tmp/musl + git checkout "v$MUSL_VERSION" + echo "musl-${MUSL_VERSION}: configure..." ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null @@ -626,23 +615,12 @@ jobs: # install musl if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then - # Download musl tarball and signature - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz" -o /tmp/musl.tar.gz - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz.asc" -o /tmp/musl.tar.gz.asc - - # Import musl GPG key - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 836489290BB6B70F99FFDA0556BCDB593020450F - - # Verify GPG signature - echo "Verifying musl GPG signature..." - gpg --verify /tmp/musl.tar.gz.asc /tmp/musl.tar.gz - - mkdir -p "/tmp/dep_musl-${MUSL_VERSION}" - cd "/tmp/dep_musl-${MUSL_VERSION}" - - # shellcheck disable=SC2002 - cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . - + # Download musl git repo + cd /tmp + git clone https://git.musl-libc.org/git/musl /tmp/musl + cd /tmp/musl + git checkout "v$MUSL_VERSION" + echo "musl-${MUSL_VERSION}: configure..." ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null @@ -944,23 +922,12 @@ jobs: # install musl if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then - # Download musl tarball and signature - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz" -o /tmp/musl.tar.gz - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz.asc" -o /tmp/musl.tar.gz.asc - - # Import musl GPG key - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 836489290BB6B70F99FFDA0556BCDB593020450F - - # Verify GPG signature - echo "Verifying musl GPG signature..." - gpg --verify /tmp/musl.tar.gz.asc /tmp/musl.tar.gz - - mkdir -p "/tmp/dep_musl-${MUSL_VERSION}" - cd "/tmp/dep_musl-${MUSL_VERSION}" - - # shellcheck disable=SC2002 - cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . - + # Download musl git repo + cd /tmp + git clone https://git.musl-libc.org/git/musl /tmp/musl + cd /tmp/musl + git checkout "v$MUSL_VERSION" + echo "musl-${MUSL_VERSION}: configure..." ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null diff --git a/.github/workflows/release-branch.yml b/.github/workflows/release-branch.yml index 01c75504f..afe8a46c7 100644 --- a/.github/workflows/release-branch.yml +++ b/.github/workflows/release-branch.yml @@ -417,23 +417,12 @@ jobs: # install musl if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then - # Download musl tarball and signature - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz" -o /tmp/musl.tar.gz - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz.asc" -o /tmp/musl.tar.gz.asc - - # Import musl GPG key - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 836489290BB6B70F99FFDA0556BCDB593020450F - - # Verify GPG signature - echo "Verifying musl GPG signature..." - gpg --verify /tmp/musl.tar.gz.asc /tmp/musl.tar.gz - - mkdir -p "/tmp/dep_musl-${MUSL_VERSION}" - cd "/tmp/dep_musl-${MUSL_VERSION}" - - # shellcheck disable=SC2002 - cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . - + # Download musl git repo + cd /tmp + git clone https://git.musl-libc.org/git/musl /tmp/musl + cd /tmp/musl + git checkout "v$MUSL_VERSION" + echo "musl-${MUSL_VERSION}: configure..." ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null @@ -726,23 +715,12 @@ jobs: # install musl if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then - # Download musl tarball and signature - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz" -o /tmp/musl.tar.gz - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz.asc" -o /tmp/musl.tar.gz.asc - - # Import musl GPG key - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 836489290BB6B70F99FFDA0556BCDB593020450F - - # Verify GPG signature - echo "Verifying musl GPG signature..." - gpg --verify /tmp/musl.tar.gz.asc /tmp/musl.tar.gz - - mkdir -p "/tmp/dep_musl-${MUSL_VERSION}" - cd "/tmp/dep_musl-${MUSL_VERSION}" - - # shellcheck disable=SC2002 - cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . - + # Download musl git repo + cd /tmp + git clone https://git.musl-libc.org/git/musl /tmp/musl + cd /tmp/musl + git checkout "v$MUSL_VERSION" + echo "musl-${MUSL_VERSION}: configure..." ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null @@ -1035,23 +1013,12 @@ jobs: # install musl if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then - # Download musl tarball and signature - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz" -o /tmp/musl.tar.gz - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz.asc" -o /tmp/musl.tar.gz.asc - - # Import musl GPG key - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 836489290BB6B70F99FFDA0556BCDB593020450F - - # Verify GPG signature - echo "Verifying musl GPG signature..." - gpg --verify /tmp/musl.tar.gz.asc /tmp/musl.tar.gz - - mkdir -p "/tmp/dep_musl-${MUSL_VERSION}" - cd "/tmp/dep_musl-${MUSL_VERSION}" - - # shellcheck disable=SC2002 - cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . - + # Download musl git repo + cd /tmp + git clone https://git.musl-libc.org/git/musl /tmp/musl + cd /tmp/musl + git checkout "v$MUSL_VERSION" + echo "musl-${MUSL_VERSION}: configure..." ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 11ac432f1..f177c43f3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -422,23 +422,12 @@ jobs: # install musl if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then - # Download musl tarball and signature - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz" -o /tmp/musl.tar.gz - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz.asc" -o /tmp/musl.tar.gz.asc - - # Import musl GPG key - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 836489290BB6B70F99FFDA0556BCDB593020450F - - # Verify GPG signature - echo "Verifying musl GPG signature..." - gpg --verify /tmp/musl.tar.gz.asc /tmp/musl.tar.gz - - mkdir -p "/tmp/dep_musl-${MUSL_VERSION}" - cd "/tmp/dep_musl-${MUSL_VERSION}" - - # shellcheck disable=SC2002 - cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . - + # Download musl git repo + cd /tmp + git clone https://git.musl-libc.org/git/musl /tmp/musl + cd /tmp/musl + git checkout "v$MUSL_VERSION" + echo "musl-${MUSL_VERSION}: configure..." ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null @@ -736,23 +725,12 @@ jobs: # install musl if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then - # Download musl tarball and signature - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz" -o /tmp/musl.tar.gz - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz.asc" -o /tmp/musl.tar.gz.asc - - # Import musl GPG key - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 836489290BB6B70F99FFDA0556BCDB593020450F - - # Verify GPG signature - echo "Verifying musl GPG signature..." - gpg --verify /tmp/musl.tar.gz.asc /tmp/musl.tar.gz - - mkdir -p "/tmp/dep_musl-${MUSL_VERSION}" - cd "/tmp/dep_musl-${MUSL_VERSION}" - - # shellcheck disable=SC2002 - cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . - + # Download musl git repo + cd /tmp + git clone https://git.musl-libc.org/git/musl /tmp/musl + cd /tmp/musl + git checkout "v$MUSL_VERSION" + echo "musl-${MUSL_VERSION}: configure..." ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null @@ -1050,23 +1028,12 @@ jobs: # install musl if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then - # Download musl tarball and signature - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz" -o /tmp/musl.tar.gz - curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz.asc" -o /tmp/musl.tar.gz.asc - - # Import musl GPG key - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 836489290BB6B70F99FFDA0556BCDB593020450F - - # Verify GPG signature - echo "Verifying musl GPG signature..." - gpg --verify /tmp/musl.tar.gz.asc /tmp/musl.tar.gz - - mkdir -p "/tmp/dep_musl-${MUSL_VERSION}" - cd "/tmp/dep_musl-${MUSL_VERSION}" - - # shellcheck disable=SC2002 - cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . - + # Download musl git repo + cd /tmp + git clone https://git.musl-libc.org/git/musl /tmp/musl + cd /tmp/musl + git checkout "v$MUSL_VERSION" + echo "musl-${MUSL_VERSION}: configure..." ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null diff --git a/pkl-core/src/main/java/org/pkl/core/ast/type/TypeNode.java b/pkl-core/src/main/java/org/pkl/core/ast/type/TypeNode.java index 1fa9157e2..188cddfd0 100644 --- a/pkl-core/src/main/java/org/pkl/core/ast/type/TypeNode.java +++ b/pkl-core/src/main/java/org/pkl/core/ast/type/TypeNode.java @@ -3213,10 +3213,12 @@ public abstract class TypeNode extends PklNode { // clazz will be null iff the type arg is a not a valid class type if (clazz == null) { + CompilerDirectives.transferToInterpreter(); throw new VmTypeMismatchException.ClassType(sourceSection, value, typeNode.doExport()); } if (!value.isSubclassOf(clazz)) { + CompilerDirectives.transferToInterpreter(); throw new VmTypeMismatchException.ClassType(sourceSection, value, clazz); } diff --git a/pkl-core/src/main/java/org/pkl/core/runtime/VmTypeAlias.java b/pkl-core/src/main/java/org/pkl/core/runtime/VmTypeAlias.java index 4f4feea84..cf57cc824 100644 --- a/pkl-core/src/main/java/org/pkl/core/runtime/VmTypeAlias.java +++ b/pkl-core/src/main/java/org/pkl/core/runtime/VmTypeAlias.java @@ -231,6 +231,7 @@ public final class VmTypeAlias extends VmValue { } @Override + @TruffleBoundary public TypeAlias export() { synchronized (pTypeAliasLock) { if (__pTypeAlias == null) {