• Russ Cox's avatar
    cmd/go: clean up after 'go build' during 'go install' · 227fb116
    Russ Cox authored
    If 'go install' (with no arguments, meaning the current directory)
    succeeds, remove the executable written by 'go build', if present.
    This avoids leaving a stale binary behind during a sequence like:
    
    	go build
    	<test, mostly works, make small change>
    	go install
    
    Before this CL, the current directory still has the stale binary
    from 'go build'. If $PATH contains dot, running the name of
    the program will find this stale binary instead of the new,
    installed one.
    
    Remove the 'go build' target during 'go install', both to clean
    up the directory and to avoid accidentally running the stale binary.
    
    Another way to view this CL is that it makes the go command
    behave as if 'go install' is implemented by 'go build' followed by
    moving the resulting binary to the install location.
    
    See #9645 for discussion and objections.
    
    Fixes #9645.
    
    Change-Id: Ide109572f96bbb5a35be45dda17738317462a7d4
    Reviewed-on: https://go-review.googlesource.com/10682
    
    Reviewed-by: default avatarRob Pike <r@golang.org>
    227fb116
test.bash 37.2 KB