- 08 Mar, 2011 18 commits
-
-
Anthony Martin authored
R=rsc CC=golang-dev https://golang.org/cl/4252067
-
Rob Pike authored
R=rsc CC=golang-dev https://golang.org/cl/4235061
-
Russ Cox authored
Much of the bulk of Go binaries is the symbol tables, which give a name to every C string, Go string, and reflection type symbol. These names are not worth much other than seeing what's where in a binary. This CL deletes all those names from the symbol table, instead aggregating the symbols into contiguous blocks and giving them the names "string.*", "go.string.*", and "type.*". Before: $ 6nm $(which godoc.old) | sort | grep ' string\.' | tail -10 59eda4 D string."aa87ca22be8b05378eb1c71... 59ee08 D string."b3312fa7e23ee7e4988e056... 59ee6c D string."func(*token.FileSet, st... 59eed0 D string."func(io.Writer, []uint8... 59ef34 D string."func(*tls.Config, *tls.... 59ef98 D string."func(*bool, **template.... 59effc D string."method(p *printer.print... 59f060 D string."method(S *scanner.Scann... 59f12c D string."func(*struct { begin in... 59f194 D string."method(ka *tls.ecdheRSA... $ After: $ 6nm $(which godoc) | sort | grep ' string\.' | tail -10 5e6a30 D string.* $ Those names in the "Before" are truncated for the CL. In the real binary they are the complete string, up to a certain length, or else a unique identifier. The same applies to the type and go.string symbols. Removing the names cuts godoc by more than half: -rwxr-xr-x 1 rsc rsc 9153405 2011-03-07 23:19 godoc.old -rwxr-xr-x 1 rsc rsc 4290071 2011-03-07 23:19 godoc For what it's worth, only 80% of what's left gets loaded into memory; the other 20% is dwarf debugging information only ever accessed by gdb: -rwxr-xr-x 1 rsc rsc 3397787 2011-03-07 23:19 godoc.nodwarf R=r, cw CC=golang-dev https://golang.org/cl/4245072
-
Russ Cox authored
R=r CC=golang-dev https://golang.org/cl/4247066
-
Gustavo Niemeyer authored
Fixes #1593. R=golang-dev, rsc1 CC=golang-dev https://golang.org/cl/4266050
-
Brad Fitzpatrick authored
R=dsymonds CC=golang-dev https://golang.org/cl/4264052
-
Brad Fitzpatrick authored
$ gotest -test.v -test.run=IndexRune -test.bench=.* === RUN strings_test.TestIndexRune --- PASS: strings_test.TestIndexRune (0.0 seconds) PASS strings_test.BenchmarkIndexRune 20000000 105 ns/op strings_test.BenchmarkIndexByte 50000000 48 ns/op R=rsc, dsymonds CC=golang-dev https://golang.org/cl/4267050
-
Peter Mundy authored
R=rsc CC=golang-dev https://golang.org/cl/4240090
-
Luuk van Dijk authored
DWARF function types no longer need to be pointer-ified explicitly. Fixes #1579. R=rsc, lvd1 CC=golang-dev https://golang.org/cl/4247065
-
Robert Hencke authored
R=golang-dev, rsc1, rsc CC=golang-dev https://golang.org/cl/4253064
-
Brad Fitzpatrick authored
The http/cgi package now supports both being a CGI host or being a CGI child process. R=rsc, adg, bradfitzwork CC=golang-dev https://golang.org/cl/4245070
-
Rob Pike authored
to the receiver. Remove lots of TODOS. R=rsc CC=golang-dev https://golang.org/cl/4257057
-
Robert Hencke authored
"standard output" should have been "standard error". Sorry about that.. R=adg CC=golang-dev https://golang.org/cl/4240088
-
Andrew Gerrand authored
R=bradfitzgo, rsc, bradfitzwork CC=golang-dev https://golang.org/cl/4235056
-
Ross Light authored
R=adg CC=golang-dev https://golang.org/cl/4258041
-
Robert Hencke authored
R=golang-dev, adg CC=golang-dev https://golang.org/cl/4254061
-
Russ Cox authored
Fixes #1586. R=ken2 CC=golang-dev https://golang.org/cl/4244057
-
Robert Griesemer authored
Added example of a return statement w/o expressions in a function with a _ result parameter. See also: http://code.google.com/p/go/issues/detail?id=1586 R=rsc, r, iant CC=golang-dev https://golang.org/cl/4266049
-
- 07 Mar, 2011 22 commits
-
-
Ian Lance Taylor authored
R=rsc, dsymonds CC=golang-dev https://golang.org/cl/4250063
-
Ian Lance Taylor authored
R=rsc CC=golang-dev https://golang.org/cl/4239066
-
Ian Lance Taylor authored
R=rsc CC=golang-dev https://golang.org/cl/4252063
-
Russ Cox authored
Change unsafe.Pointer to be its own kind of type, instead of making it equivalent to *any. The change complicates import and export but avoids the need to find all the places that operate on pointers but should not operate on unsafe.Pointer. Fixes #1566. (a different way) Fixes #1582. R=ken2 CC=golang-dev https://golang.org/cl/4264050
-
Rob Pike authored
Still to do: **T. R=rsc CC=golang-dev https://golang.org/cl/4247061
-
Brad Fitzpatrick authored
net.Conn is itself a io.ReadWriteCloser, so most code should be unaffected. R=rsc, gburd CC=golang-dev https://golang.org/cl/4261052
-
Russ Cox authored
Was only breaking on some dashboard builds because not all run the network tests. R=bradfitzgo, bradfitzwork CC=golang-dev https://golang.org/cl/4240086
-
Robert Griesemer authored
The parser populates all scopes for a given file (except type-related scopes for structs, interfaces, and methods of types) at parse time. A new parser flag, DeclarationErrors, enables error messages related to declaration errors (as far as it is possible to provide them). The resulting AST has all (non-field, non-method) identifiers resolved that can be resolved w/o doing imports or parsing missing package files. The ast.File node contains the (partially complete) package scope and a list of unresolved global identifiers. All type-specific data structures have been removed from the AST. The existing typechecker is functional but needs to be adjusted (simplified) accordingly. Utility functions to resolve all identifiers for a package (after handling imports and parsing all package files) are missing. Unrelated changes: - Rename typechecker/testdata files to that they are not considered by gofmt. - Minor cleanups/simplifications. Parses all .go files in src and misc without declaration errors. Runs all tests. Changes do not affect gofmt output. R=rsc CC=golang-dev https://golang.org/cl/4244049
-
Robert Griesemer authored
R=r, adg CC=golang-dev https://golang.org/cl/4256052
-
Gustavo Niemeyer authored
As a data point, this enables goinstall to handle the standard syscall package almost unchanged (there's one file with the _bsd extension, and a .c file which isn't supposed to be compiled in). R=rsc CC=golang-dev https://golang.org/cl/4259057
-
Russ Cox authored
In June 2010 I accidentally checked in pending changes to package rpc in a compiler CL: https://golang.org/cl/1736041 I backed them out by hand in a followup CL: https://golang.org/cl/1736042 That followup CL missed the lines being deleted in this CL, spotted by Petar. hg diff -r 5678:5683 src/cmd/prof/gopprof \ src/pkg/image/png/reader.go \ src/pkg/rpc/client.go \ src/pkg/rpc/jsonrpc/all_test.go \ src/pkg/rpc/jsonrpc/server.go \ src/pkg/rpc/server.go \ test/arm-pass.txt confirms that these lines in server.go are the only ones that were missed by the original followup. Fixes #1583. R=golang-dev, r CC=golang-dev https://golang.org/cl/4266046
-
Gustavo Niemeyer authored
As a data point, with this change goinstall is able to fully build package big out of the box. R=rsc CC=golang-dev https://golang.org/cl/4264049
-
Petar Maymounkov authored
R=rsc, bradfitzwork CC=golang-dev https://golang.org/cl/4235055
-
Russ Cox authored
TBR=brainman CC=golang-dev https://golang.org/cl/4237060
-
Russ Cox authored
func init runs *after* var declarations TBR=niemeyer CC=golang-dev https://golang.org/cl/4260055
-
Pascal S. de Kloe authored
R=agl1, rsc CC=golang-dev https://golang.org/cl/4257042
-
Gustavo Niemeyer authored
This enables goinstall to handle .go and .c files (for cgo) which are named after the following patterns: name_$(GOOS).* name_$(GOARCH).* name_$(GOOS)_$(GOARCH).* Files with those names are only included if the $(GOOS) and $(GOARCH) match the current system. R=rsc CC=golang-dev https://golang.org/cl/4172055
-
Russ Cox authored
* Change use of m->g0 stack (aka scheduler stack). * Provide runtime.mcall(f) to invoke f() on m->g0 stack. * Replace scheduler loop entry with runtime.mcall(schedule). Runtime.mcall eliminates the need for fake scheduler states that exist just to run a bit of code on the m->g0 stack (Grecovery, Gstackalloc). The elimination of the scheduler as a loop that stops and starts using gosave and gogo fixes a bad interaction with the way cgo uses the m->g0 stack. Cgo runs external (gcc-compiled) C functions on that stack, and then when calling back into Go, it sets m->g0->sched.sp below the added call frames, so that other uses of m->g0's stack will not interfere with those frames. Unfortunately, gogo (longjmp) back to the scheduler loop at this point would end up running scheduler with the lower sp, which no longer points at a valid stack frame for a call to scheduler. If scheduler then wrote any function call arguments or local variables to where it expected the stack frame to be, it would overwrite other data on the stack. I realized this possibility while debugging a problem with calling complex Go code in a Go -> C -> Go cgo callback. This wasn't the bug I was looking for, it turns out, but I believe it is a real bug nonetheless. Switching to runtime.mcall, which only adds new frames to the stack and never jumps into functions running in existing ones, fixes this bug. * Move cgo-related code out of proc.c into cgocall.c. * Add very large comment describing cgo call sequences. * Simpilify, regularize cgo function implementations and names. * Add test suite as misc/cgo/test. Now the Go -> C path calls cgocall, which calls asmcgocall, and the C -> Go path calls cgocallback, which calls cgocallbackg. The shuffling, which affects mainly the callback case, moves most of the callback implementation to cgocallback running on the m->curg stack (not the m->g0 scheduler stack) and only while accounted for with $GOMAXPROCS (between calls to exitsyscall and entersyscall). The previous callback code did not block in startcgocallback's approximation to exitsyscall, so if, say, the garbage collector were running, it would still barge in and start doing things like call malloc. Similarly endcgocallback's approximation of entersyscall did not call matchmg to kick off new OS threads when necessary, which caused the bug in issue 1560. Fixes #1560. R=iant CC=golang-dev https://golang.org/cl/4253054
-
Russ Cox authored
No known bugs in the current pipe, but this one is simpler and easier to understand. R=iant CC=golang-dev https://golang.org/cl/4252057
-
Robert Hencke authored
R=golang-dev, rsc1, rsc CC=golang-dev https://golang.org/cl/4253060
-
Andrew Gerrand authored
R=rsc CC=golang-dev https://golang.org/cl/4268041
-
Andrew Gerrand authored
R=rsc CC=golang-dev https://golang.org/cl/4240082
-