Commit Graph

3325 Commits

Author SHA1 Message Date
Shenghou Ma 1a59e6239c 5l, runtime: remove softfloat emulation code when not used
This leads to ~30kB improvement on code size for ARM machines with VFP/NEON.
Example: go test -c math
       GOARM=5  GOARM=6
  Old: 1884200  1839144
  New: 1884165  1805245
  -:        35    33899

R=rsc, bradfitz, dave, kai.backman
CC=golang-dev
https://golang.org/cl/5975060
2012-04-11 04:11:27 +08:00
Shenghou Ma 2031252fb8 5a, 5l: add PLD (preload data) instruction
Supported in ARMv5TE and above, excluding ARMv5TExP.
        For CL 5990066.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5999044
2012-04-11 04:09:04 +08:00
Russ Cox e530d6a1e0 6c, 6g, 6l: add MOVQL to make truncation explicit
Without an explicit signal for a truncation, copy propagation
will sometimes propagate a 32-bit truncation and end up
overwriting uses of the original 64-bit value.

The case that arose in practice is in C but I believe
that the same could plausibly happen in Go.
The main reason we didn't run into the same in Go
is that I (perhaps incorrectly?) drop MOVL AX, AX
during gins, so the truncation was never generated, so
it didn't confuse the optimizer.

Fixes #1315.
Fixes #3488.

R=ken2
CC=golang-dev
https://golang.org/cl/6002043
2012-04-10 12:51:59 -04:00
Russ Cox b72c7e943c cmd/6c: fix probable code gen bug
This is a pointer being copied; MOVL can't possibly be right.

R=ken2
CC=golang-dev
https://golang.org/cl/5999043
2012-04-10 12:51:36 -04:00
Russ Cox 30bc5d7bbd cmd/8c: fix store to complex uint64 ptr
Assignment of a computed uint64 value to an
address derived with a function call was executing
the call after computing the value, which trashed
the value (held in registers).

long long *f(void) { return 0; }
void g(int x, int y) {
        *f() = (long long)x | (long long)y<<32;
}

Before:

(x.c:3)	TEXT	g+0(SB),(gok(71))
...
(x.c:4)	ORL	AX,DX
(x.c:4)	ORL	CX,BX
(x.c:4)	CALL	,f+0(SB)
(x.c:4)	MOVL	DX,(AX)
(x.c:4)	MOVL	BX,4(AX)

After:
(x.c:3)	TEXT	g+0(SB),(gok(71))
(x.c:4)	CALL	,f+0(SB)
...
(x.c:4)	ORL	CX,BX
(x.c:4)	ORL	DX,BP
(x.c:4)	MOVL	BX,(AX)
(x.c:4)	MOVL	BP,4(AX)

Fixes #3501.

R=ken2
CC=golang-dev
https://golang.org/cl/5998043
2012-04-10 10:45:58 -04:00
Shenghou Ma edf8b03fef cmd/api: allow addition of API
R=bradfitz, rsc
CC=golang-dev
https://golang.org/cl/5991081
2012-04-10 22:12:09 +08:00
Russ Cox 3d462449f6 8a, 8l: add PREFETCH instructions
R=ken2
CC=golang-dev
https://golang.org/cl/5992082
2012-04-10 10:09:27 -04:00
Russ Cox 35d260fa4c 6a, 6l: add PREFETCH instructions
R=ken2
CC=golang-dev
https://golang.org/cl/5989073
2012-04-10 10:09:09 -04:00
Alexey Borzenkov 0669261af1 cmd/dist: don't fail when Mercurial is a batch file on Windows
On windows Mercurial installed with easy_install typically creates
an hg.bat batch file in Python Scripts directory, which cannot be used
with CreateProcess unless full path is specified. Work around by
launching hg via cmd.exe /c.

Additionally, fix a rare FormatMessageW crash.

Fixes #3093.

R=golang-dev, rsc, alex.brainman, aram, jdpoirier, mattn.jp
CC=golang-dev
https://golang.org/cl/5937043
2012-04-09 15:39:59 -04:00
Benny Siegert f6d582db61 cmd/yacc: spring cleaning for units.y
* sort imports
* use runtime.GOROOT
* fix some typos

R=golang-dev, dave, rsc
CC=golang-dev
https://golang.org/cl/5987054
2012-04-09 15:04:59 -04:00
Brad Fitzpatrick a8197456b1 cmd/go: in go get, don't try to perform discovery on non-hosts
Before, "go get -v foo/bar" was assuming "foo" was a hostname
and trying to perform discovery on it. Now, require a dot in
the first path component (the hostname).

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5981057
2012-04-04 07:24:13 -07:00
Shenghou Ma bcdafaa582 5c, 6c, 8c: take GOROOT_FINAL into consideration
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5936050
2012-04-04 00:04:36 +08:00
Shenghou Ma 6af069f3e1 5a, 6a, 8a: take GOROOT_FINAL into consideration
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5940052
2012-04-04 00:03:42 +08:00
Shenghou Ma 96da953d86 godoc: update appinit.go, apply !appengine build constrain to main.go
R=adg, dsymonds
CC=golang-dev
https://golang.org/cl/5969063
2012-04-04 00:00:26 +08:00
Ryan Hitchman 8a686792e0 gc: improve error message for composite literals with unexpected newlines
R=golang-dev, r, rsc
CC=golang-dev
https://golang.org/cl/5857045
2012-04-02 11:00:55 -04:00
Shenghou Ma a9de5bb3eb cmd/dist, sudo.bash: don't mention sudo.bash if cov or prof is not present
Fixes #3422.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5967057
2012-04-02 22:33:38 +08:00
Robert Griesemer 5b5b42ea84 godoc: replace servePage's positional argument list
R=golang-dev, adg, bradfitz
CC=golang-dev
https://golang.org/cl/5869050
2012-03-30 10:42:56 -07:00
Rob Pike efb134f8bf cmd/go: update docs about tags for get command
"go1" dominates. Delete the text about weekly and release.
We can revisit this once the situation changes.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5969043
2012-03-30 13:07:10 +11:00
Andrew Gerrand d71d11fa93 cmd/godoc: use virtual filesystem to implement -templates flag
R=golang-dev, gri, rsc
CC=golang-dev
https://golang.org/cl/5921045
2012-03-28 09:13:48 +11:00
Russ Cox 9d7076b178 cmd/go: respect $GOBIN always
Another attempt at https://golang.org/cl/5754088.

Before, we only consulted $GOBIN for source code
found in $GOROOT, but that's confusing to explain
and less useful.  The new behavior lets users set
GOBIN=$HOME/bin and have all go-compiled binaries
installed there.

Tested a few cases in test.bash.

Ran all.bash with and without $GOBIN and it works.
Even so, I expect it to break the builders,
like it did last time, we can debug from there.

Fixes #3269 (again).
Fixes #3396.
Fixes #3397.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5927051
2012-03-27 11:57:39 -04:00
Russ Cox 6b0929505b cmd/go: fix two bugs
Issue 3207 was caused by setting GOPATH=GOROOT.
This is a common mistake, so diagnose it at command start
and also correct the bug that it caused in get (downloading
to GOROOT/src/foo instead of GOROOT/src/pkg/foo).

Issue 3268 was caused by recognizing 'packages' that
had installed binaries but no source.  This behavior is not
documented and causes trouble, so remove it.  We can
revisit the concept of binary-only packages after Go 1.

Fixes #3207.
Fixes #3268.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5930044
2012-03-27 10:41:44 -04:00
Russ Cox d6c9af6a4e cmd/go: update for go1 tag format
R=golang-dev, r, r
CC=golang-dev
https://golang.org/cl/5919048
2012-03-27 00:17:50 -04:00
Russ Cox 901ee5c151 cmd/dist: fix detection of go1 version
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5924044
2012-03-27 00:17:35 -04:00
Russ Cox a3498f4be4 cmd/go: copy tag_test.go from goinstall
hg cat -r 11846 src/cmd/goinstall/tag_test.go >tag_test.go
No changes.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5919047
2012-03-26 23:44:30 -04:00
Andrew Gerrand 849ad2d0ca cmd/godoc: canonicalize custom path redirects
For example, /ref and /doc/reference.html now both redirect to /ref/.

Fixes #3401.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5916044
2012-03-27 12:44:17 +11:00
Andrew Gerrand fd9c206718 cmd/godoc: fix app engine version
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5902060
2012-03-27 10:10:25 +11:00
Rob Pike 6421bdeb71 cmd/go: explain versions better
Summarize the desiderata for selecting versions of remote packages to get.
Fixes #3394.

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/5902058
2012-03-26 17:47:39 +11:00
Shenghou Ma 304404895d cmd/go: allow underscores in tool name
Otherwise we can't invoke go_bootstrap directly.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5900061
2012-03-26 10:01:17 +08:00
Evan Shaw c26b504b0d cmd/go: add missing error check
R=golang-dev, minux.ma, bradfitz
CC=golang-dev
https://golang.org/cl/5874055
2012-03-26 09:52:29 +08:00
Ian Lance Taylor 209b2e55f7 cmd/gc: fix comment typo, assignment spacing
R=bradfitz, gri, lvd
CC=golang-dev
https://golang.org/cl/5874053
2012-03-22 11:40:12 -07:00
Ian Lance Taylor 47b6197a01 cmd/gc: when expanding append inline, preserve arguments
Fixes #3369.

R=golang-dev, gri, lvd, r
CC=golang-dev
https://golang.org/cl/5876044
2012-03-22 09:44:31 -07:00
Robert Griesemer cfd8b84f07 godoc: use shorter titles for tabs
In a browser with many open tabs, the tab titles become short
and uninformative because they all start with the same prefix
("Package ", "Directory ", etc.).

Permit use of shorter tab titles that start with the relevant
information first.

Fixes #3365.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5865056
2012-03-21 11:29:30 -07:00
Ian Lance Taylor 3a3c5aad4e cmd/cgo: fix handling of errno for gccgo
Fixes #3332.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5868047
2012-03-21 10:38:58 -07:00
Ian Lance Taylor c5b45aa991 cmd/go: use .o, not .{5,6,8}, for gccgo created object files
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5861044
2012-03-20 14:17:06 -07:00
Andrew Gerrand abdb4dbe2c cmd/godoc: inform users that the playground doesn't work via local godoc
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5843065
2012-03-20 14:11:38 +11:00
Anthony Martin e1f22bdcc5 gc: fix struct and array comparisons for new bool rules
The two optimizations for small structs and arrays
were missing the implicit cast from ideal bool.

Fixes #3351.

R=rsc, lvd
CC=golang-dev
https://golang.org/cl/5848062
2012-03-19 15:57:28 -07:00
Brad Fitzpatrick f69132d7ad build: catch API changes during build
Adds new file api/go1.txt, locking down the current API.
Any changes to the API will need to update that file.

run.bash (but not make.bash, or Windows) will check for
accidental API changes.

R=golang-dev, dsymonds, rsc
CC=golang-dev
https://golang.org/cl/5820070
2012-03-17 11:20:46 -07:00
Johan Euphrosine 2b3fd37066 godoc: use FormatText for formating code in html template.
R=golang-dev, rsc, r, adg, gri, r
CC=golang-dev
https://golang.org/cl/5835046
2012-03-16 15:33:05 -07:00
Russ Cox cf0cbfd21a cmd/go: don't add detail to errPrintedOutput
This makes the last error-reporting CL a bit less
aggressive.  errPrintedOutput is a sentinel value
that should not be wrapped.

R=gri
CC=golang-dev
https://golang.org/cl/5845052
2012-03-16 16:35:16 -04:00
Shenghou Ma 367557cd79 cmd/pack: also recognize '\\' as path separator in filenames
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5841051
2012-03-17 01:34:44 +08:00
Robert Griesemer cb4ed897a3 godoc: apply gofmt
R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/5842043
2012-03-16 09:58:23 -07:00
Shenghou Ma 9b70c70ffb cmd/go: add -fno-common by default on Darwin
Fixes part of issue 3253.
        We still need to support scattered relocations though.

R=golang-dev, bsiegert, rsc, iant
CC=golang-dev
https://golang.org/cl/5822050
2012-03-16 12:05:09 -04:00
Russ Cox a4b2c5efbc cmd/go: work around occasional ETXTBSY running cgo
Fixes #3001.  (This time for sure!)

R=golang-dev, r, fullung
CC=golang-dev
https://golang.org/cl/5845044
2012-03-16 10:44:09 -04:00
Yasuhiro Matsumoto 7694da1f3b cmd/gofmt: show ascii in usage.
windows cmd.exe can't show utf-8 correctly basically.
chcp 65001 may make it show, but most people don't have fonts which can
show it.

R=golang-dev, rsc, adg, gri, r
CC=golang-dev
https://golang.org/cl/5820060
2012-03-15 16:38:27 -07:00
Rémy Oudompheng 3211b2cca9 cmd/cgo: add support for function export for gccgo.
A "gccgoprefix" flag is added and used by the go tool,
to mirror the -fgo-prefix flag for gccgo, whose value
is required to know how to access functions from C.

Trying to export Go methods or unexported Go functions
will not work.

Also fix go test on "main" packages.

Updates #2313.
Fixes #3262.

R=mpimenov, rsc, iant
CC=golang-dev
https://golang.org/cl/5797046
2012-03-15 23:50:25 +01:00
Brad Fitzpatrick 86c7bc6e8b misc/dist: don't ship cmd/cov or cmd/prof
Fixes #3317

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/5784083
2012-03-15 15:22:56 -07:00
Brad Fitzpatrick c898c519b0 cmd/go: quiet some logging
This should've been behind -v before but was missed.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5836046
2012-03-15 15:10:01 -07:00
Russ Cox 7a84fb3a85 cmd/go: make build errors more visible
Fixes #3324.

Robert suggested not reporting errors until the end of the output.
which I'd also like to do, but errPrintedOutput makes that a bigger
change than I want to do before Go 1.  This change should at least
remove the confusion we had.

# Building packages and commands for linux/amd64.
runtime
errors
sync/atomic
unicode
unicode/utf8
math
sync
unicode/utf16
crypto/subtle
io
syscall
hash
crypto
crypto/md5
hash/crc32
crypto/cipher
crypto/hmac
crypto/sha1
go install unicode: copying /tmp/go-build816525784/unicode.a to /home/rsc/g/go/pkg/linux_amd64/unicode.a: short write
hash/adler32
container/list
container/ring
...

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5837054
2012-03-15 17:35:57 -04:00
Russ Cox 9e5db8c90a 5l, 6l, 8l: fix stack split logic for stacks near default segment size
Fixes #3310.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5823051
2012-03-15 15:22:30 -04:00
Andrew Gerrand d528f52d87 cmd/godoc: add toys, tour button to playground
Fixes #3241.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5835043
2012-03-15 17:44:47 +11:00