- 26 Feb, 2013 3 commits
-
-
Rob Pike authored
Also restores the checking of _test.go files, which disappeared as a result of the package-at-a-time change. Fixes #4895. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/7399051
-
Akshat Kumar authored
Functions for representing network connections as files and vice versa, on Plan 9. Representing network connections as files is not so straight-forward, because a network connection on Plan 9 is represented by a host of files rather than a single file descriptor (as is the case on UNIX). We use the type system to distinguish between listeners and connections, returning the control file in the former case and the data file in the latter case. R=rsc, rminnich, ality, akumar, bradfitz CC=golang-dev https://golang.org/cl/7235068
-
Rob Pike authored
Then mark them with a build tag so they're not compiled into the binary. They are called test_*.go rather than *_test.go because they are not for go test. Use make test to test the command. R=golang-dev, adg CC=golang-dev https://golang.org/cl/7377052
-
- 25 Feb, 2013 22 commits
-
-
Rémy Oudompheng authored
Fixes #4781. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/7365056
-
Rémy Oudompheng authored
Composite literals using the &T{} form were incorrectly exported, leading to weird errors at import time. Fixes #4879. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/7395054
-
Rémy Oudompheng authored
This avoids an allocation when closures are used as "macros", in Walk idioms, or as argument to defer. benchmark old ns/op new ns/op delta BenchmarkSearchWrappers 1171 354 -69.77% BenchmarkCallClosure 3 3 -12.54% BenchmarkCallClosure1 119 7 -93.95% BenchmarkCallClosure2 183 74 -59.18% BenchmarkCallClosure3 187 75 -59.57% BenchmarkCallClosure4 187 76 -58.98% Compared to Go 1: benchmark old ns/op new ns/op delta BenchmarkSearchWrappers 3208 354 -88.97% Fixes #3520. R=daniel.morsing, bradfitz, minux.ma, dave, rsc CC=golang-dev https://golang.org/cl/7397056
-
Shenghou Ma authored
Fixes #4858. R=golang-dev, bradfitz, r, rsc CC=golang-dev https://golang.org/cl/7387044
-
Andrew Gerrand authored
Fixes #4903. R=golang-dev, daniel.morsing, dave, r CC=golang-dev https://golang.org/cl/7388056
-
Andrew Gerrand authored
Fixes #4810. R=golang-dev, r CC=golang-dev https://golang.org/cl/7401050
-
Shenghou Ma authored
Fixes #3747. Update #4912 This CL adds gotype into .5 object file. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/7376054
-
Akshat Kumar authored
Syscalls return `-1' on error and the representation is always 32-bits. The `$-1' literal in 64-bit assembly is always the 64-bit representation. So this change makes sure that we always do a 32-bit comparison when checking for error. Also makes sure that in the error case, we return a 64-bit `-1' from runtime.seek. Fixes the arithmetic for handling the error-string in runtime.Syscall6. R=golang-dev, rminnich, rsc, ality, minux.ma CC=golang-dev https://golang.org/cl/7399052
-
Dmitriy Vyukov authored
sigprocmask() is process-wide on darwin, so two concurrent libcgo_sys_thread_start() can result in all signals permanently blocked, which in particular blocks handling of nil derefs. Fixes #4833. R=golang-dev, dave, rsc CC=golang-dev https://golang.org/cl/7324058
-
Andrew Gerrand authored
R=golang-dev, r CC=golang-dev https://golang.org/cl/7372048
-
Brad Fitzpatrick authored
Don't reference the non-portable syscall.Signal(0). Maybe they'll pass too. Untested. plan9 bit from Akshat Kumar. R=golang-dev, akumar CC=golang-dev https://golang.org/cl/7370049
-
Russ Cox authored
Now that the type information is in TYPE instructions that are not rewritten by the optimization passes, we don't have to try to preserve the type information (no longer) attached to MOV instructions. R=ken2 CC=golang-dev https://golang.org/cl/7402054
-
Jan Ziak authored
This changeset adds a mostly-precise garbage collection of channels. The garbage collection support code in the linker isn't recognizing channel types yet. Fixes issue http://stackoverflow.com/questions/14712586/memory-consumption-skyrocket R=dvyukov, rsc, bradfitz CC=dave, golang-dev, minux.ma, remyoudompheng https://golang.org/cl/7307086
-
Rob Pike authored
R=golang-dev, iant CC=golang-dev https://golang.org/cl/7393059
-
Shenghou Ma authored
Regenerate cmd/gc/builtin.c. Fixes #4908. R=rsc CC=golang-dev https://golang.org/cl/7383053
-
Francisco Souza authored
Now that vet does typechecking, it should use only pkg.gofiles, instead of pkg.allgofiles. Ignored files should not be checked by vet, because they wouldn't typecheck. Fixes #4906. R=rsc, r CC=golang-dev https://golang.org/cl/7401051
-
Russ Cox authored
R=ken2 CC=golang-dev https://golang.org/cl/7365057
-
Russ Cox authored
The type information is (and for years has been) included as an extra field in the address chunk of an instruction. Unfortunately, suppose there is a string at a+24(FP) and we have an instruction reading its length. It will say: MOVQ x+32(FP), AX and the type of *that* argument is int (not slice), because it is the length being read. This confuses the picture seen by debuggers and now, worse, by the garbage collector. Instead of attaching the type information to all uses, emit an explicit list of TYPE instructions with the information. The TYPE instructions are no-ops whose only role is to provide an address to attach type information to. For example, this function: func f(x, y, z int) (a, b string) { return } now compiles into: --- prog list "f" --- 0000 (/Users/rsc/x.go:3) TEXT f+0(SB),$0-56 0001 (/Users/rsc/x.go:3) LOCALS , 0002 (/Users/rsc/x.go:3) TYPE x+0(FP){int},$8 0003 (/Users/rsc/x.go:3) TYPE y+8(FP){int},$8 0004 (/Users/rsc/x.go:3) TYPE z+16(FP){int},$8 0005 (/Users/rsc/x.go:3) TYPE a+24(FP){string},$16 0006 (/Users/rsc/x.go:3) TYPE b+40(FP){string},$16 0007 (/Users/rsc/x.go:3) MOVQ $0,b+40(FP) 0008 (/Users/rsc/x.go:3) MOVQ $0,b+48(FP) 0009 (/Users/rsc/x.go:3) MOVQ $0,a+24(FP) 0010 (/Users/rsc/x.go:3) MOVQ $0,a+32(FP) 0011 (/Users/rsc/x.go:4) RET , The { } show the formerly hidden type information. The { } syntax is used when printing from within the gc compiler. It is not accepted by the assemblers. The same type information is now included on global variables: 0055 (/Users/rsc/x.go:15) GLOBL slice+0(SB){[]string},$24(AL*0) This more accurate type information fixes a bug in the garbage collector's precise heap collection. The linker only cares about globals right now, but having the local information should make things a little nicer for Carl in the future. Fixes #4907. R=ken2 CC=golang-dev https://golang.org/cl/7395056
-
Robert Griesemer authored
See also CL 7383051 for details. R=adonovan, bradfitz CC=golang-dev https://golang.org/cl/7378063
-
Roger Peppe authored
It's accessed without mutex protection in a different goroutine from the one that sets it. Also make sure that Client.Call after Client.Close will reliably return ErrShutdown, and that clients see ErrShutdown rather than io.EOF when appropriate. Suggestions welcome for a way to reliably test the mutex issue. R=r, iant CC=golang-dev https://golang.org/cl/7338045
-
Mikio Hara authored
This CL addresses the comments on CL 7368046 that I've overlooked. Update #4866. R=golang-dev, dave CC=golang-dev https://golang.org/cl/7369052
-
Rémy Oudompheng authored
Fixes #4888. R=golang-dev, gri CC=golang-dev https://golang.org/cl/7383051
-
- 24 Feb, 2013 10 commits
-
-
Volker Dobler authored
Added the command line flag -ex to godoc to print examples in text output. Samples from the generated output: $ godoc -ex strings Index ... func Index(s, sep string) int Index returns the index of the first instance of sep in s, or -1 if sep is not present in s. Example: fmt.Println(strings.Index("chicken", "ken")) fmt.Println(strings.Index("chicken", "dmr")) // Output: // 4 // -1 ... $ godoc -ex container/heap ... package heap import "container/heap" Package heap provides heap operations for any type that implements heap.Interface. A heap is a tree with the property that each node is the minimum-valued node in its subtree. Example: // This example demonstrates an integer heap built using the heap interface. package heap_test import ( "container/heap" "fmt" ... Example: // This example demonstrates a priority queue built using the heap interface. package heap_test import ( "container/heap" "fmt" ) ... Fixes #3587. R=golang-dev, minux.ma, adg, rsc, gri CC=golang-dev https://golang.org/cl/7356043
-
Rob Pike authored
R=golang-dev, kamil.kisiel, bradfitz CC=golang-dev https://golang.org/cl/7369049
-
Rob Pike authored
Made possible by go/types, as long as the package type-checks OK. Fixes #4684. R=golang-dev CC=golang-dev https://golang.org/cl/7407045
-
Rémy Oudompheng authored
The heuristics for BitLen of a product of randomly generated primes are wrong, and the generated candidates never match the required size for nprimes > 10. This corner case is not expected to be used in practice. R=agl CC=golang-dev https://golang.org/cl/7397052
-
Shenghou Ma authored
Executable heap is gone on Unix! R=golang-dev, dave, bradfitz CC=golang-dev https://golang.org/cl/7405045
-
Shenghou Ma authored
Or gcc (-fPIC) will complain: cmd/dist/unix.c: In function ‘cansse2’ cmd/dist/unix.c:774: error: can't find a register in class ‘BREG’ while reloading ‘asm’ cmd/dist/unix.c:774: error: ‘asm’ operand has impossible constraints This affects bootstrapping on native Darwin/386 where all code is compiled with -fPIC. R=golang-dev, iant CC=golang-dev https://golang.org/cl/7394047
-
Mikio Hara authored
This CL allows to receive network interface arrival and depature notifications through routing sockets on BSD variants. So far Darwin doesn't support this feature. Also does small simplification. Update #4866. R=golang-dev, lucio.dere, dave CC=golang-dev https://golang.org/cl/7365055
-
Mikio Hara authored
Update #4866. R=golang-dev CC=golang-dev https://golang.org/cl/7382053
-
Mikio Hara authored
Update #4866. R=golang-dev, bradfitz, dave CC=golang-dev https://golang.org/cl/7382052
-
Mikio Hara authored
Update #4866. R=golang-dev, dave CC=golang-dev https://golang.org/cl/7398047
-
- 23 Feb, 2013 5 commits
-
-
Rob Pike authored
Fixes #4404. R=gri, rsc CC=golang-dev https://golang.org/cl/7378061
-
Robin Eklind authored
Replace setsid with c_ISGID since the constant is already defined. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/7403048
-
Shenghou Ma authored
1. Workaround the smart clang diagnostics with -Qunused-arguments: clang: error: argument unused during compilation: '-XXX' 2. if "clang -print-libgcc-file-name" returns non-absolute path, don't provide that on linker command line. 3. Fix dwarf.PtrType.Size() in cmd/cgo as clang doesn't generate DW_AT_byte_size for pointer types. 4. Workaround warnings for -Wno-unneeded-internal-declaration with -Wno-unknown-warning-option. 5. Add -Wno-unused-function. 6. enable race detector test on darwin with clang (at least Apple clang version 1.7 (tags/Apple/clang-77) works). Requires CL 7354043. Update #4829 This should fix most parts of the problem, but one glitch still remains. DWARF generated by newer clang doesn't differentiate these two function types: void *malloc(size_t); void *malloc(unsigned long int); so you might need to do this to make make.bash pass: sed -i -e 's/C.malloc(C.size_t/C.malloc(C.ulong/' pkg/os/user/lookup_unix.go R=golang-dev, dave, iant, rsc CC=golang-dev https://golang.org/cl/7351044
-
Dmitriy Vyukov authored
R=golang-dev, alex.brainman CC=golang-dev https://golang.org/cl/7407044
-
Dmitriy Vyukov authored
R=golang-dev, rsc CC=golang-dev https://golang.org/cl/7402047
-