1
0
mirror of https://github.com/golang/go synced 2024-11-19 01:24:39 -07:00
Commit Graph

3726 Commits

Author SHA1 Message Date
Alan Donovan
19dd02b670 go.tools/ssa: fix bug in SSA lifting (!)
The previous code introduced spurious loop-carried
dependencies for variables local to a loop body (for example).
The SSA renaming pass now treats an Alloc instruction like a
Store of the zero value.

Also:
- added regression test
- improved log messages
- made the Store/Load/Alloc cases look more similar.

R=gri, gri
CC=golang-dev
https://golang.org/cl/26750043
2013-11-14 17:33:07 -05:00
Robert Griesemer
27563ff576 go.tools/go/types: move gcimporter to its own package
- fixed a couple of TODOs
- various cleanups along the way
- adjusted clients

Once submitted, clients of go/types that don't explicitly
specify Config.Import will need to add the extra import:

import _ "code.google.com/p/go.tools/go/gcimporter"

to install the default (gc) importer in go/types.

R=adonovan, gri
CC=golang-dev
https://golang.org/cl/26390043
2013-11-14 14:11:43 -08:00
Brad Fitzpatrick
88f792caef godoc: be quiet by default about bad examples
Fixes golang/go#6759

R=golang-dev, adg, rsc
CC=golang-dev
https://golang.org/cl/26420044
2013-11-14 09:01:08 -08:00
Alan Donovan
75d66fbb7b go.tools/ssa/interp: fix build breakage.
(intersecting changes in client)

R=gri, gri
CC=golang-dev
https://golang.org/cl/24100046
2013-11-13 18:50:24 -05:00
Robert Griesemer
d1184e294e go.tools/go/types: fix build
(I inadvertently submitted a modified file.)

R=adonovan
CC=golang-dev
https://golang.org/cl/22750044
2013-11-13 15:21:38 -08:00
Richard Musiol
cfc002f30b go.tools/go/types: Do not throw error on division of float variables by zero.
R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/26040043
2013-11-13 15:16:19 -08:00
Alan Donovan
cadc2255fe go.tools/ssa: don't synthesize an empty "testmain" package.
Also, only examine functions defined in *_test.go files.

Added tests for empty and nonempty behaviour of CreateTestMainPackage.
(Required some surgery to interp_test.)

R=gri, gri
CC=golang-dev
https://golang.org/cl/25570044
2013-11-13 16:05:13 -05:00
Alan Donovan
3f686cae84 go.tools/go/types: print named types with package qualification.
Depending on the context, printing only the package name can
be ambiguous or even incorrect since it is valid only within
the environment of a given file's import specs.

(The standard library packages are mostly unique in their last
segment, but this is not the case for proprietary repos.)

R=gri, gri
CC=golang-dev
https://golang.org/cl/26300043
2013-11-13 16:03:41 -05:00
Alan Donovan
677415b351 go.tools/ssa: don't print * on type of package-level vars (*ssa.Global)
R=gri, gri
CC=golang-dev
https://golang.org/cl/26240043
2013-11-13 15:13:55 -05:00
Alan Donovan
70692d3c5f go.tools/pointer: fix constraint generation bug in *ssa.Select.
The previous code assumed that each channel item contained one field.

+ regression test.

R=crawshaw
CC=golang-dev
https://golang.org/cl/25480044
2013-11-13 09:13:42 -05:00
Alan Donovan
775fb1976b go.tools/oracle: make callgraph printing deterministic (and context-insensitive)
+ re-enable test.

R=crawshaw
CC=golang-dev
https://golang.org/cl/25730044
2013-11-13 09:11:10 -05:00
Alan Donovan
e7a2e079b0 go.tools/ssa: use correct Alloc.Comment in lifting.
(Only affects diagnostic output.)

R=gri, gri
CC=golang-dev
https://golang.org/cl/23770046
2013-11-12 23:04:09 -05:00
Brad Fitzpatrick
626e9341d5 godoc: add forgotten file from last CL to fix build
R=adg, franciscossouza, dave
CC=golang-dev
https://golang.org/cl/25650043
2013-11-12 15:46:25 -08:00
David Crawshaw
545b16b6db go.tools/astutil: add AddNamedImport
R=bradfitz
CC=golang-dev
https://golang.org/cl/23850044
2013-11-12 18:02:47 -05:00
Brad Fitzpatrick
515bcdc536 godoc: update Index.{Write,Reader}, add tests
R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/24490043
2013-11-12 14:58:47 -08:00
Robert Griesemer
f339918a70 go.tools/go/exact: some factoring, more tests
R=adonovan
CC=golang-dev
https://golang.org/cl/25440043
2013-11-12 12:45:43 -08:00
Richard Musiol
a5baa859ae go.tools/go/exact: Fix for exact.BinaryOp. It was modifying its argument.
R=golang-dev, gri, mail
CC=golang-dev
https://golang.org/cl/24570043
2013-11-12 10:06:24 -08:00
Alan Donovan
d8292e2a38 go.tools/go/types: cache method set for pointer-to-named in the Named.
This change improves the complete running time of 'ssadump cmd/oracle' by ~20%.

R=gri, gri
CC=golang-dev
https://golang.org/cl/22910045
2013-11-11 17:20:27 -05:00
Robert Griesemer
c798b9cca0 go.tools/go/types: check validity of import paths
This check is currently done in go/parser as well but
eventually can be removed from there (after Go 1.2).

R=adonovan
CC=golang-dev
https://golang.org/cl/22240045
2013-11-08 14:14:58 -08:00
Robert Griesemer
7b183d1766 go.tools/go/types, cmd/gotype: fix early bailout
Clients must have chance to look at panics they
are raising.

R=adonovan
CC=golang-dev
https://golang.org/cl/23820043
2013-11-08 12:52:57 -08:00
Robert Griesemer
e8fe66cd57 go.tools/go/types: print initialization cycles
Also: Always report cycle at first (in source order)
variable in the cycle.

R=adonovan, gri
CC=golang-dev
https://golang.org/cl/23370043
2013-11-08 12:06:10 -08:00
David Crawshaw
0d4ee40f21 go.tools/astutil: add Imports, which returns imports grouped by spacing.
R=bradfitz
CC=golang-dev
https://golang.org/cl/23660045
2013-11-08 14:51:15 -05:00
Robert Griesemer
0f193b767d go.tools/go/types: simplified GcImportedTypes test
R=adonovan
CC=golang-dev
https://golang.org/cl/23340043
2013-11-08 08:56:55 -08:00
Robert Griesemer
7520cff8d3 go.tools/go/types: remove a workaround for 386 bug
R=adonovan
CC=golang-dev
https://golang.org/cl/23350043
2013-11-08 08:55:16 -08:00
Andrew Gerrand
50d9adec93 go.tools/blog: strip prefix when serving static content
This fix permits godoc to serve images correctly under /blog/.

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/22700043
2013-11-08 13:28:32 +11:00
Kamil Kisiel
e59751ce56 oracle: Fix documentation references to importer package functions.
R=golang-dev, adonovan
CC=golang-dev
https://golang.org/cl/21230043
2013-11-07 16:47:35 -05:00
Robert Griesemer
0c141425f6 go.tools/cmd/gotype: parse in parallel
Performance increase is much smaller than expected;
need to investigate. Possibly, repeatedly (for each
line) accessing file sets from multiple goroutines
(in the scanner) is a bottle neck; or perhaps i/o.

R=adonovan
CC=golang-dev
https://golang.org/cl/23090043
2013-11-07 13:32:02 -08:00
Alan Donovan
f1e5b03c6e go.tools/ssa: populate Function.Referrers(), for anon functions.
Added sanity check to ensure Operands/Referrers are complete and dual.

Also: unexport Instruction.setBlock (=> no longer user-implementable).

R=gri
CC=golang-dev
https://golang.org/cl/22150043
2013-11-07 10:08:51 -05:00
Robert Griesemer
7123ca00a8 go.tools/go/types: fix bug in init cycle detection
Initialization cycles need to reported for cycles
that contain variables, even if they don't end in
a variable.

This fixes the last known issue with the existing
std library tests.

R=adonovan, gri
CC=golang-dev
https://golang.org/cl/22200049
2013-11-06 17:47:54 -08:00
Francesc Campoy
2c650d6a84 go.tools/present: add extension name to Code
This will be used to show the "Run" button for code snippets in go.talks only for Go when running on App Engine.

R=adg, r, iant
CC=golang-dev
https://golang.org/cl/21930047
2013-11-06 13:02:20 -08:00
David Crawshaw
6df4bd0406 go.tools/astutil: make sure import blocks are marked as such (Lparen=1)
R=bradfitz
CC=golang-dev
https://golang.org/cl/22320044
2013-11-06 15:31:54 -05:00
Brad Fitzpatrick
56a1b4d0b7 godoc: index import counts, package name to path(s), and exported symbols
R=golang-dev, crawshaw
CC=golang-dev
https://golang.org/cl/22190047
2013-11-06 15:00:26 -05:00
Brad Fitzpatrick
42513df8b8 godoc: add IndexInterval option
This will permit deleting some forked code elsewhere.

R=golang-dev, crawshaw
CC=golang-dev
https://golang.org/cl/22010046
2013-11-06 13:31:30 -05:00
David Crawshaw
0b5928ea2a go.tools/astutil: a package for common AST utilities.
Lifts the import management utilities from gofix into
a package, so they can be used by goimports.

R=bradfitz
CC=golang-dev
https://golang.org/cl/22430043
2013-11-06 13:30:30 -05:00
Robert Griesemer
eb67edd047 go.tools/go/types: add test cases for pending issues
The gc compiler is inconsistent how it handles method
"mentions" with respect to initialization cycle detection
(see issue 6703 for details). Pending a spec clarification,
this CL assumes that for a method to be "mentioned", it
must be mentioned as a method expression rather than a
method value (closer in intent to "syntactic" mention).

R=adonovan
CC=golang-dev
https://golang.org/cl/22050044
2013-11-06 09:55:03 -08:00
Alan Donovan
2e7d5a8b6b go.tools/ssa: dump types in "pkg."-unqualified form where appropriate.
Also: types.Typ[types.UnsafePointer].String() now always prints as "unsafe.Pointer".

R=gri
CC=golang-dev
https://golang.org/cl/21820044
2013-11-05 17:32:45 -05:00
Robert Griesemer
8e64946a3a go.tools/go/types: better error messages for api tests
R=adonovan
CC=golang-dev
https://golang.org/cl/22140043
2013-11-05 13:42:31 -08:00
Robert Griesemer
8b05c30f06 go.tools/go/types: track cycles through methods
R=adonovan
CC=golang-dev
https://golang.org/cl/22070043
2013-11-05 11:47:22 -08:00
Robert Griesemer
b33df7e76a go.tools/go/types: track init cycles through closures
R=adonovan
CC=golang-dev
https://golang.org/cl/21790044
2013-11-05 10:51:13 -08:00
Alan Donovan
d84d338a42 go.tools/ssa/interp: improve print() on interfaces, and log message for panic.
R=gri
CC=golang-dev
https://golang.org/cl/21960043
2013-11-05 13:03:14 -05:00
Alan Donovan
ce321e34d0 go.tools/ssa: simplify initialization of globals using go/types.Info.InitOrder.
R=gri
CC=golang-dev
https://golang.org/cl/21950043
2013-11-05 13:02:46 -05:00
Robert Griesemer
9d1e9ed2ab go.tools/go/types: track init cycles through functions
- Info.InitOrder now provides list of Initializers
  (vars + init expr), handling n:1 decls and blank
  identifiers
- added respective API test
- cycles detected through function "mentions"

Missing: cycles through method "mentions" and via
         closures

R=adonovan
CC=golang-dev
https://golang.org/cl/21810043
2013-11-05 09:25:25 -08:00
Brad Fitzpatrick
964f0f559c godoc: feed indexer concurrently, add selective indexing hook, tests
On big corpuses, the indexer was spending most of its time waiting
for filesystem operations (especially with network filesystems)
and not actually indexing.  This keeps the filesystem busy and indexer
running in different goroutines.

Also, add a hook to let godoc hosts disable indexing of certain
directories.

And finally, start adding tests for godoc, which required
fleshing out (and testing) the mapfs code.

R=golang-dev, adg, bgarcia
CC=golang-dev
https://golang.org/cl/21520045
2013-11-05 09:35:58 -05:00
Rob Pike
2afbb1cd5f go.tools/cmd/vet: handle symbolic TEXT annotations
The symbolic names such as NOSPLIT for annotations on the TEXT
directive appeared after vet started checking .s files. This CL tweaks
the regular expression to allow CAPITALS and the symbols | and +
as well as digits in that field, and interprets NOSPLIT as equivalent
to 7 in that field. All magic.

Fixes golang/go#6695

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/18700044
2013-11-01 11:49:11 -07:00
Alan Donovan
0faac9ebe6 go.tools/ssa: include line count in stdlib_test.
R=gri
CC=golang-dev
https://golang.org/cl/20860043
2013-11-01 14:32:44 -04:00
Brad Garcia
d9d5e51406 godoc: add ability to override generation of links to source code.
R=bradfitz
CC=golang-dev
https://golang.org/cl/19850046
2013-11-01 13:20:32 -04:00
Robert Griesemer
d259ea48d1 go.tools/go/types: first cut at checking variable initialization cycles
Missing:
- dependencies via functions (incl. closures and methods)
- more tests (incl. API test)

R=adonovan
CC=golang-dev
https://golang.org/cl/20510043
2013-10-31 21:47:35 -07:00
Alex Brainman
5879669d9d go.tools/dashboard/builder: ignore GOPATH setting during build (on windows)
R=golang-dev, minux.ma, adg
CC=golang-dev
https://golang.org/cl/18920046
2013-11-01 11:28:31 +11:00
Alan Donovan
74b761d099 go.tools/ssa: clarify spec of (*builder).complit().
Added test for []*map composite literals containing nested
literal subelements.  This required implementing
(reflect.Value).Map{Keys,Index} in ssa/interp.

Plus two minor fixes in ssa/interp.

R=gri
CC=golang-dev
https://golang.org/cl/20470043
2013-10-31 17:59:52 -04:00
Robert Griesemer
fb0632eb7d go.tools/go/types: Provide explicit type checker Error.
R=adonovan
CC=golang-dev
https://golang.org/cl/20400044
2013-10-31 12:01:00 -07:00