Merge pull request #1050 from cpunion/llvm-19

Llvm 19
This commit is contained in:
xushiwei
2025-04-03 11:55:32 +08:00
committed by GitHub
20 changed files with 131 additions and 63 deletions

View File

@@ -4,7 +4,7 @@ inputs:
llvm-version: llvm-version:
description: "LLVM version to install" description: "LLVM version to install"
required: true required: true
default: "18" default: "19"
runs: runs:
using: "composite" using: "composite"
@@ -14,8 +14,8 @@ runs:
shell: bash shell: bash
run: | run: |
brew update brew update
brew install llvm@${{inputs.llvm-version}} bdw-gc openssl libffi libuv brew install llvm@${{inputs.llvm-version}} lld@${{inputs.llvm-version}} bdw-gc openssl libffi libuv
brew link --force libffi brew link --overwrite lld@${{inputs.llvm-version}} libffi
echo "$(brew --prefix llvm@${{inputs.llvm-version}})/bin" >> $GITHUB_PATH echo "$(brew --prefix llvm@${{inputs.llvm-version}})/bin" >> $GITHUB_PATH
# Install optional deps for demos. # Install optional deps for demos.

View File

@@ -30,6 +30,7 @@ jobs:
args: --max-concurrency 3 --retry-wait-time 15 README.md args: --max-concurrency 3 --retry-wait-time 15 README.md
remote_install: remote_install:
continue-on-error: true
strategy: strategy:
matrix: matrix:
os: os:
@@ -65,6 +66,7 @@ jobs:
source doc/_readme/scripts/run.sh source doc/_readme/scripts/run.sh
local_install: local_install:
continue-on-error: true
strategy: strategy:
matrix: matrix:
os: os:
@@ -115,6 +117,7 @@ jobs:
source doc/_readme/scripts/run.sh source doc/_readme/scripts/run.sh
local_install_full: local_install_full:
continue-on-error: true
strategy: strategy:
matrix: matrix:
os: os:

View File

@@ -17,7 +17,7 @@ jobs:
os: os:
- macos-latest - macos-latest
- ubuntu-24.04 - ubuntu-24.04
llvm: [18] llvm: [19]
runs-on: ${{matrix.os}} runs-on: ${{matrix.os}}
defaults: defaults:
run: run:
@@ -38,7 +38,7 @@ jobs:
- name: Set up Go - name: Set up Go
uses: ./.github/actions/setup-go uses: ./.github/actions/setup-go
with: with:
go-version: '1.24.0' go-version: "1.24.0"
- name: Build - name: Build
run: go build -v ./... run: go build -v ./...

View File

@@ -33,8 +33,8 @@ jobs:
os: os:
- macos-latest - macos-latest
- ubuntu-24.04 - ubuntu-24.04
llvm: [18] llvm: [19]
go: ['1.20.14', '1.21.13', '1.22.12', '1.23.6', '1.24.0'] go: ["1.20.14", "1.21.13", "1.22.12", "1.23.6", "1.24.0"]
runs-on: ${{matrix.os}} runs-on: ${{matrix.os}}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@@ -58,7 +58,7 @@ jobs:
- name: Set up Go for build - name: Set up Go for build
uses: ./.github/actions/setup-go uses: ./.github/actions/setup-go
with: with:
go-version: '1.24.0' go-version: "1.24.0"
- name: Install - name: Install
working-directory: compiler working-directory: compiler
@@ -121,8 +121,8 @@ jobs:
os: os:
- macos-latest - macos-latest
- ubuntu-24.04 - ubuntu-24.04
llvm: [18] llvm: [19]
go: ['1.24.0'] go: ["1.24.0"]
runs-on: ${{matrix.os}} runs-on: ${{matrix.os}}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@@ -141,7 +141,7 @@ jobs:
- name: Set up Go for build - name: Set up Go for build
uses: ./.github/actions/setup-go uses: ./.github/actions/setup-go
with: with:
go-version: '1.24.0' go-version: "1.24.0"
- name: Install - name: Install
working-directory: compiler working-directory: compiler
@@ -174,8 +174,8 @@ jobs:
strategy: strategy:
matrix: matrix:
os: [ubuntu-24.04, macos-latest] os: [ubuntu-24.04, macos-latest]
llvm: [18] llvm: [19]
go: ['1.20.14', '1.21.13', '1.22.12', '1.23.6', '1.24.0'] go: ["1.20.14", "1.21.13", "1.22.12", "1.23.6", "1.24.0"]
runs-on: ${{matrix.os}} runs-on: ${{matrix.os}}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@@ -187,7 +187,7 @@ jobs:
- name: Set up Go 1.23 for building llgo - name: Set up Go 1.23 for building llgo
uses: ./.github/actions/setup-go uses: ./.github/actions/setup-go
with: with:
go-version: '1.24.0' go-version: "1.24.0"
- name: Install llgo - name: Install llgo
working-directory: compiler working-directory: compiler
@@ -205,32 +205,32 @@ jobs:
uses: ./.github/actions/test-helloworld uses: ./.github/actions/test-helloworld
with: with:
go-version: ${{matrix.go}} go-version: ${{matrix.go}}
mod-version: '1.20' mod-version: "1.20"
- name: Test Hello World with go.mod 1.21 - name: Test Hello World with go.mod 1.21
if: startsWith(matrix.go, '1.21') || startsWith(matrix.go, '1.22') || startsWith(matrix.go, '1.23') || startsWith(matrix.go, '1.24') if: startsWith(matrix.go, '1.21') || startsWith(matrix.go, '1.22') || startsWith(matrix.go, '1.23') || startsWith(matrix.go, '1.24')
uses: ./.github/actions/test-helloworld uses: ./.github/actions/test-helloworld
with: with:
go-version: ${{matrix.go}} go-version: ${{matrix.go}}
mod-version: '1.21' mod-version: "1.21"
- name: Test Hello World with go.mod 1.22 - name: Test Hello World with go.mod 1.22
if: startsWith(matrix.go, '1.22') || startsWith(matrix.go, '1.23') || startsWith(matrix.go, '1.24') if: startsWith(matrix.go, '1.22') || startsWith(matrix.go, '1.23') || startsWith(matrix.go, '1.24')
uses: ./.github/actions/test-helloworld uses: ./.github/actions/test-helloworld
with: with:
go-version: ${{matrix.go}} go-version: ${{matrix.go}}
mod-version: '1.22' mod-version: "1.22"
- name: Test Hello World with go.mod 1.23 - name: Test Hello World with go.mod 1.23
if: startsWith(matrix.go, '1.23') || startsWith(matrix.go, '1.24') if: startsWith(matrix.go, '1.23') || startsWith(matrix.go, '1.24')
uses: ./.github/actions/test-helloworld uses: ./.github/actions/test-helloworld
with: with:
go-version: ${{matrix.go}} go-version: ${{matrix.go}}
mod-version: '1.23' mod-version: "1.23"
- name: Test Hello World with go.mod 1.24 - name: Test Hello World with go.mod 1.24
if: startsWith(matrix.go, '1.24') if: startsWith(matrix.go, '1.24')
uses: ./.github/actions/test-helloworld uses: ./.github/actions/test-helloworld
with: with:
go-version: ${{matrix.go}} go-version: ${{matrix.go}}
mod-version: '1.24' mod-version: "1.24"

View File

@@ -6,12 +6,12 @@ TMPDIR="$(mktemp -d)"
export TMPDIR export TMPDIR
trap 'rm -rf "${TMPDIR}"' EXIT trap 'rm -rf "${TMPDIR}"' EXIT
DARWIN_AMD64_LLVM_PREFIX=.sysroot/darwin/amd64/usr/local/opt/llvm@18 DARWIN_AMD64_LLVM_PREFIX=.sysroot/darwin/amd64/usr/local/opt/llvm@19
DARWIN_ARM64_LLVM_PREFIX=.sysroot/darwin/arm64/opt/homebrew/opt/llvm@18 DARWIN_ARM64_LLVM_PREFIX=.sysroot/darwin/arm64/opt/homebrew/opt/llvm@19
mkdir -p "${DARWIN_AMD64_LLVM_PREFIX}" "${DARWIN_ARM64_LLVM_PREFIX}" mkdir -p "${DARWIN_AMD64_LLVM_PREFIX}" "${DARWIN_ARM64_LLVM_PREFIX}"
BREW_LLVM_FORMULA_JSON="$(mktemp)" BREW_LLVM_FORMULA_JSON="$(mktemp)"
curl -fsSL https://formulae.brew.sh/api/formula/llvm@18.json > "${BREW_LLVM_FORMULA_JSON}" curl -fsSL https://formulae.brew.sh/api/formula/llvm@19.json > "${BREW_LLVM_FORMULA_JSON}"
BREW_LLVM_AMD64_BOTTLE_URL=$(jq -r '.bottle.stable.files.sonoma.url' "${BREW_LLVM_FORMULA_JSON}") BREW_LLVM_AMD64_BOTTLE_URL=$(jq -r '.bottle.stable.files.sonoma.url' "${BREW_LLVM_FORMULA_JSON}")
BREW_LLVM_ARM64_BOTTLE_URL=$(jq -r '.bottle.stable.files.arm64_sonoma.url' "${BREW_LLVM_FORMULA_JSON}") BREW_LLVM_ARM64_BOTTLE_URL=$(jq -r '.bottle.stable.files.arm64_sonoma.url' "${BREW_LLVM_FORMULA_JSON}")
curl -fsSL -H "Authorization: Bearer QQ==" "${BREW_LLVM_AMD64_BOTTLE_URL}" | tar -xzf - --strip-components=2 -C "${DARWIN_AMD64_LLVM_PREFIX}" curl -fsSL -H "Authorization: Bearer QQ==" "${BREW_LLVM_AMD64_BOTTLE_URL}" | tar -xzf - --strip-components=2 -C "${DARWIN_AMD64_LLVM_PREFIX}"

View File

@@ -19,10 +19,10 @@ export DEBIAN_FRONTEND=noninteractive
apt-get update apt-get update
apt-get install -y lsb-release gnupg2 wget rsync apt-get install -y lsb-release gnupg2 wget rsync
echo "deb http://apt.llvm.org/\$(lsb_release -cs)/ llvm-toolchain-\$(lsb_release -cs)-18 main" | tee /etc/apt/sources.list.d/llvm.list echo "deb http://apt.llvm.org/\$(lsb_release -cs)/ llvm-toolchain-\$(lsb_release -cs)-19 main" | tee /etc/apt/sources.list.d/llvm.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
apt-get update apt-get update
apt-get install -y llvm-18-dev apt-get install -y llvm-19-dev
error() { error() {
echo -e "\$1" >&2 echo -e "\$1" >&2
@@ -106,7 +106,6 @@ do-sync() {
args+=(-d) args+=(-d)
args+=(-h) args+=(-h)
args+=(--keep-dirlinks) args+=(--keep-dirlinks)
args+=("--info=progress2")
args+=(--delete) args+=(--delete)
args+=(--prune-empty-dirs) args+=(--prune-empty-dirs)
args+=(--sparse) args+=(--sparse)

1
.gitignore vendored
View File

@@ -22,6 +22,7 @@ _tinygo/
_output/ _output/
build.dir/ build.dir/
.vscode/ .vscode/
.venv/
# Test binary, built with `go test -c` # Test binary, built with `go test -c`
*.test *.test

View File

@@ -24,12 +24,12 @@ builds:
ldflags: ldflags:
- -X github.com/goplus/llgo/compiler/internal/env.buildVersion=v{{.Version}} - -X github.com/goplus/llgo/compiler/internal/env.buildVersion=v{{.Version}}
- -X github.com/goplus/llgo/compiler/internal/env.buildTime={{.Date}} - -X github.com/goplus/llgo/compiler/internal/env.buildTime={{.Date}}
- -X github.com/goplus/llgo/xtool/env/llvm.ldLLVMConfigBin=/usr/local/opt/llvm@18/bin/llvm-config - -X github.com/goplus/llgo/xtool/env/llvm.ldLLVMConfigBin=/usr/local/opt/llvm@19/bin/llvm-config
env: env:
- CC=o64-clang - CC=o64-clang
- CXX=o64-clang++ - CXX=o64-clang++
- CGO_CPPFLAGS=-I{{.Env.SYSROOT_DARWIN_AMD64}}/usr/local/opt/llvm@18/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS - CGO_CPPFLAGS=-I{{.Env.SYSROOT_DARWIN_AMD64}}/usr/local/opt/llvm@19/include -mmacosx-version-min=10.13 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
- CGO_LDFLAGS=-L{{.Env.SYSROOT_DARWIN_AMD64}}/usr/local/opt/llvm@18/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM-18 -lz -lm - CGO_LDFLAGS=-L{{.Env.SYSROOT_DARWIN_AMD64}}/usr/local/opt/llvm@19/lib -mmacosx-version-min=10.13 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM-19 -lz -lm
targets: targets:
- darwin_amd64 - darwin_amd64
mod_timestamp: "{{.CommitTimestamp}}" mod_timestamp: "{{.CommitTimestamp}}"
@@ -42,12 +42,12 @@ builds:
ldflags: ldflags:
- -X github.com/goplus/llgo/compiler/internal/env.buildVersion=v{{.Version}} - -X github.com/goplus/llgo/compiler/internal/env.buildVersion=v{{.Version}}
- -X github.com/goplus/llgo/compiler/internal/env.buildTime={{.Date}} - -X github.com/goplus/llgo/compiler/internal/env.buildTime={{.Date}}
- -X github.com/goplus/llgo/xtool/env/llvm.ldLLVMConfigBin=/opt/homebrew/opt/llvm@18/bin/llvm-config - -X github.com/goplus/llgo/xtool/env/llvm.ldLLVMConfigBin=/opt/homebrew/opt/llvm@19/bin/llvm-config
env: env:
- CC=oa64-clang - CC=oa64-clang
- CXX=oa64-clang++ - CXX=oa64-clang++
- CGO_CPPFLAGS=-I{{.Env.SYSROOT_DARWIN_ARM64}}/opt/homebrew/opt/llvm@18/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS - CGO_CPPFLAGS=-I{{.Env.SYSROOT_DARWIN_ARM64}}/opt/homebrew/opt/llvm@19/include -mmacosx-version-min=10.13 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
- CGO_LDFLAGS=-L{{.Env.SYSROOT_DARWIN_ARM64}}/opt/homebrew/opt/llvm@18/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM-18 -lz -lm - CGO_LDFLAGS=-L{{.Env.SYSROOT_DARWIN_ARM64}}/opt/homebrew/opt/llvm@19/lib -mmacosx-version-min=10.13 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM-19 -lz -lm
targets: targets:
- darwin_arm64 - darwin_arm64
mod_timestamp: "{{.CommitTimestamp}}" mod_timestamp: "{{.CommitTimestamp}}"
@@ -60,12 +60,12 @@ builds:
ldflags: ldflags:
- -X github.com/goplus/llgo/compiler/internal/env.buildVersion=v{{.Version}} - -X github.com/goplus/llgo/compiler/internal/env.buildVersion=v{{.Version}}
- -X github.com/goplus/llgo/compiler/internal/env.buildTime={{.Date}} - -X github.com/goplus/llgo/compiler/internal/env.buildTime={{.Date}}
- -X github.com/goplus/llgo/xtool/env/llvm.ldLLVMConfigBin=/usr/lib/llvm-18/bin/llvm-config - -X github.com/goplus/llgo/xtool/env/llvm.ldLLVMConfigBin=/usr/lib/llvm-19/bin/llvm-config
env: env:
- CC=x86_64-linux-gnu-gcc - CC=x86_64-linux-gnu-gcc
- CXX=x86_64-linux-gnu-g++ - CXX=x86_64-linux-gnu-g++
- CGO_CPPFLAGS=--sysroot={{.Env.SYSROOT_LINUX_AMD64}} -I{{.Env.SYSROOT_LINUX_AMD64}}/usr/include/llvm-18 -I{{.Env.SYSROOT_LINUX_AMD64}}/usr/include/llvm-c-18 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS - CGO_CPPFLAGS=--sysroot={{.Env.SYSROOT_LINUX_AMD64}} -I{{.Env.SYSROOT_LINUX_AMD64}}/usr/include/llvm-19 -I{{.Env.SYSROOT_LINUX_AMD64}}/usr/include/llvm-c-19 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
- CGO_LDFLAGS=--sysroot={{.Env.SYSROOT_LINUX_AMD64}} -L{{.Env.SYSROOT_LINUX_AMD64}}/usr/lib/llvm-18/lib -lLLVM-18 - CGO_LDFLAGS=--sysroot={{.Env.SYSROOT_LINUX_AMD64}} -L{{.Env.SYSROOT_LINUX_AMD64}}/usr/lib/llvm-19/lib -lLLVM-19
targets: targets:
- linux_amd64 - linux_amd64
mod_timestamp: "{{.CommitTimestamp}}" mod_timestamp: "{{.CommitTimestamp}}"
@@ -78,12 +78,12 @@ builds:
ldflags: ldflags:
- -X github.com/goplus/llgo/compiler/internal/env.buildVersion=v{{.Version}} - -X github.com/goplus/llgo/compiler/internal/env.buildVersion=v{{.Version}}
- -X github.com/goplus/llgo/compiler/internal/env.buildTime={{.Date}} - -X github.com/goplus/llgo/compiler/internal/env.buildTime={{.Date}}
- -X github.com/goplus/llgo/xtool/env/llvm.ldLLVMConfigBin=/usr/lib/llvm-18/bin/llvm-config - -X github.com/goplus/llgo/xtool/env/llvm.ldLLVMConfigBin=/usr/lib/llvm-19/bin/llvm-config
env: env:
- CC=aarch64-linux-gnu-gcc - CC=aarch64-linux-gnu-gcc
- CXX=aarch64-linux-gnu-g++ - CXX=aarch64-linux-gnu-g++
- CGO_CPPFLAGS=--sysroot={{.Env.SYSROOT_LINUX_ARM64}} -I{{.Env.SYSROOT_LINUX_ARM64}}/usr/include/llvm-18 -I{{.Env.SYSROOT_LINUX_ARM64}}/usr/include/llvm-c-18 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS - CGO_CPPFLAGS=--sysroot={{.Env.SYSROOT_LINUX_ARM64}} -I{{.Env.SYSROOT_LINUX_ARM64}}/usr/include/llvm-19 -I{{.Env.SYSROOT_LINUX_ARM64}}/usr/include/llvm-c-19 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
- CGO_LDFLAGS=--sysroot={{.Env.SYSROOT_LINUX_ARM64}} -L{{.Env.SYSROOT_LINUX_ARM64}}/usr/lib/llvm-18/lib -lLLVM-18 - CGO_LDFLAGS=--sysroot={{.Env.SYSROOT_LINUX_ARM64}} -L{{.Env.SYSROOT_LINUX_ARM64}}/usr/lib/llvm-19/lib -lLLVM-19
targets: targets:
- linux_arm64 - linux_arm64
mod_timestamp: "{{.CommitTimestamp}}" mod_timestamp: "{{.CommitTimestamp}}"

View File

@@ -359,9 +359,9 @@ Follow these steps to generate the `llgo` command (its usage is the same as the
```sh ```sh
brew update brew update
brew install llvm@18 bdw-gc openssl cjson libffi libuv pkg-config brew install llvm@19 lld@19 bdw-gc openssl cjson libffi libuv pkg-config
brew install python@3.12 # optional brew install python@3.12 # optional
brew link --force libffi brew link --overwrite lld@19 libffi
curl https://raw.githubusercontent.com/goplus/llgo/refs/heads/main/install.sh | bash curl https://raw.githubusercontent.com/goplus/llgo/refs/heads/main/install.sh | bash
``` ```
@@ -373,12 +373,13 @@ curl https://raw.githubusercontent.com/goplus/llgo/refs/heads/main/install.sh |
<!-- embedme doc/_readme/scripts/install_ubuntu.sh#L2-L1000 --> <!-- embedme doc/_readme/scripts/install_ubuntu.sh#L2-L1000 -->
```sh ```sh
echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-18 main" | sudo tee /etc/apt/sources.list.d/llvm.list echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-19 main" | sudo tee /etc/apt/sources.list.d/llvm.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-get update sudo apt-get update
sudo apt-get install -y llvm-18-dev clang-18 libclang-18-dev lld-18 pkg-config libgc-dev libssl-dev zlib1g-dev libcjson-dev libsqlite3-dev libunwind-dev libuv1-dev sudo apt-get install -y llvm-19-dev clang-19 libclang-19-dev lld-19 pkg-config libgc-dev libssl-dev zlib1g-dev libcjson-dev libsqlite3-dev libunwind-dev libuv1-dev
sudo apt-get install -y python3.12-dev # optional sudo apt-get install -y python3.12-dev # optional
curl https://raw.githubusercontent.com/goplus/llgo/refs/heads/main/install.sh | bash curl https://raw.githubusercontent.com/goplus/llgo/refs/heads/main/install.sh | bash
``` ```
#### Alpine Linux #### Alpine Linux

View File

@@ -238,15 +238,16 @@ _llgo_30: ; preds = %_llgo_28
unreachable unreachable
_llgo_31: ; preds = %_llgo_28 _llgo_31: ; preds = %_llgo_28
br i1 icmp ne (i64 ptrtoint (ptr getelementptr (i8, ptr null, i64 1) to i64), i64 1), label %_llgo_32, label %_llgo_33 %86 = icmp ne i64 ptrtoint (ptr getelementptr (i8, ptr null, i64 1) to i64), 1
br i1 %86, label %_llgo_32, label %_llgo_33
_llgo_32: ; preds = %_llgo_31 _llgo_32: ; preds = %_llgo_31
%86 = load ptr, ptr @_llgo_string, align 8 %87 = load ptr, ptr @_llgo_string, align 8
%87 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) %88 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16)
store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %87, align 8 store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %88, align 8
%88 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %86, 0 %89 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %87, 0
%89 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %88, ptr %87, 1 %90 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %89, ptr %88, 1
call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %89) call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %90)
unreachable unreachable
_llgo_33: ; preds = %_llgo_31 _llgo_33: ; preds = %_llgo_31

View File

@@ -4,9 +4,9 @@ go 1.22.0
require ( require (
github.com/goplus/gogen v1.16.9 github.com/goplus/gogen v1.16.9
github.com/goplus/llgo v0.9.9 github.com/goplus/llgo v0.10.1
github.com/goplus/llgo/runtime v0.0.0-00010101000000-000000000000 github.com/goplus/llgo/runtime v0.0.0-00010101000000-000000000000
github.com/goplus/llvm v0.8.1 github.com/goplus/llvm v0.8.3
github.com/goplus/mod v0.13.17 github.com/goplus/mod v0.13.17
github.com/qiniu/x v1.13.12 github.com/qiniu/x v1.13.12
golang.org/x/tools v0.30.0 golang.org/x/tools v0.30.0

View File

@@ -2,8 +2,8 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/goplus/gogen v1.16.9 h1:BRNAsRzdyMcLBOLUe6+suVMmOe+D2HLfF7mAkS4/QW4= github.com/goplus/gogen v1.16.9 h1:BRNAsRzdyMcLBOLUe6+suVMmOe+D2HLfF7mAkS4/QW4=
github.com/goplus/gogen v1.16.9/go.mod h1:6TQYbabXDF9LCdDkOOzHmfg1R4ENfXQ3XpHa9RhTSD8= github.com/goplus/gogen v1.16.9/go.mod h1:6TQYbabXDF9LCdDkOOzHmfg1R4ENfXQ3XpHa9RhTSD8=
github.com/goplus/llvm v0.8.1 h1:Wrc9S8bKDhLjxjPuhnrgDYLRaFfKotOGt3zpId3LBmI= github.com/goplus/llvm v0.8.3 h1:is1zOwhiQZWtLnOmSMVPO+1sPa2uK/XJ/FjTSfIjGBU=
github.com/goplus/llvm v0.8.1/go.mod h1:PeVK8GgzxwAYCiMiUAJb5wJR6xbhj989tu9oulKLLT4= github.com/goplus/llvm v0.8.3/go.mod h1:PeVK8GgzxwAYCiMiUAJb5wJR6xbhj989tu9oulKLLT4=
github.com/goplus/mod v0.13.17 h1:aWp14xosENrh7t0/0qcIejDmQEiTgI3ou2+KoLDlSlE= github.com/goplus/mod v0.13.17 h1:aWp14xosENrh7t0/0qcIejDmQEiTgI3ou2+KoLDlSlE=
github.com/goplus/mod v0.13.17/go.mod h1:XlHf8mnQ4QkRDX14Of2tpywuHDd+JVpPStvh3egog+0= github.com/goplus/mod v0.13.17/go.mod h1:XlHf8mnQ4QkRDX14Of2tpywuHDd+JVpPStvh3egog+0=
github.com/qiniu/x v1.13.12 h1:UyAwja6dgKUOYWZMzzc02wLodwnZ7wmK/0XzRd0e78g= github.com/qiniu/x v1.13.12 h1:UyAwja6dgKUOYWZMzzc02wLodwnZ7wmK/0XzRd0e78g=

View File

@@ -1,6 +1,6 @@
# shellcheck disable=all # shellcheck disable=all
brew update brew update
brew install llvm@18 bdw-gc openssl cjson libffi libuv pkg-config brew install llvm@19 lld@19 bdw-gc openssl cjson libffi libuv pkg-config
brew install python@3.12 # optional brew install python@3.12 # optional
brew link --force libffi brew link --overwrite lld@19 libffi
curl https://raw.githubusercontent.com/goplus/llgo/refs/heads/main/install.sh | bash curl https://raw.githubusercontent.com/goplus/llgo/refs/heads/main/install.sh | bash

View File

@@ -1,7 +1,7 @@
# shellcheck disable=all # shellcheck disable=all
echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-18 main" | sudo tee /etc/apt/sources.list.d/llvm.list echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-19 main" | sudo tee /etc/apt/sources.list.d/llvm.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-get update sudo apt-get update
sudo apt-get install -y llvm-18-dev clang-18 libclang-18-dev lld-18 pkg-config libgc-dev libssl-dev zlib1g-dev libcjson-dev libsqlite3-dev libunwind-dev libuv1-dev sudo apt-get install -y llvm-19-dev clang-19 libclang-19-dev lld-19 pkg-config libgc-dev libssl-dev zlib1g-dev libcjson-dev libsqlite3-dev libunwind-dev libuv1-dev
sudo apt-get install -y python3.12-dev # optional sudo apt-get install -y python3.12-dev # optional
curl https://raw.githubusercontent.com/goplus/llgo/refs/heads/main/install.sh | bash curl https://raw.githubusercontent.com/goplus/llgo/refs/heads/main/install.sh | bash

View File

@@ -1,4 +1,4 @@
//go:build !byollvm && darwin && amd64 && !llvm14 && !llvm15 && !llvm16 && !llvm17 //go:build !byollvm && darwin && amd64 && llvm18
/* /*
* Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved.

View File

@@ -0,0 +1,21 @@
//go:build !byollvm && darwin && amd64 && !llvm14 && !llvm15 && !llvm16 && !llvm17 && !llvm18
/*
* Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package llvm
const ldLLVMConfigBin = "/usr/local/opt/llvm@19/bin/llvm-config"

View File

@@ -1,4 +1,4 @@
//go:build !byollvm && darwin && !amd64 && !llvm14 && !llvm15 && !llvm16 && !llvm17 //go:build !byollvm && darwin && !amd64 && llvm18
/* /*
* Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved.

View File

@@ -0,0 +1,21 @@
//go:build !byollvm && darwin && !amd64 && !llvm14 && !llvm15 && !llvm16 && !llvm17 && !llvm18
/*
* Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package llvm
const ldLLVMConfigBin = "/opt/homebrew/opt/llvm@19/bin/llvm-config"

View File

@@ -1,4 +1,4 @@
//go:build !byollvm && linux && !llvm14 && !llvm15 && !llvm16 && !llvm17 //go:build !byollvm && linux && llvm18
/* /*
* Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved.

View File

@@ -0,0 +1,21 @@
//go:build !byollvm && linux && !llvm14 && !llvm15 && !llvm16 && !llvm17 && !llvm18
/*
* Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package llvm
const ldLLVMConfigBin = "/usr/lib/llvm-19/bin/llvm-config"