mirror of
https://github.com/optim-enterprises-bv/kubernetes.git
synced 2025-11-22 09:25:11 +00:00
Nothing major here, but nothing liable to cause pain to downstreams either. * https://github.com/golang/crypto/compare/v0.26.0...v0.28.0 (there’s a SHA3 fix there but it’s only relevant for 32-bit platforms) * https://github.com/golang/net/compare/v0.28.0...v0.30.0 (mostly http2; route address parsing fix on Darwin) * https://github.com/golang/oauth2/compare/v0.21.0...v0.23.0 (Google license fix) * https://github.com/golang/sys/compare/v0.23.0...v0.26.0 (faster getrandom() on Linux through the vDSO; improved RISC-V support) * https://github.com/golang/term/compare/v0.23.0...v0.25.0 * https://github.com/golang/time/compare/v0.3.0...v0.7.0 (0-limit handling fix in x/time/rate; Google license fix) * https://github.com/golang/tools/compare/v0.24.0...v0.26.0 This doesn’t include golang.org/x/exp; that doesn’t have any relevant changes. There’s an apidiff fix but we always pull in the latest apidiff anyway. Signed-off-by: Stephen Kitt <skitt@redhat.com>
86 lines
2.4 KiB
Go
86 lines
2.4 KiB
Go
// Copyright 2024 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package pkgbits
|
|
|
|
// Version indicates a version of a unified IR bitstream.
|
|
// Each Version indicates the addition, removal, or change of
|
|
// new data in the bitstream.
|
|
//
|
|
// These are serialized to disk and the interpretation remains fixed.
|
|
type Version uint32
|
|
|
|
const (
|
|
// V0: initial prototype.
|
|
//
|
|
// All data that is not assigned a Field is in version V0
|
|
// and has not been deprecated.
|
|
V0 Version = iota
|
|
|
|
// V1: adds the Flags uint32 word
|
|
V1
|
|
|
|
// V2: removes unused legacy fields and supports type parameters for aliases.
|
|
// - remove the legacy "has init" bool from the public root
|
|
// - remove obj's "derived func instance" bool
|
|
// - add a TypeParamNames field to ObjAlias
|
|
// - remove derived info "needed" bool
|
|
V2
|
|
|
|
numVersions = iota
|
|
)
|
|
|
|
// Field denotes a unit of data in the serialized unified IR bitstream.
|
|
// It is conceptually a like field in a structure.
|
|
//
|
|
// We only really need Fields when the data may or may not be present
|
|
// in a stream based on the Version of the bitstream.
|
|
//
|
|
// Unlike much of pkgbits, Fields are not serialized and
|
|
// can change values as needed.
|
|
type Field int
|
|
|
|
const (
|
|
// Flags in a uint32 in the header of a bitstream
|
|
// that is used to indicate whether optional features are enabled.
|
|
Flags Field = iota
|
|
|
|
// Deprecated: HasInit was a bool indicating whether a package
|
|
// has any init functions.
|
|
HasInit
|
|
|
|
// Deprecated: DerivedFuncInstance was a bool indicating
|
|
// whether an object was a function instance.
|
|
DerivedFuncInstance
|
|
|
|
// ObjAlias has a list of TypeParamNames.
|
|
AliasTypeParamNames
|
|
|
|
// Deprecated: DerivedInfoNeeded was a bool indicating
|
|
// whether a type was a derived type.
|
|
DerivedInfoNeeded
|
|
|
|
numFields = iota
|
|
)
|
|
|
|
// introduced is the version a field was added.
|
|
var introduced = [numFields]Version{
|
|
Flags: V1,
|
|
AliasTypeParamNames: V2,
|
|
}
|
|
|
|
// removed is the version a field was removed in or 0 for fields
|
|
// that have not yet been deprecated.
|
|
// (So removed[f]-1 is the last version it is included in.)
|
|
var removed = [numFields]Version{
|
|
HasInit: V2,
|
|
DerivedFuncInstance: V2,
|
|
DerivedInfoNeeded: V2,
|
|
}
|
|
|
|
// Has reports whether field f is present in a bitstream at version v.
|
|
func (v Version) Has(f Field) bool {
|
|
return introduced[f] <= v && (v < removed[f] || removed[f] == V0)
|
|
}
|