diff --git a/.github/actions/setup-deps/action.yml b/.github/actions/setup-deps/action.yml index 9fb11631..a0038344 100644 --- a/.github/actions/setup-deps/action.yml +++ b/.github/actions/setup-deps/action.yml @@ -4,7 +4,7 @@ inputs: llvm-version: description: "LLVM version to install" required: true - default: "18" + default: "19" runs: using: "composite" @@ -14,8 +14,8 @@ runs: shell: bash run: | brew update - brew install llvm@${{inputs.llvm-version}} bdw-gc openssl libffi libuv - brew link --force libffi + brew install llvm@${{inputs.llvm-version}} lld@${{inputs.llvm-version}} bdw-gc openssl libffi libuv + brew link --overwrite lld@${{inputs.llvm-version}} libffi echo "$(brew --prefix llvm@${{inputs.llvm-version}})/bin" >> $GITHUB_PATH # Install optional deps for demos. diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml index de44047f..7ac6f345 100644 --- a/.github/workflows/doc.yml +++ b/.github/workflows/doc.yml @@ -30,6 +30,7 @@ jobs: args: --max-concurrency 3 --retry-wait-time 15 README.md remote_install: + continue-on-error: true strategy: matrix: os: @@ -65,6 +66,7 @@ jobs: source doc/_readme/scripts/run.sh local_install: + continue-on-error: true strategy: matrix: os: @@ -115,6 +117,7 @@ jobs: source doc/_readme/scripts/run.sh local_install_full: + continue-on-error: true strategy: matrix: os: diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 98220048..7c17724a 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -5,9 +5,9 @@ name: Go on: push: - branches: [ "**" ] + branches: ["**"] pull_request: - branches: [ "**" ] + branches: ["**"] jobs: test: @@ -17,7 +17,7 @@ jobs: os: - macos-latest - ubuntu-24.04 - llvm: [18] + llvm: [19] runs-on: ${{matrix.os}} defaults: run: @@ -38,7 +38,7 @@ jobs: - name: Set up Go uses: ./.github/actions/setup-go with: - go-version: '1.24.0' + go-version: "1.24.0" - name: Build run: go build -v ./... diff --git a/.github/workflows/llgo.yml b/.github/workflows/llgo.yml index 50756e0e..104d741b 100644 --- a/.github/workflows/llgo.yml +++ b/.github/workflows/llgo.yml @@ -5,9 +5,9 @@ name: LLGo on: push: - branches: [ "**" ] + branches: ["**"] pull_request: - branches: [ "**" ] + branches: ["**"] jobs: download-model: @@ -33,8 +33,8 @@ jobs: os: - macos-latest - ubuntu-24.04 - llvm: [18] - go: ['1.20.14', '1.21.13', '1.22.12', '1.23.6', '1.24.0'] + llvm: [19] + go: ["1.20.14", "1.21.13", "1.22.12", "1.23.6", "1.24.0"] runs-on: ${{matrix.os}} steps: - uses: actions/checkout@v4 @@ -58,7 +58,7 @@ jobs: - name: Set up Go for build uses: ./.github/actions/setup-go with: - go-version: '1.24.0' + go-version: "1.24.0" - name: Install working-directory: compiler @@ -121,8 +121,8 @@ jobs: os: - macos-latest - ubuntu-24.04 - llvm: [18] - go: ['1.24.0'] + llvm: [19] + go: ["1.24.0"] runs-on: ${{matrix.os}} steps: - uses: actions/checkout@v4 @@ -141,7 +141,7 @@ jobs: - name: Set up Go for build uses: ./.github/actions/setup-go with: - go-version: '1.24.0' + go-version: "1.24.0" - name: Install working-directory: compiler @@ -174,8 +174,8 @@ jobs: strategy: matrix: os: [ubuntu-24.04, macos-latest] - llvm: [18] - go: ['1.20.14', '1.21.13', '1.22.12', '1.23.6', '1.24.0'] + llvm: [19] + go: ["1.20.14", "1.21.13", "1.22.12", "1.23.6", "1.24.0"] runs-on: ${{matrix.os}} steps: - uses: actions/checkout@v4 @@ -187,7 +187,7 @@ jobs: - name: Set up Go 1.23 for building llgo uses: ./.github/actions/setup-go with: - go-version: '1.24.0' + go-version: "1.24.0" - name: Install llgo working-directory: compiler @@ -205,32 +205,32 @@ jobs: uses: ./.github/actions/test-helloworld with: go-version: ${{matrix.go}} - mod-version: '1.20' + mod-version: "1.20" - 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') uses: ./.github/actions/test-helloworld with: go-version: ${{matrix.go}} - mod-version: '1.21' + mod-version: "1.21" - 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') uses: ./.github/actions/test-helloworld with: go-version: ${{matrix.go}} - mod-version: '1.22' + mod-version: "1.22" - name: Test Hello World with go.mod 1.23 if: startsWith(matrix.go, '1.23') || startsWith(matrix.go, '1.24') uses: ./.github/actions/test-helloworld with: go-version: ${{matrix.go}} - mod-version: '1.23' + mod-version: "1.23" - name: Test Hello World with go.mod 1.24 if: startsWith(matrix.go, '1.24') uses: ./.github/actions/test-helloworld with: go-version: ${{matrix.go}} - mod-version: '1.24' + mod-version: "1.24" diff --git a/.github/workflows/populate_darwin_sysroot.sh b/.github/workflows/populate_darwin_sysroot.sh index b9d567ad..f0eaaab4 100755 --- a/.github/workflows/populate_darwin_sysroot.sh +++ b/.github/workflows/populate_darwin_sysroot.sh @@ -6,12 +6,12 @@ TMPDIR="$(mktemp -d)" export TMPDIR trap 'rm -rf "${TMPDIR}"' EXIT -DARWIN_AMD64_LLVM_PREFIX=.sysroot/darwin/amd64/usr/local/opt/llvm@18 -DARWIN_ARM64_LLVM_PREFIX=.sysroot/darwin/arm64/opt/homebrew/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@19 mkdir -p "${DARWIN_AMD64_LLVM_PREFIX}" "${DARWIN_ARM64_LLVM_PREFIX}" 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_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}" diff --git a/.github/workflows/populate_linux_sysroot.sh b/.github/workflows/populate_linux_sysroot.sh index 1bc1d935..7c976c33 100755 --- a/.github/workflows/populate_linux_sysroot.sh +++ b/.github/workflows/populate_linux_sysroot.sh @@ -19,10 +19,10 @@ export DEBIAN_FRONTEND=noninteractive apt-get update 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 - apt-get update -apt-get install -y llvm-18-dev +apt-get install -y llvm-19-dev error() { echo -e "\$1" >&2 @@ -106,7 +106,6 @@ do-sync() { args+=(-d) args+=(-h) args+=(--keep-dirlinks) - args+=("--info=progress2") args+=(--delete) args+=(--prune-empty-dirs) args+=(--sparse) diff --git a/.gitignore b/.gitignore index 3300f527..3d29051e 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,7 @@ _tinygo/ _output/ build.dir/ .vscode/ +.venv/ # Test binary, built with `go test -c` *.test diff --git a/.goreleaser.yaml b/.goreleaser.yaml index c2db2e5c..4008e4fa 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -24,12 +24,12 @@ builds: ldflags: - -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/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: - CC=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_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_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@19/lib -mmacosx-version-min=10.13 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM-19 -lz -lm targets: - darwin_amd64 mod_timestamp: "{{.CommitTimestamp}}" @@ -42,12 +42,12 @@ builds: ldflags: - -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/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: - CC=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_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_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@19/lib -mmacosx-version-min=10.13 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM-19 -lz -lm targets: - darwin_arm64 mod_timestamp: "{{.CommitTimestamp}}" @@ -60,12 +60,12 @@ builds: ldflags: - -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/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: - CC=x86_64-linux-gnu-gcc - 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_LDFLAGS=--sysroot={{.Env.SYSROOT_LINUX_AMD64}} -L{{.Env.SYSROOT_LINUX_AMD64}}/usr/lib/llvm-18/lib -lLLVM-18 + - 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-19/lib -lLLVM-19 targets: - linux_amd64 mod_timestamp: "{{.CommitTimestamp}}" @@ -78,12 +78,12 @@ builds: ldflags: - -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/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: - CC=aarch64-linux-gnu-gcc - 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_LDFLAGS=--sysroot={{.Env.SYSROOT_LINUX_ARM64}} -L{{.Env.SYSROOT_LINUX_ARM64}}/usr/lib/llvm-18/lib -lLLVM-18 + - 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-19/lib -lLLVM-19 targets: - linux_arm64 mod_timestamp: "{{.CommitTimestamp}}" diff --git a/README.md b/README.md index 72c49e89..f44eb768 100644 --- a/README.md +++ b/README.md @@ -359,9 +359,9 @@ Follow these steps to generate the `llgo` command (its usage is the same as the ```sh 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 link --force libffi +brew link --overwrite lld@19 libffi 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 | ```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 - 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 curl https://raw.githubusercontent.com/goplus/llgo/refs/heads/main/install.sh | bash + ``` #### Alpine Linux diff --git a/compiler/cl/_testrt/unsafe/out.ll b/compiler/cl/_testrt/unsafe/out.ll index 732b5a67..548c76bb 100644 --- a/compiler/cl/_testrt/unsafe/out.ll +++ b/compiler/cl/_testrt/unsafe/out.ll @@ -238,15 +238,16 @@ _llgo_30: ; preds = %_llgo_28 unreachable _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 - %86 = load ptr, ptr @_llgo_string, align 8 - %87 = 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 - %88 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %86, 0 - %89 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %88, ptr %87, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %89) + %87 = load ptr, ptr @_llgo_string, align 8 + %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 %88, align 8 + %89 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %87, 0 + %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" %90) unreachable _llgo_33: ; preds = %_llgo_31 diff --git a/compiler/go.mod b/compiler/go.mod index c0bdd333..acd2b395 100644 --- a/compiler/go.mod +++ b/compiler/go.mod @@ -4,9 +4,9 @@ go 1.22.0 require ( 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/llvm v0.8.1 + github.com/goplus/llvm v0.8.3 github.com/goplus/mod v0.13.17 github.com/qiniu/x v1.13.12 golang.org/x/tools v0.30.0 diff --git a/compiler/go.sum b/compiler/go.sum index d85e5aaf..a26a1f8d 100644 --- a/compiler/go.sum +++ b/compiler/go.sum @@ -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/goplus/gogen v1.16.9 h1:BRNAsRzdyMcLBOLUe6+suVMmOe+D2HLfF7mAkS4/QW4= 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.1/go.mod h1:PeVK8GgzxwAYCiMiUAJb5wJR6xbhj989tu9oulKLLT4= +github.com/goplus/llvm v0.8.3 h1:is1zOwhiQZWtLnOmSMVPO+1sPa2uK/XJ/FjTSfIjGBU= +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/go.mod h1:XlHf8mnQ4QkRDX14Of2tpywuHDd+JVpPStvh3egog+0= github.com/qiniu/x v1.13.12 h1:UyAwja6dgKUOYWZMzzc02wLodwnZ7wmK/0XzRd0e78g= diff --git a/doc/_readme/scripts/install_macos.sh b/doc/_readme/scripts/install_macos.sh index a850fcea..187fb16c 100644 --- a/doc/_readme/scripts/install_macos.sh +++ b/doc/_readme/scripts/install_macos.sh @@ -1,6 +1,6 @@ # shellcheck disable=all 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 link --force libffi +brew link --overwrite lld@19 libffi curl https://raw.githubusercontent.com/goplus/llgo/refs/heads/main/install.sh | bash diff --git a/doc/_readme/scripts/install_ubuntu.sh b/doc/_readme/scripts/install_ubuntu.sh index e379f998..9fa854b9 100644 --- a/doc/_readme/scripts/install_ubuntu.sh +++ b/doc/_readme/scripts/install_ubuntu.sh @@ -1,7 +1,7 @@ # 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 - 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 curl https://raw.githubusercontent.com/goplus/llgo/refs/heads/main/install.sh | bash diff --git a/xtool/env/llvm/llvm_config_darwin_amd64_llvm18.go b/xtool/env/llvm/llvm_config_darwin_amd64_llvm18.go index 7093829f..07f56bc9 100644 --- a/xtool/env/llvm/llvm_config_darwin_amd64_llvm18.go +++ b/xtool/env/llvm/llvm_config_darwin_amd64_llvm18.go @@ -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. diff --git a/xtool/env/llvm/llvm_config_darwin_amd64_llvm19.go b/xtool/env/llvm/llvm_config_darwin_amd64_llvm19.go new file mode 100644 index 00000000..3f1dd333 --- /dev/null +++ b/xtool/env/llvm/llvm_config_darwin_amd64_llvm19.go @@ -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" diff --git a/xtool/env/llvm/llvm_config_darwin_llvm18.go b/xtool/env/llvm/llvm_config_darwin_llvm18.go index b170c6b6..4cbc27e5 100644 --- a/xtool/env/llvm/llvm_config_darwin_llvm18.go +++ b/xtool/env/llvm/llvm_config_darwin_llvm18.go @@ -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. diff --git a/xtool/env/llvm/llvm_config_darwin_llvm19.go b/xtool/env/llvm/llvm_config_darwin_llvm19.go new file mode 100644 index 00000000..d63c924c --- /dev/null +++ b/xtool/env/llvm/llvm_config_darwin_llvm19.go @@ -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" diff --git a/xtool/env/llvm/llvm_config_linux_llvm18.go b/xtool/env/llvm/llvm_config_linux_llvm18.go index dfa5fced..5d322493 100644 --- a/xtool/env/llvm/llvm_config_linux_llvm18.go +++ b/xtool/env/llvm/llvm_config_linux_llvm18.go @@ -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. diff --git a/xtool/env/llvm/llvm_config_linux_llvm19.go b/xtool/env/llvm/llvm_config_linux_llvm19.go new file mode 100644 index 00000000..70e2e4d8 --- /dev/null +++ b/xtool/env/llvm/llvm_config_linux_llvm19.go @@ -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"