- 11 Jan, 2013 16 commits
-
-
Brad Fitzpatrick authored
Fixes #3460 R=golang-dev, alex.brainman CC=golang-dev https://golang.org/cl/7096046
-
Robert Griesemer authored
The existing type checker was relying on augmenting ast.Object fields (empty interfaces) for its purposes. While this worked for some time now, it has become increasingly brittle. Also, the need for package information for Fields and Methods would have required a new field in each ast.Object. Rather than making them bigger and the code even more subtle, in this CL we are moving away from ast.Objects. The types packge now defines its own objects for different language entities (Const, Var, TypeName, Func), and they implement the types.Object interface. Imported packages create a Package object which holds the exported entities in a types.Scope of types.Objects. For type-checking, the current package is still using ast.Objects to make this transition manageable. In a next step, the type- checker will also use types.Objects instead, which opens the door door to resolving ASTs entirely by the type checker. As a result, the AST and type checker become less entangled, and ASTs can be manipulated "by hand" or programmatically w/o having to worry about scope and object invariants that are very hard to maintain. (As a consequence, a future parser can do less work, and a future AST will not need to define objects and scopes anymore. Also, object resolution which is now split across the parser, the ast, (ast.NewPackage), and even the type checker (for composite literal keys) can be done in a single place which will be simpler and more efficient.) Change details: - Check now takes a []*ast.File instead of a map[string]*ast.File. It's easier to handle (I deleted code at all use sites) and does not suffer from undefined order (which is a pain for testing). - ast.Object.Data is now a *types.Package rather then an *ast.Scope if the object is a package (obj.Kind == ast.Pkg). Eventually this will go away altogether. - Instead of an ast.Importer, Check now uses a types.Importer (which returns a *types.Package). - types.NamedType has two object fields (Obj Object and obj *ast.Object); eventually there will be only Obj. The *ast.Object is needed during this transition since a NamedType may refer to either an imported (using types.Object) or locally defined (using *ast.Object) type. - ast.NewPackage is not used anymore - there's a local copy for package-level resolution of imports. - struct fields now take the package origin into account. - The GcImporter is now returning a *types.Package. It cannot be used with ast.NewPackage anymore. If that functionality is still used, a copy of the old GcImporter should be made locally (note that GcImporter was part of exp/types and it's API was not frozen). - dot-imports are not handled for the time being (this will come back). R=adonovan CC=golang-dev https://golang.org/cl/7058060
-
Rémy Oudompheng authored
Update #4139. R=golang-dev, iant CC=golang-dev https://golang.org/cl/7094047
-
Gwenael Treguier authored
Fixes #3678. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/6460087
-
Rémy Oudompheng authored
The -I. syntax now needs a space to be recognized in the compiler. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/7098046
-
Rémy Oudompheng authored
This allows test/dwarf to be supported by run.go. Update #4139. R=golang-dev, bradfitz, iant CC=golang-dev https://golang.org/cl/7064067
-
Brad Fitzpatrick authored
This introduces a buffer between writing from a handler and writing chunks. Further, it delays writing the header until the first full chunk is ready. In the case where the first full chunk is also the final chunk (for small responses), that means we can also compute a Content-Length, which is a nice side effect for certain benchmarks. Fixes #2357 R=golang-dev, dave, minux.ma, rsc, adg, balasanjay CC=golang-dev https://golang.org/cl/6964043
-
Georg Reinke authored
Update #2656 R=golang-dev, iant, minux.ma, bradfitz CC=golang-dev https://golang.org/cl/7065063
-
Daniel Morsing authored
The peephole optimizer would keep hands off AX and X0 during returns, even though go doesn't return through registers. R=dave, rsc CC=golang-dev https://golang.org/cl/7030046
-
Stéphane Travostino authored
Fixes #4583. R=golang-dev, minux.ma, bradfitz, rsc, dave CC=golang-dev https://golang.org/cl/6976050
-
Shenghou Ma authored
R=golang-dev, dave, rsc CC=golang-dev https://golang.org/cl/7066052
-
Shenghou Ma authored
Modeled after CL 7030046 by daniel.morsing. example program: func f(x int) int { x -= 10; return x } 5g -S difference: --- prog list "f" --- 0011 (x.go:7) TEXT add+0(SB),$0-8 0012 (x.go:7) MOVW x+0(FP),R0 -0013 (x.go:7) SUB $10,R0,R2 -0014 (x.go:7) MOVW R2,R0 -0015 (x.go:7) MOVW R2,.noname+4(FP) -0016 (x.go:7) RET , +0013 (x.go:7) SUB $10,R0 +0014 (x.go:7) MOVW R0,.noname+4(FP) +0015 (x.go:7) RET , R=dave, rsc CC=golang-dev https://golang.org/cl/7030047
-
Shenghou Ma authored
also added appropriate docs to cmd/ld/doc.go (largely copied from Russ's CL 6938073). R=rsc CC=golang-dev https://golang.org/cl/7004049
-
Rick Arnold authored
Skip most of the scanning and parsing logic for simple (non-object/array) JSON values. benchmark old ns/op new ns/op delta BenchmarkUnmarshalInt 948 436 -54.01% BenchmarkUnmarshalUint 930 427 -54.09% BenchmarkUnmarshalString 1407 715 -49.18% BenchmarkUnmarshalFloat 1114 536 -51.89% BenchmarkUnmarshalBool 759 266 -64.95% BenchmarkUnmarshalStruct 8165 8181 +0.20% No significant effects on the go1 benchmarks: benchmark old ns/op new ns/op delta BenchmarkBinaryTree17 9647362752 9596196417 -0.53% BenchmarkFannkuch11 5623613048 5518694872 -1.87% BenchmarkGobDecode 32944041 33165434 +0.67% BenchmarkGobEncode 21237482 21080554 -0.74% BenchmarkGzip 750955920 749861980 -0.15% BenchmarkGunzip 197369742 197886192 +0.26% BenchmarkJSONEncode 79274091 78891137 -0.48% BenchmarkJSONDecode 180257802 175280358 -2.76% BenchmarkMandelbrot200 7396666 7388266 -0.11% BenchmarkParse 11446460 11386550 -0.52% BenchmarkRevcomp 1605152523 1599512029 -0.35% BenchmarkTemplate 204538247 207765574 +1.58% benchmark old MB/s new MB/s speedup BenchmarkGobDecode 23.30 23.14 0.99x BenchmarkGobEncode 36.14 36.41 1.01x BenchmarkGzip 25.84 25.88 1.00x BenchmarkGunzip 98.32 98.06 1.00x BenchmarkJSONEncode 24.48 24.60 1.00x BenchmarkJSONDecode 10.76 11.07 1.03x BenchmarkParse 5.06 5.09 1.01x BenchmarkRevcomp 158.34 158.90 1.00x BenchmarkTemplate 9.49 9.34 0.98x Fixes #3949. R=golang-dev, dave, bradfitz, timo CC=golang-dev https://golang.org/cl/7068043
-
Alex Brainman authored
Update #2631. Update #3097. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/7061060
-
Georg Reinke authored
Fixes #2656. R=golang-dev, bradfitz, iant, minux.ma CC=golang-dev https://golang.org/cl/7062057
-
- 10 Jan, 2013 6 commits
-
-
Rémy Oudompheng authored
5c miscompiles *p++ = struct_literal. R=dave, golang-dev CC=golang-dev https://golang.org/cl/7065069
-
Jan Ziak authored
R=rsc, dvyukov, remyoudompheng, dave, minux.ma, bradfitz CC=golang-dev https://golang.org/cl/6945069
-
Ian Lance Taylor authored
Generated by addca. R=gobot CC=golang-dev https://golang.org/cl/7057067
-
Dmitriy Vyukov authored
benchmark old ns/op new ns/op delta BenchmarkStackGrowth 665 548 -17.59% BenchmarkStackGrowth-2 333 274 -17.72% BenchmarkStackGrowth-4 224 168 -25.00% BenchmarkStackGrowth-8 124 91 -26.21% BenchmarkStackGrowth-16 82 70 -14.55% BenchmarkStackGrowth-32 73 59 -19.49% R=nigeltao, minux.ma, rsc CC=golang-dev https://golang.org/cl/7026044
-
Dmitriy Vyukov authored
Introduce global stack segment cache and limit per-thread cache size. This greatly reduces StackSys memory on workloads that create lots of threads. benchmark old ns/op new ns/op delta BenchmarkStackGrowth 665 656 -1.35% BenchmarkStackGrowth-2 333 328 -1.50% BenchmarkStackGrowth-4 224 172 -23.21% BenchmarkStackGrowth-8 124 91 -26.13% BenchmarkStackGrowth-16 82 47 -41.94% BenchmarkStackGrowth-32 73 40 -44.79% BenchmarkStackGrowthDeep 97231 94391 -2.92% BenchmarkStackGrowthDeep-2 47230 58562 +23.99% BenchmarkStackGrowthDeep-4 24993 49356 +97.48% BenchmarkStackGrowthDeep-8 15105 30072 +99.09% BenchmarkStackGrowthDeep-16 10005 15623 +56.15% BenchmarkStackGrowthDeep-32 12517 13069 +4.41% TestStackMem#1,MB 310 12 -96.13% TestStackMem#2,MB 296 14 -95.27% TestStackMem#3,MB 479 14 -97.08% TestStackMem#1,sec 3.22 2.26 -29.81% TestStackMem#2,sec 2.43 2.15 -11.52% TestStackMem#3,sec 2.50 2.38 -4.80% R=sougou, no.smile.face, rsc CC=golang-dev, msolomon https://golang.org/cl/7029044
-
Matthew Dempsky authored
Update #4582. R=nigeltao, dave, adg CC=golang-dev https://golang.org/cl/7070065
-
- 09 Jan, 2013 15 commits
-
-
Ian Lance Taylor authored
R=golang-dev, rsc CC=golang-dev https://golang.org/cl/7057064
-
Robert Griesemer authored
R=golang-dev, dsymonds CC=golang-dev https://golang.org/cl/7065067
-
Anthony Martin authored
Changeset f483bfe81114 moved ELF generation to the architecture independent code and in doing so added a Section* to the Sym type and an Elf64_Shdr* to the Section type. This caused the Plan 9 compilers to complain about incompatible type signatures in the many files that reference the Sym type. R=rsc, dave CC=golang-dev https://golang.org/cl/7057058
-
Dave Cheney authored
Fixes #4186. Back in the day, before the Go 1.0 release, $GOROOT was mandatory for building from source. Fast forward to now and $GOPATH is mandatory and $GOROOT is optional, and mainly used by those who use the binary distribution in uncommon places. For example, most novices at least know about `sudo` as they would have used it to install the binary tarball into /usr/local. It is logical they would use the `sudo` hammer to `go get` other Go packages when faced with a permission error talking about the path they just had to use `sudo` on last time. Even if they had read the documentation and set $GOPATH, go get will not work as expected as `sudo` masks most environment variables. llucky(~) % ~/go/bin/go env | grep GOPATH GOPATH="/home/dfc" lucky(~) % sudo ~/go/bin/go env | grep GOPATH GOPATH="" This CL therefore proposes to remove support for using `go get` to download source into $GOROOT. This CL also proposes an error when GOPATH=$GOROOT, as this is another place where new Go users can get stuck. Further discussion: https://groups.google.com/d/topic/golang-nuts/VIg3fjHiHRI/discussion R=rsc, adg, minux.ma CC=golang-dev https://golang.org/cl/6941058
-
Ian Lance Taylor authored
R=golang-dev, bradfitz, minux.ma CC=golang-dev https://golang.org/cl/7057063
-
Rémy Oudompheng authored
R=dave, golang-dev, rsc CC=golang-dev https://golang.org/cl/7068044
-
Rémy Oudompheng authored
The linker split PKGDEF into (prefix, name, def) pairs, and defines def to begin after a space following the identifier. This is totally wrong for the following export data: func "".FunctionName() var SomethingCompletelyUnrelated int The linker would parse name=`"".FunctionName()\n\tvar` def=`SomethingCompletelyUnrelated int` since there is no space after FunctionName. R=minux.ma, rsc CC=golang-dev https://golang.org/cl/7068051
-
Dave Cheney authored
Our source no longer needs these flags set to build cleanly using clang. Tested with * Ubuntu clang version 3.0-6ubuntu3 (tags/RELEASE_30/final) (based on LLVM 3.0) on i386 * clang version 3.2 (tags/RELEASE_32/final) on amd64 cross compiling all platforms R=golang-dev, rsc CC=golang-dev https://golang.org/cl/7058053
-
Robert Griesemer authored
Fixes #4624. R=rsc CC=golang-dev https://golang.org/cl/7058052
-
Robert Griesemer authored
Fixes #4616. R=rsc CC=golang-dev https://golang.org/cl/7069049
-
Robert Griesemer authored
Fixes #4612. R=rsc, iant, ken, r CC=golang-dev https://golang.org/cl/7076043
-
Andrey Mirtchovski authored
R=golang-dev, iant CC=golang-dev https://golang.org/cl/7063056
-
Brad Fitzpatrick authored
The old code made it impossible to implement a reverse proxy with anything less than 4k write granularity to the backends. R=golang-dev, adg CC=golang-dev https://golang.org/cl/7060059
-
Matthew Dempsky authored
Fixes #4625. R=iant, adg CC=golang-dev https://golang.org/cl/7064052
-
Sameer Ajmani authored
suggested by pkleiweg. Fixes #3471. R=adonovan, pkleiweg, rsc CC=golang-dev https://golang.org/cl/7060056
-
- 08 Jan, 2013 3 commits
-
-
Robert Griesemer authored
R=adonovan CC=golang-dev https://golang.org/cl/7060054
-
Brad Fitzpatrick authored
R=golang-dev, minux.ma CC=golang-dev https://golang.org/cl/7079043
-
Oling Cat authored
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/7061051
-