Anthony Martin [Thu, 2 Feb 2012 22:02:54 +0000 (14:02 -0800)]
gc: describe debugging flags
The change to -m is the only one necessary
to close the issue. The others are useful
to know about when debugging but shouldn't
be in the usage message since they may go
away or change at any time.
Damian Gryski [Thu, 2 Feb 2012 19:09:27 +0000 (14:09 -0500)]
runtime: add runtime.cputicks() and seed fastrand with it
This patch adds a function to get the current cpu ticks. This is
deemed to be 'sufficiently random' to use to seed fastrand to mitigate
the algorithmic complexity attacks on the hash table implementation.
On AMD64 we use the RDTSC instruction. For 386, this instruction,
while valid, is not recognized by 8a so I've inserted the opcode by
hand. For ARM, this routine is currently stubbed to return a constant
0 value.
Marcel van Lohuizen [Thu, 2 Feb 2012 12:55:53 +0000 (13:55 +0100)]
exp/norm: a few minor changes in prepration for a table format change:
- Unified bounary conditions for NFC and NFD and removed some indirections.
This enforces boundaries at the character level, which is typically what
the user expects. (NFD allows a boundary between 'a' and '`', for example,
which may give unexpected results for collation. The current implementation
is already stricter than the standard, so nothing much changes. This change
just formalizes it.
- Moved methods of qcflags to runeInfo.
- Swapped YesC and YesMaybe bits in qcFlags. This is to aid future changes.
- runeInfo return values use named fields in preperation for struct change.
- Replaced some left-over uint32s with rune.
Ian Lance Taylor [Thu, 2 Feb 2012 00:37:02 +0000 (16:37 -0800)]
os/exec: make sure file is not closed early in leaked fd test
Without this change, fd3 can be collected by the garbage
collector and finalized, which causes the file descriptor to
be closed, which causes the call to os.Open to return 3 rather
than the expected descriptor number.
Robert Griesemer [Wed, 1 Feb 2012 19:43:40 +0000 (11:43 -0800)]
mat/big: add raw access to Int bits
This is a minimal API extension, it makes it possible
to implement missing Int functionality externally w/o
compromising efficiency. It is the hope that this will
reduce the number of feature requests going directly
into the big package.
Also: Fixed some naming inconsistencies: The receiver
is only called z when it is also the result.
Anthony Martin [Wed, 1 Feb 2012 02:15:42 +0000 (18:15 -0800)]
gc: use octal escapes in mkopnames
Plan 9's tr(1) doesn't accept the C-style escapes
for tab and newline characters. I was going to use
the \xFF hexadecimal escapes but GNU tr(1) doesn't
accept those. It seems octal is the least common
denominator.
Anthony Martin [Wed, 1 Feb 2012 02:14:44 +0000 (18:14 -0800)]
build: add include files for Plan 9
Previously, I had made available a tarball of
the modified system headers that were necessary
to build on Plan 9 but that was only a stopgap.
I think this method is much better since no
files outside of $GOROOT will have to be added
or modified during the build process.
Also, this is just the first step. I'll change
the build to reference these files in another CL
(that also contains a few more Makefile changes).
Russ Cox [Tue, 31 Jan 2012 23:44:20 +0000 (18:44 -0500)]
cmd/go: improvements
Print all the syntax errors. Fixes issue 2811.
Change Windows binary removal strategy.
This should keep the temporary files closer to
the binaries they are for, which will make it
more likely that the rename is not cross-device
and also make it easier to clean them up.
Fixes #2604 (as much as we can).
The standard build does not use the go command
to install the go command anymore, so issue 2604
is less of a concern than it originally was.
(It uses the go_bootstrap command to install
the go command.)
Buffer 'go list' output.
R=golang-dev, bradfitz, r
CC=golang-dev
https://golang.org/cl/5604048
Russ Cox [Tue, 31 Jan 2012 22:40:36 +0000 (17:40 -0500)]
cmd/go: improvements
Do not treat $GOROOT/src/pkg, $GOROOT/src/cmd,
$GOPATH/src as package directories (only subdirectories
of those can be package directories). Fixes issue 2602.
Accept additional compiler and linker arguments during
cgo from $CGO_CFLAGS and $CGO_LDFLAGS, as the
Makefiles used to do.
Show failed pkg-config output. Fixes issue 2785.
Use different (perhaps better) git commands. Fixes issue 2109.
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5605045
Russ Cox [Tue, 31 Jan 2012 20:08:20 +0000 (15:08 -0500)]
cmd/go: improvements
Print build errors to stderr during 'go run'.
Stream test output during 'go test' (no args). Fixes issue 2731.
Add go test -i to install test dependencies. Fixes issue 2685.
Fix data race in exitStatus. Fixes issue 2709.
Fix tool paths. Fixes issue 2817.
R=golang-dev, bradfitz, n13m3y3r, r
CC=golang-dev
https://golang.org/cl/5591045
Robert Griesemer [Tue, 31 Jan 2012 17:48:10 +0000 (09:48 -0800)]
go/doc: enable AllMethods flag (and fix logic)
- enable AllMethods flag (default: not set)
- fix logic determining which methods to show
- added respective test case in testdata/e.go for AllMethods = false
- added test case set for AllMethods = true
The critical changes/files to look at are:
- testdata/e{0,1,2}.golden: T4.M should only show up as method of T5 in e2.golden
- reader.go: always include top-level methods, and negate former logic for embedded methods
(rewrote as a switch for better comprehensability)
Brad Fitzpatrick [Tue, 31 Jan 2012 17:45:13 +0000 (09:45 -0800)]
net/http: close client fd sooner on response read error
This fixes some test noise in TestStressSurpriseServerCloses when
ulimit -n something low, like 256 on a Mac.
Previously, when the server closed on us and we were expecting more
responses (like we are in that test), we'd read an "Unexpected EOF"
and just forget about the client's net.Conn. Now it's closed,
rather than waiting on the finalizer to release the fd.
Adam Langley [Tue, 31 Jan 2012 17:27:42 +0000 (12:27 -0500)]
crypto/elliptic: p224Contract could produce a non-minimal representation.
I missed an overflow in contract because I suspected that the prime
elimination would take care of it. It didn't, and I forgot to get back
to the overflow. Because of this, p224Contract may have produced a
non-minimal representation, causing flakey failures ~0.02% of the
time.
Mikio Hara [Tue, 31 Jan 2012 16:53:26 +0000 (01:53 +0900)]
net: ListenMulticastUDP to listen concurrently across multiple listeners
This CL introduces new function ListenMulticastUDP to fix
multicast UDP listening across multiple listeners issue,
to replace old multicast methods JoinGroup and LeaveGroup
on UDPConn.
This CL also enables multicast testing by default.
Adam Langley [Tue, 31 Jan 2012 16:22:47 +0000 (11:22 -0500)]
crypto/tls: better error message when connecting to SSLv3 servers.
We support SSLv3 as a server but not as a client (and we don't want to
support it as a client). This change fixes the error message when
connecting to an SSLv3 server since SSLv3 support on the server side
made mutualVersion accept SSLv3.
Shenghou Ma [Tue, 31 Jan 2012 15:59:29 +0000 (10:59 -0500)]
5l: make -v option output less nonessential clutter
5l -v is for benchmarking various parts of the loader, but this code in
obj.c will clutter the output. I only comment them out, because this is
on par with 8l/6l.
Ian Lance Taylor [Tue, 31 Jan 2012 05:39:38 +0000 (21:39 -0800)]
test: float to integer test case
gccgo currently fails this test:
fixedbugs/bug402.go:12:9: error: floating point constant truncated to integer
fixedbugs/bug402.go:13:8: error: floating point constant truncated to integer
Damian Gryski [Tue, 31 Jan 2012 05:37:03 +0000 (00:37 -0500)]
runtime: use per-map hash seeds
This patch adds a hash seed to the Hmap struct. Each seed is
initialized by runtime.fastrand1(). This is the first step of a
solution to issue 2630. Fastrand1 still needs to be updated to provide
us with actually random bits.
Russ Cox [Tue, 31 Jan 2012 04:42:41 +0000 (23:42 -0500)]
go: improvements
Add 'go clean'.
Make 'go build' write to pkgname, not a.out.
Make 'go test -c' write to pkgname.test, not test.out.
Make 'go install' write alternate binaries to .../bin/goos_goarch/.
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5600048
Anthony Martin [Tue, 31 Jan 2012 03:25:40 +0000 (19:25 -0800)]
runtime: fix mkasmh.h
We weren't properly deleting the various header
files (that were temporarily renamed) if a $CC
for the current $GOARCH didn't exist. And since
the compiler checks the current directory for
headers before any -I arguments, this had the
unfortunate side effect of including the last
generated headers instead of the correct ones.
Rob Pike [Mon, 30 Jan 2012 22:46:31 +0000 (14:46 -0800)]
go: move compilers into the go-tool directory
Also delete gotest, since it's messy to fix and slated for deletion anyway.
A couple of things outside src can't be tested any more. "go test" will be
fixed and these tests will be re-enabled. They're noisy for now.