1
0
mirror of https://github.com/golang/go synced 2024-11-18 22:55:23 -07:00
Commit Graph

786 Commits

Author SHA1 Message Date
Robert Griesemer
c4535ece1b go.tools/go/types: various cleanups - no semantic changes
- split resolver.go into resolver.go and decl.go
- renamed types.go -> type.go
- renamed objects.go -> object.go

LGTM=adonovan
R=adonovan
CC=golang-codereviews
https://golang.org/cl/58010043
2014-01-29 10:53:49 -08:00
Brad Garcia
efd232e270 godoc: set expvar for http.ResponseWriter errors.
R=bradfitz
CC=adg, golang-codereviews
https://golang.org/cl/56680044
2014-01-29 10:53:45 -05:00
Alan Donovan
744d7e68b1 go.tools/go/ssa: use bytes.Buffer instead of io.Writer.
This is (a) more efficient and (b) avoids the need for
constant error handling, since buffer writes can't fail.

Also:
- added WriteFunction and WritePackage functions,
  similar to types.WriteFoo.
- *Function and *Package now implement io.WriterTo.

LGTM=gri
R=gri
CC=golang-codereviews
https://golang.org/cl/57930044
2014-01-28 17:48:10 -05:00
Robert Griesemer
83cdd9ba10 go.tools/go/types: export ConvertibleTo
LGTM=adonovan
R=adonovan
CC=golang-codereviews
https://golang.org/cl/57950043
2014-01-28 14:28:10 -08:00
Alan Donovan
d0efad3082 go.tools/go/ssa: use types.WriteSignature
LGTM=gri
R=gri
CC=golang-codereviews
https://golang.org/cl/57930043
2014-01-28 17:04:41 -05:00
Alan Donovan
64ec206bfd go.tools/go/types: combine Info.{Types,Values} maps.
This results in significant improvement to type-checking time:
it reduces by 4% the entire running time of ssa/stdlib_test
(GOMAXPROCS=8, n=7).

LGTM=gri
R=gri
CC=golang-codereviews
https://golang.org/cl/57770043
2014-01-28 16:46:24 -05:00
Robert Griesemer
e5e20e3af5 go.tools/go/types: make WriteType cycle-resistent
Also:
- expose WriteSignature
- s/identicalInternal/identical/g

LGTM=adonovan
R=adonovan
CC=golang-codereviews
https://golang.org/cl/57860043
2014-01-28 13:42:46 -08:00
Robert Griesemer
7dbf7c000d go.tools/go/types: internal cleanup - nil out objmap when done with it
Also: print package path with quotes.

LGTM=adonovan
R=adonovan
CC=golang-codereviews
https://golang.org/cl/55520046
2014-01-28 12:56:33 -08:00
Robert Griesemer
ebfa4efbc4 go.tools/go/types: cleanup: more consistent exported predicate names
Renamed predicates:
IsIdentical -> Identical
IsAssignableTo -> AssignableTo
Signature.IsVariadic -> Signature.Variadic
Object.IsExported -> Object.Exported

LGTM=adonovan
R=adonovan
CC=golang-codereviews
https://golang.org/cl/53370043
2014-01-28 10:57:56 -08:00
Robert Griesemer
aea9f68811 go.tools/go/types: set array type even if length is invalid
This avoids some follow-up errors due to invalid
array declarations.

LGTM=adonovan
R=adonovan
CC=golang-codereviews
https://golang.org/cl/57640043
2014-01-28 09:40:12 -08:00
Robert Griesemer
ffc6416213 go.tools/go/types: print local types unqualified in error/debugging output
LGTM=adonovan
R=adonovan
CC=golang-codereviews
https://golang.org/cl/57630044
2014-01-28 09:22:53 -08:00
Brad Garcia
7ecad5bf71 godoc: periodically refresh package directory and search index.
R=adg, bradfitz
CC=golang-codereviews
https://golang.org/cl/55080043
2014-01-28 09:30:23 -05:00
Andrew Gerrand
8aae138131 go.tools/dashboard/app: update bad builder list
LGTM=r
R=r, minux.ma
CC=golang-codereviews
https://golang.org/cl/57580043
2014-01-28 17:59:29 +11:00
Andrew Gerrand
5cb6365d33 go.tools/dashboard/app: show sub-repository build history
LGTM=cmang
R=adonovan, gobot, cmang
CC=golang-codereviews
https://golang.org/cl/56410043
2014-01-28 14:30:48 +11:00
Alan Donovan
4dcb74e810 go.tools/go/ssa/interp: implement reflection over callstack (now that we have access to it).
+ tests.

Fixes golang/go#6041

Also: move global var _sizes to a field of interpreter.

LGTM=gri
R=gri
CC=golang-codereviews
https://golang.org/cl/56530046
2014-01-27 15:39:17 -05:00
Alan Donovan
fbb3d81367 go.tools/ssa/interp: add intrinsics for (*sync.Pool).{Get,Put}.
Since Put() makes a dynamic function call, this CL includes a long-overdue change to supply a *frame (and thus the call
stack and the interpreter) to intrinsics too.

This fixes the tests that were broken by (sound) revision e4a4cb47c141.

LGTM=gri
R=gri
CC=golang-codereviews
https://golang.org/cl/57350043
2014-01-27 13:11:16 -05:00
Brad Fitzpatrick
eda00ba4ec imports: bake in the standard library again
Fast path for the common case. Avoids scanning GOPATH usually.

LGTM=r, crawshaw
R=david.crawshaw, adg, r, crawshaw
CC=golang-codereviews
https://golang.org/cl/56820043
2014-01-26 09:47:31 -08:00
Andrew Gerrand
3b2989e9ea go.tools/dashboard: update CL on build failure
Only send mail to golang-dev if updating the CL fails.

R=golang-codereviews, dvyukov, minux.ma, rsc
CC=golang-codereviews
https://golang.org/cl/43760043
2014-01-24 14:52:23 +11:00
Andrew Gerrand
3342856161 go.tools/dashboard/app: sort builder columns in a more useful manner
Supported operating systems first, then race builders, then the rest.

R=r, bradfitz
CC=golang-codereviews
https://golang.org/cl/56190043
2014-01-24 09:13:34 +11:00
Alan Donovan
87b29f65dc go.tools/go/ssa/interp: fix broken import paths.
Fixes golang/go#7166

R=gri
CC=golang-codereviews
https://golang.org/cl/55710045
2014-01-22 17:19:25 -05:00
Alan Donovan
0dcaae1610 go.tools/go/loader: permit Create* methods to specify the ad-hoc package's path
CL 49530047 made the (over-)simplifying assumption that the
Path of an ad-hoc (Created) package should default to its
Name, i.e. package declaration.

With this change, the Name is still always computed from the
package declaration (by go/types) but the Path may be
specified by the loader.Config.  If "", the value of the Name
is used, which is not globally unique.

R=gri, axwalk
CC=golang-codereviews
https://golang.org/cl/55180043
2014-01-22 09:59:19 -05:00
Robert Griesemer
074bd4ac9c go.tools/go/types: cleanup: remove unnecessary receiver
R=adonovan
CC=golang-codereviews
https://golang.org/cl/53810044
2014-01-17 11:17:43 -08:00
Alan Donovan
2845638157 go.tools/go/ssa: simplify builder.exprN now that go/types emits correct types.
(Follow-up to fix of issue 7060.)

Also: comment fixes.

R=gri
CC=golang-codereviews
https://golang.org/cl/47670043
2014-01-17 09:38:25 -05:00
Robert Griesemer
2d6b34a0f5 go.tools/go/types: report rhs type for comma-ok expressions
Fixes golang/go#7060.

R=adonovan
CC=golang-codereviews
https://golang.org/cl/53520043
2014-01-16 19:33:51 -08:00
Robert Griesemer
0b4b877c72 go.tools/go/types: remove size from Basic
More localized computation of sizes.

R=adonovan
CC=golang-codereviews
https://golang.org/cl/53460043
2014-01-16 14:47:26 -08:00
Robert Griesemer
9b91992c8c go.tools/go/loader: add missing argument to fmt.Errorf call
R=adonovan
CC=golang-codereviews
https://golang.org/cl/53360043
2014-01-16 13:20:02 -08:00
Robert Griesemer
184bc0cc8c go.tools/go/gccgoimporter: remove dead code
R=adonovan
CC=golang-codereviews
https://golang.org/cl/53340043
2014-01-16 13:19:39 -08:00
Robert Griesemer
e4a00b5ce3 go.tools/go/importer: fix format string
R=adonovan
CC=golang-codereviews
https://golang.org/cl/52360045
2014-01-16 13:17:46 -08:00
Alan Donovan
9cfde22948 go.tools/ssa/interp: rewrite initorder test.
Correct, this time.

R=gri
CC=golang-codereviews
https://golang.org/cl/52930043
2014-01-16 14:08:04 -05:00
Alan Donovan
b856247075 go.tools/call: rename package to go/callgraph
Was:		Now:
call.Graph	callgraph.Graph
call.GraphNode	callgraph.Node
call.Edge	callgraph.Edge

Though call.Graph was cute, the original naming was a mistake:
'call' is too useful a var name to waste on a package.

R=gri, crawshaw
CC=golang-codereviews
https://golang.org/cl/53190043
2014-01-16 14:04:19 -05:00
Alan Donovan
3fc0fc1310 go.tools: rename packages.
Was:		Now:
ssa		go/ssa
importer	go/loader
pointer		go/pointer

Next CL: call -> go/callgraph (requires more care)

R=gri, crawshaw
CC=golang-codereviews
https://golang.org/cl/52960043
2014-01-16 09:33:58 -05:00
Alan Donovan
d20cbc12f1 go.tools/oracle: eliminate reliance on undefined map iteration order.
(Unmasked by recent randomization of small (<8) map iteration.)

R=gri, crawshaw, bradfitz
CC=golang-codereviews
https://golang.org/cl/51170044
2014-01-15 22:55:52 -05:00
Alan Donovan
e8afbfad8c go.tools/importer: API rethink.
The Importer type has been replaced with Config and Program.

Clients populate a Config, directly or more usually via
convenience functions.  They then call its Load() method to do
all of the typechecking and transitive-closure computation.

ssa.NewProgram and ssa.CreatePackages have been fused into
ssa.Create, which now cannot fail, since (*Config).Load()
reports all type errors.

Also:
- The addition of an ssa.GlobalDebug builder mode flag
  eliminates a loop-over-packages repeated in many clients.
- PackageInfo.Err flag unexported.  Clients never see bad infos now.
- cmd/ssadump: now only looks for func "main" in package "main".
- importsOf deleted, was dead code.

STILL TODO:
- ParseFile seems like API creep (though it's convenient)
  and CreateFromFiles is dangerous (w.r.t. FileSet identity).
  Need to think more...
- the need for clients to rely on elementwise correspondence
  of Config.CreatePkgs and Program.Created is a little sad.
- The command-line interface has not changed.
  That will happen in a follow-up.
  r recommends using a repeated flag: -package p -package q ...

R=gri
CC=axwalk, frederik.zipp, golang-codereviews
https://golang.org/cl/49530047
2014-01-15 21:37:55 -05:00
Robert Griesemer
d71b7746ee go.tools/oracle: disable broken test (fix build)
R=adonovan
TBR=adonovan
CC=golang-codereviews
https://golang.org/cl/52920043
2014-01-15 16:25:40 -08:00
Robert Griesemer
981e35990f go.tools/ssa/interp: fix init order test (partial build fix)
R=adonovan
TBR=adonovan
CC=golang-codereviews
https://golang.org/cl/52600044
2014-01-15 16:16:49 -08:00
Robert Griesemer
e1c6a8ff95 go.tools/go/types: init order depends on source order
Apply sorting consistently to object->decl maps.

Fixes golang/go#7131.

R=adonovan
CC=golang-codereviews
https://golang.org/cl/52890043
2014-01-15 15:15:32 -08:00
Alan Donovan
b75a5a4b65 go.tools/ssa: skip redundant identifier qualification in package dump.
(Reduces ssadump -build=P verbosity by 25%.)

R=gri
CC=golang-codereviews
https://golang.org/cl/52730044
2014-01-15 13:51:50 -05:00
Alan Donovan
8dabab4124 go.tools/ssa/interp: remove irrelevent parts of test, improve comments.
(Discovered during diagnosis of bug 7131.)

R=gri
CC=golang-codereviews
https://golang.org/cl/52780043
2014-01-15 13:50:11 -05:00
Robert Griesemer
5d7773006a go.tools/go/types: minor cleanups
- remove TODO in exact.go
- use testing.Verbose() rather than local verbose flag

R=adonovan
CC=golang-codereviews
https://golang.org/cl/52500043
2014-01-14 21:04:35 -08:00
Alan Donovan
39fe7e6f8e go.tools/ssa/interp: fix windows build.
- Add missing import.
- platform-specific files syswrite() wrapper presents
  standard API to syscall.Write, even on Windows where
  first arg is a Handle.

Fixes golang/go#7100

R=gri, minux.ma, alex.brainman
CC=golang-codereviews
https://golang.org/cl/52250043
2014-01-14 21:47:31 -05:00
Peter Collingbourne
a0cc29953e go.tools/go/types: introduce Func.Scope()
The goal is to allow clients to distinguish function-local objects
from package-local objects and identify the specific function by
examining its scope. For example, a compiler may need to mangle
object names according to the outer function name.

R=gri
CC=golang-codereviews, golang-dev
https://golang.org/cl/52280043
2014-01-14 14:47:27 -08:00
Peter Collingbourne
0c15485ecc go.tools/go/types: use WordSize as function pointer size
Both gc and gccgo appear to use this size, so it seems appropriate
to use it here.

R=gri
CC=golang-codereviews, golang-dev, iant, rsc
https://golang.org/cl/52290043
2014-01-14 14:10:09 -08:00
Alan Donovan
f3eb05bcef go.tools/ssa: eliminate (non-nil) slice constants.
go/types no longer reports a constant value for a slice,
e.g. []byte("foo").

ssa.Const no longer support slice constants, only
bool/string/numeric and nil.

emitConv emits a Convert instruction for string->[]byte
conversions.

Added regression test for bug 6949.

R=gri
CC=golang-codereviews
https://golang.org/cl/50590043
2014-01-13 16:45:46 -05:00
Robert Griesemer
29ac1365f4 go.tools/oracle: adjust golden output to new names
R=adonovan
TBR=adonovan
CC=golang-codereviews
https://golang.org/cl/49530049
2014-01-10 16:05:14 -08:00
Robert Griesemer
179e0b3699 go.tools/go/types: only report constants with constant types
The issue is addressed with the change in conversions.go.

Also:
- added corresponding API test
- made names for untyped ints, bools consistent with others
- use *Basic with names byte/rune instead of uint8/int32 for better output
- minor cleanups

Fixes golang/go#6949.

R=adonovan
CC=golang-codereviews
https://golang.org/cl/50520043
2014-01-10 15:21:51 -08:00
Alan Donovan
d2fe54b33c go.tools/ssa: fix bug: lifting pass invalidated Referrers info for DebugRef's X operand.
Tested: by enabling debug info globally in stdlib_test,
the existing sanity checks catch it.

R=gri
CC=golang-codereviews
https://golang.org/cl/50570043
2014-01-10 17:10:12 -05:00
Alan Donovan
3d82e7e94a go.tools/ssa: fix crash in SSA builder when using GCImporter to satisfy imports (ssadump -build=G).
Packages were not being created for all types.Packages,
specifically, indirectly imported packages were missing.
(*Program).CreatePackages now iterates over the type-checker's
package map too.

Also: removed all concurrency from importer.  I think it was
incorrect (and hard to fix).

Also: change LoadInitialPackages so that all named packages
are loaded from source.  This happens regardless of whether
GCImporter is used to satisfy imports.

Details:
- importer.Config.SourceImports flag determines whether to
  load all packages from *.go source.
  (Before, this was indicated by Config.Build != nil.)
- importer.Config.Build field effectively defaults to
  &go/build.Default.  A zero importer.Config is now usable.
- importer.Importer.Config field is now exported.
- LoadPackage renamed to ImportPackage since the resulting
  packages may come from GCImporter (and be incomplete).
- doImport and ImportPackage fused.

Fixes golang/go#7028

R=gri, axwalk
CC=golang-codereviews
https://golang.org/cl/48770043
2014-01-09 14:11:54 -05:00
Robert Griesemer
df3357d07f go.tools/go/types: simplify variable usage error detection
Now that inner functions are processed "in line", usage errors
can be detected immediately after each function is processed.

R=adonovan
CC=golang-codereviews
https://golang.org/cl/49900044
2014-01-09 10:45:42 -08:00
Robert Griesemer
4e620158a2 go.tools/go/types: use correct outer scope state for inner functions
Inner function bodies must be type-checked "in-place" for
them to see the correct state of the surrounding scopes.

Fixes golang/go#7035.

R=adonovan
CC=golang-codereviews
https://golang.org/cl/49350043
2014-01-09 08:40:32 -08:00
Peter Collingbourne
d0b88d2206 cmd/gotype: add -gccgo flag
R=gri
CC=golang-codereviews, golang-dev
https://golang.org/cl/39050043
2014-01-08 15:25:17 -08:00