aboutsummaryrefslogtreecommitdiff
path: root/src/pkg
AgeCommit message (Collapse)Author
2014-08-30runtime/pprof: make CPU profiling tests more robustDmitriy Vyukov
Under the race detector most of the samples go into race runtime, because of that freebsd race builder constantly fails on this test. LGTM=bradfitz, rsc R=golang-codereviews, bradfitz, rsc CC=golang-codereviews, minux https://golang.org/cl/133370043
2014-08-30runtime: preallocate panic errors for index and sliceRuss Cox
This avoids allocating at the panic sites. LGTM=r, khr R=golang-codereviews, r, khr CC=dvyukov, golang-codereviews, iant, khr https://golang.org/cl/136020043
2014-08-30runtime: convert chanrecv to GoKeith Randall
LGTM=rsc, dvyukov R=golang-codereviews, bradfitz, rsc, dvyukov CC=golang-codereviews https://golang.org/cl/136980044
2014-08-30net/url: make Userinfo.String() escape ? and add test for shouldEscapeEvan Kroske
See RFC 3986 §3.2.1. Fixes #6573. LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://golang.org/cl/126560043
2014-08-30go/doc/headscan: update script to count headings with an ID attributeEvan Kroske
Fixes script used to sanity-check the heading-detection heuristic of go/doc. Fixes #8467. LGTM=gri R=golang-codereviews, gobot, gri CC=golang-codereviews https://golang.org/cl/128720043
2014-08-29runtime: retry fix openbsd buildMatthew Dempsky
Tested on linux/amd64 too this time. LGTM=bradfitz R=golang-codereviews, bradfitz CC=dave, golang-codereviews, iant, rsc https://golang.org/cl/140050043
2014-08-29net/http: add BasicAuth method to *http.RequestKelsey Hightower
The net/http package supports setting the HTTP Authorization header using the Basic Authentication Scheme as defined in RFC 2617, but does not provide support for extracting the username and password from an authenticated request using the Basic Authentication Scheme. Add BasicAuth method to *http.Request that returns the username and password from authenticated requests using the Basic Authentication Scheme. Fixes #6779. LGTM=bradfitz R=golang-codereviews, josharian, bradfitz, alberto.garcia.hierro, blakesgentry CC=golang-codereviews https://golang.org/cl/76540043
2014-08-30runtime: increase nosplit area to 192Russ Cox
In CL 131450043, which raised it to 160, I'd raise it to 192 if necessary. Apparently it is necessary on windows/amd64. One note for those concerned about the growth: in the old segmented stack world, we wasted this much space at the bottom of every stack segment. In the new contiguous stack world, each goroutine has only one stack segment, so we only waste this much space once per goroutine. So even raising the limit further might still be a net savings. Fixes windows/amd64 build. TBR=r CC=golang-codereviews https://golang.org/cl/132480043
2014-08-30runtime: rename SysAlloc to sysAlloc for GoRuss Cox
Renaming the C SysAlloc will let Go define a prototype without exporting it. For use in cpuprof.goc's translation to Go. LGTM=mdempsky R=golang-codereviews, mdempsky CC=golang-codereviews, iant https://golang.org/cl/140060043
2014-08-30runtime: convert type algorithms to GoDmitriy Vyukov
Actually it mostly deletes code -- alg.print and alg.copy go away. There was only one usage of alg.print for debug purposes. Alg.copy is used in chan.goc, but Keith replaces them with memcopy during conversion, so alg.copy is not needed as well. Converting them would be significant amount of work for no visible benefit. LGTM=crawshaw, rsc, khr R=golang-codereviews, crawshaw, khr CC=golang-codereviews, rsc https://golang.org/cl/139930044
2014-08-30undo CL 135230043 / 60812bad3769Russ Cox
broke api check everywhere ««« original CL description runtime: fix openbsd build LGTM=iant R=iant, minux CC=golang-codereviews, jsing https://golang.org/cl/135230043 »»» TBR=mdempsky CC=golang-codereviews https://golang.org/cl/137010043
2014-08-30net: implement query-response fast failover in builtin dns stub resolverAlex A Skinner
Speed improvements via code cleanup, and changes to make go dns behave more like glibc resolver. See https://groups.google.com/forum/#!topic/golang-dev/lV-0aHqxVeo Fixes #6579. Benchmark results on linux/amd64 benchmark old ns/op new ns/op delta BenchmarkGoLookupIP 4831903 2572937 -46.75% BenchmarkGoLookupIPNoSuchHost 10114105 2419641 -76.08% BenchmarkGoLookupIPWithBrokenNameServer 20007735624 5004490730 -74.99% benchmark old allocs new allocs delta BenchmarkGoLookupIP 287 288 0.35% BenchmarkGoLookupIPNoSuchHost 204 102 -50.00% BenchmarkGoLookupIPWithBrokenNameServer 410 358 -12.68% benchmark old bytes new bytes delta BenchmarkGoLookupIP 13181 13271 0.68% BenchmarkGoLookupIPNoSuchHost 17260 8714 -49.51% BenchmarkGoLookupIPWithBrokenNameServer 28160 22432 -20.34% LGTM=mikioh.mikioh R=golang-codereviews, mikioh.mikioh, bradfitz, josharian, abursavich CC=golang-codereviews https://golang.org/cl/128820043
2014-08-29runtime: fix openbsd buildMatthew Dempsky
LGTM=iant R=iant, minux CC=golang-codereviews, jsing https://golang.org/cl/135230043
2014-08-29runtime: rename Sigaltstack to SigaltstackTIan Lance Taylor
Avoids a conflict between the type and function sigaltstack. LGTM=crawshaw R=rsc, crawshaw CC=golang-codereviews https://golang.org/cl/138920043
2014-08-30undo CL 107150043 / caa2646daa63Mikio Hara
preparing for the syscall package freeze. the change for issue 8218 is only applied to go.sys/unix. ««« original CL description syscall: implement setresuid(2) and setresgid(2) on OpenBSD/FreeBSD/DragonflyBSD Fixes #8218. LGTM=iant R=golang-codereviews, iant, minux CC=golang-codereviews https://golang.org/cl/107150043 »»» LGTM=r R=r, iant, golang-codereviews CC=golang-codereviews https://golang.org/cl/138840044
2014-08-30net: ensure identical queries are not sent multiple times in builtin stub ↵Alex A Skinner
resolver Prevents non-rooted queries with > ndots dots from being tried twice on error. Fixes #8616. Benchmark results on linux/amd64 benchmark old ns/op new ns/op delta BenchmarkGoLookupIPNoSuchHost 8212394 4413293 -46.26% benchmark old allocs new allocs delta BenchmarkGoLookupIPNoSuchHost 216 108 -50.00% benchmark old bytes new bytes delta BenchmarkGoLookupIPNoSuchHost 17460 8726 -50.02% LGTM=iant, mikioh.mikioh R=golang-codereviews, iant, mikioh.mikioh CC=golang-codereviews https://golang.org/cl/137870043
2014-08-29runtime: make allp a static arrayRuss Cox
It is anyway, just an allocated one. Giving it a sized type makes Go access nicer. LGTM=iant R=dvyukov, iant CC=golang-codereviews https://golang.org/cl/139960043
2014-08-29runtime: convert lock*.c to GoRuss Cox
LGTM=r, iant R=golang-codereviews, r, iant CC=dvyukov, golang-codereviews, khr https://golang.org/cl/139930043
2014-08-29runtime: include constants and defs_*_*.h types in generated Go defsRuss Cox
I had to rename Kevent and Sigaction to avoid the functions of the same (lowercase) name. LGTM=iant, r R=golang-codereviews, r, iant, aram.h CC=dvyukov, golang-codereviews, khr https://golang.org/cl/140740043
2014-08-29crypto: add SignerAdam Langley
Signer is an interface to support opaque private keys. These keys typically result from being kept in special hardware (i.e. a TPM) although sometimes operating systems provide a similar interface using process isolation for security rather than hardware boundaries. This changes provides interfaces for representing them and alters crypto/tls so that client certificates can use opaque keys. LGTM=bradfitz R=bradfitz CC=golang-codereviews, jdeprez https://golang.org/cl/114680043
2014-08-29text/template/parse: restore pointer-only receivers for Type on Dot and NilRob Pike
Needless except that the api tool complains. We could fix that issue instead. TBR=bradfitz R=golang-codereviews CC=golang-codereviews https://golang.org/cl/133290043
2014-08-29runtime: run runtime.initRuss Cox
Run it right before main.init. There is still some runtime initialization that happens before runtime.init, and some of that may call into Go code (for example to acquire locks) so this timing is not perfect, but I believe it is the best we can do. This came up because global variables intialized to func values are done in the generated init code, not in the linker. LGTM=dvyukov R=dvyukov CC=golang-codereviews, iant, khr, r https://golang.org/cl/135210043
2014-08-29cmd/gc: allow runtime to define a hex integer type for printingRuss Cox
As part of the translation of the runtime, we need to rewrite C printf calls to Go print calls. Consider this C printf: runtime·printf("[signal %x code=%p addr=%p pc=%p]\n", g->sig, g->sigcode0, g->sigcode1, g->sigpc); Today the only way to write that in Go is: print("[signal ") printhex(uint64(g->sig)) print(" code=") printhex(uint64(g->sigcode0)) print(" addr=") printhex(uint64(g->sigcode1)) print(" pc=") printhex(uint64(g->sigpc)) print("]\n") (That's nearly exactly what runtime code looked like in C before I added runtime·printf.) This CL recognizes the unexported type runtime.hex as an integer that should be printed in hexadecimal instead of decimal. It's a little kludgy, but it's restricted to package runtime. Other packages can define type hex with no effect at all. Now we can translate that original printf as the more compact: print("[signal ", hex(g->sig), " code=", hex(g->sigcode0), " addr=", hex(g->sigcode1), " pc=", hex(g->sigpc), "]\n") LGTM=r, iant R=r, iant CC=golang-codereviews https://golang.org/cl/133220043
2014-08-29runtime: implement 64 bit division in GoJosh Bleecher Snyder
LGTM=rsc, dave R=minux, rsc, remyoudompheng, dave CC=golang-codereviews https://golang.org/cl/133790043
2014-08-29text/template: add back pointer to Nodes for better error generationRob Pike
ErrorContext now has all the information it needs from the Node, rather than depending on the template that contains it. This makes it easier for html/template to generate correct locations in its error messages. Updated html/template to use this ability where it is easy, which is not everywhere, but more work can probably push it through. Fixes #8577. LGTM=adg R=golang-codereviews, adg CC=golang-codereviews https://golang.org/cl/130620043
2014-08-29runtime: clean up GC codeDmitriy Vyukov
Remove C version of GC. Convert freeOSMemory to Go. Restore g0 check in GC. Remove unknownGCPercent check in GC, it's initialized explicitly now. LGTM=rsc R=golang-codereviews, rsc CC=golang-codereviews, khr https://golang.org/cl/139910043
2014-08-29runtime: fix sprintf index out of boundsRuss Cox
Breaks on Plan 9, apparently. The other systems must not run sprintf during all.bash. I'd write a test but it's all going away. TBR=r CC=0intro, golang-codereviews https://golang.org/cl/133260044
2014-08-29runtime: allow sysvicall functions to be called from GoAram Hăvărneanu
Convert them to Go in the process. LGTM=dvyukov, dave R=khr, dvyukov, rsc, dave CC=golang-codereviews https://golang.org/cl/131600043
2014-08-29runtime: allow to call stdcall from Go on windowsDmitriy Vyukov
I've started with just one function with 8 arguments, but stdcall is called from nosplit functions and 8 args overflow nosplit area. LGTM=aram, alex.brainman R=golang-codereviews, aram, alex.brainman, dave CC=golang-codereviews, iant, khr, rsc https://golang.org/cl/135090043
2014-08-29image/png: do not apply filters if level is NoCompressionRui Ueyama
PNG filters are applied to get better compression ratio. It does not make sense to apply them if we are not going to compress. LGTM=nigeltao R=nigeltao CC=golang-codereviews https://golang.org/cl/137830043
2014-08-29runtime: convert forcegc helper to GoDmitriy Vyukov
Also fix a bunch of bugs: 1. Accesses to last_gc must be atomic (it's int64). 2. last_gc still can be 0 during first checks in sysmon, check for 0. 3. forcegc.g can be unitialized when sysmon accesses it: forcegc.g is initialized by main goroutine (forcegc.g = newproc1(...)), and main goroutine is unsynchronized with both sysmon and forcegc goroutine. Initialize forcegc.g in the forcegc goroutine itself instead. LGTM=khr R=golang-codereviews, khr CC=golang-codereviews, rsc https://golang.org/cl/136770043
2014-08-28runtime: don't allocate a new string in printfKeith Randall
LGTM=dave R=rsc, dave CC=golang-codereviews https://golang.org/cl/139890043
2014-08-28runtime: convert closechan/chanlen/chancap to GoKeith Randall
LGTM=bradfitz, rsc R=golang-codereviews, bradfitz, rsc CC=golang-codereviews https://golang.org/cl/135150043
2014-08-29net: add more cases to lookup API testMikio Hara
LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://golang.org/cl/126450043
2014-08-28runtime: convert print.c to GoRuss Cox
LGTM=iant R=golang-codereviews, iant CC=dvyukov, golang-codereviews, khr, r https://golang.org/cl/135930043
2014-08-28runtime: remove holes in FUNCDATA tablesMatthew Dempsky
Shrinks the text segment size by about 1.5% for the "go", "gofmt", and "camlistored" commands on linux/amd64. Before: $ size go gofmt camlistored text data bss dec hex filename 6506842 136996 105784 6749622 66fdb6 go 2376046 85232 90984 2552262 26f1c6 gofmt 17051050 190256 130320 17371626 10911ea camlistored After: $ size go gofmt camlistored text data bss dec hex filename 6403034 136996 105784 6645814 656836 go 2331118 85232 90984 2507334 264246 gofmt 16842586 190256 130320 17163162 105e39a camlistored Fixes #8604. LGTM=rsc R=golang-codereviews, bradfitz, rsc CC=golang-codereviews https://golang.org/cl/137790043
2014-08-28runtime: fix Plan 9 build for new C calling conventionAnthony Martin
LGTM=0intro, rsc R=rsc, 0intro CC=golang-codereviews https://golang.org/cl/132320043
2014-08-28crypto/md5: use go generate to create md5block.goChaiShushan
LGTM=r R=golang-codereviews, r CC=golang-codereviews https://golang.org/cl/129650043
2014-08-28compress/flate: use go generate to create fixedhuff.goChaiShushan
LGTM=r R=golang-codereviews, r CC=golang-codereviews https://golang.org/cl/137750043
2014-08-28strconv: use go generate to create isprint.goChaiShushan
LGTM=r R=golang-codereviews, r CC=golang-codereviews https://golang.org/cl/132230043
2014-08-28image/color/palette: use go generate to create palette.goChaiShushan
LGTM=r R=golang-codereviews, r CC=golang-codereviews https://golang.org/cl/134940043
2014-08-28runtime: fix openbsd/386Matthew Dempsky
In revision 05c3fee13eb3, openbsd/386's tfork implementation was accidentally changed in one instruction from using the "params" parameter to using the "psize" parameter. While here, OpenBSD's __tfork system call returns a pid_t which is an int32 on all OpenBSD architectures, so change runtime.tfork's return type from int64 to int32 and update the assembly implementations accordingly. LGTM=iant R=rsc, iant CC=golang-codereviews, jsing https://golang.org/cl/133190043
2014-08-28runtime: move finalizer thread to Go.Keith Randall
LGTM=dvyukov R=golang-codereviews, dvyukov, khr CC=golang-codereviews https://golang.org/cl/124630043
2014-08-28go/token: implement PositionFor accessorsRobert Griesemer
Package addition. PositionFor permits access to both, positions adjusted by //line comments (like the Position accessors), and unadjusted "raw" positions unaffected by //line comments. Raw positions are required for correct formatting of source code via go/printer which until now had to manually fix adjusted positions. Fixes #7702. LGTM=adonovan R=adonovan CC=golang-codereviews https://golang.org/cl/135110044
2014-08-28mime: style, perf, and test updates to case-insensitive lookupsBrad Fitzpatrick
Only grab the lock once, don't allocate, add more tests. LGTM=ruiu R=ruiu, josharian CC=golang-codereviews https://golang.org/cl/139780043
2014-08-28database/sql: use a value type instead of a pointerBrad Fitzpatrick
Follow-up to https://golang.org/cl/107020044/ Also add a little comment. LGTM=ruiu, josharian R=josharian, ruiu CC=golang-codereviews https://golang.org/cl/139760043
2014-08-28runtime: compare only until min(len(s1), len(s2))David Crawshaw
LGTM=bradfitz R=rsc, bradfitz CC=golang-codereviews https://golang.org/cl/139770043
2014-08-28database/sql: use slices rather than container/listAlberto García Hierro
Significantly reduces the number of allocations, while also simplifying the code and increasing performance by a 1-2%. benchmark old ns/op new ns/op delta BenchmarkConcurrentDBExec 13290567 13026236 -1.99% BenchmarkConcurrentStmtQuery 13249399 13008879 -1.82% BenchmarkConcurrentStmtExec 8806237 8680182 -1.43% BenchmarkConcurrentTxQuery 13628379 12756293 -6.40% BenchmarkConcurrentTxExec 4794800 4722440 -1.51% BenchmarkConcurrentTxStmtQuery 5040804 5200721 +3.17% BenchmarkConcurrentTxStmtExec 1366574 1336626 -2.19% BenchmarkConcurrentRandom 11119120 10926113 -1.74% benchmark old allocs new allocs delta BenchmarkConcurrentDBExec 14191 13684 -3.57% BenchmarkConcurrentStmtQuery 16020 15514 -3.16% BenchmarkConcurrentStmtExec 4179 3672 -12.13% BenchmarkConcurrentTxQuery 16025 15518 -3.16% BenchmarkConcurrentTxExec 12717 12709 -0.06% BenchmarkConcurrentTxStmtQuery 15532 15525 -0.05% BenchmarkConcurrentTxStmtExec 2175 2168 -0.32% BenchmarkConcurrentRandom 12320 11997 -2.62% benchmark old bytes new bytes delta BenchmarkConcurrentDBExec 2164827 2139760 -1.16% BenchmarkConcurrentStmtQuery 2418070 2394030 -0.99% BenchmarkConcurrentStmtExec 1728782 1704371 -1.41% BenchmarkConcurrentTxQuery 2477144 2452620 -0.99% BenchmarkConcurrentTxExec 588920 588343 -0.10% BenchmarkConcurrentTxStmtQuery 790866 796578 +0.72% BenchmarkConcurrentTxStmtExec 98502 98143 -0.36% BenchmarkConcurrentRandom 1725906 1710220 -0.91% LGTM=ruiu, dave, bradfitz R=golang-codereviews, ruiu, gobot, bradfitz, dave, minux CC=bradfitz, golang-codereviews https://golang.org/cl/107020044
2014-08-28runtime: fix arm buildDavid Crawshaw
LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/134030043
2014-08-28runtime: fix buildRuss Cox
'range hash' makes a copy of the hash array in the stack, creating a very large stack frame. It's just the right amount that it uses most but not all of the total stack size. If you have a lot of environment variables, like the builders, then this is too much and the g0 stack runs out of space. TBR=bradfitz CC=golang-codereviews https://golang.org/cl/132350043