• Russ Cox's avatar
    cmd/go: implement go get + bug fixes · ed936a3f
    Russ Cox authored
    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
    ed936a3f
linux_amd64.sh 23.7 KB