tools/go/loader
Alan Donovan 5a2875abe7 go/loader: reduce contention for findPackage mutex
...by making the cache non-blocking and duplicate-suppressing.

(The bottleneck was introduced while adding vendoring support.)
This reduces the 95th percentile map shard time for type-checking 120K
packages to 8min from 20min.

Also: move the I/O-limiting counting semaphore and the NoGoError check
from FindPackage to findPackage so that all implementations benefit.

Change-Id: I43527122262cf80475dd3212d78c340e1c71e36c
Reviewed-on: https://go-review.googlesource.com/18580
Reviewed-by: Robert Griesemer <gri@golang.org>
2016-01-13 18:09:25 +00:00
..
testdata go/loader: improve robustness in face of input errors 2015-02-02 20:01:59 +00:00
cgo.go x/tools/...: fork and tag !1.5 all files that use go/types et al 2016-01-06 20:40:09 +00:00
cgo14.go x/tools/...: fork and tag !1.5 all files that use go/types et al 2016-01-06 20:40:09 +00:00
doc.go go/loader: changes for vendor support 2015-12-22 18:31:24 +00:00
example14_test.go go/loader: don't treat unsafe specially wrt vendoring 2016-01-08 20:29:04 +00:00
example15_test.go go/loader: don't treat unsafe specially wrt vendoring 2016-01-08 20:29:04 +00:00
example_test.go go/loader: don't treat unsafe specially wrt vendoring 2016-01-08 20:29:04 +00:00
go16.go tools: fallout from flipped sense of build.IgnoreVendor flag 2016-01-08 18:54:48 +00:00
go16_test.go tools: fallout from flipped sense of build.IgnoreVendor flag 2016-01-08 18:54:48 +00:00
loader.go go/loader: reduce contention for findPackage mutex 2016-01-13 18:09:25 +00:00
loader14.go go/loader: don't treat unsafe specially wrt vendoring 2016-01-08 20:29:04 +00:00
loader14_test.go x/tools/...: fork and tag !1.5 all files that use go/types et al 2016-01-06 20:40:09 +00:00
loader_test.go go/loader: use Skipf in test 2016-01-08 19:32:38 +00:00
stdlib14_test.go x/tools/...: fork and tag !1.5 all files that use go/types et al 2016-01-06 20:40:09 +00:00
stdlib_test.go tools: switch to standard go/types at tip 2016-01-06 22:15:26 +00:00
util.go go/loader: don't treat unsafe specially wrt vendoring 2016-01-08 20:29:04 +00:00