- 28 Feb, 2013 27 commits
-
-
Akshat Kumar authored
The Name field of the stat structure is variable length and the marshalling code in package syscall requires a buf long enough to contain the Name as well as the static data. This change makes sure that the buffer in os.Rename is allocated with the appropriate length. R=rsc, rminnich, ality, r CC=golang-dev https://golang.org/cl/7453044
-
Russ Cox authored
There are some function pointers declared by 6c in package runtime without initialization and then also declared in package runtime/cgo with initialization, so that if runtime/cgo is linked in, the function pointers are non-nil, and otherwise they are nil. We depend on this property for implementing non-essential cgo hooks in package runtime. The declarations in package runtime are 6c-compiled and end up in .6 files. The declarations in package runtime/cgo are gcc-compiled and end up in .o files. Since 6l links the .6 and .o files together, this all works. However, when we switch to "external linking" mode, 6l will not see the .o files, and it would be up to the host linker to resolve the two into a single initialized symbol. Not all host linkers will do this (in particular OS X gcc will not). To fix this, move the cgo declarations into 6c-compiled code, so that they end up in .6 files, so that 6l gets them no matter what. R=golang-dev CC=golang-dev https://golang.org/cl/7440045
-
Rob Pike authored
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/7439046
-
Russ Cox authored
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/7423046
-
Russ Cox authored
The naming in this package is a disaster. Make it all consistent. Remove some 'static' from functions that will be referred to from other files soon. This CL is purely renames using global search and replace. Submitting separately so that real changes will not be drowned out by these renames in future CLs. TBR=iant CC=golang-dev https://golang.org/cl/7416046
-
Russ Cox authored
runtime: double-check that symbol table is sorted If the symbol table is unsorted, the binary search in findfunc will not find its func, which will make stack traces stop early. When the garbage collector starts using the stack tracer, that would be a serious problem. The unsorted symbol addresses came from from two things: 1. The symbols in an ELF object are not necessarily sorted, so sort them before adding them to the symbol list. 2. The __i686.get_pc_thunk.bx symbol is present in multiple object files and was having its address adjusted multiple times, producing an incorrect address in the symbol table. R=golang-dev, iant CC=golang-dev https://golang.org/cl/7440044
-
Rob Pike authored
R=golang-dev, iant CC=golang-dev https://golang.org/cl/7413045
-
Rob Pike authored
Also add a report about "invalid type" from gotype, if -v is set. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/7420045
-
Robin Eklind authored
R=golang-dev, r CC=golang-dev https://golang.org/cl/7431046
-
Russ Cox authored
This is the plan for how to make host linking work with the rest of the system. There are two complications: 1. It is a goal to preserve the property that pure Go programs (even ones importing "net") can be compiled without needing gcc, so that a Go toolchain download works out of the box. This forces the support for two linking modes: with and without gcc. 2. It is a goal to allow users with old copies of SWIG to continue to use those copies. This forces the support for "internal only" packages. Perhaps it is reasonable to require a new SWIG. I don't know. R=iant CC=golang-dev https://golang.org/cl/7433043
-
Matt Brown authored
This reveals the presence of control and non-printable characters in the errors returned by the Parse functions. Also add unit tests for NumError. R=golang-dev, r, rsc CC=golang-dev https://golang.org/cl/7393075
-
Rob Pike authored
R=golang-dev, rsc CC=golang-dev https://golang.org/cl/7444045
-
John Graham-Cumming authored
The test suite for ReadResponse was not checking the error return on the io.Copy on the body. This was masking two errors: the handling of chunked responses to HEAD requests and the handling of Content-Length > 0 to HEAD. The former manifested itself as an 'unexpected EOF' when doing the io.Copy because a chunked reader was assigned but there were no chunks to read. The latter cause (*http.Response).Write to report an error on HEAD requests because it saw a Content-Length > 0 and expected a body. There was also a missing \r\n in one chunked test that meant that the chunked encoding was malformed. This does not appear to have been intentional. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/7407046
-
Shenghou Ma authored
also move a cgo-depend test to appropriate source file in runtime. R=golang-dev, dave, adg, rsc CC=golang-dev https://golang.org/cl/7393063
-
Rémy Oudompheng authored
Fixes #4769. R=golang-dev, dave, adg, bradfitz CC=fullung, golang-dev https://golang.org/cl/7322089
-
Rémy Oudompheng authored
Revision 6a88e1893941 corrupts the argument to racefuncenter by pushing the data block pointer to the stack. Fixes #4885. R=dvyukov, rsc CC=golang-dev https://golang.org/cl/7381053
-
Akshat Kumar authored
Ignore problematic tests and un-ignore one we can now pass. R=rsc, rminnich, ality, dave, bradfitz CC=golang-dev https://golang.org/cl/7396060
-
Mikio Hara authored
This CL reduces unnecessary network facility lookups introduced by recent changes below. changeset: 15798:53a4da6a4f4a net: return correct point-to-point interface address on linux changeset: 15799:a81ef8e0cc05 net: set up IPv6 scoped addressing zone for network facilities Also adds a test case for issue 4839. Benchmark results on linux/amd64, virtual machine: benchmark old ns/op new ns/op delta BenchmarkInterfaces-2 80487 80382 -0.13% BenchmarkInterfaceByIndex-2 72013 71391 -0.86% BenchmarkInterfaceByName-2 79865 80101 +0.30% BenchmarkInterfaceAddrs-2 42071 829677 +1872.09% BenchmarkInterfacesAndAddrs-2 35016 607622 +1635.27% BenchmarkInterfacesAndMulticastAddrs-2 169849 169082 -0.45% old: 15797:9c3930413c1b, new: tip Benchmark results on linux/amd64, virtual machine: benchmark old ns/op new ns/op delta BenchmarkInterfaces-2 80487 81459 +1.21% BenchmarkInterfaceByIndex-2 72013 71512 -0.70% BenchmarkInterfaceByName-2 79865 80567 +0.88% BenchmarkInterfaceAddrs-2 42071 120108 +185.49% BenchmarkInterfacesAndAddrs-2 35016 33259 -5.02% BenchmarkInterfacesAndMulticastAddrs-2 169849 82391 -51.49% old: 15797:9c3930413c1b, new: tip+CL7400055 Benchmark results on darwin/amd64: benchmark old ns/op new ns/op delta BenchmarkInterfaces-2 34402 34231 -0.50% BenchmarkInterfaceByIndex-2 13192 12956 -1.79% BenchmarkInterfaceByName-2 34791 34388 -1.16% BenchmarkInterfaceAddrs-2 36565 63906 +74.77% BenchmarkInterfacesAndAddrs-2 17497 31068 +77.56% BenchmarkInterfacesAndMulticastAddrs-2 25276 66711 +163.93% old: 15797:9c3930413c1b, new: tip Benchmark results on darwin/amd64: benchmark old ns/op new ns/op delta BenchmarkInterfaces-2 34402 31854 -7.41% BenchmarkInterfaceByIndex-2 13192 12950 -1.83% BenchmarkInterfaceByName-2 34791 31926 -8.23% BenchmarkInterfaceAddrs-2 36565 42144 +15.26% BenchmarkInterfacesAndAddrs-2 17497 17329 -0.96% BenchmarkInterfacesAndMulticastAddrs-2 25276 24870 -1.61% old: 15797:9c3930413c1b, new: tip+CL7400055 Update #4234. Fixes #4839 (again). Fixes #4866. R=golang-dev, fullung CC=golang-dev https://golang.org/cl/7400055
-
Akshat Kumar authored
syscall: Use NewError for all system errors and introduce some new errors for compatibility with other packages and proper error handling in net. Also introduce Temporary and Timeout methods on ErrorString. net: Make errors from dial, accept, listen functions follow the OpError standard and discern whether the underlying error came from syscall. Since Plan 9 uses a correspondence between file and network operations, all system error reporting happens through the underlying file operation. In Go code, we go through package os for file operations, so there is another level of indirection in error types. This change allows us to compare the errors with those in package syscall, when appropriate. os: Just use the error string already present in package os, instead of calling out to package syscall. R=rsc, ality, rminnich, bradfitz CC=golang-dev https://golang.org/cl/7398054
-
Akshat Kumar authored
Map order is non-deterministic. Introduce a new environment string array that tracks the env map. This allows us to produce identical results for Environ() upon successive calls, as expected by the TestConsistentEnviron test in package os. R=rsc, ality, rminnich, bradfitz, r CC=golang-dev https://golang.org/cl/7411047
-
Tyler Bunnell authored
The installer package will now detect a previous installation and warn the user that the previous installation will be deleted. If the user continues, the installer will delete the previous installation and install the package as usual. Fixes #4293. R=adg CC=golang-dev https://golang.org/cl/7427044
-
Andrew Gerrand authored
Generated by addca. R=gobot CC=golang-dev https://golang.org/cl/7432043
-
Russ Cox authored
R=golang-dev, r, bradfitz, iant CC=golang-dev https://golang.org/cl/7407050
-
Nigel Tao authored
It's not a big deal, but it's easy to fix. R=dsymonds CC=dr.volker.dobler, golang-dev https://golang.org/cl/7425043
-
Volker Dobler authored
New tests added for port handling and IDNA domains. A new test case contains several redundant tests but provides a nice documentation of the implemented rules for domain handling. R=nigeltao CC=golang-dev https://golang.org/cl/7393070
-
Gustavo Niemeyer authored
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/7230059
-
Rob Pike authored
Fixes #4873. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/7421043
-
- 27 Feb, 2013 13 commits
-
-
Brad Fitzpatrick authored
Update #4842 R=golang-dev, r CC=golang-dev https://golang.org/cl/7369060
-
Rob Pike authored
Also delete bogus tests for f.pkg (does the file have a package) since all files have a package attached. The tests for pkg.types and pkg.values suffice. R=golang-dev, adg CC=golang-dev https://golang.org/cl/7418043
-
Andrew Gerrand authored
These are superseded by the tool at misc/dist. R=golang-dev, r CC=golang-dev https://golang.org/cl/7420044
-
Robert Griesemer authored
R=r CC=golang-dev https://golang.org/cl/7375060
-
Brad Fitzpatrick authored
Permits all sorts of custom HTTP timeout policies without adding a new Transport timeout Duration for each combination of HTTP phases. This keeps track internally of which TCP connection a given Request is on, and lets callers forcefully close the TCP connection for a given request, without actually getting the net.Conn directly. Additionally, a future CL will implement res.Body.Close (Issue 3672) in terms of this. Update #3362 Update #3672 R=golang-dev, rsc, adg CC=golang-dev https://golang.org/cl/7372054
-
Brad Fitzpatrick authored
R=golang-dev, adg CC=golang-dev https://golang.org/cl/7420043
-
Rob Pike authored
Fixes #4897. R=golang-dev, adg CC=golang-dev https://golang.org/cl/7377061
-
Robert Griesemer authored
R=adonovan CC=golang-dev https://golang.org/cl/7369059
-
Alan Donovan authored
Use portable ReadDirent, not linux Getdents. R=gri TBR=gri CC=golang-dev https://golang.org/cl/7405051
-
Alan Donovan authored
ssadump: - permit naming a package (not just *.go files) on command line. - set BuildSerially flag when setting Log* flags (Q. should instead the logging functions take a lock?) Builder: - fixed bug when calling variadic function with zero '...'-params. Added regression test. interp: - more external functions: the 'error' interface bytes.{Equal,IndexByte} reflect.(Value).{Bool,NumOut,Out} syscall.{Close,Fstat,Read,Open,Stat,Lstat,Fstat, Getdents,ParseDirents,Getwd} - permit comparisons between *Function and *closure. With this CL, ssadump can now interpret ssadump itself (!), loading, parsing, typing, SSA-building, and running println("Hello, World!"). While a fmt-based equivalent still lacks some external routines, e.g. math/big, I think there are diminishing returns in expanding the interpreter (and debugging it is starting to feel like "Inception"). I'm pretty confident this package is now good enough for wider use. R=gri CC=golang-dev https://golang.org/cl/7392053
-
Brad Fitzpatrick authored
R=golang-dev, iant CC=golang-dev https://golang.org/cl/7392054
-
Brad Fitzpatrick authored
Add DialOpt. So we have: func Dial(net, addr string) (Conn, error) func DialTimeout(net, addr string, timeout time.Duration) (Conn, error) func DialOpt(addr string, opts ...DialOption) (Conn, error) DialTimeout (and Dial) are regrettable in retrospect. Maybe in a future Go we'll be back down to one Dial, with DialOpt becoming Dial. DialOpt looks like: c, err := net.DialOpt("google.com:80") // tcp is default c, err := net.DialOpt("google.com:80", net.Timeout(30 * time.Second)) c, err := net.DialOpt("google.com:80", net.TCPFastOpen()) c, err := net.DialOpt("google.com:80", net.LocalAddr(..)) c, err := net.DialOpt("google.com:53", net.Network("udp6")) And then: (clustered in godoc) type DialOption interface { /* private only */ } func Deadline(time.Time) DialOption func LocalAddr(Addr) DialOption func Network(string) DialOption func TCPFastOpen() DialOption func Timeout(time.Duration) DialOption I'm pretty confident we could add Happy Eyeballs to this too. Fixes #3097 Update #3610 Update #4842 R=golang-dev, r, dave, minux.ma, rsc CC=golang-dev https://golang.org/cl/7365049
-
Dmitriy Vyukov authored
add per-P cache of dead G's add global runnable queue (not used for now) add list of idle P's (not used for now) R=golang-dev, rsc CC=golang-dev https://golang.org/cl/7397061
-