1
0
mirror of https://github.com/golang/go synced 2024-11-18 21:05:02 -07:00
The Go programming language
Go to file
Alan Donovan 8bb20b8231 go.tools/pointer: more reflection.
Support for:
        (*reflect.rtype).Field
        (*reflect.rtype).FieldByName
        reflect.MakeSlice
        runtime.SetFinalizer

Details:
- analysis locates ssa.Functions for (reflect.Value).Call
  and runtime.SetFinalizer during startup to that it can
  special-case them during genCall.  ('Call' is forthcoming.)
- The callsite.targets mechanism is only used for dynamic
  calls now.  For static calls we call callEdge during constraint
  generation; this is a minor optimisation.
- Static calls to SetFinalizer are inlined so that the call
  appears to go direct to the finalizer.  (We'll use the same
  trick for (reflect.Value).Call.)
- runtime.FuncForPC: treat as a no-op.
- Fixed pointer_test to properly deal with expectations
  that are multi-sets.
- Inlined rtypeMethodByNameConstraint.addMethod.
- More tests.

R=crawshaw
CC=golang-dev
https://golang.org/cl/14682045
2013-10-17 09:26:44 -04:00
blog go.tools/blog: replace "\\" with "/" in path string to be compatible with windows platform 2013-10-08 16:55:56 +11:00
call go.tools/pointer: use new callgraph API. 2013-09-25 17:17:42 -04:00
cmd go.tools/ssa: implement correct control flow for recovered panic. 2013-10-14 15:38:56 -04:00
dashboard go.tools/dashboard: clone main repo from local path if it already exists locally. 2013-10-07 09:06:32 -07:00
go go.tools/go/types: fix StdSizes.Sizeof computation 2013-10-16 10:45:58 -07:00
godoc go.tools/godoc/static: fix & escape in codewalks 2013-10-13 22:22:48 -04:00
importer go.tools/ssa: implement correct control flow for recovered panic. 2013-10-14 15:38:56 -04:00
oracle go.tools/ssa: build a separate Function for each init() func. 2013-10-14 14:08:23 -04:00
playground go.tools/present: add support for non Go code execution 2013-10-14 14:14:08 -07:00
pointer go.tools/pointer: more reflection. 2013-10-17 09:26:44 -04:00
present present/code.go: remove residual file from an hg merge. 2013-10-02 11:02:33 +10:00
ssa go.tools/ssa/interp: use new Sizes interface (fix build) 2013-10-15 15:30:03 -07:00
.hgignore go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
AUTHORS go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
codereview.cfg go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
CONTRIBUTORS go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
LICENSE LICENSE: add 2012-03-17 15:20:58 +11:00
PATENTS go.empty: add PATENTS file to the subrepo. 2012-04-16 11:24:04 +10:00
README go.tools/README: update to make truthful 2013-10-09 11:47:05 -07:00

This subrepository holds the source for various packages and tools that support
the Go programming language.

Some of the tools, godoc and vet for example, are included in binary Go distributions.
Others, including the Go oracle and the test coverage tool, can be fetched with "go get".

Packages include a type-checker for Go and an implementation of the Single Static
Assignment (SSA) representation for Go programs.

To submit changes to this repository, see http://golang.org/doc/contribute.html.