summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* liblink: use pc-relative addressing for all memory references in amd64 codeRuss Cox2014-08-183-28/+28
| | | | | | | LGTM=rminnich, iant R=golang-codereviews, rminnich, iant CC=golang-codereviews, r https://codereview.appspot.com/125140043
* runtime: avoid $sym(SB) as constantRuss Cox2014-08-181-2/+4
| | | | | | | | | The change to pc-relative addressing will make this illegal. LGTM=iant R=golang-codereviews, iant CC=golang-codereviews, r https://codereview.appspot.com/129890043
* cmd/6g: fix undefined behavior in reg.cDave Cheney2014-08-191-1/+1
| | | | | | | | | | | Update issue 8527 Fixes, cmd/6g/reg.c:847:24: runtime error: left shift of 1 by 31 places cannot be represented in type 'int' LGTM=minux, rsc R=minux, rsc CC=dvyukov, golang-codereviews https://codereview.appspot.com/129290043
* fmt: print byte stringers correctlyAndrew Gerrand2014-08-192-2/+37
| | | | | | | | | | | | | | | | | | | type T byte func (T) String() string { return "X" } fmt.Sprintf("%s", []T{97, 98, 99, 100}) == "abcd" fmt.Sprintf("%x", []T{97, 98, 99, 100}) == "61626364" fmt.Sprintf("%v", []T{97, 98, 99, 100}) == "[X X X X]" This change makes the last case print correctly. Before, it would have been "[97 98 99 100]". Fixes issue 8360. LGTM=r R=r, dan.kortschak CC=golang-codereviews https://codereview.appspot.com/129330043
* bzip2: improve performanceJeff R. Allen2014-08-182-62/+55
| | | | | | | | | | | | | | | | | | | | | | | | Improve performance of move-to-front by using cache-friendly copies instead of doubly-linked list. Simplify so that the underlying slice is the object. Remove the n=0 special case, which was actually slower with the copy approach. benchmark old ns/op new ns/op delta BenchmarkDecodeDigits 26429714 23859699 -9.72% BenchmarkDecodeTwain 76684510 67591946 -11.86% benchmark old MB/s new MB/s speedup BenchmarkDecodeDigits 1.63 1.81 1.11x BenchmarkDecodeTwain 1.63 1.85 1.13x Updates issue 6754. LGTM=adg, agl, josharian R=adg, agl, josharian CC=golang-codereviews https://codereview.appspot.com/131840043 Committer: Adam Langley <agl@golang.org>
* runtime: move panicindex/panicslice to Go.Keith Randall2014-08-182-12/+13
| | | | | | | LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://codereview.appspot.com/130210043
* unicode: strconv: regexp: Upgrade to Unicode 7.0.0.Marcel van Lohuizen2014-08-187-376/+1124
| | | | | | | LGTM=r, bradfitz R=r, bradfitz CC=golang-codereviews https://codereview.appspot.com/127470043
* runtime: add more cases to GC info testDmitriy Vyukov2014-08-181-1/+23
| | | | | | | LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews, khr, rlh, rsc https://codereview.appspot.com/125420043
* internal/syscall: add support for getrandom on armBrad Fitzpatrick2014-08-181-1/+2
| | | | | | | | | Added in linux commit eb6452537b28 LGTM=agl R=agl CC=golang-codereviews https://codereview.appspot.com/130170043
* runtime: implement transfer cacheDmitriy Vyukov2014-08-184-45/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently we do the following dance after sweeping a span: 1. lock mcentral 2. remove the span from a list 3. unlock mcentral 4. unmark span 5. lock mheap 6. insert the span into heap 7. unlock mheap 8. lock mcentral 9. observe empty list 10. unlock mcentral 11. lock mheap 12. grab the span 13. unlock mheap 14. mark span 15. lock mcentral 16. insert the span into empty list 17. unlock mcentral This change short-circuits this sequence to nothing, that is, we just cache and use the span after sweeping. This gives us functionality similar (even better) to tcmalloc's transfer cache. benchmark old ns/op new ns/op delta BenchmarkMalloc8 22.2 19.5 -12.16% BenchmarkMalloc16 31.0 26.6 -14.19% LGTM=khr R=golang-codereviews, khr CC=golang-codereviews, rlh, rsc https://codereview.appspot.com/119550043
* runtime: fix dump of data/bssDmitriy Vyukov2014-08-184-30/+25
| | | | | | | | | Fixes issue 8530. LGTM=khr R=golang-codereviews, khr CC=golang-codereviews, rsc https://codereview.appspot.com/124440043
* runtime: don't acquirem on malloc fast pathDmitriy Vyukov2014-08-185-13/+67
| | | | | | | | | | | | | | | | | | | Mallocgc must be atomic wrt GC, but for performance reasons don't acquirem/releasem on fast path. The code does not have split stack checks, so it can't be preempted by GC. Functions like roundup/add are inlined. And onM/racemalloc are nosplit. Also add debug code that checks these assumptions. benchmark old ns/op new ns/op delta BenchmarkMalloc8 20.5 17.2 -16.10% BenchmarkMalloc16 29.5 27.0 -8.47% BenchmarkMallocTypeInfo8 31.5 27.6 -12.38% BenchmarkMallocTypeInfo16 34.7 30.9 -10.95% LGTM=khr R=golang-codereviews, khr CC=golang-codereviews, rlh, rsc https://codereview.appspot.com/123100043
* runtime: mark with non-atomic operations when GOMAXPROCS=1Dmitriy Vyukov2014-08-161-1/+2
| | | | | | | | | | Perf builders show 3-5% GC pause increase with GOMAXPROCS=1 when marking with atomic ops: http://goperfd.appspot.com/perfdetail?commit=a8a6e765d6a87f7ccb71fd85a60eb5a821151f85&commit0=3b864e02b987171e05e2e9d0840b85b5b6476386&kind=builder&builder=linux-amd64&benchmark=http LGTM=rlh R=golang-codereviews, rlh CC=dave, golang-codereviews, khr, rsc https://codereview.appspot.com/128340043
* cmd/ld: fix operator precedenceDave Cheney2014-08-161-1/+1
| | | | | | | | | | | Fixes issue 8480. This CL reapplies CL 114420043. This attempt doesn't blow up when encountering hidden symbols. LGTM=minux R=minux CC=golang-codereviews https://codereview.appspot.com/128310043
* cmd/ld: fix operator precedenceShenghou Ma2014-08-161-1/+1
| | | | | | | | | LGTM=rsc R=gobot, dave CC=golang-codereviews, iant, rsc https://codereview.appspot.com/114420043 Committer: Dave Cheney <dave@cheney.net>
* crypto/x509: SystemRootsError style tweaks, document in VerifyBrad Fitzpatrick2014-08-151-3/+5
| | | | | | | | | | In retrospect this should've been a variable instead of a type, but oh well. LGTM=agl R=agl CC=golang-codereviews https://codereview.appspot.com/129250044
* cmd/dist: goc2c ignores GOROOT_FINALHenning Schmiedehausen2014-08-153-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | When building golang, the environment variable GOROOT_FINAL can be set to indicate a different installation location from the build location. This works fine, except that the goc2c build step embeds line numbers in the resulting c source files that refer to the build location, no the install location. This would not be a big deal, except that in turn the linker uses the location of runtime/string.goc to embed the gdb script in the resulting binary and as a net result, the debugger now complains that the script is outside its load path (it has the install location configured). See https://code.google.com/p/go/issues/detail?id=8524 for the full description. Fixes issue 8524. LGTM=iant R=golang-codereviews, iant CC=golang-codereviews https://codereview.appspot.com/128230046 Committer: Ian Lance Taylor <iant@golang.org>
* A+C: Henning Schmiedehausen (individual CLA)Ian Lance Taylor2014-08-152-0/+2
| | | | | | | | Generated by a+c. R=gobot CC=golang-codereviews https://codereview.appspot.com/130140043
* cmd/go: fix a couple of errors found by "go vet"Rob Pike2014-08-152-2/+2
| | | | | | | LGTM=iant R=golang-codereviews, iant CC=golang-codereviews https://codereview.appspot.com/127410043
* fmt: fix size returned on fast path of ReadRuneRob Pike2014-08-152-0/+33
| | | | | | | | | Fixes issue 8512. LGTM=iant R=golang-codereviews, iant CC=golang-codereviews https://codereview.appspot.com/130090043
* runtime: fix getgcmaskDmitriy Vyukov2014-08-152-20/+40
| | | | | | | | | | | | bv.data is an array of uint32s but the code was using offsets computed for an array of bytes. Add a test for stack GC info. Fixes issue 8531. LGTM=rsc R=golang-codereviews CC=golang-codereviews, khr, rsc https://codereview.appspot.com/124450043
* cmd/gc: disallow pointer constantsMatthew Dempsky2014-08-152-2/+31
| | | | | | | | | | | Fixes issue 7760. LGTM=iant R=iant, remyoudompheng CC=golang-codereviews https://codereview.appspot.com/130720043 Committer: Ian Lance Taylor <iant@golang.org>
* misc/nacl: add debugging instructionsDmitriy Vyukov2014-08-151-3/+31
| | | | | | | LGTM=dave, minux R=golang-codereviews, dave, minux CC=golang-codereviews, rsc https://codereview.appspot.com/122570043
* net: fix CNAME resolving on WindowsEgon Elbre2014-08-156-12/+341
| | | | | | | | | | | Fixes issue 8492 LGTM=alex.brainman R=golang-codereviews, alex.brainman CC=golang-codereviews https://codereview.appspot.com/122200043 Committer: Alex Brainman <alex.brainman@gmail.com>
* doc: make it point to correct go1.3.1 change historyMikio Hara2014-08-151-1/+1
| | | | | | | LGTM=minux, adg R=golang-codereviews, minux, adg CC=golang-codereviews https://codereview.appspot.com/129180043
* runtime: mark objects with non-atomic operationsDmitriy Vyukov2014-08-141-5/+16
| | | | | | | | | | | | | | On the go.benchmarks/garbage benchmark with GOMAXPROCS=16: old ns/op new ns/op delta time 1392254 1353170 -2.81% cputime 21995751 21373999 -2.83% gc-pause-one 15044812 13050524 -13.26% gc-pause-total 213636 185317 -13.26% LGTM=rlh R=golang-codereviews, rlh CC=golang-codereviews, khr, rsc https://codereview.appspot.com/123380043
* cmd/cgo: check for compiler errors in the C preambleMatthew Dempsky2014-08-143-3/+30
| | | | | | | | | | | | | | | | | | | | E.g., here's the new "go build" output: $ go build misc/cgo/errors/issue8442.go # command-line-arguments could not determine kind of name for C.issue8442foo gcc errors for preamble: misc/cgo/errors/issue8442.go:11:19: error: unknown type name 'UNDEF' Fixes issue 8442. LGTM=iant R=iant, alex.brainman CC=golang-codereviews https://codereview.appspot.com/129160043 Committer: Ian Lance Taylor <iant@golang.org>
* doc/go1.4.txt: cmd/go changes, syscallRob Pike2014-08-131-0/+5
| | | | | CC=golang-codereviews https://codereview.appspot.com/129130043
* text/scanner: improve documentationRobert Griesemer2014-08-131-0/+6
| | | | | | | LGTM=r R=r CC=golang-codereviews https://codereview.appspot.com/123390043
* cmd/cgo, debug/dwarf: fix translation of zero-size arraysMatthew Dempsky2014-08-133-57/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In cgo, now that recursive calls to typeConv.Type() always work, we can more robustly calculate the array sizes based on the size of our element type. Also, in debug/dwarf, the decision to call zeroType is made based on a type's usage within a particular struct, but dwarf.Type values are cached in typeCache, so the modification might affect uses of the type in other structs. Current compilers don't appear to share DWARF type entries for "[]foo" and "[0]foo", but they also don't consistently share type entries in other cases. Arguably modifying the types is an improvement in some cases, but varying translated types according to compiler whims seems like a bad idea. Lastly, also in debug/dwarf, zeroType only needs to rewrite the top-level dimension, and only if the rest of the array size is non-zero. Fixes issue 8428. LGTM=iant R=iant CC=golang-codereviews https://codereview.appspot.com/127980043 Committer: Ian Lance Taylor <iant@golang.org>
* runtime: keep objects in free lists marked as allocated.Dmitriy Vyukov2014-08-134-130/+133
| | | | | | | | | | | | | | | | | Restore https://codereview.appspot.com/41040043 after GC rewrite. Original description: On the plus side, we don't need to change the bits on malloc and free. On the downside, we need to mark objects in the free lists during GC. But the free lists are small at GC time, so it should be a net win. benchmark old ns/op new ns/op delta BenchmarkMalloc8 21.9 20.4 -6.85% BenchmarkMalloc16 31.1 29.6 -4.82% LGTM=khr R=khr CC=golang-codereviews, rlh, rsc https://codereview.appspot.com/122280043
* cmd/dist: Reuse streq whenever possible.Thiago Fransosi Farina2014-08-133-13/+13
| | | | | | | | | | | | | | Basically this cleanup replaces all the usage usages of strcmp() == 0, found by the following command line: $ grep -R strcmp cmd/dist | grep "0" LGTM=iant R=iant CC=golang-codereviews https://codereview.appspot.com/123330043 Committer: Ian Lance Taylor <iant@golang.org>
* doc: remove the "the" in "the the" in the release notesAndrew Gerrand2014-08-131-1/+1
| | | | | | | LGTM=r R=r CC=golang-codereviews https://codereview.appspot.com/128170043
* tag go1.3.1Andrew Gerrand2014-08-130-0/+0
| | | | | | | LGTM=r R=r CC=golang-codereviews https://codereview.appspot.com/125170044
* misc/makerelease: exit with nonzero status code on errorAndrew Gerrand2014-08-131-0/+5
| | | | | | | LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://codereview.appspot.com/129040043
* all: copy cmd/ld/textflag.h into pkg/GOOS_GOARCHRob Pike2014-08-12128-130/+135
| | | | | | | | | | | | | | | | | | | | | | | | The file is used by assembly code to define symbols like NOSPLIT. Having it hidden inside the cmd directory makes it hard to access outside the standard repository. Solution: As with a couple of other files used by cgo, copy the file into the pkg directory and add a -I argument to the assembler to access it. Thus one can write just #include "textflag.h" in .s files. The names in runtime are not updated because in the boot sequence the file has not been copied yet when runtime is built. All other .s files in the repository are updated. Changes to doc/asm.html, src/cmd/dist/build.c, and src/cmd/go/build.go are hand-made. The rest are just the renaming done by a global substitution. (Yay sam). LGTM=rsc R=rsc CC=golang-codereviews https://codereview.appspot.com/128050043
* cmd/6c, cmd/6g: avoid address-as-constant in amd64 instructionsRuss Cox2014-08-123-14/+3
| | | | | | | | | | | This allows implementing address-of-global as a pc-relative address instead of as a 32-bit integer constant. LGTM=rminnich, iant R=golang-codereviews, rminnich, iant CC=golang-codereviews https://codereview.appspot.com/128070045
* cmd/go: adjust import comment errorRuss Cox2014-08-122-2/+2
| | | | | | | | | Fixes issue 7453. LGTM=r R=r CC=golang-codereviews https://codereview.appspot.com/127210043
* runtime: avoid using address as constant in amd64 assemblyRuss Cox2014-08-121-5/+10
| | | | | | | | | | This allows changing the addressing mode for constant global addresses to use pc-relative addressing. LGTM=rminnich, iant R=golang-codereviews, rminnich, iant CC=golang-codereviews https://codereview.appspot.com/129830043
* doc/compat1.html: link to go.sysRob Pike2014-08-121-1/+2
| | | | | | | | | | You talked me into it. This and other links should be updated once the new import paths for the subrepos are established. LGTM=minux R=golang-codereviews, minux CC=golang-codereviews https://codereview.appspot.com/124260043
* syscall: freeze the packageRob Pike2014-08-122-0/+21
| | | | | | | | | | | Add a clause to the doc comment for the package and a paragraph in the compatibility document explaining the situation. LGTM=bradfitz, adg, rsc R=golang-codereviews, adg, bradfitz, minux, rsc CC=golang-codereviews https://codereview.appspot.com/129820043
* cmd/ld: handle large link base addressesRuss Cox2014-08-122-8/+8
| | | | | | | | | | codeblk and datblk were truncating their arguments to int32. Don't do that. LGTM=dvyukov, rminnich R=iant, dvyukov, rminnich CC=golang-codereviews https://codereview.appspot.com/126050043
* cmd/go, go/build: implement import comment checkingRuss Cox2014-08-1213-14/+206
| | | | | | | | | | | | | | | See golang.org/s/go14customimport for design. Added case to deps_test to allow go/build to import regexp. Not a new dependency, because go/build already imports go/doc which imports regexp. Fixes issue 7453. LGTM=r R=r, josharian CC=golang-codereviews https://codereview.appspot.com/124940043
* doc: document go1.3.1Andrew Gerrand2014-08-131-0/+7
| | | | | | | LGTM=r R=r, rsc CC=golang-codereviews https://codereview.appspot.com/126060043
* crypto/rand: use getrandom system call on LinuxBrad Fitzpatrick2014-08-124-2/+105
| | | | | | | | | | | Adds internal/syscall package. Fixes Issue 8520 LGTM=r, agl R=agl, rsc, r CC=golang-codereviews, iant https://codereview.appspot.com/123260044
* runtime: remove FlagNoProfileDmitriy Vyukov2014-08-132-13/+9
| | | | | | | | | Turns out to be unused as well. LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews, khr https://codereview.appspot.com/127170044
* runtime/pprof: fix data raceDmitriy Vyukov2014-08-131-6/+0
| | | | | | | | | | | It's unclear why we do this broken double-checked locking. The mutex is not held for the whole duration of CPU profiling. Fixes issue 8365. LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://codereview.appspot.com/116290043
* cmd/cgo: make C function pointers non-assignableMatthew Dempsky2014-08-124-2/+23
| | | | | | | | | | | | Fixes issue 7757. Fixes issue 8488. LGTM=iant R=iant CC=golang-codereviews https://codereview.appspot.com/118690044 Committer: Ian Lance Taylor <iant@golang.org>
* dist: Make vaddn private to buf.cThiago Fransosi Farina2014-08-121-1/+1
| | | | | | | | | | | | | This function does not have a declaration/prototype in a.h, and it is used only in buf.c, so it is local to it and thus can be marked as private by adding 'static' to it. LGTM=iant R=rsc, iant CC=golang-codereviews https://codereview.appspot.com/122300043 Committer: Ian Lance Taylor <iant@golang.org>
* A+C: Thiago Fransosi Farina (individual CLA)Ian Lance Taylor2014-08-122-0/+2
| | | | | | | | | Generated by a+c. LGTM=bradfitz R=bradfitz CC=golang-codereviews https://codereview.appspot.com/125960043