update docs and CI
This commit is contained in:
4
.github/actions/setup-deps/action.yml
vendored
4
.github/actions/setup-deps/action.yml
vendored
@@ -15,7 +15,7 @@ runs:
|
|||||||
run: |
|
run: |
|
||||||
brew update
|
brew update
|
||||||
brew install llvm@${{inputs.llvm-version}} lld@${{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 --overwrite lld@${{inputs.llvm-version}} libffi
|
brew link --overwrite llvm@${{inputs.llvm-version}} 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.
|
||||||
@@ -35,7 +35,7 @@ runs:
|
|||||||
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-${{inputs.llvm-version}}-dev clang-${{inputs.llvm-version}} libclang-${{inputs.llvm-version}}-dev lld-${{inputs.llvm-version}} pkg-config libgc-dev libssl-dev zlib1g-dev libffi-dev libcjson-dev libunwind-dev libuv1-dev
|
sudo apt-get install -y llvm-${{inputs.llvm-version}}-dev clang-${{inputs.llvm-version}} libclang-${{inputs.llvm-version}}-dev lld-${{inputs.llvm-version}} pkg-config libgc-dev libssl-dev zlib1g-dev libffi-dev libcjson-dev libunwind-dev libuv1-dev
|
||||||
echo "/usr/lib/llvm-${{inputs.llvm-version}}/bin" >> $GITHUB_PATH
|
echo "PATH=/usr/lib/llvm-${{inputs.llvm-version}}/bin:$PATH" >> $GITHUB_ENV
|
||||||
|
|
||||||
# Install optional deps for demos.
|
# Install optional deps for demos.
|
||||||
#
|
#
|
||||||
|
|||||||
13
.github/workflows/doc.yml
vendored
13
.github/workflows/doc.yml
vendored
@@ -2,9 +2,9 @@ name: Docs
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ "**" ]
|
branches: ["**"]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ "**" ]
|
branches: ["**"]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
doc_verify:
|
doc_verify:
|
||||||
@@ -15,7 +15,7 @@ jobs:
|
|||||||
- name: Set up Node.js
|
- name: Set up Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: '20'
|
node-version: "20"
|
||||||
|
|
||||||
- name: Install embedme
|
- name: Install embedme
|
||||||
run: npm install -g embedme
|
run: npm install -g embedme
|
||||||
@@ -43,7 +43,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.23.6'
|
go-version: "1.24.2"
|
||||||
|
|
||||||
- name: Install dependencies on macOS
|
- name: Install dependencies on macOS
|
||||||
if: startsWith(matrix.os, 'macos')
|
if: startsWith(matrix.os, 'macos')
|
||||||
@@ -79,7 +79,7 @@ jobs:
|
|||||||
- name: Set up Go
|
- name: Set up Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: '1.23'
|
go-version: "1.23"
|
||||||
|
|
||||||
- name: Install dependencies on macOS
|
- name: Install dependencies on macOS
|
||||||
if: startsWith(matrix.os, 'macos')
|
if: startsWith(matrix.os, 'macos')
|
||||||
@@ -130,7 +130,7 @@ jobs:
|
|||||||
- name: Set up Go
|
- name: Set up Go
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: '1.23'
|
go-version: "1.23"
|
||||||
|
|
||||||
- name: Install dependencies on macOS
|
- name: Install dependencies on macOS
|
||||||
if: startsWith(matrix.os, 'macos')
|
if: startsWith(matrix.os, 'macos')
|
||||||
@@ -145,6 +145,7 @@ jobs:
|
|||||||
set -e
|
set -e
|
||||||
set -x
|
set -x
|
||||||
source doc/_readme/scripts/install_ubuntu.sh
|
source doc/_readme/scripts/install_ubuntu.sh
|
||||||
|
echo "PATH=/usr/lib/llvm-19/bin:$PATH" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Install llgo with tools
|
- name: Install llgo with tools
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
6
.github/workflows/fmt.yml
vendored
6
.github/workflows/fmt.yml
vendored
@@ -2,9 +2,9 @@ name: Format Check
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ "**" ]
|
branches: ["**"]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ "**" ]
|
branches: ["**"]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
fmt:
|
fmt:
|
||||||
@@ -15,7 +15,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.2"
|
||||||
|
|
||||||
- name: Check formatting
|
- name: Check formatting
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
2
.github/workflows/go.yml
vendored
2
.github/workflows/go.yml
vendored
@@ -35,7 +35,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.2"
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: go build -v ./...
|
run: go build -v ./...
|
||||||
|
|||||||
55
.github/workflows/llgo.yml
vendored
55
.github/workflows/llgo.yml
vendored
@@ -34,7 +34,7 @@ jobs:
|
|||||||
- macos-latest
|
- macos-latest
|
||||||
- ubuntu-24.04
|
- ubuntu-24.04
|
||||||
llvm: [19]
|
llvm: [19]
|
||||||
go: ['1.21.13', '1.22.12', '1.23.6', '1.24.0']
|
go: ["1.21.13", "1.22.12", "1.23.6", "1.24.2"]
|
||||||
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.2"
|
||||||
|
|
||||||
- name: Install
|
- name: Install
|
||||||
run: |
|
run: |
|
||||||
@@ -105,7 +105,7 @@ jobs:
|
|||||||
- macos-latest
|
- macos-latest
|
||||||
- ubuntu-24.04
|
- ubuntu-24.04
|
||||||
llvm: [19]
|
llvm: [19]
|
||||||
go: ["1.24.0"]
|
go: ["1.24.2"]
|
||||||
runs-on: ${{matrix.os}}
|
runs-on: ${{matrix.os}}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
@@ -124,7 +124,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.2"
|
||||||
|
|
||||||
- name: Install
|
- name: Install
|
||||||
run: |
|
run: |
|
||||||
@@ -146,7 +146,7 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-24.04, macos-latest]
|
os: [ubuntu-24.04, macos-latest]
|
||||||
llvm: [19]
|
llvm: [19]
|
||||||
go: ['1.21.13', '1.22.12', '1.23.6', '1.24.0']
|
go: ["1.21.13", "1.22.12", "1.23.6", "1.24.2"]
|
||||||
runs-on: ${{matrix.os}}
|
runs-on: ${{matrix.os}}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
@@ -158,7 +158,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.2"
|
||||||
|
|
||||||
- name: Install llgo
|
- name: Install llgo
|
||||||
run: |
|
run: |
|
||||||
@@ -197,3 +197,46 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
go-version: ${{matrix.go}}
|
go-version: ${{matrix.go}}
|
||||||
mod-version: "1.24"
|
mod-version: "1.24"
|
||||||
|
|
||||||
|
cross-compile:
|
||||||
|
continue-on-error: true
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Install dependencies
|
||||||
|
uses: ./.github/actions/setup-deps
|
||||||
|
with:
|
||||||
|
llvm-version: 19
|
||||||
|
|
||||||
|
- name: Set up Go for building llgo
|
||||||
|
uses: ./.github/actions/setup-go
|
||||||
|
with:
|
||||||
|
go-version: "1.24.2"
|
||||||
|
|
||||||
|
- name: Install wasmtime and wasi-libc
|
||||||
|
run: |
|
||||||
|
brew install wasmtime
|
||||||
|
wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-25/libclang_rt.builtins-wasm32-wasi-25.0.tar.gz
|
||||||
|
tar -xvf libclang_rt.builtins-wasm32-wasi-25.0.tar.gz
|
||||||
|
mkdir -p `llvm-config --libdir`/clang/19/lib/wasi/
|
||||||
|
mv libclang_rt.builtins-wasm32-wasi-25.0/libclang_rt.builtins-wasm32.a `llvm-config --libdir`/clang/19/lib/wasi/
|
||||||
|
|
||||||
|
- name: Install llgo
|
||||||
|
run: |
|
||||||
|
go install ./...
|
||||||
|
echo "LLGO_ROOT=$GITHUB_WORKSPACE" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Test Cross Compilation (wasm)
|
||||||
|
shell: bash
|
||||||
|
working-directory: _demo
|
||||||
|
run: |
|
||||||
|
echo "Testing cross-compilation wasm with Go 1.24.2"
|
||||||
|
|
||||||
|
# Compile for wasm architecture
|
||||||
|
GOOS=wasip1 GOARCH=wasm llgo build -o hello -v ./helloc
|
||||||
|
|
||||||
|
# Check file type
|
||||||
|
file hello.wasm
|
||||||
|
|
||||||
|
# Run the wasm binary using llgo_wasm
|
||||||
|
wasmtime hello.wasm
|
||||||
|
|||||||
@@ -361,7 +361,7 @@ Follow these steps to generate the `llgo` command (its usage is the same as the
|
|||||||
brew update
|
brew update
|
||||||
brew install llvm@19 lld@19 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 --overwrite lld@19 libffi
|
brew link --overwrite llvm@19 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
|
||||||
./install.sh
|
./install.sh
|
||||||
```
|
```
|
||||||
|
|||||||
15
_demo/helloc/helloc.go
Normal file
15
_demo/helloc/helloc.go
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"unsafe"
|
||||||
|
|
||||||
|
"github.com/goplus/lib/c"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
c.Printf(c.Str("Hello world by c.Printf\n"))
|
||||||
|
c.Printf(c.Str("%ld\n"), unsafe.Sizeof(int(0)))
|
||||||
|
c.Printf(c.Str("%ld\n"), unsafe.Sizeof(uintptr(0)))
|
||||||
|
// var v any = int(0)
|
||||||
|
// c.Printf(c.Str("%ld\n"), unsafe.Sizeof(v))
|
||||||
|
}
|
||||||
@@ -2,6 +2,6 @@
|
|||||||
brew update
|
brew update
|
||||||
brew install llvm@19 lld@19 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 --overwrite lld@19 libffi
|
brew link --overwrite llvm@19 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
|
||||||
./install.sh
|
./install.sh
|
||||||
Reference in New Issue
Block a user