]> Cypherpunks repositories - gostls13.git/log
gostls13.git
10 years agodatabase/sql: provide stats on number of open connections to the database.
Andrei Korzhevskii [Mon, 23 Mar 2015 15:23:53 +0000 (18:23 +0300)]
database/sql: provide stats on number of open connections to the database.

This change provides a convenient way to monitor database connection pool.

Change-Id: I4b3757855b43f3b254acf9312e2a16e2f87840d0
Reviewed-on: https://go-review.googlesource.com/7950
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agocmd/go: always link external test packages first when using gccgo
Dave Cheney [Mon, 30 Mar 2015 05:13:39 +0000 (16:13 +1100)]
cmd/go: always link external test packages first when using gccgo

This CL is an amagamation of several fixes Canonical have made on their
fork of the cmd/go tool (packaged as gccgo-go.deb on Ubuntu 14.04+).

Additionally this CL brings gccgoToolchain.ldi() up to date with the version
that will ship in gccgo-5.0. As gccgo is most likely to be used with its
own version of the go tool that it supples it makes good sense that the libgo
version should dictate the contents of gccgotoolchain.ld()

Please see https://codereview.appspot.com/222890043/ for more details on the
issues fixed.

Change-Id: Icf7deb43f8e80b424757f1673e6bca7a0aa2a1ac
Reviewed-on: https://go-review.googlesource.com/8250
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agotext/scanner: Fix EOF reporting on strange Readers
Evan Phoenix [Sun, 22 Mar 2015 06:42:47 +0000 (23:42 -0700)]
text/scanner: Fix EOF reporting on strange Readers

Currently, scanner uses -1 to represent 2 different states:

1. I haven't yet scanned anything, call it "Beginning of File"
2. I've reached the end of the input, ie EOF

The result of this behavior is that calling Peek() when next()
has detected the end of the input and set s.ch to scanner.EOF,
is that Peek() things "oh, s.ch is < 0, which to me means that
I haven't scanned any next yet, let me try and clear the BOM
marker."

When this behavior is run on a typical IO, next() will issue
a Read and get (0, io.EOF) back for the second time without
blocking and Peek() will return scanner.EOF.

The bug comes into play when, inside a terminal, hitting Control-D.
This causes the terminal to return a EOF condition to the reader
but it does not actually close the fd.

So, combining these 2 situations, we arrive at the bug:

What is expected: hitting Control-D in a terminal will make Peek()
return scanner.EOF instantly.

What actually happens:

0. Code waiting in Next()
1. User hits Control-D
2. fd returns EOF condition
3. EOF bubbles it's way out to line 249 in scanner.go
4. next() returns scanner.EOF
5. Next() saves the scanner.EOF to s.ch and returns the previous value
6. Peek() runs, sees s.ch < 0, mistakenly thinks it hasn't run yet and
   tries to read the BOM marker.
7. next() sees the buffer is empty and tries to fill it again, blocking
   on line 249.

The fix is simple: use a different code to indicate that no data
has been scanned.

Change-Id: Iee8f4da5881682c4d4c36b93b9bf397ac5798179
Reviewed-on: https://go-review.googlesource.com/7913
Reviewed-by: Robert Griesemer <gri@golang.org>
10 years agofmt: improve test coverage of %x and %X format variations for strings
Martin Möhrmann [Fri, 9 Jan 2015 11:32:19 +0000 (12:32 +0100)]
fmt: improve test coverage of %x and %X format variations for strings

The tests in the basic string section are now covering more code paths
for encoding a string into the hexadecimal representation of its bytes.

Changed the basic string and basic bytes tests so that they mirror each other.

Change-Id: Ib5dc7b33876769965f9aba2ac270040abc4b2451
Reviewed-on: https://go-review.googlesource.com/2611
Reviewed-by: Robert Griesemer <gri@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
10 years agonet: add socket system call hooks for testing
Mikio Hara [Sun, 1 Mar 2015 03:27:01 +0000 (12:27 +0900)]
net: add socket system call hooks for testing

This change adds socket system call hooks to existing test cases for
simulating a bit complicated network conditions to help making timeout
and dual IP stack test cases work more properly in followup changes.

Also test cases print debugging information in non-short mode like the
following:

Leaked goroutines:
net.TestWriteTimeout.func2(0xc20802a5a0, 0xc20801d000, 0x1000, 0x1000, 0xc2081d2ae0)
/go/src/net/timeout_test.go:170 +0x98
created by net.TestWriteTimeout
/go/src/net/timeout_test.go:173 +0x745
net.runDatagramPacketConnServer(0xc2080730e0, 0x2bd270, 0x3, 0x2c1770, 0xb, 0xc2081d2ba0, 0xc2081d2c00)
/go/src/net/server_test.go:398 +0x667
created by net.TestTimeoutUDP
/go/src/net/timeout_test.go:247 +0xc9
(snip)

Leaked sockets:
3: {Cookie:615726511685632 Err:<nil> SocketErr:0}
5: {Cookie:7934075906097152 Err:<nil> SocketErr:0}

Socket statistical information:
{Family:1 Type:805306370 Protocol:0 Opened:17 Accepted:0 Connected:5 Closed:17}
{Family:2 Type:805306369 Protocol:0 Opened:450 Accepted:234 Connected:279 Closed:636}
{Family:1 Type:805306369 Protocol:0 Opened:11 Accepted:5 Connected:5 Closed:16}
{Family:28 Type:805306369 Protocol:0 Opened:95 Accepted:22 Connected:16 Closed:116}
{Family:2 Type:805306370 Protocol:0 Opened:84 Accepted:0 Connected:34 Closed:83}
{Family:28 Type:805306370 Protocol:0 Opened:52 Accepted:0 Connected:4 Closed:52}

Change-Id: I0e84be59a0699bc31245c78e2249423459b8cdda
Reviewed-on: https://go-review.googlesource.com/6390
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agomath/big: remove NaN support - just not worth it
Robert Griesemer [Tue, 31 Mar 2015 01:11:48 +0000 (18:11 -0700)]
math/big: remove NaN support - just not worth it

NaNs make the API more complicated for no real good reasons.
There are few operations that produce NaNs with IEEE arithmetic,
there's no need to copy the behavior. It's easy to test for these
scenarios and avoid them (on the other hand, it's not easy to test
for overflow or underflow, so we want to keep +/-Inf).

Also:
- renamed IsNeg -> Signbit (clearer, especially for x == -0)
- removed IsZero           (Sign() == 0 is sufficient and efficient)
- removed IsFinite         (now same as !IsInf)

Change-Id: I3f3b4445c325d9bbb1bf46ce2e298a6aeb498e07
Reviewed-on: https://go-review.googlesource.com/8280
Reviewed-by: Alan Donovan <adonovan@google.com>
10 years agoruntime, cmd/internal/ld: change runtime to use a single linker symbol
Michael Hudson-Doyle [Wed, 11 Mar 2015 23:22:18 +0000 (12:22 +1300)]
runtime, cmd/internal/ld: change runtime to use a single linker symbol

In preparation for being able to run a go program that has code
in several objects, this changes from having several linker
symbols used by the runtime into having one linker symbol that
points at a structure containing the needed data.  Multiple
object support will construct a linked list of such structures.

A follow up will initialize the slices in the themoduledata
structure directly from the linker but I was aiming for a minimal
diff for now.

Change-Id: I613cce35309801cf265a1d5ae5aaca8d689c5cbf
Reviewed-on: https://go-review.googlesource.com/7441
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agocmd/internal/gc: directly produce importpath of package being compiled
Michael Hudson-Doyle [Thu, 19 Mar 2015 10:05:34 +0000 (23:05 +1300)]
cmd/internal/gc: directly produce importpath of package being compiled

Relying on an importing package being linked at the same time as the
imported package does not work in the shared library world.

This also lets us remove some obscure code from the linker.

Change-Id: I57cd5447b42a1a6129b02951d44efffb10cf64be
Reviewed-on: https://go-review.googlesource.com/7797
Reviewed-by: Russ Cox <rsc@golang.org>
10 years agomath/big: fixed Float.Float64, implemented Float.Float32
Robert Griesemer [Tue, 24 Mar 2015 23:36:16 +0000 (16:36 -0700)]
math/big: fixed Float.Float64, implemented Float.Float32

- fix bounds checks for exponent range of denormalized numbers
- use correct rounding precision for denormalized numbers
- added extra tests

Change-Id: I6be56399afd0d9a603300a2e44b5539e08d6f592
Reviewed-on: https://go-review.googlesource.com/8096
Reviewed-by: Alan Donovan <adonovan@google.com>
10 years agodoc: add another go1.5.txt performance item, sort gc items
Brad Fitzpatrick [Tue, 31 Mar 2015 13:16:40 +0000 (06:16 -0700)]
doc: add another go1.5.txt performance item, sort gc items

Change-Id: I9c2b9143d80d253d90d12d2b7686e045ec19c96c
Reviewed-on: https://go-review.googlesource.com/8291
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agocrypto/x509: use syscall.GetVersion instead of internal/syscall/windows.GetVersion
Alex Brainman [Tue, 31 Mar 2015 05:59:02 +0000 (16:59 +1100)]
crypto/x509: use syscall.GetVersion instead of internal/syscall/windows.GetVersion

cl8167 introduced internal/syscall/windows.GetVersion, but we already
have that function in syscall.GetVersion. Use that instead.
Also revert all internal/syscall/windows cl8167 changes.

Change-Id: I512a5bf4b3b696e93aaf69e9e8b7df7022670ec0
Reviewed-on: https://go-review.googlesource.com/8302
Reviewed-by: Daniel Theophanes <kardianos@gmail.com>
Reviewed-by: Minux Ma <minux@golang.org>
10 years agoruntime: improve comment about non-preemption during GC work
Austin Clements [Fri, 20 Mar 2015 17:34:03 +0000 (13:34 -0400)]
runtime: improve comment about non-preemption during GC work

Currently, gcDrainN is documented saying that it must be run on the
system stack. In fact, the problem and solution here are somewhat
subtler. First, it doesn't have to happen on the system stack, it just
has to be non-stoppable (that is, non-preemptible). Second, this isn't
specific to gcDrainN (though gcDrainN is perhaps the most surprising
instance); it's general to anything that uses the gcWork structure.

Move the comment to gcWork and generalize it.

Change-Id: I5277b5abb070e47f8d783bc15a310b379c6adc22
Reviewed-on: https://go-review.googlesource.com/8247
Reviewed-by: Rick Hudson <rlh@golang.org>
10 years agoruntime: fix another out of date comment in GC
Austin Clements [Fri, 20 Mar 2015 17:21:51 +0000 (13:21 -0400)]
runtime: fix another out of date comment in GC

gcDrain used to be passed a *workbuf to start draining from, but now
it takes a gcWork, which hides whether or not there's an initial
workbuf. Update the comment to match this.

Change-Id: I976b58e5bfebc451cfd4fa75e770113067b5cc07
Reviewed-on: https://go-review.googlesource.com/8246
Reviewed-by: Rick Hudson <rlh@golang.org>
10 years agostrings: Add benchmark test for trim function
John Potocny [Thu, 26 Mar 2015 01:08:04 +0000 (21:08 -0400)]
strings: Add benchmark test for trim function

The strings.Trim function and variants allocate memory on the heap when creating a function to pass into TrimFunc.
Add a benchmark to document the behavior; an issue will be submitted to address this behavior in the compiler if possible.

Change-Id: I8b66721f077951f7e7b8cf3cf346fac27a9b68c0
Reviewed-on: https://go-review.googlesource.com/8200
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agoruntime: allow pointers to strings to be printed
Lee Packham [Mon, 30 Mar 2015 16:36:49 +0000 (17:36 +0100)]
runtime: allow pointers to strings to be printed

Being able to printer pointers to strings means one will able to output
the result of things like the flag library and other components that use
string pointers.

While here, adjusted the tests for gdb to test original string pretty
printing as well as pointers to them. It was doing it via the map before
but for completeness this ensures it's tested as a unit.

Change-Id: I4926547ae4fa6c85ef74301e7d96d49ba4a7b0c6
Reviewed-on: https://go-review.googlesource.com/8217
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agocmd/internal/obj/arm64: delete needless closure in for claus
Rob Pike [Mon, 30 Mar 2015 22:06:33 +0000 (15:06 -0700)]
cmd/internal/obj/arm64: delete needless closure in for claus

A residue of the automatic translation, this closure is easily rewritten
to a simpler, smaller, and faster construct.

Discovered while analyzing #10269, which I still plan to fix.

Change-Id: I76b12290280d81880c446b4cf75da633a94482d4
Reviewed-on: https://go-review.googlesource.com/8270
Reviewed-by: Dave Cheney <dave@cheney.net>
Reviewed-by: Minux Ma <minux@golang.org>
10 years agotest: add testcase for gccgo-specific issue 10284
Shenghou Ma [Mon, 30 Mar 2015 04:30:28 +0000 (00:30 -0400)]
test: add testcase for gccgo-specific issue 10284

Change-Id: I624b336a9eb27fbbc8ef13f141023b4f60966245
Reviewed-on: https://go-review.googlesource.com/8240
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agoruntime: rename ·main·f to ·mainPC to avoid duplicate symbol
Michael Hudson-Doyle [Sun, 29 Mar 2015 23:38:20 +0000 (23:38 +0000)]
runtime: rename ·main·f to ·mainPC to avoid duplicate symbol

runtime·main·f is normalized by the linker to runtime.main.f, as is
the compiler-generated symbol runtime.main·f.  Change the former to
runtime·mainPC instead.

Fixes issue #9934

Change-Id: I656a6fa6422d45385fa2cc55bd036c6affa1abfe
Reviewed-on: https://go-review.googlesource.com/8234
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agocmd/internal/ld: handle TLS and imported symbols more regularly
Michael Hudson-Doyle [Sun, 29 Mar 2015 21:03:05 +0000 (21:03 +0000)]
cmd/internal/ld: handle TLS and imported symbols more regularly

For shared libraries we need to be more flexible in how these symbols
are handled (e.g. sometimes tlsg needs to be global, or you can get
a SDYNIMPORT symbol that has .Hide == true) so handling these cases
in genasmsym makes everything much more regular.

Even ignoring shared libraries, I think this is a bit cleaner.

Change-Id: If5beb093a261e79f4496183226e1765ee7aa6717
Reviewed-on: https://go-review.googlesource.com/8230
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agomisc/ios: retry loop to handle builder flakiness
David Crawshaw [Mon, 30 Mar 2015 12:36:37 +0000 (08:36 -0400)]
misc/ios: retry loop to handle builder flakiness

After moving the darwin/arm builder to new hardware several new flaky
error messages appeared. This provided enough information to Google
to make it clear that iOS build systems have been flaky for many
years, and that is unlikely to change any time soon.

However, all of the pain of lldb and using a breakpoint early in
program initialization gives us an advantage: all install and
initialization flakiness appears to happen before the Go program ever
gets going. So if we see an error or we timeout before we reach our
breakpoint (before any test code has executed), we can assume it is
the fault of the builder and restart without risking hiding a flaky
Go test.

This code has successfully processed the last 8 builds. I am hopeful.

Change-Id: Ide24aaae4fa7bdab9d8f4432bb85d8f2256c7606
Reviewed-on: https://go-review.googlesource.com/8241
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
10 years agoiostest.bash: build script for iOS
David Crawshaw [Mon, 30 Mar 2015 12:47:07 +0000 (08:47 -0400)]
iostest.bash: build script for iOS

In the spirit of nacltest.bash and androidtest.bash. Sets up the
exec script and reboots the device.

The reboot helps make sure previous runs do not interfere with the
current run. It is reasonably easy for a bad program, e.g. one with
a corrupt stack, to get the device stuck.

Change-Id: I61317527741c45a70c390fe21adc4895510fc79f
Reviewed-on: https://go-review.googlesource.com/8242
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
10 years agocmd/internal/gc: convert some comment text from C to Go syntax
David Chase [Fri, 27 Mar 2015 16:34:45 +0000 (12:34 -0400)]
cmd/internal/gc: convert some comment text from C to Go syntax

Change-Id: Icbc42bcff5a3eabe9f43cff7fcc126141e209ded
Reviewed-on: https://go-review.googlesource.com/8203
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agocmd/gc: allocate backing storage for non-escaping interfaces on stack
David Chase [Fri, 27 Mar 2015 15:21:14 +0000 (11:21 -0400)]
cmd/gc: allocate backing storage for non-escaping interfaces on stack

Extend escape analysis to convT2E and conT2I. If the interface value
does not escape supply runtime with a stack buffer for the object copy.

This is a straight port from .c to .go of Dmitry's patch

Change-Id: Ic315dd50d144d94dd3324227099c116be5ca70b6
Reviewed-on: https://go-review.googlesource.com/8201
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
10 years agocrypto/x509: skip SHA2 system verify test if not supported.
Daniel Theophanes [Mon, 30 Mar 2015 00:36:05 +0000 (17:36 -0700)]
crypto/x509: skip SHA2 system verify test if not supported.

Windows XP SP2 and Windows 2003 do not support SHA2.

Change-Id: Ica5faed040e9ced8b79fe78d512586e0e8788b3f
Reviewed-on: https://go-review.googlesource.com/8167
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agoruntime: make "write barriers are not allowed" comments more precise
Austin Clements [Sun, 29 Mar 2015 14:20:54 +0000 (10:20 -0400)]
runtime: make "write barriers are not allowed" comments more precise

Currently, various functions are marked with the comment

  // May run without a P, so write barriers are not allowed.

However, "running without a P" is ambiguous. We intended these to mean
that m.p may be nil (which is the condition checked by the write
barrier). The comment could also be taken to mean that a
stop-the-world may happen, which is not the case for these functions
because they run in situations where there is in fact a function on
the stack holding a P locally, it just isn't in m.p.

Change these comments to state precisely what we mean, that m.p may be
nil.

Change-Id: I4a4a1d26aebd455e5067540e13b9f96a7482146c
Reviewed-on: https://go-review.googlesource.com/8209
Reviewed-by: Minux Ma <minux@golang.org>
Reviewed-by: Rick Hudson <rlh@golang.org>
10 years agomime/quotedprintable: add binary mode to the writer
Alexandre Cesaro [Fri, 20 Mar 2015 14:27:35 +0000 (15:27 +0100)]
mime/quotedprintable: add binary mode to the writer

Change-Id: Id82c3111d7571263208ced3d011ad80f3fe55984
Reviewed-on: https://go-review.googlesource.com/7892
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>

10 years agotest: add tests for escape analysis of function parameters
Dmitry Vyukov [Thu, 19 Feb 2015 16:10:31 +0000 (19:10 +0300)]
test: add tests for escape analysis of function parameters

False positives (var incorrectly escapes) are marked with BAD.

Change-Id: I002ac5965ec6748adafa2c4c657c97d8f7ff75d0
Reviewed-on: https://go-review.googlesource.com/5311
Reviewed-by: Keith Randall <khr@golang.org>
10 years agoio: clarify the behavior of PipeWriter.CloseWithError(nil).
Aaron Jacobs [Thu, 26 Mar 2015 20:31:31 +0000 (07:31 +1100)]
io: clarify the behavior of PipeWriter.CloseWithError(nil).

The previous wording implied that reads would return no error, rather
than EOF. It's convenient for users to know that Close() is equivalent
to CloseWithError(nil) because it can remove a branch from their error
handling code where they want to close the pipe in the appropriate way.
For example:

    https://github.com/jacobsa/gcloud/blob/6e9a8cec0a3f0834da3e9c9725dfe0bf79cccebb/gcs/bucket.go#L637-L643

Change-Id: I618bffe556eb518011e7ba5cdce1eb0ff536350e
Reviewed-on: https://go-review.googlesource.com/8152
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agomime: tighten up and simplify tests
Brad Fitzpatrick [Sun, 29 Mar 2015 19:21:15 +0000 (21:21 +0200)]
mime: tighten up and simplify tests

Don't test so much at once.

Fixes #10278

Change-Id: I32a9cb81a3cffecc7ce4f83c35a4b589bcd3a9f7
Reviewed-on: https://go-review.googlesource.com/8213
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

10 years agoruntime: do not use AddVectoredContinueHandler on Windows XP/2003.
Daniel Theophanes [Sat, 28 Mar 2015 06:03:22 +0000 (23:03 -0700)]
runtime: do not use AddVectoredContinueHandler on Windows XP/2003.

When Windows Error Reporting dialog is disabled on amd64
Windows XP or 2003, the continue handler does not fire. Newer
versions work correctly regardless of WER.

Fixes #10162

Change-Id: I84ea36ee188b34d1421a8db6231223cf61b4111b
Reviewed-on: https://go-review.googlesource.com/8165
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
10 years agoruntime/pprof: fix data race in test
Dmitry Vyukov [Sat, 28 Mar 2015 13:14:18 +0000 (16:14 +0300)]
runtime/pprof: fix data race in test

rp.Close happened concurrently with rp.Read. Order them.

Fixes #10280

Change-Id: I7b083bcc336d15396c4e42fc4654ba34fad4a4cc
Reviewed-on: https://go-review.googlesource.com/8211
Reviewed-by: Dave Cheney <dave@cheney.net>
10 years agotest: add tests for escape analysis of interface conversions
Dmitry Vyukov [Thu, 19 Feb 2015 13:27:32 +0000 (16:27 +0300)]
test: add tests for escape analysis of interface conversions

The false positives (var incorrectly escapes) are marked with BAD.

Change-Id: If64fabb6ea96de44a1177d9ab12e2ccc579fe0c4
Reviewed-on: https://go-review.googlesource.com/5294
Reviewed-by: Keith Randall <khr@golang.org>
10 years agotest: add tests for escape analysis of closure arguments
Dmitry Vyukov [Thu, 19 Feb 2015 12:57:03 +0000 (15:57 +0300)]
test: add tests for escape analysis of closure arguments

10 false positives (var incorrectly escapes to heap) are marked with BAD.

Change-Id: I773b13a18ff55aaa499a2a28a979118422cc5322
Reviewed-on: https://go-review.googlesource.com/5293
Reviewed-by: Keith Randall <khr@golang.org>
10 years agotest: fix build
Dmitry Vyukov [Sat, 28 Mar 2015 14:08:53 +0000 (17:08 +0300)]
test: fix build

Fix build after http://golang.org/cl/5297
The compiler was changed to not print implicit map capacity in error messages.

Change-Id: I852f668680c3c69c5eecc7964e46202a97014d6a
Reviewed-on: https://go-review.googlesource.com/8212
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
10 years agotest: add tests for indirection level computation in escape analysis
Dmitry Vyukov [Thu, 19 Feb 2015 12:44:08 +0000 (15:44 +0300)]
test: add tests for indirection level computation in escape analysis

The false positive (var incorrectly escapes to heap) is marked with BAD.

Change-Id: I11877fa8e976094b31a221abd88ae32d351c85ee
Reviewed-on: https://go-review.googlesource.com/5292
Reviewed-by: Keith Randall <khr@golang.org>
10 years agotest: add escape analysis tests form maps
Dmitry Vyukov [Thu, 19 Feb 2015 15:14:13 +0000 (18:14 +0300)]
test: add escape analysis tests form maps

False positives (var incorrectly escapes) are marked with BAD.

Change-Id: I8383fa3f77e2156d781d994968636ba9a17bb975
Reviewed-on: https://go-review.googlesource.com/5297
Reviewed-by: Keith Randall <khr@golang.org>
10 years agotest: add tests for escape analysis when assigning to indirections
Dmitry Vyukov [Thu, 19 Feb 2015 14:39:17 +0000 (17:39 +0300)]
test: add tests for escape analysis when assigning to indirections

False positives (var incorrectly escapes) are marked with BAD.

Change-Id: I0114d87ee467fe1e3b27642f8c5a04d4a9664211
Reviewed-on: https://go-review.googlesource.com/5295
Reviewed-by: Keith Randall <khr@golang.org>
10 years agotest: add escape analysis tests for fields
Dmitry Vyukov [Thu, 19 Feb 2015 20:30:05 +0000 (23:30 +0300)]
test: add escape analysis tests for fields

False positives (var incorrectly escapes) are marked with BAD.

Change-Id: I3027b6e0f5b48325e6169599400cc59e1394809f
Reviewed-on: https://go-review.googlesource.com/5431
Reviewed-by: Keith Randall <khr@golang.org>
10 years agotest: add tests for escape analysis of slices
Dmitry Vyukov [Thu, 19 Feb 2015 15:30:08 +0000 (18:30 +0300)]
test: add tests for escape analysis of slices

False positives (var incorrectly escapes) are marked with BAD.

Change-Id: I9e9a3f71b060520103bcf289829a2efdf6f2b517
Reviewed-on: https://go-review.googlesource.com/5298
Reviewed-by: Keith Randall <khr@golang.org>
10 years agotest: add additional ... tests for escape analysis
Dmitry Vyukov [Thu, 19 Feb 2015 14:54:55 +0000 (17:54 +0300)]
test: add additional ... tests for escape analysis

False positives (var incorrectly escapes) are marked with BAD.

Change-Id: I646a29ffe24d963c63db09cba81dbc101d7c7242
Reviewed-on: https://go-review.googlesource.com/5296
Reviewed-by: Keith Randall <khr@golang.org>
10 years agoos: give race detector chance to override Exit(0)
Dmitry Vyukov [Tue, 10 Feb 2015 14:26:26 +0000 (17:26 +0300)]
os: give race detector chance to override Exit(0)

Racy tests do not fail currently, they do os.Exit(0).
So if you run go test without -v, you won't even notice.
This was probably introduced with testing.TestMain.

Racy programs do not have the right to finish successfully.

Change-Id: Id133d7424f03d90d438bc3478528683dd02b8846
Reviewed-on: https://go-review.googlesource.com/4371
Reviewed-by: Russ Cox <rsc@golang.org>
10 years agonet: simplify test helpers
Mikio Hara [Thu, 26 Mar 2015 14:26:45 +0000 (23:26 +0900)]
net: simplify test helpers

This change consolidates test helpers that test platform capabilities.
testNetwork, testAddress and testListenArgs report whether given
ariguments are testable on the current platform configuration to
mitigate to receive weird test results.

Change-Id: Ie1ed568a1f9cc50f3155945ea01562904bc2c389
Reviewed-on: https://go-review.googlesource.com/8076
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agocmd/go: add -asmflags build flag
Srdjan Petrovic [Tue, 17 Mar 2015 18:57:11 +0000 (11:57 -0700)]
cmd/go: add -asmflags build flag

We need this in order to pass the "-shared" flag to the assembler.

Change-Id: I9c15cfe4d32c1e5e8cae1b9b2c924cfd77923b55
Reviewed-on: https://go-review.googlesource.com/7694
Reviewed-by: David Crawshaw <crawshaw@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agocmd: linker changes for shared library initialization
Srdjan Petrovic [Tue, 17 Mar 2015 16:47:01 +0000 (09:47 -0700)]
cmd: linker changes for shared library initialization

Suggested by iant@, this change:
  - looks for a symbol _rt0_<GOARCH>_<GOOS>_lib,
  - if the symbol is present, adds a new entry into the .init_array ELF
    section that points to the symbol.

The end-effect is that the symbol _rt0_<GOARCH>_<GOOS>_lib will be
invoked as soon as the (ELF) shared library is loaded, which will in turn
initialize the runtime. (To be implemented.)

Change-Id: I99911a180215a6df18f8a18483d12b9b497b48f4
Reviewed-on: https://go-review.googlesource.com/7692
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agomath/big: fix copy-paste mistake in int_test.go
Jeremy Schlatter [Fri, 27 Mar 2015 03:29:06 +0000 (03:29 +0000)]
math/big: fix copy-paste mistake in int_test.go

Change-Id: If986ed2cf94efba92763d00a3182047c05d6f805
Reviewed-on: https://go-review.googlesource.com/8133
Reviewed-by: Minux Ma <minux@golang.org>
10 years agocmd/go: small code reorganization
Jeremy Schlatter [Fri, 27 Mar 2015 01:59:31 +0000 (01:59 +0000)]
cmd/go: small code reorganization

covermode is not passed to 6.out, so it should not be grouped
with the flags that are. Move it to the "local" section.

Change-Id: Id487898962e7ab7adf98b0854c2f1802116bec11
Reviewed-on: https://go-review.googlesource.com/8132
Reviewed-by: Minux Ma <minux@golang.org>
10 years agodoc/go1.5.txt: add ExtensionByType to mime
Josh Bleecher Snyder [Fri, 27 Mar 2015 18:11:54 +0000 (11:11 -0700)]
doc/go1.5.txt: add ExtensionByType to mime

Change-Id: Iacbf06cf30a8a9630d8ee1f6934cbdef93ae0fc9
Reviewed-on: https://go-review.googlesource.com/8163
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
10 years agoruntime/pprof: fix TestCPUProfileWithFork for GOOS=android.
Hyang-Ah Hana Kim [Fri, 27 Mar 2015 00:02:50 +0000 (20:02 -0400)]
runtime/pprof: fix TestCPUProfileWithFork for GOOS=android.

1) Large allocation in this test caused crash. This was not
detected by builder because builder runs tests with -test.short.

2) The command "go" for forking doesn't exist in some platforms
including android. This change uses the test binary itself which
is guaranteed to exist.

This change also adds logging of the total samples collected in
TestCPUProfileMultithreaded test that is flaky in android-arm
builder.

Change-Id: I225c6b7877d811edef8b25e7eb00559450640c42
Reviewed-on: https://go-review.googlesource.com/8131
Reviewed-by: David Crawshaw <crawshaw@golang.org>
Run-TryBot: Hyang-Ah Hana Kim <hyangah@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

10 years agosyscall: apply the errno allocation fix to other operating systems
Brad Fitzpatrick [Fri, 27 Mar 2015 09:08:19 +0000 (10:08 +0100)]
syscall: apply the errno allocation fix to other operating systems

The previously-submitted https://go-review.googlesource.com/#/c/6701
didn't include dragonfly, freebsd, nacl, netbsd, openbsd, or solaris.
(or things like darwin/arm or ppc64 or arm64)

So do them all.

Note I had to copy the function into tables_nacl.go. I found that
preferable to creating a new file just to have suitable build
tags. It's likely this function will be mirrored to plan9 and windows
later too, each of the 4 with their own policy of which error values
are common.

The corresponding x/sys CL for this CL is https://golang.org/cl/8190
but it excludes nacl (not in x/sys) and solaris (already broken).

Update Issue #8859

Change-Id: I91902615692b29b69c905edd9e126a26337294f6
Reviewed-on: https://go-review.googlesource.com/8192
Reviewed-by: Rob Pike <r@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

10 years agomime: add ExtensionByType method
Nick Cooper [Thu, 12 Mar 2015 00:23:44 +0000 (11:23 +1100)]
mime: add ExtensionByType method

Added the inverse of TypeByExtension for discovering an appropriate
extensions for a given MIME type.

Fixes #10144

Change-Id: I6a80e1af3db5d45ad6a4c7ff4ccfdf6a4f424367
Reviewed-on: https://go-review.googlesource.com/7444
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agonet: reenable a previously skipped test
Brad Fitzpatrick [Fri, 27 Mar 2015 09:19:17 +0000 (10:19 +0100)]
net: reenable a previously skipped test

Update #8859

Change-Id: I5b0005b308e83954a495f06d27b7d8d30e813820
Reviewed-on: https://go-review.googlesource.com/8193
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agodoc: add more performance items to go1.5.txt
Brad Fitzpatrick [Fri, 27 Mar 2015 13:25:25 +0000 (14:25 +0100)]
doc: add more performance items to go1.5.txt

Change-Id: Ia7a08bc855db87890d35b2a1667e245ce5ecf472
Reviewed-on: https://go-review.googlesource.com/8197
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agotesting/quick: fix comment
Dmitry Vyukov [Fri, 27 Mar 2015 12:47:44 +0000 (15:47 +0300)]
testing/quick: fix comment

There is no top-level Values function.

Change-Id: I3ea2eea0b5f77f3e1a3f75d1a6472507ef2888bb
Reviewed-on: https://go-review.googlesource.com/8196
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agodoc/go1.5.txt: fix URL for a CL
Damian Gryski [Fri, 27 Mar 2015 09:12:00 +0000 (10:12 +0100)]
doc/go1.5.txt: fix URL for a CL

Change-Id: I6a91d255b9e9f66b0288b82af4303f9a9b4b373c
Reviewed-on: https://go-review.googlesource.com/8191
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agosyscall: don't allocate when boxing common Errno values into errors
Brad Fitzpatrick [Wed, 4 Mar 2015 00:42:06 +0000 (16:42 -0800)]
syscall: don't allocate when boxing common Errno values into errors

Fixes #8859

Change-Id: If8098e6edad1f83dc35fa84f4431689e8ee97678
Reviewed-on: https://go-review.googlesource.com/6701
Reviewed-by: Rob Pike <r@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

10 years agoimage/draw: fix golden test for YCbCr.RGBA change.
Nigel Tao [Fri, 27 Mar 2015 00:28:33 +0000 (11:28 +1100)]
image/draw: fix golden test for YCbCr.RGBA change.

The previous change was
https://go-review.googlesource.com/#/c/8073/

Change-Id: I0c48502d1ba90fb5d41c5e66346a8e7f4ee87ce7
Reviewed-on: https://go-review.googlesource.com/8151
Reviewed-by: Nigel Tao <nigeltao@golang.org>
10 years agoimage/color: have YCbCr.RGBA work in 16-bit color, per the Color
Nigel Tao [Wed, 25 Mar 2015 22:47:24 +0000 (09:47 +1100)]
image/color: have YCbCr.RGBA work in 16-bit color, per the Color
interface.

Change-Id: Ie025753df08ae93e7a5095a3426aff15fa2016fd
Reviewed-on: https://go-review.googlesource.com/8073
Reviewed-by: Rob Pike <r@golang.org>
10 years agoruntime: disallow write barriers in handoffp and callees
Austin Clements [Thu, 26 Mar 2015 19:50:22 +0000 (15:50 -0400)]
runtime: disallow write barriers in handoffp and callees

handoffp by definition runs without a P, so it's not allowed to have
write barriers. It doesn't have any right now, but mark it
nowritebarrier to disallow any creeping in in the future. handoffp in
turns calls startm, newm, and newosproc, all of which are "below Go"
and make sense to run without a P, so disallow write barriers in these
as well.

For most functions, we've done this because they may race with
stoptheworld() and hence must not have write barriers. For these
functions, it's a little different: the world can't stop while we're
in handoffp, so this race isn't present. But we implement this
restriction with a somewhat broader rule that you can't have a write
barrier without a P. We like this rule because it's simple and means
that our write barriers can depend on there being a P, even though
this rule is actually a little broader than necessary. Hence, even
though there's no danger of the race in these functions, we want to
adhere to the broader rule.

Change-Id: Ie22319c30eea37d703eb52f5c7ca5da872030b88
Reviewed-on: https://go-review.googlesource.com/8130
Run-TryBot: Austin Clements <austin@google.com>
Reviewed-by: Minux Ma <minux@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rick Hudson <rlh@golang.org>
10 years agoruntime: don't trigger write barrier in newosproc for nacl
Shenghou Ma [Tue, 24 Mar 2015 03:13:11 +0000 (23:13 -0400)]
runtime: don't trigger write barrier in newosproc for nacl

This should fix the intermittent calling write barrier with mp.p == nil
failures on the nacl/386 builder.

Change-Id: I34aef5ca75ccd2939e6a6ad3f5dacec64903074e
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/7973
Reviewed-by: Austin Clements <austin@google.com>
10 years agotime: add a thorough example for time.Format
Rob Pike [Fri, 20 Mar 2015 21:01:51 +0000 (14:01 -0700)]
time: add a thorough example for time.Format

People will still not look at it, but at least we will have a stronger defense.

Change-Id: Ieea6a3d42d06e1067e424e35b87dbcb01c9523cb
Reviewed-on: https://go-review.googlesource.com/7859
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agosyscall: change Dup,Dup2,Dup3 to use Syscall, not RawSyscall
Ian Lance Taylor [Thu, 26 Mar 2015 15:02:16 +0000 (08:02 -0700)]
syscall: change Dup,Dup2,Dup3 to use Syscall, not RawSyscall

This avoids hanging when a Go program uses a FUSE filesystem and the
dup system call has to close a file descriptor.  When dup uses
RawSyscall then the goroutine calling dup will occupy a scheduler slot
(a p structure) during the call, and may block waiting for some other
goroutine to respond to the close call on the FUSE filesystem.
Changing to Syscall avoids the problem.  This makes Dup a tiny bit
slower but is quite unlikely to make a difference for any real
programs.

Fixes #10202.

Change-Id: If6490a8f9b3c9cfed6acbfb4bfd1eaeac62ced17
Reviewed-on: https://go-review.googlesource.com/8095
Reviewed-by: Rob Pike <r@golang.org>
10 years agoruntime: use uintXX instead of *byte for si_addr on Darwin
Austin Clements [Thu, 26 Mar 2015 16:14:26 +0000 (12:14 -0400)]
runtime: use uintXX instead of *byte for si_addr on Darwin

Currently, Darwin's siginfo type uses *byte for the si_addr
field. This results in unwanted write barriers in set_sigaddr. It's
also pointless since it never points to anything real and the get/set
methods return/take uintXX and cast it from/to the pointer.

All other arches use a uint type for this field. Change Darwin to
match. This simplifies the get/set methods and eliminates the unwanted
write barriers.

Change-Id: Ifdb5646d35e1f2f6808b87a3d59745ec9718add1
Reviewed-on: https://go-review.googlesource.com/8086
Reviewed-by: Austin Clements <austin@google.com>
10 years agoruntime: remove write barrier on G in sighandler
Austin Clements [Tue, 24 Mar 2015 15:51:24 +0000 (11:51 -0400)]
runtime: remove write barrier on G in sighandler

sighandler may run during a stop-the-world without a P, so it's not
allowed to have write barriers. Fix the G write to disable the write
barrier (this is safe because the G is reachable from allgs) and mark
the function nowritebarrier.

Change-Id: I907f05d3829e24eeb15fa4d020598af36710e87e
Reviewed-on: https://go-review.googlesource.com/8020
Reviewed-by: Rick Hudson <rlh@golang.org>
10 years agosyscall: regenerate zsyscall_darwin_arm.go
Ian Lance Taylor [Wed, 25 Mar 2015 00:31:31 +0000 (17:31 -0700)]
syscall: regenerate zsyscall_darwin_arm.go

This is mostly straightforward but it does introduce an odd change to
Fchflags and adds the Mlock related functions.  These changes look
correct to me but I don't know why they weren't in the original file.

Change-Id: I1a01e075566d327a78b77e7354c9fb85b6ad1f22
Reviewed-on: https://go-review.googlesource.com/8062
Reviewed-by: Minux Ma <minux@golang.org>
Reviewed-by: David Crawshaw <crawshaw@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
10 years agoruntime, runtime/cgo: make needextram a bool
David Crawshaw [Wed, 25 Mar 2015 11:10:45 +0000 (07:10 -0400)]
runtime, runtime/cgo: make needextram a bool

Also invert it, which means it no longer needs to cross the cgo
package boundary.

Change-Id: I393cd073bda02b591a55d6bc6b8bb94970ea71cd
Reviewed-on: https://go-review.googlesource.com/8082
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: David Crawshaw <crawshaw@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

10 years agodoc/go1.5.txt: add $DOLLAR to generate
Rob Pike [Thu, 26 Mar 2015 00:29:33 +0000 (17:29 -0700)]
doc/go1.5.txt: add $DOLLAR to generate

Change-Id: I6d129ef56baa2c0c5e0b278cfa67fc22f3bf18ac
Reviewed-on: https://go-review.googlesource.com/8052
Reviewed-by: Rob Pike <r@golang.org>
10 years agocmd/go: add $DOLLAR to the predefined variables for go generate
Rob Pike [Wed, 25 Mar 2015 20:17:54 +0000 (13:17 -0700)]
cmd/go: add $DOLLAR to the predefined variables for go generate

Without some hook like this, it's impossible to get a $ into the generate
command, which is necessary if you're trying to do some shell scripting
or regular expressions.

We could use backslash escaping but that's already tricky enough
because the strings are processed as Go strings. Using $ like this
means we need no more mechanism, just a predefined variable.

We may need to revisit this but I hope we can avoid new quoting rules.

Change-Id: Ieb478c8cc767a866765282472239ed3c1e5669a8
Reviewed-on: https://go-review.googlesource.com/8091
Reviewed-by: Dave Cheney <dave@cheney.net>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agoruntime: add runtime.cmpstring and bytes.Compare
Dave Cheney [Tue, 24 Mar 2015 09:37:10 +0000 (09:37 +0000)]
runtime: add runtime.cmpstring and bytes.Compare

Update #10007

Implement runtime.cmpstring and bytes.Compare in asm for arm.

benchmark                                old ns/op     new ns/op     delta
BenchmarkCompareBytesEqual               254           91.4          -64.02%
BenchmarkCompareBytesToNil               41.5          37.6          -9.40%
BenchmarkCompareBytesEmpty               40.7          37.6          -7.62%
BenchmarkCompareBytesIdentical           255           96.3          -62.24%
BenchmarkCompareBytesSameLength          125           60.9          -51.28%
BenchmarkCompareBytesDifferentLength     133           60.9          -54.21%
BenchmarkCompareBytesBigUnaligned        17985879      5669706       -68.48%
BenchmarkCompareBytesBig                 17097634      4926798       -71.18%
BenchmarkCompareBytesBigIdentical        16861941      4389206       -73.97%

benchmark                             old MB/s     new MB/s     speedup
BenchmarkCompareBytesBigUnaligned     58.30        184.95       3.17x
BenchmarkCompareBytesBig              61.33        212.83       3.47x
BenchmarkCompareBytesBigIdentical     62.19        238.90       3.84x

This is a collaboration between Josh Bleecher Snyder and myself.

Change-Id: Ib3944b8c410d0e12135c2ba9459bfe131df48edd
Reviewed-on: https://go-review.googlesource.com/8010
Reviewed-by: Keith Randall <khr@golang.org>
10 years agoimage/internal/imageutil: inline the color.YCbCrToRGB calls.
Nigel Tao [Tue, 24 Mar 2015 00:45:29 +0000 (11:45 +1100)]
image/internal/imageutil: inline the color.YCbCrToRGB calls.

The image/draw benchmark:
benchmark          old ns/op     new ns/op     delta
BenchmarkYCbCr     1198605       978647        -18.35%

Change-Id: Iacfc21e6f641ecb05adc00b3aec0048f1f43d265
Reviewed-on: https://go-review.googlesource.com/7952
Reviewed-by: Rob Pike <r@golang.org>
10 years agomisc/ios: simplify breakpoint timeout
David Crawshaw [Wed, 25 Mar 2015 17:22:32 +0000 (13:22 -0400)]
misc/ios: simplify breakpoint timeout

The clever partial timer I added interacts badly with iOS app launch
timeout termination. A fixed timeout will be easier to debug.

Change-Id: I6eb4ee5f1431539f00fa707e8cde6f3cf86983fc
Reviewed-on: https://go-review.googlesource.com/8083
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
10 years agomisc/ios: timeout and continue waiting for getwd
David Crawshaw [Wed, 25 Mar 2015 00:52:11 +0000 (20:52 -0400)]
misc/ios: timeout and continue waiting for getwd

Split out from cl/8024 for clarity and improved approach.

Rarely, "stop reason = breakpoint" does not appear in the lldb stop
text. However the program is ready to proceed. To be a little more
robust about those cases, we wait for two seconds, and if that text
doesn't appear but a prompt does we continue and hope for the best.
Worst case, this results in a harder to read failure message.

Change-Id: Ib20aa92564cdccefd2b7260417c647cd44122b66
Reviewed-on: https://go-review.googlesource.com/8080
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
10 years agocrypto/tls: Correct minimum version in comment
Matt Bostock [Sun, 22 Feb 2015 01:14:36 +0000 (01:14 +0000)]
crypto/tls: Correct minimum version in comment

Commit 604fa4d5 made TLS 1.0 the default minimum version. This commit
amends a comment to reflect that.

This is where the default is used in the absence of an explicit version
being set:
https://github.com/golang/go/blob/edadffa2f3464c48a234f3cf2fc092a03f91824f/src/crypto/tls/common.go#L391-L393

Change-Id: I8f1117ecdddc85bb1cc76a6834026505a380b793
Reviewed-on: https://go-review.googlesource.com/5525
Reviewed-by: Mikio Hara <mikioh.mikioh@gmail.com>
Reviewed-by: Minux Ma <minux@golang.org>
Reviewed-by: Adam Langley <agl@golang.org>
10 years agoruntime: remove obsolete comment
Alex Brainman [Wed, 25 Mar 2015 01:00:54 +0000 (12:00 +1100)]
runtime: remove obsolete comment

We do not use SEH to handle Windows exception anymore.

Change-Id: I0ac807a0fed7a5b4c745454246764c524460472b
Reviewed-on: https://go-review.googlesource.com/8071
Reviewed-by: Minux Ma <minux@golang.org>
10 years agodoc/go1.5: add nacl get_random_bytes change, pepper-39+ required
Shenghou Ma [Wed, 25 Mar 2015 02:31:35 +0000 (22:31 -0400)]
doc/go1.5: add nacl get_random_bytes change, pepper-39+ required

Change-Id: Ib7374dc87fa4d4ad5854155049e511a1ff51ca97
Reviewed-on: https://go-review.googlesource.com/8081
Reviewed-by: Minux Ma <minux@golang.org>
10 years agoruntime, syscall: use the new get_random_bytes syscall for NaCl
Shenghou Ma [Thu, 18 Dec 2014 08:26:08 +0000 (03:26 -0500)]
runtime, syscall: use the new get_random_bytes syscall for NaCl

The SecureRandom named service was removed in
https://codereview.chromium.org/550523002. And the new syscall
was introduced in https://codereview.chromium.org/537543003.

Accepting this will remove the support for older version of
sel_ldr. I've confirmed that both pepper_40 and current
pepper_canary have this syscall.

After this change, we need sel_ldr from pepper_39 or above to
work.

Fixes #9261

Change-Id: I096973593aa302ade61f259a3a71ebc7c1a57913
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/1755
Reviewed-by: Russ Cox <rsc@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>

10 years agoos/exec: post-process lsof output on Android.
Hyang-Ah (Hana) Kim [Tue, 24 Mar 2015 20:42:34 +0000 (16:42 -0400)]
os/exec: post-process lsof output on Android.

lsof is used to inspect the open file desciptors in exec_test.go.
In order to limit the output of lsof to the tested process, the tests use
lsof with the -p option, but the version of lsof in android seems to ignore
it. This change adds a post-processing step to filter out irrelevant entries.

Fixes golang/go#10206.

Change-Id: Ia789b8f5e1e9b95c7b55deac92d0d1fbf3ee74fb
Reviewed-on: https://go-review.googlesource.com/8025
Reviewed-by: David Crawshaw <crawshaw@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agonet/internal/socktest: new package
Mikio Hara [Thu, 26 Feb 2015 08:52:26 +0000 (17:52 +0900)]
net/internal/socktest: new package

Package socktest provides utilities for socket testing.

This package allows test cases in the net package to simulate
complicated network conditions such as that a destination address is
resolvable/discoverable but is not routable/reachable at network layer.
Those conditions are required for testing functionality of timeout,
multiple address families.

Change-Id: Idbe32bcc3319b41b0cecac3d058014a93e13288b
Reviewed-on: https://go-review.googlesource.com/6090
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agonacltest.bash: reduce test time by using bootstrapping Go to build fstest_nacl.go
Shenghou Ma [Tue, 24 Mar 2015 06:23:22 +0000 (02:23 -0400)]
nacltest.bash: reduce test time by using bootstrapping Go to build fstest_nacl.go

One full round of make.bash is saved with this change.

Change-Id: I8ad1442e9e1255b9abe14dbfec4c903d897d6015
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/7976
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agocmd/6g: fix build for nacl/amd64p32
Shenghou Ma [Tue, 24 Mar 2015 06:07:20 +0000 (02:07 -0400)]
cmd/6g: fix build for nacl/amd64p32

Change-Id: I3de78f321c99f8f850a304f7d34c85d0fe254c0e
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/7975
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Dave Cheney <dave@cheney.net>
Reviewed-by: Rob Pike <r@golang.org>
10 years agonet/url: fix docs for URL.String
Shenghou Ma [Tue, 24 Mar 2015 04:04:42 +0000 (00:04 -0400)]
net/url: fix docs for URL.String

Fixes #10227.

Change-Id: I64d5522e76da5a717e3c4169405e5ef35d6c262e
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/7974
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agomime/quotedprintable: accept badly encoded bytes
Alexandre Cesaro [Fri, 20 Mar 2015 11:22:49 +0000 (12:22 +0100)]
mime/quotedprintable: accept badly encoded bytes

RFC 2045 says:
    An "=" followed by two hexadecimal digits, one or both
    of which are lowercase letters in "abcdef", is formally
    illegal. A robust implementation might choose to
    recognize them as the corresponding uppercase letters.

    https://tools.ietf.org/html/rfc2045#page-22

Change-Id: Ibb4b1e4b8bf4fa65ff895ba486a931d90308bf70
Reviewed-on: https://go-review.googlesource.com/7891
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agocmd/8g, cmd/internal/gc: fix GO386=387 build
Dave Cheney [Tue, 24 Mar 2015 11:16:48 +0000 (22:16 +1100)]
cmd/8g, cmd/internal/gc: fix GO386=387 build

Adjust Thearch.FREG_MIN/MAX when using non sse2 mode in 8g.

Also, gc.Use_sse is treated as a bool, so make it a bool.

Change-Id: I840411605344bb31c32f492b3e6729166c084f0c
Reviewed-on: https://go-review.googlesource.com/7993
Reviewed-by: Aram Hăvărneanu <aram@mgk.ro>
Reviewed-by: Rob Pike <r@golang.org>
Reviewed-by: Dave Cheney <dave@cheney.net>
Run-TryBot: Dave Cheney <dave@cheney.net>

10 years agomath/big: fix known bug in Float.Float64
Robert Griesemer [Tue, 24 Mar 2015 00:31:25 +0000 (17:31 -0700)]
math/big: fix known bug in Float.Float64

- handle exponent over- and underflow
- handle denormalized numbers
- added test cases

Change-Id: I1bbb9904b0c104f54696944e1f57559881f6eeeb
Reviewed-on: https://go-review.googlesource.com/7982
Reviewed-by: Alan Donovan <adonovan@google.com>
10 years agocmd/dist: add test to usage message's list of commands
Brad Fitzpatrick [Tue, 24 Mar 2015 20:16:03 +0000 (13:16 -0700)]
cmd/dist: add test to usage message's list of commands

Change-Id: Id1edbed38c94e7c1c13a0200c44edf2b9ae5f087
Reviewed-on: https://go-review.googlesource.com/8040
Reviewed-by: David Crawshaw <crawshaw@golang.org>
10 years agoruntime, syscall: fix Solaris exec tests
Aram Hăvărneanu [Tue, 24 Mar 2015 17:33:37 +0000 (18:33 +0100)]
runtime, syscall: fix Solaris exec tests

Also fixes a long-existing problem in the fork/exec path.

Change-Id: Idec40b1cee0cfb1625fe107db3eafdc0d71798f2
Reviewed-on: https://go-review.googlesource.com/8030
Reviewed-by: Minux Ma <minux@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
10 years agocmd/7g: fix linux/arm64 build
Shenghou Ma [Tue, 24 Mar 2015 06:56:07 +0000 (02:56 -0400)]
cmd/7g: fix linux/arm64 build

REGRT1 and REGRT2 are also reserved on arm64 for runtime (duffzero
and duffcopy).

Change-Id: If098527a7f29d16f94bdcec05fd55950b9076e35
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/7977
Reviewed-by: Aram Hăvărneanu <aram@mgk.ro>
Reviewed-by: Dave Cheney <dave@cheney.net>
Reviewed-by: Rob Pike <r@golang.org>
10 years agosyscall: use Getpgid to emulate Getpgrp on linux
Shenghou Ma [Tue, 24 Mar 2015 17:11:43 +0000 (13:11 -0400)]
syscall: use Getpgid to emulate Getpgrp on linux

Fixes newly introduced test on linux/arm64 because linux/arm64 doesn't
have the getpgrp syscall. Getpgid(0) is documented to be equivalent to
Getpgrp.

Change-Id: I8f30f4f8de8c32fe04a29c9c4a9330d4e4e6b46d
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/8022
Reviewed-by: Aram Hăvărneanu <aram@mgk.ro>
Reviewed-by: Rob Pike <r@golang.org>
10 years agoruntime: initialize extra M for cgo during mstart
David Crawshaw [Tue, 24 Mar 2015 13:22:35 +0000 (09:22 -0400)]
runtime: initialize extra M for cgo during mstart

Previously the extra m needed for cgo callbacks was created on the
first callback. This works for cgo, however the cgocallback mechanism
is also borrowed by badsignal which can run before any cgo calls are
made.

Now we initialize the extra M at runtime startup before any signal
handlers are registered, so badsignal cannot be called until the
extra M is ready.

Updates #10207.

Change-Id: Iddda2c80db6dc52d8b60e2b269670fbaa704c7b3
Reviewed-on: https://go-review.googlesource.com/7978
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: David Crawshaw <crawshaw@golang.org>

10 years agodoc/go1.4.html: fix typo
Shenghou Ma [Tue, 24 Mar 2015 16:58:51 +0000 (12:58 -0400)]
doc/go1.4.html: fix typo

Change-Id: I5bfeeef53665b1ef79ec0e4a6ae0eb4aa3e95603
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/8021
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
10 years agoruntime: Remove write barrier on g
Rick Hudson [Tue, 24 Mar 2015 15:18:46 +0000 (11:18 -0400)]
runtime: Remove write barrier on g

There are calls to stdcall when the GC thinks the world is stopped
and stdcall write a *g for the CPU profiler. This produces a write
barrier but the GC is not prepared to deal with write barriers when
it thinks the world is stopped. Since the g is on allg it does not
need a write barrier to keep it alive so eliminate the write barrier.

Change-Id: I937633409a66553d7d292d87d7d58caba1fad0b6
Reviewed-on: https://go-review.googlesource.com/7979
Reviewed-by: Austin Clements <austin@google.com>
Run-TryBot: Rick Hudson <rlh@golang.org>

10 years agoruntime: add TestCgoDLLImports
Alex Brainman [Mon, 16 Mar 2015 04:46:22 +0000 (15:46 +1100)]
runtime: add TestCgoDLLImports

The test is a simple reproduction of issue 9356.

Update #8948.
Update #9356.

Change-Id: Ia77bc36d12ed0c3c4a8b1214cade8be181c9ad55
Reviewed-on: https://go-review.googlesource.com/7618
Reviewed-by: Minux Ma <minux@golang.org>
10 years agodoc/go1.5: mention external linking support for windows
Shenghou Ma [Sat, 14 Mar 2015 02:36:51 +0000 (22:36 -0400)]
doc/go1.5: mention external linking support for windows

Change-Id: I2d2ea233f976aab3f356f9b508cdd246d5013e33
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/7537

10 years agocmd/go: update PE header magic for files generated by GNU ld
Shenghou Ma [Sat, 14 Mar 2015 02:12:59 +0000 (22:12 -0400)]
cmd/go: update PE header magic for files generated by GNU ld

Change-Id: I2d2ea233f976aab3f356f9b508cdd246d5013e32
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/7536
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agocmd/dist: enable external linking test for windows/amd64
Shenghou Ma [Sat, 14 Mar 2015 02:12:09 +0000 (22:12 -0400)]
cmd/dist: enable external linking test for windows/amd64

Fixes #4069.

Change-Id: I2d2ea233f976aab3f356f9b508cdd246d5013e31
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/7535
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
10 years agocmd/internal/ld, cmd/6l: external linking for windows/amd64
Shenghou Ma [Sat, 14 Mar 2015 02:10:48 +0000 (22:10 -0400)]
cmd/internal/ld, cmd/6l: external linking for windows/amd64

Change-Id: I2d2ea233f976aab3f356f9b508cdd246d5013e30
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/7534
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agocmd/dist: enable external linking test for windows/386
Shenghou Ma [Tue, 10 Mar 2015 08:11:30 +0000 (04:11 -0400)]
cmd/dist: enable external linking test for windows/386

Signed-off-by: Shenghou Ma <minux@golang.org>
Change-Id: I2d2ea233f976aab3f356f9b508cdd246d5013e2f
Reviewed-on: https://go-review.googlesource.com/7284
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
10 years agocmd/internal/ld, cmd/8l: external linking for windows/386
Shenghou Ma [Mon, 9 Mar 2015 07:05:40 +0000 (03:05 -0400)]
cmd/internal/ld, cmd/8l: external linking for windows/386

Update #4069: this CL fixes the issue on windows/386.

Signed-off-by: Shenghou Ma <minux@golang.org>
Change-Id: I2d2ea233f976aab3f356f9b508cdd246d5013e2e
Reviewed-on: https://go-review.googlesource.com/7283
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agoruntime: use _main instead of main on windows/386
Shenghou Ma [Tue, 10 Mar 2015 07:26:37 +0000 (03:26 -0400)]
runtime: use _main instead of main on windows/386

windows/386 also wants underscore prefix for external names.
This CL is in preparation of external linking support.

Change-Id: I2d2ea233f976aab3f356f9b508cdd246d5013e2d
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/7282
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
10 years agocmd/internal/ld, runtime: record argument size for cgo_dynimport stdcall syscalls
Shenghou Ma [Mon, 9 Mar 2015 03:04:48 +0000 (23:04 -0400)]
cmd/internal/ld, runtime: record argument size for cgo_dynimport stdcall syscalls

When external linking, we must link to implib provided by mingw, so we must use
properly decorated names for stdcalls.

Because the feature is only used in the runtime, I've designed a new decoration
scheme so that we can use the same decorated name for both 386 and amd64.

A stdcall function named FooEx from bar16.dll which takes 3 parameters will be
imported like this:
//go:cgo_import_dynamic runtime._FooEx FooEx%3 "bar16.dll"
Depending on the size of uintptr, the linker will later transform it to _FooEx@12
or _FooEx@24.

This is in prepration for the next CL that adds external linking support for
windows/386.

Change-Id: I2d2ea233f976aab3f356f9b508cdd246d5013e2c
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/7163
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
10 years agoos/signal: skip TestCtrlBreak on windows/386 temporarily
Shenghou Ma [Tue, 24 Mar 2015 00:41:35 +0000 (20:41 -0400)]
os/signal: skip TestCtrlBreak on windows/386 temporarily

Update #10215.

Change-Id: Ib588f90279a4ef5461492553d50ad77c742b3560
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/7971
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>