1
0
mirror of https://github.com/golang/go synced 2024-11-18 16:44:43 -07:00
The Go programming language
Go to file
Alan Donovan e2921e188a go.tools/importer: make loading/parsing concurrent.
1. ParseFiles (in util.go) parses each file in its own goroutine.

2. (*Importer).LoadPackage asynchronously prefetches the
   import graph by scanning the imports of each loaded package
   and calling LoadPackage on each one.

   LoadPackage is now thread-safe and idempotent: it uses a
   condition variable per package; the first goroutine to
   request a package becomes responsible for loading it and
   broadcasts to the others (waiting) when it becomes ready.

ssadump runs 34% faster when loading the oracle.

Also, refactorings:
- delete SourceLoader mechanism; just expose go/build.Context directly.
- CreateSourcePackage now also returns an error directly,
  rather than via PackageInfo.Err, since every client wants that.

R=crawshaw
CC=golang-dev
https://golang.org/cl/13509045
2013-09-04 13:15:49 -04:00
cmd go.tools/importer: make loading/parsing concurrent. 2013-09-04 13:15:49 -04:00
dashboard go.tools/dashboard: implement dashboard using vcs package. 2013-08-27 21:52:18 -07:00
go go.tools/go/vcs: use same regular expression for code.google.com as cmd/go 2013-08-29 14:32:06 +10:00
godoc go.tools/cmd/godoc: don't list factory functions under types in builtin package 2013-08-28 09:39:02 +10:00
gotype go.tools/gotype: fix build 2013-07-19 07:52:43 -07:00
importer go.tools/importer: make loading/parsing concurrent. 2013-09-04 13:15:49 -04:00
oracle go.tools/importer: make loading/parsing concurrent. 2013-09-04 13:15:49 -04:00
pointer go.tools/importer: make loading/parsing concurrent. 2013-09-04 13:15:49 -04:00
ssa go.tools/importer: make loading/parsing concurrent. 2013-09-04 13:15:49 -04:00
.hgignore go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
AUTHORS go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
codereview.cfg go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
CONTRIBUTORS go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
LICENSE LICENSE: add 2012-03-17 15:20:58 +11:00
PATENTS go.empty: add PATENTS file to the subrepo. 2012-04-16 11:24:04 +10:00
README go.tools: provide the right README 2013-05-17 12:55:10 -07:00

This subrepository holds the source for various packages and tools that support
the Go programming language.

Although at least some of the tools themselves will be included in binary Go distributions,
the packages from which they are built are of little interest to most Go programmers.

To submit changes to this repository, see http://golang.org/doc/contribute.html.