]> Cypherpunks repositories - gostls13.git/commit
cmd/go: implement go get + bug fixes
authorRuss Cox <rsc@golang.org>
Mon, 23 Jan 2012 20:16:51 +0000 (15:16 -0500)
committerRuss Cox <rsc@golang.org>
Mon, 23 Jan 2012 20:16:51 +0000 (15:16 -0500)
commited936a3f22bcc8165390545471633141088eca26
tree124a10a9b6249e1f071d80a1e5e85490eb2b7619
parentb5777571b3ab20ca124fa60c34cd5094098fbb2f
cmd/go: implement go get + bug fixes

Move error information into Package struct, so that
a package can be returned even if a dependency failed
to load or did not exist.  This makes it possible to run
'go fix' or 'go fmt' on packages with broken dependencies
or missing imports.  It also enables go get -fix.
The new go list -e flag lets go list process those package
errors as normal data.

Change p.Doc to be first sentence of package doc, not
entire package doc.  Makes go list -json or
go list -f '{{.ImportPath}} {{.Doc}}' much more reasonable.

The go tool now depends on http, which means also
net and crypto/tls, both of which use cgo.  Trying to
make the build scripts that build the go tool understand
and handle cgo is too much work.  Instead, we build
a stripped down version of the go tool, compiled as go_bootstrap,
that substitutes an error stub for the usual HTTP code.
The buildscript builds go_bootstrap, go_bootstrap builds
the standard packages and commands, including the full
including-HTTP-support go tool, and then go_bootstrap
gets deleted.

Also handle the case where the buildscript needs updating
during all.bash: if it fails but a go command can be found on
the current $PATH, try to regenerate it.  This gracefully
handles situations like adding a new file to a package
used by the go tool.

R=r, adg
CC=golang-dev
https://golang.org/cl/5553059
25 files changed:
src/buildscript.sh
src/buildscript/darwin_386.sh
src/buildscript/darwin_amd64.sh
src/buildscript/freebsd_386.sh
src/buildscript/freebsd_amd64.sh
src/buildscript/linux_386.sh
src/buildscript/linux_amd64.sh
src/buildscript/linux_arm.sh
src/buildscript/netbsd_386.sh
src/buildscript/netbsd_amd64.sh
src/buildscript/openbsd_386.sh
src/buildscript/openbsd_amd64.sh
src/buildscript/plan9_386.sh
src/buildscript/windows_386.sh
src/buildscript/windows_amd64.sh
src/cmd/go/Makefile
src/cmd/go/build.go
src/cmd/go/get.go
src/cmd/go/list.go
src/cmd/go/main.go
src/cmd/go/pkg.go
src/cmd/go/run.go
src/cmd/go/test.go
src/cmd/go/vcs.go [new file with mode: 0644]
src/make.bash