diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5250cf3..9ed6526 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -15,8 +15,10 @@ jobs: - ubuntu-latest - macos-latest go: + - '1.21' - '1.22' - '1.23' + - '1.24' runs-on: ${{ matrix.os }} @@ -30,8 +32,19 @@ jobs: - run: go test -v -tags swiss_invariants + linux-noswissmap: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: "1.24" + + - run: GOEXPERIMENT=noswissmap go test -v + linux-race: - name: go-linux-race runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -39,12 +52,12 @@ jobs: - name: Set up Go uses: actions/setup-go@v4 with: - go-version: "1.23" + go-version: "1.24" - run: go test -v -race + linux-32bit: - name: go-linux-32bit runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -52,7 +65,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v4 with: - go-version: "1.23" + go-version: "1.24" - run: GOARCH=386 go test -v -tags swiss_invariants @@ -75,8 +88,8 @@ jobs: lscpu | grep Endian && apt-get update && apt-get install -y wget && - wget -q https://go.dev/dl/go1.23.6.linux-s390x.tar.gz && - tar xzf go1.23.6.linux-s390x.tar.gz -C /usr/local && + wget -q https://go.dev/dl/go1.24.0.linux-s390x.tar.gz && + tar xzf go1.24.0.linux-s390x.tar.gz -C /usr/local && export PATH="$PATH:/usr/local/go/bin" && cd /swiss && go version && diff --git a/runtime_go1.20.go b/runtime_go1.20.go index 069f685..31e38ba 100644 --- a/runtime_go1.20.go +++ b/runtime_go1.20.go @@ -17,12 +17,12 @@ // bumping of the go versions supported by adjusting the build tags below. The // way go version tags work the tag for goX.Y will be declared for every // subsequent release. So go1.20 will be defined for go1.21, go1.22, etc. The -// build tag "go1.20 && !go1.24" defines the range [go1.20, go1.24) (inclusive -// on go1.20, exclusive on go1.24). +// build tag "go1.20 && !go1.25" defines the range [go1.20, go1.25) (inclusive +// on go1.20, exclusive on go1.25). // The untested_go_version flag enables building on any go version, intended // to ease testing against Go at tip. -//go:build (go1.20 && !go1.24) || untested_go_version +//go:build (go1.20 && !go1.25) || untested_go_version package swiss @@ -59,17 +59,16 @@ type rtEface struct { } // From internal/abi/type.go:MapType +// In go 1.24, this is a prefix of both abi.SwissMapType and abi.OldMapType. type rtMapType struct { rtType Key *rtType Elem *rtType Bucket *rtType // internal type representing a hash bucket // function for hashing keys (ptr to key, seed) -> hash - Hasher func(unsafe.Pointer, uintptr) uintptr - KeySize uint8 // size of key slot - ValueSize uint8 // size of elem slot - BucketSize uint16 // size of bucket - Flags uint32 + Hasher func(unsafe.Pointer, uintptr) uintptr + + // Other fields are not relevant. } type rtTFlag uint8