This exercises the Import function but more importantly
gives us a place to write down the policy for dependencies
within the Go tree. It also forces us to look at the dependencies,
which may lead to adjustments.
Surprises:
- go/doc imports text/template, for HTMLEscape (could fix)
- it is impossible to use math/big without fmt (unfixable)
- it is impossible to use crypto/rand without math/big (unfixable)
R=golang-dev, bradfitz, gri, r
CC=golang-dev
https://golang.org/cl/5732062
In the test, verify the copied constants are correct.
Also put the test into package utf16 rather than utf16_test;
the old location was probably due creating the test from
utf8, but the separation is not needed here.
R=golang-dev, bradfitz, rsc, rsc, r
CC=golang-dev
https://golang.org/cl/5752047
Also, tweak run.go to use no more than 2x the
number of CPUs, and only one on ARM.
53.85u 13.33s 53.69r ./run
50.68u 12.13s 18.85r go run run.go
Fixes#2833.
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5754047
* Splits into three server tests.
- TestStreamConnServer for tcp, tcp4, tcp6 and unix networks
- TestSeqpacketConnServer for unixpacket networks
- TestDatagramPacketConnServer for udp, udp4, udp6 and unixgram networks
* Adds both PacketConn and Conn test clients to datagram packet conn tests.
* Fixes wildcard listen test cases on dual IP stack platform.
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5701066
As runtime.UintType is no longer defined, the gccgo error
messages have changed.
bug388.go:12:10: error: reference to undefined identifier ‘runtime.UintType’
bug388.go:12:10: error: invalid named/anonymous mix
bug388.go:13:21: error: reference to undefined identifier ‘runtime.UintType’
bug388.go:17:10: error: reference to undefined identifier ‘runtime.UintType’
bug388.go:18:18: error: reference to undefined identifier ‘runtime.UintType’
bug388.go:22:9: error: non-name on left side of ‘:=’
bug388.go:27:10: error: expected type
bug388.go:32:9: error: expected type
bug388.go:23:14: error: reference to field ‘i’ in object which has no fields or methods
R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/5755044
The dependency was there only to pull in two constants.
Now we define them locally and verify equality in the test.
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5754046
go.xclangspec is identical to the one in misc/xcode/3/, except for the heading.
Partial workaround for issue 2401.
R=gri
CC=golang-dev
https://golang.org/cl/5732051
GOROOT_FINAL is a build parameter that means "eventually
the Go tree will be installed here". Make the file name information
match that eventual location.
Fixes#3180.
R=ken, ken
CC=golang-dev
https://golang.org/cl/5742043
If I click on links which should send you to source code (e.g. type, function, etc),
the link is to //src/... (instead of /src/...).
This causes a DNS resolution failure on the browser.
Quick fix is to remove the leading / from package.html
(since godoc.go src links automatically add a leading / as necessary).
Fixes#3193.
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5730059
CL 3075041 says ARM is not little-endian, but my test suggests otherwise.
My test program is:
package main
import ("fmt"; "syscall"; "os")
func main() {
err := syscall.Fallocate(1, 1/*FALLOC_FL_KEEP_SIZE*/, 0, int64(40960));
fmt.Fprintln(os.Stderr, err)
}
Without this CL, ./test > testfile will show: file too large; and strace shows:
fallocate(1, 01, 0, 175921860444160) = -1 EFBIG (File too large)
With this CL, ./test > testfile will show: <nil>; and strace shows:
fallocate(1, 01, 0, 40960) = 0
Quoting rsc:
"[It turns out that] ARM syscall ABI requires 64-bit arguments to use an
(even, odd) register pair, not an (odd, even) pair. Switching to "big-endian"
worked because it ended up using the high 32-bits (always zero in the tests
we had) as the padding word, because the 64-bit argument was the last one,
and because we fill in zeros for the rest of the system call arguments, up to
six. So it happened to work."
I updated mksyscall_linux.pl to accommodate the register pair ABI requirement,
and removed all hand-tweaked syscall routines in favor of the auto-generated
ones. These including: Ftruncate, Truncate, Pread and Pwrite.
Some recent Linux/ARM distributions do not bundle kernel asm headers,
so instead we always get latest asm/unistd.h from git.kernel.org (just like
what we do for FreeBSD).
R=ken, r, rsc, r, dave, iant
CC=golang-dev
https://golang.org/cl/5726051
An X.509 path length constrains the number of certificate that may
follow in the chain. This is a little simplistic for a first pass as it
doesn't check self-signed certificates (which don't count towards the
length), but it's conservatively simplistic.
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5727057
asn1 didn't have an omitempty tag, so the list of additional primes in
an RSA private key was serialised as an empty SEQUENCE, even for
version 1 structures. This tripped up external code that didn't handle
v2.
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5729062
UTCTime only has a two digit date field and year values from 50 should
be 1950, not 2050.
R=golang-dev, r, rsc
CC=golang-dev
https://golang.org/cl/5729063
This CL changes the behavior of Dial and Listen API family.
Previous Dial and Listen allow a combo of "tcp6" and IPv4 or IPv6
IPv4-mapped address as its argument, but it also makes slightly
different behaviors between Linux and other platforms. This CL fixes
such differences across over platforms by tweaking IP-level socket
option IPV6_V6ONLY. Consequently new Dial and Listen API family will
reject arguments consists of "tcp6" and IPv4 or IPv6 IPv4-mapped
address.
This CL also adds a bit clarified unicast listener tests.
Fixes#2581.
R=rsc, minux.ma
CC=golang-dev
https://golang.org/cl/5677086
The motivation for this CL is to support $GOPATH well.
Since we already have a FileSystem interface, implement a
Plan 9-style name space. Bind each of the $GOPATH src
directories onto the $GOROOT src/pkg directory: now
everything is laid out exactly like a normal $GOROOT and
needs very little special case code.
The filter files are no longer used (by us), so I think they
can just be deleted. Similarly, the Mapping code and the
FileSystem interface were two different ways to accomplish
the same end, so delete the Mapping code.
Within the implementation, since FileSystem is defined to be
slash-separated, use package path consistently, leaving
path/filepath only for manipulating operating system paths.
I kept the -path flag, but I think it can be deleted too.
Fixes#2234.
Fixes#3046.
R=gri, r, r, rsc
CC=golang-dev
https://golang.org/cl/5711058
The current package comment doesn't mention varints and
protocol buffers. Also, the first sentence is incomprehensible
without further context as "fixed-size values" is undefined.
R=rsc
CC=golang-dev
https://golang.org/cl/5715048