aboutsummaryrefslogtreecommitdiff
path: root/libgo/go/runtime/time.go
AgeCommit message (Collapse)AuthorFilesLines
2022-02-11libgo: update to Go1.18beta2Ian Lance Taylor1-15/+25
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 Taylor1-50/+8
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/341629
2021-04-12libgo: update to Go1.16.3 releaseIan Lance Taylor1-0/+5
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/309490
2021-01-29libgo: update to Go1.16rc1Ian Lance Taylor1-0/+6
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/287493
2020-12-30libgo: update to Go1.16beta1 releaseIan Lance Taylor1-58/+89
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-08-01libgo: update to go1.15rc1Ian Lance Taylor1-6/+31
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/245157
2020-04-06libgo: update to almost the 1.14.2 releaseIan Lance Taylor1-155/+101
Update to edea4a79e8d7dea2456b688f492c8af33d381dc2 which is likely to be approximately the 1.14.2 release. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/227377
2020-02-15libgo: update to Go1.14rc1 releaseIan Lance Taylor1-70/+169
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/218017
2020-01-21libgo: update to Go1.14beta1Ian Lance Taylor1-238/+799
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/214297
2019-01-18libgo: update to Go1.12beta2Ian Lance Taylor1-32/+35
Reviewed-on: https://go-review.googlesource.com/c/158019 gotools/: * Makefile.am (go_cmd_vet_files): Update for Go1.12beta2 release. (GOTOOLS_TEST_TIMEOUT): Increase to 600. (check-runtime): Export LD_LIBRARY_PATH before computing GOARCH and GOOS. (check-vet): Copy golang.org/x/tools into check-vet-dir. * Makefile.in: Regenerate. gcc/testsuite/: * go.go-torture/execute/names-1.go: Stop using debug/xcoff, which is no longer externally visible. From-SVN: r268084
2018-10-25compiler: improve name mangling for packpathsIan Lance Taylor1-1/+1
The current implementation of Gogo::pkgpath_for_symbol was written in a way that allowed two distinct package paths to map to the same symbol, which could cause collisions at link- time or compile-time. Switch to a better mangling scheme to insure that we get a unique packagepath symbol for each package. In the new scheme instead of having separate mangling schemes for identifiers and package paths, the main identifier mangler ("go_encode_id") now handles mangling of both packagepath characters and identifier characters. The new mangling scheme is more intrusive: "foo/bar.Baz" is mangled as "foo..z2fbar.Baz" instead of "foo_bar.Baz". To mitigate this, this patch also adds a demangling capability so that function names returned from runtime.CallersFrames are converted back to their original unmangled form. Changing the pkgpath_for_symbol scheme requires updating a number of //go:linkname directives and C "__asm__" directives to match the new scheme, as well as updating the 'gotest' driver (which makes assumptions about the correct mapping from pkgpath symbol to package name). Fixes golang/go#27534. Reviewed-on: https://go-review.googlesource.com/c/135455 From-SVN: r265510
2018-09-24libgo: update to Go 1.11Ian Lance Taylor1-13/+65
Reviewed-on: https://go-review.googlesource.com/136435 gotools/: * Makefile.am (mostlyclean-local): Run chmod on check-go-dir to make sure it is writable. (check-go-tools): Likewise. (check-vet): Copy internal/objabi to check-vet-dir. * Makefile.in: Rebuild. From-SVN: r264546
2018-01-27libgo: update to Go1.10rc1Ian Lance Taylor1-0/+1
Reviewed-on: https://go-review.googlesource.com/90295 From-SVN: r257126
2018-01-09libgo: update to Go1.10beta1Ian Lance Taylor1-82/+174
Update the Go library to the 1.10beta1 release. Requires a few changes to the compiler for modifications to the map runtime code, and to handle some nowritebarrier cases in the runtime. Reviewed-on: https://go-review.googlesource.com/86455 gotools/: * Makefile.am (go_cmd_vet_files): New variable. (go_cmd_buildid_files, go_cmd_test2json_files): New variables. (s-zdefaultcc): Change from constants to functions. (noinst_PROGRAMS): Add vet, buildid, and test2json. (cgo$(EXEEXT)): Link against $(LIBGOTOOL). (vet$(EXEEXT)): New target. (buildid$(EXEEXT)): New target. (test2json$(EXEEXT)): New target. (install-exec-local): Install all $(noinst_PROGRAMS). (uninstall-local): Uninstasll all $(noinst_PROGRAMS). (check-go-tool): Depend on $(noinst_PROGRAMS). Copy down objabi.go. (check-runtime): Depend on $(noinst_PROGRAMS). (check-cgo-test, check-carchive-test): Likewise. (check-vet): New target. (check): Depend on check-vet. Look at cmd_vet-testlog. (.PHONY): Add check-vet. * Makefile.in: Rebuild. From-SVN: r256365
2017-09-14libgo: update to go1.9Ian Lance Taylor1-3/+12
Reviewed-on: https://go-review.googlesource.com/63753 From-SVN: r252767
2017-06-22runtime: make NumGoroutine wait for system goroutines to registerIan Lance Taylor1-0/+1
In libgo system goroutines register themselves after they start. That means that there is a small race between the goroutine being seen by the scheduler and the scheduler knowing that the goroutine is a system goroutine. That in turn means that runtime.NumGoroutines can overestimate the number of goroutines at times. This patch fixes the overestimate by counting the number of system goroutines waiting to start, and pausing NumGoroutines until those goroutines have all registered. This is kind of a lot of mechanism for this not very important problem, but I couldn't think of a better approach. The test for this is TestNumGoroutine in runtime/proc_test.go. The test is not currently run, but it will be soon. Reviewed-on: https://go-review.googlesource.com/46457 From-SVN: r249565
2017-05-11runtime: fix isSystemGoroutine for gccgoIan Lance Taylor1-0/+2
The gc toolchain decides whether a goroutine is a system goroutine by comparing startpc to a list of saved special PCs. In gccgo that approach does not work as startpc is often a thunk that invokes the real function with arguments, so the thunk address never matches the saved special PCs. This patch fixes gccgo's understanding of system goroutines. Since there are only a limited number of them, we simply change each one to mark itself as special. This fixes stack dumps and functions like runtime.NumGoroutine to behave more like gc. It also fixes the goprint test in the gc testsuite. Reviewed-on: https://go-review.googlesource.com/43156 From-SVN: r247931
2017-01-14libgo: update to Go 1.8 release candidate 1Ian Lance Taylor1-4/+4
Compiler changes: * Change map assignment to use mapassign and assign value directly. * Change string iteration to use decoderune, faster for ASCII strings. * Change makeslice to take int, and use makeslice64 for larger values. * Add new noverflow field to hmap struct used for maps. Unresolved problems, to be fixed later: * Commented out test in go/types/sizes_test.go that doesn't compile. * Commented out reflect.TestStructOf test for padding after zero-sized field. Reviewed-on: https://go-review.googlesource.com/35231 gotools/: Updates for Go 1.8rc1. * Makefile.am (go_cmd_go_files): Add bug.go. (s-zdefaultcc): Write defaultPkgConfig. * Makefile.in: Rebuild. From-SVN: r244456
2016-10-18runtime: copy netpoll code from Go 1.7 runtimeIan Lance Taylor1-4/+0
Reviewed-on: https://go-review.googlesource.com/31325 From-SVN: r241307
2016-10-15runtime: copy runtime package time code from Go 1.7Ian Lance Taylor1-0/+307
Fix handling of function values for -fgo-c-header to generate FuncVal*, not simply FuncVal. While we're here change runtime.nanotime to use clock_gettime with CLOCK_MONOTONIC, rather than gettimeofday. This is what the gc library does. It provides nanosecond precision and a monotonic clock. Reviewed-on: https://go-review.googlesource.com/31232 From-SVN: r241197
2015-10-31runtime: Remove now unnecessary pad field from ParFor.Ian Lance Taylor1-289/+0
It is not needed due to the removal of the ctx field. Reviewed-on: https://go-review.googlesource.com/16525 From-SVN: r229616
2015-01-15libgo, compiler: Upgrade libgo to Go 1.4, except for runtime.Ian Lance Taylor1-0/+289
This upgrades all of libgo other than the runtime package to the Go 1.4 release. In Go 1.4 much of the runtime was rewritten into Go. Merging that code will take more time and will not change the API, so I'm putting it off for now. There are a few runtime changes anyhow, to accomodate other packages that rely on minor modifications to the runtime support. The compiler changes slightly to add a one-bit flag to each type descriptor kind that is stored directly in an interface, which for gccgo is currently only pointer types. Another one-bit flag (gcprog) is reserved because it is used by the gc compiler, but gccgo does not currently use it. There is another error check in the compiler since I ran across it during testing. gotools/: * Makefile.am (go_cmd_go_files): Sort entries. Add generate.go. * Makefile.in: Rebuild. From-SVN: r219627