summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* runtime: fix windows buildRuss Cox2014-09-011-1/+1
| | | | | | | | #ifdef'ed out code wasn't updated for argp change. TBR=iant CC=golang-codereviews https://codereview.appspot.com/139040043
* runtime: change concatstring panic to gothrowRuss Cox2014-09-011-1/+1
| | | | | | | | | It was a throw originally; it was converted incorrectly. LGTM=dave R=khr, dave CC=golang-codereviews https://codereview.appspot.com/139000043
* runtime: include os_*.h in the generated Go structsRuss Cox2014-09-013-5/+8
| | | | | | | | | | | | | | | Adding the #include to defs.c makes it get processed by cmd/dist, which writes out Go equivalent for all the C data structures defined in defs.c. This in turn makes it necessary to define the Plink type, used in os_plan9.h, in os_plan9.go. Rename it to _Plink to avoid being exported. LGTM=0intro, iant R=golang-codereviews, iant, 0intro CC=golang-codereviews, r https://codereview.appspot.com/132490043
* runtime: change PC, SP values in Stkframe, Panic, Defer from byte* to uintptrRuss Cox2014-09-017-50/+50
| | | | | | | | | | uintptr is better when translating to Go, and in a few places it's better in C too. LGTM=r R=golang-codereviews, r CC=golang-codereviews, iant, khr https://codereview.appspot.com/138980043
* runtime/race: better handling of atomic operationsDmitriy Vyukov2014-09-0111-300/+166
| | | | | | | | | | | | | | This change fixes the last known false negative of the race detector -- detection of races between mutating atomic operations and non-atomic operations. Race runtime already has functions for precise modelling of various atomic operations, so this change just forwards all atomic ops to race runtime instead of poor man modeling in sync/atomic package. Performance is also improved -- full sync/atomic tests run in 60s instead of 85s now. LGTM=khr R=golang-codereviews, khr CC=golang-codereviews, rsc https://codereview.appspot.com/111310044
* strings: use Rabin-Karp algorithm for LastIndex.Rui Ueyama2014-09-012-12/+67
| | | | | | | | | | | | | | | | | benchmark old ns/op new ns/op delta BenchmarkSingleMatch 49443 52275 +5.73% BenchmarkIndex 28.8 27.4 -4.86% BenchmarkLastIndex 14.5 14.0 -3.45% BenchmarkLastIndexHard1 3982782 2309200 -42.02% BenchmarkLastIndexHard2 3985562 2287715 -42.60% BenchmarkLastIndexHard3 3555259 2282866 -35.79% LGTM=josharian, nigeltao R=golang-codereviews, ality, josharian, bradfitz, dave, nigeltao, gobot, nightlyone CC=golang-codereviews https://codereview.appspot.com/102560043 Committer: Nigel Tao <nigeltao@golang.org>
* runtime: remove old malloc test programsRuss Cox2014-09-014-335/+0
| | | | | | | | | These haven't been run in ages. LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews, iant, khr, r https://codereview.appspot.com/134170043
* archive/zip: add Writer.FlushBrad Fitzpatrick2014-08-312-0/+25
| | | | | | | | | | | | This is needed for callers to be able to keep track of the writing position within a zip file. Otherwise it's not possible to compute the size of headers, and the TOC isn't written until the very end. LGTM=adg R=adg CC=golang-codereviews https://codereview.appspot.com/134210043
* runtime: paste mprof.goc into mprof.go as commentsRuss Cox2014-09-011-40/+384
| | | | | | | | | | | | | | | | | | | | | NO CODE CHANGES HERE The first conversion was not complete. This CL doesn't make any actual changes, but it inserts the missing mprof.goc code as comments so that the next CL will have useful diffs. To make the diffs a bit more useful, removed all semicolons, ->, and runtime? prefixes as well. Also corrected order of a few functions in mprof.go to match original order in mprof.goc. LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews, iant, khr, r https://codereview.appspot.com/134200043
* cmd/ld: diagnose Go calling CRuss Cox2014-08-316-6/+75
| | | | | | | | | | For example: go build -ldflags -C cmd/go 2>&1 | awk '{print $NF}' | sort | uniq -c | sort -nr LGTM=khr R=khr, josharian CC=golang-codereviews https://codereview.appspot.com/135170044
* net/http: fix typo in commentDmitri Shuralyov2014-09-011-1/+1
| | | | | | | | | LGTM=adg R=golang-codereviews, adg CC=golang-codereviews https://codereview.appspot.com/138960043 Committer: Andrew Gerrand <adg@golang.org>
* image/png: make the CompressionLevel constants negative, reservingNigel Tao2014-09-011-4/+7
| | | | | | | | | positive numbers to mean a numeric zlib compression level. LGTM=bradfitz, ruiu R=bradfitz, ruiu CC=golang-codereviews, jeff.allen https://codereview.appspot.com/138860043
* runtime: fix Linux buildIan Lance Taylor2014-08-303-4/+4
| | | | | | | | | | | | Make the definition of the EpollEvent data field consistent across architectures, adapt the other use of it in netpoll_epoll for the new definition, and use uint64 rather than uintptr. LGTM=dave R=rsc, dave CC=golang-codereviews https://codereview.appspot.com/137890043
* cmd/cc: generate error if #pragma pack off does anythingRuss Cox2014-08-305-11/+20
| | | | | | | | | | | | We can't translate misaligned things to Go, so start rejecting them in C. The only one in any build appears to be EpollEvent on linux/amd64. Fix that. LGTM=r R=golang-codereviews, r, dvyukov CC=golang-codereviews, iant https://codereview.appspot.com/137020043
* runtime: translate env*.c to GoRuss Cox2014-08-309-124/+121
| | | | | | | | | | | | In an earlier CL I wrote a separate Go-only version, but that broke Plan 9, because the Go-only version assumed a non-Plan 9 system. Translate the real ones instead. LGTM=r R=golang-codereviews, r CC=0intro, golang-codereviews, iant, khr https://codereview.appspot.com/140050044
* runtime/pprof: make CPU profiling tests more robustDmitriy Vyukov2014-08-301-21/+50
| | | | | | | | | | 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://codereview.appspot.com/133370043
* runtime: preallocate panic errors for index and sliceRuss Cox2014-08-301-2/+6
| | | | | | | | | This avoids allocating at the panic sites. LGTM=r, khr R=golang-codereviews, r, khr CC=dvyukov, golang-codereviews, iant, khr https://codereview.appspot.com/136020043
* runtime: convert chanrecv to GoKeith Randall2014-08-309-417/+328
| | | | | | | LGTM=rsc, dvyukov R=golang-codereviews, bradfitz, rsc, dvyukov CC=golang-codereviews https://codereview.appspot.com/136980044
* net/url: make Userinfo.String() escape ? and add test for shouldEscapeEvan Kroske2014-08-302-5/+62
| | | | | | | | | | | | See RFC 3986 ?3.2.1. Fixes issue 6573. LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://codereview.appspot.com/126560043 Committer: Brad Fitzpatrick <bradfitz@golang.org>
* go/doc/headscan: update script to count headings with an ID attributeEvan Kroske2014-08-301-7/+8
| | | | | | | | | | | | Fixes script used to sanity-check the heading-detection heuristic of go/doc. Fixes issue 8467. LGTM=gri R=golang-codereviews, gobot, gri CC=golang-codereviews https://codereview.appspot.com/128720043 Committer: Robert Griesemer <gri@golang.org>
* runtime: retry fix openbsd buildMatthew Dempsky2014-08-294-9/+9
| | | | | | | | | | | Tested on linux/amd64 too this time. LGTM=bradfitz R=golang-codereviews, bradfitz CC=dave, golang-codereviews, iant, rsc https://codereview.appspot.com/140050043 Committer: Brad Fitzpatrick <bradfitz@golang.org>
* net/http: add BasicAuth method to *http.RequestKelsey Hightower2014-08-292-0/+100
| | | | | | | | | | | | | | | | | | | | 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 issue 6779. LGTM=bradfitz R=golang-codereviews, josharian, bradfitz, alberto.garcia.hierro, blakesgentry CC=golang-codereviews https://codereview.appspot.com/76540043 Committer: Brad Fitzpatrick <bradfitz@golang.org>
* runtime: increase nosplit area to 192Russ Cox2014-08-303-4/+4
| | | | | | | | | | | | | | | | | | | | 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://codereview.appspot.com/132480043
* runtime: rename SysAlloc to sysAlloc for GoRuss Cox2014-08-3017-30/+33
| | | | | | | | | | 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://codereview.appspot.com/140060043
* runtime: convert type algorithms to GoDmitriy Vyukov2014-08-3012-481/+130
| | | | | | | | | | | | | | 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://codereview.appspot.com/139930044
* undo CL 135230043 / 60812bad3769Russ Cox2014-08-305-10/+10
| | | | | | | | | | | | | | | | | | | broke api check everywhere ??? original CL description runtime: fix openbsd build LGTM=iant R=iant, minux CC=golang-codereviews, jsing https://codereview.appspot.com/135230043 Committer: Ian Lance Taylor <iant@golang.org> ??? TBR=mdempsky CC=golang-codereviews https://codereview.appspot.com/137010043
* net: implement query-response fast failover in builtin dns stub resolverAlex A Skinner2014-08-302-41/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 issue 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://codereview.appspot.com/128820043 Committer: Mikio Hara <mikioh.mikioh@gmail.com>
* runtime: fix openbsd buildMatthew Dempsky2014-08-295-10/+10
| | | | | | | | | LGTM=iant R=iant, minux CC=golang-codereviews, jsing https://codereview.appspot.com/135230043 Committer: Ian Lance Taylor <iant@golang.org>
* runtime: rename Sigaltstack to SigaltstackTIan Lance Taylor2014-08-2930-47/+47
| | | | | | | | | Avoids a conflict between the type and function sigaltstack. LGTM=crawshaw R=rsc, crawshaw CC=golang-codereviews https://codereview.appspot.com/138920043
* undo CL 107150043 / caa2646daa63Mikio Hara2014-08-3010-146/+2
| | | | | | | | | | | | | | | | | | | | | | | 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 issue 8218. LGTM=iant R=golang-codereviews, iant, minux CC=golang-codereviews https://codereview.appspot.com/107150043 Committer: Ian Lance Taylor <iant@golang.org> ??? LGTM=r R=r, iant, golang-codereviews CC=golang-codereviews https://codereview.appspot.com/138840044
* net: ensure identical queries are not sent multiple times in builtin stub ↵Alex A Skinner2014-08-302-12/+15
| | | | | | | | | | | | | | | | | | | | | | | | resolver Prevents non-rooted queries with > ndots dots from being tried twice on error. Fixes issue 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://codereview.appspot.com/137870043 Committer: Mikio Hara <mikioh.mikioh@gmail.com>
* runtime: make allp a static arrayRuss Cox2014-08-292-6/+8
| | | | | | | | | | 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://codereview.appspot.com/139960043
* runtime: convert lock*.c to GoRuss Cox2014-08-2923-541/+620
| | | | | | | LGTM=r, iant R=golang-codereviews, r, iant CC=dvyukov, golang-codereviews, khr https://codereview.appspot.com/139930043
* runtime: include constants and defs_*_*.h types in generated Go defsRuss Cox2014-08-2931-77/+91
| | | | | | | | | | 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://codereview.appspot.com/140740043
* crypto: add SignerAdam Langley2014-08-297-16/+114
| | | | | | | | | | | | | | | | | 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://codereview.appspot.com/114680043
* text/template/parse: restore pointer-only receivers for Type on Dot and NilRob Pike2014-08-291-0/+14
| | | | | | | | | Needless except that the api tool complains. We could fix that issue instead. TBR=bradfitz R=golang-codereviews CC=golang-codereviews https://codereview.appspot.com/133290043
* runtime: run runtime.initRuss Cox2014-08-291-0/+2
| | | | | | | | | | | | | | | | | | 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://codereview.appspot.com/135210043
* cmd/gc: allow runtime to define a hex integer type for printingRuss Cox2014-08-294-11/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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://codereview.appspot.com/133220043
* runtime: implement 64 bit division in GoJosh Bleecher Snyder2014-08-294-33/+170
| | | | | | | LGTM=rsc, dave R=minux, rsc, remyoudompheng, dave CC=golang-codereviews https://codereview.appspot.com/133790043
* text/template: add back pointer to Nodes for better error generationRob Pike2014-08-298-168/+272
| | | | | | | | | | | | | | | | | 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 issue 8577. LGTM=adg R=golang-codereviews, adg CC=golang-codereviews https://codereview.appspot.com/130620043
* runtime: clean up GC codeDmitriy Vyukov2014-08-297-111/+19
| | | | | | | | | | | | | 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://codereview.appspot.com/139910043
* runtime: fix sprintf index out of boundsRuss Cox2014-08-291-1/+1
| | | | | | | | | | 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://codereview.appspot.com/133260044
* runtime: allow sysvicall functions to be called from GoAram H?v?rneanu2014-08-295-59/+116
| | | | | | | | | Convert them to Go in the process. LGTM=dvyukov, dave R=khr, dvyukov, rsc, dave CC=golang-codereviews https://codereview.appspot.com/131600043
* runtime: allow to call stdcall from Go on windowsDmitriy Vyukov2014-08-295-60/+149
| | | | | | | | | | | 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://codereview.appspot.com/135090043
* image/png: do not apply filters if level is NoCompressionRui Ueyama2014-08-292-7/+13
| | | | | | | | | | | | | 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://codereview.appspot.com/137830043 Committer: Nigel Tao <nigeltao@golang.org>
* runtime: convert forcegc helper to GoDmitriy Vyukov2014-08-294-36/+40
| | | | | | | | | | | | | | | 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://codereview.appspot.com/136770043
* runtime: don't allocate a new string in printfKeith Randall2014-08-283-1/+3
| | | | | | | LGTM=dave R=rsc, dave CC=golang-codereviews https://codereview.appspot.com/139890043
* runtime: convert closechan/chanlen/chancap to GoKeith Randall2014-08-283-82/+77
| | | | | | | LGTM=bradfitz, rsc R=golang-codereviews, bradfitz, rsc CC=golang-codereviews https://codereview.appspot.com/135150043
* net: add more cases to lookup API testMikio Hara2014-08-291-35/+129
| | | | | | | LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://codereview.appspot.com/126450043
* runtime: convert print.c to GoRuss Cox2014-08-2814-600/+388
| | | | | | | LGTM=iant R=golang-codereviews, iant CC=dvyukov, golang-codereviews, khr, r https://codereview.appspot.com/135930043