summaryrefslogtreecommitdiff
path: root/src/go
Commit message (Collapse)AuthorAgeFilesLines
...
* go/build: allow @ in #cgo directives for OS XRuss Cox2016-01-071-1/+2
| | | | | | | | | Fixes #13720. Change-Id: I2e48454696f37db419370630f913590c435cd9f0 Reviewed-on: https://go-review.googlesource.com/18331 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Russ Cox <rsc@golang.org>
* go/importer: always handle forward-declared imports in export dataRobert Griesemer2016-01-065-22/+90
| | | | | | | | | | | | | | | | The textual export data generated by gc sometimes contains forward references of packages. In rare cases such forward-referenced packages were not created when needed because no package name was present. Create unnamed packages in this case and set the name later when it becomes known. Fixes #13566. Change-Id: I193e0ec712e874030b194ab8ecb3fca140f7997a Reviewed-on: https://go-review.googlesource.com/18301 Reviewed-by: Russ Cox <rsc@golang.org> Reviewed-by: Alan Donovan <adonovan@google.com>
* build: shorten a few packages with long testsRuss Cox2015-12-292-2/+14
| | | | | | | | | | | | | Takes 3% off my all.bash run time. For #10571. Change-Id: I8f00f523d6919e87182d35722a669b0b96b8218b Reviewed-on: https://go-review.googlesource.com/18087 Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
* testing: use debug.SetTraceback("all") to show all goroutines at test timeoutRuss Cox2015-12-181-1/+1
| | | | | | | | | Fixes #13681. Change-Id: I308930f4d9200fbe0f09cd08c38392ca1bb0db67 Reviewed-on: https://go-review.googlesource.com/18044 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Austin Clements <austin@google.com>
* cmd/go: do not skip dirs with syntax errors in wildcard matching (like ./...)Russ Cox2015-12-181-18/+33
| | | | | | | | Fixes #11407. Change-Id: If35a8e04a3abf8acf955250c909dde57131b6bb8 Reviewed-on: https://go-review.googlesource.com/17971 Reviewed-by: Ian Lance Taylor <iant@golang.org>
* go/types: add link to tutorialAlan Donovan2015-12-171-0/+2
| | | | | | Change-Id: Ic4f4bc7ea7478908716b951815280e394c55310b Reviewed-on: https://go-review.googlesource.com/17975 Reviewed-by: Robert Griesemer <gri@golang.org>
* go/build: disable test on nacl (and a few others, unnecessarily)Russ Cox2015-12-171-0/+3
| | | | | | | | Fixes build. Change-Id: Ia71fc031cc8eb575e5ab5323ff4084147d143744 Reviewed-on: https://go-review.googlesource.com/17867 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* go/build: support vendor directories in ImportRuss Cox2015-12-162-13/+103
| | | | | | | | | | | | | | | | | | | | | This fix, plus a one-line change to golang.org/x/tools/go/loader, is sufficient to let that loader package process source code using vendored packages. For example, GOPATH="" ssadump net/http # uses vendored http2 used to fail, not able to find net/http's import of the vendored copy of golang.org/x/net/http2/hpack. This CL plus the fix to loader (CL 17727) suffices to get ssadump working, as well as - I expect - most other source code processing built on golang.org/x/tools/go/loader. Fixes #12278. Change-Id: I83715e757419171159f67d49bb453636afdd91f0 Reviewed-on: https://go-review.googlesource.com/17726 Reviewed-by: Ian Lance Taylor <iant@golang.org>
* go/constant: use Float.Rat method instead of doing it manuallyRobert Griesemer2015-12-162-35/+20
| | | | | | | | | | Also fixed conversion bug and added corresponding test case. Change-Id: I26f143fbc8d40a6d073ecb095e61b461495f3d68 Reviewed-on: https://go-review.googlesource.com/17872 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Alan Donovan <adonovan@google.com>
* go/constant: switch to floating-point representation when fractions become ↵Robert Griesemer2015-12-1414-311/+729
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | too large Use two internal representations for Float values (similar to what is done for Int values). Transparently switch to a big.Float representation when big.Rat values become unwieldy. This is almost never needed for real-world programs but it is trivial to create test cases that cannot be handled with rational arithmetic alone. As a consequence, the go/constant API semantics changes slightly: Until now, a value could always be represented in its "smallest" form (e.g., float values that happened to be integers would be represented as integers). Now, constant Kind depends on how the value was created, rather than its actual value. (The reason why we cannot automatically "normalize" values to their smallest form anymore is because floating-point numbers are not exact in general; and thus normalization is often not possible in the first place, or would throw away precision when it is not desired.) This has repercussions as to how constant Values are used go/types and required corresponding adjustments. Details of the changes: go/constant package: - use big.Rat and big.Float values to represent floating-point values (internal change) - changed semantic of Value.Kind accordingly - String now returns a short, human-readable form of a value (this leads to better error messages in go/types) - added ToInt, ToFloat, and ToComplex conversion functions - added ExactString to obtain an exact string form of a value go/types: - adjusted and simplified implementation of representableConst - adjusted various places where Value.Kind was expected to be "smallest" by calling the respective ToInt/Float/Complex conversion functions - enabled 5 disabled tests in stdlib_test.go that now work api checker: - print all constant values in a short human-readable form (floats are printed in floating-point form), but also print an exact form if it is different from the short form - adjusted test golden file and go.1.1.text reference file Fixes #11327. Change-Id: I492b704aae5b0238e5b7cee13e18ffce61193587 Reviewed-on: https://go-review.googlesource.com/17360 Reviewed-by: Alan Donovan <adonovan@google.com> Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
* go/parser, go/types: report invalid else branch in if statementsRobert Griesemer2015-12-074-2/+25
| | | | | | | | | | | | | | | | | | | | | - Only accept valid if statement syntax in go/parser. - Check AST again in go/types since it may have been modified and the AST doesn't preclude other statements in the else branch of an if statement. - Removed a test from gofmt which verified that old-style if statements permitting any statement in the else branch were correctly reformatted. It's been years since we switched to the current syntax; no need to support this anymore. - Added a comment to go/printer. Fixes #13475. Change-Id: Id2c8fbcc68b719cd511027d0412a37266cceed6b Reviewed-on: https://go-review.googlesource.com/17408 Reviewed-by: Russ Cox <rsc@golang.org>
* cmd/compile: avoid converting huge floats to integersRobert Griesemer2015-12-071-0/+1
| | | | | | | | Fixes #13471. Change-Id: I232ad1729343d020254e313cfff182695ad6fc54 Reviewed-on: https://go-review.googlesource.com/17401 Reviewed-by: Russ Cox <rsc@golang.org>
* go/doc, syscall: change 'more then' to 'more than'andrey mirtchovski2015-12-071-3/+3
| | | | | | | | | This change modifies comments to use the more gramatically correct "more than" instead of "more then". Change-Id: Ie3bddcf25eb6b243a21da934f2f3c76a750c083a Reviewed-on: https://go-review.googlesource.com/17488 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* go/ast: remove many blank lines in SortImportsSokolov Yura2015-12-041-2/+4
| | | | | | | | | | | | | | Currently only one blank line is checked to be removed. Changing sort.Sort may lead to more blank lines. Let's remove them all. It fixes a bug found by https://golang.org/cl/15688 Change-Id: I682cc23ecd7b10d9b6feb160da040a155297f578 Reviewed-on: https://go-review.googlesource.com/17440 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
* dwbug/elf: support old-style compressed DWARFAustin Clements2015-12-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | GCC and LLVM support zlib-compressing DWARF debug sections (and there's some evidence that this may be happening by default in some circumstances now). Add support for reading compressed DWARF sections. Since ELF relocations apply to the decompressed data, decompression is done before applying relocations. Since relcations are applied by debug/elf, decompression must also be handled there. Note that this is different from compressed ELF sections, which is a more general mechanism used by very recent versions of GCC. Updates #11773. Change-Id: I3f4bf1b04d0802cc1e8fcb7c2a5fcf6c467c5089 Reviewed-on: https://go-review.googlesource.com/17340 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
* go/types: fix race-y initialization of Struct.offsetsAleksandr Demakin2015-12-012-26/+37
| | | | | | | | | | | Use sync.Once to ensure, that 'offsets' field is initialized once only in a threadsafe way. Fixes #12887 Change-Id: I90ef929c421ccd3094339c67a39b02d8f2e47211 Reviewed-on: https://go-review.googlesource.com/16013 Reviewed-by: Robert Griesemer <gri@golang.org>
* go/build: fix cgo ${SRCDIR} substitution when that variable contains spacesDidier Spezia2015-11-262-9/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the source directory path contains spaces, cgo directives cannot be properly validated: $ pwd /root/src/issue 11868 $ cat main.go package main //#cgo CFLAGS: -I${SRCDIR}/../../include import "C" func main() { } $ go build can't load package: package issue 11868: /root/src/issue 11868/main.go: malformed #cgo argument: -I/root/src/issue 11868/../../include Make sure spaces are tolerated in ${SRCDIR} when this variable is expanded. This applies to ${SRCDIR} only. Shell safety checks are still done in the same exact way for anything else. Fixes #11868 Change-Id: I93d1d2b5ab167caa7ae353fe46fb8f69f1f06969 Reviewed-on: https://go-review.googlesource.com/16302 Reviewed-by: Russ Cox <rsc@golang.org>
* internal/race: add packageDmitry Vyukov2015-11-261-5/+6
| | | | | | | | | | | | | Factor out duplicated race thunks from sync, syscall net and fmt packages into a separate package and use it. Fixes #8593 Change-Id: I156869c50946277809f6b509463752e7f7d28cdb Reviewed-on: https://go-review.googlesource.com/14870 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Dmitry Vyukov <dvyukov@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
* cmd/link: add -libgcc optionIan Lance Taylor2015-11-181-0/+2
| | | | | | | | | | | | | | | | | An internal link may need the C compiler support library, libgcc.a. Add a -libgcc option to set the name of the compiler support library. If -libgcc is not used, run the compiler to find it. Permit -libgcc=none to skip using libgcc at all and hope for the best. Change cmd/dist to not copy libgcc into the distribution. Add tests to ensure that all the standard packages that use cgo can be linked in internal mode without using libgcc. This ensures that somebody with a Go installation without a C compiler can build programs. Change-Id: I8ba35fb87ab0dd20e5cc0166b5f4145b04ce52a4 Reviewed-on: https://go-review.googlesource.com/16993 Reviewed-by: Russ Cox <rsc@golang.org> Reviewed-by: Minux Ma <minux@golang.org>
* go/build: in TestDependencies, crypto/tls does not use cgoIan Lance Taylor2015-11-171-1/+1
| | | | | | | | Change-Id: Id164a099e0ac8bd231ee7ed8d7b7a34c91f5f68f Reviewed-on: https://go-review.googlesource.com/16991 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
* runtime/internal/atomic: delete arch1_*.go filesMichael Matloob2015-11-121-1/+1
| | | | | | | | | | I made a copy of the per-arch _CacheLineSize definitons when checking in runtime/internal/atomic. Now that runtime/internal/sys is checked in, we can use the definition there. Change-Id: I7242f6b633e4164f033b67ff471416b9d71c64d2 Reviewed-on: https://go-review.googlesource.com/16847 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* runtime: break out system-specific constants into package sysMichael Matloob2015-11-121-1/+2
| | | | | | | | | | | runtime/internal/sys will hold system-, architecture- and config- specific constants. Updates #11647 Change-Id: I6db29c312556087a42e8d2bdd9af40d157c56b54 Reviewed-on: https://go-review.googlesource.com/16817 Reviewed-by: Russ Cox <rsc@golang.org>
* runtime: break atomics out into package runtime/internal/atomicMichael Matloob2015-11-101-3/+5
| | | | | | | | | | | | | | | | | This change breaks out most of the atomics functions in the runtime into package runtime/internal/atomic. It adds some basic support in the toolchain for runtime packages, and also modifies linux/arm atomics to remove the dependency on the runtime's mutex. The mutexes have been replaced with spinlocks. all trybots are happy! In addition to the trybots, I've tested on the darwin/arm64 builder, on the darwin/arm builder, and on a ppc64le machine. Change-Id: I6698c8e3cf3834f55ce5824059f44d00dc8e3c2f Reviewed-on: https://go-review.googlesource.com/14204 Run-TryBot: Michael Matloob <matloob@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
* cmd/go: clean the directory path containing the packagesMohit Agarwal2015-11-091-1/+1
| | | | | | | | | | | | | | | The heuristic for determining if the packages or commands are stale fails as the mtime comparison happens even though the GOROOT and current package paths are the same, since the path name isn't canonicalized before the comparison (GOROOT is). Fixes: #12690 Change-Id: Ia7d142fbbed8aac2bd2f71d1db4efd1f3ff5aece Reviewed-on: https://go-review.googlesource.com/16483 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
* go/build: introduce go1.6 build tagBrad Fitzpatrick2015-11-082-1/+2
| | | | | | | | | | | | This is needed now for subrepos to be able to conditionally use API symbols found only after Go 1.5. Change-Id: I91f8a1154e2a74008e8ca79490e3f12847f9c3b2 Reviewed-on: https://go-review.googlesource.com/16733 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Mathieu Lonjaret <mathieu.lonjaret@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* net/http: register HTTP/2 before listening in ListenAndServeBrad Fitzpatrick2015-11-041-1/+1
| | | | | | | | Change-Id: Icf9b6802945051aa484fb9ebcce71704f5655474 Reviewed-on: https://go-review.googlesource.com/16630 Reviewed-by: Andrew Gerrand <adg@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
* go/types: fix TypeString(nil, nil)Matthew Dempsky2015-10-302-2/+3
| | | | | | | | | | | | The code is meant to return "<nil>", but because of a make([]Type, 8) call that should be make([]Type, 0, 8), the nil Type happens to already appear in the array. Change-Id: I2db140046e52f27db1b0ac84bde2b6680677dd95 Reviewed-on: https://go-review.googlesource.com/16464 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
* cmd/compile/internal/gc: escape binary export data so it contains no '$'Robert Griesemer2015-10-261-34/+72
| | | | | | | | | | | | | | Necessary to ensure that subsequent tools can continue to find then end of the export data section simply by searching for "$$". Adjusted gcimporter used by go/types accordingly. Also, fixed a bug in gcimporter related to reading export data in debug format. Change-Id: Iaea4ed05edd8a5bab28ebe5b19a4740f5e537d35 Reviewed-on: https://go-review.googlesource.com/16283 Reviewed-by: Chris Manghane <cmang@golang.org>
* cmd/compile/internal/gc: compact binary export formatRobert Griesemer2015-10-224-19/+718
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The binary import/export format is significantly more compact than the existing textual format. It should also be faster to read and write (to be measured). Use -newexport to enable, for instance: export GO_GCFLAGS=-newexport; make.bash The compiler can import packages using both the old and the new format ("mixed mode"). Missing: export info for inlined functions bodies (performance issue, does not affect correctness). Disabled by default until we have inlined function bodies and confirmation of no regression and equality of binaries. For #6110. For #1909. This change depends on: https://go-review.googlesource.com/16220 https://go-review.googlesource.com/16222 (already submitted) for all.bash to work. Some initial export data sizes for std lib packages. This data is without exported functions with inlineable function bodies. Package old new new/old archive/tar.................................13875.....3883 28% archive/zip.................................19464.....5046 26% bufio....................................... 7733.....2222 29% bytes.......................................10342.....3347 32% cmd/addr2line.................................242.......26 11% cmd/api.....................................39305....10368 26% cmd/asm/internal/arch.......................27732.....7939 29% cmd/asm/internal/asm........................35264....10295 29% cmd/asm/internal/flags........................629......178 28% cmd/asm/internal/lex........................39248....11128 28% cmd/asm.......................................306.......26 8% cmd/cgo.....................................40197....10570 26% cmd/compile/internal/amd64...................1106......214 19% cmd/compile/internal/arm....................27891.....7710 28% cmd/compile/internal/arm64....................891......153 17% cmd/compile/internal/big....................21637.....8336 39% cmd/compile/internal/gc....................109845....29727 27% cmd/compile/internal/mips64...................972......168 17% cmd/compile/internal/ppc64....................972......168 17% cmd/compile/internal/x86.....................1104......195 18% cmd/compile...................................329.......26 8% cmd/cover...................................12986.....3749 29% cmd/dist......................................477.......67 14% cmd/doc.....................................23043.....6793 29% cmd/expdump...................................167.......26 16% cmd/fix......................................1190......208 17% cmd/go......................................26399.....5629 21% cmd/gofmt.....................................499.......26 5% cmd/internal/gcprog..........................1342......490 37% cmd/internal/goobj...........................2690......980 36% cmd/internal/obj/arm........................32740....10057 31% cmd/internal/obj/arm64......................46542....15364 33% cmd/internal/obj/mips.......................42140....13731 33% cmd/internal/obj/ppc64......................42140....13731 33% cmd/internal/obj/x86........................52732....19015 36% cmd/internal/obj............................36729....11690 32% cmd/internal/objfile........................36365....10287 28% cmd/link/internal/amd64.....................45893....12220 27% cmd/link/internal/arm.........................307.......96 31% cmd/link/internal/arm64.......................345.......98 28% cmd/link/internal/ld.......................109300....46326 42% cmd/link/internal/ppc64.......................344.......99 29% cmd/link/internal/x86.........................334......107 32% cmd/link......................................314.......26 8% cmd/newlink..................................8110.....2544 31% cmd/nm........................................210.......26 12% cmd/objdump...................................244.......26 11% cmd/pack....................................14248.....4066 29% cmd/pprof/internal/commands..................5239.....1285 25% cmd/pprof/internal/driver...................37967.....8860 23% cmd/pprof/internal/fetch....................30962.....7337 24% cmd/pprof/internal/plugin...................47734.....7719 16% cmd/pprof/internal/profile..................22286.....6922 31% cmd/pprof/internal/report...................31187.....7838 25% cmd/pprof/internal/svg.......................4315......965 22% cmd/pprof/internal/symbolizer...............30051.....7397 25% cmd/pprof/internal/symbolz..................28545.....6949 24% cmd/pprof/internal/tempfile.................12550.....3356 27% cmd/pprof.....................................563.......26 5% cmd/trace....................................1455......636 44% cmd/vendor/golang.org/x/arch/arm/armasm....168035....64737 39% cmd/vendor/golang.org/x/arch/x86/x86asm.....26871.....8578 32% cmd/vet.....................................38980.....9913 25% cmd/vet/whitelist.............................102.......49 48% cmd/yacc.....................................2518......926 37% compress/bzip2...............................6326......129 2% compress/flate...............................7069.....2541 36% compress/gzip...............................20143.....5069 25% compress/lzw..................................828......295 36% compress/zlib...............................10676.....2692 25% container/heap................................523......181 35% container/list...............................3517......740 21% container/ring................................881......229 26% crypto/aes....................................550......187 34% crypto/cipher................................1966......825 42% crypto.......................................1836......646 35% crypto/des....................................632......235 37% crypto/dsa..................................18718.....5035 27% crypto/ecdsa................................23131.....6097 26% crypto/elliptic.............................20790.....5740 28% crypto/hmac...................................455......186 41% crypto/md5...................................1375......171 12% crypto/rand.................................18132.....4748 26% crypto/rc4....................................561......240 43% crypto/rsa..................................22094.....6380 29% crypto/sha1..................................1416......172 12% crypto/sha256.................................551......238 43% crypto/sha512.................................839......378 45% crypto/subtle................................1153......250 22% crypto/tls..................................58203....17984 31% crypto/x509/pkix............................29447.....8161 28% database/sql/driver..........................3318.....1096 33% database/sql................................11258.....3942 35% debug/dwarf.................................18416.....7006 38% debug/elf...................................57530....21014 37% debug/gosym..................................4992.....2058 41% debug/macho.................................23037.....6538 28% debug/pe....................................21063.....6619 31% debug/plan9obj...............................2467......802 33% encoding/ascii85.............................1523......360 24% encoding/asn1................................1718......527 31% encoding/base32..............................2642......686 26% encoding/base64..............................3077......800 26% encoding/binary..............................4727.....1040 22% encoding/csv................................12223.....2850 23% encoding......................................383......217 57% encoding/gob................................37563....10113 27% encoding/hex.................................1327......390 29% encoding/json...............................30897.....7804 25% encoding/pem..................................595......200 34% encoding/xml................................37798.....9336 25% errors........................................274.......36 13% expvar.......................................3155.....1021 32% flag........................................19860.....2849 14% fmt..........................................3137.....1263 40% go/ast......................................44729....13422 30% go/build....................................16336.....4657 29% go/constant..................................3703......846 23% go/doc.......................................9877.....2807 28% go/format....................................5472.....1575 29% go/importer..................................4980.....1301 26% go/internal/gccgoimporter....................5587.....1525 27% go/internal/gcimporter.......................8979.....2186 24% go/parser...................................20692.....5304 26% go/printer...................................7015.....2029 29% go/scanner...................................9719.....2824 29% go/token.....................................7933.....2465 31% go/types....................................64569....19978 31% hash/adler32.................................1176......176 15% hash/crc32...................................1663......360 22% hash/crc64...................................1587......306 19% hash/fnv.....................................3964......260 7% hash..........................................591......278 47% html..........................................217.......74 34% html/template...............................69623....12588 18% image/color/palette...........................315.......98 31% image/color..................................5565.....1036 19% image/draw...................................6917.....1028 15% image/gif....................................8894.....1654 19% image/internal/imageutil.....................9112.....1476 16% image/jpeg...................................6647.....1026 15% image/png....................................6906.....1069 15% image.......................................28992.....6139 21% index/suffixarray...........................17106.....4773 28% internal/singleflight........................1614......506 31% internal/testenv............................12212.....3152 26% internal/trace...............................2762.....1323 48% io/ioutil...................................13502.....3682 27% io...........................................6765.....2482 37% log.........................................11620.....3317 29% log/syslog..................................13516.....3821 28% math/big....................................21819.....8320 38% math/cmplx...................................2816......438 16% math/rand....................................2317......929 40% math.........................................7511.....2444 33% mime/multipart..............................12679.....3360 27% mime/quotedprintable.........................5458.....1235 23% mime.........................................6076.....1628 27% net/http/cgi................................59796....17173 29% net/http/cookiejar..........................14781.....3739 25% net/http/fcgi...............................57861....16426 28% net/http/httptest...........................84100....24365 29% net/http/httputil...........................67763....18869 28% net/http/internal............................6907......637 9% net/http/pprof..............................57945....16316 28% net/http....................................95391....30210 32% net/internal/socktest........................4555.....1453 32% net/mail....................................14481.....3608 25% net/rpc/jsonrpc.............................33335......988 3% net/rpc.....................................79950....23106 29% net/smtp....................................57790....16468 28% net/textproto...............................11356.....3248 29% net/url......................................3123.....1009 32% os/exec.....................................20738.....5769 28% os/signal.....................................437......167 38% os..........................................24875.....6668 27% path/filepath...............................11340.....2826 25% path..........................................778......285 37% reflect.....................................15469.....5198 34% regexp......................................13627.....4661 34% regexp/syntax................................5539.....2249 41% runtime/debug................................9275.....2322 25% runtime/pprof................................1355......477 35% runtime/race...................................39.......17 44% runtime/trace.................................228.......92 40% runtime.....................................13498.....1821 13% sort.........................................2848......842 30% strconv......................................2947.....1252 42% strings......................................7983.....2456 31% sync/atomic..................................2666.....1149 43% sync.........................................2568......845 33% syscall.....................................81252....38398 47% testing/iotest...............................2444......302 12% testing/quick...............................18890.....5076 27% testing.....................................16502.....4800 29% text/scanner.................................6849.....2052 30% text/tabwriter...............................6607.....1863 28% text/template/parse.........................22978.....6183 27% text/template...............................64153....11518 18% time........................................12103.....3546 29% unicode......................................9706.....3320 34% unicode/utf16................................1055......148 14% unicode/utf8.................................1118......513 46% vendor/golang.org/x/net/http2/hpack..........8905.....2636 30% All packages 3518505 1017774 29% Change-Id: Id657334f276383ff1e6fa91472d3d1db5a03349c Reviewed-on: https://go-review.googlesource.com/13937 Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Chris Manghane <cmang@golang.org>
* go/build: test code cleanup: remove unnecessary func varHyang-Ah Hana Kim2015-10-211-17/+14
| | | | | | | | | The earlier calls to test(false) in TestDependencies were removed by https://golang.org/cl/12576 Change-Id: If5c7994172379c2d7f633d2e9c5261e668c754fa Reviewed-on: https://go-review.googlesource.com/16117 Reviewed-by: Ian Lance Taylor <iant@golang.org>
* runtime, runtime/msan: add msan runtime supportIan Lance Taylor2015-10-211-1/+2
| | | | | | | | | | | | | | These are the runtime support functions for letting Go code interoperate with the C/C++ memory sanitizer. Calls to msanread/msanwrite are now inserted by the compiler with the -msan option. Calls to msanmalloc/msanfree will be from other runtime functions in a subsequent CL. Change-Id: I64fb061b38cc6519153face242eccd291c07d1f2 Reviewed-on: https://go-review.googlesource.com/16162 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
* go/types: check that typed constant shift expressions are representableMatthew Dempsky2015-10-192-2/+18
| | | | | | | | Fixes #12945. Change-Id: I08b44795fcd7ec59371aea8111f7febead54720b Reviewed-on: https://go-review.googlesource.com/15900 Reviewed-by: Robert Griesemer <gri@golang.org>
* net/http: enable automatic HTTP/2 if TLSNextProto is nilBrad Fitzpatrick2015-10-141-0/+1
| | | | | | | | | | | | | | | | | This enables HTTP/2 by default (for https only) if the user didn't configure anything in their NPN/ALPN map. If they're using SPDY or an alternate http2 or a newer http2 from x/net/http2, we do nothing and don't use the standard library's vendored copy of x/net/http2. Upstream remains golang.org/x/net/http2. Update #6891 Change-Id: I69a8957a021a00ac353f9d7fdb9a40a5b69f2199 Reviewed-on: https://go-review.googlesource.com/15828 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Andrew Gerrand <adg@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
* cmd/compile: fix some C to Go translation leftoversDidier Spezia2015-10-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | Following the C to Go translation, some useless variables were left in the code. In fmt.go, this was harmless. In lex.go, it broke the error message related to non-canonical import paths. Fix it, and remove the useless variables. The added test case is ignored in the go/types tests, since the behavior of the non-canonical import path check seems to be different. Fixes #11362 Change-Id: Ic9129139ede90357dc79ebf167af638cf44536fa Reviewed-on: https://go-review.googlesource.com/15580 Reviewed-by: Marvin Stenger <marvin.stenger94@gmail.com> Reviewed-by: Minux Ma <minux@golang.org> Run-TryBot: Minux Ma <minux@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
* net: remove imports of strconvIan Lance Taylor2015-10-051-2/+2
| | | | | | | | | | | | The net package already has support for limited uses of the strconv package. Despite this, a few uses of strconv have crept in over time. Remove them and use the existing net support instead. Change-Id: Icdb4bdaa8e1197f1119a96cddcf548ed4a551b74 Reviewed-on: https://go-review.googlesource.com/15400 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
* go/types: fix incorrect comment at Info.Implicits.Alan Donovan2015-10-011-1/+1
| | | | | | | Change-Id: Ibd24e1567cb03f7f00f3cbe381bedd6c5215af35 Reviewed-on: https://go-review.googlesource.com/15320 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
* go/format: handle whitespace-only input correctlyRobert Griesemer2015-09-302-6/+29
| | | | | | | | | | Applied identical change to cmd/gofmt/internal.go. Fixes #11275. Change-Id: Icb4bf0460c94c9e2830dd0d62c69376774cbda30 Reviewed-on: https://go-review.googlesource.com/15154 Reviewed-by: Alan Donovan <adonovan@google.com>
* go/format, cmd/gofmt: avoid dependency on internal package formatRobert Griesemer2015-09-302-3/+168
| | | | | | | | Fixes #11844. Change-Id: I32edd39e79f7c9bdc132c49bd06081f35dac245d Reviewed-on: https://go-review.googlesource.com/15114 Reviewed-by: Alan Donovan <adonovan@google.com>
* go/types: move gotype command into this directoryRobert Griesemer2015-09-291-0/+322
| | | | | | | | | | | | | | This is a copy of x/tools/cmd/gotype/gotype.go with the corresponding x/tools/cmd/gotype/doc.go prepended and including a build tag (ignore). This way, go/types can be built unaffected. If we need the gotype command, it is trivially built in the go/types directory with: go build gotype.go . Fixes #12303. Change-Id: I2d792fcb39719cc5cc300f657e4735901cd20faa Reviewed-on: https://go-review.googlesource.com/15152 Reviewed-by: Rob Pike <r@golang.org>
* go/types: clarify doc string for types.CheckRobert Griesemer2015-09-291-2/+4
| | | | | | | | For #12787. Change-Id: I921d01c8d7d97f3453b25e6d2241a43c5d64f53b Reviewed-on: https://go-review.googlesource.com/15150 Reviewed-by: Alan Donovan <adonovan@google.com>
* go/printer: avoid stomping on err before checking itTarmigan Casebolt2015-09-212-1/+44
| | | | | | | | Change-Id: I97ba31e758d3396842ad99a08af696e49a5f1a7d Reviewed-on: https://go-review.googlesource.com/13954 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
* go/types: handle import "C" more like cmd/compileRobert Griesemer2015-09-183-0/+25
| | | | | | | | Fixes #12667. Change-Id: I68e73e26da9938606304163ae2637e3c6bacd6f6 Reviewed-on: https://go-review.googlesource.com/14722 Reviewed-by: Alan Donovan <adonovan@google.com>
* go/types: unified handling of assignment errorsRobert Griesemer2015-09-1814-179/+158
| | | | | | | | | | - simpler code - closer to gc error messages - more context information in some cases Change-Id: Iad155a887b838a4fc1edf719eed18269670b5ede Reviewed-on: https://go-review.googlesource.com/14720 Reviewed-by: Alan Donovan <adonovan@google.com>
* go/types: cleanup handling of multi-valued expressionsRobert Griesemer2015-09-185-36/+27
| | | | | | | | | - more uniform error messages - removed unused code Change-Id: I625d5c2e51a543450ad091f97cec538023ddb1dd Reviewed-on: https://go-review.googlesource.com/14692 Reviewed-by: Alan Donovan <adonovan@google.com>
* go/types: better error message when using multi-valued expressions in ↵Robert Griesemer2015-09-188-17/+164
| | | | | | | | | | | | single-value context Also: Added initial set of (missing and/or spread out) tests for binary operations. Fixes #11896. Change-Id: I037436d8318c18f9758b435eca2d45b3bdd17ef8 Reviewed-on: https://go-review.googlesource.com/14660 Reviewed-by: Alan Donovan <adonovan@google.com>
* go/types: enable disabled testRobert Griesemer2015-09-181-2/+1
| | | | | | Change-Id: I101e9bc722f5ba4fa9941cb544d9c276fd4c0b8c Reviewed-on: https://go-review.googlesource.com/14651 Reviewed-by: Alan Donovan <adonovan@google.com>
* go/types: report detailed reason in error messages for invalid assignmentsRobert Griesemer2015-09-1811-80/+141
| | | | | | | | Fixes #10260. Change-Id: I52d059144608912e6f7f9516e4961a75e9463355 Reviewed-on: https://go-review.googlesource.com/14644 Reviewed-by: Alan Donovan <adonovan@google.com>
* go/parser: better error message for incorrect type switch headerRobert Griesemer2015-09-162-6/+15
| | | | | | | | Fixes 11829. Change-Id: I2e39f61e12953147b0cd6a11d29179c500c94964 Reviewed-on: https://go-review.googlesource.com/14566 Reviewed-by: Chris Manghane <cmang@golang.org>
* go/parser: comma is not permitted at the end of a struct field listRobert Griesemer2015-09-162-44/+54
| | | | | | | | | | Fixes #11611. Change-Id: I63d35cf15c3be759c899e3e561e631330dcc0bbb Reviewed-on: https://go-review.googlesource.com/14565 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Chris Manghane <cmang@golang.org>
* go/parser: better error message for unexpected ',' in struct typeRobert Griesemer2015-09-142-7/+14
| | | | | | | | Fixes #12437. Change-Id: I5463970a6259527003eb0e12903a338cc78e0683 Reviewed-on: https://go-review.googlesource.com/14564 Reviewed-by: Chris Manghane <cmang@golang.org>