Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 22 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@ jobs:
- { goarch: loong64, qemu: qemu-loongarch64-static }
- { goarch: ppc64le, qemu: qemu-ppc64le-static }
- { goarch: s390x, qemu: qemu-s390x-static }
# 32-bit: int is 32 bits.
- { goarch: arm, qemu: qemu-arm-static }
steps:
- uses: actions/checkout@v7
- uses: actions/setup-go@v7
Expand All @@ -98,6 +100,25 @@ jobs:
GOOS=linux GOARCH=${{ matrix.goarch }} go vet -tags rbgo_core ./...
GOARCH=${{ matrix.goarch }} go test -tags rbgo_core -short -exec=${{ matrix.qemu }} ./...

# 386 runs natively on the amd64 runner (the kernel executes 32-bit x86
# binaries), not under qemu-i386, whose emulation loses x87/SSE state across
# preemption.
arch-386:
name: arch 386
runs-on: ubuntu-latest
env:
CGO_ENABLED: "0"
steps:
- uses: actions/checkout@v7
- uses: actions/setup-go@v7
with:
go-version: '1.27.3'
- name: Vet + test (GOARCH=386), both builds
run: |
GOARCH=386 go vet ./...
GOARCH=386 go test ./...
GOARCH=386 go test -tags rbgo_core ./...

cross:
name: compile on every target rbgo builds for
runs-on: ubuntu-latest
Expand All @@ -110,7 +131,7 @@ jobs:
shell: bash
run: |
fail=0
for t in linux/amd64 linux/arm64 linux/riscv64 linux/loong64 linux/ppc64le linux/s390x \
for t in linux/amd64 linux/arm64 linux/riscv64 linux/loong64 linux/ppc64le linux/s390x linux/386 linux/arm \
darwin/amd64 darwin/arm64 windows/amd64 windows/arm64 wasip1/wasm js/wasm; do
os=${t%/*}; arch=${t#*/}
for tags in "" rbgo_core; do
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -455,8 +455,9 @@ go-notebook.
rbgo builds with or without its gem bindings; `-tags rbgo_core` leaves the
gems out (the language and the numeric stack only), which is what a notebook
worker or a browser page wants. These bindings work, and are tested, on both.
rbgo compiles for linux, darwin and windows on 64-bit targets and for wasm
(js and wasip1), and so does this module.
rbgo compiles for linux, darwin and windows on 64-bit targets, for 32-bit
linux (`386`, `arm`) and for wasm (js and wasip1), and so does this module.
CI runs the suite natively on `386` and under QEMU on 32-bit `arm`.

## License

Expand Down
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ go 1.27.2

require (
github.com/go-dataframe/dataframe v0.1.0
github.com/go-embedded-ruby/ruby v0.8.0
github.com/go-embedded-ruby/ruby v0.8.2
github.com/go-ndarray/ndarray v0.12.0
github.com/go-numerics/integrate v0.2.0
github.com/go-numerics/optimize v0.2.0
Expand Down Expand Up @@ -147,7 +147,7 @@ require (
github.com/go-ruby-capistrano/capistrano v0.0.0-20260927173236-3b90af3c6888 // indirect
github.com/go-ruby-capybara/capybara v0.0.0-20260910084630-0731c9ea8d6d // indirect
github.com/go-ruby-cgi/cgi v0.0.0-20260916091525-3d328d3ff447 // indirect
github.com/go-ruby-chronic/chronic v0.0.0-20260916091614-bd47d560b6f4 // indirect
github.com/go-ruby-chronic/chronic v0.1.0 // indirect
github.com/go-ruby-cmath/cmath v0.0.0-20260916091648-4963ab4145f7 // indirect
github.com/go-ruby-concurrent-ruby/concurrent-ruby v0.0.0-20260916091840-b820f7a57284 // indirect
github.com/go-ruby-confd/confd v0.0.0-20260825131031-1ac780d51c57 // indirect
Expand Down
8 changes: 4 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -204,8 +204,8 @@ github.com/go-dataframe/dataframe v0.1.0 h1:l92liqTQ/StH5rurH2ipgvXunMbtCJAkDNWE
github.com/go-dataframe/dataframe v0.1.0/go.mod h1:rAJdylzFafSOhTAV6z+gSs4i0D9M9XKMKqhWUjIEolk=
github.com/go-datetime/dates v0.1.0 h1:Uj8TaTZ09DXdq75EGQ/teFdrXpfVAC3ZDHAPQvPTnaA=
github.com/go-datetime/dates v0.1.0/go.mod h1:KeZ1wUeMScJD6HOvj3hINwbsB+GCSFjJLWcJhrBlwIo=
github.com/go-embedded-ruby/ruby v0.8.0 h1:09E9fzAQutBwsfBR7Sm3aAEmeYiG+I6JQBzVTdiSxE8=
github.com/go-embedded-ruby/ruby v0.8.0/go.mod h1:g7gQohmhj96s4qiaoTtFTa2Hbfbnh0QTQej1w81LxOE=
github.com/go-embedded-ruby/ruby v0.8.2 h1:vj4a+NJBb7Ou6MaBWARMEdacYtnEK7NHS2Wq1Guqr9U=
github.com/go-embedded-ruby/ruby v0.8.2/go.mod h1:6g5bwN6eYV00ctKi3XxhXggPxBV37PGaucMFf3LFLZc=
github.com/go-encryptions/unixcrypt v0.1.0 h1:XWk4h9uCDd+T2hovOzgO0B2vOdJvAwi9nbOBVb3o62c=
github.com/go-encryptions/unixcrypt v0.1.0/go.mod h1:B1dJSjz3kdxvP7cpi5xSzyxezgBijmtNCUeCKqqDd3o=
github.com/go-facter/facter v0.0.0-20260830120958-454b72e642ab h1:bXPxQDhADpiF/S/8jlRFhVisFPRaxPtPgjibLnOzvsE=
Expand Down Expand Up @@ -339,8 +339,8 @@ github.com/go-ruby-capybara/capybara v0.0.0-20260910084630-0731c9ea8d6d h1:eDH85
github.com/go-ruby-capybara/capybara v0.0.0-20260910084630-0731c9ea8d6d/go.mod h1:igWLNrYKtKkssHOzlXm1YFoPH0Yi6LGazOSA4Obo6T0=
github.com/go-ruby-cgi/cgi v0.0.0-20260916091525-3d328d3ff447 h1:o6V4n2Td46cjbCwPN0pZnUVFfHbC648AnYtMQVU9O60=
github.com/go-ruby-cgi/cgi v0.0.0-20260916091525-3d328d3ff447/go.mod h1:TAIxiFMAj68dWClzEmDY1vCSNFiPfupD3HRADRXrkZw=
github.com/go-ruby-chronic/chronic v0.0.0-20260916091614-bd47d560b6f4 h1:Z2aDUPl3f6fQIJ4Y+9KCE16p77dAxJBBJjR3j974A5o=
github.com/go-ruby-chronic/chronic v0.0.0-20260916091614-bd47d560b6f4/go.mod h1:6H3V0VdtD8NB/WEt+8+bIM0n78g45H8HDAnWNwJByCM=
github.com/go-ruby-chronic/chronic v0.1.0 h1:3rar6r+rLVFNmyGpTPZvMbjEnnRh9JI2vNI11048A70=
github.com/go-ruby-chronic/chronic v0.1.0/go.mod h1:hhudekjG06iXIHV99juSwG+aOJ+Jv7dNS7tLzEX8ywg=
github.com/go-ruby-cmath/cmath v0.0.0-20260916091648-4963ab4145f7 h1:2tUvNHeR8mL8NcJyxTZxaaujvusucfBsnZAQg18D9Zg=
github.com/go-ruby-cmath/cmath v0.0.0-20260916091648-4963ab4145f7/go.mod h1:djGUM2WR7AdnZqeRg/OQ4xVzmsl8PAWQKILX2n/foas=
github.com/go-ruby-concurrent-ruby/concurrent-ruby v0.0.0-20260916091840-b820f7a57284 h1:hIdCXEwLLYl+NPKBCbI3aFul6ARXfgEczxlA0hIDOkY=
Expand Down
Loading