aboutsummaryrefslogtreecommitdiff
path: root/libgo/go/internal/reflectlite
AgeCommit message (Collapse)AuthorFilesLines
2022-02-11libgo: update to Go1.18beta2Ian Lance Taylor7-48/+50
gotools/ * Makefile.am (go_cmd_cgo_files): Add ast_go118.go (check-go-tool): Copy golang.org/x/tools directories. * Makefile.in: Regenerate. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/384695
2021-08-12libgo: update to Go1.17rc2Ian Lance Taylor2-16/+1
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/341629
2020-12-30libgo: update to Go1.16beta1 releaseIan Lance Taylor3-2/+44
This does not yet include support for the //go:embed directive added in this release. * Makefile.am (check-runtime): Don't create check-runtime-dir. (mostlyclean-local): Don't remove check-runtime-dir. (check-go-tool, check-vet): Copy in go.mod and modules.txt. (check-cgo-test, check-carchive-test): Add go.mod file. * Makefile.in: Regenerate. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/280172
2020-10-13reflect: ensure uniqueness of type descriptors on AIX.Clément Chigot3-4/+42
On AIX, duplication of type descriptors can occur if one is declared in the libgo and one in the Go program being compiled. The AIX linker isn't able to merge them together as Linux one does. One solution is to always load libgo first but that needs a huge mechanism in gcc core. Thus, this patch ensures that the duplication isn't visible for the end user. In reflect and internal/reflectlite, the comparison of rtypes is made on their name and not only on their addresses. In reflect, toType() function is using a canonicalization map to force rtypes having the same rtype.String() to return the same Type. This can't be made in internal/reflectlite as it needs sync package. But, for now, it doesn't matter as internal/reflectlite is not widely used. Fixes golang/go#39276 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/260158
2020-08-01libgo: update to go1.15rc1Ian Lance Taylor2-17/+8
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/245157
2020-01-21libgo: update to Go1.14beta1Ian Lance Taylor4-12/+146
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/214297
2020-01-02compiler, runtime, reflect: generate hash functions only for map keysIan Lance Taylor1-30/+10
Right now we generate hash functions for all types, just in case they are used as map keys. That's a lot of wasted effort and binary size for types which will never be used as a map key. Instead, generate hash functions only for types that we know are map keys. Just doing that is a bit too simple, since maps with an interface type as a key might have to hash any concrete key type that implements that interface. So for that case, implement hashing of such types at runtime (instead of with generated code). It will be slower, but only for maps with interface types as keys, and maybe only a bit slower as the aeshash time probably dominates the dispatch time. Reorg where we keep the equals and hash functions. Move the hash function from the key type to the map type, saving a field in every non-map type. That leaves only one function in the alg structure, so get rid of that and just keep the equal function in the type descriptor itself. While we're here, reorganize the rtype struct to more closely match the gc version. This is the gofrontend version of https://golang.org/cl/191198. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/212843 From-SVN: r279848
2019-09-06libgo: update to Go 1.13beta1 releaseIan Lance Taylor7-0/+2655
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/193497 From-SVN: r275473