- 26 Feb, 2013 20 commits
-
-
Alan Donovan authored
Actually it already worked since the spec only requires that the one immediately preceding a for/switch/... be usable as the target of a break or continue statement. Added a test. Also: allocate Function.lblocks on first use. R=gri CC=golang-dev https://golang.org/cl/7365058
-
Dominik Honnef authored
The original go-mode is plagued with odd behaviour, lack of behaviour typical to modes in Emacs and bugs. This change rewrites great parts of go-mode (basically only keeping the gofmt and godoc functions). Additionally it adds new features such as manipulating package imports. For more information please see https://groups.google.com/group/golang-nuts/browse_frm/thread/3a9d6dae3369c0b5/1efe65e2f7afb190 Fixes #3618. Fixes #4240. Fixes #4322. Fixes #4671. Fixes #4726. R=golang-dev, fullung, sameer, cw, arthur, proppy, adonovan, rsc, bradfitz CC=golang-dev https://golang.org/cl/7314113
-
Rob Pike authored
And fix test. Pointer to unsafe.Pointer tests nothing important... Also identify the incorrect type: go/types.Type is a Stringer. Also fix a couple of incorrect format verbs found by new printf checker, now that we can run it on more files. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/7385051
-
Alan Donovan authored
The previous approach desugared the ast.SelectorExpr to make implicit field selections explicit. But: 1) it was clunky since it required allocating temporary syntax trees. 2) it was not thread-safe since it required poking types into the shared type map for the new ASTs. 3) the desugared syntax had no place to represent the package lexically enclosing each implicit field selection, so it was as if they all occurred in the same package as the explicit field selection. This meant unexported field names changed meaning. This CL does what I should have done all along: just generate the SSA instructions directly from the original AST and the promoted field information. Also: - add logStack util for paired start/end log messages. Useful for debugging crashes. R=gri CC=golang-dev https://golang.org/cl/7395052
-
Brad Fitzpatrick authored
Generated by addca (mostly, until codereview blew up) R=golang-dev CC=golang-dev https://golang.org/cl/7386054
-
Anthony Martin authored
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/7370050
-
Anthony Martin authored
R=minux.ma, rsc, akumar, bradfitz CC=golang-dev https://golang.org/cl/7313070
-
Akshat Kumar authored
Adjust the exit status string for Plan 9. Upon allocating >100 file descriptors, Plan 9 raises a warning. Moreover, the Go runtime for 32-bit version of Plan 9 keeps /dev/bintime open for its implementation of runtime.nanotime(). This change accounts for these things in TestExtraFiles. R=rsc, rminnich, ality, bradfitz CC=golang-dev https://golang.org/cl/7363056
-
Anthony Martin authored
Also, I synced the rc files with changes that have been made to make.bash, etc. R=seed, rminnich, r CC=golang-dev https://golang.org/cl/7389049
-
Anthony Martin authored
R=seed, rminnich, r, minux.ma CC=golang-dev https://golang.org/cl/7397059
-
Robert Griesemer authored
Context.Alignof/Offsetsof/Sizeof now provide means to customize the type checker for a given platform. - provide Context.Offsetsof to specify the offsets of struct fields - use the correct sizes for ints, uint, uintptrs in constant computations - moved all size computations into separate file (sizes.go) - fixed a bug with string constant slicing R=adonovan, axwalk CC=golang-dev https://golang.org/cl/7363054
-
Robert Griesemer authored
- imported objects don't have position information - gc exported data contains non-exported objects at the top-level, guard against them - better error message when dot-imports conflict with local declarations R=adonovan, r CC=golang-dev https://golang.org/cl/7379052
-
Robert Griesemer authored
R=adonovan, r CC=golang-dev https://golang.org/cl/7376055
-
Cosmos Nicolaou authored
pkg/go/doc: move BUG notes from Package.Bugs to the general Package.Notes field. Removing .Bugs would break existing code so it's left in for now. R=gri, gri, gary.burd, dsymonds, rsc, kevlar CC=golang-dev https://golang.org/cl/7341053
-
Alex Brainman authored
Fixes #4760. R=golang-dev, minux.ma, bradfitz CC=golang-dev https://golang.org/cl/7312053
-
Akshat Kumar authored
Separates the implementation of nanotime on 64-bit version of Plan 9 from that on the 32-bit version. The former uses a syscall. R=rsc, rminnich, ality CC=golang-dev https://golang.org/cl/7379051
-
Nigel Tao authored
R=dr.volker.dobler CC=golang-dev https://golang.org/cl/7398049
-
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 20 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
-