- 25 Feb, 2013 16 commits
-
-
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 8 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
-
Dmitriy Vyukov authored
to minimize diffs of new scheduler R=golang-dev, rsc CC=golang-dev https://golang.org/cl/7381048
-
Rob Pike authored
We need go/types to discriminate the Error method from the error interface and the Error method of the testing package. Fixes #4753. R=golang-dev, bradfitz, gri CC=golang-dev https://golang.org/cl/7396054
-
Dave Cheney authored
Move Skip and friends into *common so benchmarks can also be skipped. R=golang-dev, gustav.paul, rsc CC=golang-dev https://golang.org/cl/7379046
-
- 22 Feb, 2013 6 commits
-
-
Mikio Hara authored
R=golang-dev, r CC=golang-dev https://golang.org/cl/7403049
-
Carl Shapiro authored
Fixes #4875. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/7376049
-
Akshat Kumar authored
At least one test (in package runtime) depends on `go' being in $path. We simply bind GOROOT/bin before /bin to make sure the latest copy of the binary is accessible there. R=rsc, rminnich, ality CC=golang-dev https://golang.org/cl/7391047
-
Akshat Kumar authored
Plan 9 I/O preserves message boundaries, while Go library code is written for UNIX-like operating systems which do not. Avoid doing zero-length writes in package os. R=rsc, rminnich, ality, rminnich, r CC=golang-dev https://golang.org/cl/7406046
-
Russ Cox authored
R=ken2 CC=golang-dev https://golang.org/cl/7399050
-
Rob Pike authored
This is a simple refactoring of main.go that will enable the type checker to be used during vetting. The change has an unimportant effect on the arguments: it now assumes that all files named explicitly on the command line belong to the same package. When run by the go command, this was true already. Also restore a missing parenthesis from an error message. R=golang-dev, gri, bradfitz CC=golang-dev https://golang.org/cl/7393052
-