Compare commits

..

404 Commits

Author SHA1 Message Date
Andrew Gerrand
30be9b4313 [release-branch.go1] syscall: use exported StringToUTF16 in windows test
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6551056
2012-09-21 17:10:44 -05:00
Alex Brainman
2e0e7637c5 net/http: disable TestServeFileFromCWD test on windows
This is an attempt to fix windows build. Will restore
once we know what the problem is.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6461046
2012-08-07 13:19:49 +10:00
Andrew Gerrand
3f03b6f83a [release-branch.go1] update VERSION to go1.0.3 2012-09-22 05:55:21 +10:00
Andrew Gerrand
6f727ec2a8 [release-branch.go1] remove src/pkg/exp 2012-09-22 05:55:20 +10:00
Andrew Gerrand
c2de7b2cd6 [release-branch.go1] net/http: add missing hasToken function 2012-09-22 05:55:20 +10:00
Andrew Gerrand
6ab2bfa952 [release-branch.go1] doc: document go1.0.3
««« backport 671c5b05dc40
doc: document go1.0.3

R=rsc, r
CC=gobot, golang-dev
https://golang.org/cl/6532049

»»»
2012-09-22 05:55:19 +10:00
Andrew Gerrand
03b13534a6 [release-branch.go1] doc/talks: remove talks, refer to talks.golang.org instead
««« backport e3b986984e53
doc/talks: remove talks, refer to talks.golang.org instead

These talks have been moved to the go.talks sub-repository:
        https://code.google.com/p/go.talks

R=rsc, r
CC=gobot, golang-dev
https://golang.org/cl/6529052

»»»
2012-09-22 05:55:19 +10:00
Adam Langley
074f8ae030 [release-branch.go1] A+C: Add Andrew Harding (Individual CLA)
««« backport f041c9b94d6a
A+C: Add Andrew Harding  (Individual CLA)

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/6544044

»»»
2012-09-22 05:55:18 +10:00
Robert Griesemer
1a2a921f0a [release-branch.go1] encoding/gob: fix comment
««« backport ee8276dbea49
encoding/gob: fix comment

Fixes #4100.

R=adg, r, dave
CC=golang-dev
https://golang.org/cl/6535055

»»»
2012-09-22 05:55:18 +10:00
Shenghou Ma
32d59a576a [release-branch.go1] src/all.bat: fix banner
««« backport 2f7827571b44
src/all.bat: fix banner
we need to restore %PATH% before calling "dist banner", so that
it could suggest the user to add %GOROOT%/bin to %PATH% if necessary.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6525049

»»»
2012-09-22 05:55:17 +10:00
Anthony Eufemio
1a18d27e43 [release-branch.go1] builtin: Changed documentation for rune type.
««« backport 6cfab3a0935e
builtin: Changed documentation for rune type.
Fixes #4093.

R=golang-dev, bradfitz, r
CC=golang-dev
https://golang.org/cl/6536047

»»»
2012-09-22 05:55:17 +10:00
Brad Fitzpatrick
86f6236205 [release-branch.go1] A+C: Add Anthony Eufemio (Individual CLA)
««« backport 773a05fbc002
A+C: Add Anthony Eufemio (Individual CLA)

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6524045

»»»
2012-09-22 05:55:16 +10:00
Oling Cat
b15e848a2d [release-branch.go1] doc/effective_go: Closed some tags; removed extra spaces.
««« backport 04608c28273f
doc/effective_go: Closed some tags; removed extra spaces.

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/6488122

»»»
2012-09-22 05:55:16 +10:00
Nigel Tao
bff99b63f4 [release-branch.go1] image/jpeg: ignore an incorrect but harmless trailing restart marker.
««« backport 7af3dbecf445
image/jpeg: ignore an incorrect but harmless trailing restart marker.

Fixes #4084.

R=r
CC=golang-dev
https://golang.org/cl/6526043

»»»
2012-09-22 05:55:15 +10:00
Andrew Gerrand
4ecd79f337 [release-branch.go1] doc: document OS X tarballs
««« backport 195e4fc09b2d
doc: document OS X tarballs

R=golang-dev
CC=golang-dev
https://golang.org/cl/6506129

»»»
2012-09-22 05:55:15 +10:00
Eric Roshan-Eisner
c4a12429a7 [release-branch.go1] A+C: update Eric Roshan-Eisner
««« backport b7ce1e467a60
A+C: update Eric Roshan-Eisner

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6492135

»»»
2012-09-22 05:55:14 +10:00
Shenghou Ma
e65172afbe [release-branch.go1] run.bash: fix a typo (fix build)
««« backport 11cdfc399090
run.bash: fix a typo (fix build)

R=golang-dev
CC=golang-dev
https://golang.org/cl/6506121

»»»
2012-09-22 05:55:14 +10:00
Shenghou Ma
c01c6c672d [release-branch.go1] run.bash: set appropriate ulimits
««« backport a97b81d2600f
run.bash: set appropriate ulimits
    mainly for NetBSD/OpenBSD.

R=bradfitz, r, rsc
CC=golang-dev
https://golang.org/cl/6453154

»»»
2012-09-22 05:55:13 +10:00
Shenghou Ma
a0adc48823 [release-branch.go1] runtime: fix SI_USER for FreeBSD
««« backport 283f6087807b
runtime: fix SI_USER for FreeBSD
Ref: http://svnweb.freebsd.org/base/head/sys/sys/signal.h?revision=HEAD&view=markup

R=golang-dev, devon.odell, r
CC=golang-dev
https://golang.org/cl/6490118

»»»
2012-09-22 05:55:13 +10:00
Brad Fitzpatrick
4ba17d5097 [release-branch.go1] os/exec: don't crash when out of fds
««« backport 00e1feaa9218
os/exec: don't crash when out of fds

Command.Start could crash before if no fds were available
because a nil *os.File of /dev/null was added to the cleanup
list, which crashed before returning the proper error.

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/6514043

»»»
2012-09-22 05:55:12 +10:00
Andrew Gerrand
92125eecb5 [release-branch.go1] A+C: add Xing Xing (individual CLA)
««« backport 449c9a4af2f1
A+C: add Xing Xing (individual CLA)

R=golang-dev, nigeltao
CC=golang-dev
https://golang.org/cl/6493121

»»»
2012-09-22 05:55:12 +10:00
Rob Pike
b7f91ba06f [release-branch.go1] effective_go: use html/template instead of text/template
««« backport e3fce06291ec
effective_go: use html/template instead of text/template
Should have done this a long time ago.
Fixes #3811.

R=golang-dev, adg, rsc
CC=golang-dev
https://golang.org/cl/6488120

»»»
2012-09-22 05:55:11 +10:00
Brad Fitzpatrick
fc8f4af6b9 [release-branch.go1] build: print go banner before restoring windows PATH
««« backport 452fc24c7ed3
build: print go banner before restoring windows PATH

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6492117

»»»
2012-09-22 05:55:11 +10:00
Russ Cox
717f1d6a6c [release-branch.go1] html/template: fix URL doc
««« backport fead9e11a489
html/template: fix URL doc

This is the easy part of issue 3528.
(What to do about "noescape" is the hard part, left open.)

Update #3528.

R=mikesamuel, r, dsymonds
CC=golang-dev
https://golang.org/cl/6493113

»»»
2012-09-22 05:55:10 +10:00
Russ Cox
ed4d4cb231 [release-branch.go1] net/rpc/jsonrpc: fix test error message
««« backport cbce1b576493
net/rpc/jsonrpc: fix test error message

Fixes #4041.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6495121

»»»
2012-09-22 05:55:10 +10:00
Russ Cox
ec783af29c [release-branch.go1] cmd/dist: emit \r in env -w output
««« backport 108165c03c70
cmd/dist: emit \r in env -w output

go tool dist env -w is supposed to print a Windows batch file.
Normally Windows will execute batch files without \r before \n,
but issue 3060 reports that if the file ends up containing paths
written in Chinese, Windows 7 cannot execute it without the \r.
So add the \r.

Fixes #3060.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6498120

»»»
2012-09-22 05:55:09 +10:00
Ian Lance Taylor
4dfecf3675 [release-branch.go1] C: Add Andreas Jellinghaus (Google CLA)
««« backport 993e67dd76c4
C: Add Andreas Jellinghaus (Google CLA)

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6494121

»»»
2012-09-22 05:55:09 +10:00
Andrew Gerrand
e4fca6366b [release-branch.go1] C: add Francesc Campoy (Google CLA)
««« backport 3796fdf0d0b8
C: add Francesc Campoy (Google CLA)

R=golang-dev, dsymonds, campoy
CC=golang-dev
https://golang.org/cl/6490102

»»»
2012-09-22 05:55:08 +10:00
Andrew Gerrand
353788a830 [release-branch.go1] C: spell Brian's name correctly
««« backport 50457a54c26c
C: spell Brian's name correctly

R=iant, nigeltao
CC=golang-dev
https://golang.org/cl/6492102

»»»
2012-09-22 05:55:08 +10:00
Andrew Gerrand
a3874a5873 [release-branch.go1] C: add Brian Slesinsky (Google CLA)
««« backport bfa71d733e8f
C: add Brian Slesinsky (Google CLA)

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6496103

»»»
2012-09-22 05:55:07 +10:00
David Symonds
75b71e8cae [release-branch.go1] doc: Don't imply incorrect guarantees about data races.
««« backport dbcfb4459ab8
doc: Don't imply incorrect guarantees about data races.

A race between
        a = "hello, world"
and
        print(a)
is not guaranteed to print either "hello, world" or "".
Its behaviour is undefined.

Fixes #4039.

R=rsc
CC=dvyukov, gobot, golang-dev, r
https://golang.org/cl/6489075

»»»
2012-09-22 05:55:07 +10:00
Adam Langley
bc5b14d00a [release-branch.go1] crypto/rand: typo fix from a69e30463bf4
««« backport 7047e253f1cd
crypto/rand: typo fix from a69e30463bf4

R=golang-dev
CC=golang-dev
https://golang.org/cl/6497106

»»»
2012-09-22 05:55:06 +10:00
Adam Langley
a580f888eb [release-branch.go1] crypto/rand: zero length reads shouldn't crash on Windows.
««« backport a69e30463bf4
crypto/rand: zero length reads shouldn't crash on Windows.

R=golang-dev, dave
CC=golang-dev
https://golang.org/cl/6496099

»»»
2012-09-22 05:55:05 +10:00
Rob Pike
0dabae4a85 [release-branch.go1] faq: go does not have duck typing
««« backport d3d3e0825dd2
faq: go does not have duck typing

R=golang-dev, 0xjnml, iant, adonovan, aram
CC=golang-dev
https://golang.org/cl/6500092

»»»
2012-09-22 05:55:05 +10:00
Rob Pike
261565842d [release-branch.go1] faq: mercurial vs. git
««« backport 4a9c3b3e39c6
faq: mercurial vs. git
Fixes #4052.

R=golang-dev, bradfitz, iant, rsc
CC=golang-dev
https://golang.org/cl/6490092

»»»
2012-09-22 05:55:04 +10:00
Lucio De Re
915635ed41 [release-branch.go1] net,mime: Minor corrections to documentation comments.
««« backport 3da1d25fd216
net,mime: Minor corrections to documentation comments.

R=r
CC=dsymonds, gobot, golang-dev
https://golang.org/cl/6495085

»»»
2012-09-22 05:55:04 +10:00
Rob Pike
0809931b2f [release-branch.go1] faq: another way to solve the closure/variable/range complaint
««« backport 3bca7b333e00
faq: another way to solve the closure/variable/range complaint
It's easier just to declare a new variable.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6501103

»»»
2012-09-22 05:55:04 +10:00
Andrew Gerrand
3e9c29d50f [release-branch.go1] C: add Manu Garg (Google CLA)
««« backport f06edb3fcffe
C: add Manu Garg (Google CLA)

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/6493087

»»»
2012-09-22 05:55:03 +10:00
Nigel Tao
56c58e4e5b [release-branch.go1] image/jpeg: fix quantization tables to be in zig-zag order, not natural
««« backport 292816148e44
image/jpeg: fix quantization tables to be in zig-zag order, not natural
order.

JPEG images generated prior to this CL are still valid JPEGs, as the
quantization tables used are encoded in the wire format. Such JPEGs just
don't use the recommended quantization tables.

R=r, dsymonds, raph, adg
CC=golang-dev, tuom.larsen
https://golang.org/cl/6497083

»»»
2012-09-22 05:55:03 +10:00
Oling Cat
5db7b7524d [release-branch.go1] doc/go_spec: fix a typo
««« backport 5bf4d4da76e9
doc/go_spec: fix a typo

R=nigeltao
CC=golang-dev
https://golang.org/cl/6499075

»»»
2012-09-22 05:55:02 +10:00
Nigel Tao
023fbb810d [release-branch.go1] A+C: Oling Cat (individual CLA)
««« backport 4c0b47f8b8f7
A+C: Oling Cat (individual CLA)

R=dsymonds
CC=golang-dev
https://golang.org/cl/6503070

»»»
2012-09-22 05:55:02 +10:00
Sébastien Paolacci
0d1bbdf52e [release-branch.go1] net: fix {FileConn, FileListener, FilePacketConn} fd leak to child process.
««« backport d694b1866058
net: fix {FileConn, FileListener, FilePacketConn} fd leak to child process.

All of them call `newFileFD' which must properly restore close-on-exec on
duplicated fds.

R=golang-dev, bradfitz, mikioh.mikioh
CC=golang-dev
https://golang.org/cl/6445081

»»»
2012-09-22 05:55:01 +10:00
Alan Donovan
c57119f04c [release-branch.go1] runtime/pprof: emit end-of-log marker at end of CPU profile.
««« backport 92e962e13197
runtime/pprof: emit end-of-log marker at end of CPU profile.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6489065

»»»
2012-09-22 05:55:00 +10:00
Andrew Gerrand
e2ce5a37b1 [release-branch.go1] doc: fix typo in Concurrency Patterns article
««« backport 29990fa0951c
doc: fix typo in Concurrency Patterns article

Fixes #3178.

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/6506064

»»»
2012-09-22 05:55:00 +10:00
Andrew Gerrand
b4724ad7ed [release-branch.go1] doc: link to references from docs page
««« backport bbf84838fd24
doc: link to references from docs page

Fixes #3667.

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/6492078

»»»
2012-09-22 05:54:59 +10:00
Patrick Crosby
7da9e79fb3 [release-branch.go1] net/http/pprof: updated documentation (run an http server)
««« backport 4965beed4492
net/http/pprof: updated documentation (run an http server)

Added instructions for starting an http server
to the godoc header for this package.  With the old
instructions, the example "go tool pprof..." commands
wouldn't work unless you happen to be running an http
server on port 6060 in your application.

R=golang-dev, minux.ma, adg, giacomo.tartari
CC=golang-dev
https://golang.org/cl/6483049

»»»
2012-09-22 05:54:59 +10:00
Andrew Gerrand
7f2163954d [release-branch.go1] runtime: increase stack frame during cgo call on windows/amd64 2012-09-22 05:54:59 +10:00
Russ Cox
e26dc4a8d8 [release-branch.go1] cmd/gc: fix PkgPath of byte, rune types
««« backport 272e1dd72156
cmd/gc: fix PkgPath of byte, rune types

Fixes #3853.

R=ken2
CC=golang-dev
https://golang.org/cl/6492071

»»»
2012-09-22 05:54:58 +10:00
Russ Cox
e302bba792 [release-branch.go1] A+C: add Uriel Mangado (individual CLA)
««« backport 42966db90999
A+C: add Uriel Mangado (individual CLA)

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6492070

»»»
2012-09-22 05:54:58 +10:00
Shenghou Ma
75d33bc540 [release-branch.go1] cmd/ld: support zero-filled section for Mach-O files
««« backport b4b475a9a3c8
cmd/ld: support zero-filled section for Mach-O files

R=golang-dev, r, dave, rsc
CC=golang-dev
https://golang.org/cl/6492069

»»»
2012-09-22 05:54:57 +10:00
Daniel Morsing
5b7e9adfc3 [release-branch.go1] cmd/gc: Suggest *T in error for x.(T) if it would work.
««« backport 33a62d86ca2f
cmd/gc: Suggest *T in error for x.(T) if it would work.

Accomplished by synchronizing the formatting of conversion errors between typecheck.c and subr.c

Fixes #3984.

R=golang-dev, remyoudompheng, rsc
CC=golang-dev
https://golang.org/cl/6500064

»»»
2012-09-22 05:54:57 +10:00
Russ Cox
e09cf61b64 [release-branch.go1] cmd/go: be clear that import loops are bad
««« backport f697709b5082
cmd/go: be clear that import loops are bad

There was mail on golang-nuts a few weeks ago
from someone who understood the message perfectly
and knew he had a cyclic dependency but assumed
that Go, like Python or Java, was supposed to handle it.

R=golang-dev, bradfitz, dave
CC=golang-dev
https://golang.org/cl/6488069

»»»
2012-09-22 05:54:56 +10:00
Russ Cox
42b1754775 [release-branch.go1] A+C: 0/2 on spelling email addresses correctly
««« backport 30d7ee9da51d
A+C: 0/2 on spelling email addresses correctly

TBR=r
CC=golang-dev
https://golang.org/cl/6497067

»»»
2012-09-22 05:54:56 +10:00
Russ Cox
d6b260855d [release-branch.go1] A+C: Patrick Higgins, Shawn Smith (individual CLA)
««« backport f8b14fa18a7f
A+C: Patrick Higgins, Shawn Smith (individual CLA)

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6492067

»»»
2012-09-22 05:54:55 +10:00
Ivan Krasin
8731f80e9f [release-branch.go1] runtime: add vdso support for linux/amd64. Fixes issue 1933.
««« backport 56ea40aac72b
runtime: add vdso support for linux/amd64. Fixes issue 1933.

R=iant, imkrasin, krasin, iant, minux.ma, rsc, nigeltao, r, fullung
CC=golang-dev
https://golang.org/cl/6454046

»»»
2012-09-22 05:54:55 +10:00
Andrew Gerrand
dfd413bda1 [release-branch.go1] cmd/gc: fix escape analysis bug with variable capture in loops. 2012-09-22 05:54:55 +10:00
Russ Cox
7ed136f121 [release-branch.go1] runtime/pprof: restore articles in type doc comments
««« backport b57b5be5a32c
runtime/pprof: restore articles in type doc comments

Reverts part of CL 6460082.

If a doc comment describes a type by explaining the
meaning of one instance of the type, a leading article
is fine and makes the text less awkward.

Compare:
// A dog is a kind of animal.
// Dog is a kind of animal.

R=golang-dev, dsymonds, dvyukov, r
CC=golang-dev
https://golang.org/cl/6494066

»»»
2012-09-22 05:54:54 +10:00
Robert Griesemer
e412389169 [release-branch.go1] A+C: added Alan Donovan (Google corporate license)
««« backport e6da0262840c
A+C: added Alan Donovan (Google corporate license)

R=adg, bradfitz
CC=golang-dev
https://golang.org/cl/6490063

»»»
2012-09-22 05:54:53 +10:00
Robert Griesemer
ef83c54490 [release-branch.go1] go/scanner: don't print garbage if there's no error
««« backport 9415be2ba652
go/scanner: don't print garbage if there's no error

R=r
CC=golang-dev
https://golang.org/cl/6489059

»»»
2012-09-22 05:54:53 +10:00
Rob Pike
9d7ca4b0e6 [release-branch.go1] path: improve documentation for Dir
««« backport 735963d94dad
path: improve documentation for Dir

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6495059

»»»
2012-09-22 05:54:52 +10:00
Dmitriy Vyukov
94403eb5d3 [release-branch.go1] net/rpc: protect serviceMap with RWMutex
««« backport fa3b2ef0129d
net/rpc: protect serviceMap with RWMutex

R=r, r
CC=golang-dev
https://golang.org/cl/6494044

»»»
2012-09-22 05:54:52 +10:00
Rob Pike
d340f52100 [release-branch.go1] go_spec.html: clarify rune and string literals
««« backport 8afe25accb81
go_spec.html: clarify rune and string literals
No changes to the meaning, just clearer language and more
examples, including illegal rune and string literals.
In particular, "character literal" and "character constant"
are now called "rune literal" and "rune constant" and the
word "character" always refers to the source text, not
program values.

R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/6448137

»»»
2012-09-22 05:54:51 +10:00
Andrew Balholm
fac6d765df [release-branch.go1] cmd/yacc/units.txt: fix exchange rates
««« backport 008d345d81e0
cmd/yacc/units.txt: fix exchange rates
        In the example "units" program for goyacc, the exchange rates were
        reciprocals of the correct amounts. Turn them right-side-up
        and update them to current figures.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6495053

»»»
2012-09-22 05:54:51 +10:00
Andrew Gerrand
7b3dffcfdd [release-branch.go1] cmd/ld: handle a special case of scattered relocation 2/1 on Darwin/386 2012-09-22 05:54:51 +10:00
Andrew Gerrand
238c3afd6e [release-branch.go1] A+C: add Patrick Crosby (individual contributor)
««« backport 3181682928c9
A+C: add Patrick Crosby (individual contributor)

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6489049

»»»
2012-09-22 05:54:50 +10:00
Dave Cheney
aec9af0acb [release-branch.go1] net/http/httputil: fix race in DumpRequestOut
««« backport 3b78b41a4b50
net/http/httputil: fix race in DumpRequestOut

Fixes #3892.

Swapping the order of the writers inside the MultiWriter ensures
the request will be written to buf before http.ReadRequest completes.

The fencedBuffer is not required to make the test pass on
any machine that I have access too, but as the buf is shared
across goroutines, I think it is necessary for correctness.

R=bradfitz, fullung, franciscossouza
CC=golang-dev
https://golang.org/cl/6483061

»»»
2012-09-22 05:54:50 +10:00
Mikio Hara
8851c49989 [release-branch.go1] net: delete unused socket-level option helpers
««« backport 66bdff5b0b29
net: delete unused socket-level option helpers

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6499043

»»»
2012-09-22 05:54:49 +10:00
Tobias Columbus
b0f42aa17c [release-branch.go1] misc/vim: fix for autocompletion
««« backport 7fb0e868dc39
misc/vim: fix for autocompletion

    Vim autocompletion respects the $GOPATH variable and does not
    ignore dashes ('-'), dots ('.') and underscores ('_') like found
    in many remote packages.
    Environment variable $GOROOT is determined by calling
    'go env GOROOT' instead of relying on the user's environment
    variables.

    Fixes #3876
    Fixes #3882

R=golang-dev, franciscossouza, dsymonds, minux.ma
CC=golang-dev
https://golang.org/cl/6443151

»»»
2012-09-22 05:54:49 +10:00
Shenghou Ma
c9e6f1c069 [release-branch.go1] C: add Tobias Columbus's email used in Rietveld
««« backport a95c69098e45
C: add Tobias Columbus's email used in Rietveld

R=golang-dev, tobias.columbus, bradfitz
CC=golang-dev
https://golang.org/cl/6483058

»»»
2012-09-22 05:54:48 +10:00
Andrew Gerrand
3093d88aa6 [release-branch.go1] net/http: send an explicit zero Content-Length when Handler never Writes 2012-09-22 05:54:48 +10:00
Julien Schmidt
7102f123cf [release-branch.go1] database/sql: stop reuse of bad connections
««« backport b397807815a6
database/sql: stop reuse of bad connections

The second parameter for sql.putConn() (err) is always nil. As a result bad
connections are reused, even if the driver returns an driver.ErrBadConn.
Unsing a pointer to err instead achievs the desired behavior.
See http://code.google.com/p/go/issues/detail?id=3777 for more details.
Fixes #3777.

R=golang-dev, dave, bradfitz, jameshuachow, BlakeSGentry
CC=golang-dev
https://golang.org/cl/6348069

»»»
2012-09-22 05:54:47 +10:00
Brad Fitzpatrick
69d7a560e9 [release-branch.go1] A+C: Add Julien Schmidt (Individual CLA)
««« backport d80f2c4b0445
A+C: Add Julien Schmidt (Individual CLA)

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/6459050

»»»
2012-09-22 05:54:47 +10:00
David Symonds
b19b12b536 [release-branch.go1] A+C: Tobias Columbus (individual CLA)
««« backport 29671078c8aa
A+C: Tobias Columbus (individual CLA)

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/6480058

»»»
2012-09-22 05:54:46 +10:00
Adam Langley
a3ab361b9c [release-branch.go1] crypto/tls: return better error message in the case of an SSLv2 handshake.
««« backport 8048fe8f6f4b
crypto/tls: return better error message in the case of an SSLv2 handshake.

Update #3930
Return a better error message in this situation.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6474055

»»»
2012-09-22 05:54:46 +10:00
Shenghou Ma
7feabb4b94 [release-branch.go1] cmd/6g: fix float32/64->uint64 conversion
««« backport 5972fe3f4418
cmd/6g: fix float32/64->uint64 conversion
    CVTSS2SQ's rounding mode is controlled by the RC field of MXCSR;
as we specifically need truncate semantic, we should use CVTTSS2SQ.

    Fixes #3804.

R=rsc, r
CC=golang-dev
https://golang.org/cl/6352079

»»»
2012-09-22 05:54:45 +10:00
Shenghou Ma
f35d7ff932 [release-branch.go1] cmd/ld: set ELF header flags for our Linux/ARM binary
««« backport 1f9e023245d4
cmd/ld: set ELF header flags for our Linux/ARM binary
To make it more compliant.
This won't affect the behavior of running on OABI-only kernels.

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/6475044

»»»
2012-09-22 05:54:45 +10:00
Rob Pike
81d2ac7c5d [release-branch.go1] C+A: add Carlos Castillo cookieo9@gmail.com (individual CLA)
««« backport 341a5be3052f
C+A: add Carlos Castillo cookieo9@gmail.com (individual CLA)

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/6479045

»»»
2012-09-22 05:54:44 +10:00
Rob Pike
01b381f337 [release-branch.go1] time: avoid data race in abs
««« backport b2855a1654b6
time: avoid data race in abs
Fixes #3967.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6460115

»»»
2012-09-22 05:54:44 +10:00
Dave Borowitz
2d514df3b3 [release-branch.go1] net/http: Set TLSClientConfig.ServerName on every HTTP request.
««« backport 8d39afcd18b1
net/http: Set TLSClientConfig.ServerName on every HTTP request.

This makes SNI "just work" for callers using the standard http.Client.

Since we now have a test that depends on the httptest.Server cert, change
the cert to be a CA (keeping all other fields the same).

R=bradfitz
CC=agl, dsymonds, gobot, golang-dev
https://golang.org/cl/6448154

»»»
2012-09-22 05:54:43 +10:00
Brad Fitzpatrick
3b332b704b [release-branch.go1] CONTRIBUTORS: Add Dave Borowitz (Google CLA)
««« backport 52a0395d0e81
CONTRIBUTORS: Add Dave Borowitz (Google CLA)

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6484046

»»»
2012-09-22 05:54:43 +10:00
Andrew Gerrand
2725f37244 [release-branch.go1] A+C: add Joakim Sernbrant
««« backport dd0a97869e4d
A+C: add Joakim Sernbrant

R=golang-dev, nigeltao
CC=golang-dev
https://golang.org/cl/6476043

»»»
2012-09-22 05:54:42 +10:00
Dave Cheney
e4c8a2841c [release-branch.go1] net/http: fix misplaced defer and example
««« backport 989f373141cc
net/http: fix misplaced defer and example

Moves the defer (again).

Also, correct the example documentation to match.

R=r, robert.hencke, iant, dsymonds, bradfitz
CC=golang-dev
https://golang.org/cl/6458158

»»»
2012-09-22 05:54:42 +10:00
Dave Cheney
686eac5fdd [release-branch.go1] os: fix data race on Process.done
««« backport 4fc1c61c3c2c
os: fix data race on Process.done

Fixes #3969.

R=dvyukov, r, alex.brainman, minux.ma
CC=golang-dev
https://golang.org/cl/6462081

»»»
2012-09-22 05:54:41 +10:00
Shenghou Ma
e31957cddb [release-branch.go1] doc/install: we only need command line tools for Xcode on OS X
««« backport 975bfb6bbac4
doc/install: we only need command line tools for Xcode on OS X
     Fixes #3973.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6464078

»»»
2012-09-22 05:54:41 +10:00
Volker Dobler
76d42fbd80 [release-branch.go1] strconv: consistent parameter names for ParseUint
««« backport 52813bdd69bb
strconv: consistent parameter names for ParseUint

If ParseUint is like ParseInt it should have the same parameter
names, thus rename b to to base as in ParseInt's documentation.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6453152

»»»
2012-09-22 05:54:40 +10:00
Dmitriy Vyukov
17fed3c6b4 [release-branch.go1] net/http: reduce mutex contention
««« backport 43568ec5cf55
net/http: reduce mutex contention
benchmark                           old ns/op    new ns/op    delta
BenchmarkClientServerParallel          155909       154454   -0.93%
BenchmarkClientServerParallel-2         86012        82986   -3.52%
BenchmarkClientServerParallel-4         70211        55168  -21.43%
BenchmarkClientServerParallel-8         80755        47862  -40.73%
BenchmarkClientServerParallel-12        77753        51478  -33.79%
BenchmarkClientServerParallel-16        77920        50278  -35.47%
The benchmark is https://golang.org/cl/6441134
The machine is 2 x 4 HT cores (16 HW threads total).
Fixes #3946.
Now contention moves to net.pollServer.AddFD().

R=bradfitz
CC=bradfitz, dave, dsymonds, gobot, golang-dev, remyoudompheng
https://golang.org/cl/6454142

»»»
2012-09-22 05:54:40 +10:00
Alex Brainman
bf68e33053 [release-branch.go1] pprof: make it work on windows again
««« backport 7c5f4dad8fae
pprof: make it work on windows again

- pprof is a perl script, so go command should invoke
  perl instead of trying to run pprof directly;
- pprof should use "go tool nm" unconditionally on windows,
  no one else can extract symbols from Go program;
- pprof should use "go tool nm" instead of "6nm".

Fixes #3879.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6445082

»»»
2012-09-22 05:54:39 +10:00
Rob Pike
41f42120a5 [release-branch.go1] all: move defers to after error check to avoid nil indirection
««« backport 8f0c8f604ee0
all: move defers to after error check to avoid nil indirection
Only affects some tests and none seem likely to be problematic, but let's fix them.
Fixes #3971.

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/6463060

»»»
2012-09-22 05:54:39 +10:00
Robert Griesemer
21bf9e9561 [release-branch.go1] go_spec: unary + and - are also defined for complex types
««« backport 1546a1ef0102
go_spec: unary + and - are also defined for complex types

R=r, rsc, iant, ken, iant
CC=golang-dev
https://golang.org/cl/6450150

»»»
2012-09-22 05:54:38 +10:00
Alex Brainman
5d5b9ef640 [release-branch.go1] test: change run.go to ignore \r in compiler output (fixes windows build)
««« backport b86e4ec1dd66
test: change run.go to ignore \r in compiler output (fixes windows build)

R=golang-dev, dave, minux.ma, remyoudompheng
CC=golang-dev
https://golang.org/cl/6460093

»»»
2012-09-22 05:54:38 +10:00
Daniel Morsing
c7c975809b [release-branch.go1] cmd/gc: Don't claim type assertion would help when it wont.
««« backport b76339cc168a
cmd/gc: Don't claim type assertion would help when it wont.

Fixes #3465.

R=golang-dev, rsc, remyoudompheng, iant
CC=golang-dev
https://golang.org/cl/6448097

»»»
2012-09-22 05:54:37 +10:00
Ian Lance Taylor
dde4af3655 [release-branch.go1] A+C: Andrew Lutomirski (individual CLA)
««« backport 8714f560df67
A+C: Andrew Lutomirski (individual CLA)

Wrote code that was the basis for
https://golang.org/cl/6454046/

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6450142

»»»
2012-09-22 05:54:37 +10:00
Dmitriy Vyukov
c8ba0a40b4 [release-branch.go1] runtime/pprof: fix comments
««« backport e7e49c318134
runtime/pprof: fix comments

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/6460082

»»»
2012-09-22 05:54:36 +10:00
Andrew Gerrand
d3f4ba0c71 [release-branch.go1] text/template/parse: fix bug handling /*/ 2012-09-22 05:54:36 +10:00
Shenghou Ma
43bf5e8ec8 [release-branch.go1] runtime: use sched_getaffinity for runtime.NumCPU() on Linux
««« backport 3532ab6bf5be
runtime: use sched_getaffinity for runtime.NumCPU() on Linux
        Fixes #3921.

R=iant
CC=golang-dev
https://golang.org/cl/6448132

»»»
2012-09-22 05:54:36 +10:00
Rémy Oudompheng
be1207e735 [release-branch.go1] go/build: correct shouldBuild bug reading whole contents of file.
««« backport 307fafbc2d6f
go/build: correct shouldBuild bug reading whole contents of file.

It was caused by bytes.TrimSpace being able to return a nil
slice.

Fixes #3914.

R=golang-dev, r
CC=golang-dev, remy
https://golang.org/cl/6458091

»»»
2012-09-22 05:54:35 +10:00
Robert Griesemer
ab4821d468 [release-branch.go1] spec: clarify evaluation order
««« backport 6beada1bf6c2
spec: clarify evaluation order

Fixes #3852.

R=r, rsc, iant, ken
CC=golang-dev
https://golang.org/cl/6441102

»»»
2012-09-22 05:54:35 +10:00
Charles L. Dorian
b14a4bf211 [release-branch.go1] math: update definition of NaN in assembly language files
««« backport f26c1758e269
math: update definition of NaN in assembly language files

R=rsc, minux.ma, golang-dev, nigeltao
CC=golang-dev
https://golang.org/cl/6461047

»»»
2012-09-22 05:54:34 +10:00
Andrew Gerrand
630451ab83 [release-branch.go1] doc: add 'Get Started with Go' video, remove some older videos
««« backport 77b1cdceb2b2
doc: add 'Get Started with Go' video, remove some older videos

(I also updated the wiki's GoTalks page with all the latest videos.)

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6441113

»»»
2012-09-22 05:54:34 +10:00
Andrew Gerrand
a7a74e2011 [release-branch.go1] io: amend ReaderFrom doc as per r's comment
««« backport 5d3aaf0b717e
io: amend ReaderFrom doc as per r's comment

R=r
CC=golang-dev
https://golang.org/cl/6458097

»»»
2012-09-22 05:54:33 +10:00
Yves Junqueira
a7f34e69cd [release-branch.go1] crypto/rand: Example for Read.
««« backport 4738fd47e7a9
crypto/rand: Example for Read.

R=adg, remyoudompheng, rsc, r
CC=golang-dev
https://golang.org/cl/6457085

»»»
2012-09-22 05:54:33 +10:00
Robert Griesemer
9810cb4cad [release-branch.go1] godoc: make id attributes unique
««« backport b5dd89dce002
godoc: make id attributes unique

Some browsers (e.g. IE9) ignore the case of 'id' attributes
which can lead to conflicts. Prefix non-generated 'id's with
"pkg-" to make them different from any generated attribute.

Also: Added missing entry for "Other packages" to top-level
index.

Fixes #3851.

R=adg, dsymonds
CC=golang-dev
https://golang.org/cl/6449105

»»»
2012-09-22 05:54:32 +10:00
Nigel Tao
da6a2756c8 [release-branch.go1] image/jpeg: send a correct Start Of Scan (SOS) header.
««« backport 4a67b1f1e771
image/jpeg: send a correct Start Of Scan (SOS) header.

Section B.2.3 of http://www.w3.org/Graphics/JPEG/itu-t81.pdf discusses
the End of spectral selection (Se) byte.

Apparently many JPEG decoders ignore the Se byte (or let it through
with a warning), but some configurations reject them. For example,
http://download.blender.org/source/chest/blender_2.03_tree/jpeg/jcmaster.c
has these lines:

if (Ss != 0 || Se != DCTSIZE2-1 || Ah != 0 || Al != 0)
  ERREXIT1(cinfo, JERR_BAD_PROG_SCRIPT, scanno);

Fixes #3916.

R=r
CC=golang-dev
https://golang.org/cl/6459052

»»»
2012-09-22 05:54:32 +10:00
Brad Fitzpatrick
602c922095 [release-branch.go1] io: document ReaderFrom and WriterTo
««« backport 4e3a1967af09
io: document ReaderFrom and WriterTo

Fixes #3711

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/6445083

»»»
2012-09-22 05:54:31 +10:00
Yves Junqueira
625dea7cba [release-branch.go1] text/template: fix range example.
««« backport c37d3a28f6b0
text/template: fix range example.

R=r
CC=adg, gobot, golang-dev
https://golang.org/cl/6449096

»»»
2012-09-22 05:54:31 +10:00
Shenghou Ma
e8e3cc97d0 [release-branch.go1] doc: fix some HTML syntax errors
««« backport 4adee56240ac
doc: fix some HTML syntax errors

R=adg
CC=golang-dev
https://golang.org/cl/6458043

»»»
2012-09-22 05:54:30 +10:00
Shenghou Ma
ccc55fc069 [release-branch.go1] cmd/go: remove $WORK paths in generated binaries
««« backport c1ce95068533
cmd/go: remove $WORK paths in generated binaries
        Fixes #3748.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6357064

»»»
2012-09-22 05:54:30 +10:00
Shenghou Ma
39a2841980 [release-branch.go1] math, runtime: use a NaN that matches gcc's
««« backport 1f62df249175
math, runtime: use a NaN that matches gcc's
        our old choice is not working properly at least on VFPv2 in
ARM1136JF-S (it's not preserved across float64->float32 conversions).

        Fixes #3745.

R=dave, rsc
CC=golang-dev
https://golang.org/cl/6344078

»»»
2012-09-22 05:54:29 +10:00
Shenghou Ma
c469cb7c5d [release-branch.go1] runtime: remove unnecessary ROUND in alg.c
««« backport 4bd268b3c88a
runtime: remove unnecessary ROUND in alg.c
        Introduced in CL 6452046.

R=golang-dev, nigeltao, dave
CC=golang-dev
https://golang.org/cl/6459051

»»»
2012-09-22 05:54:29 +10:00
Andrew Gerrand
c645541691 [release-branch.go1] syscall: fix plan9 build broken by CL 6458050 2012-09-22 05:54:29 +10:00
Brad Fitzpatrick
1a07fca27d [release-branch.go1] net: fix TCPListener file leak to child processes
««« backport 75a21418ac8f
net: fix TCPListener file leak to child processes

Hold ForkLock during dup of fd + cloexec in the net pkg,
per the locking policy documented in syscall/exec_unix.go.

R=golang-dev, dsymonds, adg
CC=golang-dev
https://golang.org/cl/6457080

»»»
2012-09-22 05:54:28 +10:00
Andrew Gerrand
b1de53a1f0 [release-branch.go1] syscall: return EINVAL when string arguments have NUL characters 2012-09-22 05:54:28 +10:00
Benny Siegert
1fe72f034f [release-branch.go1] syscall: add some new syscall numbers from NetBSD-current
««« backport 98c1ecd82cb5
syscall: add some new syscall numbers from NetBSD-current

R=golang-dev
CC=golang-dev
https://golang.org/cl/6454100

»»»
2012-09-22 05:54:27 +10:00
Russ Cox
a0e780b7ec [release-branch.go1] bufio: discourage use of ReadLine
««« backport 9e2011d9ed4b
bufio: discourage use of ReadLine

Too many people use it without reading what it does.
Those people want ReadBytes or ReadString.

Fixes #3906.

R=golang-dev, iant, r
CC=golang-dev
https://golang.org/cl/6442087

»»»
2012-09-22 05:54:27 +10:00
Rémy Oudompheng
64a3b18387 [release-branch.go1] cmd/8g: fix miscompilation due to BADWIDTH.
««« backport f6a6fe780649
cmd/8g: fix miscompilation due to BADWIDTH.

Fixes #3899.

R=rsc
CC=golang-dev, remy
https://golang.org/cl/6453084

»»»
2012-09-22 05:54:26 +10:00
Rémy Oudompheng
ab91d4fe2a [release-branch.go1] cmd/gc: accept switches on comparable arrays.
««« backport d68605d10a6b
cmd/gc: accept switches on comparable arrays.

The compiler is incorrectly rejecting switches on arrays of
comparable types. It also doesn't catch incomparable structs
when typechecking the switch, leading to unreadable errors
during typechecking of the generated code.

Fixes #3894.

R=rsc
CC=gobot, golang-dev, r, remy
https://golang.org/cl/6442074

»»»
2012-09-22 05:54:26 +10:00
Robert Griesemer
35b989ed7b [release-branch.go1] go/build: tiny cleanup
««« backport 30dfc01b473c
go/build: tiny cleanup

R=rsc
CC=golang-dev
https://golang.org/cl/6453083

»»»
2012-09-22 05:54:25 +10:00
Alex Brainman
524bb8d755 [release-branch.go1] os: test that IsExist and IsNotExist handle PathError and LinkError
««« backport 32eb6dac3ff4
os: test that IsExist and IsNotExist handle PathError and LinkError

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6442080

»»»
2012-09-22 05:54:25 +10:00
Robert Griesemer
40e77b01f5 [release-branch.go1] go/scanner: fix minor typo
««« backport c74762fb2e1d
go/scanner: fix minor typo

R=r
CC=golang-dev
https://golang.org/cl/6442076

»»»
2012-09-22 05:54:24 +10:00
Robert Griesemer
dda61d68c8 [release-branch.go1] go/ast: ast.Print must not crash with unexported fields
««« backport d134e30c4d29
go/ast: ast.Print must not crash with unexported fields

Don't print unexported struct fields; their values are
not accessible via reflection.

Fixes #3898.

Also:
- added support for arrays
- print empty maps, arrays, slices, structs on one line
  for a denser output
- added respective test cases

R=r
CC=golang-dev
https://golang.org/cl/6454089

»»»
2012-09-22 05:54:24 +10:00
Shenghou Ma
6425aa28f2 [release-branch.go1] runtime: round return value address in runtime.equal
««« backport a7752d169d2e
runtime: round return value address in runtime.equal
     Fixes #3866.

R=rsc, r, nigeltao
CC=golang-dev
https://golang.org/cl/6452046

»»»
2012-09-22 05:54:23 +10:00
Alex Brainman
6410538c72 [release-branch.go1] os: Rename error to fit IsExist
««« backport 104eb57df01b
os: Rename error to fit IsExist

Fixes #3828.

R=golang-dev, iant, rsc
CC=golang-dev
https://golang.org/cl/6420056

»»»
2012-09-22 05:54:23 +10:00
Rémy Oudompheng
bedafd2ddb [release-branch.go1] cmd/gc: fix inlining bug with receive operator.
««« backport d872ed20fccb
cmd/gc: fix inlining bug with receive operator.

The receive operator was given incorrect precedence
resulting in incorrect deletion of parentheses.

Fixes #3843.

R=rsc
CC=golang-dev, remy
https://golang.org/cl/6442049

»»»
2012-09-22 05:54:22 +10:00
Shenghou Ma
82de010886 [release-branch.go1] cmd/cgo: use 1 as last entry for __cgodebug_data
««« backport aeaab9df5600
cmd/cgo: use 1 as last entry for __cgodebug_data
        LLVM-based gcc will place all-zero data in a zero-filled
        section, but our debug/macho can't handle that.
        Fixes #3821.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6444049

»»»
2012-09-22 05:54:22 +10:00
Rob Pike
ed3e546000 [release-branch.go1] regexp: fix glitch in doc for FindReaderIndex
««« backport 6f790a92b3d2
regexp: fix glitch in doc for FindReaderIndex
Fixes #3878.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6457054

»»»
2012-09-22 05:54:21 +10:00
Andrew Gerrand
31f6401799 [release-branch.go1] doc: remove mention of weekly tag from source install doc
««« backport 8c4b1b7ce761
doc: remove mention of weekly tag from source install doc

R=golang-dev, dsymonds, bradfitz
CC=golang-dev
https://golang.org/cl/6442062

»»»
2012-09-22 05:54:21 +10:00
Russ Cox
19e7a721ba [release-branch.go1] cmd/go: show $GOPATH in 'go env' output
««« backport d6d7de5aa8ed
cmd/go: show $GOPATH in 'go env' output

Also, sort output.

R=golang-dev, patrick, dave, iant
CC=golang-dev, patrick
https://golang.org/cl/6446064

»»»
2012-09-22 05:54:20 +10:00
Brad Fitzpatrick
706832a088 [release-branch.go1] net/http: don't allow zero byte in FileServer paths
««« backport 2307a931664e
net/http: don't allow zero byte in FileServer paths

Should probably be fixed in the syscall package, either
additional or instead of this CL.

Fixes #3842

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6442061

»»»
2012-09-22 05:54:20 +10:00
Daniel Morsing
5f07ee41ea [release-branch.go1] cmd/gc: point "no new variables" error at right line number.
««« backport 98788e8973f2
cmd/gc: point "no new variables" error at right line number.

Fixes #3856.

R=dsymonds, rsc
CC=golang-dev
https://golang.org/cl/6455056

»»»
2012-09-22 05:54:19 +10:00
Russ Cox
2ab2bfaf2f [release-branch.go1] syscall: apply comment from Mikioh
««« backport d191515c80fb
syscall: apply comment from Mikioh

This comment was suggested in CL 6456045
but never got applied.

R=mikioh, mikioh.mikioh
CC=golang-dev
https://golang.org/cl/6447056

»»»
2012-09-22 05:54:19 +10:00
Alexey Borzenkov
56d3f951d1 [release-branch.go1] syscall: workaround accept() bug on Darwin
««« backport 0eae95b0307a
syscall: workaround accept() bug on Darwin

Darwin kernels have a bug in accept() where error result from
an internal call is not checked and socket is accepted instead
of ECONNABORTED error. However, such sockets have no sockaddr,
which results in EAFNOSUPPORT error from anyToSockaddr, making
Go http servers running on Mac OS X easily susceptible to
denial of service from simple port scans with nmap.
Fixes #3849.

R=golang-dev, adg, mikioh.mikioh
CC=golang-dev
https://golang.org/cl/6456045

»»»
2012-09-22 05:54:18 +10:00
Benny Siegert
5efc4b03b4 [release-branch.go1] runtime/cgo: fix netbsd build
««« backport 601878acd597
runtime/cgo: fix netbsd build

Copy over freebsd.c to netbsd.c.

Fixes #3823.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6398045

»»»
2012-09-22 05:54:18 +10:00
David Symonds
1489fd1a3e [release-branch.go1] misc/vim: fix :Import insertion heuristic.
««« backport 9bf2225c38eb
misc/vim: fix :Import insertion heuristic.

If a factored import group has a blank line, assume it is dividing
separate groups of imports (e.g. standard library vs. site-specific).
        import (
                "bytes"
                "io"

                "mycorp/package"
        )

The most common case is inserting new standard library imports,
which are usually (stylistically) the first group, so we should drop
"net" in the above example immediately after "io".

Since this logic is getting non-trivial, add a test.

R=golang-dev, minux.ma, franciscossouza
CC=golang-dev
https://golang.org/cl/6445043

»»»
2012-09-22 05:54:17 +10:00
Rob Pike
37401b00bf [release-branch.go1] flag: fix bug in handling of booleans on error
««« backport a36c0344826a
flag: fix bug in handling of booleans on error
Fixes #3869.

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6448072

»»»
2012-09-22 05:54:17 +10:00
Shenghou Ma
9ff8d11c31 [release-branch.go1] log/syslog: don't append \n if there is one
««« backport 6556a8d85dd6
log/syslog: don't append \n if there is one
   pkg log already appends a linefeed to the log message,
so log/syslog doesn't need to append another.

R=golang-dev, bradfitz, r
CC=golang-dev
https://golang.org/cl/6441048

»»»
2012-09-22 05:54:16 +10:00
Alex Brainman
6601acb041 [release-branch.go1] os: move epipecheck from file_posix.go and into file_unix.go to fix windows build
««« backport d127749038e8
os: move epipecheck from file_posix.go and into file_unix.go to fix windows build

R=golang-dev
CC=golang-dev
https://golang.org/cl/6450058

»»»
2012-09-22 05:54:16 +10:00
Dmitriy Vyukov
53299c4326 [release-branch.go1] os: fix data race in epipecheck()
««« backport 8b3bf65c620c
os: fix data race in epipecheck()
Fixes #3860.

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/6443051

»»»
2012-09-22 05:54:15 +10:00
Ian Lance Taylor
8f41e7cd81 [release-branch.go1] runtime: ignore signal 33 == SIGSETXID on GNU/Linux
««« backport bfa4e1f1027f
runtime: ignore signal 33 == SIGSETXID on GNU/Linux

When a cgo program calls setuid, setgid, etc., the GNU/Linux
pthread library sends signal SIGSETXID to each thread to tell
it to update its UID info.  If Go is permitted to intercept
the default SIGSETXID signal handler, the program will hang.

This patch tells the runtime package to not try to intercept
SIGSETXID on GNU/Linux.  This will be odd if a Go program
wants to try to use that signal, but it means that cgo
programs that call setuid, etc., won't hang.

Fixes #3871.

R=rsc, r, minux.ma, bradfitz
CC=golang-dev
https://golang.org/cl/6455050

»»»
2012-09-22 05:54:14 +10:00
Robert Griesemer
0db8f6814b [release-branch.go1] go/printer: don't crash if ast.FuncType.Params is nil
««« backport 7f6a0510d3c9
go/printer: don't crash if ast.FuncType.Params is nil

The go/ast comment for FuncType.Params says that the field may be nil.
Make sure the printer accepts such a value. The go/parser always sets
the field (to provide parenthesis position information), but a program
creating a Go AST from scatch may not.

Added corresponding test case.

Fixes #3870.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6448060

»»»
2012-09-22 05:54:14 +10:00
Robert Griesemer
c9cf888cd2 [release-branch.go1] A+C: added Andrew Wilkins (individual contributor)
««« backport b22edea8aed4
A+C: added Andrew Wilkins (individual contributor)

R=rsc, minux.ma, iant
CC=golang-dev
https://golang.org/cl/6447050

»»»
2012-09-22 05:54:13 +10:00
Ian Lance Taylor
b222c9e39b [release-branch.go1] cgo: fix declarations in _cgo_export.c
««« backport 6751a0e1a6a4
cgo: fix declarations in _cgo_export.c

Declare crosscall2.  Declare the functions passed to it as
returning void, rather than relying on implicit return type.

R=golang-dev, minux.ma
CC=golang-dev
https://golang.org/cl/6432060

»»»
2012-09-22 05:54:13 +10:00
Brad Fitzpatrick
a351c67593 [release-branch.go1] testing: allow concurrent use of T and B
««« backport 7a67d277c7e8
testing: allow concurrent use of T and B

Notably, allow concurrent logging and failing.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6453045

»»»
2012-09-22 05:54:12 +10:00
Mikio Hara
6701fa60b6 [release-branch.go1] net: fix comment
««« backport 5a0aafb7fd8d
net: fix comment

RemoteAddr returns not only UDPAddr but IPAddr.

R=golang-dev, dave
CC=golang-dev
https://golang.org/cl/6401054

»»»
2012-09-22 05:54:12 +10:00
Rob Pike
402d6b1f5f [release-branch.go1] text/template: fix bug in map indexing
««« backport 0748cd92ed76
text/template: fix bug in map indexing
If the key is not present, return value of the type of the element
not the type of the key. Also fix a test that should have caught this case.

Fixes #3850.

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6405078

»»»
2012-09-22 05:54:11 +10:00
Rob Pike
74282e400c [release-branch.go1] encoding/gob: revert 6348067, which broke compatibility
««« backport 3357d8d34ab8
encoding/gob: revert 6348067, which broke compatibility
Add commentary to explain better what's going on, but the
code change is a simple one-line reversal to the previous
form.

R=rsc
CC=golang-dev
https://golang.org/cl/6428072

»»»
2012-09-22 05:54:11 +10:00
Andrew Gerrand
d9c11a7164 [release-branch.go1] doc: add two I/O talks to "Talks" section
««« backport ddaabb722563
doc: add two I/O talks to "Talks" section

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6422056

»»»
2012-09-22 05:54:10 +10:00
Patrick Mylund Nielsen
e40fdffc13 [release-branch.go1] encoding/binary: fix typo: ReadVarint returns an int64, not a uint64.
««« backport 2f39e6389d55
encoding/binary: fix typo: ReadVarint returns an int64, not a uint64.

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6432062

»»»
2012-09-22 05:54:10 +10:00
Mikio Hara
071933faef [release-branch.go1] net: fix file descriptor leak on FileListener, FileConn and FilePacketConn
««« backport aee5a494a65c
net: fix file descriptor leak on FileListener, FileConn and FilePacketConn

R=golang-dev, dave, r
CC=golang-dev
https://golang.org/cl/6430062

»»»
2012-09-22 05:54:10 +10:00
Ian Lance Taylor
20ce5bfb6a [release-branch.go1] cgo: add -gccgopkgpath option to match gccgo -fgo-pkgpath
««« backport 06e3a4c30dfb
cgo: add -gccgopkgpath option to match gccgo -fgo-pkgpath

R=golang-dev, r, iant
CC=golang-dev
https://golang.org/cl/6416056

»»»
2012-09-22 05:54:09 +10:00
Mikio Hara
9a0e2e63a3 [release-branch.go1] net: fix typo
««« backport 3019a3e15027
net: fix typo

R=golang-dev, bsiegert, r
CC=golang-dev
https://golang.org/cl/6428050

»»»
2012-09-22 05:54:09 +10:00
Rob Pike
5c47098ec8 [release-branch.go1] sync: mention that WaitGroup.Add panics
««« backport 05f9fa32500a
sync: mention that WaitGroup.Add panics
Fixes #3839.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6428053

»»»
2012-09-22 05:54:08 +10:00
Rémy Oudompheng
d88fcebcd8 [release-branch.go1] testing: fix memory blowup when formatting many lines.
««« backport 5e7fd762f356
testing: fix memory blowup when formatting many lines.

Fixes #3830.

R=golang-dev, r
CC=golang-dev, remy
https://golang.org/cl/6373047

»»»
2012-09-22 05:54:08 +10:00
Rob Pike
4d5ce93cb9 [release-branch.go1] faq: add status section
««« backport 2819b5a4f07d
faq: add status section
Fixes #3822.

R=golang-dev, r, dsymonds, minux.ma, adg
CC=golang-dev
https://golang.org/cl/6395043

»»»
2012-09-22 05:54:07 +10:00
Adam Langley
920cc5211e [release-branch.go1] A+C: Peter Armitage (individual CLA)
««« backport 0423072b54f2
A+C: Peter Armitage (individual CLA)

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6392065

»»»
2012-09-22 05:54:07 +10:00
Nigel Tao
d74aea6fdc [release-branch.go1] compress/flate: fix panic when nlit is out of bounds.
««« backport ecd688de20fb
compress/flate: fix panic when nlit is out of bounds.

Fixes #3815.

R=r
CC=golang-dev
https://golang.org/cl/6352109

»»»
2012-09-22 05:54:06 +10:00
Benny Siegert
34be79e078 [release-branch.go1] os: add missing full stop in comment
««« backport c61c67c7b924
os: add missing full stop in comment

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6399047

»»»
2012-09-22 05:54:06 +10:00
Rémy Oudompheng
aa3ca5f6d7 [release-branch.go1] cmd/gc: reject use of ... with multiple-valued expressions.
««« backport 6d5faedd95bc
cmd/gc: reject use of ... with multiple-valued expressions.

Fixes #3334.

R=golang-dev, r
CC=golang-dev, remy
https://golang.org/cl/6350103

»»»
2012-09-22 05:54:05 +10:00
Rémy Oudompheng
705534bd30 [release-branch.go1] cmd/gc: avoid an internal error on invalid type switch.
««« backport 254232c99b3e
cmd/gc: avoid an internal error on invalid type switch.

The error was caused by a call to implements() even when
the type switch variable was not an interface.

Fixes #3786.

R=golang-dev, r
CC=golang-dev, remy
https://golang.org/cl/6354102

»»»
2012-09-22 05:54:05 +10:00
Rémy Oudompheng
ca64251832 [release-branch.go1] cmd/gc: fix error message for type errors involving conversions.
««« backport a281d4bd1ba6
cmd/gc: fix error message for type errors involving conversions.

Fixes #3818.

R=golang-dev, rsc, r
CC=golang-dev, remy
https://golang.org/cl/6352106

»»»
2012-09-22 05:54:04 +10:00
Andrew Gerrand
939e2b572d [release-branch.go1] encoding/gob: fix check for short input in slice decode 2012-09-22 05:54:04 +10:00
Rémy Oudompheng
9a1209a215 [release-branch.go1] spec: correct typo in string conversion examples.
««« backport 65de4b905541
spec: correct typo in string conversion examples.

R=golang-dev, dave, r
CC=golang-dev, remy
https://golang.org/cl/6378046

»»»
2012-09-22 05:54:03 +10:00
Adam Langley
9dec2eb42a [release-branch.go1] crypto/rsa: left-pad PKCS#1 v1.5 outputs.
««« backport 46ca86e70e96
crypto/rsa: left-pad PKCS#1 v1.5 outputs.

OpenSSL requires that RSA signatures be exactly the same byte-length
as the modulus. Currently it'll reject ~1/256 of our signatures: those
that end up a byte shorter.

Fixes #3796.

R=golang-dev, edsrzf, r
CC=golang-dev
https://golang.org/cl/6352093

»»»
2012-09-22 05:54:03 +10:00
Dave Cheney
530d9535c8 [release-branch.go1] website: various html fixes
««« backport 744f0397f41a
website: various html fixes

Fixes #3424.

R=fullung, adg
CC=golang-dev
https://golang.org/cl/6343088

»»»
2012-09-22 05:54:02 +10:00
Adam Langley
d251529231 [release-branch.go1] crypto/x509: exempt broken Entrust certificate from checks.
««« backport 8241ffc8686e
crypto/x509: exempt broken Entrust certificate from checks.

Entrust have issued a root certificate that's not marked as valid for
signing certificates.

This results in Go programs failing to validate certificates that
chain up to this root (i.e. gateway.push.apple.com:2195).

Although this is clearly a mistake on Entrust's part, it seems that we
will have to bodge around it.

R=golang-dev, dave, r
CC=golang-dev
https://golang.org/cl/6346064

»»»
2012-09-22 05:54:02 +10:00
David G. Andersen
0a128f203e [release-branch.go1] pkg: Removing duplicated words ("of of", etc.), mostly from comments.
««« backport ce3a981ad1ef
pkg: Removing duplicated words ("of of", etc.), mostly from comments.

Ran 'double.pl' on the pkg tree to identify doubled words.
One change to an error string return in x509;  the rest are in comments.
Thanks to Matt Jibson for the idea.

R=golang-dev, bsiegert
CC=golang-dev
https://golang.org/cl/6344089

»»»
2012-09-22 05:54:01 +10:00
Matt Jibson
ba2a1df948 [release-branch.go1] A+C: correct Matt Jibson
««« backport 63dae3ba6a6d
A+C: correct Matt Jibson

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6344088

»»»
2012-09-22 05:54:01 +10:00
Matthew William Jibson
e2541bf319 [release-branch.go1] doc: various "the the" and other typos
««« backport 74c5c02910de
doc: various "the the" and other typos

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/6355076

»»»
2012-09-22 05:54:01 +10:00
David Symonds
4662a76477 [release-branch.go1] A+C: Matthew Jibson (individual CLA).
««« backport 9349fc3302f5
A+C: Matthew Jibson (individual CLA).

R=golang-dev, alex.brainman
CC=golang-dev
https://golang.org/cl/6349082

»»»
2012-09-22 05:54:00 +10:00
Shenghou Ma
171e72bf28 [release-branch.go1] misc/chrome/gophertool: fix manifest
««« backport 100ddb84c85d
misc/chrome/gophertool: fix manifest
according to http://code.google.com/chrome/extensions/browserAction.html,
it should use "default_popup" instead of "popup".

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/6349077

»»»
2012-09-22 05:53:59 +10:00
Robert Griesemer
40b5d5481a [release-branch.go1] reflect: reflect.Zero results are neither addressable nor settable
««« backport 21130d62eeb0
reflect: reflect.Zero results are neither addressable nor settable

This could be deduced from "The Laws of Reflection" but it seems
worthwhile highlighting it.

R=r
CC=golang-dev
https://golang.org/cl/6350073

»»»
2012-09-22 05:53:59 +10:00
Rob Pike
ecd62d606a [release-branch.go1] encoding/gob: fix bug in Register
««« backport c89f17a9ff4f
encoding/gob: fix bug in Register
The old code added a star but did not indirect the reflect.Type.

R=bradfitz
CC=golang-dev
https://golang.org/cl/6348067

»»»
2012-09-22 05:53:58 +10:00
Shenghou Ma
7d1ddf2b28 [release-branch.go1] doc/debugging_with_gdb: mention how to disable gc optimization
««« backport be7e338a8960
doc/debugging_with_gdb: mention how to disable gc optimization

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6353055

»»»
2012-09-22 05:53:58 +10:00
David G. Andersen
4b3a35b979 [release-branch.go1] math/big: Remove unnecessary test from nat.go multiplication
««« backport c533f48701cb
math/big: Remove unnecessary test from nat.go multiplication
The switch at the beginning of the function already ensures n > 1,
so testing for n < 2 is redundant.

R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/6350051

»»»
2012-09-22 05:53:57 +10:00
Shenghou Ma
759c410691 [release-branch.go1] image: fix doc typo
««« backport 042bac4d6b6e
image: fix doc typo
     Fixes #3789.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6357058

»»»
2012-09-22 05:53:57 +10:00
Shenghou Ma
f98661e77e [release-branch.go1] cmd/gc: add missing case for OCOM in defaultlit()
««« backport b5c4f411a852
cmd/gc: add missing case for OCOM in defaultlit()
        Fixes #3765.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6349064

»»»
2012-09-22 05:53:56 +10:00
Amir Mohammad Saied
731bbfef3b [release-branch.go1] cmd/go: httpGet function does not use global variable httpClient
««« backport 650544a058e9
cmd/go: httpGet function does not use global variable httpClient

No change, just for consistency.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6346048

»»»
2012-09-22 05:53:56 +10:00
Brad Fitzpatrick
9786db83e9 [release-branch.go1] net/http: ignore malicious or dumb Range requests
««« backport d32138d8d05f
net/http: ignore malicious or dumb Range requests

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/6356050

»»»
2012-09-22 05:53:56 +10:00
Pieter Droogendijk
df2bb18fae [release-branch.go1] cmd/dist: Make windows.c's fatal() print to stderr
««« backport 3f7501fdb220
cmd/dist: Make windows.c's fatal() print to stderr

Generating env.bat using dist env -wp > env.bat failed silently
if case of an error, because the message was redirected to env.bat.
Verbose messages still go to stdout, causing problems, but that's
a seperate change.
Made errprintf() identical to xprintf(), except for the output handle.
Yes, it's duplicate code, but most of the function is unpacking
the argument list and preparing it for WriteFile(), which has to be
done anyway.

R=golang-dev, alex.brainman
CC=golang-dev
https://golang.org/cl/6343047

»»»
2012-09-22 05:53:55 +10:00
Jean-Marc Eurin
e1092f2746 [release-branch.go1] misc/emacs: Fix the gofmt patching when the TMPDIR is not the default.
««« backport c5f564efc620
misc/emacs: Fix the gofmt patching when the TMPDIR is not the default.

The previous code assumed the gofmt output referred to /tmp but
that's not true if TMPDIR points somewhere else (like on Macs).
Fixes #3782.

R=sameer
CC=golang-dev
https://golang.org/cl/6346050

»»»
2012-09-22 05:53:55 +10:00
Brad Fitzpatrick
118f2163bc [release-branch.go1] net/http: support multiple byte ranges in ServeContent
««« backport 070604630d24
net/http: support multiple byte ranges in ServeContent

Fixes #3784

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/6351052

»»»
2012-09-22 05:53:54 +10:00
Andrey Mirtchovski
e3bc1e4206 [release-branch.go1] net/http: Fix a verb-tense mismatch and a typo in documentation.
««« backport f8a77e2b7d0b
net/http: Fix a verb-tense mismatch and a typo in documentation.

R=bradfitz
CC=golang-dev
https://golang.org/cl/6357049

»»»
2012-09-22 05:53:54 +10:00
Robert Griesemer
6263484de5 [release-branch.go1] go spec: clean up section on selectors
««« backport eb24cee7f21b
go spec: clean up section on selectors

- point out difference between selectors and qualified identifiers
- differentiate between illegal selectors and run-time panics
- use "indirect" as opposed to "dereference" consistently
- add extra links

Fixes #3779.

R=r, rsc, iant, ken
CC=golang-dev
https://golang.org/cl/6326059

»»»
2012-09-22 05:53:53 +10:00
Joe Poirier
f7a20edf47 [release-branch.go1] syscall: add missing argument type
««« backport 3909e0071e70
syscall: add missing argument type

And update implementation location comment.

R=golang-dev, alex.brainman
CC=golang-dev
https://golang.org/cl/6352046

»»»
2012-09-22 05:53:53 +10:00
Robert Griesemer
5c990db214 [release-branch.go1] go spec: clean up use of QualifiedIdent production.
««« backport d8bd45866999
go spec: clean up use of QualifiedIdent production.

Fixes #3763.

R=r, rsc, iant, ken
CC=golang-dev
https://golang.org/cl/6333066

»»»
2012-09-22 05:53:52 +10:00
Russ Cox
7cf931beb0 [release-branch.go1] A+C: L Campbell (individual CLA)
««« backport c88692a626e9
A+C: L Campbell (individual CLA)

Guess I was wrong about being done for the day.

R=golang-dev, r
CC=golang-dev, unpantsu
https://golang.org/cl/6325060

»»»
2012-09-22 05:53:52 +10:00
Rob Pike
ba76560a34 [release-branch.go1] fmt: set p.field before nil check
««« backport 5f13e0662e38
fmt: set p.field before nil check
Fixes #3752.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6331062

»»»
2012-09-22 05:53:51 +10:00
Andrew Gerrand
025324f030 [release-branch.go1] doc: drop video title from homepage
««« backport 9da3902443ca
doc: drop video title from homepage

It's just stutter.

R=golang-dev, dsymonds, r
CC=golang-dev
https://golang.org/cl/6334053

»»»
2012-09-22 05:53:51 +10:00
Russ Cox
9c094065d2 [release-branch.go1] A+C: Jonathan Gold (individual CLA)
««« backport ee62927ec779
A+C: Jonathan Gold (individual CLA)

This is my last one for today, I hope!

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6339052

»»»
2012-09-22 05:53:50 +10:00
Russ Cox
a2c35039af [release-branch.go1] A+C: add Michael Stapelberg (individual CLA)
««« backport 04f61caa80cd
A+C: add Michael Stapelberg (individual CLA)

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6325058

»»»
2012-09-22 05:53:50 +10:00
Pieter Droogendijk
2f34673073 [release-branch.go1] go/build: fix doc typo
««« backport e12419d09635
go/build: fix doc typo

go/build section "Build Constraints", first paragraph said:
  "... they must be appear near the top of the file ..."
fixed to:
  "... they must appear near the top of the file ..."

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6329060

»»»
2012-09-22 05:53:49 +10:00
Amir Mohammad Saied
81c423a763 [release-branch.go1] misc/chrome/gophertool: Support for manifest version 1 is being phased out.
««« backport 0f017230e6b4
misc/chrome/gophertool: Support for manifest version 1 is being phased out.

Manifest version 1 was deprecated in Chrome 18, and support will be phased
out according to the schedule available at:
http://code.google.com/chrome/extensions/manifestVersion.html

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6332053

»»»
2012-09-22 05:53:49 +10:00
Russ Cox
270db92140 [release-branch.go1] A+C: Amir Mohammad Saied, Thomas Alan Copeland (both individual CLA)
««« backport 565770878659
A+C: Amir Mohammad Saied, Thomas Alan Copeland (both individual CLA)

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6330059

»»»
2012-09-22 05:53:48 +10:00
Robert Griesemer
ef54d5cff0 [release-branch.go1] spec: clarify receive operator
««« backport c72ac7873261
spec: clarify receive operator

- receiving from a closed channel returns immediately
- in the ,ok form, the 2nd result is of type bool, not
  just boolean (gc and ggcgo agree).

Per dsymonds' suggestion.

R=r, rsc, ken, iant, dsymonds
CC=golang-dev
https://golang.org/cl/6333057

»»»
2012-09-22 05:53:48 +10:00
Russ Cox
3b81bac147 [release-branch.go1] runtime: detect hash map collision problems
««« backport f99b9475b914
runtime: detect hash map collision problems

This can only happen if the hash function we're using is getting
far more than it's fair share of collisions, but that has happened
to us repeatedly as we've expanded the allowed use cases for
hash tables (issue 1544, issue 2609, issue 2630, issue 2883, issue 3695).
Maybe this will help the next time we try something new.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6306083

»»»
2012-09-22 05:53:47 +10:00
Han-Wen Nienhuys
fd70e5dd66 [release-branch.go1] os: make POSIX StartProcess work with chroot again.
««« backport 2aaa88600d48
os: make POSIX StartProcess work with chroot again.

Skip directory check in startProcess in the presence of
SysProcAttr.

Fixes #3649.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6297083

»»»
2012-09-22 05:53:47 +10:00
Russ Cox
e409b76bb8 [release-branch.go1] CONTRIBUTORS: add Han-Wen Nienhuys (Google CLA)
««« backport d4b91c10aa5e
CONTRIBUTORS: add Han-Wen Nienhuys (Google CLA)

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6327054

»»»
2012-09-22 05:53:46 +10:00
Dave Cheney
de4d684429 [release-branch.go1] runtime: avoid r9/r10 during memmove
««« backport 5ca8acc84025
runtime: avoid r9/r10 during memmove

Fixes #3718.

Requires CL 6300043.

R=rsc, minux.ma, extraterrestrial.neighbour
CC=golang-dev
https://golang.org/cl/6305100

»»»
2012-09-22 05:53:46 +10:00
Dave Cheney
ad8ecb7d82 [release-branch.go1] runtime: avoid r9/r10 during memset
««« backport 572efb136b1a
runtime: avoid r9/r10 during memset

Partially fixes issue 3718.

R=golang-dev, rsc, minux.ma
CC=golang-dev
https://golang.org/cl/6300043

»»»
2012-09-22 05:53:45 +10:00
David Symonds
5ba3b575bb [release-branch.go1] flag: fix indexing doc.
««« backport 6ca4825bc867
flag: fix indexing doc.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6341046

»»»
2012-09-22 05:53:45 +10:00
Brad Fitzpatrick
a1bfd04394 [release-branch.go1] net/http: fix doc inaccuracy and typo; tighten test
««« backport 60041e23de38
net/http: fix doc inaccuracy and typo; tighten test

Note url.Error wrapping, and s/issue/issuing/.

Fixes #3724

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6294093

»»»
2012-09-22 05:53:45 +10:00
Shenghou Ma
4aaf800fd7 [release-branch.go1] runtime: fix struct Sigaction for Linux/386
««« backport 645947213cac
runtime: fix struct Sigaction for Linux/386
        We need to use kernel headers to generate defs_linux_$GOARCH.h

R=golang-dev, dave, alex.brainman, iant
CC=golang-dev
https://golang.org/cl/6296091

»»»
2012-09-22 05:53:44 +10:00
David G. Andersen
133727bd0c [release-branch.go1] net/rpc: fix typo in documentation, clarify semantics of error return
««« backport ef713d7587f2
net/rpc: fix typo in documentation, clarify semantics of error return

Several of my students were confused by trying to use both the error
return and a reply return, so I figured it was worth explicitly clarifying
that returning an error overrides the reply.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6327051

»»»
2012-09-22 05:53:44 +10:00
David G. Andersen
e67e930344 [release-branch.go1] encoding/json: fix minor typo in documentation for Marshal
««« backport 093dcfc4d307
encoding/json: fix minor typo in documentation for Marshal

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6325053

»»»
2012-09-22 05:53:43 +10:00
Andrew Gerrand
4cc0efc468 [release-branch.go1] doc: put A Tour of Go video on the front page
««« backport a95bedca6dae
doc: put A Tour of Go video on the front page

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6337047

»»»
2012-09-22 05:53:43 +10:00
Mats Lidell
e84e197cca [release-branch.go1] misc/emacs: Replace replace-{string|regexp} for XEmacs compatible code
««« backport d730d2e4733d
misc/emacs: Replace replace-{string|regexp} for XEmacs compatible code

Use code to be used in lisp programs as suggested in the doc strings for
replace-{string|regexp}. Bonus: This code works for XEmacs.

R=golang-dev, sameer, jmeurin
CC=golang-dev
https://golang.org/cl/6296073

»»»
2012-09-22 05:53:42 +10:00
Shenghou Ma
fbf580a3bc [release-branch.go1] doc/articles/slices_usage_and_internals: fix typo
««« backport 5b56c2c0597f
doc/articles/slices_usage_and_internals: fix typo
        Fixes #3753.

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/6304097

»»»
2012-09-22 05:53:42 +10:00
Shenghou Ma
c8e6fca26b [release-branch.go1] runtime: fix struct Sigaction for Linux/ARM
««« backport 6eefce99091e
runtime: fix struct Sigaction for Linux/ARM
        if we were to use sizeof(sa.sa_mask) instead of 8 as the last argument
        to rt_sigaction, we would have already fixed this bug, so also updated
        Linux/386 and Linux/amd64 files to use that; also test the return value
        of rt_sigaction.

R=dave, rsc
CC=golang-dev
https://golang.org/cl/6297087

»»»
2012-09-22 05:53:41 +10:00
Brad Fitzpatrick
34141f7c1b [release-branch.go1] net/http: clarify client return values in docs
««« backport f7839a55036e
net/http: clarify client return values in docs

Also, fixes one violation found during testing where both
response and error could be non-nil when a CheckRedirect test
failed.  This is arguably a minor API (behavior, not
signature) change, but it wasn't documented either way and was
inconsistent & non-Go like.  Any code depending on the old
behavior was wrong anyway.

R=adg, rsc
CC=golang-dev
https://golang.org/cl/6307088

»»»
2012-09-22 05:53:41 +10:00
Robert Griesemer
3046fc9754 [release-branch.go1] go/ast: multiple "blank" imports are permitted
««« backport 2033e1b11a20
go/ast: multiple "blank" imports are permitted

R=rsc, dsymonds
CC=golang-dev
https://golang.org/cl/6303099

»»»
2012-09-22 05:53:40 +10:00
Marcel van Lohuizen
002a3b4722 [release-branch.go1] bytes: fixed typo.
««« backport a3c2d3c41c45
bytes: fixed typo.

R=r
CC=golang-dev
https://golang.org/cl/6301096

»»»
2012-09-22 05:53:40 +10:00
Adam Langley
2eb00d042e [release-branch.go1] A+C: Christine Hansmann (individual CLA)
««« backport 4086a221c497
A+C: Christine Hansmann (individual CLA)

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6312045

»»»
2012-09-22 05:53:39 +10:00
Robert Griesemer
0352cdb054 [release-branch.go1] go/ast: Walk: do not walk comment list
««« backport 5e3661048f2e
go/ast: Walk: do not walk comment list

A comment to that effect was introduced
with rev d332f4b9cef5 but the respective
code wasn't deleted.

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6304086

»»»
2012-09-22 05:53:39 +10:00
Shenghou Ma
53538d8ad3 [release-branch.go1] doc: delete Mercurial Queues doc
««« backport 47e7c99fbe87
doc: delete Mercurial Queues doc
        Fixes #3716.

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/6310044

»»»
2012-09-22 05:53:39 +10:00
Shenghou Ma
69a3887662 [release-branch.go1] crypto/elliptic: fix doc typo
««« backport 9f9c0363f0ed
crypto/elliptic: fix doc typo
        Fixes #3735.

R=golang-dev, agl
CC=golang-dev
https://golang.org/cl/6301083

»»»
2012-09-22 05:53:38 +10:00
Brad Fitzpatrick
5557e72b70 [release-branch.go1] net/http: use index.html modtime (not directory) for If-Modified-Since
««« backport c536f328c34b
net/http: use index.html modtime (not directory) for If-Modified-Since

Thanks to Håvid Falch for finding the problem.

Fixes #3414

R=r, rsc
CC=golang-dev
https://golang.org/cl/6300081

»»»
2012-09-22 05:53:38 +10:00
Russ Cox
63608ff3be [release-branch.go1] runtime: replace runtime·rnd function with ROUND macro
««« backport 722bb90ae3ee
runtime: replace runtime·rnd function with ROUND macro

It's sad to introduce a new macro, but rnd shows up consistently
in profiles, and the function call overwhelms the two arithmetic
instructions it performs.

R=r
CC=golang-dev
https://golang.org/cl/6260051

»»»
2012-09-22 05:53:37 +10:00
Brad Fitzpatrick
1f107b58f7 [release-branch.go1] net/http: fix response Connection: close, close client connections
««« backport 4c333000f50b
net/http: fix response Connection: close, close client connections

Fixes #3663
Updates #3540 (fixes it more)
Updates #1967 (fixes it more, re-enables a test)

R=golang-dev, n13m3y3r
CC=golang-dev
https://golang.org/cl/6213064

»»»
2012-09-22 05:53:37 +10:00
Brad Fitzpatrick
299e7d20a3 [release-branch.go1] net/http: fix regression and mute known test failure for now
««« backport c3cbd6798cc7
net/http: fix regression and mute known test failure for now

Two tests added in 820ffde8c are expected to fail until the fix
for Issue 3540 goes back in (pending Windows net fixes), so
make those tests just Logf for now, with a TODO to re-enable.

Add a new client test.

Rearrange the transport code to be more readable, and fix the
bug from 820ffde8c where the persistConn was being closed before
the body was fully ready.

Fixes #3644
Updates #1967 (not yet fixed, but should be after Issue 3540)

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/6211069

»»»
2012-09-22 05:53:36 +10:00
James Gray
4900af0839 [release-branch.go1] net/http: non-keepalive connections close successfully
««« backport 820ffde8c396
net/http: non-keepalive connections close successfully

Connections did not close if Request.Close or Response.Close was true. This meant that if the user wanted the connection to close, or if the server requested it via "Connection: close", the connection would not be closed.

Fixes #1967.

R=golang-dev, rsc, bradfitz
CC=golang-dev
https://golang.org/cl/6201044

»»»
2012-09-22 05:53:36 +10:00
Brad Fitzpatrick
6e3205f519 [release-branch.go1] net/http: ignore paths on CONNECT requests in ServeMux
««« backport 8eae6e390d20
net/http: ignore paths on CONNECT requests in ServeMux

Fixes #3538

R=golang-dev, adg, rsc
CC=golang-dev
https://golang.org/cl/6117058

»»»
2012-09-22 05:53:35 +10:00
Anthony Martin
59db4e26d2 [release-branch.go1] os: avoid panic when testing errors on Plan 9
««« backport 99b8351bfb9e
os: avoid panic when testing errors on Plan 9

R=golang-dev, bradfitz, akumar
CC=golang-dev
https://golang.org/cl/6017043

»»»
2012-09-22 05:53:35 +10:00
Shenghou Ma
2898687794 [release-branch.go1] 5c, 6c, 8c: take GOROOT_FINAL into consideration
««« backport 016c4fefed77
5c, 6c, 8c: take GOROOT_FINAL into consideration

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5936050

»»»
2012-09-22 05:53:34 +10:00
Shenghou Ma
cb71577d10 [release-branch.go1] 5a, 6a, 8a: take GOROOT_FINAL into consideration
««« backport a608a03df703
5a, 6a, 8a: take GOROOT_FINAL into consideration

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5940052

»»»
2012-09-22 05:53:32 +10:00
Andrew Gerrand
cb6c6570b7 [release-branch.go1] syscall: fix windows build
««« CL 6303061 / 17432a753e50
syscall: fix windows build

TBR=bradfitz
CC=golang-dev
https://golang.org/cl/6303061
»»»

R=golang-dev
CC=golang-dev
https://golang.org/cl/6295080
2012-06-14 12:50:42 +10:00
Russ Cox
d0eabe2bbf [release-branch.go1] syscall: fix GetCurrentProcessId symbol name on Windows 2012-06-13 22:06:57 -04:00
Andrew Gerrand
75fff72d44 [release-branch.go1] doc: document go1.0.2
««« CL 6298079 / a19665fe6f33
doc: document go1.0.2

R=golang-dev, dave, rsc
CC=golang-dev
https://golang.org/cl/6298079
»»»

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6302076
2012-06-14 11:50:00 +10:00
Russ Cox
5d333a6de5 [release-branch.go1] update VERSION to go1.0.2 2012-06-13 16:25:02 -04:00
Russ Cox
596e6f390b [release-branch.go1] syscall: unexport GetCurrentProcessId on Windows 2012-06-13 16:25:01 -04:00
Jan Ziak
96ab6e4a84 [release-branch.go1] runtime: improved continuity in hash computation
««« backport c8d163b7930e
runtime: improved continuity in hash computation

Fixes #3695.

R=r, dave, rsc
CC=golang-dev
https://golang.org/cl/6304062

»»»
2012-06-13 16:25:00 -04:00
Jean-Marc Eurin
4a0549ffc6 [release-branch.go1] misc/emacs: Fix a failure when /tmp/<file>.go exists.
««« backport 903a3cdd92cf
misc/emacs: Fix a failure when /tmp/<file>.go exists.

R=sameer
CC=golang-dev
https://golang.org/cl/6296060

»»»
2012-06-13 16:25:00 -04:00
Jean-Marc Eurin
95c8f44f3a [release-branch.go1] misc/emacs: Fix the automatic gofmt when creating a new file.
««« backport 5b4920fe3605
misc/emacs: Fix the automatic gofmt when creating a new file.

Patching the buffer with the output from gofmt -d only works if
the file already exists. If it doesn't, replace the content with
the output of gofmt.

R=sameer
CC=golang-dev
https://golang.org/cl/6302063

»»»
2012-06-13 16:24:59 -04:00
Brad Fitzpatrick
687e047b14 [release-branch.go1] encoding/gob: fix doc typo
««« backport d34766b79c5e
encoding/gob: fix doc typo

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6300078

»»»
2012-06-13 16:24:58 -04:00
Russ Cox
2117541627 [release-branch.go1] syscall: revert API changes in Windows Win32finddata fix.
««« backport 7a7a91c3da32
syscall: revert API changes in Windows Win32finddata fix.

Preserve old API by using correct struct in system call
and then copying the results, as we did for SetsockoptLinger.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6307065

»»»
2012-06-13 16:24:57 -04:00
Russ Cox
1ddbfeedae [release-branch.go1] cmd/api: handle empty API file, ignore -next in release
««« backport 8e7ad2db0833
cmd/api: handle empty API file, ignore -next in release

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6298063

»»»
2012-06-13 16:24:56 -04:00
Russ Cox
e819613d08 [release-branch.go1] regexp/syntax: unexport ErrUnexpectedParen
««« backport b4cdcec897fb
regexp/syntax: unexport ErrUnexpectedParen

This new error is the only API change in the current draft of
Go 1.0.2 CLs. I'd like to include the CL that introduced it,
because it replaces a mysterious 'internal error' with a
useful error message, but I don't want any API changes,
so unexport the error constant for now. It can be
re-exported for Go 1.1.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6294055

»»»
2012-06-13 16:24:55 -04:00
Dave Cheney
ef902f8c8e [release-branch.go1] cmd/5c, cmd/5g, cmd/5l: fix cross compilation failure on darwin
««« backport 432f2b7f5458
cmd/5c, cmd/5g, cmd/5l: fix cross compilation failure on darwin

Fixes #3708.

The fix to allow 5{c,g,l} to compile under clang 3.1 broke cross
compilation on darwin using the Apple default compiler on 10.7.3.

This failure was introduced in 9b455eb64690.

This has been tested by cross compiling on darwin/amd64 to linux/arm using

* gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)
* clang version 3.1 (branches/release_31)

As well as on linux/arm using

* gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
* Ubuntu clang version 3.0-6ubuntu3 (tags/RELEASE_30/final) (based on LLVM 3.0)
* Debian clang version 3.1-4 (branches/release_31) (based on LLVM 3.1)

R=consalus, rsc
CC=golang-dev
https://golang.org/cl/6307058

»»»
2012-06-13 16:24:54 -04:00
Russ Cox
2c396a8f4a [release-branch.go1] cmd/cgo: make Go code order deterministic
««« backport 319a9f3330d0
cmd/cgo: make Go code order deterministic

The type declarations were being generated using
a range over a map, which meant that successive
runs produced different orders. This will make sure
successive runs produce the same files.

Fixes #3707.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6300062

»»»
2012-06-13 16:24:54 -04:00
Russ Cox
5169191e96 [release-branch.go1] cmd/gc: limit data disassembly to -SS
««« backport 14ce24bcd818
cmd/gc: limit data disassembly to -SS

This makes -S useful again.

R=ken2
CC=golang-dev
https://golang.org/cl/6302054

»»»
2012-06-13 16:24:53 -04:00
Russ Cox
a2f13c8cf2 [release-branch.go1] cmd/gc: fix LEAQ $0, SI bug
««« backport c4a344d25b87
cmd/gc: fix LEAQ $0, SI bug

Cannot take effective address of constant.

Fixes #3670.

R=ken2
CC=golang-dev
https://golang.org/cl/6299055

»»»
2012-06-13 16:24:52 -04:00
Russ Cox
0d5061ac95 [release-branch.go1] cmd/gc: fix type checking loop
««« backport e69400ace361
cmd/gc: fix type checking loop

CL 4313064 fixed its test case but did not address a
general enough problem:

type T1 struct { F *T2 }
type T2 T1
type T3 T2

could still end up copying the definition of T1 for T2
before T1 was done being evaluated, or T3 before T2
was done.

In order to propagate the updates correctly,
record a copy of an incomplete type for re-execution
once the type is completed. Roll back CL 4313064.

Fixes #3709.

R=ken2
CC=golang-dev, lstoakes
https://golang.org/cl/6301059

»»»
2012-06-13 16:24:51 -04:00
Russ Cox
61364c1b97 [release-branch.go1] cmd/gc: delete dead code
««« backport 721d528a4e91
cmd/gc: delete dead code

R=ken2
CC=golang-dev
https://golang.org/cl/6307050

»»»
2012-06-13 16:24:50 -04:00
Russ Cox
a56e41d518 [release-branch.go1] cmd/gc: do not crash on struct with _ field
««« backport af07f1cd12dc
cmd/gc: do not crash on struct with _ field

Fixes #3607.

R=ken2
CC=golang-dev
https://golang.org/cl/6296052

»»»
2012-06-13 16:24:49 -04:00
Russ Cox
4bc9ddf82f [release-branch.go1] cmd/gc: preserve side effects during inlining of function with _ argument
««« backport 0ba8e27c7b87
cmd/gc: preserve side effects during inlining of function with _ argument

Fixes #3593.

R=ken2
CC=golang-dev, lvd
https://golang.org/cl/6305061

»»»
2012-06-13 16:24:49 -04:00
Russ Cox
dc0f7d6fde [release-branch.go1] encoding/json: fix panic unmarshaling into non-nil interface value
««« backport bee83c1509a3
encoding/json: fix panic unmarshaling into non-nil interface value

Fixes #3614.

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/6306051

»»»
2012-06-13 16:24:48 -04:00
Russ Cox
cec2715018 [release-branch.go1] cmd/gc: mark output of typename as type-checked
««« backport d39a44280dd3
cmd/gc: mark output of typename as type-checked

R=ken2
CC=golang-dev
https://golang.org/cl/6302051

»»»
2012-06-13 16:24:47 -04:00
Daniel Morsing
24ee3e4eef [release-branch.go1] fmt: fix doc typo
««« backport 76f136192aac
fmt: fix doc typo

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6308046

»»»
2012-06-13 16:24:46 -04:00
Russ Cox
0db7bc2ed8 [release-branch.go1] A+C: Daniel Morsing (individual CLA)
««« backport a47632179cb7
A+C: Daniel Morsing (individual CLA)

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6307048

»»»
2012-06-13 16:24:45 -04:00
Russ Cox
2ed8b2011d [release-branch.go1] A+C: Markus Sonderegger (individual CLA)
««« backport a6e2b17a16d7
A+C: Markus Sonderegger (individual CLA)

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6303047

»»»
2012-06-13 16:24:44 -04:00
Shenghou Ma
d261dc39aa [release-branch.go1] build: restore PATH before "dist banner"
««« backport 2787cca7ac8f
build: restore PATH before "dist banner"
        Fixes #3699.

R=golang-dev, r, rsc
CC=golang-dev
https://golang.org/cl/6272048

»»»
2012-06-13 16:24:44 -04:00
Dave Cheney
d4a15ab8ca [release-branch.go1] cmd/5c, cmd/5g, cmd/5l: fix array indexing warning under Clang 3.1
««« backport 9b455eb64690
cmd/5c, cmd/5g, cmd/5l: fix array indexing warning under Clang 3.1

This should be the last of them.

R=golang-dev, minux.ma, rsc
CC=golang-dev
https://golang.org/cl/6297043

»»»
2012-06-13 16:24:43 -04:00
Rémy Oudompheng
3a9bd603ed [release-branch.go1] cmd/[568]g: correct freeing of allocated Regs.
««« backport f1028a23b059
cmd/[568]g: correct freeing of allocated Regs.

R=golang-dev, rsc
CC=golang-dev, remy
https://golang.org/cl/6281050

»»»
2012-06-13 16:24:42 -04:00
Robert Griesemer
9f0345c4ec [release-branch.go1] go spec: clarify promotion rules for methods/fields of anonymous fields
««« backport ae0301294b9b
go spec: clarify promotion rules for methods/fields of anonymous fields

Fixes #3635.

R=rsc, r, iant, kevlar, iant
CC=golang-dev
https://golang.org/cl/6217045

»»»
2012-06-13 16:24:41 -04:00
Russ Cox
0508326926 [release-branch.go1] doc/install: we don't print 'The compiler is 6g' anymore
««« backport 008b163fb38a
doc/install: we don't print 'The compiler is 6g' anymore

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6273050

»»»
2012-06-13 16:24:40 -04:00
Ryan Barrett
1ba00e32da [release-branch.go1] misc/emacs: make compilation-mode's next-error understand test failure output.
««« backport f469c9d212c4
misc/emacs: make compilation-mode's next-error understand test failure output.

specifically, adds a go-test element to compilation-error-regexp-alist[-alist].
Fixes #3629.

R=golang-dev, rsc, sameer
CC=golang-dev, jba
https://golang.org/cl/6197091

»»»
2012-06-13 16:24:40 -04:00
Shenghou Ma
4c35c0b498 [release-branch.go1] api: add Linux/ARM to go1 API
««« backport 5538444d6f32
api: add Linux/ARM to go1 API
It's very unfortunate that the type of Data field of struct
RawSockaddr is [14]uint8 on Linux/ARM instead of [14]int8
on all the others.
btw, it should be [14]int8 according to my header files.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6275050

»»»
2012-06-13 16:24:39 -04:00
Mikio Hara
0a6b1d66f6 [release-branch.go1] path/filepath: fix test
««« backport 912fdfb20cc6
path/filepath: fix test

Make it possible to run test over symlinked GOROOT.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6268046

»»»
2012-06-13 16:24:38 -04:00
Alex Brainman
f384564778 [release-branch.go1] syscall: correct Win32finddata definition
««« backport 45d1063d8520
syscall: correct Win32finddata definition

Fixes #3685.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6261053

»»»
2012-06-13 16:24:37 -04:00
Shenghou Ma
47c317c50b [release-branch.go1] syscall: fix 32-bit uid calls
««« backport 31e36672e3df
syscall: fix 32-bit uid calls
        16-bit uid calls are not always supported in newer kernels.

R=dave, rsc, bradfitz
CC=golang-dev
https://golang.org/cl/6279047

»»»
2012-06-13 16:24:36 -04:00
Jan Mercl
c30e746666 [release-branch.go1] path/filepath: implement documented SkipDir behavior
««« backport 4ef88bab4b0d
path/filepath: implement documented SkipDir behavior

Currently walk() doesn't check for err == SkipDir when iterating
a directory list, but such promise is made in the docs for WalkFunc.

Fixes #3486.

R=rsc, r
CC=golang-dev
https://golang.org/cl/6257059

»»»
2012-06-13 16:24:35 -04:00
Brad Fitzpatrick
01faffd009 [release-branch.go1] api: add FreeBSD to go1 API
««« backport d8e47164f8dd
api: add FreeBSD to go1 API

Now that gri has made go/parser 15% faster, I offer this
change to slow back down cmd/api ~proportionately, adding
FreeBSD to the go1-checked set of platforms.

Really we should have done this earlier. This will prevent us
from breaking FreeBSD compatibility accidentally in the
future.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6279044

»»»
2012-06-13 16:24:34 -04:00
Ryan Barrett
8da546a3cf [release-branch.go1] misc/emacs: stop go-mode from spuriously marking the buffer modified when it loads
««« backport f0fc2ba71361
misc/emacs: stop go-mode from spuriously marking the buffer modified when it loads

R=golang-dev, sameer, bradfitz
CC=golang-dev, jba
https://golang.org/cl/6213056

»»»
2012-06-13 16:24:34 -04:00
Sameer Ajmani
95cffc1227 [release-branch.go1] CONTRIBUTORS: Add Ryan Barrett (Google CLA)
««« backport d7030ef36339
CONTRIBUTORS: Add Ryan Barrett (Google CLA)

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6244071

»»»
2012-06-13 16:24:33 -04:00
Rob Pike
c558dc787d [release-branch.go1] regexp: fix a couple of bugs in the documentation
««« backport 97295af6ee9b
regexp: fix a couple of bugs in the documentation
Byte slices are not strings.

Fixes #3687.

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6257074

»»»
2012-06-13 16:24:32 -04:00
Ivan Krasin
5fc093e3c0 [release-branch.go1] compress/flate: fix overflow on 2GB input. Reset hashOffset every 16 MB.
««« backport 00a1ca1ea3bd
compress/flate: fix overflow on 2GB input. Reset hashOffset every 16 MB.

This bug has been introduced in the following revision:

changeset:   11404:26dceba5c610
user:        Ivan Krasin <krasin@golang.org>
date:        Mon Jan 23 09:19:39 2012 -0500
summary:     compress/flate: reduce memory pressure at cost of additional arithmetic operation.

This is the review page for that CL: https://golang.org/cl/5555070/

R=rsc, imkrasin
CC=golang-dev
https://golang.org/cl/6249067

»»»
2012-06-13 16:24:31 -04:00
Mats Lidell
19af0b28c5 [release-branch.go1] go-mode: Works for both GNU-Emacs and XEmacs-21.5
««« backport 83f7ee1fa792
go-mode: Works for both GNU-Emacs and XEmacs-21.5

Fixes some portability issues between the Emacsen.

R=golang-dev, sameer, bradfitz, ryanb
CC=golang-dev
https://golang.org/cl/6206043

»»»
2012-06-13 16:24:30 -04:00
Sameer Ajmani
56ef99d910 [release-branch.go1] A+C: add Mats Lidell. He signed the agreement with the Sweden email
««« backport 700728feacc8
A+C: add Mats Lidell.  He signed the agreement with the Sweden email
address, but his changelist is under the Gmail address.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6248069

»»»
2012-06-13 16:24:30 -04:00
Jean-Marc Eurin
39c6f00c9a [release-branch.go1] misc/emacs: Use patch output of gofmt instead of replacing the buffer.
««« backport 6c2e9ed1f714
misc/emacs: Use patch output of gofmt instead of replacing the buffer.

This uses the patch output of gofmt (-d option) and applies each
chunk to the buffer, instead of replacing the whole buffer.  The
main advantage is that the undo history is kept across gofmt'ings,
so it can really be used as a before-save-hook.

R=sameer, sameer
CC=golang-dev
https://golang.org/cl/6198047

»»»
2012-06-13 16:24:29 -04:00
Rémy Oudompheng
f12183ff6a [release-branch.go1] runtime: do not unset the special bit after finalization.
««« backport 4a10c887bb3e
runtime: do not unset the special bit after finalization.

A block with finalizer might also be profiled. The special bit
is needed to unregister the block from the profile. It will be
unset only when the block is freed.

Fixes #3668.

R=golang-dev, rsc
CC=golang-dev, remy
https://golang.org/cl/6249066

»»»
2012-06-13 16:24:28 -04:00
Peter Kleiweg
c8ba37cf37 [release-branch.go1] Emacs go-mode: don't indent the inside of strings.
««« backport 8888febbe757
Emacs go-mode: don't indent the inside of strings.

Two fixes for indentation problems:

1. Properly recognize multi-line strings. These start with `, not ".

2. Don't indent a line if the beginning of the line is the end of a multi-line string. This happened for instance when inserting a closing bracket after a multi-line string.

R=sameer
CC=golang-dev
https://golang.org/cl/6157044

»»»
2012-06-13 16:24:27 -04:00
Dmitriy Vyukov
d0176e77e7 [release-branch.go1] time: fix deadlock in Sleep(0)
««« backport 085b20e6e0aa
time: fix deadlock in Sleep(0)
See time/sleep_test.go for repro.

R=golang-dev, r, rsc
CC=golang-dev, patrick.allen.higgins
https://golang.org/cl/6250072

»»»
2012-06-13 16:24:26 -04:00
Mikio Hara
35a1aa0420 [release-branch.go1] net: fix comment on FileListener
««« backport 3dfcac5f8254
net: fix comment on FileListener

R=rsc
CC=golang-dev
https://golang.org/cl/6242067

»»»
2012-06-13 16:24:26 -04:00
Peter Kleiweg
4fcdfe1eb6 [release-branch.go1] Emacs go-mode: fix Emacs freeze-up when copy/pasting from string or comment.
««« backport 798239220647
Emacs go-mode: fix Emacs freeze-up when copy/pasting from string or comment.

Fixes #3509.
Fixes #2767.

R=golang-dev, sameer
CC=golang-dev
https://golang.org/cl/6139066

»»»
2012-06-13 16:24:25 -04:00
Sameer Ajmani
90f1a852dc [release-branch.go1] A+C: Peter Kleiweg (individual CLA)
««« backport 771b60b029d4
A+C: Peter Kleiweg (individual CLA)

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6260049

»»»
2012-06-13 16:24:24 -04:00
Alexey Borzenkov
71b3ca0817 [release-branch.go1] net/http: reuse http proxy connections for different http requests
««« backport d0bc02d414c7
net/http: reuse http proxy connections for different http requests

Comment on cache keys above connectMethod says "http to proxy, http
anywhere after that", however in reality target address was always
included, which prevented http requests to different target
addresses to reuse the same http proxy connection.

R=golang-dev, r, rsc, bradfitz
CC=golang-dev
https://golang.org/cl/5901064

»»»
2012-06-13 16:24:23 -04:00
Alex Brainman
6835ec91dd [release-branch.go1] syscall: simplify text returned by Errno.Error() when FormatMessage fails
««« backport ac7250065a04
syscall: simplify text returned by Errno.Error() when FormatMessage fails

Fixes #3623.

R=golang-dev, bsiegert, rsc
CC=golang-dev
https://golang.org/cl/6218072

»»»
2012-06-13 16:24:22 -04:00
Russ Cox
920ebab03c [release-branch.go1] cmd/gc: fix parallel assignment in range
««« backport 2252777854d2
cmd/gc: fix parallel assignment in range

for expr1, expr2 = range slice
was assigning to expr1 and expr2 in sequence
instead of in parallel.  Now it assigns in parallel,
as it should.  This matters for things like
for i, x[i] = range slice.

Fixes #3464.

R=ken2
CC=golang-dev
https://golang.org/cl/6252048

»»»
2012-06-13 16:24:21 -04:00
Russ Cox
dfb11495b5 [release-branch.go1] runtime: handle and test large map values
««« backport 98488e2e38ee
runtime: handle and test large map values

This is from CL 5451105 but was dropped from that CL.
See also CL 6137051.

The only change compared to 5451105 is to check for
h != nil in reflect·mapiterinit; allowing use of nil maps
must have happened after that original CL.

Fixes #3573.

R=golang-dev, dave, r
CC=golang-dev
https://golang.org/cl/6215078

»»»
2012-06-13 16:24:21 -04:00
Robert Griesemer
73052c1d6c [release-branch.go1] strconv: better documentation for FormatInt, FormatUint.
««« backport e2e4e44b1804
strconv: better documentation for FormatInt, FormatUint.

Fixes #3580.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6252047

»»»
2012-06-13 16:24:20 -04:00
Bill Thiede
c8e2ccdc9c [release-branch.go1] net/mail: more liberal parsing of Date headers.
««« backport e995a1bfe589
net/mail: more liberal parsing of Date headers.
Fixes #3639.

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6243045

»»»
2012-06-13 16:24:19 -04:00
David Symonds
ce85383682 [release-branch.go1] C: Bill Thiede (Google CLA)
««« backport 2088c4af2ff8
C: Bill Thiede (Google CLA)

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6257050

»»»
2012-06-13 16:24:18 -04:00
Rob Pike
f5ef888ce9 [release-branch.go1] runtime: fix docs for Caller and Callers
««« backport 443c7a2dabe9
runtime: fix docs for Caller and Callers
The previous attempt to explain this got it backwards (all the more reason to be
sad we couldn't make the two functions behave the same).

Fixes #3669.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6249051

»»»
2012-06-13 16:24:17 -04:00
Russ Cox
84d3dc5a93 [release-branch.go1] cmd/gc: fix small integer bounds check bug
««« backport 967ae8baf398
cmd/gc: fix small integer bounds check bug

R=ken2
CC=golang-dev
https://golang.org/cl/6254046

»»»
2012-06-13 16:24:17 -04:00
Robert Griesemer
ea2a0ad508 [release-branch.go1] spec: clarify evaluation order of "i, x[i] = range ..."
««« backport 1c4d1ba268ca
spec: clarify evaluation order of "i, x[i] = range ..."

Part of fix for issue 3464.

R=golang-dev, rsc, mirtchovski, iant, r
CC=golang-dev
https://golang.org/cl/6246045

»»»
2012-06-13 16:24:16 -04:00
Shenghou Ma
b260999d4c [release-branch.go1] cmd/cc: fix uint right shift in constant evaluation
««« backport aa2d2fa1e5a9
cmd/cc: fix uint right shift in constant evaluation
        Fixes #3664.

R=golang-dev, bradfitz, rsc
CC=golang-dev
https://golang.org/cl/6249048

»»»
2012-06-13 16:24:15 -04:00
David Symonds
536be05e32 [release-branch.go1] flag: include flag name in redefinition panic.
««« backport 64a249c65d51
flag: include flag name in redefinition panic.

R=golang-dev, rsc, r
CC=golang-dev
https://golang.org/cl/6250043

»»»
2012-06-13 16:24:14 -04:00
Brad Fitzpatrick
7de2fc41a2 [release-branch.go1] encoding/json: documentation fix
««« backport 258d7ab64d9a
encoding/json: documentation fix

Fixes #3650

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/6238046

»»»
2012-06-13 16:24:13 -04:00
Robert Griesemer
0d814d213e [release-branch.go1] go/parser: resolve all parameter types
««« backport 0a76445053e5
go/parser: resolve all parameter types

Fixes #3655.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6213065

»»»
2012-06-13 16:24:12 -04:00
Brad Fitzpatrick
88c11420a3 [release-branch.go1] cmd/api: add flag to specify contexts
««« backport 287685288ce1
cmd/api: add flag to specify contexts

I needed this to explore per-GOOS/GOARCH differences in pkg
syscall for a recent CL.  Others may find it useful too.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6236046

»»»
2012-06-13 16:24:12 -04:00
Brad Fitzpatrick
3c10f29757 [release-branch.go1] net/http: clarify ErrBodyNotAllowed error message
««« backport fe8549b7050a
net/http: clarify ErrBodyNotAllowed error message

It's usually due to writing on HEAD requests.

R=golang-dev, rsc, r, r
CC=golang-dev
https://golang.org/cl/6206106

»»»
2012-06-13 16:24:11 -04:00
Brad Fitzpatrick
40960a55c3 [release-branch.go1] cmd/api: add api/next.txt
««« backport 1098c239b9ad
cmd/api: add api/next.txt

This quiets all.bash noise for upcoming features we know about.

The all.bash warnings will now only print for things not in next.txt
(or in next.txt but not in the API).

Once an API is frozen, we rename next.txt to a new frozen file
(like go1.txt)

Fixes #3651

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6218069

»»»
2012-06-13 16:24:10 -04:00
Ugorji Nwoke
cee42ca53b [release-branch.go1] text/template: exec should accept interface value as valid.
««« backport 4c05c319570b
text/template: exec should accept interface value as valid.

Currently, if you pass some data to a template as an interface (e.g. interface{})
and extract that value that value as a parameter for a function, it fails, saying
wrong type.

This is because it is only looking at the interface type, not the interface content.

This CL uses the underlying content as the parameter to the func.

Fixes #3642.

R=golang-dev, r, r
CC=golang-dev
https://golang.org/cl/6218052

»»»
2012-06-13 16:24:09 -04:00
Shenghou Ma
adb732b5fd [release-branch.go1] runtime: support conditional execution in ARM softfloat
««« backport 87ef5e0baaf5
runtime: support conditional execution in ARM softfloat
        Fixes #3638.

R=golang-dev, dave, rsc
CC=golang-dev
https://golang.org/cl/6213057

»»»
2012-06-13 16:24:08 -04:00
Russ Cox
b503008c9d [release-branch.go1] unicode: fix comment about variable types
««« backport 40104e4c312d
unicode: fix comment about variable types

In both the web and command line tool,
the comment is shown after the declaration.
But in the code the comment is obviously before.
Make the text not refer to a specific order.

R=r, dsymonds
CC=golang-dev
https://golang.org/cl/6206094

»»»
2012-06-13 16:24:08 -04:00
Robert Griesemer
03fab00ed0 [release-branch.go1] go/ast: document CommentGroup.Text and add test case.
««« backport 3446429f1ec4
go/ast: document CommentGroup.Text and add test case.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6206096

»»»
2012-06-13 16:24:07 -04:00
Robert Griesemer
b7250b205a [release-branch.go1] go/parser: fix comment grouping (day 1 bug)
««« backport afbf8db1baf4
go/parser: fix comment grouping (day 1 bug)

Comment groups must end at the end of a line (or the
next non-comment token) if the group started on a line
with non-comment tokens.

This is important for correct computation of "lead"
and "line" comments (Doc and Comment fields in AST nodes).

Without this fix, the "line" comment for F1 in the
following example:

type T struct {
     F1 int // comment1
     // comment2
     F2 int
}

is "// comment1// comment2" rather than just "// comment1".

This bug was present from Day 1 but only visible when
looking at export-filtered ASTs where only comments
associated with AST nodes are printed, and only in rare
cases (e.g, in the case above, if F2 where not exported,
godoc would show "// comment2" anyway because it was
considered part of the "line" comment for F1).

The bug fix is very small (parser.go). The bulk of the
changes are additional test cases (parser_test.go).

The fix exposed a caching bug in go/printer via one of the
existing tests, hence the changes to printer.go.

As an aside, the fix removes the the need for empty lines
before an "// Output" comment for some special cases of
code examples (e.g.: src/pkg/strings/example_test.go, Count
example).

No impact on gofmt formatting of src, misc.

Fixes #3139.

R=rsc
CC=golang-dev
https://golang.org/cl/6209080

»»»
2012-06-13 16:24:06 -04:00
Alexey Borzenkov
603ace6f8a [release-branch.go1] net/url: better parsing of urls with @ symbol in authority
««« backport 89a9ef95c8db
net/url: better parsing of urls with @ symbol in authority

Fixes #3439

R=r, rsc, dsymonds, n13m3y3r
CC=golang-dev
https://golang.org/cl/6206090

»»»
2012-06-13 16:24:05 -04:00
Adam Langley
aea18fe74b [release-branch.go1] crypto/ecdsa: fix case where p != 0 mod 8 and the hash length < p.
««« backport 465e0f78dbfe
crypto/ecdsa: fix case where p != 0 mod 8 and the hash length < p.

I made a typo which breaks P-521.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6219057

»»»
2012-06-13 16:24:04 -04:00
Russ Cox
eae44968e3 [release-branch.go1] crypto/rsa: add SHA-224 hash prefix
««« backport c6213d8a9118
crypto/rsa: add SHA-224 hash prefix

http://www.rsa.com/rsalabs/node.asp?id=2125:

NOTE: A new OID has been defined for the combination
of the v1.5 signature scheme and the SHA-224 hash function:
        sha224WithRSAEncryption OBJECT IDENTIFIER ::=
Like the other sha*WithRSAEncryption OIDs in PKCS #1 v2.1,
this OID has NULL parameters.
The DigestInfo encoding for SHA-224 (see Section 9.2, Note 1) is:
        (0x)30 2d 30 0d 06 09 60 86 48 01 65 03 04 02 04 05 00 04 1c || H

R=golang-dev, agl
CC=golang-dev
https://golang.org/cl/6208076

»»»
2012-06-13 16:24:03 -04:00
Brad Fitzpatrick
f5a5f17847 [release-branch.go1] net/http: fix duplicate status code in Response.Write
««« backport aad801637707
net/http: fix duplicate status code in Response.Write

Fixes #3636

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/6203094

»»»
2012-06-13 16:24:03 -04:00
Volker Dobler
6a87464709 [release-branch.go1] net/http: add cookies from jar to POST request.
««« backport 05fc2ee43b46
net/http: add cookies from jar to POST request.

The main content of this CL is a test case checking the reported
issue 3511 and a tiny fix for it.  A subsequent CL will refactor
the fix as proposed issue 3511.

Fixes #3511.

R=golang-dev, steven.hartland, bradfitz
CC=golang-dev
https://golang.org/cl/6013049

»»»
2012-06-13 16:24:02 -04:00
Brad Fitzpatrick
ed3ffb7013 [release-branch.go1] A+C: add James Gray (Individual CLA)
««« backport e7ed6a89a78e
A+C: add James Gray (Individual CLA)

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6213055

»»»
2012-06-13 16:24:01 -04:00
Adam Langley
3d8275cc3a [release-branch.go1] A+C: b@b3k.us
««« backport f0a9aa408d21
A+C: b@b3k.us

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6220050

»»»
2012-06-13 16:24:00 -04:00
Maxim Pimenov
8516b743a8 [release-branch.go1] go/build: fix some comments
««« backport 85e153815747
go/build: fix some comments

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6217044

»»»
2012-06-13 16:23:59 -04:00
Andrew Gerrand
c7b02ba811 [release-branch.go1] api: undo go1.txt additions made by 27d0a516b7eb
««« backport d263b323e582
api: undo go1.txt additions made by 27d0a516b7eb

We don't change go1.txt.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6206080

»»»
2012-06-13 16:23:58 -04:00
Russ Cox
31ccae9af8 [release-branch.go1] cmd/go: fix typo
««« backport 9942561a3fe2
cmd/go: fix typo

Fixes #3619.

R=golang-dev, bradfitz, r
CC=golang-dev
https://golang.org/cl/6211055

»»»
2012-06-13 16:23:58 -04:00
Benny Siegert
dcd49f5eaf [release-branch.go1] log: fix typo in comment
««« backport 847b8d48b873
log: fix typo in comment

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6195096

»»»
2012-06-13 16:23:56 -04:00
Shenghou Ma
2f89bfbf8e [release-branch.go1] doc/install: document minimum system requirements
««« backport 46a117d22ce2
doc/install: document minimum system requirements
        Partly copied from CL 5685076.

R=golang-dev, adg, r
CC=golang-dev
https://golang.org/cl/6112064

»»»
2012-06-13 16:23:56 -04:00
Russ Cox
0c2ee38a0a [release-branch.go1] cmd/go: invoke godoc with import path when possible
««« backport 5b1e024a5e89
cmd/go: invoke godoc with import path when possible
Also add -n -x flags to doc, fmt, vet.
Also shorten unknown command error.

Fixes #3612.
Fixes #3613.

R=golang-dev, bradfitz, r
CC=golang-dev
https://golang.org/cl/6211053

»»»
2012-06-13 16:23:54 -04:00
Russ Cox
9fdd043517 [release-branch.go1] cmd/gc: make append(nil, x) error more precise
««« backport 4732bf6f874f
cmd/gc: make append(nil, x) error more precise

Before:
./x.go:6: first argument to append must be slice; have nil

After:
./x.go:6: first argument to append must be typed slice; have untyped nil

Fixes #3616.

R=ken2
CC=golang-dev
https://golang.org/cl/6209067

»»»
2012-06-13 16:23:54 -04:00
Jan Ziak
fd2dfebd88 [release-branch.go1] runtime: fix counting of free objects
««« backport 393bec50494e
runtime: fix counting of free objects

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6206056

»»»
2012-06-13 16:23:53 -04:00
Brad Fitzpatrick
bd0227bbec [release-branch.go1] mime/multipart: fix handling of empty parts without CRLF before next part
««« backport 32a8b0e41031
mime/multipart: fix handling of empty parts without CRLF before next part

Empty parts can be either of the form:

a) "--separator\r\n", header (w/ trailing 2xCRLF), \r\n "--separator"...
or
b) "--separator\r\n", header (w/ trailing 2xCRLF), "--separator"...

We never handled case b).  In fact the RFC seems kinda vague about
it, but browsers seem to do a), and App Engine's synthetic POST
bodies after blob uploads is of form b).

So handle them both, and add a bunch of tests.

(I can't promise these are the last fixes to multipart, especially
considering its history, but I'm growing increasingly confident at
least, and I've never submitted a multipart CL with known bugs
outstanding, including this time.)

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/6212046

»»»
2012-06-13 16:23:52 -04:00
Jan Mercl
ff5f88f214 [release-branch.go1] regexp/syntax: replace internal error on unexpected ) w/ ErrUnexpectedParen
««« backport 27d0a516b7eb
regexp/syntax: replace internal error on unexpected ) w/ ErrUnexpectedParen

Unbalanced extra right parenthesis produced an internal error instead of
a more descriptive one.

Fixes #3406.

R=r, rsc
CC=golang-dev
https://golang.org/cl/6201063

»»»
2012-06-13 16:23:51 -04:00
Michael Gehring
dc2889c57e [release-branch.go1] crypto/tls: fix decoding of certLen in certificateMsg.unmarshal
««« backport bcfa9fc88361
crypto/tls: fix decoding of certLen in certificateMsg.unmarshal

certLen was decoded incorrectly if length > 2^16-1.

R=golang-dev, agl
CC=golang-dev
https://golang.org/cl/6197077

»»»
2012-06-13 16:23:50 -04:00
Adam Langley
237b087af6 [release-branch.go1] A+C: add Michael Gehring (individual CLA)
««« backport 086b6525aea6
A+C: add Michael Gehring (individual CLA)

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6188076

»»»
2012-06-13 16:23:49 -04:00
David Symonds
aceb23ef83 [release-branch.go1] A+C: Jan Ziak (individual CLA)
««« backport c6edd5218579
A+C: Jan Ziak (individual CLA)

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6120047

»»»
2012-06-13 16:23:48 -04:00
Francisco Souza
52b822298e [release-branch.go1] cmd/go: fix remote help reference to "go help packages"
««« backport adc987ffdd99
cmd/go: fix remote help reference to "go help packages"

go help remote used to reference "go help importpath", which has
changed to "go help packages".

Fixes #3598.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6201065

»»»
2012-06-13 16:23:48 -04:00
Nigel Tao
a53a74c204 [release-branch.go1] go: fix the import path "./..." not matching ".".
««« backport cdd1fa20bb08
go: fix the import path "./..." not matching ".".

Tested manually.

Fixes #3554.

Before:
$ cd $GOROOT/src/pkg
$ go list io
io
$ go list io/...
io
io/ioutil
$ cd $GOROOT/src/pkg/io
$ go list .
io
$ go list ./...
io/ioutil

After:
$ cd $GOROOT/src/pkg
$ go list io
io
$ go list io/...
io
io/ioutil
$ cd $GOROOT/src/pkg/io
$ go list .
io
$ go list ./...
io
io/ioutil
$ go list ././...
io
io/ioutil
$ go list ././.././io/...
io
io/ioutil
$ go list ../image
image
$ go list ../image/...
image
image/color
image/draw
image/gif
image/jpeg
image/png
$ go list ../.../template
html/template
text/template
$ cd $GOROOT/src/pkg
$ go list ./io
io
$ go list ./io/...
io
io/ioutil
$ go list ./.../pprof
net/http/pprof
runtime/pprof
$ go list ./compress
can't load package: package compress: no Go source files in /home/nigeltao/go/src/pkg/compress
$ go list ./compress/...
compress/bzip2
compress/flate
compress/gzip
compress/lzw
compress/zlib
$ cd $GOROOT/src/pkg/code.google.com
$ go list ./p/leveldb-go/...
code.google.com/p/leveldb-go/leveldb
code.google.com/p/leveldb-go/leveldb/crc
code.google.com/p/leveldb-go/leveldb/db
code.google.com/p/leveldb-go/leveldb/memdb
code.google.com/p/leveldb-go/leveldb/memfs
code.google.com/p/leveldb-go/leveldb/record
code.google.com/p/leveldb-go/leveldb/table
code.google.com/p/leveldb-go/manualtest/filelock
$ go list ./p/.../truetype
code.google.com/p/freetype-go/example/truetype
code.google.com/p/freetype-go/freetype/truetype
$ go list ./p/.../example
warning: "./p/.../example" matched no packages
$ go list ./p/.../example/...
code.google.com/p/freetype-go/example/freetype
code.google.com/p/freetype-go/example/gamma
code.google.com/p/freetype-go/example/raster
code.google.com/p/freetype-go/example/round
code.google.com/p/freetype-go/example/truetype
code.google.com/p/x-go-binding/example/imgview
code.google.com/p/x-go-binding/example/xgb

R=rsc
CC=golang-dev
https://golang.org/cl/6194056

»»»
2012-06-13 16:23:47 -04:00
Russ Cox
87372e839e [release-branch.go1] crypto/aes: fix comment
««« backport d4f7f7438d1f
crypto/aes: fix comment

Fixes #3589.

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/6190044

»»»
2012-06-13 16:23:46 -04:00
Jean-Marc Eurin
a340c2a131 [release-branch.go1] misc/emacs: Restore the window position after a successful gofmt.
««« backport 9d6693456f93
misc/emacs: Restore the window position after a successful gofmt.

This adds restoring the window position so that the buffer doesn't jump around after the erase/copy.

R=sameer
CC=golang-dev
https://golang.org/cl/5981055

»»»
2012-06-13 16:23:45 -04:00
Sameer Ajmani
1927afba99 [release-branch.go1] C: correct entry: jmeurin, not jme.
««« backport 726c57a92c5d
C: correct entry: jmeurin, not jme.

R=golang-dev, rsc
CC=golang-dev, jme, jmeurin
https://golang.org/cl/6192057

»»»
2012-06-13 16:23:44 -04:00
Sameer Ajmani
cc52fe30c1 [release-branch.go1] C: Jeremy Ellington (Google CLA)
««« backport 448f98d1af28
C: Jeremy Ellington (Google CLA)

R=golang-dev, rsc
CC=golang-dev, jme
https://golang.org/cl/6197058

»»»
2012-06-13 16:23:43 -04:00
Shenghou Ma
c60564f59b [release-branch.go1] runtime: fix c compiler warning
««« backport e388ce51be75
runtime: fix c compiler warning

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6185047

»»»
2012-06-13 16:23:43 -04:00
Rémy Oudompheng
778529bd58 [release-branch.go1] math/big: fix superpolynomial complexity in Karatsuba algorithm.
««« backport 7873186d5774
math/big: fix superpolynomial complexity in Karatsuba algorithm.

benchmark                     old ns/op    new ns/op    delta
BenchmarkExp3Power0x10              732          734   +0.27%
BenchmarkExp3Power0x40              834          836   +0.24%
BenchmarkExp3Power0x100            1600         1579   -1.31%
BenchmarkExp3Power0x400            3478         3417   -1.75%
BenchmarkExp3Power0x1000          19388        19229   -0.82%
BenchmarkExp3Power0x4000         160274       156881   -2.12%
BenchmarkExp3Power0x10000       1552050      1372058  -11.60%
BenchmarkExp3Power0x40000      27328710     15216920  -44.32%
BenchmarkExp3Power0x100000    612349000    131407100  -78.54%
BenchmarkExp3Power0x400000  44073524000   1122195000  -97.45%

R=golang-dev, mtj, gri, rsc
CC=golang-dev, remy
https://golang.org/cl/6176043

»»»
2012-06-13 16:23:42 -04:00
Michael Chaten
3cbadbd631 [release-branch.go1] encoding/json: Fix panic when trying to unmarshal the empty string into an integer
««« backport 7ee60b35f644
encoding/json: Fix panic when trying to unmarshal the empty string into an integer

Fixes #3450.

R=rsc, bradfitz
CC=golang-dev
https://golang.org/cl/6035050

»»»
2012-06-13 16:23:41 -04:00
Adam Langley
5ccc50c8d6 [release-branch.go1] crypto/x509: fix panic when using unavailable hash function.
««« backport d8d358ddc6e0
crypto/x509: fix panic when using unavailable hash function.

crypto.Hash.New() changed to panicking when the hash function isn't
linked in, but crypto/x509 still expects it to return nil.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6175047

»»»
2012-06-13 16:23:40 -04:00
Shenghou Ma
fcfedc0117 [release-branch.go1] cmd/dist: remove stray src/pkg/runtime/z* when cleaning
««« backport 26fc3f8aa53e
cmd/dist: remove stray src/pkg/runtime/z* when cleaning

R=golang-dev, bradfitz, dave, rsc, lstoakes, rsc
CC=golang-dev
https://golang.org/cl/6180044

»»»
2012-06-13 16:23:39 -04:00
Ian Lance Taylor
c08ef1339e [release-branch.go1] cgo: rename C names for Go types to avoid conflicting with package
««« backport d063a7844d48
cgo: rename C names for Go types to avoid conflicting with package

Fixes #3371.

R=rsc, bsiegert, r, mtj, iant
CC=golang-dev
https://golang.org/cl/6131060

»»»
2012-06-13 16:23:38 -04:00
Robert Hencke
db26f2a473 [release-branch.go1] cmd/go: do not ignore DepsErrors in 'go run'
««« backport 1d4d8324085b
cmd/go: do not ignore DepsErrors in 'go run'

Fixes #3490.

R=golang-dev, dave, rsc
CC=golang-dev
https://golang.org/cl/6040046

»»»
2012-06-13 16:23:38 -04:00
Brad Fitzpatrick
7a4e18dbe6 [release-branch.go1] encoding/base64: don't ignore underlying souce read error in decode
««« backport 69c9477136d3
encoding/base64: don't ignore underlying souce read error in decode

Fixes #3577

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6137054

»»»
2012-06-13 16:23:37 -04:00
Brian Dellisanti
43f2be4f4b [release-branch.go1] os/exec: close all internal descriptors when Cmd.Start() fails.
««« backport 9d046474e95a
os/exec: close all internal descriptors when Cmd.Start() fails.

This closes any internal descriptors (pipes, etc) that Cmd.Start() had
opened before it failed.

Fixes #3468.

R=golang-dev, iant, bradfitz
CC=golang-dev
https://golang.org/cl/5986044

»»»
2012-06-13 16:23:36 -04:00
Ian Lance Taylor
2555bbfdd8 [release-branch.go1] A+C: add Brian Dellisanti (individual CLA)
««« backport f63da4c9c6d7
A+C: add Brian Dellisanti (individual CLA)

R=golang-dev, bsiegert, r
CC=golang-dev
https://golang.org/cl/6127056

»»»
2012-06-13 16:23:35 -04:00
Anthony Martin
0b4c5d7946 [release-branch.go1] path/filepath: fix typo
««« backport 6c742b3b04d1
path/filepath: fix typo

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6117063

»»»
2012-06-13 16:23:33 -04:00
Dave Cheney
3a3d8826b4 [release-branch.go1] lib9: fix warning under clang 3.1
««« backport 73a10f76098b
lib9: fix warning under clang 3.1

Fixes #3534.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6035054

»»»
2012-06-13 16:23:32 -04:00
Shenghou Ma
ec1cbabbac [release-branch.go1] syscall: support Getpid() on Windows
««« backport 6436d0889d29
syscall: support Getpid() on Windows
        Fixes #3379.

R=golang-dev, alex.brainman, rsc, bradfitz
CC=golang-dev
https://golang.org/cl/5909043

»»»
2012-06-13 16:23:31 -04:00
Shenghou Ma
fd30163bdb [release-branch.go1] cmd/api: allow addition of API
««« backport d7ef356b8c17
cmd/api: allow addition of API

R=bradfitz, rsc
CC=golang-dev
https://golang.org/cl/5991081

»»»
2012-06-13 16:23:31 -04:00
Brad Fitzpatrick
8ac275bb01 [release-branch.go1] debug/gosym: in test, use temp binary name in /tmp, and clean up.
««« backport 5e1544310d03
debug/gosym: in test, use temp binary name in /tmp, and clean up.

This fixes all.bash on shared machines.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5992078

»»»
2012-06-13 16:23:29 -04:00
Shenghou Ma
763858faca [release-branch.go1] build: run.bash no longer accepts --no-banner
««« backport bc79188b0281
build: run.bash no longer accepts --no-banner

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5986063

»»»
2012-06-13 16:23:28 -04:00
Shenghou Ma
e983ddae2f [release-branch.go1] build: unset GOROOT_FINAL before tests
««« backport 4ee28b87fb90
build: unset GOROOT_FINAL before tests
        Fix the builders.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5976068

»»»
2012-06-13 16:23:28 -04:00
Sameer Ajmani
2cdf371346 [release-branch.go1] misc/emacs: fix go-mode syntax table and whitespace handling.
««« backport d3896e6fb40e
misc/emacs: fix go-mode syntax table and whitespace handling.
- flag * and / as comment characters
- mark newline as a comment-ender
- include newline in go-mode-whitespace-p

Thanks Jonathan Amsterdam and Steve Yegge for the patch!

R=golang-dev, rsc
CC=golang-dev, jba, stevey
https://golang.org/cl/5938056

»»»
2012-06-13 16:23:24 -04:00
Andrew Gerrand
2a9009f417 [release-branch.go1] undo CL 6118059 / 79503f11634a
Accidentally applied to release branch.

««« original CL description
misc/dist: drop repetition in filenames, default to release tag

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6118059
»»»

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6120056
2012-04-26 13:32:05 -07:00
Andrew Gerrand
50be632ee4 misc/dist: drop repetition in filenames, default to release tag
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6118059
2012-04-26 13:05:10 -07:00
Andrew Gerrand
2fffba7fe1 go1.0.1
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6121054
2012-04-26 12:50:14 -07:00
Andrew Gerrand
1c15a46489 [release-branch.go1] doc: go1.0.1 release notes
««« CL 6123055 / fdfe4968b115
doc: go1.0.1 release notes

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6123055
»»»

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6109062
2012-04-26 12:29:08 -07:00
Shenghou Ma
318b29d661 [release-branch.go1] cmd/godoc: update App Engine README and script for Go 1
««« CL 5849053 / f68d1d478a97
cmd/godoc: update App Engine README and script for Go 1

R=adg, dsymonds
CC=golang-dev
https://golang.org/cl/5849053
»»»

Also applied !appengine build constrain to main.go from CL 5969063
so that the godoc app at release-branch.go1 will build and work properly.

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/6112063
2012-04-27 03:13:15 +08:00
Andrew Gerrand
c7a1baf1f0 [release-branch.go1] time: doc fix.
««« CL 6127050 / 6d5417240a0c
time: doc fix.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6127050
»»»

R=golang-dev
CC=golang-dev
https://golang.org/cl/6118057
2012-04-26 11:45:54 -07:00
Andrew Gerrand
19b11c49a9 [release-branch.go1] doc: simplify the image_draw article example for converting an image to
««« CL 6119054 / a7183646b353
doc: simplify the image_draw article example for converting an image to
RGBA.

R=adg, r, bsiegert
CC=golang-dev
https://golang.org/cl/6119054
»»»

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6119056
2012-04-26 11:39:33 -07:00
Andrew Gerrand
6b8d891e4e [release-branch.go1] cmd/go: new tag selection logic
««« CL 6112060 / bcd5635a53b0
cmd/go: new tag selection logic

The new logic is "use go1 if it's there, otherwise no tag."
Nothing needs to say "I require go1.0.1", and I want to
preserve some flexibility in defining what tags mean.

Right now (before go1.0.1) there is only one possible tag,
"go1", and I'd like to keep it that way.

R=golang-dev, bradfitz, r, adg
CC=golang-dev
https://golang.org/cl/6112060
»»»

R=golang-dev
CC=golang-dev
https://golang.org/cl/6116059
2012-04-26 11:36:07 -07:00
Andrew Gerrand
cbffaffa6d [release-branch.go1] doc: update wiki article to use html/template properly.
««« CL 6116055 / d282c379aad7
doc: update wiki article to use html/template properly.

Fixes #3569.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6116055
»»»

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6119055
2012-04-26 11:34:54 -07:00
Russ Cox
8f2d48993a [release-branch.go1] mime: make ParseMediaType return zero results on error
««« CL 6119051 / 1384d7510575
mime: make ParseMediaType return zero results on error

Fixes #3562

R=golang-dev, adg, rsc
CC=golang-dev
https://golang.org/cl/6119051
»»»

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6127045
2012-04-25 15:44:30 -04:00
Russ Cox
a8cea4cda0 [release-branch.go1] A+C: Akshat Kumar (individual CLA)
««« backport ca2868ad4611
A+C: Akshat Kumar (individual CLA)

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6004043
»»»
2012-04-10 15:14:04 -04:00
Bobby Powers
342f4bf288 [release-branch.go1] encoding/json: allow punctuation in tag names
««« backport 233ff5d46b3d
encoding/json: allow punctuation in tag names

everything except backslash and the quote chars is fair game.

Fixes #3546.

R=rsc, r
CC=golang-dev
https://golang.org/cl/6048047

»»»
2012-04-25 14:33:33 +10:00
Brad Fitzpatrick
b4ea696b49 [release-branch.go1] mime/multipart: report io.EOF correctly on part ending without newlines
««« backport 4ecca118488b
mime/multipart: report io.EOF correctly on part ending without newlines

If a part ends with "--boundary--", without a final "\r\n",
that's also a graceful EOF, and we should return io.EOF instead
of the fmt-wrapped io.EOF from bufio.Reader.ReadSlice.

I found this bug parsing an image attachment from gmail.
Minimal test case stripped down from the original
gmail-generated attachment included.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6118043
»»»
2012-04-23 22:26:48 -07:00
Rob Pike
c619931610 [release-branch.go1] path: document that Clean deletes trailing slashes.
««« backport ab273014412e
path: document that Clean deletes trailing slashes.

Fixes #3492.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6112044
»»»
2012-04-24 13:17:05 +10:00
Rémy Oudompheng
bff1a8a3b1 [release-branch.go1] net: fix typo in Listener.File() documentation
««« backport 0739e30d5df7
net: fix typo in Listener.File() documentation

R=golang-dev, dave, rsc
CC=golang-dev, remy
https://golang.org/cl/6097044
»»»
2012-04-24 01:27:19 +02:00
Luuk van Dijk
cb6f9ce4c7 [release-branch.go1] cmd/gc: fix addresses escaping through closures called in-place.
««« backport a890477d3dfb
cmd/gc: fix addresses escaping through closures called in-place.

Fixes #3545.

R=rsc
CC=golang-dev
https://golang.org/cl/6061043

»»»
2012-04-23 15:39:01 -04:00
Andrew Gerrand
01dce10cbf [release-branch.go1] doc: sync playground.js
««« backport 953b30b83997
doc: sync playground.js

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5956043
»»»
2012-04-03 08:10:21 +10:00
Rob Pike
86990145a6 [release-branch.go1] reflect: document and test TypeOf(nil)
««« backport 82aaf0925029
reflect: document and test TypeOf(nil)
Fixes #3549.

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6107047
»»»
2012-04-23 12:07:02 +10:00
Dave Cheney
8b5350b8e4 [release-branch.go1] net: fix race between Close and Read
««« backport 5f24ff99b5f1
net: fix race between Close and Read

Fixes #3507.

Applied the suggested fix from rsc. If the connection
is in closing state then errClosing will bubble up to
the caller.

The fix has been applied to udp, ip and unix as well as
their code path include nil'ing c.fd on close. Func
tests are available in the linked issue that verified
the bug existed there as well.

R=rsc, fullung, alex.brainman, mikioh.mikioh
CC=golang-dev
https://golang.org/cl/6002053
»»»
2012-04-21 10:01:32 +10:00
Andrew Gerrand
802ac98ffc [release-branch.go1] doc: don't wrap package names in directory listing
««« backport f4f63fb397c6
doc: don't wrap package names in directory listing

Fixes #3522.

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6063054
»»»
2012-04-20 10:04:13 -04:00
Shenghou Ma
554316495f [release-branch.go1] net/http: add example for FileServer to mention StripPrefix
««« backport 362b760ecfc7
net/http: add example for FileServer to mention StripPrefix
        Fixes #3530.

R=golang-dev, rsc, bradfitz
CC=golang-dev
https://golang.org/cl/6032052
»»»
2012-04-20 00:41:10 +08:00
Brad Fitzpatrick
69a8369b87 [release-branch.go1] A+C: add Bjorn Tillenius (Individual CLA)
««« backport b93d51d8ac36
A+C: add Bjorn Tillenius (Individual CLA)

R=golang-dev, kevlar
CC=golang-dev
https://golang.org/cl/6075045
»»»
2012-04-19 09:23:48 -07:00
Brad Fitzpatrick
56612a5dc8 [release-branch.go1] A+C: Add Michael Chaten (Individual CLA)
««« backport a08a6e660bf0
A+C: Add Michael Chaten (Individual CLA)

R=golang-dev, kevlar
CC=golang-dev
https://golang.org/cl/6075044
»»»
2012-04-19 09:18:49 -07:00
Benny Siegert
78bf569018 [release-branch.go1] doc/articles/image_draw.html: Change ColorImage to Uniform
««« backport a224d214002e
doc/articles/image_draw.html: Change ColorImage to Uniform

Fixes #3474.

R=nigeltao
CC=golang-dev
https://golang.org/cl/6048050

»»»
2012-04-19 11:04:42 +10:00
Adam Langley
5fe252d191 [release-branch.go1] encoding/asn1: allow lengths up to the maximum int value.
««« backport d088bc4e2e64
encoding/asn1: allow lengths up to the maximum int value.

Previously we capped lengths at 2**24 rather than 2**31.

R=golang-dev, r, r
CC=golang-dev
https://golang.org/cl/6050050
»»»
2012-04-18 13:41:11 -04:00
David Symonds
dd58503eaf [release-branch.go1] flag: update style.
««« backport 059ba0d0dc6a
flag: update style.

R=golang-dev, r, r
CC=golang-dev
https://golang.org/cl/6051044
»»»
2012-04-17 16:37:35 +10:00
Brad Fitzpatrick
5c69520377 [release-branch.go1] CONTRIBUTORS: add Colby Ranger (Google CLA)
««« backport 4875dfefc730
CONTRIBUTORS: add Colby Ranger (Google CLA)

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/6037052
»»»
2012-04-16 10:25:20 -07:00
Shenghou Ma
85a2bbe135 [release-branch.go1] doc/code: mention $GOBIN
««« backport 543047268d1a
doc/code: mention $GOBIN

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/5989045

»»»
2012-04-17 02:41:27 +10:00
Robert Hencke
65904a75bc [release-branch.go1] time: parse fractional second with single digit
««« backport 99292bad0d6d
time: parse fractional second with single digit

Fixes #3487.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6011050

»»»
2012-04-16 11:56:37 +10:00
Adam Langley
ad0c81b124 [release-branch.go1] crypto/tls: don't always use the default private key.
««« backport 6a2ea47583df
crypto/tls: don't always use the default private key.

When SNI based certificate selection is enabled, we previously used
the default private key even if we selected a non-default certificate.

Fixes #3367.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5987058
»»»
2012-04-12 12:35:21 -04:00
Andrew Gerrand
30f431fe2e [release-branch.go1] doc: update Mercurial installation instructions
««« backport f6e1ee2d8cd1
doc: update Mercurial installation instructions

R=r
CC=golang-dev
https://golang.org/cl/6031046
»»»
2012-04-14 13:27:11 +10:00
Jongmin Kim
e4806c2a18 [release-branch.go1] doc/effective_go.html: fixed the Request channel parameter
««« backport 29acc3fb59c3
doc/effective_go.html: fixed the Request channel parameter

R=golang-dev, r
CC=golang-dev, gri
https://golang.org/cl/6010051

»»»
2012-04-13 15:22:40 +10:00
Gustavo Niemeyer
cd73d696d0 [release-branch.go1] time: panic if UnixNano is out of range
««« backport 4ed98a6b6fe5
time: panic if UnixNano is out of range

R=golang-dev, remyoudompheng, dsymonds, gustavo, dchest, r, rsc
CC=golang-dev
https://golang.org/cl/5985059
»»»
2012-04-12 22:16:31 -03:00
Rob Pike
18a71beb07 [release-branch.go1] fmt: fix crash of %b on huge negative int64
««« backport 344d5c33331a
fmt: fix crash of %b on huge negative int64
The buffer had 64 bytes but needs one more for the sign.

Fixes #3510.

R=golang-dev, dave, dsymonds
CC=golang-dev
https://golang.org/cl/6011057
»»»
2012-04-13 09:28:37 +10:00
Adam Langley
bde649ca89 [release-branch.go1] encoding/pem: ignore spaces and tabs at the end of header lines.
««« backport 5eadbc72f1d2
encoding/pem: ignore spaces and tabs at the end of header lines.

Fixes #3502.

R=bradfitz
CC=golang-dev
https://golang.org/cl/6011046
»»»
2012-04-12 12:33:52 -04:00
Nigel Tao
ec0b7b7de4 [release-branch.go1] html, exp/html: escape ' and " as &#39; and &#34;, since IE8 and
««« backport a70135896879
html, exp/html: escape ' and " as &#39; and &#34;, since IE8 and
below do not support &apos;.

This makes package html consistent with package text/template's
HTMLEscape function.

Fixes #3489.

R=rsc, mikesamuel, dsymonds
CC=golang-dev
https://golang.org/cl/5992071
»»»
2012-04-12 09:35:43 +10:00
Dave Cheney
a200931cae [release-branch.go1] doc: fix minor typo in Go 1 release notes
««« backport 75c94686a4d7
doc: fix minor typo in Go 1 release notes

Fixes #3478.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5986074

»»»
2012-04-11 10:59:03 +10:00
Alex Brainman
01479df5b6 [release-branch.go1] os: fix IsPermission on windows
««« backport 1b2b113a2d66
os: fix IsPermission on windows

Fixes #3482.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5987070
»»»
2012-04-10 10:07:29 +10:00
Rob Pike
610fc6598b [release-branch.go1] runtime.Callers: make documentation match code
««« backport a7db811befb8
runtime.Callers: make documentation match code
It is a bug that Caller and Callers disagree about the offset of the skip
parameter. Document the bug.

R=rsc, dsymonds, r, iant
CC=golang-dev
https://golang.org/cl/5976064
»»»
2012-04-10 09:47:57 +10:00
Shenghou Ma
8f72d82b63 [release-branch.go1] doc/code: update newmath.Sqrt test case to make sure test succeed
««« backport aa9954952235
doc/code: update newmath.Sqrt test case to make sure test succeed
        Fixes #3445.

R=golang-dev, rsc, mtj
CC=golang-dev
https://golang.org/cl/5975061
»»»
2012-04-10 01:55:51 +08:00
Shenghou Ma
4df8143754 [release-branch.go1] doc/go_spec: fix a typo
««« backport 1c42d454d4dd
doc/go_spec: fix a typo

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5989065
»»»
2012-04-10 01:50:46 +08:00
Stéphane Travostino
70e139f3bc [release-branch.go1] net/url: Correctly escape URL as per RFC 3986
««« backport 6b46fb967ca4
net/url: Correctly escape URL as per RFC 3986

The shouldEscape function did not correctly escape the reserved characters listed in RFC 3986 §2.2, breaking some strict web servers.
Fixes #3433.

R=rsc
CC=golang-dev
https://golang.org/cl/5970050

»»»
2012-04-05 13:23:08 -04:00
Russ Cox
9b1d0910e1 [release-branch.go1] A+C: Stéphane Travostino (individual CLA)
««« backport 6c0fd8ec2c77
A+C: Stéphane Travostino (individual CLA)

R=golang-dev
CC=golang-dev
https://golang.org/cl/5991048
»»»
2012-04-05 13:13:34 -04:00
Hong Ruiqi
54fc7ef5ad [release-branch.go1] doc/go_spec: fix typo
««« backport d10b521f63d1
doc/go_spec: fix typo

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/5990043

»»»
2012-04-05 22:37:07 +10:00
Andrew Gerrand
41848f960c [release-branch.go1] doc: shorten project dashboard link
««« backport 4e6ea52ad147
doc: shorten project dashboard link

Fixes #3420.
(which was already fixed)

R=golang-dev, bradfitz, dsymonds
CC=golang-dev
https://golang.org/cl/5987043
»»»
2012-04-05 11:17:18 +10:00
Brad Fitzpatrick
c3882041a9 [release-branch.go1] cmd/go: in go get, don't try to perform discovery on non-hosts
««« backport 2a52a9484c10
cmd/go: in go get, don't try to perform discovery on non-hosts

Before, "go get -v foo/bar" was assuming "foo" was a hostname
and trying to perform discovery on it. Now, require a dot in
the first path component (the hostname).

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5981057
»»»
2012-04-04 07:24:13 -07:00
Dmitry Chestnykh
d98b9dac03 [release-branch.go1] encoding/ascii85: fix panic caused by special case
««« backport b127df6df1ab
encoding/ascii85: fix panic caused by special case

Special case for encoding 4 zeros as 'z' didn't
update source slice, causing 'index out of bounds'
panic in destination slice.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5970078

»»»
2012-04-04 09:52:42 -04:00
Michael Lewis
ca246227a8 [release-branch.go1] sql: Propagate error from subsetTypeArgs in Exec
««« backport dd8f13acda2e
sql: Propagate error from subsetTypeArgs in Exec

Fixes #3449

R=golang-dev
CC=bradfitz, golang-dev
https://golang.org/cl/5970076

»»»
2012-04-03 15:36:48 -07:00
Rob Pike
02c38a83b9 [release-branch.go1] time.RFC822: make the string standard-compliant
««« backport fda7b4c9978d
time.RFC822: make the string standard-compliant
For mysterious reasons, the existing string was just wrong: it was missing a colon.
There is no apparent reason for this discrepancy.

This should be safe to fix because existing uses would not be RFC822-compliant;
people cannot be depending on it to generate correct mail headers.

Fixes #3444.

R=golang-dev, dsymonds, iant, rsc
CC=golang-dev
https://golang.org/cl/5969072
»»»
2012-04-04 06:54:39 +10:00
Brad Fitzpatrick
6b68716f85 [release-branch.go1] A+C: add Michael Lewis (Individual CLA)
««« backport 3ee4c6bdf311
A+C: add Michael Lewis (Individual CLA)

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5970077
»»»
2012-04-03 13:38:57 -07:00
Dave Cheney
eacdcccb9e [release-branch.go1] encoding/base64: fix panic when input len is not a multiple of 4
««« backport 95e67cc5fa08
encoding/base64: fix panic when input len is not a multiple of 4

Fixes #3442.

R=for.go.yong, dsymonds, sougou, minux.ma, rsc
CC=golang-dev
https://golang.org/cl/5975052

»»»
2012-04-03 12:14:02 +10:00
Rob Pike
efcd0d5bd8 [release-branch.go1] text/template: pipelined arg was not typechecked
««« backport c007925a75c6
text/template: pipelined arg was not typechecked
Without this fix, an erroneous template causes a panic; should be caught safely.
The bug did not affect correct templates.

Fixes #3267.

R=golang-dev, dsymonds, rsc
CC=golang-dev
https://golang.org/cl/5900065
»»»
2012-04-03 11:44:52 +10:00
Alex Brainman
7510885c4d [release-branch.go1] time: fix handling of locations with no dst on windows
««« backport 701af83040ac
time: fix handling of locations with no dst on windows

Fixes #3437.

R=rsc
CC=golang-dev
https://golang.org/cl/5967063
»»»
2012-04-03 11:39:38 +10:00
Peter Weinberger
b4f17bdf98 [release-branch.go1] doc/code.html: change 'affect' to 'effect'.
««« backport 0dc51d66e03d
doc/code.html: change 'affect' to 'effect'.
Fixes #3429.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5966047
»»»
2012-04-02 13:05:09 -04:00
Russ Cox
879f5d9007 [release-branch.go1] C: add Peter Weinberger (Google CLA)
««« backport b9b0c8d8b5ff
C: add Peter Weinberger (Google CLA)

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5976059
»»»
2012-04-02 12:59:02 -04:00
Shenghou Ma
c50da29f00 [release-branch.go1] cmd/dist, sudo.bash: don't mention sudo.bash if cov or prof is not present
««« backport e757e2af45ec
cmd/dist, sudo.bash: don't mention sudo.bash if cov or prof is not present
        Fixes #3422.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5967057
»»»
2012-04-02 22:33:38 +08:00
Aaron Kemp
465aef6f86 [release-branch.go1] doc/effective_go.html: Add missing '...' for fmt.Sprintf()
««« backport 8434de733c20
doc/effective_go.html: Add missing '...' for fmt.Sprintf()

The '...' was missing on a call to fmt.Sprintf() which would result in
the slice being printed instead of the correct result.

R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/5967051

»»»
2012-03-30 17:51:24 -07:00
Robert Griesemer
d9b3c09097 [release-branch.go1] A+C: added Aaron Kemp (Corporate CLA)
««« backport 347d126983f7
A+C: added Aaron Kemp (Corporate CLA)

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/5966054
»»»
2012-03-30 17:51:07 -07:00
Shenghou Ma
931e05acde [release-branch.go1] doc/codewalk/markov: fix syntax and broken link
««« backport fd037b466111
doc/codewalk/markov: fix syntax and broken link
        Part of issue 3424.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5955050
»»»
2012-03-30 15:00:23 +08:00
Shenghou Ma
78b1980875 [release-branch.go1] doc/code.html: fix broken dashboard link
««« backport feb586ac4860
doc/code.html: fix broken dashboard link
        Fixes #3420.
        Part of issue 3424.

R=golang-dev, cldorian, adg, r
CC=golang-dev
https://golang.org/cl/5958046
»»»
2012-03-30 14:07:40 +08:00
Shenghou Ma
8af4ac6444 [release-branch.go1] doc/go1: minor fixes
««« backport b8f8e3b892dc
doc/go1: minor fixes
        Fixes #3427.
        Part of issue 3424.

R=golang-dev, bradfitz, r
CC=golang-dev
https://golang.org/cl/5959045
»»»
2012-03-30 14:06:12 +08:00
Shenghou Ma
0c34a28d85 [release-branch.go1] doc/go_spec: fix broken link
««« backport 719d3065511a
doc/go_spec: fix broken link
        Part of issue 3424

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5955049
»»»
2012-03-30 14:04:03 +08:00
Rob Pike
6d62c5c99a [release-branch.go1] cmd/go: update docs about tags for get command
««« backport 79e6b4602f26
cmd/go: update docs about tags for get command
"go1" dominates. Delete the text about weekly and release.
We can revisit this once the situation changes.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5969043
»»»
2012-03-30 13:07:10 +11:00
Andrew Gerrand
6174b5e21e go1 2012-03-28 23:41:59 +11:00
Andrew Gerrand
4081aa1277 remove non-go1 commands and packages 2012-03-28 23:41:38 +11:00
10902 changed files with 610152 additions and 2252300 deletions

16
.gitattributes vendored
View File

@@ -1,16 +0,0 @@
# Treat all files in the Go repo as binary, with no git magic updating
# line endings. This produces predictable results in different environments.
#
# Windows users contributing to Go will need to use a modern version
# of git and editors capable of LF line endings.
#
# Windows .bat files are known to have multiple bugs when run with LF
# endings, and so they are checked in with CRLF endings, with a test
# in test/winbatch.go to catch problems. (See golang.org/issue/37791.)
#
# We'll prevent accidental CRLF line endings from entering the repo
# via the git-codereview gofmt checks and tests.
#
# See golang.org/issue/9281.
* -text

View File

@@ -1,3 +0,0 @@
# Code of Conduct
Please read the [Go Community Code of Conduct](https://golang.org/conduct).

View File

@@ -1,38 +0,0 @@
<!--
Please answer these questions before submitting your issue. Thanks!
For questions please use one of our forums: https://github.com/golang/go/wiki/Questions
-->
### What version of Go are you using (`go version`)?
<pre>
$ go version
</pre>
### Does this issue reproduce with the latest release?
### What operating system and processor architecture are you using (`go env`)?
<details><summary><code>go env</code> Output</summary><br><pre>
$ go env
</pre></details>
### What did you do?
<!--
If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
A link on play.golang.org is best.
-->
### What did you expect to see?
### What did you see instead?

View File

@@ -1,25 +0,0 @@
This PR will be imported into Gerrit with the title and first
comment (this text) used to generate the subject and body of
the Gerrit change.
**Please ensure you adhere to every item in this list.**
More info can be found at https://github.com/golang/go/wiki/CommitMessage
+ The PR title is formatted as follows: `net/http: frob the quux before blarfing`
+ The package name goes before the colon
+ The part after the colon uses the verb tense + phrase that completes the blank in,
"This change modifies Go to ___________"
+ Lowercase verb after the colon
+ No trailing period
+ Keep the title as short as possible. ideally under 76 characters or shorter
+ No Markdown
+ The first PR comment (this one) is wrapped at 76 characters, unless it's
really needed (ASCII art, table, or long link)
+ If there is a corresponding issue, add either `Fixes #1234` or `Updates #1234`
(the latter if this is not a complete fix) to this comment
+ If referring to a repo other than `golang/go` you can use the
`owner/repo#issue_number` syntax: `Fixes golang/tools#1234`
+ We do not use Signed-off-by lines in Go. Please don't add them.
Our Gerrit server & GitHub bots enforce CLA compliance instead.
+ Delete these instructions once you have read and applied them

14
.github/SUPPORT.md vendored
View File

@@ -1,14 +0,0 @@
Unlike many projects on GitHub, the Go project does not use its bug tracker for general discussion or asking questions.
We only use our bug tracker for tracking bugs and tracking proposals going through the [Proposal Process](https://golang.org/s/proposal-process).
For asking questions, see:
* [The golang-nuts mailing list](https://groups.google.com/d/forum/golang-nuts)
* [The Go Forum](https://forum.golangbridge.org/), a web-based forum
* [Gophers Slack](https://gophers.slack.com), use the [invite app](https://invite.slack.golangbridge.org/) for access
* [Stack Overflow](https://stackoverflow.com/questions/tagged/go) with questions tagged "go"
* **IRC** channel #go-nuts on Freenode

51
.gitignore vendored
View File

@@ -1,51 +0,0 @@
.DS_Store
*.[56789ao]
*.a[56789o]
*.so
*.pyc
._*
.nfs.*
[56789a].out
*~
*.orig
*.rej
*.exe
.*.swp
core
*.cgo*.go
*.cgo*.c
_cgo_*
_obj
_test
_testmain.go
/VERSION.cache
/bin/
/build.out
/doc/articles/wiki/*.bin
/goinstall.log
/last-change
/misc/cgo/life/run.out
/misc/cgo/stdio/run.out
/misc/cgo/testso/main
/pkg/
/src/*.*/
/src/cmd/cgo/zdefaultcc.go
/src/cmd/dist/dist
/src/cmd/go/internal/cfg/zdefaultcc.go
/src/cmd/go/internal/cfg/zosarch.go
/src/cmd/internal/objabi/zbootstrap.go
/src/go/build/zcgo.go
/src/go/doc/headscan
/src/runtime/internal/sys/zversion.go
/src/unicode/maketables
/test.out
/test/garbage/*.out
/test/pass.out
/test/run.out
/test/times.out
# This file includes artifacts of Go build that should not be checked in.
# For files created by specific development environment (e.g. editor),
# use alternative ways to exclude files from git.
# For example, set up .git/info/exclude or use a global .gitignore.

65
.hgignore Normal file
View File

@@ -0,0 +1,65 @@
syntax:glob
.DS_Store
.git
.gitignore
*.[568ao]
*.a[568o]
*.so
*.pyc
._*
.nfs.*
[568a].out
*~
*.orig
*.rej
*.exe
.*.swp
core
*.cgo*.go
*.cgo*.c
_cgo_*
_obj
_test
_testmain.go
build.out
test.out
doc/tmpltohtml
doc/articles/wiki/*.bin
misc/cgo/life/run.out
misc/cgo/stdio/run.out
misc/cgo/testso/main
misc/dashboard/builder/builder
misc/goplay/goplay
misc/osx/*.pkg
misc/osx/*.dmg
src/cmd/6a/6a
src/cmd/?a/y.output
src/cmd/?l/enam.c
src/cmd/cc/y.output
src/cmd/dist/dist.dSYM
src/cmd/gc/mkbuiltin1
src/cmd/gc/opnames.h
src/cmd/gc/y.output
src/pkg/exp/norm/maketables
src/pkg/exp/norm/maketesttables
src/pkg/exp/norm/normregtest
src/pkg/exp/ebnflint/ebnflint
src/pkg/go/doc/headscan
src/pkg/runtime/goc2c
src/pkg/runtime/mkversion
src/pkg/runtime/z*
src/pkg/unicode/maketables
src/pkg/*.*/
test/pass.out
test/run.out
test/times.out
test/garbage/*.out
goinstall.log
last-change
VERSION.cache
syntax:regexp
^bin/
^pkg/
^src/cmd/(.*)/6?\1$
^.*/core.[0-9]*$

110
.hgtags Normal file
View File

@@ -0,0 +1,110 @@
1f0a01c93d305f1ab636c68b67346659c5b957f7 weekly.2009-11-06
64e703cb307da550861fe740ff70a482a2c14819 weekly.2009-11-10
b51fd2d6c16034480f26c96ba32a11c598e4638e weekly.2009-11-10.1
cb140bac9ab0fd9f734ee443cea9ebadc9c99737 weekly.2009-11-12
d1b75410b793309532352a6fb6b44453f052f3f4 weekly.2009-11-17
e205103b02e7393d4719df5faac2dac808234d3f weekly.2009-12-07
3a47d2e3882bb12129de05382a2c131bb0c00964 weekly.2009-12-09
a6fcf4303b0a92cce4011556b1c96044252d93af weekly.2009-12-22
3887d4d81bca78b63d620985d93f1cc06c063871 weekly.2010-01-05
40dd722155f6d0c83fa572c1a5abf7c6ff35049f weekly.2010-01-13
0a2770db06efe92b08b5c6f30e14b7e8db012538 weekly.2010-01-27
db4262ce882d8445764312d41547ee8f11a7f7a9 weekly.2010-02-04
53fec18b83e2b93baafba4733b59bb86b8c1988e weekly.2010-02-17
4a0661b86e50eae734dbe43ed1312c4a0304676b weekly.2010-02-23
a215d03e7ee1013b2abe3f1e2c84457ec51c68e4 weekly.2010-03-04
194d473264c1a015803d07bed200e0c312aca43e weekly.2010-03-15
9482fde11a02ffd57ba0561dc8a4ac338061a3ae weekly.2010-03-22
57380d620ee6b65eb88da1c52784b62c94d7e72e weekly.2010-03-30
f98f784927abc56a61501eba0cf225966f2b0142 weekly.2010-04-13
6cc6c0d85fc3234fc0a5ec0a8777aa9d59d05ae8 weekly.2010-04-27
17ded5ad443b41ac05924864798f1bd8750da344 weekly.2010-05-04
a85ad0a640154b5d33626ad8ea15ed17e3828178 weekly.2010-05-27
f776656df34c009f2aad142bf7b34a778404acd1 weekly.2010-06-09
113ec27f29f18825444f6f8a3cdc156c1df28e87 weekly.2010-06-21
b761e0299e9bf66298778cf170b0f64216e3cf7d weekly.2010-07-01
5992bf56aa72efcea87d8dff14985fc8fcc68575 weekly.2010-07-14
db904d88dc0ebf6ee5b55e44088915695c1223ee weekly.2010-07-29
8884f7b4c7750481ed246c249db47b61fe752c56 weekly.2010-08-04
07d3a97302be88af68acff34c8a089589da21d18 weekly.2010-08-11
18926649cda7498b8aa539b3a611abcff548f09f weekly.2010-08-25
92fcf05736e8565a485adc52da1894270e06ed09 weekly.2010-09-06
9329773e204fed50ec686ee78cc715b624bf1b1d weekly.2010-09-15
1eec33c03bceef5d7607ea4636185f7bf773e0e4 weekly.2010-09-22
c2b8c9f13fb8ad2b56920d9da2928c5314ebf725 weekly.2010-09-29
7c2e97710bf49cdbe388260958a6674afefb6c0f weekly.2010-10-13
ca4f9687cec0b9c4732afd57b8c2786c7fe242de weekly.2010-10-13.1
79997f0e5823ee9d13a34ca9971a9d8811df1c4a weekly.2010-10-20
4d5b0816392116d3a3452bb275b6dab6c6456278 weekly.2010-10-27
c627e23260c7ddf4a1fcda6ef3197c98fa22551d weekly.2010-11-02
a7800e20064a39585aa3ee339c2b7454ae1ce6d5 weekly.2010-11-10
c5287468fcff0f8a7bb9ffaece2a4863e7e5d83e weekly.2010-11-23
f7e692dc29b02fba8e5d59b967880a347b53607c weekly.2010-12-02
56e39c466cc1c49b587eb56dc2166d61151637df weekly.2010-12-08
26f4898dc1ca18bb77f9968aca23773637e34f0d weekly.2010-12-15
61b2c52b0d2246430395f2869d7b34e565333cf5 weekly.2010-12-15.1
51c777dbccb9f537ebffb99244f521c05bf65df6 weekly.2010-12-22
8eeee945e358f19405e81792db0e16a1cad14bc0 weekly.2011-01-06
514c7ba501a1dd74d69ea2d0a2b4116802ada2b5 weekly.2011-01-12
72f9cb714f08b98c6a65ab2f2256fad6bb16967a weekly.2011-01-19
d8ba80011a986470a54e5262ec125105aa4adc34 weekly.2011-01-20
5b98b59dd37292e36afb24babb2d22758928e13d weekly.2011-02-01
867d37fb41a4d96ab7a6202fd6ad54c345494051 weekly.2011-02-01.1
b2be017f91348d5f8cbaf42f77a99fc905044b59 weekly.2011-02-15
322350d6fdbf11d9c404d6fc766349d824031339 weekly.2011-02-24
21848430d60167817ca965c813a2118068ca660f weekly.2011-03-07
c5c62aeb6267e124cf05f9622e28dbd0dc6b971d weekly.2011-03-07.1
c5c62aeb6267e124cf05f9622e28dbd0dc6b971d release.r56
3b4e9c85b643a35860805718323b05186dd7f235 weekly.2011-03-15
b84e614e25161f626a6102813c41a80a15e3a625 weekly.2011-03-28
cd89452cfea3d125aaf75a1ec8004e2f6a868d38 weekly.2011-04-04
d6903b7fbff40c13ee7ea3177c0ae54c7f89d2e6 weekly.2011-04-13
2f0fa51fa2da6ab50fcebba526326153da8ed999 weekly.2011-04-27
8493bb64e5592bd20c0e60e78e7f8052c1276fcf release.r57
95d2ce135523c96c4cea049af94ce76dd8c7d981 release.r57.1
c98449d685d2b6aa1df9bfd2e1cce9307efb6e00 weekly.2011-05-22
3418f22c39eb8299053ae681199ee90f8cd29c6d weekly.2011-06-02
c81944152e973a917797679055b8fcdc70fbc802 weekly.2011-06-09
9d7967223815ef6415ff01aa0fe6ad38cdbc7810 release.r57.2
dac76f0b1a18a5de5b54a1dc0b231aceaf1c8583 weekly.2011-06-16
541c445d6c1353fbfa39df7dc4b0eb27558d1fc1 weekly.2011-06-23
1b38d90eebcddefabb3901c5bb63c7e2b04a6ec5 release.r58
16bfa562ba767aefd82e598da8b15ee4729e23b0 weekly.2011-07-07
d292bc7886682d35bb391bf572be28656baee12d release.r58.1
3c21f37b25a3f7a1726265c5339c8a7b0b329336 weekly.2011-07-19
bb28251f6da4aca85658582c370c7df89d34efd4 weekly.2011-07-29
d5785050f61d973fc36775f7bd2e26689529cb3e release.r59
c17ce5ec06b4bd5cf6e7ff2ceb0a60c2e40e0b17 weekly.2011-08-10
6eb2b9dbe489acb57a2bfc1de31ec2239ed94326 weekly.2011-08-17
c934f6f5fe8b30b4b3210ee3f13669e6e4670c32 weekly.2011-09-01
c77997547d546c36c7b969586a36de7ceda74e33 weekly.2011-09-07
b0819469a6df6029a27192fe7b19a73d97404c63 release.r60
8a09ce0cefc64deab4e6d1ed59a08a53e879bbee weekly.2011-09-16
fd30c132d1bdeb79f8f111cb721fb1c78b767b27 release.r60.1
d7322ae4d055a4cf3efaf842d0717a41acd85bac weekly.2011-09-21
32a5db19629897641b2d488de4d1b998942ef80e release.r60.2
3bdabf483805fbf0c7ef013fd09bfd6062b9d3f2 weekly.2011-10-06
c1702f36df0397c19fc333571a771666029aa37e release.r60.3
acaddf1cea75c059d19b20dbef35b20fb3f38954 release.r58.2
6d7136d74b656ba6e1194853a9486375005227ef weekly.2011-10-18
941b8015061a0f6480954821dd589c60dfe35ed1 weekly.2011-10-25
7c1f789e6efd153951e85e3f28722fc69efc2af2 weekly.2011-10-26
e69e528f2afc25a8334cfb9359fa4fcdf2a934b6 weekly.2011-11-01
780c85032b174c9d4b42adf75d82bc85af7d78d1 weekly.2011-11-02
f4397ad6e87c7ce5feac9b01686f1ebd6cbaac4e weekly.2011-11-08
2f4482b89a6b5956828872137b6b96636cd904d3 weekly.2011-11-09
b4a91b6933748db1a7150c06a1b55ad506e52906 weekly.2011-11-18
80db2da6495a20ddff8305c236825811db8c8665 weekly.2011-12-01
0beb796b4ef8747af601ed5ea6766d5b1340086b weekly.2011-12-02
0c39eee85b0d1606b79c8ebcdeb3b67ed5849e39 weekly.2011-12-06
82fdc445f2ff2c85043446eb84a19cc999dfcb95 weekly.2011-12-14
4a82689277582a2a60f006e3f158985f2f8d1da3 weekly.2011-12-22
354b17404643c0f1a710bdc48927dff02f203ae3 weekly.2012-01-15
9f2be4fbbf690b9562c6e98b91daa0003f0913c7 weekly.2012-01-20
1107a7d3cb075836387adfab5ce56d1b3e56637d weekly.2012-01-27
52ba9506bd993663a0a033c2bd68699e25d061ab weekly.2012-02-07
43cf9b39b6477d3144b0353ee91096e55db6107f weekly.2012-02-14
96bd78e7d35e892113bdfa1bdc392d3a5f2e644b weekly.2012-02-22
f4470a54e6dbcdd52d8d404e12e4754adcd2c948 weekly.2012-03-04
3cdba7b0650c6c906ef3e782654f61701abd7dd2 weekly.2012-03-13
bce220d0377405146527ab9478867cbc572a6886 weekly.2012-03-22

1262
AUTHORS

File diff suppressed because it is too large Load Diff

View File

@@ -1,35 +0,0 @@
# Contributing to Go
Go is an open source project.
It is the work of hundreds of contributors. We appreciate your help!
## Before filing an issue
If you are unsure whether you have found a bug, please consider asking in the [golang-nuts mailing
list](https://groups.google.com/forum/#!forum/golang-nuts) or [other forums](https://golang.org/help/) first. If
the behavior you are seeing is confirmed as a bug or issue, it can easily be re-raised in the issue tracker.
## Filing issues
Sensitive security-related issues should be reported to [security@golang.org](mailto:security@golang.org).
See the [security policy](https://golang.org/security) for details.
The recommended way to file an issue is by running `go bug`.
Otherwise, when filing an issue, make sure to answer these five questions:
1. What version of Go are you using (`go version`)?
2. What operating system and processor architecture are you using?
3. What did you do?
4. What did you expect to see?
5. What did you see instead?
For change proposals, see [Proposing Changes To Go](https://github.com/golang/proposal/).
## Contributing code
Please read the [Contribution Guidelines](https://golang.org/doc/contribute.html) before sending patches.
Unless otherwise noted, the Go source files are distributed under
the BSD-style license found in the LICENSE file.

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
Copyright (c) 2009 The Go Authors. All rights reserved.
Copyright (c) 2012 The Go Authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are

31
README Normal file
View File

@@ -0,0 +1,31 @@
This is the source code repository for the Go programming language.
For documentation about how to install and use Go,
visit http://golang.org/ or load doc/install.html in your web browser.
After installing Go, you can view a nicely formatted
doc/install.html by running godoc --http=:6060
and then visiting http://localhost:6060/doc/install.html.
Unless otherwise noted, the Go source files are distributed
under the BSD-style license found in the LICENSE file.
--
Binary Distribution Notes
If you have just untarred a binary Go distribution, you need to set
the environment variable $GOROOT to the full path of the go
directory (the one containing this README). You can omit the
variable if you unpack it into /usr/local/go, or if you rebuild
from sources by running all.bash (see doc/install.html).
You should also add the Go binary directory $GOROOT/bin
to your shell's path.
For example, if you extracted the tar file into $HOME/go, you might
put the following in your .profile:
export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin
See doc/install.html for more details.

View File

@@ -1,44 +0,0 @@
# The Go Programming Language
Go is an open source programming language that makes it easy to build simple,
reliable, and efficient software.
![Gopher image](doc/gopher/fiveyears.jpg)
*Gopher image by [Renee French][rf], licensed under [Creative Commons 3.0 Attributions license][cc3-by].*
Our canonical Git repository is located at https://go.googlesource.com/go.
There is a mirror of the repository at https://github.com/golang/go.
Unless otherwise noted, the Go source files are distributed under the
BSD-style license found in the LICENSE file.
### Download and Install
#### Binary Distributions
Official binary distributions are available at https://golang.org/dl/.
After downloading a binary release, visit https://golang.org/doc/install
or load [doc/install.html](./doc/install.html) in your web browser for installation
instructions.
#### Install From Source
If a binary distribution is not available for your combination of
operating system and architecture, visit
https://golang.org/doc/install/source or load [doc/install-source.html](./doc/install-source.html)
in your web browser for source installation instructions.
### Contributing
Go is the work of thousands of contributors. We appreciate your help!
To contribute, please read the contribution guidelines:
https://golang.org/doc/contribute.html
Note that the Go project uses the issue tracker for bug reports and
proposals only. See https://golang.org/wiki/Questions for a list of
places to ask questions about the Go language.
[rf]: https://reneefrench.blogspot.com/
[cc3-by]: https://creativecommons.org/licenses/by/3.0/

View File

@@ -1,13 +0,0 @@
# Security Policy
## Supported Versions
We support the past two Go releases (for example, Go 1.12.x and Go 1.13.x).
See https://golang.org/wiki/Go-Release-Cycle and in particular the
[Release Maintenance](https://github.com/golang/go/wiki/Go-Release-Cycle#release-maintenance)
part of that page.
## Reporting a Vulnerability
See https://golang.org/security for how to report a vulnerability.

1
VERSION Normal file
View File

@@ -0,0 +1 @@
go1.0.3

View File

@@ -1,13 +1,11 @@
Files in this directory are data for Go's API checker ("go tool api", in src/cmd/api).
Each file is a list of API features, one per line.
Each file is a list of of API features, one per line.
go1.txt (and similarly named files) are frozen once a version has been
shipped. Each file adds new lines but does not remove any.
except.txt lists features that may disappear without breaking true
compatibility.
next.txt is the only file intended to be mutated. It's a list of
features that may be added to the next version. It only affects
warning output from the go api tool.

View File

@@ -1,503 +0,0 @@
pkg encoding/json, method (*RawMessage) MarshalJSON() ([]uint8, error)
pkg math/big, const MaxBase = 36
pkg math/big, type Word uintptr
pkg net, func ListenUnixgram(string, *UnixAddr) (*UDPConn, error)
pkg os (linux-arm), const O_SYNC = 1052672
pkg os (linux-arm), const O_SYNC = 4096
pkg os (linux-arm-cgo), const O_SYNC = 1052672
pkg os (linux-arm-cgo), const O_SYNC = 4096
pkg os, const ModeAppend FileMode
pkg os, const ModeCharDevice FileMode
pkg os, const ModeDevice FileMode
pkg os, const ModeDir FileMode
pkg os, const ModeExclusive FileMode
pkg os, const ModeIrregular FileMode
pkg os, const ModeNamedPipe FileMode
pkg os, const ModePerm FileMode
pkg os, const ModeSetgid FileMode
pkg os, const ModeSetuid FileMode
pkg os, const ModeSocket FileMode
pkg os, const ModeSticky FileMode
pkg os, const ModeSymlink FileMode
pkg os, const ModeTemporary FileMode
pkg os, const ModeType = 2399141888
pkg os, const ModeType = 2399666176
pkg os, const ModeType FileMode
pkg os, func Chmod(string, FileMode) error
pkg os, func Lstat(string) (FileInfo, error)
pkg os, func Mkdir(string, FileMode) error
pkg os, func MkdirAll(string, FileMode) error
pkg os, func OpenFile(string, int, FileMode) (*File, error)
pkg os, func SameFile(FileInfo, FileInfo) bool
pkg os, func Stat(string) (FileInfo, error)
pkg os, method (*File) Chmod(FileMode) error
pkg os, method (*File) Readdir(int) ([]FileInfo, error)
pkg os, method (*File) Stat() (FileInfo, error)
pkg os, method (*PathError) Error() string
pkg os, method (*PathError) Timeout() bool
pkg os, method (*PathError) Unwrap() error
pkg os, method (FileMode) IsDir() bool
pkg os, method (FileMode) IsRegular() bool
pkg os, method (FileMode) Perm() FileMode
pkg os, method (FileMode) String() string
pkg os, type FileInfo interface { IsDir, ModTime, Mode, Name, Size, Sys }
pkg os, type FileInfo interface, IsDir() bool
pkg os, type FileInfo interface, ModTime() time.Time
pkg os, type FileInfo interface, Mode() FileMode
pkg os, type FileInfo interface, Name() string
pkg os, type FileInfo interface, Size() int64
pkg os, type FileInfo interface, Sys() interface{}
pkg os, type FileMode uint32
pkg os, type PathError struct
pkg os, type PathError struct, Err error
pkg os, type PathError struct, Op string
pkg os, type PathError struct, Path string
pkg syscall (darwin-amd64), const ImplementsGetwd = false
pkg syscall (darwin-amd64), func Fchflags(string, int) error
pkg syscall (darwin-amd64-cgo), const ImplementsGetwd = false
pkg syscall (darwin-amd64-cgo), func Fchflags(string, int) error
pkg syscall (freebsd-386), const AF_MAX = 38
pkg syscall (freebsd-386), const DLT_MATCHING_MAX = 242
pkg syscall (freebsd-386), const ELAST = 94
pkg syscall (freebsd-386), const ImplementsGetwd = false
pkg syscall (freebsd-386), const O_CLOEXEC = 0
pkg syscall (freebsd-386), func Fchflags(string, int) error
pkg syscall (freebsd-386), func Mknod(string, uint32, int) error
pkg syscall (freebsd-386), type Dirent struct, Fileno uint32
pkg syscall (freebsd-386), type Dirent struct, Namlen uint8
pkg syscall (freebsd-386), type Stat_t struct, Blksize uint32
pkg syscall (freebsd-386), type Stat_t struct, Dev uint32
pkg syscall (freebsd-386), type Stat_t struct, Gen uint32
pkg syscall (freebsd-386), type Stat_t struct, Ino uint32
pkg syscall (freebsd-386), type Stat_t struct, Lspare int32
pkg syscall (freebsd-386), type Stat_t struct, Nlink uint16
pkg syscall (freebsd-386), type Stat_t struct, Pad_cgo_0 [8]uint8
pkg syscall (freebsd-386), type Stat_t struct, Rdev uint32
pkg syscall (freebsd-386), type Statfs_t struct, Mntfromname [88]int8
pkg syscall (freebsd-386), type Statfs_t struct, Mntonname [88]int8
pkg syscall (freebsd-386-cgo), const AF_MAX = 38
pkg syscall (freebsd-386-cgo), const DLT_MATCHING_MAX = 242
pkg syscall (freebsd-386-cgo), const ELAST = 94
pkg syscall (freebsd-386-cgo), const ImplementsGetwd = false
pkg syscall (freebsd-386-cgo), const O_CLOEXEC = 0
pkg syscall (freebsd-386-cgo), func Mknod(string, uint32, int) error
pkg syscall (freebsd-386-cgo), type Dirent struct, Fileno uint32
pkg syscall (freebsd-386-cgo), type Dirent struct, Namlen uint8
pkg syscall (freebsd-386-cgo), type Stat_t struct, Blksize uint32
pkg syscall (freebsd-386-cgo), type Stat_t struct, Dev uint32
pkg syscall (freebsd-386-cgo), type Stat_t struct, Gen uint32
pkg syscall (freebsd-386-cgo), type Stat_t struct, Ino uint32
pkg syscall (freebsd-386-cgo), type Stat_t struct, Lspare int32
pkg syscall (freebsd-386-cgo), type Stat_t struct, Nlink uint16
pkg syscall (freebsd-386-cgo), type Stat_t struct, Pad_cgo_0 [8]uint8
pkg syscall (freebsd-386-cgo), type Stat_t struct, Rdev uint32
pkg syscall (freebsd-386-cgo), type Statfs_t struct, Mntfromname [88]int8
pkg syscall (freebsd-386-cgo), type Statfs_t struct, Mntonname [88]int8
pkg syscall (freebsd-amd64), const AF_MAX = 38
pkg syscall (freebsd-amd64), const DLT_MATCHING_MAX = 242
pkg syscall (freebsd-amd64), const ELAST = 94
pkg syscall (freebsd-amd64), const ImplementsGetwd = false
pkg syscall (freebsd-amd64), const O_CLOEXEC = 0
pkg syscall (freebsd-amd64), func Fchflags(string, int) error
pkg syscall (freebsd-amd64), func Mknod(string, uint32, int) error
pkg syscall (freebsd-amd64), type Dirent struct, Fileno uint32
pkg syscall (freebsd-amd64), type Dirent struct, Namlen uint8
pkg syscall (freebsd-amd64), type Stat_t struct, Blksize uint32
pkg syscall (freebsd-amd64), type Stat_t struct, Dev uint32
pkg syscall (freebsd-amd64), type Stat_t struct, Gen uint32
pkg syscall (freebsd-amd64), type Stat_t struct, Ino uint32
pkg syscall (freebsd-amd64), type Stat_t struct, Lspare int32
pkg syscall (freebsd-amd64), type Stat_t struct, Nlink uint16
pkg syscall (freebsd-amd64), type Stat_t struct, Rdev uint32
pkg syscall (freebsd-amd64), type Statfs_t struct, Mntfromname [88]int8
pkg syscall (freebsd-amd64), type Statfs_t struct, Mntonname [88]int8
pkg syscall (freebsd-amd64-cgo), const AF_MAX = 38
pkg syscall (freebsd-amd64-cgo), const DLT_MATCHING_MAX = 242
pkg syscall (freebsd-amd64-cgo), const ELAST = 94
pkg syscall (freebsd-amd64-cgo), const ImplementsGetwd = false
pkg syscall (freebsd-amd64-cgo), const O_CLOEXEC = 0
pkg syscall (freebsd-amd64-cgo), func Mknod(string, uint32, int) error
pkg syscall (freebsd-amd64-cgo), type Dirent struct, Fileno uint32
pkg syscall (freebsd-amd64-cgo), type Dirent struct, Namlen uint8
pkg syscall (freebsd-amd64-cgo), type Stat_t struct, Blksize uint32
pkg syscall (freebsd-amd64-cgo), type Stat_t struct, Dev uint32
pkg syscall (freebsd-amd64-cgo), type Stat_t struct, Gen uint32
pkg syscall (freebsd-amd64-cgo), type Stat_t struct, Ino uint32
pkg syscall (freebsd-amd64-cgo), type Stat_t struct, Lspare int32
pkg syscall (freebsd-amd64-cgo), type Stat_t struct, Nlink uint16
pkg syscall (freebsd-amd64-cgo), type Stat_t struct, Rdev uint32
pkg syscall (freebsd-amd64-cgo), type Statfs_t struct, Mntfromname [88]int8
pkg syscall (freebsd-amd64-cgo), type Statfs_t struct, Mntonname [88]int8
pkg syscall (freebsd-arm), const AF_MAX = 38
pkg syscall (freebsd-arm), const BIOCGRTIMEOUT = 1074545262
pkg syscall (freebsd-arm), const BIOCSRTIMEOUT = 2148287085
pkg syscall (freebsd-arm), const ELAST = 94
pkg syscall (freebsd-arm), const ImplementsGetwd = false
pkg syscall (freebsd-arm), const O_CLOEXEC = 0
pkg syscall (freebsd-arm), const SIOCAIFADDR = 2151967019
pkg syscall (freebsd-arm), const SIOCGIFSTATUS = 3274991931
pkg syscall (freebsd-arm), const SIOCSIFPHYADDR = 2151967046
pkg syscall (freebsd-arm), const SYS_CAP_FCNTLS_GET = 537
pkg syscall (freebsd-arm), const SYS_CAP_FCNTLS_GET ideal-int
pkg syscall (freebsd-arm), const SYS_CAP_FCNTLS_LIMIT = 536
pkg syscall (freebsd-arm), const SYS_CAP_FCNTLS_LIMIT ideal-int
pkg syscall (freebsd-arm), const SYS_CAP_IOCTLS_GET = 535
pkg syscall (freebsd-arm), const SYS_CAP_IOCTLS_GET ideal-int
pkg syscall (freebsd-arm), const SYS_CAP_IOCTLS_LIMIT = 534
pkg syscall (freebsd-arm), const SYS_CAP_IOCTLS_LIMIT ideal-int
pkg syscall (freebsd-arm), const SYS_CAP_RIGHTS_GET = 515
pkg syscall (freebsd-arm), const SYS_CAP_RIGHTS_GET ideal-int
pkg syscall (freebsd-arm), const SYS_CAP_RIGHTS_LIMIT = 533
pkg syscall (freebsd-arm), const SYS_CAP_RIGHTS_LIMIT ideal-int
pkg syscall (freebsd-arm), const SizeofBpfHdr = 24
pkg syscall (freebsd-arm), const SizeofIfData = 88
pkg syscall (freebsd-arm), const SizeofIfMsghdr = 104
pkg syscall (freebsd-arm), const SizeofSockaddrDatalink = 56
pkg syscall (freebsd-arm), const SizeofSockaddrUnix = 108
pkg syscall (freebsd-arm), const TIOCTIMESTAMP = 1074558041
pkg syscall (freebsd-arm), func Fchflags(string, int) error
pkg syscall (freebsd-arm), func Mknod(string, uint32, int) error
pkg syscall (freebsd-arm), type BpfHdr struct, Pad_cgo_0 [2]uint8
pkg syscall (freebsd-arm), type Dirent struct, Fileno uint32
pkg syscall (freebsd-arm), type Dirent struct, Namlen uint8
pkg syscall (freebsd-arm), type RawSockaddrDatalink struct, Pad_cgo_0 [2]uint8
pkg syscall (freebsd-arm), type RawSockaddrUnix struct, Pad_cgo_0 [2]uint8
pkg syscall (freebsd-arm), type Stat_t struct, Blksize uint32
pkg syscall (freebsd-arm), type Stat_t struct, Dev uint32
pkg syscall (freebsd-arm), type Stat_t struct, Gen uint32
pkg syscall (freebsd-arm), type Stat_t struct, Ino uint32
pkg syscall (freebsd-arm), type Stat_t struct, Lspare int32
pkg syscall (freebsd-arm), type Stat_t struct, Nlink uint16
pkg syscall (freebsd-arm), type Stat_t struct, Pad_cgo_0 [4]uint8
pkg syscall (freebsd-arm), type Stat_t struct, Rdev uint32
pkg syscall (freebsd-arm), type Statfs_t struct, Mntfromname [88]int8
pkg syscall (freebsd-arm), type Statfs_t struct, Mntonname [88]int8
pkg syscall (freebsd-arm-cgo), const AF_MAX = 38
pkg syscall (freebsd-arm-cgo), const BIOCGRTIMEOUT = 1074545262
pkg syscall (freebsd-arm-cgo), const BIOCSRTIMEOUT = 2148287085
pkg syscall (freebsd-arm-cgo), const ELAST = 94
pkg syscall (freebsd-arm-cgo), const ImplementsGetwd = false
pkg syscall (freebsd-arm-cgo), const O_CLOEXEC = 0
pkg syscall (freebsd-arm-cgo), const SIOCAIFADDR = 2151967019
pkg syscall (freebsd-arm-cgo), const SIOCGIFSTATUS = 3274991931
pkg syscall (freebsd-arm-cgo), const SIOCSIFPHYADDR = 2151967046
pkg syscall (freebsd-arm-cgo), const SYS_CAP_FCNTLS_GET = 537
pkg syscall (freebsd-arm-cgo), const SYS_CAP_FCNTLS_GET ideal-int
pkg syscall (freebsd-arm-cgo), const SYS_CAP_FCNTLS_LIMIT = 536
pkg syscall (freebsd-arm-cgo), const SYS_CAP_FCNTLS_LIMIT ideal-int
pkg syscall (freebsd-arm-cgo), const SYS_CAP_IOCTLS_GET = 535
pkg syscall (freebsd-arm-cgo), const SYS_CAP_IOCTLS_GET ideal-int
pkg syscall (freebsd-arm-cgo), const SYS_CAP_IOCTLS_LIMIT = 534
pkg syscall (freebsd-arm-cgo), const SYS_CAP_IOCTLS_LIMIT ideal-int
pkg syscall (freebsd-arm-cgo), const SYS_CAP_RIGHTS_GET = 515
pkg syscall (freebsd-arm-cgo), const SYS_CAP_RIGHTS_GET ideal-int
pkg syscall (freebsd-arm-cgo), const SYS_CAP_RIGHTS_LIMIT = 533
pkg syscall (freebsd-arm-cgo), const SYS_CAP_RIGHTS_LIMIT ideal-int
pkg syscall (freebsd-arm-cgo), const SizeofBpfHdr = 24
pkg syscall (freebsd-arm-cgo), const SizeofIfData = 88
pkg syscall (freebsd-arm-cgo), const SizeofIfMsghdr = 104
pkg syscall (freebsd-arm-cgo), const SizeofSockaddrDatalink = 56
pkg syscall (freebsd-arm-cgo), const SizeofSockaddrUnix = 108
pkg syscall (freebsd-arm-cgo), const TIOCTIMESTAMP = 1074558041
pkg syscall (freebsd-arm-cgo), func Fchflags(string, int) error
pkg syscall (freebsd-arm-cgo), func Mknod(string, uint32, int) error
pkg syscall (freebsd-arm-cgo), type BpfHdr struct, Pad_cgo_0 [2]uint8
pkg syscall (freebsd-arm-cgo), type Dirent struct, Fileno uint32
pkg syscall (freebsd-arm-cgo), type Dirent struct, Namlen uint8
pkg syscall (freebsd-arm-cgo), type RawSockaddrDatalink struct, Pad_cgo_0 [2]uint8
pkg syscall (freebsd-arm-cgo), type RawSockaddrUnix struct, Pad_cgo_0 [2]uint8
pkg syscall (freebsd-arm-cgo), type Stat_t struct, Blksize uint32
pkg syscall (freebsd-arm-cgo), type Stat_t struct, Dev uint32
pkg syscall (freebsd-arm-cgo), type Stat_t struct, Gen uint32
pkg syscall (freebsd-arm-cgo), type Stat_t struct, Ino uint32
pkg syscall (freebsd-arm-cgo), type Stat_t struct, Lspare int32
pkg syscall (freebsd-arm-cgo), type Stat_t struct, Nlink uint16
pkg syscall (freebsd-arm-cgo), type Stat_t struct, Pad_cgo_0 [4]uint8
pkg syscall (freebsd-arm-cgo), type Stat_t struct, Rdev uint32
pkg syscall (freebsd-arm-cgo), type Statfs_t struct, Mntfromname [88]int8
pkg syscall (freebsd-arm-cgo), type Statfs_t struct, Mntonname [88]int8
pkg syscall (linux-386), type Cmsghdr struct, X__cmsg_data [0]uint8
pkg syscall (linux-386-cgo), type Cmsghdr struct, X__cmsg_data [0]uint8
pkg syscall (linux-amd64), type Cmsghdr struct, X__cmsg_data [0]uint8
pkg syscall (linux-amd64-cgo), type Cmsghdr struct, X__cmsg_data [0]uint8
pkg syscall (linux-arm), type Cmsghdr struct, X__cmsg_data [0]uint8
pkg syscall (linux-arm-cgo), type Cmsghdr struct, X__cmsg_data [0]uint8
pkg syscall (netbsd-386), const ImplementsGetwd = false
pkg syscall (netbsd-386-cgo), const ImplementsGetwd = false
pkg syscall (netbsd-amd64), const ImplementsGetwd = false
pkg syscall (netbsd-amd64-cgo), const ImplementsGetwd = false
pkg syscall (netbsd-arm), const ImplementsGetwd = false
pkg syscall (netbsd-arm), const SizeofIfData = 132
pkg syscall (netbsd-arm), func Fchflags(string, int) error
pkg syscall (netbsd-arm), type IfMsghdr struct, Pad_cgo_1 [4]uint8
pkg syscall (netbsd-arm-cgo), const ImplementsGetwd = false
pkg syscall (netbsd-arm-cgo), const SizeofIfData = 132
pkg syscall (netbsd-arm-cgo), func Fchflags(string, int) error
pkg syscall (netbsd-arm-cgo), type IfMsghdr struct, Pad_cgo_1 [4]uint8
pkg syscall (openbsd-386), const BIOCGRTIMEOUT = 1074283118
pkg syscall (openbsd-386), const BIOCSRTIMEOUT = 2148024941
pkg syscall (openbsd-386), const ImplementsGetwd = false
pkg syscall (openbsd-386), const RTF_FMASK = 63496
pkg syscall (openbsd-386), const RTM_VERSION = 4
pkg syscall (openbsd-386), const SIOCBRDGDADDR = 2150132039
pkg syscall (openbsd-386), const SIOCBRDGGPARAM = 3224922456
pkg syscall (openbsd-386), const SIOCBRDGSADDR = 3223873860
pkg syscall (openbsd-386), const SYS_CLOCK_GETRES = 234
pkg syscall (openbsd-386), const SYS_CLOCK_GETTIME = 232
pkg syscall (openbsd-386), const SYS_CLOCK_SETTIME = 233
pkg syscall (openbsd-386), const SYS_FHSTATFS = 309
pkg syscall (openbsd-386), const SYS_FSTAT = 292
pkg syscall (openbsd-386), const SYS_FSTATAT = 316
pkg syscall (openbsd-386), const SYS_FSTATFS = 308
pkg syscall (openbsd-386), const SYS_FUTIMENS = 327
pkg syscall (openbsd-386), const SYS_FUTIMES = 206
pkg syscall (openbsd-386), const SYS_GETDIRENTRIES = 312
pkg syscall (openbsd-386), const SYS_GETDIRENTRIES ideal-int
pkg syscall (openbsd-386), const SYS_GETFSSTAT = 306
pkg syscall (openbsd-386), const SYS_GETITIMER = 86
pkg syscall (openbsd-386), const SYS_GETRUSAGE = 117
pkg syscall (openbsd-386), const SYS_GETTIMEOFDAY = 116
pkg syscall (openbsd-386), const SYS_KEVENT = 270
pkg syscall (openbsd-386), const SYS_KILL = 37
pkg syscall (openbsd-386), const SYS_LSTAT = 293
pkg syscall (openbsd-386), const SYS_NANOSLEEP = 240
pkg syscall (openbsd-386), const SYS_SELECT = 93
pkg syscall (openbsd-386), const SYS_SETITIMER = 83
pkg syscall (openbsd-386), const SYS_SETTIMEOFDAY = 122
pkg syscall (openbsd-386), const SYS_STAT = 291
pkg syscall (openbsd-386), const SYS_STATFS = 307
pkg syscall (openbsd-386), const SYS_UTIMENSAT = 326
pkg syscall (openbsd-386), const SYS_UTIMES = 138
pkg syscall (openbsd-386), const SYS_WAIT4 = 7
pkg syscall (openbsd-386), const SYS___THRSLEEP = 300
pkg syscall (openbsd-386), const SizeofIfData = 208
pkg syscall (openbsd-386), const SizeofIfMsghdr = 232
pkg syscall (openbsd-386), const SizeofRtMetrics = 48
pkg syscall (openbsd-386), const SizeofRtMsghdr = 88
pkg syscall (openbsd-386), const TIOCGTSTAMP = 1074295899
pkg syscall (openbsd-386), type Dirent struct, Fileno uint32
pkg syscall (openbsd-386), type FdSet struct, Bits [32]int32
pkg syscall (openbsd-386), type Kevent_t struct, Data int32
pkg syscall (openbsd-386), type Mclpool struct, Grown uint32
pkg syscall (openbsd-386), type RtMetrics struct, Expire uint32
pkg syscall (openbsd-386), type Stat_t struct, Ino uint32
pkg syscall (openbsd-386), type Stat_t struct, Lspare0 int32
pkg syscall (openbsd-386), type Stat_t struct, Lspare1 int32
pkg syscall (openbsd-386), type Stat_t struct, Qspare [2]int64
pkg syscall (openbsd-386), type Statfs_t struct, F_ctime uint32
pkg syscall (openbsd-386), type Statfs_t struct, F_spare [3]uint32
pkg syscall (openbsd-386), type Timespec struct, Sec int32
pkg syscall (openbsd-386), type Timeval struct, Sec int32
pkg syscall (openbsd-386-cgo), const BIOCGRTIMEOUT = 1074283118
pkg syscall (openbsd-386-cgo), const BIOCSRTIMEOUT = 2148024941
pkg syscall (openbsd-386-cgo), const ImplementsGetwd = false
pkg syscall (openbsd-386-cgo), const RTF_FMASK = 63496
pkg syscall (openbsd-386-cgo), const RTM_VERSION = 4
pkg syscall (openbsd-386-cgo), const SIOCBRDGDADDR = 2150132039
pkg syscall (openbsd-386-cgo), const SIOCBRDGGPARAM = 3224922456
pkg syscall (openbsd-386-cgo), const SIOCBRDGSADDR = 3223873860
pkg syscall (openbsd-386-cgo), const SYS_CLOCK_GETRES = 234
pkg syscall (openbsd-386-cgo), const SYS_CLOCK_GETTIME = 232
pkg syscall (openbsd-386-cgo), const SYS_CLOCK_SETTIME = 233
pkg syscall (openbsd-386-cgo), const SYS_FHSTATFS = 309
pkg syscall (openbsd-386-cgo), const SYS_FSTAT = 292
pkg syscall (openbsd-386-cgo), const SYS_FSTATAT = 316
pkg syscall (openbsd-386-cgo), const SYS_FSTATFS = 308
pkg syscall (openbsd-386-cgo), const SYS_FUTIMENS = 327
pkg syscall (openbsd-386-cgo), const SYS_FUTIMES = 206
pkg syscall (openbsd-386-cgo), const SYS_GETDIRENTRIES = 312
pkg syscall (openbsd-386-cgo), const SYS_GETDIRENTRIES ideal-int
pkg syscall (openbsd-386-cgo), const SYS_GETFSSTAT = 306
pkg syscall (openbsd-386-cgo), const SYS_GETITIMER = 86
pkg syscall (openbsd-386-cgo), const SYS_GETRUSAGE = 117
pkg syscall (openbsd-386-cgo), const SYS_GETTIMEOFDAY = 116
pkg syscall (openbsd-386-cgo), const SYS_KEVENT = 270
pkg syscall (openbsd-386-cgo), const SYS_KILL = 37
pkg syscall (openbsd-386-cgo), const SYS_LSTAT = 293
pkg syscall (openbsd-386-cgo), const SYS_NANOSLEEP = 240
pkg syscall (openbsd-386-cgo), const SYS_SELECT = 93
pkg syscall (openbsd-386-cgo), const SYS_SETITIMER = 83
pkg syscall (openbsd-386-cgo), const SYS_SETTIMEOFDAY = 122
pkg syscall (openbsd-386-cgo), const SYS_STAT = 291
pkg syscall (openbsd-386-cgo), const SYS_STATFS = 307
pkg syscall (openbsd-386-cgo), const SYS_UTIMENSAT = 326
pkg syscall (openbsd-386-cgo), const SYS_UTIMES = 138
pkg syscall (openbsd-386-cgo), const SYS_WAIT4 = 7
pkg syscall (openbsd-386-cgo), const SYS___THRSLEEP = 300
pkg syscall (openbsd-386-cgo), const SizeofIfData = 208
pkg syscall (openbsd-386-cgo), const SizeofIfMsghdr = 232
pkg syscall (openbsd-386-cgo), const SizeofRtMetrics = 48
pkg syscall (openbsd-386-cgo), const SizeofRtMsghdr = 88
pkg syscall (openbsd-386-cgo), const TIOCGTSTAMP = 1074295899
pkg syscall (openbsd-386-cgo), type Dirent struct, Fileno uint32
pkg syscall (openbsd-386-cgo), type FdSet struct, Bits [32]int32
pkg syscall (openbsd-386-cgo), type Kevent_t struct, Data int32
pkg syscall (openbsd-386-cgo), type Mclpool struct, Grown uint32
pkg syscall (openbsd-386-cgo), type RtMetrics struct, Expire uint32
pkg syscall (openbsd-386-cgo), type Stat_t struct, Ino uint32
pkg syscall (openbsd-386-cgo), type Stat_t struct, Lspare0 int32
pkg syscall (openbsd-386-cgo), type Stat_t struct, Lspare1 int32
pkg syscall (openbsd-386-cgo), type Stat_t struct, Qspare [2]int64
pkg syscall (openbsd-386-cgo), type Statfs_t struct, F_ctime uint32
pkg syscall (openbsd-386-cgo), type Statfs_t struct, F_spare [3]uint32
pkg syscall (openbsd-386-cgo), type Timespec struct, Sec int32
pkg syscall (openbsd-386-cgo), type Timeval struct, Sec int32
pkg syscall (openbsd-amd64), const CCR0_FLUSH = 16
pkg syscall (openbsd-amd64), const CCR0_FLUSH ideal-int
pkg syscall (openbsd-amd64), const CPUID_CFLUSH = 524288
pkg syscall (openbsd-amd64), const CPUID_CFLUSH ideal-int
pkg syscall (openbsd-amd64), const EFER_LMA = 1024
pkg syscall (openbsd-amd64), const EFER_LMA ideal-int
pkg syscall (openbsd-amd64), const EFER_LME = 256
pkg syscall (openbsd-amd64), const EFER_LME ideal-int
pkg syscall (openbsd-amd64), const EFER_NXE = 2048
pkg syscall (openbsd-amd64), const EFER_NXE ideal-int
pkg syscall (openbsd-amd64), const EFER_SCE = 1
pkg syscall (openbsd-amd64), const EFER_SCE ideal-int
pkg syscall (openbsd-amd64), const ImplementsGetwd = false
pkg syscall (openbsd-amd64), const PMC5_PIPELINE_FLUSH = 21
pkg syscall (openbsd-amd64), const PMC5_PIPELINE_FLUSH ideal-int
pkg syscall (openbsd-amd64), const RTF_FMASK = 63496
pkg syscall (openbsd-amd64), const RTM_VERSION = 4
pkg syscall (openbsd-amd64), const SIOCBRDGDADDR = 2150132039
pkg syscall (openbsd-amd64), const SIOCBRDGSADDR = 3223873860
pkg syscall (openbsd-amd64), const SYS_CLOCK_GETRES = 234
pkg syscall (openbsd-amd64), const SYS_CLOCK_GETTIME = 232
pkg syscall (openbsd-amd64), const SYS_CLOCK_SETTIME = 233
pkg syscall (openbsd-amd64), const SYS_FHSTATFS = 309
pkg syscall (openbsd-amd64), const SYS_FSTAT = 292
pkg syscall (openbsd-amd64), const SYS_FSTATAT = 316
pkg syscall (openbsd-amd64), const SYS_FSTATFS = 308
pkg syscall (openbsd-amd64), const SYS_FUTIMENS = 327
pkg syscall (openbsd-amd64), const SYS_FUTIMES = 206
pkg syscall (openbsd-amd64), const SYS_GETDIRENTRIES = 312
pkg syscall (openbsd-amd64), const SYS_GETDIRENTRIES ideal-int
pkg syscall (openbsd-amd64), const SYS_GETFSSTAT = 306
pkg syscall (openbsd-amd64), const SYS_GETITIMER = 86
pkg syscall (openbsd-amd64), const SYS_GETRUSAGE = 117
pkg syscall (openbsd-amd64), const SYS_GETTIMEOFDAY = 116
pkg syscall (openbsd-amd64), const SYS_KEVENT = 270
pkg syscall (openbsd-amd64), const SYS_KILL = 37
pkg syscall (openbsd-amd64), const SYS_LSTAT = 293
pkg syscall (openbsd-amd64), const SYS_NANOSLEEP = 240
pkg syscall (openbsd-amd64), const SYS_SELECT = 93
pkg syscall (openbsd-amd64), const SYS_SETITIMER = 83
pkg syscall (openbsd-amd64), const SYS_SETTIMEOFDAY = 122
pkg syscall (openbsd-amd64), const SYS_STAT = 291
pkg syscall (openbsd-amd64), const SYS_STATFS = 307
pkg syscall (openbsd-amd64), const SYS_UTIMENSAT = 326
pkg syscall (openbsd-amd64), const SYS_UTIMES = 138
pkg syscall (openbsd-amd64), const SYS_WAIT4 = 7
pkg syscall (openbsd-amd64), const SYS___THRSLEEP = 300
pkg syscall (openbsd-amd64), const SizeofRtMetrics = 48
pkg syscall (openbsd-amd64), const SizeofRtMsghdr = 88
pkg syscall (openbsd-amd64), type Dirent struct, Fileno uint32
pkg syscall (openbsd-amd64), type FdSet struct, Bits [32]int32
pkg syscall (openbsd-amd64), type Kevent_t struct, Data int32
pkg syscall (openbsd-amd64), type Kevent_t struct, Ident uint32
pkg syscall (openbsd-amd64), type Mclpool struct, Grown uint32
pkg syscall (openbsd-amd64), type RtMetrics struct, Expire uint32
pkg syscall (openbsd-amd64), type Stat_t struct, Ino uint32
pkg syscall (openbsd-amd64), type Stat_t struct, Lspare0 int32
pkg syscall (openbsd-amd64), type Stat_t struct, Lspare1 int32
pkg syscall (openbsd-amd64), type Stat_t struct, Qspare [2]int64
pkg syscall (openbsd-amd64), type Statfs_t struct, F_ctime uint32
pkg syscall (openbsd-amd64), type Statfs_t struct, F_spare [3]uint32
pkg syscall (openbsd-amd64), type Statfs_t struct, Pad_cgo_1 [4]uint8
pkg syscall (openbsd-amd64), type Timespec struct, Pad_cgo_0 [4]uint8
pkg syscall (openbsd-amd64), type Timespec struct, Sec int32
pkg syscall (openbsd-amd64-cgo), const CCR0_FLUSH = 16
pkg syscall (openbsd-amd64-cgo), const CCR0_FLUSH ideal-int
pkg syscall (openbsd-amd64-cgo), const CPUID_CFLUSH = 524288
pkg syscall (openbsd-amd64-cgo), const CPUID_CFLUSH ideal-int
pkg syscall (openbsd-amd64-cgo), const EFER_LMA = 1024
pkg syscall (openbsd-amd64-cgo), const EFER_LMA ideal-int
pkg syscall (openbsd-amd64-cgo), const EFER_LME = 256
pkg syscall (openbsd-amd64-cgo), const EFER_LME ideal-int
pkg syscall (openbsd-amd64-cgo), const EFER_NXE = 2048
pkg syscall (openbsd-amd64-cgo), const EFER_NXE ideal-int
pkg syscall (openbsd-amd64-cgo), const EFER_SCE = 1
pkg syscall (openbsd-amd64-cgo), const EFER_SCE ideal-int
pkg syscall (openbsd-amd64-cgo), const ImplementsGetwd = false
pkg syscall (openbsd-amd64-cgo), const PMC5_PIPELINE_FLUSH = 21
pkg syscall (openbsd-amd64-cgo), const PMC5_PIPELINE_FLUSH ideal-int
pkg syscall (openbsd-amd64-cgo), const RTF_FMASK = 63496
pkg syscall (openbsd-amd64-cgo), const RTM_VERSION = 4
pkg syscall (openbsd-amd64-cgo), const SIOCBRDGDADDR = 2150132039
pkg syscall (openbsd-amd64-cgo), const SIOCBRDGSADDR = 3223873860
pkg syscall (openbsd-amd64-cgo), const SYS_CLOCK_GETRES = 234
pkg syscall (openbsd-amd64-cgo), const SYS_CLOCK_GETTIME = 232
pkg syscall (openbsd-amd64-cgo), const SYS_CLOCK_SETTIME = 233
pkg syscall (openbsd-amd64-cgo), const SYS_FHSTATFS = 309
pkg syscall (openbsd-amd64-cgo), const SYS_FSTAT = 292
pkg syscall (openbsd-amd64-cgo), const SYS_FSTATAT = 316
pkg syscall (openbsd-amd64-cgo), const SYS_FSTATFS = 308
pkg syscall (openbsd-amd64-cgo), const SYS_FUTIMENS = 327
pkg syscall (openbsd-amd64-cgo), const SYS_FUTIMES = 206
pkg syscall (openbsd-amd64-cgo), const SYS_GETDIRENTRIES = 312
pkg syscall (openbsd-amd64-cgo), const SYS_GETDIRENTRIES ideal-int
pkg syscall (openbsd-amd64-cgo), const SYS_GETFSSTAT = 306
pkg syscall (openbsd-amd64-cgo), const SYS_GETITIMER = 86
pkg syscall (openbsd-amd64-cgo), const SYS_GETRUSAGE = 117
pkg syscall (openbsd-amd64-cgo), const SYS_GETTIMEOFDAY = 116
pkg syscall (openbsd-amd64-cgo), const SYS_KEVENT = 270
pkg syscall (openbsd-amd64-cgo), const SYS_KILL = 37
pkg syscall (openbsd-amd64-cgo), const SYS_LSTAT = 293
pkg syscall (openbsd-amd64-cgo), const SYS_NANOSLEEP = 240
pkg syscall (openbsd-amd64-cgo), const SYS_SELECT = 93
pkg syscall (openbsd-amd64-cgo), const SYS_SETITIMER = 83
pkg syscall (openbsd-amd64-cgo), const SYS_SETTIMEOFDAY = 122
pkg syscall (openbsd-amd64-cgo), const SYS_STAT = 291
pkg syscall (openbsd-amd64-cgo), const SYS_STATFS = 307
pkg syscall (openbsd-amd64-cgo), const SYS_UTIMENSAT = 326
pkg syscall (openbsd-amd64-cgo), const SYS_UTIMES = 138
pkg syscall (openbsd-amd64-cgo), const SYS_WAIT4 = 7
pkg syscall (openbsd-amd64-cgo), const SYS___THRSLEEP = 300
pkg syscall (openbsd-amd64-cgo), const SizeofRtMetrics = 48
pkg syscall (openbsd-amd64-cgo), const SizeofRtMsghdr = 88
pkg syscall (openbsd-amd64-cgo), type Dirent struct, Fileno uint32
pkg syscall (openbsd-amd64-cgo), type FdSet struct, Bits [32]int32
pkg syscall (openbsd-amd64-cgo), type Kevent_t struct, Data int32
pkg syscall (openbsd-amd64-cgo), type Kevent_t struct, Ident uint32
pkg syscall (openbsd-amd64-cgo), type Mclpool struct, Grown uint32
pkg syscall (openbsd-amd64-cgo), type RtMetrics struct, Expire uint32
pkg syscall (openbsd-amd64-cgo), type Stat_t struct, Ino uint32
pkg syscall (openbsd-amd64-cgo), type Stat_t struct, Lspare0 int32
pkg syscall (openbsd-amd64-cgo), type Stat_t struct, Lspare1 int32
pkg syscall (openbsd-amd64-cgo), type Stat_t struct, Qspare [2]int64
pkg syscall (openbsd-amd64-cgo), type Statfs_t struct, F_ctime uint32
pkg syscall (openbsd-amd64-cgo), type Statfs_t struct, F_spare [3]uint32
pkg syscall (openbsd-amd64-cgo), type Statfs_t struct, Pad_cgo_1 [4]uint8
pkg syscall (openbsd-amd64-cgo), type Timespec struct, Pad_cgo_0 [4]uint8
pkg syscall (openbsd-amd64-cgo), type Timespec struct, Sec int32
pkg syscall (windows-386), const TOKEN_ALL_ACCESS = 983295
pkg syscall (windows-386), type AddrinfoW struct, Addr uintptr
pkg syscall (windows-386), type CertChainPolicyPara struct, ExtraPolicyPara uintptr
pkg syscall (windows-386), type CertChainPolicyStatus struct, ExtraPolicyStatus uintptr
pkg syscall (windows-386), type CertContext struct, CertInfo uintptr
pkg syscall (windows-386), type CertRevocationInfo struct, CrlInfo uintptr
pkg syscall (windows-386), type CertRevocationInfo struct, OidSpecificInfo uintptr
pkg syscall (windows-386), type CertSimpleChain struct, TrustListInfo uintptr
pkg syscall (windows-386), type RawSockaddrAny struct, Pad [96]int8
pkg syscall (windows-amd64), const TOKEN_ALL_ACCESS = 983295
pkg syscall (windows-amd64), type AddrinfoW struct, Addr uintptr
pkg syscall (windows-amd64), type CertChainPolicyPara struct, ExtraPolicyPara uintptr
pkg syscall (windows-amd64), type CertChainPolicyStatus struct, ExtraPolicyStatus uintptr
pkg syscall (windows-amd64), type CertContext struct, CertInfo uintptr
pkg syscall (windows-amd64), type CertRevocationInfo struct, CrlInfo uintptr
pkg syscall (windows-amd64), type CertRevocationInfo struct, OidSpecificInfo uintptr
pkg syscall (windows-amd64), type CertSimpleChain struct, TrustListInfo uintptr
pkg syscall (windows-amd64), type RawSockaddrAny struct, Pad [96]int8
pkg testing, func MainStart(func(string, string) (bool, error), []InternalTest, []InternalBenchmark, []InternalExample) *M
pkg testing, func RegisterCover(Cover)
pkg text/scanner, const GoTokens = 1012
pkg text/template/parse, type DotNode bool
pkg text/template/parse, type Node interface { Copy, String, Type }
pkg unicode, const Version = "10.0.0"
pkg unicode, const Version = "11.0.0"
pkg unicode, const Version = "12.0.0"
pkg unicode, const Version = "6.2.0"
pkg unicode, const Version = "6.3.0"
pkg unicode, const Version = "7.0.0"
pkg unicode, const Version = "8.0.0"
pkg unicode, const Version = "9.0.0"

File diff suppressed because it is too large Load Diff

View File

@@ -1,627 +0,0 @@
pkg archive/tar, const FormatGNU = 8
pkg archive/tar, const FormatGNU Format
pkg archive/tar, const FormatPAX = 4
pkg archive/tar, const FormatPAX Format
pkg archive/tar, const FormatUSTAR = 2
pkg archive/tar, const FormatUSTAR Format
pkg archive/tar, const FormatUnknown = 0
pkg archive/tar, const FormatUnknown Format
pkg archive/tar, method (Format) String() string
pkg archive/tar, type Format int
pkg archive/tar, type Header struct, Format Format
pkg archive/tar, type Header struct, PAXRecords map[string]string
pkg archive/zip, method (*Writer) SetComment(string) error
pkg archive/zip, type FileHeader struct, Modified time.Time
pkg archive/zip, type FileHeader struct, NonUTF8 bool
pkg bufio, method (*Reader) Size() int
pkg bufio, method (*Writer) Size() int
pkg crypto/tls, const ECDSAWithSHA1 = 515
pkg crypto/tls, const ECDSAWithSHA1 SignatureScheme
pkg crypto/x509, const CANotAuthorizedForExtKeyUsage = 9
pkg crypto/x509, const CANotAuthorizedForExtKeyUsage InvalidReason
pkg crypto/x509, const ExtKeyUsageMicrosoftCommercialCodeSigning = 12
pkg crypto/x509, const ExtKeyUsageMicrosoftCommercialCodeSigning ExtKeyUsage
pkg crypto/x509, const ExtKeyUsageMicrosoftKernelCodeSigning = 13
pkg crypto/x509, const ExtKeyUsageMicrosoftKernelCodeSigning ExtKeyUsage
pkg crypto/x509, const NameConstraintsWithoutSANs = 6
pkg crypto/x509, const NameConstraintsWithoutSANs InvalidReason
pkg crypto/x509, const TooManyConstraints = 8
pkg crypto/x509, const TooManyConstraints InvalidReason
pkg crypto/x509, const UnconstrainedName = 7
pkg crypto/x509, const UnconstrainedName InvalidReason
pkg crypto/x509, func MarshalPKCS1PublicKey(*rsa.PublicKey) []uint8
pkg crypto/x509, func MarshalPKCS8PrivateKey(interface{}) ([]uint8, error)
pkg crypto/x509, func ParsePKCS1PublicKey([]uint8) (*rsa.PublicKey, error)
pkg crypto/x509, method (PublicKeyAlgorithm) String() string
pkg crypto/x509, type Certificate struct, ExcludedEmailAddresses []string
pkg crypto/x509, type Certificate struct, ExcludedIPRanges []*net.IPNet
pkg crypto/x509, type Certificate struct, ExcludedURIDomains []string
pkg crypto/x509, type Certificate struct, PermittedEmailAddresses []string
pkg crypto/x509, type Certificate struct, PermittedIPRanges []*net.IPNet
pkg crypto/x509, type Certificate struct, PermittedURIDomains []string
pkg crypto/x509, type Certificate struct, URIs []*url.URL
pkg crypto/x509, type CertificateInvalidError struct, Detail string
pkg crypto/x509, type CertificateRequest struct, URIs []*url.URL
pkg crypto/x509, type VerifyOptions struct, MaxConstraintComparisions int
pkg crypto/x509/pkix, method (Name) String() string
pkg crypto/x509/pkix, method (RDNSequence) String() string
pkg database/sql, func OpenDB(driver.Connector) *DB
pkg database/sql/driver, type Connector interface { Connect, Driver }
pkg database/sql/driver, type Connector interface, Connect(context.Context) (Conn, error)
pkg database/sql/driver, type Connector interface, Driver() Driver
pkg database/sql/driver, type DriverContext interface { OpenConnector }
pkg database/sql/driver, type DriverContext interface, OpenConnector(string) (Connector, error)
pkg database/sql/driver, type SessionResetter interface { ResetSession }
pkg database/sql/driver, type SessionResetter interface, ResetSession(context.Context) error
pkg debug/elf, const R_386_16 = 20
pkg debug/elf, const R_386_16 R_386
pkg debug/elf, const R_386_32PLT = 11
pkg debug/elf, const R_386_32PLT R_386
pkg debug/elf, const R_386_8 = 22
pkg debug/elf, const R_386_8 R_386
pkg debug/elf, const R_386_GOT32X = 43
pkg debug/elf, const R_386_GOT32X R_386
pkg debug/elf, const R_386_IRELATIVE = 42
pkg debug/elf, const R_386_IRELATIVE R_386
pkg debug/elf, const R_386_PC16 = 21
pkg debug/elf, const R_386_PC16 R_386
pkg debug/elf, const R_386_PC8 = 23
pkg debug/elf, const R_386_PC8 R_386
pkg debug/elf, const R_386_SIZE32 = 38
pkg debug/elf, const R_386_SIZE32 R_386
pkg debug/elf, const R_386_TLS_DESC = 41
pkg debug/elf, const R_386_TLS_DESC R_386
pkg debug/elf, const R_386_TLS_DESC_CALL = 40
pkg debug/elf, const R_386_TLS_DESC_CALL R_386
pkg debug/elf, const R_386_TLS_GOTDESC = 39
pkg debug/elf, const R_386_TLS_GOTDESC R_386
pkg debug/elf, const R_AARCH64_LD64_GOTOFF_LO15 = 310
pkg debug/elf, const R_AARCH64_LD64_GOTOFF_LO15 R_AARCH64
pkg debug/elf, const R_AARCH64_LD64_GOTPAGE_LO15 = 313
pkg debug/elf, const R_AARCH64_LD64_GOTPAGE_LO15 R_AARCH64
pkg debug/elf, const R_AARCH64_TLSGD_ADR_PREL21 = 512
pkg debug/elf, const R_AARCH64_TLSGD_ADR_PREL21 R_AARCH64
pkg debug/elf, const R_AARCH64_TLSGD_MOVW_G0_NC = 516
pkg debug/elf, const R_AARCH64_TLSGD_MOVW_G0_NC R_AARCH64
pkg debug/elf, const R_AARCH64_TLSGD_MOVW_G1 = 515
pkg debug/elf, const R_AARCH64_TLSGD_MOVW_G1 R_AARCH64
pkg debug/elf, const R_AARCH64_TLSLD_ADR_PAGE21 = 518
pkg debug/elf, const R_AARCH64_TLSLD_ADR_PAGE21 R_AARCH64
pkg debug/elf, const R_AARCH64_TLSLD_ADR_PREL21 = 517
pkg debug/elf, const R_AARCH64_TLSLD_ADR_PREL21 R_AARCH64
pkg debug/elf, const R_AARCH64_TLSLD_LDST128_DTPREL_LO12 = 572
pkg debug/elf, const R_AARCH64_TLSLD_LDST128_DTPREL_LO12 R_AARCH64
pkg debug/elf, const R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC = 573
pkg debug/elf, const R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_TLSLE_LDST128_TPREL_LO12 = 570
pkg debug/elf, const R_AARCH64_TLSLE_LDST128_TPREL_LO12 R_AARCH64
pkg debug/elf, const R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC = 571
pkg debug/elf, const R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC R_AARCH64
pkg debug/elf, const R_ARM_ABS32_NOI = 55
pkg debug/elf, const R_ARM_ABS32_NOI R_ARM
pkg debug/elf, const R_ARM_ALU_PCREL_15_8 = 33
pkg debug/elf, const R_ARM_ALU_PCREL_15_8 R_ARM
pkg debug/elf, const R_ARM_ALU_PCREL_23_15 = 34
pkg debug/elf, const R_ARM_ALU_PCREL_23_15 R_ARM
pkg debug/elf, const R_ARM_ALU_PCREL_7_0 = 32
pkg debug/elf, const R_ARM_ALU_PCREL_7_0 R_ARM
pkg debug/elf, const R_ARM_ALU_PC_G0 = 58
pkg debug/elf, const R_ARM_ALU_PC_G0 R_ARM
pkg debug/elf, const R_ARM_ALU_PC_G0_NC = 57
pkg debug/elf, const R_ARM_ALU_PC_G0_NC R_ARM
pkg debug/elf, const R_ARM_ALU_PC_G1 = 60
pkg debug/elf, const R_ARM_ALU_PC_G1 R_ARM
pkg debug/elf, const R_ARM_ALU_PC_G1_NC = 59
pkg debug/elf, const R_ARM_ALU_PC_G1_NC R_ARM
pkg debug/elf, const R_ARM_ALU_PC_G2 = 61
pkg debug/elf, const R_ARM_ALU_PC_G2 R_ARM
pkg debug/elf, const R_ARM_ALU_SBREL_19_12_NC = 36
pkg debug/elf, const R_ARM_ALU_SBREL_19_12_NC R_ARM
pkg debug/elf, const R_ARM_ALU_SBREL_27_20_CK = 37
pkg debug/elf, const R_ARM_ALU_SBREL_27_20_CK R_ARM
pkg debug/elf, const R_ARM_ALU_SB_G0 = 71
pkg debug/elf, const R_ARM_ALU_SB_G0 R_ARM
pkg debug/elf, const R_ARM_ALU_SB_G0_NC = 70
pkg debug/elf, const R_ARM_ALU_SB_G0_NC R_ARM
pkg debug/elf, const R_ARM_ALU_SB_G1 = 73
pkg debug/elf, const R_ARM_ALU_SB_G1 R_ARM
pkg debug/elf, const R_ARM_ALU_SB_G1_NC = 72
pkg debug/elf, const R_ARM_ALU_SB_G1_NC R_ARM
pkg debug/elf, const R_ARM_ALU_SB_G2 = 74
pkg debug/elf, const R_ARM_ALU_SB_G2 R_ARM
pkg debug/elf, const R_ARM_BASE_ABS = 31
pkg debug/elf, const R_ARM_BASE_ABS R_ARM
pkg debug/elf, const R_ARM_CALL = 28
pkg debug/elf, const R_ARM_CALL R_ARM
pkg debug/elf, const R_ARM_GOTOFF12 = 98
pkg debug/elf, const R_ARM_GOTOFF12 R_ARM
pkg debug/elf, const R_ARM_GOTRELAX = 99
pkg debug/elf, const R_ARM_GOTRELAX R_ARM
pkg debug/elf, const R_ARM_GOT_ABS = 95
pkg debug/elf, const R_ARM_GOT_ABS R_ARM
pkg debug/elf, const R_ARM_GOT_BREL12 = 97
pkg debug/elf, const R_ARM_GOT_BREL12 R_ARM
pkg debug/elf, const R_ARM_GOT_PREL = 96
pkg debug/elf, const R_ARM_GOT_PREL R_ARM
pkg debug/elf, const R_ARM_IRELATIVE = 160
pkg debug/elf, const R_ARM_IRELATIVE R_ARM
pkg debug/elf, const R_ARM_JUMP24 = 29
pkg debug/elf, const R_ARM_JUMP24 R_ARM
pkg debug/elf, const R_ARM_LDC_PC_G0 = 67
pkg debug/elf, const R_ARM_LDC_PC_G0 R_ARM
pkg debug/elf, const R_ARM_LDC_PC_G1 = 68
pkg debug/elf, const R_ARM_LDC_PC_G1 R_ARM
pkg debug/elf, const R_ARM_LDC_PC_G2 = 69
pkg debug/elf, const R_ARM_LDC_PC_G2 R_ARM
pkg debug/elf, const R_ARM_LDC_SB_G0 = 81
pkg debug/elf, const R_ARM_LDC_SB_G0 R_ARM
pkg debug/elf, const R_ARM_LDC_SB_G1 = 82
pkg debug/elf, const R_ARM_LDC_SB_G1 R_ARM
pkg debug/elf, const R_ARM_LDC_SB_G2 = 83
pkg debug/elf, const R_ARM_LDC_SB_G2 R_ARM
pkg debug/elf, const R_ARM_LDRS_PC_G0 = 64
pkg debug/elf, const R_ARM_LDRS_PC_G0 R_ARM
pkg debug/elf, const R_ARM_LDRS_PC_G1 = 65
pkg debug/elf, const R_ARM_LDRS_PC_G1 R_ARM
pkg debug/elf, const R_ARM_LDRS_PC_G2 = 66
pkg debug/elf, const R_ARM_LDRS_PC_G2 R_ARM
pkg debug/elf, const R_ARM_LDRS_SB_G0 = 78
pkg debug/elf, const R_ARM_LDRS_SB_G0 R_ARM
pkg debug/elf, const R_ARM_LDRS_SB_G1 = 79
pkg debug/elf, const R_ARM_LDRS_SB_G1 R_ARM
pkg debug/elf, const R_ARM_LDRS_SB_G2 = 80
pkg debug/elf, const R_ARM_LDRS_SB_G2 R_ARM
pkg debug/elf, const R_ARM_LDR_PC_G1 = 62
pkg debug/elf, const R_ARM_LDR_PC_G1 R_ARM
pkg debug/elf, const R_ARM_LDR_PC_G2 = 63
pkg debug/elf, const R_ARM_LDR_PC_G2 R_ARM
pkg debug/elf, const R_ARM_LDR_SBREL_11_10_NC = 35
pkg debug/elf, const R_ARM_LDR_SBREL_11_10_NC R_ARM
pkg debug/elf, const R_ARM_LDR_SB_G0 = 75
pkg debug/elf, const R_ARM_LDR_SB_G0 R_ARM
pkg debug/elf, const R_ARM_LDR_SB_G1 = 76
pkg debug/elf, const R_ARM_LDR_SB_G1 R_ARM
pkg debug/elf, const R_ARM_LDR_SB_G2 = 77
pkg debug/elf, const R_ARM_LDR_SB_G2 R_ARM
pkg debug/elf, const R_ARM_ME_TOO = 128
pkg debug/elf, const R_ARM_ME_TOO R_ARM
pkg debug/elf, const R_ARM_MOVT_ABS = 44
pkg debug/elf, const R_ARM_MOVT_ABS R_ARM
pkg debug/elf, const R_ARM_MOVT_BREL = 85
pkg debug/elf, const R_ARM_MOVT_BREL R_ARM
pkg debug/elf, const R_ARM_MOVT_PREL = 46
pkg debug/elf, const R_ARM_MOVT_PREL R_ARM
pkg debug/elf, const R_ARM_MOVW_ABS_NC = 43
pkg debug/elf, const R_ARM_MOVW_ABS_NC R_ARM
pkg debug/elf, const R_ARM_MOVW_BREL = 86
pkg debug/elf, const R_ARM_MOVW_BREL R_ARM
pkg debug/elf, const R_ARM_MOVW_BREL_NC = 84
pkg debug/elf, const R_ARM_MOVW_BREL_NC R_ARM
pkg debug/elf, const R_ARM_MOVW_PREL_NC = 45
pkg debug/elf, const R_ARM_MOVW_PREL_NC R_ARM
pkg debug/elf, const R_ARM_PLT32_ABS = 94
pkg debug/elf, const R_ARM_PLT32_ABS R_ARM
pkg debug/elf, const R_ARM_PREL31 = 42
pkg debug/elf, const R_ARM_PREL31 R_ARM
pkg debug/elf, const R_ARM_PRIVATE_0 = 112
pkg debug/elf, const R_ARM_PRIVATE_0 R_ARM
pkg debug/elf, const R_ARM_PRIVATE_1 = 113
pkg debug/elf, const R_ARM_PRIVATE_1 R_ARM
pkg debug/elf, const R_ARM_PRIVATE_10 = 122
pkg debug/elf, const R_ARM_PRIVATE_10 R_ARM
pkg debug/elf, const R_ARM_PRIVATE_11 = 123
pkg debug/elf, const R_ARM_PRIVATE_11 R_ARM
pkg debug/elf, const R_ARM_PRIVATE_12 = 124
pkg debug/elf, const R_ARM_PRIVATE_12 R_ARM
pkg debug/elf, const R_ARM_PRIVATE_13 = 125
pkg debug/elf, const R_ARM_PRIVATE_13 R_ARM
pkg debug/elf, const R_ARM_PRIVATE_14 = 126
pkg debug/elf, const R_ARM_PRIVATE_14 R_ARM
pkg debug/elf, const R_ARM_PRIVATE_15 = 127
pkg debug/elf, const R_ARM_PRIVATE_15 R_ARM
pkg debug/elf, const R_ARM_PRIVATE_2 = 114
pkg debug/elf, const R_ARM_PRIVATE_2 R_ARM
pkg debug/elf, const R_ARM_PRIVATE_3 = 115
pkg debug/elf, const R_ARM_PRIVATE_3 R_ARM
pkg debug/elf, const R_ARM_PRIVATE_4 = 116
pkg debug/elf, const R_ARM_PRIVATE_4 R_ARM
pkg debug/elf, const R_ARM_PRIVATE_5 = 117
pkg debug/elf, const R_ARM_PRIVATE_5 R_ARM
pkg debug/elf, const R_ARM_PRIVATE_6 = 118
pkg debug/elf, const R_ARM_PRIVATE_6 R_ARM
pkg debug/elf, const R_ARM_PRIVATE_7 = 119
pkg debug/elf, const R_ARM_PRIVATE_7 R_ARM
pkg debug/elf, const R_ARM_PRIVATE_8 = 120
pkg debug/elf, const R_ARM_PRIVATE_8 R_ARM
pkg debug/elf, const R_ARM_PRIVATE_9 = 121
pkg debug/elf, const R_ARM_PRIVATE_9 R_ARM
pkg debug/elf, const R_ARM_REL32_NOI = 56
pkg debug/elf, const R_ARM_REL32_NOI R_ARM
pkg debug/elf, const R_ARM_RXPC25 = 249
pkg debug/elf, const R_ARM_RXPC25 R_ARM
pkg debug/elf, const R_ARM_SBREL31 = 39
pkg debug/elf, const R_ARM_SBREL31 R_ARM
pkg debug/elf, const R_ARM_TARGET1 = 38
pkg debug/elf, const R_ARM_TARGET1 R_ARM
pkg debug/elf, const R_ARM_TARGET2 = 41
pkg debug/elf, const R_ARM_TARGET2 R_ARM
pkg debug/elf, const R_ARM_THM_ALU_ABS_G0_NC = 132
pkg debug/elf, const R_ARM_THM_ALU_ABS_G0_NC R_ARM
pkg debug/elf, const R_ARM_THM_ALU_ABS_G1_NC = 133
pkg debug/elf, const R_ARM_THM_ALU_ABS_G1_NC R_ARM
pkg debug/elf, const R_ARM_THM_ALU_ABS_G2_NC = 134
pkg debug/elf, const R_ARM_THM_ALU_ABS_G2_NC R_ARM
pkg debug/elf, const R_ARM_THM_ALU_ABS_G3 = 135
pkg debug/elf, const R_ARM_THM_ALU_ABS_G3 R_ARM
pkg debug/elf, const R_ARM_THM_ALU_PREL_11_0 = 53
pkg debug/elf, const R_ARM_THM_ALU_PREL_11_0 R_ARM
pkg debug/elf, const R_ARM_THM_GOT_BREL12 = 131
pkg debug/elf, const R_ARM_THM_GOT_BREL12 R_ARM
pkg debug/elf, const R_ARM_THM_JUMP11 = 102
pkg debug/elf, const R_ARM_THM_JUMP11 R_ARM
pkg debug/elf, const R_ARM_THM_JUMP19 = 51
pkg debug/elf, const R_ARM_THM_JUMP19 R_ARM
pkg debug/elf, const R_ARM_THM_JUMP24 = 30
pkg debug/elf, const R_ARM_THM_JUMP24 R_ARM
pkg debug/elf, const R_ARM_THM_JUMP6 = 52
pkg debug/elf, const R_ARM_THM_JUMP6 R_ARM
pkg debug/elf, const R_ARM_THM_JUMP8 = 103
pkg debug/elf, const R_ARM_THM_JUMP8 R_ARM
pkg debug/elf, const R_ARM_THM_MOVT_ABS = 48
pkg debug/elf, const R_ARM_THM_MOVT_ABS R_ARM
pkg debug/elf, const R_ARM_THM_MOVT_BREL = 88
pkg debug/elf, const R_ARM_THM_MOVT_BREL R_ARM
pkg debug/elf, const R_ARM_THM_MOVT_PREL = 50
pkg debug/elf, const R_ARM_THM_MOVT_PREL R_ARM
pkg debug/elf, const R_ARM_THM_MOVW_ABS_NC = 47
pkg debug/elf, const R_ARM_THM_MOVW_ABS_NC R_ARM
pkg debug/elf, const R_ARM_THM_MOVW_BREL = 89
pkg debug/elf, const R_ARM_THM_MOVW_BREL R_ARM
pkg debug/elf, const R_ARM_THM_MOVW_BREL_NC = 87
pkg debug/elf, const R_ARM_THM_MOVW_BREL_NC R_ARM
pkg debug/elf, const R_ARM_THM_MOVW_PREL_NC = 49
pkg debug/elf, const R_ARM_THM_MOVW_PREL_NC R_ARM
pkg debug/elf, const R_ARM_THM_PC12 = 54
pkg debug/elf, const R_ARM_THM_PC12 R_ARM
pkg debug/elf, const R_ARM_THM_TLS_CALL = 93
pkg debug/elf, const R_ARM_THM_TLS_CALL R_ARM
pkg debug/elf, const R_ARM_THM_TLS_DESCSEQ16 = 129
pkg debug/elf, const R_ARM_THM_TLS_DESCSEQ16 R_ARM
pkg debug/elf, const R_ARM_THM_TLS_DESCSEQ32 = 130
pkg debug/elf, const R_ARM_THM_TLS_DESCSEQ32 R_ARM
pkg debug/elf, const R_ARM_TLS_CALL = 91
pkg debug/elf, const R_ARM_TLS_CALL R_ARM
pkg debug/elf, const R_ARM_TLS_DESCSEQ = 92
pkg debug/elf, const R_ARM_TLS_DESCSEQ R_ARM
pkg debug/elf, const R_ARM_TLS_DTPMOD32 = 17
pkg debug/elf, const R_ARM_TLS_DTPMOD32 R_ARM
pkg debug/elf, const R_ARM_TLS_DTPOFF32 = 18
pkg debug/elf, const R_ARM_TLS_DTPOFF32 R_ARM
pkg debug/elf, const R_ARM_TLS_GD32 = 104
pkg debug/elf, const R_ARM_TLS_GD32 R_ARM
pkg debug/elf, const R_ARM_TLS_GOTDESC = 90
pkg debug/elf, const R_ARM_TLS_GOTDESC R_ARM
pkg debug/elf, const R_ARM_TLS_IE12GP = 111
pkg debug/elf, const R_ARM_TLS_IE12GP R_ARM
pkg debug/elf, const R_ARM_TLS_IE32 = 107
pkg debug/elf, const R_ARM_TLS_IE32 R_ARM
pkg debug/elf, const R_ARM_TLS_LDM32 = 105
pkg debug/elf, const R_ARM_TLS_LDM32 R_ARM
pkg debug/elf, const R_ARM_TLS_LDO12 = 109
pkg debug/elf, const R_ARM_TLS_LDO12 R_ARM
pkg debug/elf, const R_ARM_TLS_LDO32 = 106
pkg debug/elf, const R_ARM_TLS_LDO32 R_ARM
pkg debug/elf, const R_ARM_TLS_LE12 = 110
pkg debug/elf, const R_ARM_TLS_LE12 R_ARM
pkg debug/elf, const R_ARM_TLS_LE32 = 108
pkg debug/elf, const R_ARM_TLS_LE32 R_ARM
pkg debug/elf, const R_ARM_TLS_TPOFF32 = 19
pkg debug/elf, const R_ARM_TLS_TPOFF32 R_ARM
pkg debug/elf, const R_ARM_V4BX = 40
pkg debug/elf, const R_ARM_V4BX R_ARM
pkg debug/elf, const R_PPC64_ADDR16_HIGH = 110
pkg debug/elf, const R_PPC64_ADDR16_HIGH R_PPC64
pkg debug/elf, const R_PPC64_ADDR16_HIGHA = 111
pkg debug/elf, const R_PPC64_ADDR16_HIGHA R_PPC64
pkg debug/elf, const R_PPC64_ADDR64_LOCAL = 117
pkg debug/elf, const R_PPC64_ADDR64_LOCAL R_PPC64
pkg debug/elf, const R_PPC64_DTPREL16_HIGH = 114
pkg debug/elf, const R_PPC64_DTPREL16_HIGH R_PPC64
pkg debug/elf, const R_PPC64_DTPREL16_HIGHA = 115
pkg debug/elf, const R_PPC64_DTPREL16_HIGHA R_PPC64
pkg debug/elf, const R_PPC64_ENTRY = 118
pkg debug/elf, const R_PPC64_ENTRY R_PPC64
pkg debug/elf, const R_PPC64_IRELATIVE = 248
pkg debug/elf, const R_PPC64_IRELATIVE R_PPC64
pkg debug/elf, const R_PPC64_JMP_IREL = 247
pkg debug/elf, const R_PPC64_JMP_IREL R_PPC64
pkg debug/elf, const R_PPC64_PLT16_LO_DS = 60
pkg debug/elf, const R_PPC64_PLT16_LO_DS R_PPC64
pkg debug/elf, const R_PPC64_PLTGOT16 = 52
pkg debug/elf, const R_PPC64_PLTGOT16 R_PPC64
pkg debug/elf, const R_PPC64_PLTGOT16_DS = 65
pkg debug/elf, const R_PPC64_PLTGOT16_DS R_PPC64
pkg debug/elf, const R_PPC64_PLTGOT16_HA = 55
pkg debug/elf, const R_PPC64_PLTGOT16_HA R_PPC64
pkg debug/elf, const R_PPC64_PLTGOT16_HI = 54
pkg debug/elf, const R_PPC64_PLTGOT16_HI R_PPC64
pkg debug/elf, const R_PPC64_PLTGOT16_LO = 53
pkg debug/elf, const R_PPC64_PLTGOT16_LO R_PPC64
pkg debug/elf, const R_PPC64_PLTGOT_LO_DS = 66
pkg debug/elf, const R_PPC64_PLTGOT_LO_DS R_PPC64
pkg debug/elf, const R_PPC64_REL16DX_HA = 246
pkg debug/elf, const R_PPC64_REL16DX_HA R_PPC64
pkg debug/elf, const R_PPC64_REL24_NOTOC = 116
pkg debug/elf, const R_PPC64_REL24_NOTOC R_PPC64
pkg debug/elf, const R_PPC64_SECTOFF_DS = 61
pkg debug/elf, const R_PPC64_SECTOFF_DS R_PPC64
pkg debug/elf, const R_PPC64_SECTOFF_LO_DS = 61
pkg debug/elf, const R_PPC64_SECTOFF_LO_DS R_PPC64
pkg debug/elf, const R_PPC64_TOCSAVE = 109
pkg debug/elf, const R_PPC64_TOCSAVE R_PPC64
pkg debug/elf, const R_PPC64_TPREL16_HIGH = 112
pkg debug/elf, const R_PPC64_TPREL16_HIGH R_PPC64
pkg debug/elf, const R_PPC64_TPREL16_HIGHA = 113
pkg debug/elf, const R_PPC64_TPREL16_HIGHA R_PPC64
pkg debug/elf, const R_X86_64_GOT64 = 27
pkg debug/elf, const R_X86_64_GOT64 R_X86_64
pkg debug/elf, const R_X86_64_GOTOFF64 = 25
pkg debug/elf, const R_X86_64_GOTOFF64 R_X86_64
pkg debug/elf, const R_X86_64_GOTPC32 = 26
pkg debug/elf, const R_X86_64_GOTPC32 R_X86_64
pkg debug/elf, const R_X86_64_GOTPC32_TLSDESC = 34
pkg debug/elf, const R_X86_64_GOTPC32_TLSDESC R_X86_64
pkg debug/elf, const R_X86_64_GOTPC64 = 29
pkg debug/elf, const R_X86_64_GOTPC64 R_X86_64
pkg debug/elf, const R_X86_64_GOTPCREL64 = 28
pkg debug/elf, const R_X86_64_GOTPCREL64 R_X86_64
pkg debug/elf, const R_X86_64_GOTPCRELX = 41
pkg debug/elf, const R_X86_64_GOTPCRELX R_X86_64
pkg debug/elf, const R_X86_64_GOTPLT64 = 30
pkg debug/elf, const R_X86_64_GOTPLT64 R_X86_64
pkg debug/elf, const R_X86_64_IRELATIVE = 37
pkg debug/elf, const R_X86_64_IRELATIVE R_X86_64
pkg debug/elf, const R_X86_64_PC32_BND = 39
pkg debug/elf, const R_X86_64_PC32_BND R_X86_64
pkg debug/elf, const R_X86_64_PC64 = 24
pkg debug/elf, const R_X86_64_PC64 R_X86_64
pkg debug/elf, const R_X86_64_PLT32_BND = 40
pkg debug/elf, const R_X86_64_PLT32_BND R_X86_64
pkg debug/elf, const R_X86_64_PLTOFF64 = 31
pkg debug/elf, const R_X86_64_PLTOFF64 R_X86_64
pkg debug/elf, const R_X86_64_RELATIVE64 = 38
pkg debug/elf, const R_X86_64_RELATIVE64 R_X86_64
pkg debug/elf, const R_X86_64_REX_GOTPCRELX = 42
pkg debug/elf, const R_X86_64_REX_GOTPCRELX R_X86_64
pkg debug/elf, const R_X86_64_SIZE32 = 32
pkg debug/elf, const R_X86_64_SIZE32 R_X86_64
pkg debug/elf, const R_X86_64_SIZE64 = 33
pkg debug/elf, const R_X86_64_SIZE64 R_X86_64
pkg debug/elf, const R_X86_64_TLSDESC = 36
pkg debug/elf, const R_X86_64_TLSDESC R_X86_64
pkg debug/elf, const R_X86_64_TLSDESC_CALL = 35
pkg debug/elf, const R_X86_64_TLSDESC_CALL R_X86_64
pkg debug/macho, const ARM64_RELOC_ADDEND = 10
pkg debug/macho, const ARM64_RELOC_ADDEND RelocTypeARM64
pkg debug/macho, const ARM64_RELOC_BRANCH26 = 2
pkg debug/macho, const ARM64_RELOC_BRANCH26 RelocTypeARM64
pkg debug/macho, const ARM64_RELOC_GOT_LOAD_PAGE21 = 5
pkg debug/macho, const ARM64_RELOC_GOT_LOAD_PAGE21 RelocTypeARM64
pkg debug/macho, const ARM64_RELOC_GOT_LOAD_PAGEOFF12 = 6
pkg debug/macho, const ARM64_RELOC_GOT_LOAD_PAGEOFF12 RelocTypeARM64
pkg debug/macho, const ARM64_RELOC_PAGE21 = 3
pkg debug/macho, const ARM64_RELOC_PAGE21 RelocTypeARM64
pkg debug/macho, const ARM64_RELOC_PAGEOFF12 = 4
pkg debug/macho, const ARM64_RELOC_PAGEOFF12 RelocTypeARM64
pkg debug/macho, const ARM64_RELOC_POINTER_TO_GOT = 7
pkg debug/macho, const ARM64_RELOC_POINTER_TO_GOT RelocTypeARM64
pkg debug/macho, const ARM64_RELOC_SUBTRACTOR = 1
pkg debug/macho, const ARM64_RELOC_SUBTRACTOR RelocTypeARM64
pkg debug/macho, const ARM64_RELOC_TLVP_LOAD_PAGE21 = 8
pkg debug/macho, const ARM64_RELOC_TLVP_LOAD_PAGE21 RelocTypeARM64
pkg debug/macho, const ARM64_RELOC_TLVP_LOAD_PAGEOFF12 = 9
pkg debug/macho, const ARM64_RELOC_TLVP_LOAD_PAGEOFF12 RelocTypeARM64
pkg debug/macho, const ARM64_RELOC_UNSIGNED = 0
pkg debug/macho, const ARM64_RELOC_UNSIGNED RelocTypeARM64
pkg debug/macho, const ARM_RELOC_BR24 = 5
pkg debug/macho, const ARM_RELOC_BR24 RelocTypeARM
pkg debug/macho, const ARM_RELOC_HALF = 8
pkg debug/macho, const ARM_RELOC_HALF RelocTypeARM
pkg debug/macho, const ARM_RELOC_HALF_SECTDIFF = 9
pkg debug/macho, const ARM_RELOC_HALF_SECTDIFF RelocTypeARM
pkg debug/macho, const ARM_RELOC_LOCAL_SECTDIFF = 3
pkg debug/macho, const ARM_RELOC_LOCAL_SECTDIFF RelocTypeARM
pkg debug/macho, const ARM_RELOC_PAIR = 1
pkg debug/macho, const ARM_RELOC_PAIR RelocTypeARM
pkg debug/macho, const ARM_RELOC_PB_LA_PTR = 4
pkg debug/macho, const ARM_RELOC_PB_LA_PTR RelocTypeARM
pkg debug/macho, const ARM_RELOC_SECTDIFF = 2
pkg debug/macho, const ARM_RELOC_SECTDIFF RelocTypeARM
pkg debug/macho, const ARM_RELOC_VANILLA = 0
pkg debug/macho, const ARM_RELOC_VANILLA RelocTypeARM
pkg debug/macho, const ARM_THUMB_32BIT_BRANCH = 7
pkg debug/macho, const ARM_THUMB_32BIT_BRANCH RelocTypeARM
pkg debug/macho, const ARM_THUMB_RELOC_BR22 = 6
pkg debug/macho, const ARM_THUMB_RELOC_BR22 RelocTypeARM
pkg debug/macho, const FlagAllModsBound = 4096
pkg debug/macho, const FlagAllModsBound uint32
pkg debug/macho, const FlagAllowStackExecution = 131072
pkg debug/macho, const FlagAllowStackExecution uint32
pkg debug/macho, const FlagAppExtensionSafe = 33554432
pkg debug/macho, const FlagAppExtensionSafe uint32
pkg debug/macho, const FlagBindAtLoad = 8
pkg debug/macho, const FlagBindAtLoad uint32
pkg debug/macho, const FlagBindsToWeak = 65536
pkg debug/macho, const FlagBindsToWeak uint32
pkg debug/macho, const FlagCanonical = 16384
pkg debug/macho, const FlagCanonical uint32
pkg debug/macho, const FlagDeadStrippableDylib = 4194304
pkg debug/macho, const FlagDeadStrippableDylib uint32
pkg debug/macho, const FlagDyldLink = 4
pkg debug/macho, const FlagDyldLink uint32
pkg debug/macho, const FlagForceFlat = 256
pkg debug/macho, const FlagForceFlat uint32
pkg debug/macho, const FlagHasTLVDescriptors = 8388608
pkg debug/macho, const FlagHasTLVDescriptors uint32
pkg debug/macho, const FlagIncrLink = 2
pkg debug/macho, const FlagIncrLink uint32
pkg debug/macho, const FlagLazyInit = 64
pkg debug/macho, const FlagLazyInit uint32
pkg debug/macho, const FlagNoFixPrebinding = 1024
pkg debug/macho, const FlagNoFixPrebinding uint32
pkg debug/macho, const FlagNoHeapExecution = 16777216
pkg debug/macho, const FlagNoHeapExecution uint32
pkg debug/macho, const FlagNoMultiDefs = 512
pkg debug/macho, const FlagNoMultiDefs uint32
pkg debug/macho, const FlagNoReexportedDylibs = 1048576
pkg debug/macho, const FlagNoReexportedDylibs uint32
pkg debug/macho, const FlagNoUndefs = 1
pkg debug/macho, const FlagNoUndefs uint32
pkg debug/macho, const FlagPIE = 2097152
pkg debug/macho, const FlagPIE uint32
pkg debug/macho, const FlagPrebindable = 2048
pkg debug/macho, const FlagPrebindable uint32
pkg debug/macho, const FlagPrebound = 16
pkg debug/macho, const FlagPrebound uint32
pkg debug/macho, const FlagRootSafe = 262144
pkg debug/macho, const FlagRootSafe uint32
pkg debug/macho, const FlagSetuidSafe = 524288
pkg debug/macho, const FlagSetuidSafe uint32
pkg debug/macho, const FlagSplitSegs = 32
pkg debug/macho, const FlagSplitSegs uint32
pkg debug/macho, const FlagSubsectionsViaSymbols = 8192
pkg debug/macho, const FlagSubsectionsViaSymbols uint32
pkg debug/macho, const FlagTwoLevel = 128
pkg debug/macho, const FlagTwoLevel uint32
pkg debug/macho, const FlagWeakDefines = 32768
pkg debug/macho, const FlagWeakDefines uint32
pkg debug/macho, const GENERIC_RELOC_LOCAL_SECTDIFF = 4
pkg debug/macho, const GENERIC_RELOC_LOCAL_SECTDIFF RelocTypeGeneric
pkg debug/macho, const GENERIC_RELOC_PAIR = 1
pkg debug/macho, const GENERIC_RELOC_PAIR RelocTypeGeneric
pkg debug/macho, const GENERIC_RELOC_PB_LA_PTR = 3
pkg debug/macho, const GENERIC_RELOC_PB_LA_PTR RelocTypeGeneric
pkg debug/macho, const GENERIC_RELOC_SECTDIFF = 2
pkg debug/macho, const GENERIC_RELOC_SECTDIFF RelocTypeGeneric
pkg debug/macho, const GENERIC_RELOC_TLV = 5
pkg debug/macho, const GENERIC_RELOC_TLV RelocTypeGeneric
pkg debug/macho, const GENERIC_RELOC_VANILLA = 0
pkg debug/macho, const GENERIC_RELOC_VANILLA RelocTypeGeneric
pkg debug/macho, const LoadCmdRpath = 2147483676
pkg debug/macho, const LoadCmdRpath LoadCmd
pkg debug/macho, const X86_64_RELOC_BRANCH = 2
pkg debug/macho, const X86_64_RELOC_BRANCH RelocTypeX86_64
pkg debug/macho, const X86_64_RELOC_GOT = 4
pkg debug/macho, const X86_64_RELOC_GOT RelocTypeX86_64
pkg debug/macho, const X86_64_RELOC_GOT_LOAD = 3
pkg debug/macho, const X86_64_RELOC_GOT_LOAD RelocTypeX86_64
pkg debug/macho, const X86_64_RELOC_SIGNED = 1
pkg debug/macho, const X86_64_RELOC_SIGNED RelocTypeX86_64
pkg debug/macho, const X86_64_RELOC_SIGNED_1 = 6
pkg debug/macho, const X86_64_RELOC_SIGNED_1 RelocTypeX86_64
pkg debug/macho, const X86_64_RELOC_SIGNED_2 = 7
pkg debug/macho, const X86_64_RELOC_SIGNED_2 RelocTypeX86_64
pkg debug/macho, const X86_64_RELOC_SIGNED_4 = 8
pkg debug/macho, const X86_64_RELOC_SIGNED_4 RelocTypeX86_64
pkg debug/macho, const X86_64_RELOC_SUBTRACTOR = 5
pkg debug/macho, const X86_64_RELOC_SUBTRACTOR RelocTypeX86_64
pkg debug/macho, const X86_64_RELOC_TLV = 9
pkg debug/macho, const X86_64_RELOC_TLV RelocTypeX86_64
pkg debug/macho, const X86_64_RELOC_UNSIGNED = 0
pkg debug/macho, const X86_64_RELOC_UNSIGNED RelocTypeX86_64
pkg debug/macho, method (RelocTypeARM) GoString() string
pkg debug/macho, method (RelocTypeARM) String() string
pkg debug/macho, method (RelocTypeARM64) GoString() string
pkg debug/macho, method (RelocTypeARM64) String() string
pkg debug/macho, method (RelocTypeGeneric) GoString() string
pkg debug/macho, method (RelocTypeGeneric) String() string
pkg debug/macho, method (RelocTypeX86_64) GoString() string
pkg debug/macho, method (RelocTypeX86_64) String() string
pkg debug/macho, method (Rpath) Raw() []uint8
pkg debug/macho, method (Type) GoString() string
pkg debug/macho, method (Type) String() string
pkg debug/macho, type Reloc struct
pkg debug/macho, type Reloc struct, Addr uint32
pkg debug/macho, type Reloc struct, Extern bool
pkg debug/macho, type Reloc struct, Len uint8
pkg debug/macho, type Reloc struct, Pcrel bool
pkg debug/macho, type Reloc struct, Scattered bool
pkg debug/macho, type Reloc struct, Type uint8
pkg debug/macho, type Reloc struct, Value uint32
pkg debug/macho, type RelocTypeARM int
pkg debug/macho, type RelocTypeARM64 int
pkg debug/macho, type RelocTypeGeneric int
pkg debug/macho, type RelocTypeX86_64 int
pkg debug/macho, type Rpath struct
pkg debug/macho, type Rpath struct, Path string
pkg debug/macho, type Rpath struct, embedded LoadBytes
pkg debug/macho, type RpathCmd struct
pkg debug/macho, type RpathCmd struct, Cmd LoadCmd
pkg debug/macho, type RpathCmd struct, Len uint32
pkg debug/macho, type RpathCmd struct, Path uint32
pkg debug/macho, type Section struct, Relocs []Reloc
pkg encoding/asn1, const TagNumericString = 18
pkg encoding/asn1, const TagNumericString ideal-int
pkg encoding/asn1, func MarshalWithParams(interface{}, string) ([]uint8, error)
pkg encoding/csv, type ParseError struct, StartLine int
pkg encoding/hex, func NewDecoder(io.Reader) io.Reader
pkg encoding/hex, func NewEncoder(io.Writer) io.Writer
pkg encoding/json, method (*Decoder) DisallowUnknownFields()
pkg encoding/xml, func NewTokenDecoder(TokenReader) *Decoder
pkg encoding/xml, type TokenReader interface { Token }
pkg encoding/xml, type TokenReader interface, Token() (Token, error)
pkg flag, method (*FlagSet) ErrorHandling() ErrorHandling
pkg flag, method (*FlagSet) Name() string
pkg flag, method (*FlagSet) Output() io.Writer
pkg html/template, type Srcset string
pkg math, func Erfcinv(float64) float64
pkg math, func Erfinv(float64) float64
pkg math, func Round(float64) float64
pkg math, func RoundToEven(float64) float64
pkg math/big, const MaxBase = 62
pkg math/big, method (*Float) Sqrt(*Float) *Float
pkg math/big, method (*Int) CmpAbs(*Int) int
pkg math/rand, func Shuffle(int, func(int, int))
pkg math/rand, method (*Rand) Shuffle(int, func(int, int))
pkg net, method (*TCPListener) SyscallConn() (syscall.RawConn, error)
pkg net, method (*UnixListener) SyscallConn() (syscall.RawConn, error)
pkg net/smtp, method (*Client) Noop() error
pkg os, func IsTimeout(error) bool
pkg os, method (*File) SetDeadline(time.Time) error
pkg os, method (*File) SetReadDeadline(time.Time) error
pkg os, method (*File) SetWriteDeadline(time.Time) error
pkg os, method (*PathError) Timeout() bool
pkg os, method (*SyscallError) Timeout() bool
pkg os, var ErrNoDeadline error
pkg strings, method (*Builder) Grow(int)
pkg strings, method (*Builder) Len() int
pkg strings, method (*Builder) Reset()
pkg strings, method (*Builder) String() string
pkg strings, method (*Builder) Write([]uint8) (int, error)
pkg strings, method (*Builder) WriteByte(uint8) error
pkg strings, method (*Builder) WriteRune(int32) (int, error)
pkg strings, method (*Builder) WriteString(string) (int, error)
pkg strings, type Builder struct
pkg syscall (freebsd-386), const SYS_UTIMENSAT = 547
pkg syscall (freebsd-386), const SYS_UTIMENSAT ideal-int
pkg syscall (freebsd-386-cgo), const SYS_UTIMENSAT = 547
pkg syscall (freebsd-386-cgo), const SYS_UTIMENSAT ideal-int
pkg syscall (freebsd-amd64), const SYS_UTIMENSAT = 547
pkg syscall (freebsd-amd64), const SYS_UTIMENSAT ideal-int
pkg syscall (freebsd-amd64-cgo), const SYS_UTIMENSAT = 547
pkg syscall (freebsd-amd64-cgo), const SYS_UTIMENSAT ideal-int
pkg syscall (freebsd-arm), const SYS_UTIMENSAT = 547
pkg syscall (freebsd-arm), const SYS_UTIMENSAT ideal-int
pkg syscall (freebsd-arm-cgo), const SYS_UTIMENSAT = 547
pkg syscall (freebsd-arm-cgo), const SYS_UTIMENSAT ideal-int
pkg syscall (windows-386), func CreateProcessAsUser(Token, *uint16, *uint16, *SecurityAttributes, *SecurityAttributes, bool, uint32, *uint16, *uint16, *StartupInfo, *ProcessInformation) error
pkg syscall (windows-386), type SysProcAttr struct, Token Token
pkg syscall (windows-amd64), func CreateProcessAsUser(Token, *uint16, *uint16, *SecurityAttributes, *SecurityAttributes, bool, uint32, *uint16, *uint16, *StartupInfo, *ProcessInformation) error
pkg syscall (windows-amd64), type SysProcAttr struct, Token Token
pkg time, func LoadLocationFromTZData(string, []uint8) (*Location, error)
pkg unicode, const Version = "10.0.0"
pkg unicode, var Masaram_Gondi *RangeTable
pkg unicode, var Nushu *RangeTable
pkg unicode, var Regional_Indicator *RangeTable
pkg unicode, var Soyombo *RangeTable
pkg unicode, var Zanabazar_Square *RangeTable

View File

@@ -1,559 +0,0 @@
pkg crypto/cipher, func NewGCMWithTagSize(Block, int) (AEAD, error)
pkg crypto/rsa, method (*PrivateKey) Size() int
pkg crypto/rsa, method (*PublicKey) Size() int
pkg crypto/tls, method (*ConnectionState) ExportKeyingMaterial(string, []uint8, int) ([]uint8, error)
pkg database/sql, method (IsolationLevel) String() string
pkg database/sql, type DBStats struct, Idle int
pkg database/sql, type DBStats struct, InUse int
pkg database/sql, type DBStats struct, MaxIdleClosed int64
pkg database/sql, type DBStats struct, MaxLifetimeClosed int64
pkg database/sql, type DBStats struct, MaxOpenConnections int
pkg database/sql, type DBStats struct, WaitCount int64
pkg database/sql, type DBStats struct, WaitDuration time.Duration
pkg debug/elf, const ELFOSABI_AROS = 15
pkg debug/elf, const ELFOSABI_AROS OSABI
pkg debug/elf, const ELFOSABI_CLOUDABI = 17
pkg debug/elf, const ELFOSABI_CLOUDABI OSABI
pkg debug/elf, const ELFOSABI_FENIXOS = 16
pkg debug/elf, const ELFOSABI_FENIXOS OSABI
pkg debug/elf, const EM_56800EX = 200
pkg debug/elf, const EM_56800EX Machine
pkg debug/elf, const EM_68HC05 = 72
pkg debug/elf, const EM_68HC05 Machine
pkg debug/elf, const EM_68HC08 = 71
pkg debug/elf, const EM_68HC08 Machine
pkg debug/elf, const EM_68HC11 = 70
pkg debug/elf, const EM_68HC11 Machine
pkg debug/elf, const EM_68HC16 = 69
pkg debug/elf, const EM_68HC16 Machine
pkg debug/elf, const EM_78KOR = 199
pkg debug/elf, const EM_78KOR Machine
pkg debug/elf, const EM_8051 = 165
pkg debug/elf, const EM_8051 Machine
pkg debug/elf, const EM_ALTERA_NIOS2 = 113
pkg debug/elf, const EM_ALTERA_NIOS2 Machine
pkg debug/elf, const EM_AMDGPU = 224
pkg debug/elf, const EM_AMDGPU Machine
pkg debug/elf, const EM_ARCA = 109
pkg debug/elf, const EM_ARCA Machine
pkg debug/elf, const EM_ARC_COMPACT = 93
pkg debug/elf, const EM_ARC_COMPACT Machine
pkg debug/elf, const EM_ARC_COMPACT2 = 195
pkg debug/elf, const EM_ARC_COMPACT2 Machine
pkg debug/elf, const EM_AVR = 83
pkg debug/elf, const EM_AVR Machine
pkg debug/elf, const EM_AVR32 = 185
pkg debug/elf, const EM_AVR32 Machine
pkg debug/elf, const EM_BA1 = 201
pkg debug/elf, const EM_BA1 Machine
pkg debug/elf, const EM_BA2 = 202
pkg debug/elf, const EM_BA2 Machine
pkg debug/elf, const EM_BLACKFIN = 106
pkg debug/elf, const EM_BLACKFIN Machine
pkg debug/elf, const EM_BPF = 247
pkg debug/elf, const EM_BPF Machine
pkg debug/elf, const EM_C166 = 116
pkg debug/elf, const EM_C166 Machine
pkg debug/elf, const EM_CDP = 215
pkg debug/elf, const EM_CDP Machine
pkg debug/elf, const EM_CE = 119
pkg debug/elf, const EM_CE Machine
pkg debug/elf, const EM_CLOUDSHIELD = 192
pkg debug/elf, const EM_CLOUDSHIELD Machine
pkg debug/elf, const EM_COGE = 216
pkg debug/elf, const EM_COGE Machine
pkg debug/elf, const EM_COOL = 217
pkg debug/elf, const EM_COOL Machine
pkg debug/elf, const EM_COREA_1ST = 193
pkg debug/elf, const EM_COREA_1ST Machine
pkg debug/elf, const EM_COREA_2ND = 194
pkg debug/elf, const EM_COREA_2ND Machine
pkg debug/elf, const EM_CR = 103
pkg debug/elf, const EM_CR Machine
pkg debug/elf, const EM_CR16 = 177
pkg debug/elf, const EM_CR16 Machine
pkg debug/elf, const EM_CRAYNV2 = 172
pkg debug/elf, const EM_CRAYNV2 Machine
pkg debug/elf, const EM_CRIS = 76
pkg debug/elf, const EM_CRIS Machine
pkg debug/elf, const EM_CRX = 114
pkg debug/elf, const EM_CRX Machine
pkg debug/elf, const EM_CSR_KALIMBA = 219
pkg debug/elf, const EM_CSR_KALIMBA Machine
pkg debug/elf, const EM_CUDA = 190
pkg debug/elf, const EM_CUDA Machine
pkg debug/elf, const EM_CYPRESS_M8C = 161
pkg debug/elf, const EM_CYPRESS_M8C Machine
pkg debug/elf, const EM_D10V = 85
pkg debug/elf, const EM_D10V Machine
pkg debug/elf, const EM_D30V = 86
pkg debug/elf, const EM_D30V Machine
pkg debug/elf, const EM_DSP24 = 136
pkg debug/elf, const EM_DSP24 Machine
pkg debug/elf, const EM_DSPIC30F = 118
pkg debug/elf, const EM_DSPIC30F Machine
pkg debug/elf, const EM_DXP = 112
pkg debug/elf, const EM_DXP Machine
pkg debug/elf, const EM_ECOG1 = 168
pkg debug/elf, const EM_ECOG1 Machine
pkg debug/elf, const EM_ECOG16 = 176
pkg debug/elf, const EM_ECOG16 Machine
pkg debug/elf, const EM_ECOG1X = 168
pkg debug/elf, const EM_ECOG1X Machine
pkg debug/elf, const EM_ECOG2 = 134
pkg debug/elf, const EM_ECOG2 Machine
pkg debug/elf, const EM_ETPU = 178
pkg debug/elf, const EM_ETPU Machine
pkg debug/elf, const EM_EXCESS = 111
pkg debug/elf, const EM_EXCESS Machine
pkg debug/elf, const EM_F2MC16 = 104
pkg debug/elf, const EM_F2MC16 Machine
pkg debug/elf, const EM_FIREPATH = 78
pkg debug/elf, const EM_FIREPATH Machine
pkg debug/elf, const EM_FR30 = 84
pkg debug/elf, const EM_FR30 Machine
pkg debug/elf, const EM_FT32 = 222
pkg debug/elf, const EM_FT32 Machine
pkg debug/elf, const EM_FX66 = 66
pkg debug/elf, const EM_FX66 Machine
pkg debug/elf, const EM_HUANY = 81
pkg debug/elf, const EM_HUANY Machine
pkg debug/elf, const EM_INTEL205 = 205
pkg debug/elf, const EM_INTEL205 Machine
pkg debug/elf, const EM_INTEL206 = 206
pkg debug/elf, const EM_INTEL206 Machine
pkg debug/elf, const EM_INTEL207 = 207
pkg debug/elf, const EM_INTEL207 Machine
pkg debug/elf, const EM_INTEL208 = 208
pkg debug/elf, const EM_INTEL208 Machine
pkg debug/elf, const EM_INTEL209 = 209
pkg debug/elf, const EM_INTEL209 Machine
pkg debug/elf, const EM_IP2K = 101
pkg debug/elf, const EM_IP2K Machine
pkg debug/elf, const EM_JAVELIN = 77
pkg debug/elf, const EM_JAVELIN Machine
pkg debug/elf, const EM_K10M = 181
pkg debug/elf, const EM_K10M Machine
pkg debug/elf, const EM_KM32 = 210
pkg debug/elf, const EM_KM32 Machine
pkg debug/elf, const EM_KMX16 = 212
pkg debug/elf, const EM_KMX16 Machine
pkg debug/elf, const EM_KMX32 = 211
pkg debug/elf, const EM_KMX32 Machine
pkg debug/elf, const EM_KMX8 = 213
pkg debug/elf, const EM_KMX8 Machine
pkg debug/elf, const EM_KVARC = 214
pkg debug/elf, const EM_KVARC Machine
pkg debug/elf, const EM_L10M = 180
pkg debug/elf, const EM_L10M Machine
pkg debug/elf, const EM_LANAI = 244
pkg debug/elf, const EM_LANAI Machine
pkg debug/elf, const EM_LATTICEMICO32 = 138
pkg debug/elf, const EM_LATTICEMICO32 Machine
pkg debug/elf, const EM_M16C = 117
pkg debug/elf, const EM_M16C Machine
pkg debug/elf, const EM_M32C = 120
pkg debug/elf, const EM_M32C Machine
pkg debug/elf, const EM_M32R = 88
pkg debug/elf, const EM_M32R Machine
pkg debug/elf, const EM_MANIK = 171
pkg debug/elf, const EM_MANIK Machine
pkg debug/elf, const EM_MAX = 102
pkg debug/elf, const EM_MAX Machine
pkg debug/elf, const EM_MAXQ30 = 169
pkg debug/elf, const EM_MAXQ30 Machine
pkg debug/elf, const EM_MCHP_PIC = 204
pkg debug/elf, const EM_MCHP_PIC Machine
pkg debug/elf, const EM_MCST_ELBRUS = 175
pkg debug/elf, const EM_MCST_ELBRUS Machine
pkg debug/elf, const EM_METAG = 174
pkg debug/elf, const EM_METAG Machine
pkg debug/elf, const EM_MICROBLAZE = 189
pkg debug/elf, const EM_MICROBLAZE Machine
pkg debug/elf, const EM_MMDSP_PLUS = 160
pkg debug/elf, const EM_MMDSP_PLUS Machine
pkg debug/elf, const EM_MMIX = 80
pkg debug/elf, const EM_MMIX Machine
pkg debug/elf, const EM_MN10200 = 90
pkg debug/elf, const EM_MN10200 Machine
pkg debug/elf, const EM_MN10300 = 89
pkg debug/elf, const EM_MN10300 Machine
pkg debug/elf, const EM_MOXIE = 223
pkg debug/elf, const EM_MOXIE Machine
pkg debug/elf, const EM_MSP430 = 105
pkg debug/elf, const EM_MSP430 Machine
pkg debug/elf, const EM_NDS32 = 167
pkg debug/elf, const EM_NDS32 Machine
pkg debug/elf, const EM_NORC = 218
pkg debug/elf, const EM_NORC Machine
pkg debug/elf, const EM_NS32K = 97
pkg debug/elf, const EM_NS32K Machine
pkg debug/elf, const EM_OPEN8 = 196
pkg debug/elf, const EM_OPEN8 Machine
pkg debug/elf, const EM_OPENRISC = 92
pkg debug/elf, const EM_OPENRISC Machine
pkg debug/elf, const EM_PDP10 = 64
pkg debug/elf, const EM_PDP10 Machine
pkg debug/elf, const EM_PDP11 = 65
pkg debug/elf, const EM_PDP11 Machine
pkg debug/elf, const EM_PDSP = 63
pkg debug/elf, const EM_PDSP Machine
pkg debug/elf, const EM_PJ = 91
pkg debug/elf, const EM_PJ Machine
pkg debug/elf, const EM_PRISM = 82
pkg debug/elf, const EM_PRISM Machine
pkg debug/elf, const EM_QDSP6 = 164
pkg debug/elf, const EM_QDSP6 Machine
pkg debug/elf, const EM_R32C = 162
pkg debug/elf, const EM_R32C Machine
pkg debug/elf, const EM_RISCV = 243
pkg debug/elf, const EM_RISCV Machine
pkg debug/elf, const EM_RL78 = 197
pkg debug/elf, const EM_RL78 Machine
pkg debug/elf, const EM_RS08 = 132
pkg debug/elf, const EM_RS08 Machine
pkg debug/elf, const EM_RX = 173
pkg debug/elf, const EM_RX Machine
pkg debug/elf, const EM_SCORE7 = 135
pkg debug/elf, const EM_SCORE7 Machine
pkg debug/elf, const EM_SEP = 108
pkg debug/elf, const EM_SEP Machine
pkg debug/elf, const EM_SE_C17 = 139
pkg debug/elf, const EM_SE_C17 Machine
pkg debug/elf, const EM_SE_C33 = 107
pkg debug/elf, const EM_SE_C33 Machine
pkg debug/elf, const EM_SHARC = 133
pkg debug/elf, const EM_SHARC Machine
pkg debug/elf, const EM_SLE9X = 179
pkg debug/elf, const EM_SLE9X Machine
pkg debug/elf, const EM_SNP1K = 99
pkg debug/elf, const EM_SNP1K Machine
pkg debug/elf, const EM_ST19 = 74
pkg debug/elf, const EM_ST19 Machine
pkg debug/elf, const EM_ST200 = 100
pkg debug/elf, const EM_ST200 Machine
pkg debug/elf, const EM_ST7 = 68
pkg debug/elf, const EM_ST7 Machine
pkg debug/elf, const EM_ST9PLUS = 67
pkg debug/elf, const EM_ST9PLUS Machine
pkg debug/elf, const EM_STM8 = 186
pkg debug/elf, const EM_STM8 Machine
pkg debug/elf, const EM_STXP7X = 166
pkg debug/elf, const EM_STXP7X Machine
pkg debug/elf, const EM_SVX = 73
pkg debug/elf, const EM_SVX Machine
pkg debug/elf, const EM_TILE64 = 187
pkg debug/elf, const EM_TILE64 Machine
pkg debug/elf, const EM_TILEGX = 191
pkg debug/elf, const EM_TILEGX Machine
pkg debug/elf, const EM_TILEPRO = 188
pkg debug/elf, const EM_TILEPRO Machine
pkg debug/elf, const EM_TI_ARP32 = 143
pkg debug/elf, const EM_TI_ARP32 Machine
pkg debug/elf, const EM_TI_C2000 = 141
pkg debug/elf, const EM_TI_C2000 Machine
pkg debug/elf, const EM_TI_C5500 = 142
pkg debug/elf, const EM_TI_C5500 Machine
pkg debug/elf, const EM_TI_C6000 = 140
pkg debug/elf, const EM_TI_C6000 Machine
pkg debug/elf, const EM_TI_PRU = 144
pkg debug/elf, const EM_TI_PRU Machine
pkg debug/elf, const EM_TMM_GPP = 96
pkg debug/elf, const EM_TMM_GPP Machine
pkg debug/elf, const EM_TPC = 98
pkg debug/elf, const EM_TPC Machine
pkg debug/elf, const EM_TRIMEDIA = 163
pkg debug/elf, const EM_TRIMEDIA Machine
pkg debug/elf, const EM_TSK3000 = 131
pkg debug/elf, const EM_TSK3000 Machine
pkg debug/elf, const EM_UNICORE = 110
pkg debug/elf, const EM_UNICORE Machine
pkg debug/elf, const EM_V850 = 87
pkg debug/elf, const EM_V850 Machine
pkg debug/elf, const EM_VAX = 75
pkg debug/elf, const EM_VAX Machine
pkg debug/elf, const EM_VIDEOCORE = 95
pkg debug/elf, const EM_VIDEOCORE Machine
pkg debug/elf, const EM_VIDEOCORE3 = 137
pkg debug/elf, const EM_VIDEOCORE3 Machine
pkg debug/elf, const EM_VIDEOCORE5 = 198
pkg debug/elf, const EM_VIDEOCORE5 Machine
pkg debug/elf, const EM_VISIUM = 221
pkg debug/elf, const EM_VISIUM Machine
pkg debug/elf, const EM_XCORE = 203
pkg debug/elf, const EM_XCORE Machine
pkg debug/elf, const EM_XGATE = 115
pkg debug/elf, const EM_XGATE Machine
pkg debug/elf, const EM_XIMO16 = 170
pkg debug/elf, const EM_XIMO16 Machine
pkg debug/elf, const EM_XTENSA = 94
pkg debug/elf, const EM_XTENSA Machine
pkg debug/elf, const EM_Z80 = 220
pkg debug/elf, const EM_Z80 Machine
pkg debug/elf, const EM_ZSP = 79
pkg debug/elf, const EM_ZSP Machine
pkg debug/elf, const R_RISCV_32 = 1
pkg debug/elf, const R_RISCV_32 R_RISCV
pkg debug/elf, const R_RISCV_64 = 2
pkg debug/elf, const R_RISCV_64 R_RISCV
pkg debug/elf, const R_RISCV_ADD16 = 34
pkg debug/elf, const R_RISCV_ADD16 R_RISCV
pkg debug/elf, const R_RISCV_ADD32 = 35
pkg debug/elf, const R_RISCV_ADD32 R_RISCV
pkg debug/elf, const R_RISCV_ADD64 = 36
pkg debug/elf, const R_RISCV_ADD64 R_RISCV
pkg debug/elf, const R_RISCV_ADD8 = 33
pkg debug/elf, const R_RISCV_ADD8 R_RISCV
pkg debug/elf, const R_RISCV_ALIGN = 43
pkg debug/elf, const R_RISCV_ALIGN R_RISCV
pkg debug/elf, const R_RISCV_BRANCH = 16
pkg debug/elf, const R_RISCV_BRANCH R_RISCV
pkg debug/elf, const R_RISCV_CALL = 18
pkg debug/elf, const R_RISCV_CALL R_RISCV
pkg debug/elf, const R_RISCV_CALL_PLT = 19
pkg debug/elf, const R_RISCV_CALL_PLT R_RISCV
pkg debug/elf, const R_RISCV_COPY = 4
pkg debug/elf, const R_RISCV_COPY R_RISCV
pkg debug/elf, const R_RISCV_GNU_VTENTRY = 42
pkg debug/elf, const R_RISCV_GNU_VTENTRY R_RISCV
pkg debug/elf, const R_RISCV_GNU_VTINHERIT = 41
pkg debug/elf, const R_RISCV_GNU_VTINHERIT R_RISCV
pkg debug/elf, const R_RISCV_GOT_HI20 = 20
pkg debug/elf, const R_RISCV_GOT_HI20 R_RISCV
pkg debug/elf, const R_RISCV_GPREL_I = 47
pkg debug/elf, const R_RISCV_GPREL_I R_RISCV
pkg debug/elf, const R_RISCV_GPREL_S = 48
pkg debug/elf, const R_RISCV_GPREL_S R_RISCV
pkg debug/elf, const R_RISCV_HI20 = 26
pkg debug/elf, const R_RISCV_HI20 R_RISCV
pkg debug/elf, const R_RISCV_JAL = 17
pkg debug/elf, const R_RISCV_JAL R_RISCV
pkg debug/elf, const R_RISCV_JUMP_SLOT = 5
pkg debug/elf, const R_RISCV_JUMP_SLOT R_RISCV
pkg debug/elf, const R_RISCV_LO12_I = 27
pkg debug/elf, const R_RISCV_LO12_I R_RISCV
pkg debug/elf, const R_RISCV_LO12_S = 28
pkg debug/elf, const R_RISCV_LO12_S R_RISCV
pkg debug/elf, const R_RISCV_NONE = 0
pkg debug/elf, const R_RISCV_NONE R_RISCV
pkg debug/elf, const R_RISCV_PCREL_HI20 = 23
pkg debug/elf, const R_RISCV_PCREL_HI20 R_RISCV
pkg debug/elf, const R_RISCV_PCREL_LO12_I = 24
pkg debug/elf, const R_RISCV_PCREL_LO12_I R_RISCV
pkg debug/elf, const R_RISCV_PCREL_LO12_S = 25
pkg debug/elf, const R_RISCV_PCREL_LO12_S R_RISCV
pkg debug/elf, const R_RISCV_RELATIVE = 3
pkg debug/elf, const R_RISCV_RELATIVE R_RISCV
pkg debug/elf, const R_RISCV_RELAX = 51
pkg debug/elf, const R_RISCV_RELAX R_RISCV
pkg debug/elf, const R_RISCV_RVC_BRANCH = 44
pkg debug/elf, const R_RISCV_RVC_BRANCH R_RISCV
pkg debug/elf, const R_RISCV_RVC_JUMP = 45
pkg debug/elf, const R_RISCV_RVC_JUMP R_RISCV
pkg debug/elf, const R_RISCV_RVC_LUI = 46
pkg debug/elf, const R_RISCV_RVC_LUI R_RISCV
pkg debug/elf, const R_RISCV_SET16 = 55
pkg debug/elf, const R_RISCV_SET16 R_RISCV
pkg debug/elf, const R_RISCV_SET32 = 56
pkg debug/elf, const R_RISCV_SET32 R_RISCV
pkg debug/elf, const R_RISCV_SET6 = 53
pkg debug/elf, const R_RISCV_SET6 R_RISCV
pkg debug/elf, const R_RISCV_SET8 = 54
pkg debug/elf, const R_RISCV_SET8 R_RISCV
pkg debug/elf, const R_RISCV_SUB16 = 38
pkg debug/elf, const R_RISCV_SUB16 R_RISCV
pkg debug/elf, const R_RISCV_SUB32 = 39
pkg debug/elf, const R_RISCV_SUB32 R_RISCV
pkg debug/elf, const R_RISCV_SUB6 = 52
pkg debug/elf, const R_RISCV_SUB6 R_RISCV
pkg debug/elf, const R_RISCV_SUB64 = 40
pkg debug/elf, const R_RISCV_SUB64 R_RISCV
pkg debug/elf, const R_RISCV_SUB8 = 37
pkg debug/elf, const R_RISCV_SUB8 R_RISCV
pkg debug/elf, const R_RISCV_TLS_DTPMOD32 = 6
pkg debug/elf, const R_RISCV_TLS_DTPMOD32 R_RISCV
pkg debug/elf, const R_RISCV_TLS_DTPMOD64 = 7
pkg debug/elf, const R_RISCV_TLS_DTPMOD64 R_RISCV
pkg debug/elf, const R_RISCV_TLS_DTPREL32 = 8
pkg debug/elf, const R_RISCV_TLS_DTPREL32 R_RISCV
pkg debug/elf, const R_RISCV_TLS_DTPREL64 = 9
pkg debug/elf, const R_RISCV_TLS_DTPREL64 R_RISCV
pkg debug/elf, const R_RISCV_TLS_GD_HI20 = 22
pkg debug/elf, const R_RISCV_TLS_GD_HI20 R_RISCV
pkg debug/elf, const R_RISCV_TLS_GOT_HI20 = 21
pkg debug/elf, const R_RISCV_TLS_GOT_HI20 R_RISCV
pkg debug/elf, const R_RISCV_TLS_TPREL32 = 10
pkg debug/elf, const R_RISCV_TLS_TPREL32 R_RISCV
pkg debug/elf, const R_RISCV_TLS_TPREL64 = 11
pkg debug/elf, const R_RISCV_TLS_TPREL64 R_RISCV
pkg debug/elf, const R_RISCV_TPREL_ADD = 32
pkg debug/elf, const R_RISCV_TPREL_ADD R_RISCV
pkg debug/elf, const R_RISCV_TPREL_HI20 = 29
pkg debug/elf, const R_RISCV_TPREL_HI20 R_RISCV
pkg debug/elf, const R_RISCV_TPREL_I = 49
pkg debug/elf, const R_RISCV_TPREL_I R_RISCV
pkg debug/elf, const R_RISCV_TPREL_LO12_I = 30
pkg debug/elf, const R_RISCV_TPREL_LO12_I R_RISCV
pkg debug/elf, const R_RISCV_TPREL_LO12_S = 31
pkg debug/elf, const R_RISCV_TPREL_LO12_S R_RISCV
pkg debug/elf, const R_RISCV_TPREL_S = 50
pkg debug/elf, const R_RISCV_TPREL_S R_RISCV
pkg debug/elf, method (R_RISCV) GoString() string
pkg debug/elf, method (R_RISCV) String() string
pkg debug/elf, type R_RISCV int
pkg debug/macho, const CpuArm64 = 16777228
pkg debug/macho, const CpuArm64 Cpu
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_ARCHITECTURE = 7
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_ARCHITECTURE ideal-int
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_BASERELOC = 5
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_BASERELOC ideal-int
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT = 11
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT ideal-int
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR = 14
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR ideal-int
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_DEBUG = 6
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_DEBUG ideal-int
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT = 13
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT ideal-int
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_EXCEPTION = 3
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_EXCEPTION ideal-int
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_EXPORT = 0
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_EXPORT ideal-int
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_GLOBALPTR = 8
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_GLOBALPTR ideal-int
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_IAT = 12
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_IAT ideal-int
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_IMPORT = 1
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_IMPORT ideal-int
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG = 10
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG ideal-int
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_RESOURCE = 2
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_RESOURCE ideal-int
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_SECURITY = 4
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_SECURITY ideal-int
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_TLS = 9
pkg debug/pe, const IMAGE_DIRECTORY_ENTRY_TLS ideal-int
pkg debug/pe, const IMAGE_FILE_MACHINE_ARM64 = 43620
pkg debug/pe, const IMAGE_FILE_MACHINE_ARM64 ideal-int
pkg go/ast, type CompositeLit struct, Incomplete bool
pkg go/token, method (*File) AddLineColumnInfo(int, string, int, int)
pkg go/types, func NewInterfaceType([]*Func, []Type) *Interface
pkg go/types, method (*Interface) EmbeddedType(int) Type
pkg go/types, method (*Var) Embedded() bool
pkg net, method (*ListenConfig) Listen(context.Context, string, string) (Listener, error)
pkg net, method (*ListenConfig) ListenPacket(context.Context, string, string) (PacketConn, error)
pkg net, type Dialer struct, Control func(string, string, syscall.RawConn) error
pkg net, type ListenConfig struct
pkg net, type ListenConfig struct, Control func(string, string, syscall.RawConn) error
pkg net/http, const SameSiteDefaultMode = 1
pkg net/http, const SameSiteDefaultMode SameSite
pkg net/http, const SameSiteLaxMode = 2
pkg net/http, const SameSiteLaxMode SameSite
pkg net/http, const SameSiteStrictMode = 3
pkg net/http, const SameSiteStrictMode SameSite
pkg net/http, const StatusMisdirectedRequest = 421
pkg net/http, const StatusMisdirectedRequest ideal-int
pkg net/http, type Cookie struct, SameSite SameSite
pkg net/http, type SameSite int
pkg net/http, type Transport struct, MaxConnsPerHost int
pkg net/http/httptrace, type ClientTrace struct, Got1xxResponse func(int, textproto.MIMEHeader) error
pkg net/http/httptrace, type ClientTrace struct, WroteHeaderField func(string, []string)
pkg net/http/httputil, type ReverseProxy struct, ErrorHandler func(http.ResponseWriter, *http.Request, error)
pkg os, const ModeIrregular = 524288
pkg os, const ModeIrregular FileMode
pkg os, const ModeType = 2399666176
pkg os, func UserCacheDir() (string, error)
pkg os/signal, func Ignored(os.Signal) bool
pkg regexp/syntax, method (Op) String() string
pkg runtime/trace, func IsEnabled() bool
pkg runtime/trace, func Log(context.Context, string, string)
pkg runtime/trace, func Logf(context.Context, string, string, ...interface{})
pkg runtime/trace, func NewTask(context.Context, string) (context.Context, *Task)
pkg runtime/trace, func StartRegion(context.Context, string) *Region
pkg runtime/trace, func WithRegion(context.Context, string, func())
pkg runtime/trace, method (*Region) End()
pkg runtime/trace, method (*Task) End()
pkg runtime/trace, type Region struct
pkg runtime/trace, type Task struct
pkg syscall (netbsd-386), func Accept4(int, int) (int, Sockaddr, error)
pkg syscall (netbsd-386), func Pipe2([]int, int) error
pkg syscall (netbsd-386-cgo), func Accept4(int, int) (int, Sockaddr, error)
pkg syscall (netbsd-386-cgo), func Pipe2([]int, int) error
pkg syscall (netbsd-amd64), func Accept4(int, int) (int, Sockaddr, error)
pkg syscall (netbsd-amd64), func Pipe2([]int, int) error
pkg syscall (netbsd-amd64-cgo), func Accept4(int, int) (int, Sockaddr, error)
pkg syscall (netbsd-amd64-cgo), func Pipe2([]int, int) error
pkg syscall (netbsd-arm), func Accept4(int, int) (int, Sockaddr, error)
pkg syscall (netbsd-arm), func Pipe2([]int, int) error
pkg syscall (netbsd-arm-cgo), func Accept4(int, int) (int, Sockaddr, error)
pkg syscall (netbsd-arm-cgo), func Pipe2([]int, int) error
pkg syscall (openbsd-386), const SOCK_CLOEXEC = 32768
pkg syscall (openbsd-386), const SOCK_CLOEXEC ideal-int
pkg syscall (openbsd-386), const SOCK_NONBLOCK = 16384
pkg syscall (openbsd-386), const SOCK_NONBLOCK ideal-int
pkg syscall (openbsd-386), const SYS_ACCEPT4 = 93
pkg syscall (openbsd-386), const SYS_ACCEPT4 ideal-int
pkg syscall (openbsd-386), const SYS_PIPE2 = 101
pkg syscall (openbsd-386), const SYS_PIPE2 ideal-int
pkg syscall (openbsd-386), func Accept4(int, int) (int, Sockaddr, error)
pkg syscall (openbsd-386), func Pipe2([]int, int) error
pkg syscall (openbsd-386-cgo), const SOCK_CLOEXEC = 32768
pkg syscall (openbsd-386-cgo), const SOCK_CLOEXEC ideal-int
pkg syscall (openbsd-386-cgo), const SOCK_NONBLOCK = 16384
pkg syscall (openbsd-386-cgo), const SOCK_NONBLOCK ideal-int
pkg syscall (openbsd-386-cgo), const SYS_ACCEPT4 = 93
pkg syscall (openbsd-386-cgo), const SYS_ACCEPT4 ideal-int
pkg syscall (openbsd-386-cgo), const SYS_PIPE2 = 101
pkg syscall (openbsd-386-cgo), const SYS_PIPE2 ideal-int
pkg syscall (openbsd-386-cgo), func Accept4(int, int) (int, Sockaddr, error)
pkg syscall (openbsd-386-cgo), func Pipe2([]int, int) error
pkg syscall (openbsd-amd64), const SOCK_CLOEXEC = 32768
pkg syscall (openbsd-amd64), const SOCK_CLOEXEC ideal-int
pkg syscall (openbsd-amd64), const SOCK_NONBLOCK = 16384
pkg syscall (openbsd-amd64), const SOCK_NONBLOCK ideal-int
pkg syscall (openbsd-amd64), const SYS_ACCEPT4 = 93
pkg syscall (openbsd-amd64), const SYS_ACCEPT4 ideal-int
pkg syscall (openbsd-amd64), const SYS_PIPE2 = 101
pkg syscall (openbsd-amd64), const SYS_PIPE2 ideal-int
pkg syscall (openbsd-amd64), func Accept4(int, int) (int, Sockaddr, error)
pkg syscall (openbsd-amd64), func Pipe2([]int, int) error
pkg syscall (openbsd-amd64-cgo), const SOCK_CLOEXEC = 32768
pkg syscall (openbsd-amd64-cgo), const SOCK_CLOEXEC ideal-int
pkg syscall (openbsd-amd64-cgo), const SOCK_NONBLOCK = 16384
pkg syscall (openbsd-amd64-cgo), const SOCK_NONBLOCK ideal-int
pkg syscall (openbsd-amd64-cgo), const SYS_ACCEPT4 = 93
pkg syscall (openbsd-amd64-cgo), const SYS_ACCEPT4 ideal-int
pkg syscall (openbsd-amd64-cgo), const SYS_PIPE2 = 101
pkg syscall (openbsd-amd64-cgo), const SYS_PIPE2 ideal-int
pkg syscall (openbsd-amd64-cgo), func Accept4(int, int) (int, Sockaddr, error)
pkg syscall (openbsd-amd64-cgo), func Pipe2([]int, int) error
pkg syscall (windows-386), const TOKEN_ADJUST_SESSIONID = 256
pkg syscall (windows-386), const TOKEN_ADJUST_SESSIONID ideal-int
pkg syscall (windows-386), const TOKEN_ALL_ACCESS = 983551
pkg syscall (windows-386), type AddrinfoW struct, Addr Pointer
pkg syscall (windows-386), type CertChainPolicyPara struct, ExtraPolicyPara Pointer
pkg syscall (windows-386), type CertChainPolicyStatus struct, ExtraPolicyStatus Pointer
pkg syscall (windows-386), type CertContext struct, CertInfo *CertInfo
pkg syscall (windows-386), type CertInfo struct
pkg syscall (windows-386), type CertRevocationCrlInfo struct
pkg syscall (windows-386), type CertRevocationInfo struct, CrlInfo *CertRevocationCrlInfo
pkg syscall (windows-386), type CertRevocationInfo struct, OidSpecificInfo Pointer
pkg syscall (windows-386), type CertSimpleChain struct, TrustListInfo *CertTrustListInfo
pkg syscall (windows-386), type CertTrustListInfo struct
pkg syscall (windows-386), type Pointer *struct
pkg syscall (windows-amd64), const TOKEN_ADJUST_SESSIONID = 256
pkg syscall (windows-amd64), const TOKEN_ADJUST_SESSIONID ideal-int
pkg syscall (windows-amd64), const TOKEN_ALL_ACCESS = 983551
pkg syscall (windows-amd64), type AddrinfoW struct, Addr Pointer
pkg syscall (windows-amd64), type CertChainPolicyPara struct, ExtraPolicyPara Pointer
pkg syscall (windows-amd64), type CertChainPolicyStatus struct, ExtraPolicyStatus Pointer
pkg syscall (windows-amd64), type CertContext struct, CertInfo *CertInfo
pkg syscall (windows-amd64), type CertInfo struct
pkg syscall (windows-amd64), type CertRevocationCrlInfo struct
pkg syscall (windows-amd64), type CertRevocationInfo struct, CrlInfo *CertRevocationCrlInfo
pkg syscall (windows-amd64), type CertRevocationInfo struct, OidSpecificInfo Pointer
pkg syscall (windows-amd64), type CertSimpleChain struct, TrustListInfo *CertTrustListInfo
pkg syscall (windows-amd64), type CertTrustListInfo struct
pkg syscall (windows-amd64), type Pointer *struct
pkg syscall, const ImplementsGetwd = true
pkg text/template/parse, type PipeNode struct, IsAssign bool

View File

@@ -1,228 +0,0 @@
pkg bytes, func ReplaceAll([]uint8, []uint8, []uint8) []uint8
pkg crypto/tls, const TLS_AES_128_GCM_SHA256 = 4865
pkg crypto/tls, const TLS_AES_128_GCM_SHA256 uint16
pkg crypto/tls, const TLS_AES_256_GCM_SHA384 = 4866
pkg crypto/tls, const TLS_AES_256_GCM_SHA384 uint16
pkg crypto/tls, const TLS_CHACHA20_POLY1305_SHA256 = 4867
pkg crypto/tls, const TLS_CHACHA20_POLY1305_SHA256 uint16
pkg crypto/tls, const VersionTLS13 = 772
pkg crypto/tls, const VersionTLS13 ideal-int
pkg crypto/tls, type RecordHeaderError struct, Conn net.Conn
pkg debug/elf, const R_RISCV_32_PCREL = 57
pkg debug/elf, const R_RISCV_32_PCREL R_RISCV
pkg debug/pe, const IMAGE_FILE_MACHINE_ARMNT = 452
pkg debug/pe, const IMAGE_FILE_MACHINE_ARMNT ideal-int
pkg expvar, method (*Map) Delete(string)
pkg go/doc, const PreserveAST = 4
pkg go/doc, const PreserveAST Mode
pkg go/importer, func ForCompiler(*token.FileSet, string, Lookup) types.Importer
pkg go/token, method (*File) LineStart(int) Pos
pkg io, type StringWriter interface { WriteString }
pkg io, type StringWriter interface, WriteString(string) (int, error)
pkg log, method (*Logger) Writer() io.Writer
pkg math/bits, func Add(uint, uint, uint) (uint, uint)
pkg math/bits, func Add32(uint32, uint32, uint32) (uint32, uint32)
pkg math/bits, func Add64(uint64, uint64, uint64) (uint64, uint64)
pkg math/bits, func Div(uint, uint, uint) (uint, uint)
pkg math/bits, func Div32(uint32, uint32, uint32) (uint32, uint32)
pkg math/bits, func Div64(uint64, uint64, uint64) (uint64, uint64)
pkg math/bits, func Mul(uint, uint) (uint, uint)
pkg math/bits, func Mul32(uint32, uint32) (uint32, uint32)
pkg math/bits, func Mul64(uint64, uint64) (uint64, uint64)
pkg math/bits, func Sub(uint, uint, uint) (uint, uint)
pkg math/bits, func Sub32(uint32, uint32, uint32) (uint32, uint32)
pkg math/bits, func Sub64(uint64, uint64, uint64) (uint64, uint64)
pkg net/http, const StatusTooEarly = 425
pkg net/http, const StatusTooEarly ideal-int
pkg net/http, method (*Client) CloseIdleConnections()
pkg os, const ModeType = 2401763328
pkg os, func UserHomeDir() (string, error)
pkg os, method (*File) SyscallConn() (syscall.RawConn, error)
pkg os, method (*ProcessState) ExitCode() int
pkg os/exec, method (ExitError) ExitCode() int
pkg reflect, method (*MapIter) Key() Value
pkg reflect, method (*MapIter) Next() bool
pkg reflect, method (*MapIter) Value() Value
pkg reflect, method (Value) MapRange() *MapIter
pkg reflect, type MapIter struct
pkg runtime/debug, func ReadBuildInfo() (*BuildInfo, bool)
pkg runtime/debug, type BuildInfo struct
pkg runtime/debug, type BuildInfo struct, Deps []*Module
pkg runtime/debug, type BuildInfo struct, Main Module
pkg runtime/debug, type BuildInfo struct, Path string
pkg runtime/debug, type Module struct
pkg runtime/debug, type Module struct, Path string
pkg runtime/debug, type Module struct, Replace *Module
pkg runtime/debug, type Module struct, Sum string
pkg runtime/debug, type Module struct, Version string
pkg strings, func ReplaceAll(string, string, string) string
pkg strings, method (*Builder) Cap() int
pkg syscall (freebsd-386), const S_IRWXG = 56
pkg syscall (freebsd-386), const S_IRWXG ideal-int
pkg syscall (freebsd-386), const S_IRWXO = 7
pkg syscall (freebsd-386), const S_IRWXO ideal-int
pkg syscall (freebsd-386), func Fstatat(int, string, *Stat_t, int) error
pkg syscall (freebsd-386), func Mknod(string, uint32, uint64) error
pkg syscall (freebsd-386), type Dirent struct, Fileno uint64
pkg syscall (freebsd-386), type Dirent struct, Namlen uint16
pkg syscall (freebsd-386), type Dirent struct, Off int64
pkg syscall (freebsd-386), type Dirent struct, Pad0 uint8
pkg syscall (freebsd-386), type Dirent struct, Pad1 uint16
pkg syscall (freebsd-386), type Stat_t struct, Atim_ext int32
pkg syscall (freebsd-386), type Stat_t struct, Blksize int32
pkg syscall (freebsd-386), type Stat_t struct, Btim_ext int32
pkg syscall (freebsd-386), type Stat_t struct, Ctim_ext int32
pkg syscall (freebsd-386), type Stat_t struct, Dev uint64
pkg syscall (freebsd-386), type Stat_t struct, Gen uint64
pkg syscall (freebsd-386), type Stat_t struct, Ino uint64
pkg syscall (freebsd-386), type Stat_t struct, Mtim_ext int32
pkg syscall (freebsd-386), type Stat_t struct, Nlink uint64
pkg syscall (freebsd-386), type Stat_t struct, Padding0 int16
pkg syscall (freebsd-386), type Stat_t struct, Padding1 int32
pkg syscall (freebsd-386), type Stat_t struct, Rdev uint64
pkg syscall (freebsd-386), type Stat_t struct, Spare [10]uint64
pkg syscall (freebsd-386), type Statfs_t struct, Mntfromname [1024]int8
pkg syscall (freebsd-386), type Statfs_t struct, Mntonname [1024]int8
pkg syscall (freebsd-386-cgo), const S_IRWXG = 56
pkg syscall (freebsd-386-cgo), const S_IRWXG ideal-int
pkg syscall (freebsd-386-cgo), const S_IRWXO = 7
pkg syscall (freebsd-386-cgo), const S_IRWXO ideal-int
pkg syscall (freebsd-386-cgo), func Fstatat(int, string, *Stat_t, int) error
pkg syscall (freebsd-386-cgo), func Mknod(string, uint32, uint64) error
pkg syscall (freebsd-386-cgo), type Dirent struct, Fileno uint64
pkg syscall (freebsd-386-cgo), type Dirent struct, Namlen uint16
pkg syscall (freebsd-386-cgo), type Dirent struct, Off int64
pkg syscall (freebsd-386-cgo), type Dirent struct, Pad0 uint8
pkg syscall (freebsd-386-cgo), type Dirent struct, Pad1 uint16
pkg syscall (freebsd-386-cgo), type Stat_t struct, Atim_ext int32
pkg syscall (freebsd-386-cgo), type Stat_t struct, Blksize int32
pkg syscall (freebsd-386-cgo), type Stat_t struct, Btim_ext int32
pkg syscall (freebsd-386-cgo), type Stat_t struct, Ctim_ext int32
pkg syscall (freebsd-386-cgo), type Stat_t struct, Dev uint64
pkg syscall (freebsd-386-cgo), type Stat_t struct, Gen uint64
pkg syscall (freebsd-386-cgo), type Stat_t struct, Ino uint64
pkg syscall (freebsd-386-cgo), type Stat_t struct, Mtim_ext int32
pkg syscall (freebsd-386-cgo), type Stat_t struct, Nlink uint64
pkg syscall (freebsd-386-cgo), type Stat_t struct, Padding0 int16
pkg syscall (freebsd-386-cgo), type Stat_t struct, Padding1 int32
pkg syscall (freebsd-386-cgo), type Stat_t struct, Rdev uint64
pkg syscall (freebsd-386-cgo), type Stat_t struct, Spare [10]uint64
pkg syscall (freebsd-386-cgo), type Statfs_t struct, Mntfromname [1024]int8
pkg syscall (freebsd-386-cgo), type Statfs_t struct, Mntonname [1024]int8
pkg syscall (freebsd-amd64), const S_IRWXG = 56
pkg syscall (freebsd-amd64), const S_IRWXG ideal-int
pkg syscall (freebsd-amd64), const S_IRWXO = 7
pkg syscall (freebsd-amd64), const S_IRWXO ideal-int
pkg syscall (freebsd-amd64), func Fstatat(int, string, *Stat_t, int) error
pkg syscall (freebsd-amd64), func Mknod(string, uint32, uint64) error
pkg syscall (freebsd-amd64), type Dirent struct, Fileno uint64
pkg syscall (freebsd-amd64), type Dirent struct, Namlen uint16
pkg syscall (freebsd-amd64), type Dirent struct, Off int64
pkg syscall (freebsd-amd64), type Dirent struct, Pad0 uint8
pkg syscall (freebsd-amd64), type Dirent struct, Pad1 uint16
pkg syscall (freebsd-amd64), type Stat_t struct, Blksize int32
pkg syscall (freebsd-amd64), type Stat_t struct, Dev uint64
pkg syscall (freebsd-amd64), type Stat_t struct, Gen uint64
pkg syscall (freebsd-amd64), type Stat_t struct, Ino uint64
pkg syscall (freebsd-amd64), type Stat_t struct, Nlink uint64
pkg syscall (freebsd-amd64), type Stat_t struct, Padding0 int16
pkg syscall (freebsd-amd64), type Stat_t struct, Padding1 int32
pkg syscall (freebsd-amd64), type Stat_t struct, Rdev uint64
pkg syscall (freebsd-amd64), type Stat_t struct, Spare [10]uint64
pkg syscall (freebsd-amd64), type Statfs_t struct, Mntfromname [1024]int8
pkg syscall (freebsd-amd64), type Statfs_t struct, Mntonname [1024]int8
pkg syscall (freebsd-amd64-cgo), const S_IRWXG = 56
pkg syscall (freebsd-amd64-cgo), const S_IRWXG ideal-int
pkg syscall (freebsd-amd64-cgo), const S_IRWXO = 7
pkg syscall (freebsd-amd64-cgo), const S_IRWXO ideal-int
pkg syscall (freebsd-amd64-cgo), func Fstatat(int, string, *Stat_t, int) error
pkg syscall (freebsd-amd64-cgo), func Mknod(string, uint32, uint64) error
pkg syscall (freebsd-amd64-cgo), type Dirent struct, Fileno uint64
pkg syscall (freebsd-amd64-cgo), type Dirent struct, Namlen uint16
pkg syscall (freebsd-amd64-cgo), type Dirent struct, Off int64
pkg syscall (freebsd-amd64-cgo), type Dirent struct, Pad0 uint8
pkg syscall (freebsd-amd64-cgo), type Dirent struct, Pad1 uint16
pkg syscall (freebsd-amd64-cgo), type Stat_t struct, Blksize int32
pkg syscall (freebsd-amd64-cgo), type Stat_t struct, Dev uint64
pkg syscall (freebsd-amd64-cgo), type Stat_t struct, Gen uint64
pkg syscall (freebsd-amd64-cgo), type Stat_t struct, Ino uint64
pkg syscall (freebsd-amd64-cgo), type Stat_t struct, Nlink uint64
pkg syscall (freebsd-amd64-cgo), type Stat_t struct, Padding0 int16
pkg syscall (freebsd-amd64-cgo), type Stat_t struct, Padding1 int32
pkg syscall (freebsd-amd64-cgo), type Stat_t struct, Rdev uint64
pkg syscall (freebsd-amd64-cgo), type Stat_t struct, Spare [10]uint64
pkg syscall (freebsd-amd64-cgo), type Statfs_t struct, Mntfromname [1024]int8
pkg syscall (freebsd-amd64-cgo), type Statfs_t struct, Mntonname [1024]int8
pkg syscall (freebsd-arm), const S_IRWXG = 56
pkg syscall (freebsd-arm), const S_IRWXG ideal-int
pkg syscall (freebsd-arm), const S_IRWXO = 7
pkg syscall (freebsd-arm), const S_IRWXO ideal-int
pkg syscall (freebsd-arm), func Fstatat(int, string, *Stat_t, int) error
pkg syscall (freebsd-arm), func Mknod(string, uint32, uint64) error
pkg syscall (freebsd-arm), type Dirent struct, Fileno uint64
pkg syscall (freebsd-arm), type Dirent struct, Namlen uint16
pkg syscall (freebsd-arm), type Dirent struct, Off int64
pkg syscall (freebsd-arm), type Dirent struct, Pad0 uint8
pkg syscall (freebsd-arm), type Dirent struct, Pad1 uint16
pkg syscall (freebsd-arm), type Stat_t struct, Blksize int32
pkg syscall (freebsd-arm), type Stat_t struct, Dev uint64
pkg syscall (freebsd-arm), type Stat_t struct, Gen uint64
pkg syscall (freebsd-arm), type Stat_t struct, Ino uint64
pkg syscall (freebsd-arm), type Stat_t struct, Nlink uint64
pkg syscall (freebsd-arm), type Stat_t struct, Padding0 int16
pkg syscall (freebsd-arm), type Stat_t struct, Padding1 int32
pkg syscall (freebsd-arm), type Stat_t struct, Rdev uint64
pkg syscall (freebsd-arm), type Stat_t struct, Spare [10]uint64
pkg syscall (freebsd-arm), type Statfs_t struct, Mntfromname [1024]int8
pkg syscall (freebsd-arm), type Statfs_t struct, Mntonname [1024]int8
pkg syscall (freebsd-arm-cgo), const S_IRWXG = 56
pkg syscall (freebsd-arm-cgo), const S_IRWXG ideal-int
pkg syscall (freebsd-arm-cgo), const S_IRWXO = 7
pkg syscall (freebsd-arm-cgo), const S_IRWXO ideal-int
pkg syscall (freebsd-arm-cgo), func Fstatat(int, string, *Stat_t, int) error
pkg syscall (freebsd-arm-cgo), func Mknod(string, uint32, uint64) error
pkg syscall (freebsd-arm-cgo), type Dirent struct, Fileno uint64
pkg syscall (freebsd-arm-cgo), type Dirent struct, Namlen uint16
pkg syscall (freebsd-arm-cgo), type Dirent struct, Off int64
pkg syscall (freebsd-arm-cgo), type Dirent struct, Pad0 uint8
pkg syscall (freebsd-arm-cgo), type Dirent struct, Pad1 uint16
pkg syscall (freebsd-arm-cgo), type Stat_t struct, Blksize int32
pkg syscall (freebsd-arm-cgo), type Stat_t struct, Dev uint64
pkg syscall (freebsd-arm-cgo), type Stat_t struct, Gen uint64
pkg syscall (freebsd-arm-cgo), type Stat_t struct, Ino uint64
pkg syscall (freebsd-arm-cgo), type Stat_t struct, Nlink uint64
pkg syscall (freebsd-arm-cgo), type Stat_t struct, Padding0 int16
pkg syscall (freebsd-arm-cgo), type Stat_t struct, Padding1 int32
pkg syscall (freebsd-arm-cgo), type Stat_t struct, Rdev uint64
pkg syscall (freebsd-arm-cgo), type Stat_t struct, Spare [10]uint64
pkg syscall (freebsd-arm-cgo), type Statfs_t struct, Mntfromname [1024]int8
pkg syscall (freebsd-arm-cgo), type Statfs_t struct, Mntonname [1024]int8
pkg syscall (openbsd-386), const S_IRWXG = 56
pkg syscall (openbsd-386), const S_IRWXG ideal-int
pkg syscall (openbsd-386), const S_IRWXO = 7
pkg syscall (openbsd-386), const S_IRWXO ideal-int
pkg syscall (openbsd-386-cgo), const S_IRWXG = 56
pkg syscall (openbsd-386-cgo), const S_IRWXG ideal-int
pkg syscall (openbsd-386-cgo), const S_IRWXO = 7
pkg syscall (openbsd-386-cgo), const S_IRWXO ideal-int
pkg syscall (openbsd-amd64), const S_IRWXG = 56
pkg syscall (openbsd-amd64), const S_IRWXG ideal-int
pkg syscall (openbsd-amd64), const S_IRWXO = 7
pkg syscall (openbsd-amd64), const S_IRWXO ideal-int
pkg syscall (openbsd-amd64-cgo), const S_IRWXG = 56
pkg syscall (openbsd-amd64-cgo), const S_IRWXG ideal-int
pkg syscall (openbsd-amd64-cgo), const S_IRWXO = 7
pkg syscall (openbsd-amd64-cgo), const S_IRWXO ideal-int
pkg syscall (windows-386), const UNIX_PATH_MAX = 108
pkg syscall (windows-386), const UNIX_PATH_MAX ideal-int
pkg syscall (windows-386), func Syscall18(uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr) (uintptr, uintptr, Errno)
pkg syscall (windows-386), type RawSockaddrAny struct, Pad [100]int8
pkg syscall (windows-386), type RawSockaddrUnix struct, Family uint16
pkg syscall (windows-386), type RawSockaddrUnix struct, Path [108]int8
pkg syscall (windows-amd64), const UNIX_PATH_MAX = 108
pkg syscall (windows-amd64), const UNIX_PATH_MAX ideal-int
pkg syscall (windows-amd64), func Syscall18(uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr, uintptr) (uintptr, uintptr, Errno)
pkg syscall (windows-amd64), type RawSockaddrAny struct, Pad [100]int8
pkg syscall (windows-amd64), type RawSockaddrUnix struct, Family uint16
pkg syscall (windows-amd64), type RawSockaddrUnix struct, Path [108]int8
pkg syscall, type RawSockaddrUnix struct

File diff suppressed because it is too large Load Diff

View File

@@ -1,197 +0,0 @@
pkg crypto/tls, const TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 = 52393
pkg crypto/tls, const TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 uint16
pkg crypto/tls, const TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 = 52392
pkg crypto/tls, const TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 uint16
pkg crypto/tls, func CipherSuiteName(uint16) string
pkg crypto/tls, func CipherSuites() []*CipherSuite
pkg crypto/tls, func InsecureCipherSuites() []*CipherSuite
pkg crypto/tls, method (*CertificateRequestInfo) SupportsCertificate(*Certificate) error
pkg crypto/tls, method (*ClientHelloInfo) SupportsCertificate(*Certificate) error
pkg crypto/tls, type Certificate struct, SupportedSignatureAlgorithms []SignatureScheme
pkg crypto/tls, type CertificateRequestInfo struct, Version uint16
pkg crypto/tls, type CipherSuite struct
pkg crypto/tls, type CipherSuite struct, ID uint16
pkg crypto/tls, type CipherSuite struct, Insecure bool
pkg crypto/tls, type CipherSuite struct, Name string
pkg crypto/tls, type CipherSuite struct, SupportedVersions []uint16
pkg debug/dwarf, const AttrAddrBase = 115
pkg debug/dwarf, const AttrAddrBase Attr
pkg debug/dwarf, const AttrAlignment = 136
pkg debug/dwarf, const AttrAlignment Attr
pkg debug/dwarf, const AttrBinaryScale = 91
pkg debug/dwarf, const AttrBinaryScale Attr
pkg debug/dwarf, const AttrCallAllCalls = 122
pkg debug/dwarf, const AttrCallAllCalls Attr
pkg debug/dwarf, const AttrCallAllSourceCalls = 123
pkg debug/dwarf, const AttrCallAllSourceCalls Attr
pkg debug/dwarf, const AttrCallAllTailCalls = 124
pkg debug/dwarf, const AttrCallAllTailCalls Attr
pkg debug/dwarf, const AttrCallDataLocation = 133
pkg debug/dwarf, const AttrCallDataLocation Attr
pkg debug/dwarf, const AttrCallDataValue = 134
pkg debug/dwarf, const AttrCallDataValue Attr
pkg debug/dwarf, const AttrCallOrigin = 127
pkg debug/dwarf, const AttrCallOrigin Attr
pkg debug/dwarf, const AttrCallPC = 129
pkg debug/dwarf, const AttrCallPC Attr
pkg debug/dwarf, const AttrCallParameter = 128
pkg debug/dwarf, const AttrCallParameter Attr
pkg debug/dwarf, const AttrCallReturnPC = 125
pkg debug/dwarf, const AttrCallReturnPC Attr
pkg debug/dwarf, const AttrCallTailCall = 130
pkg debug/dwarf, const AttrCallTailCall Attr
pkg debug/dwarf, const AttrCallTarget = 131
pkg debug/dwarf, const AttrCallTarget Attr
pkg debug/dwarf, const AttrCallTargetClobbered = 132
pkg debug/dwarf, const AttrCallTargetClobbered Attr
pkg debug/dwarf, const AttrCallValue = 126
pkg debug/dwarf, const AttrCallValue Attr
pkg debug/dwarf, const AttrConstExpr = 108
pkg debug/dwarf, const AttrConstExpr Attr
pkg debug/dwarf, const AttrDataBitOffset = 107
pkg debug/dwarf, const AttrDataBitOffset Attr
pkg debug/dwarf, const AttrDecimalScale = 92
pkg debug/dwarf, const AttrDecimalScale Attr
pkg debug/dwarf, const AttrDecimalSign = 94
pkg debug/dwarf, const AttrDecimalSign Attr
pkg debug/dwarf, const AttrDefaulted = 139
pkg debug/dwarf, const AttrDefaulted Attr
pkg debug/dwarf, const AttrDeleted = 138
pkg debug/dwarf, const AttrDeleted Attr
pkg debug/dwarf, const AttrDigitCount = 95
pkg debug/dwarf, const AttrDigitCount Attr
pkg debug/dwarf, const AttrDwoName = 118
pkg debug/dwarf, const AttrDwoName Attr
pkg debug/dwarf, const AttrElemental = 102
pkg debug/dwarf, const AttrElemental Attr
pkg debug/dwarf, const AttrEndianity = 101
pkg debug/dwarf, const AttrEndianity Attr
pkg debug/dwarf, const AttrEnumClass = 109
pkg debug/dwarf, const AttrEnumClass Attr
pkg debug/dwarf, const AttrExplicit = 99
pkg debug/dwarf, const AttrExplicit Attr
pkg debug/dwarf, const AttrExportSymbols = 137
pkg debug/dwarf, const AttrExportSymbols Attr
pkg debug/dwarf, const AttrLinkageName = 110
pkg debug/dwarf, const AttrLinkageName Attr
pkg debug/dwarf, const AttrLoclistsBase = 140
pkg debug/dwarf, const AttrLoclistsBase Attr
pkg debug/dwarf, const AttrMacros = 121
pkg debug/dwarf, const AttrMacros Attr
pkg debug/dwarf, const AttrMainSubprogram = 106
pkg debug/dwarf, const AttrMainSubprogram Attr
pkg debug/dwarf, const AttrMutable = 97
pkg debug/dwarf, const AttrMutable Attr
pkg debug/dwarf, const AttrNoreturn = 135
pkg debug/dwarf, const AttrNoreturn Attr
pkg debug/dwarf, const AttrObjectPointer = 100
pkg debug/dwarf, const AttrObjectPointer Attr
pkg debug/dwarf, const AttrPictureString = 96
pkg debug/dwarf, const AttrPictureString Attr
pkg debug/dwarf, const AttrPure = 103
pkg debug/dwarf, const AttrPure Attr
pkg debug/dwarf, const AttrRank = 113
pkg debug/dwarf, const AttrRank Attr
pkg debug/dwarf, const AttrRecursive = 104
pkg debug/dwarf, const AttrRecursive Attr
pkg debug/dwarf, const AttrReference = 119
pkg debug/dwarf, const AttrReference Attr
pkg debug/dwarf, const AttrRnglistsBase = 116
pkg debug/dwarf, const AttrRnglistsBase Attr
pkg debug/dwarf, const AttrRvalueReference = 120
pkg debug/dwarf, const AttrRvalueReference Attr
pkg debug/dwarf, const AttrSignature = 105
pkg debug/dwarf, const AttrSignature Attr
pkg debug/dwarf, const AttrSmall = 93
pkg debug/dwarf, const AttrSmall Attr
pkg debug/dwarf, const AttrStrOffsetsBase = 114
pkg debug/dwarf, const AttrStrOffsetsBase Attr
pkg debug/dwarf, const AttrStringLengthBitSize = 111
pkg debug/dwarf, const AttrStringLengthBitSize Attr
pkg debug/dwarf, const AttrStringLengthByteSize = 112
pkg debug/dwarf, const AttrStringLengthByteSize Attr
pkg debug/dwarf, const AttrThreadsScaled = 98
pkg debug/dwarf, const AttrThreadsScaled Attr
pkg debug/dwarf, const ClassAddrPtr = 15
pkg debug/dwarf, const ClassAddrPtr Class
pkg debug/dwarf, const ClassLocList = 16
pkg debug/dwarf, const ClassLocList Class
pkg debug/dwarf, const ClassRngList = 17
pkg debug/dwarf, const ClassRngList Class
pkg debug/dwarf, const ClassRngListsPtr = 18
pkg debug/dwarf, const ClassRngListsPtr Class
pkg debug/dwarf, const ClassStrOffsetsPtr = 19
pkg debug/dwarf, const ClassStrOffsetsPtr Class
pkg debug/dwarf, const TagAtomicType = 71
pkg debug/dwarf, const TagAtomicType Tag
pkg debug/dwarf, const TagCallSite = 72
pkg debug/dwarf, const TagCallSite Tag
pkg debug/dwarf, const TagCallSiteParameter = 73
pkg debug/dwarf, const TagCallSiteParameter Tag
pkg debug/dwarf, const TagCoarrayType = 68
pkg debug/dwarf, const TagCoarrayType Tag
pkg debug/dwarf, const TagDynamicType = 70
pkg debug/dwarf, const TagDynamicType Tag
pkg debug/dwarf, const TagGenericSubrange = 69
pkg debug/dwarf, const TagGenericSubrange Tag
pkg debug/dwarf, const TagImmutableType = 75
pkg debug/dwarf, const TagImmutableType Tag
pkg debug/dwarf, const TagSkeletonUnit = 74
pkg debug/dwarf, const TagSkeletonUnit Tag
pkg debug/dwarf, method (*Data) AddSection(string, []uint8) error
pkg debug/dwarf, method (*LineReader) Files() []*LineFile
pkg debug/dwarf, method (*Reader) ByteOrder() binary.ByteOrder
pkg encoding/asn1, const TagBMPString = 30
pkg encoding/asn1, const TagBMPString ideal-int
pkg encoding/json, method (*Decoder) InputOffset() int64
pkg go/build, type Context struct, Dir string
pkg go/doc, func NewFromFiles(*token.FileSet, []*ast.File, string, ...interface{}) (*Package, error)
pkg go/doc, type Example struct, Suffix string
pkg go/doc, type Func struct, Examples []*Example
pkg go/doc, type Package struct, Examples []*Example
pkg go/doc, type Type struct, Examples []*Example
pkg hash/maphash, func MakeSeed() Seed
pkg hash/maphash, method (*Hash) BlockSize() int
pkg hash/maphash, method (*Hash) Reset()
pkg hash/maphash, method (*Hash) Seed() Seed
pkg hash/maphash, method (*Hash) SetSeed(Seed)
pkg hash/maphash, method (*Hash) Size() int
pkg hash/maphash, method (*Hash) Sum([]uint8) []uint8
pkg hash/maphash, method (*Hash) Sum64() uint64
pkg hash/maphash, method (*Hash) Write([]uint8) (int, error)
pkg hash/maphash, method (*Hash) WriteByte(uint8) error
pkg hash/maphash, method (*Hash) WriteString(string) (int, error)
pkg hash/maphash, type Hash struct
pkg hash/maphash, type Seed struct
pkg log, const Lmsgprefix = 64
pkg log, const Lmsgprefix ideal-int
pkg math, func FMA(float64, float64, float64) float64
pkg math/bits, func Rem(uint, uint, uint) uint
pkg math/bits, func Rem32(uint32, uint32, uint32) uint32
pkg math/bits, func Rem64(uint64, uint64, uint64) uint64
pkg mime/multipart, method (*Reader) NextRawPart() (*Part, error)
pkg net/http, method (Header) Values(string) []string
pkg net/http, type Transport struct, DialTLSContext func(context.Context, string, string) (net.Conn, error)
pkg net/http/httptest, type Server struct, EnableHTTP2 bool
pkg net/textproto, method (MIMEHeader) Values(string) []string
pkg strconv, method (*NumError) Unwrap() error
pkg syscall (windows-386), const CTRL_CLOSE_EVENT = 2
pkg syscall (windows-386), const CTRL_CLOSE_EVENT ideal-int
pkg syscall (windows-386), const CTRL_LOGOFF_EVENT = 5
pkg syscall (windows-386), const CTRL_LOGOFF_EVENT ideal-int
pkg syscall (windows-386), const CTRL_SHUTDOWN_EVENT = 6
pkg syscall (windows-386), const CTRL_SHUTDOWN_EVENT ideal-int
pkg syscall (windows-amd64), const CTRL_CLOSE_EVENT = 2
pkg syscall (windows-amd64), const CTRL_CLOSE_EVENT ideal-int
pkg syscall (windows-amd64), const CTRL_LOGOFF_EVENT = 5
pkg syscall (windows-amd64), const CTRL_LOGOFF_EVENT ideal-int
pkg syscall (windows-amd64), const CTRL_SHUTDOWN_EVENT = 6
pkg syscall (windows-amd64), const CTRL_SHUTDOWN_EVENT ideal-int
pkg testing, method (*B) Cleanup(func())
pkg testing, method (*T) Cleanup(func())
pkg testing, type TB interface, Cleanup(func())
pkg unicode, const Version = "12.0.0"
pkg unicode, var Elymaic *RangeTable
pkg unicode, var Nandinagari *RangeTable
pkg unicode, var Nyiakeng_Puachue_Hmong *RangeTable
pkg unicode, var Wancho *RangeTable

View File

@@ -1,130 +0,0 @@
pkg bufio, var ErrBadReadCount error
pkg crypto, method (Hash) String() string
pkg crypto/ecdsa, func SignASN1(io.Reader, *PrivateKey, []uint8) ([]uint8, error)
pkg crypto/ecdsa, func VerifyASN1(*PublicKey, []uint8, []uint8) bool
pkg crypto/ecdsa, method (*PrivateKey) Equal(crypto.PrivateKey) bool
pkg crypto/ecdsa, method (*PublicKey) Equal(crypto.PublicKey) bool
pkg crypto/ed25519, method (PrivateKey) Equal(crypto.PrivateKey) bool
pkg crypto/ed25519, method (PublicKey) Equal(crypto.PublicKey) bool
pkg crypto/elliptic, func MarshalCompressed(Curve, *big.Int, *big.Int) []uint8
pkg crypto/elliptic, func UnmarshalCompressed(Curve, []uint8) (*big.Int, *big.Int)
pkg crypto/rsa, method (*PrivateKey) Equal(crypto.PrivateKey) bool
pkg crypto/rsa, method (*PublicKey) Equal(crypto.PublicKey) bool
pkg crypto/tls, method (*Dialer) Dial(string, string) (net.Conn, error)
pkg crypto/tls, method (*Dialer) DialContext(context.Context, string, string) (net.Conn, error)
pkg crypto/tls, method (ClientAuthType) String() string
pkg crypto/tls, method (CurveID) String() string
pkg crypto/tls, method (SignatureScheme) String() string
pkg crypto/tls, type Config struct, VerifyConnection func(ConnectionState) error
pkg crypto/tls, type Dialer struct
pkg crypto/tls, type Dialer struct, Config *Config
pkg crypto/tls, type Dialer struct, NetDialer *net.Dialer
pkg crypto/x509, func CreateRevocationList(io.Reader, *RevocationList, *Certificate, crypto.Signer) ([]uint8, error)
pkg crypto/x509, type RevocationList struct
pkg crypto/x509, type RevocationList struct, ExtraExtensions []pkix.Extension
pkg crypto/x509, type RevocationList struct, NextUpdate time.Time
pkg crypto/x509, type RevocationList struct, Number *big.Int
pkg crypto/x509, type RevocationList struct, RevokedCertificates []pkix.RevokedCertificate
pkg crypto/x509, type RevocationList struct, SignatureAlgorithm SignatureAlgorithm
pkg crypto/x509, type RevocationList struct, ThisUpdate time.Time
pkg database/sql, method (*DB) SetConnMaxIdleTime(time.Duration)
pkg database/sql, method (*Row) Err() error
pkg database/sql, type DBStats struct, MaxIdleTimeClosed int64
pkg database/sql/driver, type Validator interface { IsValid }
pkg database/sql/driver, type Validator interface, IsValid() bool
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_APPCONTAINER = 4096
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_APPCONTAINER ideal-int
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE = 64
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE ideal-int
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY = 128
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY ideal-int
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_GUARD_CF = 16384
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_GUARD_CF ideal-int
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA = 32
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA ideal-int
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_NO_BIND = 2048
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_NO_BIND ideal-int
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_NO_ISOLATION = 512
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_NO_ISOLATION ideal-int
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_NO_SEH = 1024
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_NO_SEH ideal-int
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_NX_COMPAT = 256
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_NX_COMPAT ideal-int
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 32768
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE ideal-int
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = 8192
pkg debug/pe, const IMAGE_DLLCHARACTERISTICS_WDM_DRIVER ideal-int
pkg debug/pe, const IMAGE_FILE_32BIT_MACHINE = 256
pkg debug/pe, const IMAGE_FILE_32BIT_MACHINE ideal-int
pkg debug/pe, const IMAGE_FILE_AGGRESIVE_WS_TRIM = 16
pkg debug/pe, const IMAGE_FILE_AGGRESIVE_WS_TRIM ideal-int
pkg debug/pe, const IMAGE_FILE_BYTES_REVERSED_HI = 32768
pkg debug/pe, const IMAGE_FILE_BYTES_REVERSED_HI ideal-int
pkg debug/pe, const IMAGE_FILE_BYTES_REVERSED_LO = 128
pkg debug/pe, const IMAGE_FILE_BYTES_REVERSED_LO ideal-int
pkg debug/pe, const IMAGE_FILE_DEBUG_STRIPPED = 512
pkg debug/pe, const IMAGE_FILE_DEBUG_STRIPPED ideal-int
pkg debug/pe, const IMAGE_FILE_DLL = 8192
pkg debug/pe, const IMAGE_FILE_DLL ideal-int
pkg debug/pe, const IMAGE_FILE_EXECUTABLE_IMAGE = 2
pkg debug/pe, const IMAGE_FILE_EXECUTABLE_IMAGE ideal-int
pkg debug/pe, const IMAGE_FILE_LARGE_ADDRESS_AWARE = 32
pkg debug/pe, const IMAGE_FILE_LARGE_ADDRESS_AWARE ideal-int
pkg debug/pe, const IMAGE_FILE_LINE_NUMS_STRIPPED = 4
pkg debug/pe, const IMAGE_FILE_LINE_NUMS_STRIPPED ideal-int
pkg debug/pe, const IMAGE_FILE_LOCAL_SYMS_STRIPPED = 8
pkg debug/pe, const IMAGE_FILE_LOCAL_SYMS_STRIPPED ideal-int
pkg debug/pe, const IMAGE_FILE_NET_RUN_FROM_SWAP = 2048
pkg debug/pe, const IMAGE_FILE_NET_RUN_FROM_SWAP ideal-int
pkg debug/pe, const IMAGE_FILE_RELOCS_STRIPPED = 1
pkg debug/pe, const IMAGE_FILE_RELOCS_STRIPPED ideal-int
pkg debug/pe, const IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = 1024
pkg debug/pe, const IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP ideal-int
pkg debug/pe, const IMAGE_FILE_SYSTEM = 4096
pkg debug/pe, const IMAGE_FILE_SYSTEM ideal-int
pkg debug/pe, const IMAGE_FILE_UP_SYSTEM_ONLY = 16384
pkg debug/pe, const IMAGE_FILE_UP_SYSTEM_ONLY ideal-int
pkg debug/pe, const IMAGE_SUBSYSTEM_EFI_APPLICATION = 10
pkg debug/pe, const IMAGE_SUBSYSTEM_EFI_APPLICATION ideal-int
pkg debug/pe, const IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER = 11
pkg debug/pe, const IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER ideal-int
pkg debug/pe, const IMAGE_SUBSYSTEM_EFI_ROM = 13
pkg debug/pe, const IMAGE_SUBSYSTEM_EFI_ROM ideal-int
pkg debug/pe, const IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER = 12
pkg debug/pe, const IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER ideal-int
pkg debug/pe, const IMAGE_SUBSYSTEM_NATIVE = 1
pkg debug/pe, const IMAGE_SUBSYSTEM_NATIVE ideal-int
pkg debug/pe, const IMAGE_SUBSYSTEM_NATIVE_WINDOWS = 8
pkg debug/pe, const IMAGE_SUBSYSTEM_NATIVE_WINDOWS ideal-int
pkg debug/pe, const IMAGE_SUBSYSTEM_OS2_CUI = 5
pkg debug/pe, const IMAGE_SUBSYSTEM_OS2_CUI ideal-int
pkg debug/pe, const IMAGE_SUBSYSTEM_POSIX_CUI = 7
pkg debug/pe, const IMAGE_SUBSYSTEM_POSIX_CUI ideal-int
pkg debug/pe, const IMAGE_SUBSYSTEM_UNKNOWN = 0
pkg debug/pe, const IMAGE_SUBSYSTEM_UNKNOWN ideal-int
pkg debug/pe, const IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION = 16
pkg debug/pe, const IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION ideal-int
pkg debug/pe, const IMAGE_SUBSYSTEM_WINDOWS_CE_GUI = 9
pkg debug/pe, const IMAGE_SUBSYSTEM_WINDOWS_CE_GUI ideal-int
pkg debug/pe, const IMAGE_SUBSYSTEM_WINDOWS_CUI = 3
pkg debug/pe, const IMAGE_SUBSYSTEM_WINDOWS_CUI ideal-int
pkg debug/pe, const IMAGE_SUBSYSTEM_WINDOWS_GUI = 2
pkg debug/pe, const IMAGE_SUBSYSTEM_WINDOWS_GUI ideal-int
pkg debug/pe, const IMAGE_SUBSYSTEM_XBOX = 14
pkg debug/pe, const IMAGE_SUBSYSTEM_XBOX ideal-int
pkg math/big, method (*Int) FillBytes([]uint8) []uint8
pkg net, method (*Resolver) LookupIP(context.Context, string, string) ([]IP, error)
pkg net/url, method (*URL) EscapedFragment() string
pkg net/url, method (*URL) Redacted() string
pkg net/url, type URL struct, RawFragment string
pkg os, method (*File) ReadFrom(io.Reader) (int64, error)
pkg os, var ErrDeadlineExceeded error
pkg regexp, method (*Regexp) SubexpIndex(string) int
pkg strconv, func FormatComplex(complex128, uint8, int, int) string
pkg strconv, func ParseComplex(string, int) (complex128, error)
pkg sync, method (*Map) LoadAndDelete(interface{}) (interface{}, bool)
pkg testing, method (*B) TempDir() string
pkg testing, method (*T) Deadline() (time.Time, bool)
pkg testing, method (*T) TempDir() string
pkg testing, type TB interface, TempDir() string
pkg time, method (*Ticker) Reset(Duration)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,604 +0,0 @@
# CL 134210043 archive/zip: add Writer.Flush, Brad Fitzpatrick <bradfitz@golang.org>
pkg archive/zip, method (*Writer) Flush() error
# CL 97140043 compress/flate: add Reset() to allow reusing large buffers to compress multiple buffers, James Robinson <jamesr@google.com>
pkg compress/flate, type Resetter interface { Reset }
pkg compress/flate, type Resetter interface, Reset(io.Reader, []uint8) error
pkg compress/zlib, type Resetter interface { Reset }
pkg compress/zlib, type Resetter interface, Reset(io.Reader, []uint8) error
# CL 159120044 compress/gzip: allow stopping at end of first stream, Russ Cox <rsc@golang.org>
pkg compress/gzip, method (*Reader) Multistream(bool)
# CL 138800043 crypto: Add SHA3 functions in go.crypto/sha3 to the Hash enum., David Leon Gil <coruus@gmail.com>
pkg crypto, const SHA3_224 = 10
pkg crypto, const SHA3_224 Hash
pkg crypto, const SHA3_256 = 11
pkg crypto, const SHA3_256 Hash
pkg crypto, const SHA3_384 = 12
pkg crypto, const SHA3_384 Hash
pkg crypto, const SHA3_512 = 13
pkg crypto, const SHA3_512 Hash
# CL 114680043 crypto: add Signer, Adam Langley <agl@golang.org>
pkg crypto, method (Hash) HashFunc() Hash
pkg crypto, type Signer interface { Public, Sign }
pkg crypto, type Signer interface, Public() PublicKey
pkg crypto, type Signer interface, Sign(io.Reader, []uint8, SignerOpts) ([]uint8, error)
pkg crypto, type SignerOpts interface { HashFunc }
pkg crypto, type SignerOpts interface, HashFunc() Hash
pkg crypto/ecdsa, method (*PrivateKey) Public() crypto.PublicKey
pkg crypto/ecdsa, method (*PrivateKey) Sign(io.Reader, []uint8, crypto.SignerOpts) ([]uint8, error)
pkg crypto/rsa, method (*PSSOptions) HashFunc() crypto.Hash
pkg crypto/rsa, method (*PrivateKey) Public() crypto.PublicKey
pkg crypto/rsa, method (*PrivateKey) Sign(io.Reader, []uint8, crypto.SignerOpts) ([]uint8, error)
pkg crypto/rsa, type PSSOptions struct, Hash crypto.Hash
# CL 157090043 crypto/tls: support TLS_FALLBACK_SCSV as a server., Adam Langley <agl@golang.org>
pkg crypto/tls, const TLS_FALLBACK_SCSV = 22016
pkg crypto/tls, const TLS_FALLBACK_SCSV uint16
# CL 107400043 crypto/tls: Added dynamic alternative to NameToCertificate map for SNI, Percy Wegmann <ox.to.a.cart@gmail.com>
pkg crypto/tls, type ClientHelloInfo struct
pkg crypto/tls, type ClientHelloInfo struct, CipherSuites []uint16
pkg crypto/tls, type ClientHelloInfo struct, ServerName string
pkg crypto/tls, type ClientHelloInfo struct, SupportedCurves []CurveID
pkg crypto/tls, type ClientHelloInfo struct, SupportedPoints []uint8
pkg crypto/tls, type Config struct, GetCertificate func(*ClientHelloInfo) (*Certificate, error)
pkg crypto/tls, type ConnectionState struct, TLSUnique []uint8
# CL 153420045 crypto/x509: continue to recognise MaxPathLen of zero as "no value"., Adam Langley <agl@golang.org>
pkg crypto/x509, type Certificate struct, MaxPathLenZero bool
# CL 158950043 database/sql: add Drivers, returning list of registered drivers, Russ Cox <rsc@golang.org>
pkg database/sql, func Drivers() []string
# CL 117280043 debug/dwarf: fix Reader panic on DW_TAG_unspecified_type, Derek Parker <parkerderek86@gmail.com>
pkg debug/dwarf, method (*UnspecifiedType) Basic() *BasicType
pkg debug/dwarf, method (*UnspecifiedType) Common() *CommonType
pkg debug/dwarf, method (*UnspecifiedType) Size() int64
pkg debug/dwarf, method (*UnspecifiedType) String() string
pkg debug/dwarf, type UnspecifiedType struct
pkg debug/dwarf, type UnspecifiedType struct, embedded BasicType
# CL 132000043 debug/elf: support arm64 relocations, Michael Hudson-Doyle <michael.hudson@linaro.org>
pkg debug/elf, const EM_AARCH64 = 183
pkg debug/elf, const EM_AARCH64 Machine
pkg debug/elf, const R_AARCH64_ABS16 = 259
pkg debug/elf, const R_AARCH64_ABS16 R_AARCH64
pkg debug/elf, const R_AARCH64_ABS32 = 258
pkg debug/elf, const R_AARCH64_ABS32 R_AARCH64
pkg debug/elf, const R_AARCH64_ABS64 = 257
pkg debug/elf, const R_AARCH64_ABS64 R_AARCH64
pkg debug/elf, const R_AARCH64_ADD_ABS_LO12_NC = 277
pkg debug/elf, const R_AARCH64_ADD_ABS_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_ADR_GOT_PAGE = 311
pkg debug/elf, const R_AARCH64_ADR_GOT_PAGE R_AARCH64
pkg debug/elf, const R_AARCH64_ADR_PREL_LO21 = 274
pkg debug/elf, const R_AARCH64_ADR_PREL_LO21 R_AARCH64
pkg debug/elf, const R_AARCH64_ADR_PREL_PG_HI21 = 275
pkg debug/elf, const R_AARCH64_ADR_PREL_PG_HI21 R_AARCH64
pkg debug/elf, const R_AARCH64_ADR_PREL_PG_HI21_NC = 276
pkg debug/elf, const R_AARCH64_ADR_PREL_PG_HI21_NC R_AARCH64
pkg debug/elf, const R_AARCH64_CALL26 = 283
pkg debug/elf, const R_AARCH64_CALL26 R_AARCH64
pkg debug/elf, const R_AARCH64_CONDBR19 = 280
pkg debug/elf, const R_AARCH64_CONDBR19 R_AARCH64
pkg debug/elf, const R_AARCH64_COPY = 1024
pkg debug/elf, const R_AARCH64_COPY R_AARCH64
pkg debug/elf, const R_AARCH64_GLOB_DAT = 1025
pkg debug/elf, const R_AARCH64_GLOB_DAT R_AARCH64
pkg debug/elf, const R_AARCH64_GOT_LD_PREL19 = 309
pkg debug/elf, const R_AARCH64_GOT_LD_PREL19 R_AARCH64
pkg debug/elf, const R_AARCH64_IRELATIVE = 1032
pkg debug/elf, const R_AARCH64_IRELATIVE R_AARCH64
pkg debug/elf, const R_AARCH64_JUMP26 = 282
pkg debug/elf, const R_AARCH64_JUMP26 R_AARCH64
pkg debug/elf, const R_AARCH64_JUMP_SLOT = 1026
pkg debug/elf, const R_AARCH64_JUMP_SLOT R_AARCH64
pkg debug/elf, const R_AARCH64_LD64_GOT_LO12_NC = 312
pkg debug/elf, const R_AARCH64_LD64_GOT_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_LDST128_ABS_LO12_NC = 299
pkg debug/elf, const R_AARCH64_LDST128_ABS_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_LDST16_ABS_LO12_NC = 284
pkg debug/elf, const R_AARCH64_LDST16_ABS_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_LDST32_ABS_LO12_NC = 285
pkg debug/elf, const R_AARCH64_LDST32_ABS_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_LDST64_ABS_LO12_NC = 286
pkg debug/elf, const R_AARCH64_LDST64_ABS_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_LDST8_ABS_LO12_NC = 278
pkg debug/elf, const R_AARCH64_LDST8_ABS_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_LD_PREL_LO19 = 273
pkg debug/elf, const R_AARCH64_LD_PREL_LO19 R_AARCH64
pkg debug/elf, const R_AARCH64_MOVW_SABS_G0 = 270
pkg debug/elf, const R_AARCH64_MOVW_SABS_G0 R_AARCH64
pkg debug/elf, const R_AARCH64_MOVW_SABS_G1 = 271
pkg debug/elf, const R_AARCH64_MOVW_SABS_G1 R_AARCH64
pkg debug/elf, const R_AARCH64_MOVW_SABS_G2 = 272
pkg debug/elf, const R_AARCH64_MOVW_SABS_G2 R_AARCH64
pkg debug/elf, const R_AARCH64_MOVW_UABS_G0 = 263
pkg debug/elf, const R_AARCH64_MOVW_UABS_G0 R_AARCH64
pkg debug/elf, const R_AARCH64_MOVW_UABS_G0_NC = 264
pkg debug/elf, const R_AARCH64_MOVW_UABS_G0_NC R_AARCH64
pkg debug/elf, const R_AARCH64_MOVW_UABS_G1 = 265
pkg debug/elf, const R_AARCH64_MOVW_UABS_G1 R_AARCH64
pkg debug/elf, const R_AARCH64_MOVW_UABS_G1_NC = 266
pkg debug/elf, const R_AARCH64_MOVW_UABS_G1_NC R_AARCH64
pkg debug/elf, const R_AARCH64_MOVW_UABS_G2 = 267
pkg debug/elf, const R_AARCH64_MOVW_UABS_G2 R_AARCH64
pkg debug/elf, const R_AARCH64_MOVW_UABS_G2_NC = 268
pkg debug/elf, const R_AARCH64_MOVW_UABS_G2_NC R_AARCH64
pkg debug/elf, const R_AARCH64_MOVW_UABS_G3 = 269
pkg debug/elf, const R_AARCH64_MOVW_UABS_G3 R_AARCH64
pkg debug/elf, const R_AARCH64_NONE = 0
pkg debug/elf, const R_AARCH64_NONE R_AARCH64
pkg debug/elf, const R_AARCH64_NULL = 256
pkg debug/elf, const R_AARCH64_NULL R_AARCH64
pkg debug/elf, const R_AARCH64_P32_ABS16 = 2
pkg debug/elf, const R_AARCH64_P32_ABS16 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_ABS32 = 1
pkg debug/elf, const R_AARCH64_P32_ABS32 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_ADD_ABS_LO12_NC = 12
pkg debug/elf, const R_AARCH64_P32_ADD_ABS_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_P32_ADR_GOT_PAGE = 26
pkg debug/elf, const R_AARCH64_P32_ADR_GOT_PAGE R_AARCH64
pkg debug/elf, const R_AARCH64_P32_ADR_PREL_LO21 = 10
pkg debug/elf, const R_AARCH64_P32_ADR_PREL_LO21 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_ADR_PREL_PG_HI21 = 11
pkg debug/elf, const R_AARCH64_P32_ADR_PREL_PG_HI21 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_CALL26 = 21
pkg debug/elf, const R_AARCH64_P32_CALL26 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_CONDBR19 = 19
pkg debug/elf, const R_AARCH64_P32_CONDBR19 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_COPY = 180
pkg debug/elf, const R_AARCH64_P32_COPY R_AARCH64
pkg debug/elf, const R_AARCH64_P32_GLOB_DAT = 181
pkg debug/elf, const R_AARCH64_P32_GLOB_DAT R_AARCH64
pkg debug/elf, const R_AARCH64_P32_GOT_LD_PREL19 = 25
pkg debug/elf, const R_AARCH64_P32_GOT_LD_PREL19 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_IRELATIVE = 188
pkg debug/elf, const R_AARCH64_P32_IRELATIVE R_AARCH64
pkg debug/elf, const R_AARCH64_P32_JUMP26 = 20
pkg debug/elf, const R_AARCH64_P32_JUMP26 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_JUMP_SLOT = 182
pkg debug/elf, const R_AARCH64_P32_JUMP_SLOT R_AARCH64
pkg debug/elf, const R_AARCH64_P32_LD32_GOT_LO12_NC = 27
pkg debug/elf, const R_AARCH64_P32_LD32_GOT_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_P32_LDST128_ABS_LO12_NC = 17
pkg debug/elf, const R_AARCH64_P32_LDST128_ABS_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_P32_LDST16_ABS_LO12_NC = 14
pkg debug/elf, const R_AARCH64_P32_LDST16_ABS_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_P32_LDST32_ABS_LO12_NC = 15
pkg debug/elf, const R_AARCH64_P32_LDST32_ABS_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_P32_LDST64_ABS_LO12_NC = 16
pkg debug/elf, const R_AARCH64_P32_LDST64_ABS_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_P32_LDST8_ABS_LO12_NC = 13
pkg debug/elf, const R_AARCH64_P32_LDST8_ABS_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_P32_LD_PREL_LO19 = 9
pkg debug/elf, const R_AARCH64_P32_LD_PREL_LO19 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_MOVW_SABS_G0 = 8
pkg debug/elf, const R_AARCH64_P32_MOVW_SABS_G0 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_MOVW_UABS_G0 = 5
pkg debug/elf, const R_AARCH64_P32_MOVW_UABS_G0 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_MOVW_UABS_G0_NC = 6
pkg debug/elf, const R_AARCH64_P32_MOVW_UABS_G0_NC R_AARCH64
pkg debug/elf, const R_AARCH64_P32_MOVW_UABS_G1 = 7
pkg debug/elf, const R_AARCH64_P32_MOVW_UABS_G1 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_PREL16 = 4
pkg debug/elf, const R_AARCH64_P32_PREL16 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_PREL32 = 3
pkg debug/elf, const R_AARCH64_P32_PREL32 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_RELATIVE = 183
pkg debug/elf, const R_AARCH64_P32_RELATIVE R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLSDESC = 187
pkg debug/elf, const R_AARCH64_P32_TLSDESC R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLSDESC_ADD_LO12_NC = 126
pkg debug/elf, const R_AARCH64_P32_TLSDESC_ADD_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLSDESC_ADR_PAGE21 = 124
pkg debug/elf, const R_AARCH64_P32_TLSDESC_ADR_PAGE21 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLSDESC_ADR_PREL21 = 123
pkg debug/elf, const R_AARCH64_P32_TLSDESC_ADR_PREL21 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLSDESC_CALL = 127
pkg debug/elf, const R_AARCH64_P32_TLSDESC_CALL R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLSDESC_LD32_LO12_NC = 125
pkg debug/elf, const R_AARCH64_P32_TLSDESC_LD32_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLSDESC_LD_PREL19 = 122
pkg debug/elf, const R_AARCH64_P32_TLSDESC_LD_PREL19 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLSGD_ADD_LO12_NC = 82
pkg debug/elf, const R_AARCH64_P32_TLSGD_ADD_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLSGD_ADR_PAGE21 = 81
pkg debug/elf, const R_AARCH64_P32_TLSGD_ADR_PAGE21 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21 = 103
pkg debug/elf, const R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC = 104
pkg debug/elf, const R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19 = 105
pkg debug/elf, const R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLSLE_ADD_TPREL_HI12 = 109
pkg debug/elf, const R_AARCH64_P32_TLSLE_ADD_TPREL_HI12 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLSLE_ADD_TPREL_LO12 = 110
pkg debug/elf, const R_AARCH64_P32_TLSLE_ADD_TPREL_LO12 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC = 111
pkg debug/elf, const R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLSLE_MOVW_TPREL_G0 = 107
pkg debug/elf, const R_AARCH64_P32_TLSLE_MOVW_TPREL_G0 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC = 108
pkg debug/elf, const R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLSLE_MOVW_TPREL_G1 = 106
pkg debug/elf, const R_AARCH64_P32_TLSLE_MOVW_TPREL_G1 R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLS_DTPMOD = 184
pkg debug/elf, const R_AARCH64_P32_TLS_DTPMOD R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLS_DTPREL = 185
pkg debug/elf, const R_AARCH64_P32_TLS_DTPREL R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TLS_TPREL = 186
pkg debug/elf, const R_AARCH64_P32_TLS_TPREL R_AARCH64
pkg debug/elf, const R_AARCH64_P32_TSTBR14 = 18
pkg debug/elf, const R_AARCH64_P32_TSTBR14 R_AARCH64
pkg debug/elf, const R_AARCH64_PREL16 = 262
pkg debug/elf, const R_AARCH64_PREL16 R_AARCH64
pkg debug/elf, const R_AARCH64_PREL32 = 261
pkg debug/elf, const R_AARCH64_PREL32 R_AARCH64
pkg debug/elf, const R_AARCH64_PREL64 = 260
pkg debug/elf, const R_AARCH64_PREL64 R_AARCH64
pkg debug/elf, const R_AARCH64_RELATIVE = 1027
pkg debug/elf, const R_AARCH64_RELATIVE R_AARCH64
pkg debug/elf, const R_AARCH64_TLSDESC = 1031
pkg debug/elf, const R_AARCH64_TLSDESC R_AARCH64
pkg debug/elf, const R_AARCH64_TLSDESC_ADD = 568
pkg debug/elf, const R_AARCH64_TLSDESC_ADD R_AARCH64
pkg debug/elf, const R_AARCH64_TLSDESC_ADD_LO12_NC = 564
pkg debug/elf, const R_AARCH64_TLSDESC_ADD_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_TLSDESC_ADR_PAGE21 = 562
pkg debug/elf, const R_AARCH64_TLSDESC_ADR_PAGE21 R_AARCH64
pkg debug/elf, const R_AARCH64_TLSDESC_ADR_PREL21 = 561
pkg debug/elf, const R_AARCH64_TLSDESC_ADR_PREL21 R_AARCH64
pkg debug/elf, const R_AARCH64_TLSDESC_CALL = 569
pkg debug/elf, const R_AARCH64_TLSDESC_CALL R_AARCH64
pkg debug/elf, const R_AARCH64_TLSDESC_LD64_LO12_NC = 563
pkg debug/elf, const R_AARCH64_TLSDESC_LD64_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_TLSDESC_LDR = 567
pkg debug/elf, const R_AARCH64_TLSDESC_LDR R_AARCH64
pkg debug/elf, const R_AARCH64_TLSDESC_LD_PREL19 = 560
pkg debug/elf, const R_AARCH64_TLSDESC_LD_PREL19 R_AARCH64
pkg debug/elf, const R_AARCH64_TLSDESC_OFF_G0_NC = 566
pkg debug/elf, const R_AARCH64_TLSDESC_OFF_G0_NC R_AARCH64
pkg debug/elf, const R_AARCH64_TLSDESC_OFF_G1 = 565
pkg debug/elf, const R_AARCH64_TLSDESC_OFF_G1 R_AARCH64
pkg debug/elf, const R_AARCH64_TLSGD_ADD_LO12_NC = 514
pkg debug/elf, const R_AARCH64_TLSGD_ADD_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_TLSGD_ADR_PAGE21 = 513
pkg debug/elf, const R_AARCH64_TLSGD_ADR_PAGE21 R_AARCH64
pkg debug/elf, const R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 = 541
pkg debug/elf, const R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 R_AARCH64
pkg debug/elf, const R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC = 542
pkg debug/elf, const R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 = 543
pkg debug/elf, const R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 R_AARCH64
pkg debug/elf, const R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC = 540
pkg debug/elf, const R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC R_AARCH64
pkg debug/elf, const R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 = 539
pkg debug/elf, const R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 R_AARCH64
pkg debug/elf, const R_AARCH64_TLSLE_ADD_TPREL_HI12 = 549
pkg debug/elf, const R_AARCH64_TLSLE_ADD_TPREL_HI12 R_AARCH64
pkg debug/elf, const R_AARCH64_TLSLE_ADD_TPREL_LO12 = 550
pkg debug/elf, const R_AARCH64_TLSLE_ADD_TPREL_LO12 R_AARCH64
pkg debug/elf, const R_AARCH64_TLSLE_ADD_TPREL_LO12_NC = 551
pkg debug/elf, const R_AARCH64_TLSLE_ADD_TPREL_LO12_NC R_AARCH64
pkg debug/elf, const R_AARCH64_TLSLE_MOVW_TPREL_G0 = 547
pkg debug/elf, const R_AARCH64_TLSLE_MOVW_TPREL_G0 R_AARCH64
pkg debug/elf, const R_AARCH64_TLSLE_MOVW_TPREL_G0_NC = 548
pkg debug/elf, const R_AARCH64_TLSLE_MOVW_TPREL_G0_NC R_AARCH64
pkg debug/elf, const R_AARCH64_TLSLE_MOVW_TPREL_G1 = 545
pkg debug/elf, const R_AARCH64_TLSLE_MOVW_TPREL_G1 R_AARCH64
pkg debug/elf, const R_AARCH64_TLSLE_MOVW_TPREL_G1_NC = 546
pkg debug/elf, const R_AARCH64_TLSLE_MOVW_TPREL_G1_NC R_AARCH64
pkg debug/elf, const R_AARCH64_TLSLE_MOVW_TPREL_G2 = 544
pkg debug/elf, const R_AARCH64_TLSLE_MOVW_TPREL_G2 R_AARCH64
pkg debug/elf, const R_AARCH64_TLS_DTPMOD64 = 1028
pkg debug/elf, const R_AARCH64_TLS_DTPMOD64 R_AARCH64
pkg debug/elf, const R_AARCH64_TLS_DTPREL64 = 1029
pkg debug/elf, const R_AARCH64_TLS_DTPREL64 R_AARCH64
pkg debug/elf, const R_AARCH64_TLS_TPREL64 = 1030
pkg debug/elf, const R_AARCH64_TLS_TPREL64 R_AARCH64
pkg debug/elf, const R_AARCH64_TSTBR14 = 279
pkg debug/elf, const R_AARCH64_TSTBR14 R_AARCH64
pkg debug/elf, method (R_AARCH64) GoString() string
pkg debug/elf, method (R_AARCH64) String() string
pkg debug/elf, type R_AARCH64 int
# CL 107530043 debug/elf: add (*File).DynamicSymbols, ErrNoSymbols, and tests for (*File).Symbols and (*File).DynamicSymbols, and formalize symbol order., Pietro Gagliardi <pietro10@mac.com>
pkg debug/elf, method (*File) DynamicSymbols() ([]Symbol, error)
pkg debug/elf, var ErrNoSymbols error
# CL 106460044 debug/plan9obj, cmd/addr2line: on Plan 9 use a.out header, Aram Hăvărneanu <aram@mgk.ro>
pkg debug/plan9obj, type FileHeader struct, HdrSize uint64
pkg debug/plan9obj, type FileHeader struct, LoadAddress uint64
# CL 122960043 encoding/xml: add InputOffset method to Decoder, Russ Cox <rsc@golang.org>
pkg encoding/xml, method (*Decoder) InputOffset() int64
# CL 124940043 cmd/go, go/build: implement import comment checking, Russ Cox <rsc@golang.org>
pkg go/build, const ImportComment = 4
pkg go/build, const ImportComment ImportMode
pkg go/build, type Package struct, ImportComment string
# CL 155050043 go/build: Return MultiplePackageError on importing a dir containing multiple packages, Jens Frederich <jfrederich@gmail.com>
pkg go/build, method (*MultiplePackageError) Error() string
pkg go/build, type MultiplePackageError struct
pkg go/build, type MultiplePackageError struct, Dir string
pkg go/build, type MultiplePackageError struct, Files []string
pkg go/build, type MultiplePackageError struct, Packages []string
# CL 135110044 go/token: implement PositionFor accessors, Robert Griesemer <gri@golang.org>
pkg go/token, method (*File) PositionFor(Pos, bool) Position
pkg go/token, method (*FileSet) PositionFor(Pos, bool) Position
# CL 109000049 image: add RGBAAt, Gray16At, etc., ChaiShushan <chaishushan@gmail.com>
pkg image, method (*Alpha) AlphaAt(int, int) color.Alpha
pkg image, method (*Alpha16) Alpha16At(int, int) color.Alpha16
pkg image, method (*Gray) GrayAt(int, int) color.Gray
pkg image, method (*Gray16) Gray16At(int, int) color.Gray16
pkg image, method (*NRGBA) NRGBAAt(int, int) color.NRGBA
pkg image, method (*NRGBA64) NRGBA64At(int, int) color.NRGBA64
pkg image, method (*RGBA) RGBAAt(int, int) color.RGBA
pkg image, method (*RGBA64) RGBA64At(int, int) color.RGBA64
pkg image, method (*YCbCr) YCbCrAt(int, int) color.YCbCr
# CL 129190043 png: make the encoder configurable, Jeff R. Allen <jra@nella.org>
pkg image/png, const BestCompression = -3
pkg image/png, const BestCompression CompressionLevel
pkg image/png, const BestSpeed = -2
pkg image/png, const BestSpeed CompressionLevel
pkg image/png, const DefaultCompression = 0
pkg image/png, const DefaultCompression CompressionLevel
pkg image/png, const NoCompression = -1
pkg image/png, const NoCompression CompressionLevel
pkg image/png, method (*Encoder) Encode(io.Writer, image.Image) error
pkg image/png, type CompressionLevel int
pkg image/png, type Encoder struct
pkg image/png, type Encoder struct, CompressionLevel CompressionLevel
# CL 101750048 math: implement Nextafter32, Robert Griesemer <gri@golang.org>
pkg math, func Nextafter32(float32, float32) float32
# CL 93550043 math/big: implement Rat.Float32, Robert Griesemer <gri@golang.org>
pkg math/big, method (*Rat) Float32() (float32, bool)
# CL 76540043 net/http: add BasicAuth method to *http.Request, Kelsey Hightower <kelsey.hightower@gmail.com>
pkg net/http, method (*Request) BasicAuth() (string, string, bool)
# CL 137940043 net/http: add Transport.DialTLS hook, Brad Fitzpatrick <bradfitz@golang.org>
pkg net/http, type Transport struct, DialTLS func(string, string) (net.Conn, error)
# CL 132750043 net/http/httputil: Pass a Logger to ReverseProxy, allowing the user to control logging., Mark Theunissen <mark.theunissen@gmail.com>
pkg net/http/httputil, type ReverseProxy struct, ErrorLog *log.Logger
# CL 148370043 os, syscall: add Unsetenv, Brad Fitzpatrick <bradfitz@golang.org>
pkg os, func Unsetenv(string) error
pkg syscall, func Unsetenv(string) error
# CL 144020043 reflect: add Type.Comparable, Russ Cox <rsc@golang.org>
pkg reflect, type Type interface, Comparable() bool
# CL 153670043 runtime: add PauseEnd array to MemStats and GCStats, Jens Frederich <jfrederich@gmail.com>
pkg runtime, type MemStats struct, PauseEnd [256]uint64
pkg runtime/debug, type GCStats struct, PauseEnd []time.Time
# CL 136710045 sync/atomic: add Value, Dmitriy Vyukov <dvyukov@google.com>
pkg sync/atomic, method (*Value) Load() interface{}
pkg sync/atomic, method (*Value) Store(interface{})
pkg sync/atomic, type Value struct
# CL 126190043 syscall: support UID/GID map files for Linux user namespaces, Mrunal Patel <mrunalp@gmail.com>
pkg syscall (linux-386), type SysProcAttr struct, GidMappings []SysProcIDMap
pkg syscall (linux-386), type SysProcAttr struct, UidMappings []SysProcIDMap
pkg syscall (linux-386), type SysProcIDMap struct
pkg syscall (linux-386), type SysProcIDMap struct, ContainerID int
pkg syscall (linux-386), type SysProcIDMap struct, HostID int
pkg syscall (linux-386), type SysProcIDMap struct, Size int
pkg syscall (linux-386-cgo), type SysProcAttr struct, GidMappings []SysProcIDMap
pkg syscall (linux-386-cgo), type SysProcAttr struct, UidMappings []SysProcIDMap
pkg syscall (linux-386-cgo), type SysProcIDMap struct
pkg syscall (linux-386-cgo), type SysProcIDMap struct, ContainerID int
pkg syscall (linux-386-cgo), type SysProcIDMap struct, HostID int
pkg syscall (linux-386-cgo), type SysProcIDMap struct, Size int
pkg syscall (linux-amd64), type SysProcAttr struct, GidMappings []SysProcIDMap
pkg syscall (linux-amd64), type SysProcAttr struct, UidMappings []SysProcIDMap
pkg syscall (linux-amd64), type SysProcIDMap struct
pkg syscall (linux-amd64), type SysProcIDMap struct, ContainerID int
pkg syscall (linux-amd64), type SysProcIDMap struct, HostID int
pkg syscall (linux-amd64), type SysProcIDMap struct, Size int
pkg syscall (linux-amd64-cgo), type SysProcAttr struct, GidMappings []SysProcIDMap
pkg syscall (linux-amd64-cgo), type SysProcAttr struct, UidMappings []SysProcIDMap
pkg syscall (linux-amd64-cgo), type SysProcIDMap struct
pkg syscall (linux-amd64-cgo), type SysProcIDMap struct, ContainerID int
pkg syscall (linux-amd64-cgo), type SysProcIDMap struct, HostID int
pkg syscall (linux-amd64-cgo), type SysProcIDMap struct, Size int
pkg syscall (linux-arm), type SysProcAttr struct, GidMappings []SysProcIDMap
pkg syscall (linux-arm), type SysProcAttr struct, UidMappings []SysProcIDMap
pkg syscall (linux-arm), type SysProcIDMap struct
pkg syscall (linux-arm), type SysProcIDMap struct, ContainerID int
pkg syscall (linux-arm), type SysProcIDMap struct, HostID int
pkg syscall (linux-arm), type SysProcIDMap struct, Size int
pkg syscall (linux-arm-cgo), type SysProcAttr struct, GidMappings []SysProcIDMap
pkg syscall (linux-arm-cgo), type SysProcAttr struct, UidMappings []SysProcIDMap
pkg syscall (linux-arm-cgo), type SysProcIDMap struct
pkg syscall (linux-arm-cgo), type SysProcIDMap struct, ContainerID int
pkg syscall (linux-arm-cgo), type SysProcIDMap struct, HostID int
pkg syscall (linux-arm-cgo), type SysProcIDMap struct, Size int
# CL 122200043 net: fix CNAME resolving on Windows, Egon Elbre <egonelbre@gmail.com>
pkg syscall (windows-386), const DNS_INFO_NO_RECORDS = 9501
pkg syscall (windows-386), const DNS_INFO_NO_RECORDS ideal-int
pkg syscall (windows-386), const DnsSectionAdditional = 3
pkg syscall (windows-386), const DnsSectionAdditional ideal-int
pkg syscall (windows-386), const DnsSectionAnswer = 1
pkg syscall (windows-386), const DnsSectionAnswer ideal-int
pkg syscall (windows-386), const DnsSectionAuthority = 2
pkg syscall (windows-386), const DnsSectionAuthority ideal-int
pkg syscall (windows-386), const DnsSectionQuestion = 0
pkg syscall (windows-386), const DnsSectionQuestion ideal-int
pkg syscall (windows-386), func DnsNameCompare(*uint16, *uint16) bool
pkg syscall (windows-amd64), const DNS_INFO_NO_RECORDS = 9501
pkg syscall (windows-amd64), const DNS_INFO_NO_RECORDS ideal-int
pkg syscall (windows-amd64), const DnsSectionAdditional = 3
pkg syscall (windows-amd64), const DnsSectionAdditional ideal-int
pkg syscall (windows-amd64), const DnsSectionAnswer = 1
pkg syscall (windows-amd64), const DnsSectionAnswer ideal-int
pkg syscall (windows-amd64), const DnsSectionAuthority = 2
pkg syscall (windows-amd64), const DnsSectionAuthority ideal-int
pkg syscall (windows-amd64), const DnsSectionQuestion = 0
pkg syscall (windows-amd64), const DnsSectionQuestion ideal-int
pkg syscall (windows-amd64), func DnsNameCompare(*uint16, *uint16) bool
# CL 86160044 os: Implement symlink support for Windows, Michael Fraenkel <michael.fraenkel@gmail.com>
pkg syscall (windows-386), const ERROR_PRIVILEGE_NOT_HELD = 1314
pkg syscall (windows-386), const ERROR_PRIVILEGE_NOT_HELD Errno
pkg syscall (windows-amd64), const ERROR_PRIVILEGE_NOT_HELD = 1314
pkg syscall (windows-amd64), const ERROR_PRIVILEGE_NOT_HELD Errno
# CL 86160044 os: Implement symlink support for Windows, Michael Fraenkel <michael.fraenkel@gmail.com>
pkg syscall (windows-386), const FILE_ATTRIBUTE_REPARSE_POINT = 1024
pkg syscall (windows-386), const FILE_ATTRIBUTE_REPARSE_POINT ideal-int
pkg syscall (windows-386), const FILE_FLAG_OPEN_REPARSE_POINT = 2097152
pkg syscall (windows-386), const FILE_FLAG_OPEN_REPARSE_POINT ideal-int
pkg syscall (windows-386), const FSCTL_GET_REPARSE_POINT = 589992
pkg syscall (windows-386), const FSCTL_GET_REPARSE_POINT ideal-int
pkg syscall (windows-386), const IO_REPARSE_TAG_SYMLINK = 2684354572
pkg syscall (windows-386), const IO_REPARSE_TAG_SYMLINK ideal-int
pkg syscall (windows-386), const MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16384
pkg syscall (windows-386), const MAXIMUM_REPARSE_DATA_BUFFER_SIZE ideal-int
pkg syscall (windows-386), const SYMBOLIC_LINK_FLAG_DIRECTORY = 1
pkg syscall (windows-386), const SYMBOLIC_LINK_FLAG_DIRECTORY ideal-int
pkg syscall (windows-386), func CreateHardLink(*uint16, *uint16, uintptr) error
pkg syscall (windows-386), func CreateSymbolicLink(*uint16, *uint16, uint32) error
pkg syscall (windows-386), func DeviceIoControl(Handle, uint32, *uint8, uint32, *uint8, uint32, *uint32, *Overlapped) error
pkg syscall (windows-386), func LoadCreateSymbolicLink() error
pkg syscall (windows-amd64), const FILE_ATTRIBUTE_REPARSE_POINT = 1024
pkg syscall (windows-amd64), const FILE_ATTRIBUTE_REPARSE_POINT ideal-int
pkg syscall (windows-amd64), const FILE_FLAG_OPEN_REPARSE_POINT = 2097152
pkg syscall (windows-amd64), const FILE_FLAG_OPEN_REPARSE_POINT ideal-int
pkg syscall (windows-amd64), const FSCTL_GET_REPARSE_POINT = 589992
pkg syscall (windows-amd64), const FSCTL_GET_REPARSE_POINT ideal-int
pkg syscall (windows-amd64), const IO_REPARSE_TAG_SYMLINK = 2684354572
pkg syscall (windows-amd64), const IO_REPARSE_TAG_SYMLINK ideal-int
pkg syscall (windows-amd64), const MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16384
pkg syscall (windows-amd64), const MAXIMUM_REPARSE_DATA_BUFFER_SIZE ideal-int
pkg syscall (windows-amd64), const SYMBOLIC_LINK_FLAG_DIRECTORY = 1
pkg syscall (windows-amd64), const SYMBOLIC_LINK_FLAG_DIRECTORY ideal-int
pkg syscall (windows-amd64), func CreateHardLink(*uint16, *uint16, uintptr) error
pkg syscall (windows-amd64), func CreateSymbolicLink(*uint16, *uint16, uint32) error
pkg syscall (windows-amd64), func DeviceIoControl(Handle, uint32, *uint8, uint32, *uint8, uint32, *uint32, *Overlapped) error
pkg syscall (windows-amd64), func LoadCreateSymbolicLink() error
# CL 149510043 net: disable SIO_UDP_CONNRESET behavior on windows., Ron Hashimoto <mail@h2so5.net>
pkg syscall (windows-386), const SIO_UDP_CONNRESET = 2550136844
pkg syscall (windows-386), const SIO_UDP_CONNRESET ideal-int
pkg syscall (windows-amd64), const SIO_UDP_CONNRESET = 2550136844
pkg syscall (windows-amd64), const SIO_UDP_CONNRESET ideal-int
# CL 102320044 syscall: implement syscall.Getppid() on Windows, Alan Shreve <alan@inconshreveable.com>
pkg syscall (windows-386), const TH32CS_INHERIT = 2147483648
pkg syscall (windows-386), const TH32CS_INHERIT ideal-int
pkg syscall (windows-386), const TH32CS_SNAPALL = 15
pkg syscall (windows-386), const TH32CS_SNAPALL ideal-int
pkg syscall (windows-386), const TH32CS_SNAPHEAPLIST = 1
pkg syscall (windows-386), const TH32CS_SNAPHEAPLIST ideal-int
pkg syscall (windows-386), const TH32CS_SNAPMODULE = 8
pkg syscall (windows-386), const TH32CS_SNAPMODULE ideal-int
pkg syscall (windows-386), const TH32CS_SNAPMODULE32 = 16
pkg syscall (windows-386), const TH32CS_SNAPMODULE32 ideal-int
pkg syscall (windows-386), const TH32CS_SNAPPROCESS = 2
pkg syscall (windows-386), const TH32CS_SNAPPROCESS ideal-int
pkg syscall (windows-386), const TH32CS_SNAPTHREAD = 4
pkg syscall (windows-386), const TH32CS_SNAPTHREAD ideal-int
pkg syscall (windows-386), func CreateToolhelp32Snapshot(uint32, uint32) (Handle, error)
pkg syscall (windows-386), func Process32First(Handle, *ProcessEntry32) error
pkg syscall (windows-386), func Process32Next(Handle, *ProcessEntry32) error
pkg syscall (windows-386), type ProcessEntry32 struct
pkg syscall (windows-386), type ProcessEntry32 struct, DefaultHeapID uintptr
pkg syscall (windows-386), type ProcessEntry32 struct, ExeFile [260]uint16
pkg syscall (windows-386), type ProcessEntry32 struct, Flags uint32
pkg syscall (windows-386), type ProcessEntry32 struct, ModuleID uint32
pkg syscall (windows-386), type ProcessEntry32 struct, ParentProcessID uint32
pkg syscall (windows-386), type ProcessEntry32 struct, PriClassBase int32
pkg syscall (windows-386), type ProcessEntry32 struct, ProcessID uint32
pkg syscall (windows-386), type ProcessEntry32 struct, Size uint32
pkg syscall (windows-386), type ProcessEntry32 struct, Threads uint32
pkg syscall (windows-386), type ProcessEntry32 struct, Usage uint32
pkg syscall (windows-amd64), const TH32CS_INHERIT = 2147483648
pkg syscall (windows-amd64), const TH32CS_INHERIT ideal-int
pkg syscall (windows-amd64), const TH32CS_SNAPALL = 15
pkg syscall (windows-amd64), const TH32CS_SNAPALL ideal-int
pkg syscall (windows-amd64), const TH32CS_SNAPHEAPLIST = 1
pkg syscall (windows-amd64), const TH32CS_SNAPHEAPLIST ideal-int
pkg syscall (windows-amd64), const TH32CS_SNAPMODULE = 8
pkg syscall (windows-amd64), const TH32CS_SNAPMODULE ideal-int
pkg syscall (windows-amd64), const TH32CS_SNAPMODULE32 = 16
pkg syscall (windows-amd64), const TH32CS_SNAPMODULE32 ideal-int
pkg syscall (windows-amd64), const TH32CS_SNAPPROCESS = 2
pkg syscall (windows-amd64), const TH32CS_SNAPPROCESS ideal-int
pkg syscall (windows-amd64), const TH32CS_SNAPTHREAD = 4
pkg syscall (windows-amd64), const TH32CS_SNAPTHREAD ideal-int
pkg syscall (windows-amd64), func CreateToolhelp32Snapshot(uint32, uint32) (Handle, error)
pkg syscall (windows-amd64), func Process32First(Handle, *ProcessEntry32) error
pkg syscall (windows-amd64), func Process32Next(Handle, *ProcessEntry32) error
pkg syscall (windows-amd64), type ProcessEntry32 struct
pkg syscall (windows-amd64), type ProcessEntry32 struct, DefaultHeapID uintptr
pkg syscall (windows-amd64), type ProcessEntry32 struct, ExeFile [260]uint16
pkg syscall (windows-amd64), type ProcessEntry32 struct, Flags uint32
pkg syscall (windows-amd64), type ProcessEntry32 struct, ModuleID uint32
pkg syscall (windows-amd64), type ProcessEntry32 struct, ParentProcessID uint32
pkg syscall (windows-amd64), type ProcessEntry32 struct, PriClassBase int32
pkg syscall (windows-amd64), type ProcessEntry32 struct, ProcessID uint32
pkg syscall (windows-amd64), type ProcessEntry32 struct, Size uint32
pkg syscall (windows-amd64), type ProcessEntry32 struct, Threads uint32
pkg syscall (windows-amd64), type ProcessEntry32 struct, Usage uint32
# CL 127740043 os: make SameFile handle paths like c:a.txt properly, Alex Brainman <alex.brainman@gmail.com>
pkg syscall (windows-386), func FullPath(string) (string, error)
pkg syscall (windows-amd64), func FullPath(string) (string, error)
# CL 98150043 testing: add Coverage function, Russ Cox <rsc@golang.org>
pkg testing, func Coverage() float64
# CL 148770043 cmd/go, testing: add TestMain support, Russ Cox <rsc@golang.org>
pkg testing, func MainStart(func(string, string) (bool, error), []InternalTest, []InternalBenchmark, []InternalExample) *M
pkg testing, method (*M) Run() int
pkg testing, type M struct
# CL 108030044 text/scanner: provide facility for custom identifiers, Robert Griesemer <gri@golang.org>
pkg text/scanner, type Scanner struct, IsIdentRune func(int32, int) bool
# CL 130620043 text/template: add back pointer to Nodes for better error generation, Rob Pike <r@golang.org>
pkg text/template/parse, type DotNode struct, embedded NodeType
pkg text/template/parse, type NilNode struct, embedded NodeType
pkg text/template/parse, method (*BranchNode) Copy() Node
pkg text/template/parse, method (*IdentifierNode) SetTree(*Tree) *IdentifierNode
pkg html/template, type Error struct, Node parse.Node
# CL 127470043 unicode: strconv: regexp: Upgrade to Unicode 7.0.0., Marcel van Lohuizen <mpvl@golang.org>
pkg unicode, const Version = "7.0.0"
pkg unicode, var Bassa_Vah *RangeTable
pkg unicode, var Caucasian_Albanian *RangeTable
pkg unicode, var Duployan *RangeTable
pkg unicode, var Elbasan *RangeTable
pkg unicode, var Grantha *RangeTable
pkg unicode, var Khojki *RangeTable
pkg unicode, var Khudawadi *RangeTable
pkg unicode, var Linear_A *RangeTable
pkg unicode, var Mahajani *RangeTable
pkg unicode, var Manichaean *RangeTable
pkg unicode, var Mende_Kikakui *RangeTable
pkg unicode, var Modi *RangeTable
pkg unicode, var Mro *RangeTable
pkg unicode, var Nabataean *RangeTable
pkg unicode, var Old_North_Arabian *RangeTable
pkg unicode, var Old_Permic *RangeTable
pkg unicode, var Pahawh_Hmong *RangeTable
pkg unicode, var Palmyrene *RangeTable
pkg unicode, var Pau_Cin_Hau *RangeTable
pkg unicode, var Psalter_Pahlavi *RangeTable
pkg unicode, var Siddham *RangeTable
pkg unicode, var Tirhuta *RangeTable
pkg unicode, var Warang_Citi *RangeTable

View File

@@ -1,975 +0,0 @@
pkg archive/zip, method (*Writer) SetOffset(int64)
pkg bufio, method (*Reader) Discard(int) (int, error)
pkg bufio, method (ReadWriter) Discard(int) (int, error)
pkg bytes, func LastIndexByte([]uint8, uint8) int
pkg bytes, method (*Buffer) Cap() int
pkg bytes, method (*Reader) Size() int64
pkg crypto, const SHA512_224 = 14
pkg crypto, const SHA512_224 Hash
pkg crypto, const SHA512_256 = 15
pkg crypto, const SHA512_256 Hash
pkg crypto, type Decrypter interface { Decrypt, Public }
pkg crypto, type Decrypter interface, Decrypt(io.Reader, []uint8, DecrypterOpts) ([]uint8, error)
pkg crypto, type Decrypter interface, Public() PublicKey
pkg crypto, type DecrypterOpts interface {}
pkg crypto/cipher, func NewGCMWithNonceSize(Block, int) (AEAD, error)
pkg crypto/elliptic, type CurveParams struct, Name string
pkg crypto/rsa, method (*PrivateKey) Decrypt(io.Reader, []uint8, crypto.DecrypterOpts) ([]uint8, error)
pkg crypto/rsa, type OAEPOptions struct
pkg crypto/rsa, type OAEPOptions struct, Hash crypto.Hash
pkg crypto/rsa, type OAEPOptions struct, Label []uint8
pkg crypto/rsa, type PKCS1v15DecryptOptions struct
pkg crypto/rsa, type PKCS1v15DecryptOptions struct, SessionKeyLen int
pkg crypto/sha512, const Size224 = 28
pkg crypto/sha512, const Size224 ideal-int
pkg crypto/sha512, const Size256 = 32
pkg crypto/sha512, const Size256 ideal-int
pkg crypto/sha512, func New512_224() hash.Hash
pkg crypto/sha512, func New512_256() hash.Hash
pkg crypto/sha512, func Sum512_224([]uint8) [28]uint8
pkg crypto/sha512, func Sum512_256([]uint8) [32]uint8
pkg crypto/tls, const TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 = 49196
pkg crypto/tls, const TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 uint16
pkg crypto/tls, const TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 = 49200
pkg crypto/tls, const TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 uint16
pkg crypto/tls, method (*Config) SetSessionTicketKeys([][32]uint8)
pkg crypto/tls, type Certificate struct, SignedCertificateTimestamps [][]uint8
pkg crypto/tls, type ConnectionState struct, OCSPResponse []uint8
pkg crypto/tls, type ConnectionState struct, SignedCertificateTimestamps [][]uint8
pkg crypto/x509, method (*CertificateRequest) CheckSignature() error
pkg crypto/x509, type Certificate struct, UnhandledCriticalExtensions []asn1.ObjectIdentifier
pkg crypto/x509/pkix, type Name struct, ExtraNames []AttributeTypeAndValue
pkg database/sql, method (*DB) Stats() DBStats
pkg database/sql, type DBStats struct
pkg database/sql, type DBStats struct, OpenConnections int
pkg debug/dwarf, const ClassAddress = 1
pkg debug/dwarf, const ClassAddress Class
pkg debug/dwarf, const ClassBlock = 2
pkg debug/dwarf, const ClassBlock Class
pkg debug/dwarf, const ClassConstant = 3
pkg debug/dwarf, const ClassConstant Class
pkg debug/dwarf, const ClassExprLoc = 4
pkg debug/dwarf, const ClassExprLoc Class
pkg debug/dwarf, const ClassFlag = 5
pkg debug/dwarf, const ClassFlag Class
pkg debug/dwarf, const ClassLinePtr = 6
pkg debug/dwarf, const ClassLinePtr Class
pkg debug/dwarf, const ClassLocListPtr = 7
pkg debug/dwarf, const ClassLocListPtr Class
pkg debug/dwarf, const ClassMacPtr = 8
pkg debug/dwarf, const ClassMacPtr Class
pkg debug/dwarf, const ClassRangeListPtr = 9
pkg debug/dwarf, const ClassRangeListPtr Class
pkg debug/dwarf, const ClassReference = 10
pkg debug/dwarf, const ClassReference Class
pkg debug/dwarf, const ClassReferenceAlt = 13
pkg debug/dwarf, const ClassReferenceAlt Class
pkg debug/dwarf, const ClassReferenceSig = 11
pkg debug/dwarf, const ClassReferenceSig Class
pkg debug/dwarf, const ClassString = 12
pkg debug/dwarf, const ClassString Class
pkg debug/dwarf, const ClassStringAlt = 14
pkg debug/dwarf, const ClassStringAlt Class
pkg debug/dwarf, method (*Data) LineReader(*Entry) (*LineReader, error)
pkg debug/dwarf, method (*Entry) AttrField(Attr) *Field
pkg debug/dwarf, method (*LineReader) Next(*LineEntry) error
pkg debug/dwarf, method (*LineReader) Reset()
pkg debug/dwarf, method (*LineReader) Seek(LineReaderPos)
pkg debug/dwarf, method (*LineReader) SeekPC(uint64, *LineEntry) error
pkg debug/dwarf, method (*LineReader) Tell() LineReaderPos
pkg debug/dwarf, method (*Reader) AddressSize() int
pkg debug/dwarf, method (Class) GoString() string
pkg debug/dwarf, method (Class) String() string
pkg debug/dwarf, type Class int
pkg debug/dwarf, type Field struct, Class Class
pkg debug/dwarf, type LineEntry struct
pkg debug/dwarf, type LineEntry struct, Address uint64
pkg debug/dwarf, type LineEntry struct, BasicBlock bool
pkg debug/dwarf, type LineEntry struct, Column int
pkg debug/dwarf, type LineEntry struct, Discriminator int
pkg debug/dwarf, type LineEntry struct, EndSequence bool
pkg debug/dwarf, type LineEntry struct, EpilogueBegin bool
pkg debug/dwarf, type LineEntry struct, File *LineFile
pkg debug/dwarf, type LineEntry struct, ISA int
pkg debug/dwarf, type LineEntry struct, IsStmt bool
pkg debug/dwarf, type LineEntry struct, Line int
pkg debug/dwarf, type LineEntry struct, OpIndex int
pkg debug/dwarf, type LineEntry struct, PrologueEnd bool
pkg debug/dwarf, type LineFile struct
pkg debug/dwarf, type LineFile struct, Length int
pkg debug/dwarf, type LineFile struct, Mtime uint64
pkg debug/dwarf, type LineFile struct, Name string
pkg debug/dwarf, type LineReader struct
pkg debug/dwarf, type LineReaderPos struct
pkg debug/dwarf, var ErrUnknownPC error
pkg debug/elf, const R_PPC64_ADDR14 = 7
pkg debug/elf, const R_PPC64_ADDR14 R_PPC64
pkg debug/elf, const R_PPC64_ADDR14_BRNTAKEN = 9
pkg debug/elf, const R_PPC64_ADDR14_BRNTAKEN R_PPC64
pkg debug/elf, const R_PPC64_ADDR14_BRTAKEN = 8
pkg debug/elf, const R_PPC64_ADDR14_BRTAKEN R_PPC64
pkg debug/elf, const R_PPC64_ADDR16 = 3
pkg debug/elf, const R_PPC64_ADDR16 R_PPC64
pkg debug/elf, const R_PPC64_ADDR16_DS = 56
pkg debug/elf, const R_PPC64_ADDR16_DS R_PPC64
pkg debug/elf, const R_PPC64_ADDR16_HA = 6
pkg debug/elf, const R_PPC64_ADDR16_HA R_PPC64
pkg debug/elf, const R_PPC64_ADDR16_HI = 5
pkg debug/elf, const R_PPC64_ADDR16_HI R_PPC64
pkg debug/elf, const R_PPC64_ADDR16_HIGHER = 39
pkg debug/elf, const R_PPC64_ADDR16_HIGHER R_PPC64
pkg debug/elf, const R_PPC64_ADDR16_HIGHERA = 40
pkg debug/elf, const R_PPC64_ADDR16_HIGHERA R_PPC64
pkg debug/elf, const R_PPC64_ADDR16_HIGHEST = 41
pkg debug/elf, const R_PPC64_ADDR16_HIGHEST R_PPC64
pkg debug/elf, const R_PPC64_ADDR16_HIGHESTA = 42
pkg debug/elf, const R_PPC64_ADDR16_HIGHESTA R_PPC64
pkg debug/elf, const R_PPC64_ADDR16_LO = 4
pkg debug/elf, const R_PPC64_ADDR16_LO R_PPC64
pkg debug/elf, const R_PPC64_ADDR16_LO_DS = 57
pkg debug/elf, const R_PPC64_ADDR16_LO_DS R_PPC64
pkg debug/elf, const R_PPC64_ADDR24 = 2
pkg debug/elf, const R_PPC64_ADDR24 R_PPC64
pkg debug/elf, const R_PPC64_ADDR32 = 1
pkg debug/elf, const R_PPC64_ADDR32 R_PPC64
pkg debug/elf, const R_PPC64_ADDR64 = 38
pkg debug/elf, const R_PPC64_ADDR64 R_PPC64
pkg debug/elf, const R_PPC64_DTPMOD64 = 68
pkg debug/elf, const R_PPC64_DTPMOD64 R_PPC64
pkg debug/elf, const R_PPC64_DTPREL16 = 74
pkg debug/elf, const R_PPC64_DTPREL16 R_PPC64
pkg debug/elf, const R_PPC64_DTPREL16_DS = 101
pkg debug/elf, const R_PPC64_DTPREL16_DS R_PPC64
pkg debug/elf, const R_PPC64_DTPREL16_HA = 77
pkg debug/elf, const R_PPC64_DTPREL16_HA R_PPC64
pkg debug/elf, const R_PPC64_DTPREL16_HI = 76
pkg debug/elf, const R_PPC64_DTPREL16_HI R_PPC64
pkg debug/elf, const R_PPC64_DTPREL16_HIGHER = 103
pkg debug/elf, const R_PPC64_DTPREL16_HIGHER R_PPC64
pkg debug/elf, const R_PPC64_DTPREL16_HIGHERA = 104
pkg debug/elf, const R_PPC64_DTPREL16_HIGHERA R_PPC64
pkg debug/elf, const R_PPC64_DTPREL16_HIGHEST = 105
pkg debug/elf, const R_PPC64_DTPREL16_HIGHEST R_PPC64
pkg debug/elf, const R_PPC64_DTPREL16_HIGHESTA = 106
pkg debug/elf, const R_PPC64_DTPREL16_HIGHESTA R_PPC64
pkg debug/elf, const R_PPC64_DTPREL16_LO = 75
pkg debug/elf, const R_PPC64_DTPREL16_LO R_PPC64
pkg debug/elf, const R_PPC64_DTPREL16_LO_DS = 102
pkg debug/elf, const R_PPC64_DTPREL16_LO_DS R_PPC64
pkg debug/elf, const R_PPC64_DTPREL64 = 78
pkg debug/elf, const R_PPC64_DTPREL64 R_PPC64
pkg debug/elf, const R_PPC64_GOT16 = 14
pkg debug/elf, const R_PPC64_GOT16 R_PPC64
pkg debug/elf, const R_PPC64_GOT16_DS = 58
pkg debug/elf, const R_PPC64_GOT16_DS R_PPC64
pkg debug/elf, const R_PPC64_GOT16_HA = 17
pkg debug/elf, const R_PPC64_GOT16_HA R_PPC64
pkg debug/elf, const R_PPC64_GOT16_HI = 16
pkg debug/elf, const R_PPC64_GOT16_HI R_PPC64
pkg debug/elf, const R_PPC64_GOT16_LO = 15
pkg debug/elf, const R_PPC64_GOT16_LO R_PPC64
pkg debug/elf, const R_PPC64_GOT16_LO_DS = 59
pkg debug/elf, const R_PPC64_GOT16_LO_DS R_PPC64
pkg debug/elf, const R_PPC64_GOT_DTPREL16_DS = 91
pkg debug/elf, const R_PPC64_GOT_DTPREL16_DS R_PPC64
pkg debug/elf, const R_PPC64_GOT_DTPREL16_HA = 94
pkg debug/elf, const R_PPC64_GOT_DTPREL16_HA R_PPC64
pkg debug/elf, const R_PPC64_GOT_DTPREL16_HI = 93
pkg debug/elf, const R_PPC64_GOT_DTPREL16_HI R_PPC64
pkg debug/elf, const R_PPC64_GOT_DTPREL16_LO_DS = 92
pkg debug/elf, const R_PPC64_GOT_DTPREL16_LO_DS R_PPC64
pkg debug/elf, const R_PPC64_GOT_TLSGD16 = 79
pkg debug/elf, const R_PPC64_GOT_TLSGD16 R_PPC64
pkg debug/elf, const R_PPC64_GOT_TLSGD16_HA = 82
pkg debug/elf, const R_PPC64_GOT_TLSGD16_HA R_PPC64
pkg debug/elf, const R_PPC64_GOT_TLSGD16_HI = 81
pkg debug/elf, const R_PPC64_GOT_TLSGD16_HI R_PPC64
pkg debug/elf, const R_PPC64_GOT_TLSGD16_LO = 80
pkg debug/elf, const R_PPC64_GOT_TLSGD16_LO R_PPC64
pkg debug/elf, const R_PPC64_GOT_TLSLD16 = 83
pkg debug/elf, const R_PPC64_GOT_TLSLD16 R_PPC64
pkg debug/elf, const R_PPC64_GOT_TLSLD16_HA = 86
pkg debug/elf, const R_PPC64_GOT_TLSLD16_HA R_PPC64
pkg debug/elf, const R_PPC64_GOT_TLSLD16_HI = 85
pkg debug/elf, const R_PPC64_GOT_TLSLD16_HI R_PPC64
pkg debug/elf, const R_PPC64_GOT_TLSLD16_LO = 84
pkg debug/elf, const R_PPC64_GOT_TLSLD16_LO R_PPC64
pkg debug/elf, const R_PPC64_GOT_TPREL16_DS = 87
pkg debug/elf, const R_PPC64_GOT_TPREL16_DS R_PPC64
pkg debug/elf, const R_PPC64_GOT_TPREL16_HA = 90
pkg debug/elf, const R_PPC64_GOT_TPREL16_HA R_PPC64
pkg debug/elf, const R_PPC64_GOT_TPREL16_HI = 89
pkg debug/elf, const R_PPC64_GOT_TPREL16_HI R_PPC64
pkg debug/elf, const R_PPC64_GOT_TPREL16_LO_DS = 88
pkg debug/elf, const R_PPC64_GOT_TPREL16_LO_DS R_PPC64
pkg debug/elf, const R_PPC64_JMP_SLOT = 21
pkg debug/elf, const R_PPC64_JMP_SLOT R_PPC64
pkg debug/elf, const R_PPC64_NONE = 0
pkg debug/elf, const R_PPC64_NONE R_PPC64
pkg debug/elf, const R_PPC64_REL14 = 11
pkg debug/elf, const R_PPC64_REL14 R_PPC64
pkg debug/elf, const R_PPC64_REL14_BRNTAKEN = 13
pkg debug/elf, const R_PPC64_REL14_BRNTAKEN R_PPC64
pkg debug/elf, const R_PPC64_REL14_BRTAKEN = 12
pkg debug/elf, const R_PPC64_REL14_BRTAKEN R_PPC64
pkg debug/elf, const R_PPC64_REL16 = 249
pkg debug/elf, const R_PPC64_REL16 R_PPC64
pkg debug/elf, const R_PPC64_REL16_HA = 252
pkg debug/elf, const R_PPC64_REL16_HA R_PPC64
pkg debug/elf, const R_PPC64_REL16_HI = 251
pkg debug/elf, const R_PPC64_REL16_HI R_PPC64
pkg debug/elf, const R_PPC64_REL16_LO = 250
pkg debug/elf, const R_PPC64_REL16_LO R_PPC64
pkg debug/elf, const R_PPC64_REL24 = 10
pkg debug/elf, const R_PPC64_REL24 R_PPC64
pkg debug/elf, const R_PPC64_REL32 = 26
pkg debug/elf, const R_PPC64_REL32 R_PPC64
pkg debug/elf, const R_PPC64_REL64 = 44
pkg debug/elf, const R_PPC64_REL64 R_PPC64
pkg debug/elf, const R_PPC64_TLS = 67
pkg debug/elf, const R_PPC64_TLS R_PPC64
pkg debug/elf, const R_PPC64_TLSGD = 107
pkg debug/elf, const R_PPC64_TLSGD R_PPC64
pkg debug/elf, const R_PPC64_TLSLD = 108
pkg debug/elf, const R_PPC64_TLSLD R_PPC64
pkg debug/elf, const R_PPC64_TOC = 51
pkg debug/elf, const R_PPC64_TOC R_PPC64
pkg debug/elf, const R_PPC64_TOC16 = 47
pkg debug/elf, const R_PPC64_TOC16 R_PPC64
pkg debug/elf, const R_PPC64_TOC16_DS = 63
pkg debug/elf, const R_PPC64_TOC16_DS R_PPC64
pkg debug/elf, const R_PPC64_TOC16_HA = 50
pkg debug/elf, const R_PPC64_TOC16_HA R_PPC64
pkg debug/elf, const R_PPC64_TOC16_HI = 49
pkg debug/elf, const R_PPC64_TOC16_HI R_PPC64
pkg debug/elf, const R_PPC64_TOC16_LO = 48
pkg debug/elf, const R_PPC64_TOC16_LO R_PPC64
pkg debug/elf, const R_PPC64_TOC16_LO_DS = 64
pkg debug/elf, const R_PPC64_TOC16_LO_DS R_PPC64
pkg debug/elf, const R_PPC64_TPREL16 = 69
pkg debug/elf, const R_PPC64_TPREL16 R_PPC64
pkg debug/elf, const R_PPC64_TPREL16_DS = 95
pkg debug/elf, const R_PPC64_TPREL16_DS R_PPC64
pkg debug/elf, const R_PPC64_TPREL16_HA = 72
pkg debug/elf, const R_PPC64_TPREL16_HA R_PPC64
pkg debug/elf, const R_PPC64_TPREL16_HI = 71
pkg debug/elf, const R_PPC64_TPREL16_HI R_PPC64
pkg debug/elf, const R_PPC64_TPREL16_HIGHER = 97
pkg debug/elf, const R_PPC64_TPREL16_HIGHER R_PPC64
pkg debug/elf, const R_PPC64_TPREL16_HIGHERA = 98
pkg debug/elf, const R_PPC64_TPREL16_HIGHERA R_PPC64
pkg debug/elf, const R_PPC64_TPREL16_HIGHEST = 99
pkg debug/elf, const R_PPC64_TPREL16_HIGHEST R_PPC64
pkg debug/elf, const R_PPC64_TPREL16_HIGHESTA = 100
pkg debug/elf, const R_PPC64_TPREL16_HIGHESTA R_PPC64
pkg debug/elf, const R_PPC64_TPREL16_LO = 70
pkg debug/elf, const R_PPC64_TPREL16_LO R_PPC64
pkg debug/elf, const R_PPC64_TPREL16_LO_DS = 96
pkg debug/elf, const R_PPC64_TPREL16_LO_DS R_PPC64
pkg debug/elf, const R_PPC64_TPREL64 = 73
pkg debug/elf, const R_PPC64_TPREL64 R_PPC64
pkg debug/elf, method (R_PPC64) GoString() string
pkg debug/elf, method (R_PPC64) String() string
pkg debug/elf, type R_PPC64 int
pkg encoding/base64, const NoPadding = -1
pkg encoding/base64, const NoPadding int32
pkg encoding/base64, const StdPadding = 61
pkg encoding/base64, const StdPadding int32
pkg encoding/base64, method (Encoding) WithPadding(int32) *Encoding
pkg encoding/base64, var RawStdEncoding *Encoding
pkg encoding/base64, var RawURLEncoding *Encoding
pkg encoding/json, method (*Decoder) More() bool
pkg encoding/json, method (*Decoder) Token() (Token, error)
pkg encoding/json, method (Delim) String() string
pkg encoding/json, type Delim int32
pkg encoding/json, type Token interface {}
pkg encoding/json, type UnmarshalTypeError struct, Offset int64
pkg flag, func UnquoteUsage(*Flag) (string, string)
pkg go/ast, type EmptyStmt struct, Implicit bool
pkg go/build, type Package struct, PkgTargetRoot string
pkg go/constant, const Bool = 1
pkg go/constant, const Bool Kind
pkg go/constant, const Complex = 5
pkg go/constant, const Complex Kind
pkg go/constant, const Float = 4
pkg go/constant, const Float Kind
pkg go/constant, const Int = 3
pkg go/constant, const Int Kind
pkg go/constant, const String = 2
pkg go/constant, const String Kind
pkg go/constant, const Unknown = 0
pkg go/constant, const Unknown Kind
pkg go/constant, func BinaryOp(Value, token.Token, Value) Value
pkg go/constant, func BitLen(Value) int
pkg go/constant, func BoolVal(Value) bool
pkg go/constant, func Bytes(Value) []uint8
pkg go/constant, func Compare(Value, token.Token, Value) bool
pkg go/constant, func Denom(Value) Value
pkg go/constant, func Float32Val(Value) (float32, bool)
pkg go/constant, func Float64Val(Value) (float64, bool)
pkg go/constant, func Imag(Value) Value
pkg go/constant, func Int64Val(Value) (int64, bool)
pkg go/constant, func MakeBool(bool) Value
pkg go/constant, func MakeFloat64(float64) Value
pkg go/constant, func MakeFromBytes([]uint8) Value
pkg go/constant, func MakeFromLiteral(string, token.Token, uint) Value
pkg go/constant, func MakeImag(Value) Value
pkg go/constant, func MakeInt64(int64) Value
pkg go/constant, func MakeString(string) Value
pkg go/constant, func MakeUint64(uint64) Value
pkg go/constant, func MakeUnknown() Value
pkg go/constant, func Num(Value) Value
pkg go/constant, func Real(Value) Value
pkg go/constant, func Shift(Value, token.Token, uint) Value
pkg go/constant, func Sign(Value) int
pkg go/constant, func StringVal(Value) string
pkg go/constant, func Uint64Val(Value) (uint64, bool)
pkg go/constant, func UnaryOp(token.Token, Value, uint) Value
pkg go/constant, type Kind int
pkg go/constant, type Value interface, Kind() Kind
pkg go/constant, type Value interface, String() string
pkg go/constant, type Value interface, unexported methods
pkg go/importer, func Default() types.Importer
pkg go/importer, func For(string, Lookup) types.Importer
pkg go/importer, type Lookup func(string) (io.ReadCloser, error)
pkg go/parser, func ParseExprFrom(*token.FileSet, string, interface{}, Mode) (ast.Expr, error)
pkg go/types, const Bool = 1
pkg go/types, const Bool BasicKind
pkg go/types, const Byte = 8
pkg go/types, const Byte BasicKind
pkg go/types, const Complex128 = 16
pkg go/types, const Complex128 BasicKind
pkg go/types, const Complex64 = 15
pkg go/types, const Complex64 BasicKind
pkg go/types, const FieldVal = 0
pkg go/types, const FieldVal SelectionKind
pkg go/types, const Float32 = 13
pkg go/types, const Float32 BasicKind
pkg go/types, const Float64 = 14
pkg go/types, const Float64 BasicKind
pkg go/types, const Int = 2
pkg go/types, const Int BasicKind
pkg go/types, const Int16 = 4
pkg go/types, const Int16 BasicKind
pkg go/types, const Int32 = 5
pkg go/types, const Int32 BasicKind
pkg go/types, const Int64 = 6
pkg go/types, const Int64 BasicKind
pkg go/types, const Int8 = 3
pkg go/types, const Int8 BasicKind
pkg go/types, const Invalid = 0
pkg go/types, const Invalid BasicKind
pkg go/types, const IsBoolean = 1
pkg go/types, const IsBoolean BasicInfo
pkg go/types, const IsComplex = 16
pkg go/types, const IsComplex BasicInfo
pkg go/types, const IsConstType = 59
pkg go/types, const IsConstType BasicInfo
pkg go/types, const IsFloat = 8
pkg go/types, const IsFloat BasicInfo
pkg go/types, const IsInteger = 2
pkg go/types, const IsInteger BasicInfo
pkg go/types, const IsNumeric = 26
pkg go/types, const IsNumeric BasicInfo
pkg go/types, const IsOrdered = 42
pkg go/types, const IsOrdered BasicInfo
pkg go/types, const IsString = 32
pkg go/types, const IsString BasicInfo
pkg go/types, const IsUnsigned = 4
pkg go/types, const IsUnsigned BasicInfo
pkg go/types, const IsUntyped = 64
pkg go/types, const IsUntyped BasicInfo
pkg go/types, const MethodExpr = 2
pkg go/types, const MethodExpr SelectionKind
pkg go/types, const MethodVal = 1
pkg go/types, const MethodVal SelectionKind
pkg go/types, const RecvOnly = 2
pkg go/types, const RecvOnly ChanDir
pkg go/types, const Rune = 5
pkg go/types, const Rune BasicKind
pkg go/types, const SendOnly = 1
pkg go/types, const SendOnly ChanDir
pkg go/types, const SendRecv = 0
pkg go/types, const SendRecv ChanDir
pkg go/types, const String = 17
pkg go/types, const String BasicKind
pkg go/types, const Uint = 7
pkg go/types, const Uint BasicKind
pkg go/types, const Uint16 = 9
pkg go/types, const Uint16 BasicKind
pkg go/types, const Uint32 = 10
pkg go/types, const Uint32 BasicKind
pkg go/types, const Uint64 = 11
pkg go/types, const Uint64 BasicKind
pkg go/types, const Uint8 = 8
pkg go/types, const Uint8 BasicKind
pkg go/types, const Uintptr = 12
pkg go/types, const Uintptr BasicKind
pkg go/types, const UnsafePointer = 18
pkg go/types, const UnsafePointer BasicKind
pkg go/types, const UntypedBool = 19
pkg go/types, const UntypedBool BasicKind
pkg go/types, const UntypedComplex = 23
pkg go/types, const UntypedComplex BasicKind
pkg go/types, const UntypedFloat = 22
pkg go/types, const UntypedFloat BasicKind
pkg go/types, const UntypedInt = 20
pkg go/types, const UntypedInt BasicKind
pkg go/types, const UntypedNil = 25
pkg go/types, const UntypedNil BasicKind
pkg go/types, const UntypedRune = 21
pkg go/types, const UntypedRune BasicKind
pkg go/types, const UntypedString = 24
pkg go/types, const UntypedString BasicKind
pkg go/types, func AssertableTo(*Interface, Type) bool
pkg go/types, func AssignableTo(Type, Type) bool
pkg go/types, func Comparable(Type) bool
pkg go/types, func ConvertibleTo(Type, Type) bool
pkg go/types, func DefPredeclaredTestFuncs()
pkg go/types, func Eval(*token.FileSet, *Package, token.Pos, string) (TypeAndValue, error)
pkg go/types, func ExprString(ast.Expr) string
pkg go/types, func Id(*Package, string) string
pkg go/types, func Identical(Type, Type) bool
pkg go/types, func Implements(Type, *Interface) bool
pkg go/types, func IsInterface(Type) bool
pkg go/types, func LookupFieldOrMethod(Type, bool, *Package, string) (Object, []int, bool)
pkg go/types, func MissingMethod(Type, *Interface, bool) (*Func, bool)
pkg go/types, func NewArray(Type, int64) *Array
pkg go/types, func NewChan(ChanDir, Type) *Chan
pkg go/types, func NewChecker(*Config, *token.FileSet, *Package, *Info) *Checker
pkg go/types, func NewConst(token.Pos, *Package, string, Type, constant.Value) *Const
pkg go/types, func NewField(token.Pos, *Package, string, Type, bool) *Var
pkg go/types, func NewFunc(token.Pos, *Package, string, *Signature) *Func
pkg go/types, func NewInterface([]*Func, []*Named) *Interface
pkg go/types, func NewLabel(token.Pos, *Package, string) *Label
pkg go/types, func NewMap(Type, Type) *Map
pkg go/types, func NewMethodSet(Type) *MethodSet
pkg go/types, func NewNamed(*TypeName, Type, []*Func) *Named
pkg go/types, func NewPackage(string, string) *Package
pkg go/types, func NewParam(token.Pos, *Package, string, Type) *Var
pkg go/types, func NewPkgName(token.Pos, *Package, string, *Package) *PkgName
pkg go/types, func NewPointer(Type) *Pointer
pkg go/types, func NewScope(*Scope, token.Pos, token.Pos, string) *Scope
pkg go/types, func NewSignature(*Var, *Tuple, *Tuple, bool) *Signature
pkg go/types, func NewSlice(Type) *Slice
pkg go/types, func NewStruct([]*Var, []string) *Struct
pkg go/types, func NewTuple(...*Var) *Tuple
pkg go/types, func NewTypeName(token.Pos, *Package, string, Type) *TypeName
pkg go/types, func NewVar(token.Pos, *Package, string, Type) *Var
pkg go/types, func ObjectString(Object, Qualifier) string
pkg go/types, func RelativeTo(*Package) Qualifier
pkg go/types, func SelectionString(*Selection, Qualifier) string
pkg go/types, func TypeString(Type, Qualifier) string
pkg go/types, func WriteExpr(*bytes.Buffer, ast.Expr)
pkg go/types, func WriteSignature(*bytes.Buffer, *Signature, Qualifier)
pkg go/types, func WriteType(*bytes.Buffer, Type, Qualifier)
pkg go/types, method (*Array) Elem() Type
pkg go/types, method (*Array) Len() int64
pkg go/types, method (*Array) String() string
pkg go/types, method (*Array) Underlying() Type
pkg go/types, method (*Basic) Info() BasicInfo
pkg go/types, method (*Basic) Kind() BasicKind
pkg go/types, method (*Basic) Name() string
pkg go/types, method (*Basic) String() string
pkg go/types, method (*Basic) Underlying() Type
pkg go/types, method (*Builtin) Exported() bool
pkg go/types, method (*Builtin) Id() string
pkg go/types, method (*Builtin) Name() string
pkg go/types, method (*Builtin) Parent() *Scope
pkg go/types, method (*Builtin) Pkg() *Package
pkg go/types, method (*Builtin) Pos() token.Pos
pkg go/types, method (*Builtin) String() string
pkg go/types, method (*Builtin) Type() Type
pkg go/types, method (*Chan) Dir() ChanDir
pkg go/types, method (*Chan) Elem() Type
pkg go/types, method (*Chan) String() string
pkg go/types, method (*Chan) Underlying() Type
pkg go/types, method (*Checker) Files([]*ast.File) error
pkg go/types, method (*Config) Check(string, *token.FileSet, []*ast.File, *Info) (*Package, error)
pkg go/types, method (*Const) Exported() bool
pkg go/types, method (*Const) Id() string
pkg go/types, method (*Const) Name() string
pkg go/types, method (*Const) Parent() *Scope
pkg go/types, method (*Const) Pkg() *Package
pkg go/types, method (*Const) Pos() token.Pos
pkg go/types, method (*Const) String() string
pkg go/types, method (*Const) Type() Type
pkg go/types, method (*Const) Val() constant.Value
pkg go/types, method (*Func) Exported() bool
pkg go/types, method (*Func) FullName() string
pkg go/types, method (*Func) Id() string
pkg go/types, method (*Func) Name() string
pkg go/types, method (*Func) Parent() *Scope
pkg go/types, method (*Func) Pkg() *Package
pkg go/types, method (*Func) Pos() token.Pos
pkg go/types, method (*Func) Scope() *Scope
pkg go/types, method (*Func) String() string
pkg go/types, method (*Func) Type() Type
pkg go/types, method (*Info) ObjectOf(*ast.Ident) Object
pkg go/types, method (*Info) TypeOf(ast.Expr) Type
pkg go/types, method (*Initializer) String() string
pkg go/types, method (*Interface) Complete() *Interface
pkg go/types, method (*Interface) Embedded(int) *Named
pkg go/types, method (*Interface) Empty() bool
pkg go/types, method (*Interface) ExplicitMethod(int) *Func
pkg go/types, method (*Interface) Method(int) *Func
pkg go/types, method (*Interface) NumEmbeddeds() int
pkg go/types, method (*Interface) NumExplicitMethods() int
pkg go/types, method (*Interface) NumMethods() int
pkg go/types, method (*Interface) String() string
pkg go/types, method (*Interface) Underlying() Type
pkg go/types, method (*Label) Exported() bool
pkg go/types, method (*Label) Id() string
pkg go/types, method (*Label) Name() string
pkg go/types, method (*Label) Parent() *Scope
pkg go/types, method (*Label) Pkg() *Package
pkg go/types, method (*Label) Pos() token.Pos
pkg go/types, method (*Label) String() string
pkg go/types, method (*Label) Type() Type
pkg go/types, method (*Map) Elem() Type
pkg go/types, method (*Map) Key() Type
pkg go/types, method (*Map) String() string
pkg go/types, method (*Map) Underlying() Type
pkg go/types, method (*MethodSet) At(int) *Selection
pkg go/types, method (*MethodSet) Len() int
pkg go/types, method (*MethodSet) Lookup(*Package, string) *Selection
pkg go/types, method (*MethodSet) String() string
pkg go/types, method (*Named) AddMethod(*Func)
pkg go/types, method (*Named) Method(int) *Func
pkg go/types, method (*Named) NumMethods() int
pkg go/types, method (*Named) Obj() *TypeName
pkg go/types, method (*Named) SetUnderlying(Type)
pkg go/types, method (*Named) String() string
pkg go/types, method (*Named) Underlying() Type
pkg go/types, method (*Nil) Exported() bool
pkg go/types, method (*Nil) Id() string
pkg go/types, method (*Nil) Name() string
pkg go/types, method (*Nil) Parent() *Scope
pkg go/types, method (*Nil) Pkg() *Package
pkg go/types, method (*Nil) Pos() token.Pos
pkg go/types, method (*Nil) String() string
pkg go/types, method (*Nil) Type() Type
pkg go/types, method (*Package) Complete() bool
pkg go/types, method (*Package) Imports() []*Package
pkg go/types, method (*Package) MarkComplete()
pkg go/types, method (*Package) Name() string
pkg go/types, method (*Package) Path() string
pkg go/types, method (*Package) Scope() *Scope
pkg go/types, method (*Package) SetImports([]*Package)
pkg go/types, method (*Package) String() string
pkg go/types, method (*PkgName) Exported() bool
pkg go/types, method (*PkgName) Id() string
pkg go/types, method (*PkgName) Imported() *Package
pkg go/types, method (*PkgName) Name() string
pkg go/types, method (*PkgName) Parent() *Scope
pkg go/types, method (*PkgName) Pkg() *Package
pkg go/types, method (*PkgName) Pos() token.Pos
pkg go/types, method (*PkgName) String() string
pkg go/types, method (*PkgName) Type() Type
pkg go/types, method (*Pointer) Elem() Type
pkg go/types, method (*Pointer) String() string
pkg go/types, method (*Pointer) Underlying() Type
pkg go/types, method (*Scope) Child(int) *Scope
pkg go/types, method (*Scope) Contains(token.Pos) bool
pkg go/types, method (*Scope) End() token.Pos
pkg go/types, method (*Scope) Innermost(token.Pos) *Scope
pkg go/types, method (*Scope) Insert(Object) Object
pkg go/types, method (*Scope) Len() int
pkg go/types, method (*Scope) Lookup(string) Object
pkg go/types, method (*Scope) LookupParent(string, token.Pos) (*Scope, Object)
pkg go/types, method (*Scope) Names() []string
pkg go/types, method (*Scope) NumChildren() int
pkg go/types, method (*Scope) Parent() *Scope
pkg go/types, method (*Scope) Pos() token.Pos
pkg go/types, method (*Scope) String() string
pkg go/types, method (*Scope) WriteTo(io.Writer, int, bool)
pkg go/types, method (*Selection) Index() []int
pkg go/types, method (*Selection) Indirect() bool
pkg go/types, method (*Selection) Kind() SelectionKind
pkg go/types, method (*Selection) Obj() Object
pkg go/types, method (*Selection) Recv() Type
pkg go/types, method (*Selection) String() string
pkg go/types, method (*Selection) Type() Type
pkg go/types, method (*Signature) Params() *Tuple
pkg go/types, method (*Signature) Recv() *Var
pkg go/types, method (*Signature) Results() *Tuple
pkg go/types, method (*Signature) String() string
pkg go/types, method (*Signature) Underlying() Type
pkg go/types, method (*Signature) Variadic() bool
pkg go/types, method (*Slice) Elem() Type
pkg go/types, method (*Slice) String() string
pkg go/types, method (*Slice) Underlying() Type
pkg go/types, method (*StdSizes) Alignof(Type) int64
pkg go/types, method (*StdSizes) Offsetsof([]*Var) []int64
pkg go/types, method (*StdSizes) Sizeof(Type) int64
pkg go/types, method (*Struct) Field(int) *Var
pkg go/types, method (*Struct) NumFields() int
pkg go/types, method (*Struct) String() string
pkg go/types, method (*Struct) Tag(int) string
pkg go/types, method (*Struct) Underlying() Type
pkg go/types, method (*Tuple) At(int) *Var
pkg go/types, method (*Tuple) Len() int
pkg go/types, method (*Tuple) String() string
pkg go/types, method (*Tuple) Underlying() Type
pkg go/types, method (*TypeName) Exported() bool
pkg go/types, method (*TypeName) Id() string
pkg go/types, method (*TypeName) Name() string
pkg go/types, method (*TypeName) Parent() *Scope
pkg go/types, method (*TypeName) Pkg() *Package
pkg go/types, method (*TypeName) Pos() token.Pos
pkg go/types, method (*TypeName) String() string
pkg go/types, method (*TypeName) Type() Type
pkg go/types, method (*Var) Anonymous() bool
pkg go/types, method (*Var) Exported() bool
pkg go/types, method (*Var) Id() string
pkg go/types, method (*Var) IsField() bool
pkg go/types, method (*Var) Name() string
pkg go/types, method (*Var) Parent() *Scope
pkg go/types, method (*Var) Pkg() *Package
pkg go/types, method (*Var) Pos() token.Pos
pkg go/types, method (*Var) String() string
pkg go/types, method (*Var) Type() Type
pkg go/types, method (Checker) ObjectOf(*ast.Ident) Object
pkg go/types, method (Checker) TypeOf(ast.Expr) Type
pkg go/types, method (Error) Error() string
pkg go/types, method (TypeAndValue) Addressable() bool
pkg go/types, method (TypeAndValue) Assignable() bool
pkg go/types, method (TypeAndValue) HasOk() bool
pkg go/types, method (TypeAndValue) IsBuiltin() bool
pkg go/types, method (TypeAndValue) IsNil() bool
pkg go/types, method (TypeAndValue) IsType() bool
pkg go/types, method (TypeAndValue) IsValue() bool
pkg go/types, method (TypeAndValue) IsVoid() bool
pkg go/types, type Array struct
pkg go/types, type Basic struct
pkg go/types, type BasicInfo int
pkg go/types, type BasicKind int
pkg go/types, type Builtin struct
pkg go/types, type Chan struct
pkg go/types, type ChanDir int
pkg go/types, type Checker struct
pkg go/types, type Checker struct, embedded *Info
pkg go/types, type Config struct
pkg go/types, type Config struct, DisableUnusedImportCheck bool
pkg go/types, type Config struct, Error func(error)
pkg go/types, type Config struct, FakeImportC bool
pkg go/types, type Config struct, IgnoreFuncBodies bool
pkg go/types, type Config struct, Importer Importer
pkg go/types, type Config struct, Sizes Sizes
pkg go/types, type Const struct
pkg go/types, type Error struct
pkg go/types, type Error struct, Fset *token.FileSet
pkg go/types, type Error struct, Msg string
pkg go/types, type Error struct, Pos token.Pos
pkg go/types, type Error struct, Soft bool
pkg go/types, type Func struct
pkg go/types, type Importer interface { Import }
pkg go/types, type Importer interface, Import(string) (*Package, error)
pkg go/types, type Info struct
pkg go/types, type Info struct, Defs map[*ast.Ident]Object
pkg go/types, type Info struct, Implicits map[ast.Node]Object
pkg go/types, type Info struct, InitOrder []*Initializer
pkg go/types, type Info struct, Scopes map[ast.Node]*Scope
pkg go/types, type Info struct, Selections map[*ast.SelectorExpr]*Selection
pkg go/types, type Info struct, Types map[ast.Expr]TypeAndValue
pkg go/types, type Info struct, Uses map[*ast.Ident]Object
pkg go/types, type Initializer struct
pkg go/types, type Initializer struct, Lhs []*Var
pkg go/types, type Initializer struct, Rhs ast.Expr
pkg go/types, type Interface struct
pkg go/types, type Label struct
pkg go/types, type Map struct
pkg go/types, type MethodSet struct
pkg go/types, type Named struct
pkg go/types, type Nil struct
pkg go/types, type Object interface, Exported() bool
pkg go/types, type Object interface, Id() string
pkg go/types, type Object interface, Name() string
pkg go/types, type Object interface, Parent() *Scope
pkg go/types, type Object interface, Pkg() *Package
pkg go/types, type Object interface, Pos() token.Pos
pkg go/types, type Object interface, String() string
pkg go/types, type Object interface, Type() Type
pkg go/types, type Object interface, unexported methods
pkg go/types, type Package struct
pkg go/types, type PkgName struct
pkg go/types, type Pointer struct
pkg go/types, type Qualifier func(*Package) string
pkg go/types, type Scope struct
pkg go/types, type Selection struct
pkg go/types, type SelectionKind int
pkg go/types, type Signature struct
pkg go/types, type Sizes interface { Alignof, Offsetsof, Sizeof }
pkg go/types, type Sizes interface, Alignof(Type) int64
pkg go/types, type Sizes interface, Offsetsof([]*Var) []int64
pkg go/types, type Sizes interface, Sizeof(Type) int64
pkg go/types, type Slice struct
pkg go/types, type StdSizes struct
pkg go/types, type StdSizes struct, MaxAlign int64
pkg go/types, type StdSizes struct, WordSize int64
pkg go/types, type Struct struct
pkg go/types, type Tuple struct
pkg go/types, type Type interface { String, Underlying }
pkg go/types, type Type interface, String() string
pkg go/types, type Type interface, Underlying() Type
pkg go/types, type TypeAndValue struct
pkg go/types, type TypeAndValue struct, Type Type
pkg go/types, type TypeAndValue struct, Value constant.Value
pkg go/types, type TypeName struct
pkg go/types, type Var struct
pkg go/types, var Typ []*Basic
pkg go/types, var Universe *Scope
pkg go/types, var Unsafe *Package
pkg html/template, method (*Template) Option(...string) *Template
pkg image, const YCbCrSubsampleRatio410 = 5
pkg image, const YCbCrSubsampleRatio410 YCbCrSubsampleRatio
pkg image, const YCbCrSubsampleRatio411 = 4
pkg image, const YCbCrSubsampleRatio411 YCbCrSubsampleRatio
pkg image, func NewCMYK(Rectangle) *CMYK
pkg image, method (*CMYK) At(int, int) color.Color
pkg image, method (*CMYK) Bounds() Rectangle
pkg image, method (*CMYK) CMYKAt(int, int) color.CMYK
pkg image, method (*CMYK) ColorModel() color.Model
pkg image, method (*CMYK) Opaque() bool
pkg image, method (*CMYK) PixOffset(int, int) int
pkg image, method (*CMYK) Set(int, int, color.Color)
pkg image, method (*CMYK) SetCMYK(int, int, color.CMYK)
pkg image, method (*CMYK) SubImage(Rectangle) Image
pkg image, method (Rectangle) At(int, int) color.Color
pkg image, method (Rectangle) Bounds() Rectangle
pkg image, method (Rectangle) ColorModel() color.Model
pkg image, type CMYK struct
pkg image, type CMYK struct, Pix []uint8
pkg image, type CMYK struct, Rect Rectangle
pkg image, type CMYK struct, Stride int
pkg image/color, func CMYKToRGB(uint8, uint8, uint8, uint8) (uint8, uint8, uint8)
pkg image/color, func RGBToCMYK(uint8, uint8, uint8) (uint8, uint8, uint8, uint8)
pkg image/color, method (CMYK) RGBA() (uint32, uint32, uint32, uint32)
pkg image/color, type CMYK struct
pkg image/color, type CMYK struct, C uint8
pkg image/color, type CMYK struct, K uint8
pkg image/color, type CMYK struct, M uint8
pkg image/color, type CMYK struct, Y uint8
pkg image/color, var CMYKModel Model
pkg image/gif, const DisposalBackground = 2
pkg image/gif, const DisposalBackground ideal-int
pkg image/gif, const DisposalNone = 1
pkg image/gif, const DisposalNone ideal-int
pkg image/gif, const DisposalPrevious = 3
pkg image/gif, const DisposalPrevious ideal-int
pkg image/gif, type GIF struct, BackgroundIndex uint8
pkg image/gif, type GIF struct, Config image.Config
pkg image/gif, type GIF struct, Disposal []uint8
pkg io, func CopyBuffer(Writer, Reader, []uint8) (int64, error)
pkg log, const LUTC = 32
pkg log, const LUTC ideal-int
pkg log, func Output(int, string) error
pkg log, method (*Logger) SetOutput(io.Writer)
pkg math/big, const Above = 1
pkg math/big, const Above Accuracy
pkg math/big, const AwayFromZero = 3
pkg math/big, const AwayFromZero RoundingMode
pkg math/big, const Below = -1
pkg math/big, const Below Accuracy
pkg math/big, const Exact = 0
pkg math/big, const Exact Accuracy
pkg math/big, const MaxExp = 2147483647
pkg math/big, const MaxExp ideal-int
pkg math/big, const MaxPrec = 4294967295
pkg math/big, const MaxPrec ideal-int
pkg math/big, const MinExp = -2147483648
pkg math/big, const MinExp ideal-int
pkg math/big, const ToNearestAway = 1
pkg math/big, const ToNearestAway RoundingMode
pkg math/big, const ToNearestEven = 0
pkg math/big, const ToNearestEven RoundingMode
pkg math/big, const ToNegativeInf = 4
pkg math/big, const ToNegativeInf RoundingMode
pkg math/big, const ToPositiveInf = 5
pkg math/big, const ToPositiveInf RoundingMode
pkg math/big, const ToZero = 2
pkg math/big, const ToZero RoundingMode
pkg math/big, func Jacobi(*Int, *Int) int
pkg math/big, func NewFloat(float64) *Float
pkg math/big, func ParseFloat(string, int, uint, RoundingMode) (*Float, int, error)
pkg math/big, method (*Float) Abs(*Float) *Float
pkg math/big, method (*Float) Acc() Accuracy
pkg math/big, method (*Float) Add(*Float, *Float) *Float
pkg math/big, method (*Float) Append([]uint8, uint8, int) []uint8
pkg math/big, method (*Float) Cmp(*Float) int
pkg math/big, method (*Float) Copy(*Float) *Float
pkg math/big, method (*Float) Float32() (float32, Accuracy)
pkg math/big, method (*Float) Float64() (float64, Accuracy)
pkg math/big, method (*Float) Format(fmt.State, int32)
pkg math/big, method (*Float) Int(*Int) (*Int, Accuracy)
pkg math/big, method (*Float) Int64() (int64, Accuracy)
pkg math/big, method (*Float) IsInf() bool
pkg math/big, method (*Float) IsInt() bool
pkg math/big, method (*Float) MantExp(*Float) int
pkg math/big, method (*Float) MinPrec() uint
pkg math/big, method (*Float) Mode() RoundingMode
pkg math/big, method (*Float) Mul(*Float, *Float) *Float
pkg math/big, method (*Float) Neg(*Float) *Float
pkg math/big, method (*Float) Parse(string, int) (*Float, int, error)
pkg math/big, method (*Float) Prec() uint
pkg math/big, method (*Float) Quo(*Float, *Float) *Float
pkg math/big, method (*Float) Rat(*Rat) (*Rat, Accuracy)
pkg math/big, method (*Float) Set(*Float) *Float
pkg math/big, method (*Float) SetFloat64(float64) *Float
pkg math/big, method (*Float) SetInf(bool) *Float
pkg math/big, method (*Float) SetInt(*Int) *Float
pkg math/big, method (*Float) SetInt64(int64) *Float
pkg math/big, method (*Float) SetMantExp(*Float, int) *Float
pkg math/big, method (*Float) SetMode(RoundingMode) *Float
pkg math/big, method (*Float) SetPrec(uint) *Float
pkg math/big, method (*Float) SetRat(*Rat) *Float
pkg math/big, method (*Float) SetString(string) (*Float, bool)
pkg math/big, method (*Float) SetUint64(uint64) *Float
pkg math/big, method (*Float) Sign() int
pkg math/big, method (*Float) Signbit() bool
pkg math/big, method (*Float) String() string
pkg math/big, method (*Float) Sub(*Float, *Float) *Float
pkg math/big, method (*Float) Text(uint8, int) string
pkg math/big, method (*Float) Uint64() (uint64, Accuracy)
pkg math/big, method (*Int) ModSqrt(*Int, *Int) *Int
pkg math/big, method (Accuracy) String() string
pkg math/big, method (ErrNaN) Error() string
pkg math/big, method (RoundingMode) String() string
pkg math/big, type Accuracy int8
pkg math/big, type ErrNaN struct
pkg math/big, type Float struct
pkg math/big, type RoundingMode uint8
pkg mime, const BEncoding = 98
pkg mime, const BEncoding WordEncoder
pkg mime, const QEncoding = 113
pkg mime, const QEncoding WordEncoder
pkg mime, func ExtensionsByType(string) ([]string, error)
pkg mime, method (*WordDecoder) Decode(string) (string, error)
pkg mime, method (*WordDecoder) DecodeHeader(string) (string, error)
pkg mime, method (WordEncoder) Encode(string, string) string
pkg mime, type WordDecoder struct
pkg mime, type WordDecoder struct, CharsetReader func(string, io.Reader) (io.Reader, error)
pkg mime, type WordEncoder uint8
pkg mime/quotedprintable, func NewReader(io.Reader) *Reader
pkg mime/quotedprintable, func NewWriter(io.Writer) *Writer
pkg mime/quotedprintable, method (*Reader) Read([]uint8) (int, error)
pkg mime/quotedprintable, method (*Writer) Close() error
pkg mime/quotedprintable, method (*Writer) Write([]uint8) (int, error)
pkg mime/quotedprintable, type Reader struct
pkg mime/quotedprintable, type Writer struct
pkg mime/quotedprintable, type Writer struct, Binary bool
pkg net, type Dialer struct, FallbackDelay time.Duration
pkg net, type OpError struct, Source Addr
pkg net/http, type Request struct, Cancel <-chan struct
pkg net/http/fcgi, var ErrConnClosed error
pkg net/http/fcgi, var ErrRequestAborted error
pkg net/http/pprof, func Trace(http.ResponseWriter, *http.Request)
pkg net/mail, method (*AddressParser) Parse(string) (*Address, error)
pkg net/mail, method (*AddressParser) ParseList(string) ([]*Address, error)
pkg net/mail, type AddressParser struct
pkg net/mail, type AddressParser struct, WordDecoder *mime.WordDecoder
pkg net/smtp, method (*Client) TLSConnectionState() (tls.ConnectionState, bool)
pkg net/url, method (*URL) EscapedPath() string
pkg net/url, type URL struct, RawPath string
pkg os, func LookupEnv(string) (string, bool)
pkg os/signal, func Ignore(...os.Signal)
pkg os/signal, func Reset(...os.Signal)
pkg reflect, func ArrayOf(int, Type) Type
pkg reflect, func FuncOf([]Type, []Type, bool) Type
pkg runtime, func ReadTrace() []uint8
pkg runtime, func StartTrace() error
pkg runtime, func StopTrace()
pkg runtime, type MemStats struct, GCCPUFraction float64
pkg runtime/trace, func Start(io.Writer) error
pkg runtime/trace, func Stop()
pkg strings, func Compare(string, string) int
pkg strings, func LastIndexByte(string, uint8) int
pkg strings, method (*Reader) Size() int64
pkg syscall (darwin-386), type SysProcAttr struct, Ctty int
pkg syscall (darwin-386), type SysProcAttr struct, Foreground bool
pkg syscall (darwin-386), type SysProcAttr struct, Pgid int
pkg syscall (darwin-386-cgo), type SysProcAttr struct, Ctty int
pkg syscall (darwin-386-cgo), type SysProcAttr struct, Foreground bool
pkg syscall (darwin-386-cgo), type SysProcAttr struct, Pgid int
pkg syscall (darwin-amd64), type SysProcAttr struct, Ctty int
pkg syscall (darwin-amd64), type SysProcAttr struct, Foreground bool
pkg syscall (darwin-amd64), type SysProcAttr struct, Pgid int
pkg syscall (darwin-amd64-cgo), type SysProcAttr struct, Ctty int
pkg syscall (darwin-amd64-cgo), type SysProcAttr struct, Foreground bool
pkg syscall (darwin-amd64-cgo), type SysProcAttr struct, Pgid int
pkg syscall (freebsd-386), type SysProcAttr struct, Ctty int
pkg syscall (freebsd-386), type SysProcAttr struct, Foreground bool
pkg syscall (freebsd-386), type SysProcAttr struct, Pgid int
pkg syscall (freebsd-386-cgo), type SysProcAttr struct, Ctty int
pkg syscall (freebsd-386-cgo), type SysProcAttr struct, Foreground bool
pkg syscall (freebsd-386-cgo), type SysProcAttr struct, Pgid int
pkg syscall (freebsd-amd64), type SysProcAttr struct, Ctty int
pkg syscall (freebsd-amd64), type SysProcAttr struct, Foreground bool
pkg syscall (freebsd-amd64), type SysProcAttr struct, Pgid int
pkg syscall (freebsd-amd64-cgo), type SysProcAttr struct, Ctty int
pkg syscall (freebsd-amd64-cgo), type SysProcAttr struct, Foreground bool
pkg syscall (freebsd-amd64-cgo), type SysProcAttr struct, Pgid int
pkg syscall (freebsd-arm), type SysProcAttr struct, Ctty int
pkg syscall (freebsd-arm), type SysProcAttr struct, Foreground bool
pkg syscall (freebsd-arm), type SysProcAttr struct, Pgid int
pkg syscall (freebsd-arm-cgo), type SysProcAttr struct, Ctty int
pkg syscall (freebsd-arm-cgo), type SysProcAttr struct, Foreground bool
pkg syscall (freebsd-arm-cgo), type SysProcAttr struct, Pgid int
pkg syscall (linux-386), type SysProcAttr struct, Foreground bool
pkg syscall (linux-386), type SysProcAttr struct, GidMappingsEnableSetgroups bool
pkg syscall (linux-386), type SysProcAttr struct, Pgid int
pkg syscall (linux-386-cgo), type SysProcAttr struct, Foreground bool
pkg syscall (linux-386-cgo), type SysProcAttr struct, GidMappingsEnableSetgroups bool
pkg syscall (linux-386-cgo), type SysProcAttr struct, Pgid int
pkg syscall (linux-amd64), type SysProcAttr struct, Foreground bool
pkg syscall (linux-amd64), type SysProcAttr struct, GidMappingsEnableSetgroups bool
pkg syscall (linux-amd64), type SysProcAttr struct, Pgid int
pkg syscall (linux-amd64-cgo), type SysProcAttr struct, Foreground bool
pkg syscall (linux-amd64-cgo), type SysProcAttr struct, GidMappingsEnableSetgroups bool
pkg syscall (linux-amd64-cgo), type SysProcAttr struct, Pgid int
pkg syscall (linux-arm), type SysProcAttr struct, Foreground bool
pkg syscall (linux-arm), type SysProcAttr struct, GidMappingsEnableSetgroups bool
pkg syscall (linux-arm), type SysProcAttr struct, Pgid int
pkg syscall (linux-arm-cgo), type SysProcAttr struct, Foreground bool
pkg syscall (linux-arm-cgo), type SysProcAttr struct, GidMappingsEnableSetgroups bool
pkg syscall (linux-arm-cgo), type SysProcAttr struct, Pgid int
pkg syscall (netbsd-386), type SysProcAttr struct, Ctty int
pkg syscall (netbsd-386), type SysProcAttr struct, Foreground bool
pkg syscall (netbsd-386), type SysProcAttr struct, Pgid int
pkg syscall (netbsd-386-cgo), type SysProcAttr struct, Ctty int
pkg syscall (netbsd-386-cgo), type SysProcAttr struct, Foreground bool
pkg syscall (netbsd-386-cgo), type SysProcAttr struct, Pgid int
pkg syscall (netbsd-amd64), type SysProcAttr struct, Ctty int
pkg syscall (netbsd-amd64), type SysProcAttr struct, Foreground bool
pkg syscall (netbsd-amd64), type SysProcAttr struct, Pgid int
pkg syscall (netbsd-amd64-cgo), type SysProcAttr struct, Ctty int
pkg syscall (netbsd-amd64-cgo), type SysProcAttr struct, Foreground bool
pkg syscall (netbsd-amd64-cgo), type SysProcAttr struct, Pgid int
pkg syscall (netbsd-arm), type SysProcAttr struct, Ctty int
pkg syscall (netbsd-arm), type SysProcAttr struct, Foreground bool
pkg syscall (netbsd-arm), type SysProcAttr struct, Pgid int
pkg syscall (netbsd-arm-cgo), type SysProcAttr struct, Ctty int
pkg syscall (netbsd-arm-cgo), type SysProcAttr struct, Foreground bool
pkg syscall (netbsd-arm-cgo), type SysProcAttr struct, Pgid int
pkg syscall (openbsd-386), type SysProcAttr struct, Ctty int
pkg syscall (openbsd-386), type SysProcAttr struct, Foreground bool
pkg syscall (openbsd-386), type SysProcAttr struct, Pgid int
pkg syscall (openbsd-386-cgo), type SysProcAttr struct, Ctty int
pkg syscall (openbsd-386-cgo), type SysProcAttr struct, Foreground bool
pkg syscall (openbsd-386-cgo), type SysProcAttr struct, Pgid int
pkg syscall (openbsd-amd64), type SysProcAttr struct, Ctty int
pkg syscall (openbsd-amd64), type SysProcAttr struct, Foreground bool
pkg syscall (openbsd-amd64), type SysProcAttr struct, Pgid int
pkg syscall (openbsd-amd64-cgo), type SysProcAttr struct, Ctty int
pkg syscall (openbsd-amd64-cgo), type SysProcAttr struct, Foreground bool
pkg syscall (openbsd-amd64-cgo), type SysProcAttr struct, Pgid int
pkg text/template, method (*Template) DefinedTemplates() string
pkg text/template, method (*Template) Option(...string) *Template
pkg time, method (Time) AppendFormat([]uint8, string) []uint8
pkg unicode, const Version = "8.0.0"
pkg unicode, var Ahom *RangeTable
pkg unicode, var Anatolian_Hieroglyphs *RangeTable
pkg unicode, var Hatran *RangeTable
pkg unicode, var Multani *RangeTable
pkg unicode, var Old_Hungarian *RangeTable
pkg unicode, var SignWriting *RangeTable

View File

@@ -1,275 +0,0 @@
pkg archive/zip, method (*ReadCloser) RegisterDecompressor(uint16, Decompressor)
pkg archive/zip, method (*Reader) RegisterDecompressor(uint16, Decompressor)
pkg archive/zip, method (*Writer) RegisterCompressor(uint16, Compressor)
pkg bufio, method (*Scanner) Buffer([]uint8, int)
pkg bufio, var ErrFinalToken error
pkg crypto/tls, const TLS_RSA_WITH_AES_128_GCM_SHA256 = 156
pkg crypto/tls, const TLS_RSA_WITH_AES_128_GCM_SHA256 uint16
pkg crypto/tls, const TLS_RSA_WITH_AES_256_GCM_SHA384 = 157
pkg crypto/tls, const TLS_RSA_WITH_AES_256_GCM_SHA384 uint16
pkg crypto/tls, method (RecordHeaderError) Error() string
pkg crypto/tls, type RecordHeaderError struct
pkg crypto/tls, type RecordHeaderError struct, Msg string
pkg crypto/tls, type RecordHeaderError struct, RecordHeader [5]uint8
pkg crypto/x509, method (InsecureAlgorithmError) Error() string
pkg crypto/x509, method (SignatureAlgorithm) String() string
pkg crypto/x509, type InsecureAlgorithmError int
pkg database/sql, method (*DB) SetConnMaxLifetime(time.Duration)
pkg debug/dwarf, const ClassUnknown = 0
pkg debug/dwarf, const ClassUnknown Class
pkg debug/elf, const COMPRESS_HIOS = 1879048191
pkg debug/elf, const COMPRESS_HIOS CompressionType
pkg debug/elf, const COMPRESS_HIPROC = 2147483647
pkg debug/elf, const COMPRESS_HIPROC CompressionType
pkg debug/elf, const COMPRESS_LOOS = 1610612736
pkg debug/elf, const COMPRESS_LOOS CompressionType
pkg debug/elf, const COMPRESS_LOPROC = 1879048192
pkg debug/elf, const COMPRESS_LOPROC CompressionType
pkg debug/elf, const COMPRESS_ZLIB = 1
pkg debug/elf, const COMPRESS_ZLIB CompressionType
pkg debug/elf, const R_MIPS_16 = 1
pkg debug/elf, const R_MIPS_16 R_MIPS
pkg debug/elf, const R_MIPS_26 = 4
pkg debug/elf, const R_MIPS_26 R_MIPS
pkg debug/elf, const R_MIPS_32 = 2
pkg debug/elf, const R_MIPS_32 R_MIPS
pkg debug/elf, const R_MIPS_64 = 18
pkg debug/elf, const R_MIPS_64 R_MIPS
pkg debug/elf, const R_MIPS_ADD_IMMEDIATE = 34
pkg debug/elf, const R_MIPS_ADD_IMMEDIATE R_MIPS
pkg debug/elf, const R_MIPS_CALL16 = 11
pkg debug/elf, const R_MIPS_CALL16 R_MIPS
pkg debug/elf, const R_MIPS_CALL_HI16 = 30
pkg debug/elf, const R_MIPS_CALL_HI16 R_MIPS
pkg debug/elf, const R_MIPS_CALL_LO16 = 31
pkg debug/elf, const R_MIPS_CALL_LO16 R_MIPS
pkg debug/elf, const R_MIPS_DELETE = 27
pkg debug/elf, const R_MIPS_DELETE R_MIPS
pkg debug/elf, const R_MIPS_GOT16 = 9
pkg debug/elf, const R_MIPS_GOT16 R_MIPS
pkg debug/elf, const R_MIPS_GOT_DISP = 19
pkg debug/elf, const R_MIPS_GOT_DISP R_MIPS
pkg debug/elf, const R_MIPS_GOT_HI16 = 22
pkg debug/elf, const R_MIPS_GOT_HI16 R_MIPS
pkg debug/elf, const R_MIPS_GOT_LO16 = 23
pkg debug/elf, const R_MIPS_GOT_LO16 R_MIPS
pkg debug/elf, const R_MIPS_GOT_OFST = 21
pkg debug/elf, const R_MIPS_GOT_OFST R_MIPS
pkg debug/elf, const R_MIPS_GOT_PAGE = 20
pkg debug/elf, const R_MIPS_GOT_PAGE R_MIPS
pkg debug/elf, const R_MIPS_GPREL16 = 7
pkg debug/elf, const R_MIPS_GPREL16 R_MIPS
pkg debug/elf, const R_MIPS_GPREL32 = 12
pkg debug/elf, const R_MIPS_GPREL32 R_MIPS
pkg debug/elf, const R_MIPS_HI16 = 5
pkg debug/elf, const R_MIPS_HI16 R_MIPS
pkg debug/elf, const R_MIPS_HIGHER = 28
pkg debug/elf, const R_MIPS_HIGHER R_MIPS
pkg debug/elf, const R_MIPS_HIGHEST = 29
pkg debug/elf, const R_MIPS_HIGHEST R_MIPS
pkg debug/elf, const R_MIPS_INSERT_A = 25
pkg debug/elf, const R_MIPS_INSERT_A R_MIPS
pkg debug/elf, const R_MIPS_INSERT_B = 26
pkg debug/elf, const R_MIPS_INSERT_B R_MIPS
pkg debug/elf, const R_MIPS_JALR = 37
pkg debug/elf, const R_MIPS_JALR R_MIPS
pkg debug/elf, const R_MIPS_LITERAL = 8
pkg debug/elf, const R_MIPS_LITERAL R_MIPS
pkg debug/elf, const R_MIPS_LO16 = 6
pkg debug/elf, const R_MIPS_LO16 R_MIPS
pkg debug/elf, const R_MIPS_NONE = 0
pkg debug/elf, const R_MIPS_NONE R_MIPS
pkg debug/elf, const R_MIPS_PC16 = 10
pkg debug/elf, const R_MIPS_PC16 R_MIPS
pkg debug/elf, const R_MIPS_PJUMP = 35
pkg debug/elf, const R_MIPS_PJUMP R_MIPS
pkg debug/elf, const R_MIPS_REL16 = 33
pkg debug/elf, const R_MIPS_REL16 R_MIPS
pkg debug/elf, const R_MIPS_REL32 = 3
pkg debug/elf, const R_MIPS_REL32 R_MIPS
pkg debug/elf, const R_MIPS_RELGOT = 36
pkg debug/elf, const R_MIPS_RELGOT R_MIPS
pkg debug/elf, const R_MIPS_SCN_DISP = 32
pkg debug/elf, const R_MIPS_SCN_DISP R_MIPS
pkg debug/elf, const R_MIPS_SHIFT5 = 16
pkg debug/elf, const R_MIPS_SHIFT5 R_MIPS
pkg debug/elf, const R_MIPS_SHIFT6 = 17
pkg debug/elf, const R_MIPS_SHIFT6 R_MIPS
pkg debug/elf, const R_MIPS_SUB = 24
pkg debug/elf, const R_MIPS_SUB R_MIPS
pkg debug/elf, const R_MIPS_TLS_DTPMOD32 = 38
pkg debug/elf, const R_MIPS_TLS_DTPMOD32 R_MIPS
pkg debug/elf, const R_MIPS_TLS_DTPMOD64 = 40
pkg debug/elf, const R_MIPS_TLS_DTPMOD64 R_MIPS
pkg debug/elf, const R_MIPS_TLS_DTPREL32 = 39
pkg debug/elf, const R_MIPS_TLS_DTPREL32 R_MIPS
pkg debug/elf, const R_MIPS_TLS_DTPREL64 = 41
pkg debug/elf, const R_MIPS_TLS_DTPREL64 R_MIPS
pkg debug/elf, const R_MIPS_TLS_DTPREL_HI16 = 44
pkg debug/elf, const R_MIPS_TLS_DTPREL_HI16 R_MIPS
pkg debug/elf, const R_MIPS_TLS_DTPREL_LO16 = 45
pkg debug/elf, const R_MIPS_TLS_DTPREL_LO16 R_MIPS
pkg debug/elf, const R_MIPS_TLS_GD = 42
pkg debug/elf, const R_MIPS_TLS_GD R_MIPS
pkg debug/elf, const R_MIPS_TLS_GOTTPREL = 46
pkg debug/elf, const R_MIPS_TLS_GOTTPREL R_MIPS
pkg debug/elf, const R_MIPS_TLS_LDM = 43
pkg debug/elf, const R_MIPS_TLS_LDM R_MIPS
pkg debug/elf, const R_MIPS_TLS_TPREL32 = 47
pkg debug/elf, const R_MIPS_TLS_TPREL32 R_MIPS
pkg debug/elf, const R_MIPS_TLS_TPREL64 = 48
pkg debug/elf, const R_MIPS_TLS_TPREL64 R_MIPS
pkg debug/elf, const R_MIPS_TLS_TPREL_HI16 = 49
pkg debug/elf, const R_MIPS_TLS_TPREL_HI16 R_MIPS
pkg debug/elf, const R_MIPS_TLS_TPREL_LO16 = 50
pkg debug/elf, const R_MIPS_TLS_TPREL_LO16 R_MIPS
pkg debug/elf, const SHF_COMPRESSED = 2048
pkg debug/elf, const SHF_COMPRESSED SectionFlag
pkg debug/elf, method (CompressionType) GoString() string
pkg debug/elf, method (CompressionType) String() string
pkg debug/elf, method (R_MIPS) GoString() string
pkg debug/elf, method (R_MIPS) String() string
pkg debug/elf, type Chdr32 struct
pkg debug/elf, type Chdr32 struct, Addralign uint32
pkg debug/elf, type Chdr32 struct, Size uint32
pkg debug/elf, type Chdr32 struct, Type uint32
pkg debug/elf, type Chdr64 struct
pkg debug/elf, type Chdr64 struct, Addralign uint64
pkg debug/elf, type Chdr64 struct, Size uint64
pkg debug/elf, type Chdr64 struct, Type uint32
pkg debug/elf, type CompressionType int
pkg debug/elf, type R_MIPS int
pkg debug/elf, type SectionHeader struct, FileSize uint64
pkg encoding/asn1, const ClassApplication = 1
pkg encoding/asn1, const ClassApplication ideal-int
pkg encoding/asn1, const ClassContextSpecific = 2
pkg encoding/asn1, const ClassContextSpecific ideal-int
pkg encoding/asn1, const ClassPrivate = 3
pkg encoding/asn1, const ClassPrivate ideal-int
pkg encoding/asn1, const ClassUniversal = 0
pkg encoding/asn1, const ClassUniversal ideal-int
pkg encoding/asn1, const TagBitString = 3
pkg encoding/asn1, const TagBitString ideal-int
pkg encoding/asn1, const TagBoolean = 1
pkg encoding/asn1, const TagBoolean ideal-int
pkg encoding/asn1, const TagEnum = 10
pkg encoding/asn1, const TagEnum ideal-int
pkg encoding/asn1, const TagGeneralString = 27
pkg encoding/asn1, const TagGeneralString ideal-int
pkg encoding/asn1, const TagGeneralizedTime = 24
pkg encoding/asn1, const TagGeneralizedTime ideal-int
pkg encoding/asn1, const TagIA5String = 22
pkg encoding/asn1, const TagIA5String ideal-int
pkg encoding/asn1, const TagInteger = 2
pkg encoding/asn1, const TagInteger ideal-int
pkg encoding/asn1, const TagOID = 6
pkg encoding/asn1, const TagOID ideal-int
pkg encoding/asn1, const TagOctetString = 4
pkg encoding/asn1, const TagOctetString ideal-int
pkg encoding/asn1, const TagPrintableString = 19
pkg encoding/asn1, const TagPrintableString ideal-int
pkg encoding/asn1, const TagSequence = 16
pkg encoding/asn1, const TagSequence ideal-int
pkg encoding/asn1, const TagSet = 17
pkg encoding/asn1, const TagSet ideal-int
pkg encoding/asn1, const TagT61String = 20
pkg encoding/asn1, const TagT61String ideal-int
pkg encoding/asn1, const TagUTCTime = 23
pkg encoding/asn1, const TagUTCTime ideal-int
pkg encoding/asn1, const TagUTF8String = 12
pkg encoding/asn1, const TagUTF8String ideal-int
pkg go/build, const IgnoreVendor = 8
pkg go/build, const IgnoreVendor ImportMode
pkg go/build, type Package struct, InvalidGoFiles []string
pkg go/constant, func ToComplex(Value) Value
pkg go/constant, func ToFloat(Value) Value
pkg go/constant, func ToInt(Value) Value
pkg go/constant, type Value interface, ExactString() string
pkg go/types, method (*Package) SetName(string)
pkg go/types, type ImportMode int
pkg go/types, type ImporterFrom interface { Import, ImportFrom }
pkg go/types, type ImporterFrom interface, Import(string) (*Package, error)
pkg go/types, type ImporterFrom interface, ImportFrom(string, string, ImportMode) (*Package, error)
pkg html/template, func IsTrue(interface{}) (bool, bool)
pkg html/template, method (*Template) DefinedTemplates() string
pkg image, func NewNYCbCrA(Rectangle, YCbCrSubsampleRatio) *NYCbCrA
pkg image, method (*NYCbCrA) AOffset(int, int) int
pkg image, method (*NYCbCrA) At(int, int) color.Color
pkg image, method (*NYCbCrA) Bounds() Rectangle
pkg image, method (*NYCbCrA) COffset(int, int) int
pkg image, method (*NYCbCrA) ColorModel() color.Model
pkg image, method (*NYCbCrA) NYCbCrAAt(int, int) color.NYCbCrA
pkg image, method (*NYCbCrA) Opaque() bool
pkg image, method (*NYCbCrA) SubImage(Rectangle) Image
pkg image, method (*NYCbCrA) YCbCrAt(int, int) color.YCbCr
pkg image, method (*NYCbCrA) YOffset(int, int) int
pkg image, type NYCbCrA struct
pkg image, type NYCbCrA struct, A []uint8
pkg image, type NYCbCrA struct, AStride int
pkg image, type NYCbCrA struct, embedded YCbCr
pkg image/color, method (NYCbCrA) RGBA() (uint32, uint32, uint32, uint32)
pkg image/color, type NYCbCrA struct
pkg image/color, type NYCbCrA struct, A uint8
pkg image/color, type NYCbCrA struct, embedded YCbCr
pkg image/color, var NYCbCrAModel Model
pkg math/big, method (*Float) MarshalText() ([]uint8, error)
pkg math/big, method (*Float) UnmarshalText([]uint8) error
pkg math/big, method (*Int) Append([]uint8, int) []uint8
pkg math/big, method (*Int) Text(int) string
pkg math/rand, func Read([]uint8) (int, error)
pkg math/rand, method (*Rand) Read([]uint8) (int, error)
pkg net, type DNSError struct, IsTemporary bool
pkg net, type Dialer struct, Cancel <-chan struct
pkg net/http, const MethodConnect = "CONNECT"
pkg net/http, const MethodConnect ideal-string
pkg net/http, const MethodDelete = "DELETE"
pkg net/http, const MethodDelete ideal-string
pkg net/http, const MethodGet = "GET"
pkg net/http, const MethodGet ideal-string
pkg net/http, const MethodHead = "HEAD"
pkg net/http, const MethodHead ideal-string
pkg net/http, const MethodOptions = "OPTIONS"
pkg net/http, const MethodOptions ideal-string
pkg net/http, const MethodPatch = "PATCH"
pkg net/http, const MethodPatch ideal-string
pkg net/http, const MethodPost = "POST"
pkg net/http, const MethodPost ideal-string
pkg net/http, const MethodPut = "PUT"
pkg net/http, const MethodPut ideal-string
pkg net/http, const MethodTrace = "TRACE"
pkg net/http, const MethodTrace ideal-string
pkg net/http, const StatusNetworkAuthenticationRequired = 511
pkg net/http, const StatusNetworkAuthenticationRequired ideal-int
pkg net/http, const StatusPreconditionRequired = 428
pkg net/http, const StatusPreconditionRequired ideal-int
pkg net/http, const StatusRequestHeaderFieldsTooLarge = 431
pkg net/http, const StatusRequestHeaderFieldsTooLarge ideal-int
pkg net/http, const StatusTooManyRequests = 429
pkg net/http, const StatusTooManyRequests ideal-int
pkg net/http, const StatusUnavailableForLegalReasons = 451
pkg net/http, const StatusUnavailableForLegalReasons ideal-int
pkg net/http, type Transport struct, ExpectContinueTimeout time.Duration
pkg net/http, type Transport struct, TLSNextProto map[string]func(string, *tls.Conn) RoundTripper
pkg net/http, var ErrSkipAltProtocol error
pkg net/http/httptest, method (*ResponseRecorder) WriteString(string) (int, error)
pkg net/http/httputil, type BufferPool interface { Get, Put }
pkg net/http/httputil, type BufferPool interface, Get() []uint8
pkg net/http/httputil, type BufferPool interface, Put([]uint8)
pkg net/http/httputil, type ReverseProxy struct, BufferPool BufferPool
pkg net/url, method (*Error) Temporary() bool
pkg net/url, method (*Error) Timeout() bool
pkg net/url, method (InvalidHostError) Error() string
pkg net/url, type InvalidHostError string
pkg os/exec, type ExitError struct, Stderr []uint8
pkg regexp, method (*Regexp) Copy() *Regexp
pkg runtime/debug, func SetTraceback(string)
pkg strconv, func AppendQuoteRuneToGraphic([]uint8, int32) []uint8
pkg strconv, func AppendQuoteToGraphic([]uint8, string) []uint8
pkg strconv, func IsGraphic(int32) bool
pkg strconv, func QuoteRuneToGraphic(int32) string
pkg strconv, func QuoteToGraphic(string) string
pkg text/template, func IsTrue(interface{}) (bool, bool)
pkg text/template, method (ExecError) Error() string
pkg text/template, type ExecError struct
pkg text/template, type ExecError struct, Err error
pkg text/template, type ExecError struct, Name string

View File

@@ -1,285 +0,0 @@
pkg bytes, func ContainsAny([]uint8, string) bool
pkg bytes, func ContainsRune([]uint8, int32) bool
pkg bytes, method (*Reader) Reset([]uint8)
pkg compress/flate, const HuffmanOnly = -2
pkg compress/flate, const HuffmanOnly ideal-int
pkg context, func Background() Context
pkg context, func TODO() Context
pkg context, func WithCancel(Context) (Context, CancelFunc)
pkg context, func WithDeadline(Context, time.Time) (Context, CancelFunc)
pkg context, func WithTimeout(Context, time.Duration) (Context, CancelFunc)
pkg context, func WithValue(Context, interface{}, interface{}) Context
pkg context, type CancelFunc func()
pkg context, type Context interface { Deadline, Done, Err, Value }
pkg context, type Context interface, Deadline() (time.Time, bool)
pkg context, type Context interface, Done() <-chan struct
pkg context, type Context interface, Err() error
pkg context, type Context interface, Value(interface{}) interface{}
pkg context, var Canceled error
pkg context, var DeadlineExceeded error
pkg crypto/tls, const RenegotiateFreelyAsClient = 2
pkg crypto/tls, const RenegotiateFreelyAsClient RenegotiationSupport
pkg crypto/tls, const RenegotiateNever = 0
pkg crypto/tls, const RenegotiateNever RenegotiationSupport
pkg crypto/tls, const RenegotiateOnceAsClient = 1
pkg crypto/tls, const RenegotiateOnceAsClient RenegotiationSupport
pkg crypto/tls, type Config struct, DynamicRecordSizingDisabled bool
pkg crypto/tls, type Config struct, Renegotiation RenegotiationSupport
pkg crypto/tls, type RenegotiationSupport int
pkg crypto/x509, func SystemCertPool() (*CertPool, error)
pkg crypto/x509, type SystemRootsError struct, Err error
pkg debug/dwarf, method (*Data) Ranges(*Entry) ([][2]uint64, error)
pkg debug/dwarf, method (*Reader) SeekPC(uint64) (*Entry, error)
pkg debug/elf, const R_390_12 = 2
pkg debug/elf, const R_390_12 R_390
pkg debug/elf, const R_390_16 = 3
pkg debug/elf, const R_390_16 R_390
pkg debug/elf, const R_390_20 = 57
pkg debug/elf, const R_390_20 R_390
pkg debug/elf, const R_390_32 = 4
pkg debug/elf, const R_390_32 R_390
pkg debug/elf, const R_390_64 = 22
pkg debug/elf, const R_390_64 R_390
pkg debug/elf, const R_390_8 = 1
pkg debug/elf, const R_390_8 R_390
pkg debug/elf, const R_390_COPY = 9
pkg debug/elf, const R_390_COPY R_390
pkg debug/elf, const R_390_GLOB_DAT = 10
pkg debug/elf, const R_390_GLOB_DAT R_390
pkg debug/elf, const R_390_GOT12 = 6
pkg debug/elf, const R_390_GOT12 R_390
pkg debug/elf, const R_390_GOT16 = 15
pkg debug/elf, const R_390_GOT16 R_390
pkg debug/elf, const R_390_GOT20 = 58
pkg debug/elf, const R_390_GOT20 R_390
pkg debug/elf, const R_390_GOT32 = 7
pkg debug/elf, const R_390_GOT32 R_390
pkg debug/elf, const R_390_GOT64 = 24
pkg debug/elf, const R_390_GOT64 R_390
pkg debug/elf, const R_390_GOTENT = 26
pkg debug/elf, const R_390_GOTENT R_390
pkg debug/elf, const R_390_GOTOFF = 13
pkg debug/elf, const R_390_GOTOFF R_390
pkg debug/elf, const R_390_GOTOFF16 = 27
pkg debug/elf, const R_390_GOTOFF16 R_390
pkg debug/elf, const R_390_GOTOFF64 = 28
pkg debug/elf, const R_390_GOTOFF64 R_390
pkg debug/elf, const R_390_GOTPC = 14
pkg debug/elf, const R_390_GOTPC R_390
pkg debug/elf, const R_390_GOTPCDBL = 21
pkg debug/elf, const R_390_GOTPCDBL R_390
pkg debug/elf, const R_390_GOTPLT12 = 29
pkg debug/elf, const R_390_GOTPLT12 R_390
pkg debug/elf, const R_390_GOTPLT16 = 30
pkg debug/elf, const R_390_GOTPLT16 R_390
pkg debug/elf, const R_390_GOTPLT20 = 59
pkg debug/elf, const R_390_GOTPLT20 R_390
pkg debug/elf, const R_390_GOTPLT32 = 31
pkg debug/elf, const R_390_GOTPLT32 R_390
pkg debug/elf, const R_390_GOTPLT64 = 32
pkg debug/elf, const R_390_GOTPLT64 R_390
pkg debug/elf, const R_390_GOTPLTENT = 33
pkg debug/elf, const R_390_GOTPLTENT R_390
pkg debug/elf, const R_390_GOTPLTOFF16 = 34
pkg debug/elf, const R_390_GOTPLTOFF16 R_390
pkg debug/elf, const R_390_GOTPLTOFF32 = 35
pkg debug/elf, const R_390_GOTPLTOFF32 R_390
pkg debug/elf, const R_390_GOTPLTOFF64 = 36
pkg debug/elf, const R_390_GOTPLTOFF64 R_390
pkg debug/elf, const R_390_JMP_SLOT = 11
pkg debug/elf, const R_390_JMP_SLOT R_390
pkg debug/elf, const R_390_NONE = 0
pkg debug/elf, const R_390_NONE R_390
pkg debug/elf, const R_390_PC16 = 16
pkg debug/elf, const R_390_PC16 R_390
pkg debug/elf, const R_390_PC16DBL = 17
pkg debug/elf, const R_390_PC16DBL R_390
pkg debug/elf, const R_390_PC32 = 5
pkg debug/elf, const R_390_PC32 R_390
pkg debug/elf, const R_390_PC32DBL = 19
pkg debug/elf, const R_390_PC32DBL R_390
pkg debug/elf, const R_390_PC64 = 23
pkg debug/elf, const R_390_PC64 R_390
pkg debug/elf, const R_390_PLT16DBL = 18
pkg debug/elf, const R_390_PLT16DBL R_390
pkg debug/elf, const R_390_PLT32 = 8
pkg debug/elf, const R_390_PLT32 R_390
pkg debug/elf, const R_390_PLT32DBL = 20
pkg debug/elf, const R_390_PLT32DBL R_390
pkg debug/elf, const R_390_PLT64 = 25
pkg debug/elf, const R_390_PLT64 R_390
pkg debug/elf, const R_390_RELATIVE = 12
pkg debug/elf, const R_390_RELATIVE R_390
pkg debug/elf, const R_390_TLS_DTPMOD = 54
pkg debug/elf, const R_390_TLS_DTPMOD R_390
pkg debug/elf, const R_390_TLS_DTPOFF = 55
pkg debug/elf, const R_390_TLS_DTPOFF R_390
pkg debug/elf, const R_390_TLS_GD32 = 40
pkg debug/elf, const R_390_TLS_GD32 R_390
pkg debug/elf, const R_390_TLS_GD64 = 41
pkg debug/elf, const R_390_TLS_GD64 R_390
pkg debug/elf, const R_390_TLS_GDCALL = 38
pkg debug/elf, const R_390_TLS_GDCALL R_390
pkg debug/elf, const R_390_TLS_GOTIE12 = 42
pkg debug/elf, const R_390_TLS_GOTIE12 R_390
pkg debug/elf, const R_390_TLS_GOTIE20 = 60
pkg debug/elf, const R_390_TLS_GOTIE20 R_390
pkg debug/elf, const R_390_TLS_GOTIE32 = 43
pkg debug/elf, const R_390_TLS_GOTIE32 R_390
pkg debug/elf, const R_390_TLS_GOTIE64 = 44
pkg debug/elf, const R_390_TLS_GOTIE64 R_390
pkg debug/elf, const R_390_TLS_IE32 = 47
pkg debug/elf, const R_390_TLS_IE32 R_390
pkg debug/elf, const R_390_TLS_IE64 = 48
pkg debug/elf, const R_390_TLS_IE64 R_390
pkg debug/elf, const R_390_TLS_IEENT = 49
pkg debug/elf, const R_390_TLS_IEENT R_390
pkg debug/elf, const R_390_TLS_LDCALL = 39
pkg debug/elf, const R_390_TLS_LDCALL R_390
pkg debug/elf, const R_390_TLS_LDM32 = 45
pkg debug/elf, const R_390_TLS_LDM32 R_390
pkg debug/elf, const R_390_TLS_LDM64 = 46
pkg debug/elf, const R_390_TLS_LDM64 R_390
pkg debug/elf, const R_390_TLS_LDO32 = 52
pkg debug/elf, const R_390_TLS_LDO32 R_390
pkg debug/elf, const R_390_TLS_LDO64 = 53
pkg debug/elf, const R_390_TLS_LDO64 R_390
pkg debug/elf, const R_390_TLS_LE32 = 50
pkg debug/elf, const R_390_TLS_LE32 R_390
pkg debug/elf, const R_390_TLS_LE64 = 51
pkg debug/elf, const R_390_TLS_LE64 R_390
pkg debug/elf, const R_390_TLS_LOAD = 37
pkg debug/elf, const R_390_TLS_LOAD R_390
pkg debug/elf, const R_390_TLS_TPOFF = 56
pkg debug/elf, const R_390_TLS_TPOFF R_390
pkg debug/elf, method (R_390) GoString() string
pkg debug/elf, method (R_390) String() string
pkg debug/elf, type R_390 int
pkg encoding/json, method (*Encoder) SetEscapeHTML(bool)
pkg encoding/json, method (*Encoder) SetIndent(string, string)
pkg go/build, type Package struct, BinaryOnly bool
pkg go/build, type Package struct, CgoFFLAGS []string
pkg go/build, type Package struct, FFiles []string
pkg go/doc, type Example struct, Unordered bool
pkg io, const SeekCurrent = 1
pkg io, const SeekCurrent ideal-int
pkg io, const SeekEnd = 2
pkg io, const SeekEnd ideal-int
pkg io, const SeekStart = 0
pkg io, const SeekStart ideal-int
pkg math/big, method (*Float) GobDecode([]uint8) error
pkg math/big, method (*Float) GobEncode() ([]uint8, error)
pkg net, method (*Dialer) DialContext(context.Context, string, string) (Conn, error)
pkg net/http, const StatusAlreadyReported = 208
pkg net/http, const StatusAlreadyReported ideal-int
pkg net/http, const StatusFailedDependency = 424
pkg net/http, const StatusFailedDependency ideal-int
pkg net/http, const StatusIMUsed = 226
pkg net/http, const StatusIMUsed ideal-int
pkg net/http, const StatusInsufficientStorage = 507
pkg net/http, const StatusInsufficientStorage ideal-int
pkg net/http, const StatusLocked = 423
pkg net/http, const StatusLocked ideal-int
pkg net/http, const StatusLoopDetected = 508
pkg net/http, const StatusLoopDetected ideal-int
pkg net/http, const StatusMultiStatus = 207
pkg net/http, const StatusMultiStatus ideal-int
pkg net/http, const StatusNotExtended = 510
pkg net/http, const StatusNotExtended ideal-int
pkg net/http, const StatusPermanentRedirect = 308
pkg net/http, const StatusPermanentRedirect ideal-int
pkg net/http, const StatusProcessing = 102
pkg net/http, const StatusProcessing ideal-int
pkg net/http, const StatusUnprocessableEntity = 422
pkg net/http, const StatusUnprocessableEntity ideal-int
pkg net/http, const StatusUpgradeRequired = 426
pkg net/http, const StatusUpgradeRequired ideal-int
pkg net/http, const StatusVariantAlsoNegotiates = 506
pkg net/http, const StatusVariantAlsoNegotiates ideal-int
pkg net/http, method (*Request) Context() context.Context
pkg net/http, method (*Request) WithContext(context.Context) *Request
pkg net/http, type Request struct, Response *Response
pkg net/http, type Response struct, Uncompressed bool
pkg net/http, type Transport struct, DialContext func(context.Context, string, string) (net.Conn, error)
pkg net/http, type Transport struct, IdleConnTimeout time.Duration
pkg net/http, type Transport struct, MaxIdleConns int
pkg net/http, type Transport struct, MaxResponseHeaderBytes int64
pkg net/http, var ErrUseLastResponse error
pkg net/http, var LocalAddrContextKey *contextKey
pkg net/http, var ServerContextKey *contextKey
pkg net/http/cgi, type Handler struct, Stderr io.Writer
pkg net/http/httptest, func NewRequest(string, string, io.Reader) *http.Request
pkg net/http/httptest, method (*ResponseRecorder) Result() *http.Response
pkg net/http/httptrace, func ContextClientTrace(context.Context) *ClientTrace
pkg net/http/httptrace, func WithClientTrace(context.Context, *ClientTrace) context.Context
pkg net/http/httptrace, type ClientTrace struct
pkg net/http/httptrace, type ClientTrace struct, ConnectDone func(string, string, error)
pkg net/http/httptrace, type ClientTrace struct, ConnectStart func(string, string)
pkg net/http/httptrace, type ClientTrace struct, DNSDone func(DNSDoneInfo)
pkg net/http/httptrace, type ClientTrace struct, DNSStart func(DNSStartInfo)
pkg net/http/httptrace, type ClientTrace struct, GetConn func(string)
pkg net/http/httptrace, type ClientTrace struct, Got100Continue func()
pkg net/http/httptrace, type ClientTrace struct, GotConn func(GotConnInfo)
pkg net/http/httptrace, type ClientTrace struct, GotFirstResponseByte func()
pkg net/http/httptrace, type ClientTrace struct, PutIdleConn func(error)
pkg net/http/httptrace, type ClientTrace struct, Wait100Continue func()
pkg net/http/httptrace, type ClientTrace struct, WroteHeaders func()
pkg net/http/httptrace, type ClientTrace struct, WroteRequest func(WroteRequestInfo)
pkg net/http/httptrace, type DNSDoneInfo struct
pkg net/http/httptrace, type DNSDoneInfo struct, Addrs []net.IPAddr
pkg net/http/httptrace, type DNSDoneInfo struct, Coalesced bool
pkg net/http/httptrace, type DNSDoneInfo struct, Err error
pkg net/http/httptrace, type DNSStartInfo struct
pkg net/http/httptrace, type DNSStartInfo struct, Host string
pkg net/http/httptrace, type GotConnInfo struct
pkg net/http/httptrace, type GotConnInfo struct, Conn net.Conn
pkg net/http/httptrace, type GotConnInfo struct, IdleTime time.Duration
pkg net/http/httptrace, type GotConnInfo struct, Reused bool
pkg net/http/httptrace, type GotConnInfo struct, WasIdle bool
pkg net/http/httptrace, type WroteRequestInfo struct
pkg net/http/httptrace, type WroteRequestInfo struct, Err error
pkg net/url, type URL struct, ForceQuery bool
pkg os/exec, func CommandContext(context.Context, string, ...string) *Cmd
pkg os/user, func LookupGroup(string) (*Group, error)
pkg os/user, func LookupGroupId(string) (*Group, error)
pkg os/user, method (*User) GroupIds() ([]string, error)
pkg os/user, method (UnknownGroupError) Error() string
pkg os/user, method (UnknownGroupIdError) Error() string
pkg os/user, type Group struct
pkg os/user, type Group struct, Gid string
pkg os/user, type Group struct, Name string
pkg os/user, type UnknownGroupError string
pkg os/user, type UnknownGroupIdError string
pkg reflect, func StructOf([]StructField) Type
pkg reflect, method (StructTag) Lookup(string) (string, bool)
pkg runtime, func CallersFrames([]uintptr) *Frames
pkg runtime, func KeepAlive(interface{})
pkg runtime, func SetCgoTraceback(int, unsafe.Pointer, unsafe.Pointer, unsafe.Pointer)
pkg runtime, method (*Frames) Next() (Frame, bool)
pkg runtime, type Frame struct
pkg runtime, type Frame struct, Entry uintptr
pkg runtime, type Frame struct, File string
pkg runtime, type Frame struct, Func *Func
pkg runtime, type Frame struct, Function string
pkg runtime, type Frame struct, Line int
pkg runtime, type Frame struct, PC uintptr
pkg runtime, type Frames struct
pkg strings, method (*Reader) Reset(string)
pkg syscall (linux-386), type SysProcAttr struct, Unshareflags uintptr
pkg syscall (linux-386-cgo), type SysProcAttr struct, Unshareflags uintptr
pkg syscall (linux-amd64), type SysProcAttr struct, Unshareflags uintptr
pkg syscall (linux-amd64-cgo), type SysProcAttr struct, Unshareflags uintptr
pkg syscall (linux-arm), type SysProcAttr struct, Unshareflags uintptr
pkg syscall (linux-arm-cgo), type SysProcAttr struct, Unshareflags uintptr
pkg testing, method (*B) Run(string, func(*B)) bool
pkg testing, method (*T) Run(string, func(*T)) bool
pkg testing, type InternalExample struct, Unordered bool
pkg unicode, const Version = "9.0.0"
pkg unicode, var Adlam *RangeTable
pkg unicode, var Bhaiksuki *RangeTable
pkg unicode, var Marchen *RangeTable
pkg unicode, var Newa *RangeTable
pkg unicode, var Osage *RangeTable
pkg unicode, var Prepended_Concatenation_Mark *RangeTable
pkg unicode, var Sentence_Terminal *RangeTable
pkg unicode, var Tangut *RangeTable

View File

@@ -1,261 +0,0 @@
pkg compress/gzip, const HuffmanOnly = -2
pkg compress/gzip, const HuffmanOnly ideal-int
pkg compress/zlib, const HuffmanOnly = -2
pkg compress/zlib, const HuffmanOnly ideal-int
pkg crypto/tls, const ECDSAWithP256AndSHA256 = 1027
pkg crypto/tls, const ECDSAWithP256AndSHA256 SignatureScheme
pkg crypto/tls, const ECDSAWithP384AndSHA384 = 1283
pkg crypto/tls, const ECDSAWithP384AndSHA384 SignatureScheme
pkg crypto/tls, const ECDSAWithP521AndSHA512 = 1539
pkg crypto/tls, const ECDSAWithP521AndSHA512 SignatureScheme
pkg crypto/tls, const PKCS1WithSHA1 = 513
pkg crypto/tls, const PKCS1WithSHA1 SignatureScheme
pkg crypto/tls, const PKCS1WithSHA256 = 1025
pkg crypto/tls, const PKCS1WithSHA256 SignatureScheme
pkg crypto/tls, const PKCS1WithSHA384 = 1281
pkg crypto/tls, const PKCS1WithSHA384 SignatureScheme
pkg crypto/tls, const PKCS1WithSHA512 = 1537
pkg crypto/tls, const PKCS1WithSHA512 SignatureScheme
pkg crypto/tls, const PSSWithSHA256 = 2052
pkg crypto/tls, const PSSWithSHA256 SignatureScheme
pkg crypto/tls, const PSSWithSHA384 = 2053
pkg crypto/tls, const PSSWithSHA384 SignatureScheme
pkg crypto/tls, const PSSWithSHA512 = 2054
pkg crypto/tls, const PSSWithSHA512 SignatureScheme
pkg crypto/tls, const TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 = 49187
pkg crypto/tls, const TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 uint16
pkg crypto/tls, const TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 = 52393
pkg crypto/tls, const TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 uint16
pkg crypto/tls, const TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 = 49191
pkg crypto/tls, const TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 uint16
pkg crypto/tls, const TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 = 52392
pkg crypto/tls, const TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 uint16
pkg crypto/tls, const TLS_RSA_WITH_AES_128_CBC_SHA256 = 60
pkg crypto/tls, const TLS_RSA_WITH_AES_128_CBC_SHA256 uint16
pkg crypto/tls, const X25519 = 29
pkg crypto/tls, const X25519 CurveID
pkg crypto/tls, method (*Config) Clone() *Config
pkg crypto/tls, method (*Conn) CloseWrite() error
pkg crypto/tls, type CertificateRequestInfo struct
pkg crypto/tls, type CertificateRequestInfo struct, AcceptableCAs [][]uint8
pkg crypto/tls, type CertificateRequestInfo struct, SignatureSchemes []SignatureScheme
pkg crypto/tls, type ClientHelloInfo struct, Conn net.Conn
pkg crypto/tls, type ClientHelloInfo struct, SignatureSchemes []SignatureScheme
pkg crypto/tls, type ClientHelloInfo struct, SupportedProtos []string
pkg crypto/tls, type ClientHelloInfo struct, SupportedVersions []uint16
pkg crypto/tls, type Config struct, GetClientCertificate func(*CertificateRequestInfo) (*Certificate, error)
pkg crypto/tls, type Config struct, GetConfigForClient func(*ClientHelloInfo) (*Config, error)
pkg crypto/tls, type Config struct, KeyLogWriter io.Writer
pkg crypto/tls, type Config struct, VerifyPeerCertificate func([][]uint8, [][]*x509.Certificate) error
pkg crypto/tls, type SignatureScheme uint16
pkg crypto/x509, const NameMismatch = 5
pkg crypto/x509, const NameMismatch InvalidReason
pkg crypto/x509, const SHA256WithRSAPSS = 13
pkg crypto/x509, const SHA256WithRSAPSS SignatureAlgorithm
pkg crypto/x509, const SHA384WithRSAPSS = 14
pkg crypto/x509, const SHA384WithRSAPSS SignatureAlgorithm
pkg crypto/x509, const SHA512WithRSAPSS = 15
pkg crypto/x509, const SHA512WithRSAPSS SignatureAlgorithm
pkg crypto/x509, type UnknownAuthorityError struct, Cert *Certificate
pkg database/sql, const LevelDefault = 0
pkg database/sql, const LevelDefault IsolationLevel
pkg database/sql, const LevelLinearizable = 7
pkg database/sql, const LevelLinearizable IsolationLevel
pkg database/sql, const LevelReadCommitted = 2
pkg database/sql, const LevelReadCommitted IsolationLevel
pkg database/sql, const LevelReadUncommitted = 1
pkg database/sql, const LevelReadUncommitted IsolationLevel
pkg database/sql, const LevelRepeatableRead = 4
pkg database/sql, const LevelRepeatableRead IsolationLevel
pkg database/sql, const LevelSerializable = 6
pkg database/sql, const LevelSerializable IsolationLevel
pkg database/sql, const LevelSnapshot = 5
pkg database/sql, const LevelSnapshot IsolationLevel
pkg database/sql, const LevelWriteCommitted = 3
pkg database/sql, const LevelWriteCommitted IsolationLevel
pkg database/sql/driver, type ConnBeginTx interface { BeginTx }
pkg database/sql/driver, type ConnBeginTx interface, BeginTx(context.Context, TxOptions) (Tx, error)
pkg database/sql/driver, type ConnPrepareContext interface { PrepareContext }
pkg database/sql/driver, type ConnPrepareContext interface, PrepareContext(context.Context, string) (Stmt, error)
pkg database/sql/driver, type ExecerContext interface { ExecContext }
pkg database/sql/driver, type ExecerContext interface, ExecContext(context.Context, string, []NamedValue) (Result, error)
pkg database/sql/driver, type IsolationLevel int
pkg database/sql/driver, type NamedValue struct
pkg database/sql/driver, type NamedValue struct, Name string
pkg database/sql/driver, type NamedValue struct, Ordinal int
pkg database/sql/driver, type NamedValue struct, Value Value
pkg database/sql/driver, type Pinger interface { Ping }
pkg database/sql/driver, type Pinger interface, Ping(context.Context) error
pkg database/sql/driver, type QueryerContext interface { QueryContext }
pkg database/sql/driver, type QueryerContext interface, QueryContext(context.Context, string, []NamedValue) (Rows, error)
pkg database/sql/driver, type RowsColumnTypeDatabaseTypeName interface { Close, ColumnTypeDatabaseTypeName, Columns, Next }
pkg database/sql/driver, type RowsColumnTypeDatabaseTypeName interface, Close() error
pkg database/sql/driver, type RowsColumnTypeDatabaseTypeName interface, Columns() []string
pkg database/sql/driver, type RowsColumnTypeDatabaseTypeName interface, ColumnTypeDatabaseTypeName(int) string
pkg database/sql/driver, type RowsColumnTypeDatabaseTypeName interface, Next([]Value) error
pkg database/sql/driver, type RowsColumnTypeLength interface { Close, ColumnTypeLength, Columns, Next }
pkg database/sql/driver, type RowsColumnTypeLength interface, Close() error
pkg database/sql/driver, type RowsColumnTypeLength interface, Columns() []string
pkg database/sql/driver, type RowsColumnTypeLength interface, ColumnTypeLength(int) (int64, bool)
pkg database/sql/driver, type RowsColumnTypeLength interface, Next([]Value) error
pkg database/sql/driver, type RowsColumnTypeNullable interface { Close, ColumnTypeNullable, Columns, Next }
pkg database/sql/driver, type RowsColumnTypeNullable interface, Close() error
pkg database/sql/driver, type RowsColumnTypeNullable interface, Columns() []string
pkg database/sql/driver, type RowsColumnTypeNullable interface, ColumnTypeNullable(int) (bool, bool)
pkg database/sql/driver, type RowsColumnTypeNullable interface, Next([]Value) error
pkg database/sql/driver, type RowsColumnTypePrecisionScale interface { Close, ColumnTypePrecisionScale, Columns, Next }
pkg database/sql/driver, type RowsColumnTypePrecisionScale interface, Close() error
pkg database/sql/driver, type RowsColumnTypePrecisionScale interface, Columns() []string
pkg database/sql/driver, type RowsColumnTypePrecisionScale interface, ColumnTypePrecisionScale(int) (int64, int64, bool)
pkg database/sql/driver, type RowsColumnTypePrecisionScale interface, Next([]Value) error
pkg database/sql/driver, type RowsColumnTypeScanType interface { Close, ColumnTypeScanType, Columns, Next }
pkg database/sql/driver, type RowsColumnTypeScanType interface, Close() error
pkg database/sql/driver, type RowsColumnTypeScanType interface, Columns() []string
pkg database/sql/driver, type RowsColumnTypeScanType interface, ColumnTypeScanType(int) reflect.Type
pkg database/sql/driver, type RowsColumnTypeScanType interface, Next([]Value) error
pkg database/sql/driver, type RowsNextResultSet interface { Close, Columns, HasNextResultSet, Next, NextResultSet }
pkg database/sql/driver, type RowsNextResultSet interface, Close() error
pkg database/sql/driver, type RowsNextResultSet interface, Columns() []string
pkg database/sql/driver, type RowsNextResultSet interface, HasNextResultSet() bool
pkg database/sql/driver, type RowsNextResultSet interface, NextResultSet() error
pkg database/sql/driver, type RowsNextResultSet interface, Next([]Value) error
pkg database/sql/driver, type StmtExecContext interface { ExecContext }
pkg database/sql/driver, type StmtExecContext interface, ExecContext(context.Context, []NamedValue) (Result, error)
pkg database/sql/driver, type StmtQueryContext interface { QueryContext }
pkg database/sql/driver, type StmtQueryContext interface, QueryContext(context.Context, []NamedValue) (Rows, error)
pkg database/sql/driver, type TxOptions struct
pkg database/sql/driver, type TxOptions struct, Isolation IsolationLevel
pkg database/sql/driver, type TxOptions struct, ReadOnly bool
pkg database/sql, func Named(string, interface{}) NamedArg
pkg database/sql, method (*ColumnType) DatabaseTypeName() string
pkg database/sql, method (*ColumnType) DecimalSize() (int64, int64, bool)
pkg database/sql, method (*ColumnType) Length() (int64, bool)
pkg database/sql, method (*ColumnType) Name() string
pkg database/sql, method (*ColumnType) Nullable() (bool, bool)
pkg database/sql, method (*ColumnType) ScanType() reflect.Type
pkg database/sql, method (*DB) BeginTx(context.Context, *TxOptions) (*Tx, error)
pkg database/sql, method (*DB) ExecContext(context.Context, string, ...interface{}) (Result, error)
pkg database/sql, method (*DB) PingContext(context.Context) error
pkg database/sql, method (*DB) PrepareContext(context.Context, string) (*Stmt, error)
pkg database/sql, method (*DB) QueryContext(context.Context, string, ...interface{}) (*Rows, error)
pkg database/sql, method (*DB) QueryRowContext(context.Context, string, ...interface{}) *Row
pkg database/sql, method (*Rows) ColumnTypes() ([]*ColumnType, error)
pkg database/sql, method (*Rows) NextResultSet() bool
pkg database/sql, method (*Stmt) ExecContext(context.Context, ...interface{}) (Result, error)
pkg database/sql, method (*Stmt) QueryContext(context.Context, ...interface{}) (*Rows, error)
pkg database/sql, method (*Stmt) QueryRowContext(context.Context, ...interface{}) *Row
pkg database/sql, method (*Tx) ExecContext(context.Context, string, ...interface{}) (Result, error)
pkg database/sql, method (*Tx) PrepareContext(context.Context, string) (*Stmt, error)
pkg database/sql, method (*Tx) QueryContext(context.Context, string, ...interface{}) (*Rows, error)
pkg database/sql, method (*Tx) QueryRowContext(context.Context, string, ...interface{}) *Row
pkg database/sql, method (*Tx) StmtContext(context.Context, *Stmt) *Stmt
pkg database/sql, type ColumnType struct
pkg database/sql, type IsolationLevel int
pkg database/sql, type NamedArg struct
pkg database/sql, type NamedArg struct, Name string
pkg database/sql, type NamedArg struct, Value interface{}
pkg database/sql, type TxOptions struct
pkg database/sql, type TxOptions struct, Isolation IsolationLevel
pkg database/sql, type TxOptions struct, ReadOnly bool
pkg debug/pe, method (*COFFSymbol) FullName(StringTable) (string, error)
pkg debug/pe, method (StringTable) String(uint32) (string, error)
pkg debug/pe, type File struct, COFFSymbols []COFFSymbol
pkg debug/pe, type File struct, StringTable StringTable
pkg debug/pe, type Reloc struct
pkg debug/pe, type Reloc struct, SymbolTableIndex uint32
pkg debug/pe, type Reloc struct, Type uint16
pkg debug/pe, type Reloc struct, VirtualAddress uint32
pkg debug/pe, type Section struct, Relocs []Reloc
pkg debug/pe, type StringTable []uint8
pkg encoding/base64, method (Encoding) Strict() *Encoding
pkg encoding/json, method (RawMessage) MarshalJSON() ([]uint8, error)
pkg encoding/json, type UnmarshalTypeError struct, Field string
pkg encoding/json, type UnmarshalTypeError struct, Struct string
pkg expvar, func Handler() http.Handler
pkg expvar, method (*Float) Value() float64
pkg expvar, method (Func) Value() interface{}
pkg expvar, method (*Int) Value() int64
pkg expvar, method (*String) Value() string
pkg go/doc, func IsPredeclared(string) bool
pkg go/types, func Default(Type) Type
pkg go/types, func IdenticalIgnoreTags(Type, Type) bool
pkg math/big, method (*Float) Scan(fmt.ScanState, int32) error
pkg math/big, method (*Int) Sqrt(*Int) *Int
pkg math/rand, func Uint64() uint64
pkg math/rand, method (*Rand) Uint64() uint64
pkg math/rand, type Source64 interface, Int63() int64
pkg math/rand, type Source64 interface { Int63, Seed, Uint64 }
pkg math/rand, type Source64 interface, Seed(int64)
pkg math/rand, type Source64 interface, Uint64() uint64
pkg net/http, const TrailerPrefix ideal-string
pkg net/http, const TrailerPrefix = "Trailer:"
pkg net/http/httptrace, type ClientTrace struct, TLSHandshakeDone func(tls.ConnectionState, error)
pkg net/http/httptrace, type ClientTrace struct, TLSHandshakeStart func()
pkg net/http/httputil, type ReverseProxy struct, ModifyResponse func(*http.Response) error
pkg net/http, method (*Server) Close() error
pkg net/http, method (*Server) Shutdown(context.Context) error
pkg net/http, type Pusher interface { Push }
pkg net/http, type Pusher interface, Push(string, *PushOptions) error
pkg net/http, type PushOptions struct
pkg net/http, type PushOptions struct, Header Header
pkg net/http, type PushOptions struct, Method string
pkg net/http, type Request struct, GetBody func() (io.ReadCloser, error)
pkg net/http, type Server struct, IdleTimeout time.Duration
pkg net/http, type Server struct, ReadHeaderTimeout time.Duration
pkg net/http, type Transport struct, ProxyConnectHeader Header
pkg net/http, var ErrAbortHandler error
pkg net/http, var ErrServerClosed error
pkg net/http, var NoBody noBody
pkg net/mail, func ParseDate(string) (time.Time, error)
pkg net, method (*Buffers) Read([]uint8) (int, error)
pkg net, method (*Buffers) WriteTo(io.Writer) (int64, error)
pkg net, method (*Resolver) LookupAddr(context.Context, string) ([]string, error)
pkg net, method (*Resolver) LookupCNAME(context.Context, string) (string, error)
pkg net, method (*Resolver) LookupHost(context.Context, string) ([]string, error)
pkg net, method (*Resolver) LookupIPAddr(context.Context, string) ([]IPAddr, error)
pkg net, method (*Resolver) LookupMX(context.Context, string) ([]*MX, error)
pkg net, method (*Resolver) LookupNS(context.Context, string) ([]*NS, error)
pkg net, method (*Resolver) LookupPort(context.Context, string, string) (int, error)
pkg net, method (*Resolver) LookupSRV(context.Context, string, string, string) (string, []*SRV, error)
pkg net, method (*Resolver) LookupTXT(context.Context, string) ([]string, error)
pkg net, method (*UnixListener) SetUnlinkOnClose(bool)
pkg net, type Buffers [][]uint8
pkg net, type Dialer struct, Resolver *Resolver
pkg net, type Resolver struct
pkg net, type Resolver struct, PreferGo bool
pkg net/url, func PathEscape(string) string
pkg net/url, func PathUnescape(string) (string, error)
pkg net/url, method (*URL) Hostname() string
pkg net/url, method (*URL) MarshalBinary() ([]uint8, error)
pkg net/url, method (*URL) Port() string
pkg net/url, method (*URL) UnmarshalBinary([]uint8) error
pkg net, var DefaultResolver *Resolver
pkg os, func Executable() (string, error)
pkg os, var ErrClosed error
pkg plugin, func Open(string) (*Plugin, error)
pkg plugin, method (*Plugin) Lookup(string) (Symbol, error)
pkg plugin, type Plugin struct
pkg plugin, type Symbol interface {}
pkg reflect, func Swapper(interface{}) func(int, int)
pkg runtime, func MutexProfile([]BlockProfileRecord) (int, bool)
pkg runtime, func SetMutexProfileFraction(int) int
pkg runtime, type MemStats struct, NumForcedGC uint32
pkg sort, func Slice(interface{}, func(int, int) bool)
pkg sort, func SliceIsSorted(interface{}, func(int, int) bool) bool
pkg sort, func SliceStable(interface{}, func(int, int) bool)
pkg syscall (linux-arm-cgo), func TimevalToNsec(Timeval) int64
pkg syscall (linux-arm), func TimevalToNsec(Timeval) int64
pkg syscall (openbsd-386), const SYS_KILL = 122
pkg syscall (openbsd-386-cgo), const SYS_KILL = 122
pkg syscall (openbsd-amd64), const SYS_KILL = 122
pkg syscall (openbsd-amd64-cgo), const SYS_KILL = 122
pkg syscall (windows-386), const ERROR_DIR_NOT_EMPTY = 145
pkg syscall (windows-386), const ERROR_DIR_NOT_EMPTY Errno
pkg syscall (windows-amd64), const ERROR_DIR_NOT_EMPTY = 145
pkg syscall (windows-amd64), const ERROR_DIR_NOT_EMPTY Errno
pkg testing, func CoverMode() string
pkg testing, func MainStart(testDeps, []InternalTest, []InternalBenchmark, []InternalExample) *M
pkg testing, method (*B) Name() string
pkg testing, method (*T) Name() string
pkg testing, type TB interface, Name() string
pkg time, func Until(Time) Duration

View File

@@ -1,169 +0,0 @@
pkg crypto, const BLAKE2b_256 = 17
pkg crypto, const BLAKE2b_256 Hash
pkg crypto, const BLAKE2b_384 = 18
pkg crypto, const BLAKE2b_384 Hash
pkg crypto, const BLAKE2b_512 = 19
pkg crypto, const BLAKE2b_512 Hash
pkg crypto, const BLAKE2s_256 = 16
pkg crypto, const BLAKE2s_256 Hash
pkg crypto/x509, type Certificate struct, ExcludedDNSDomains []string
pkg database/sql, method (*Conn) BeginTx(context.Context, *TxOptions) (*Tx, error)
pkg database/sql, method (*Conn) Close() error
pkg database/sql, method (*Conn) ExecContext(context.Context, string, ...interface{}) (Result, error)
pkg database/sql, method (*Conn) PingContext(context.Context) error
pkg database/sql, method (*Conn) PrepareContext(context.Context, string) (*Stmt, error)
pkg database/sql, method (*Conn) QueryContext(context.Context, string, ...interface{}) (*Rows, error)
pkg database/sql, method (*Conn) QueryRowContext(context.Context, string, ...interface{}) *Row
pkg database/sql, method (*DB) Conn(context.Context) (*Conn, error)
pkg database/sql, type Conn struct
pkg database/sql, type Out struct
pkg database/sql, type Out struct, Dest interface{}
pkg database/sql, type Out struct, In bool
pkg database/sql, var ErrConnDone error
pkg database/sql/driver, type NamedValueChecker interface { CheckNamedValue }
pkg database/sql/driver, type NamedValueChecker interface, CheckNamedValue(*NamedValue) error
pkg database/sql/driver, var ErrRemoveArgument error
pkg encoding/asn1, const TagNull = 5
pkg encoding/asn1, const TagNull ideal-int
pkg encoding/asn1, var NullBytes []uint8
pkg encoding/asn1, var NullRawValue RawValue
pkg encoding/base32, const NoPadding = -1
pkg encoding/base32, const NoPadding int32
pkg encoding/base32, const StdPadding = 61
pkg encoding/base32, const StdPadding int32
pkg encoding/base32, method (Encoding) WithPadding(int32) *Encoding
pkg encoding/csv, type Reader struct, ReuseRecord bool
pkg encoding/json, func Valid([]uint8) bool
pkg go/ast, type TypeSpec struct, Assign token.Pos
pkg go/types, func SizesFor(string, string) Sizes
pkg go/types, method (*TypeName) IsAlias() bool
pkg hash/fnv, func New128() hash.Hash
pkg hash/fnv, func New128a() hash.Hash
pkg html/template, const ErrPredefinedEscaper = 11
pkg html/template, const ErrPredefinedEscaper ErrorCode
pkg image/png, type Encoder struct, BufferPool EncoderBufferPool
pkg image/png, type EncoderBuffer struct
pkg image/png, type EncoderBufferPool interface { Get, Put }
pkg image/png, type EncoderBufferPool interface, Get() *EncoderBuffer
pkg image/png, type EncoderBufferPool interface, Put(*EncoderBuffer)
pkg math/big, method (*Int) IsInt64() bool
pkg math/big, method (*Int) IsUint64() bool
pkg math/big, type Word uint
pkg math/bits, const UintSize = 64
pkg math/bits, const UintSize ideal-int
pkg math/bits, func LeadingZeros(uint) int
pkg math/bits, func LeadingZeros16(uint16) int
pkg math/bits, func LeadingZeros32(uint32) int
pkg math/bits, func LeadingZeros64(uint64) int
pkg math/bits, func LeadingZeros8(uint8) int
pkg math/bits, func Len(uint) int
pkg math/bits, func Len16(uint16) int
pkg math/bits, func Len32(uint32) int
pkg math/bits, func Len64(uint64) int
pkg math/bits, func Len8(uint8) int
pkg math/bits, func OnesCount(uint) int
pkg math/bits, func OnesCount16(uint16) int
pkg math/bits, func OnesCount32(uint32) int
pkg math/bits, func OnesCount64(uint64) int
pkg math/bits, func OnesCount8(uint8) int
pkg math/bits, func Reverse(uint) uint
pkg math/bits, func Reverse16(uint16) uint16
pkg math/bits, func Reverse32(uint32) uint32
pkg math/bits, func Reverse64(uint64) uint64
pkg math/bits, func Reverse8(uint8) uint8
pkg math/bits, func ReverseBytes(uint) uint
pkg math/bits, func ReverseBytes16(uint16) uint16
pkg math/bits, func ReverseBytes32(uint32) uint32
pkg math/bits, func ReverseBytes64(uint64) uint64
pkg math/bits, func RotateLeft(uint, int) uint
pkg math/bits, func RotateLeft16(uint16, int) uint16
pkg math/bits, func RotateLeft32(uint32, int) uint32
pkg math/bits, func RotateLeft64(uint64, int) uint64
pkg math/bits, func RotateLeft8(uint8, int) uint8
pkg math/bits, func TrailingZeros(uint) int
pkg math/bits, func TrailingZeros16(uint16) int
pkg math/bits, func TrailingZeros32(uint32) int
pkg math/bits, func TrailingZeros64(uint64) int
pkg math/bits, func TrailingZeros8(uint8) int
pkg mime, var ErrInvalidMediaParameter error
pkg mime/multipart, type FileHeader struct, Size int64
pkg mime/multipart, var ErrMessageTooLarge error
pkg net, method (*IPConn) SyscallConn() (syscall.RawConn, error)
pkg net, method (*TCPConn) SyscallConn() (syscall.RawConn, error)
pkg net, method (*UDPConn) SyscallConn() (syscall.RawConn, error)
pkg net, method (*UnixConn) SyscallConn() (syscall.RawConn, error)
pkg net, type Resolver struct, Dial func(context.Context, string, string) (Conn, error)
pkg net, type Resolver struct, StrictErrors bool
pkg net/http, func ServeTLS(net.Listener, Handler, string, string) error
pkg net/http, method (*Server) RegisterOnShutdown(func())
pkg net/http, method (*Server) ServeTLS(net.Listener, string, string) error
pkg net/http/fcgi, func ProcessEnv(*http.Request) map[string]string
pkg net/http/httptest, method (*Server) Certificate() *x509.Certificate
pkg net/http/httptest, method (*Server) Client() *http.Client
pkg reflect, func MakeMapWithSize(Type, int) Value
pkg runtime/pprof, func Do(context.Context, LabelSet, func(context.Context))
pkg runtime/pprof, func ForLabels(context.Context, func(string, string) bool)
pkg runtime/pprof, func Label(context.Context, string) (string, bool)
pkg runtime/pprof, func Labels(...string) LabelSet
pkg runtime/pprof, func SetGoroutineLabels(context.Context)
pkg runtime/pprof, func WithLabels(context.Context, LabelSet) context.Context
pkg runtime/pprof, type LabelSet struct
pkg sync, method (*Map) Delete(interface{})
pkg sync, method (*Map) Load(interface{}) (interface{}, bool)
pkg sync, method (*Map) LoadOrStore(interface{}, interface{}) (interface{}, bool)
pkg sync, method (*Map) Range(func(interface{}, interface{}) bool)
pkg sync, method (*Map) Store(interface{}, interface{})
pkg sync, type Map struct
pkg syscall (darwin-386-cgo), type Credential struct, NoSetGroups bool
pkg syscall (darwin-386), type Credential struct, NoSetGroups bool
pkg syscall (darwin-amd64-cgo), type Credential struct, NoSetGroups bool
pkg syscall (darwin-amd64), type Credential struct, NoSetGroups bool
pkg syscall (freebsd-386-cgo), func Pipe2([]int, int) error
pkg syscall (freebsd-386-cgo), type Credential struct, NoSetGroups bool
pkg syscall (freebsd-386), func Pipe2([]int, int) error
pkg syscall (freebsd-386), type Credential struct, NoSetGroups bool
pkg syscall (freebsd-amd64-cgo), func Pipe2([]int, int) error
pkg syscall (freebsd-amd64-cgo), type Credential struct, NoSetGroups bool
pkg syscall (freebsd-amd64), func Pipe2([]int, int) error
pkg syscall (freebsd-amd64), type Credential struct, NoSetGroups bool
pkg syscall (freebsd-arm-cgo), func Pipe2([]int, int) error
pkg syscall (freebsd-arm-cgo), type Credential struct, NoSetGroups bool
pkg syscall (freebsd-arm), func Pipe2([]int, int) error
pkg syscall (freebsd-arm), type Credential struct, NoSetGroups bool
pkg syscall (linux-386-cgo), type Credential struct, NoSetGroups bool
pkg syscall (linux-386-cgo), type SysProcAttr struct, AmbientCaps []uintptr
pkg syscall (linux-386), type Credential struct, NoSetGroups bool
pkg syscall (linux-386), type SysProcAttr struct, AmbientCaps []uintptr
pkg syscall (linux-amd64-cgo), type Credential struct, NoSetGroups bool
pkg syscall (linux-amd64-cgo), type SysProcAttr struct, AmbientCaps []uintptr
pkg syscall (linux-amd64), type Credential struct, NoSetGroups bool
pkg syscall (linux-amd64), type SysProcAttr struct, AmbientCaps []uintptr
pkg syscall (linux-arm-cgo), type Credential struct, NoSetGroups bool
pkg syscall (linux-arm-cgo), type SysProcAttr struct, AmbientCaps []uintptr
pkg syscall (linux-arm), type Credential struct, NoSetGroups bool
pkg syscall (linux-arm), type SysProcAttr struct, AmbientCaps []uintptr
pkg syscall (netbsd-386-cgo), type Credential struct, NoSetGroups bool
pkg syscall (netbsd-386), type Credential struct, NoSetGroups bool
pkg syscall (netbsd-amd64-cgo), type Credential struct, NoSetGroups bool
pkg syscall (netbsd-amd64), type Credential struct, NoSetGroups bool
pkg syscall (netbsd-arm-cgo), type Credential struct, NoSetGroups bool
pkg syscall (netbsd-arm), type Credential struct, NoSetGroups bool
pkg syscall (openbsd-386-cgo), type Credential struct, NoSetGroups bool
pkg syscall (openbsd-386), type Credential struct, NoSetGroups bool
pkg syscall (openbsd-amd64-cgo), type Credential struct, NoSetGroups bool
pkg syscall (openbsd-amd64), type Credential struct, NoSetGroups bool
pkg syscall (windows-386), const WSAECONNABORTED = 10053
pkg syscall (windows-386), const WSAECONNABORTED Errno
pkg syscall (windows-amd64), const WSAECONNABORTED = 10053
pkg syscall (windows-amd64), const WSAECONNABORTED Errno
pkg syscall, type Conn interface { SyscallConn }
pkg syscall, type Conn interface, SyscallConn() (RawConn, error)
pkg syscall, type RawConn interface { Control, Read, Write }
pkg syscall, type RawConn interface, Control(func(uintptr)) error
pkg syscall, type RawConn interface, Read(func(uintptr) bool) error
pkg syscall, type RawConn interface, Write(func(uintptr) bool) error
pkg testing, method (*B) Helper()
pkg testing, method (*T) Helper()
pkg testing, type TB interface, Helper()
pkg time, method (Duration) Round(Duration) Duration
pkg time, method (Duration) Truncate(Duration) Duration

File diff suppressed because it is too large Load Diff

View File

@@ -1,337 +1,428 @@
pkg debug/elf, const DT_ADDRRNGHI = 1879047935
pkg debug/elf, const DT_ADDRRNGHI DynTag
pkg debug/elf, const DT_ADDRRNGLO = 1879047680
pkg debug/elf, const DT_ADDRRNGLO DynTag
pkg debug/elf, const DT_AUDIT = 1879047932
pkg debug/elf, const DT_AUDIT DynTag
pkg debug/elf, const DT_AUXILIARY = 2147483645
pkg debug/elf, const DT_AUXILIARY DynTag
pkg debug/elf, const DT_CHECKSUM = 1879047672
pkg debug/elf, const DT_CHECKSUM DynTag
pkg debug/elf, const DT_CONFIG = 1879047930
pkg debug/elf, const DT_CONFIG DynTag
pkg debug/elf, const DT_DEPAUDIT = 1879047931
pkg debug/elf, const DT_DEPAUDIT DynTag
pkg debug/elf, const DT_FEATURE = 1879047676
pkg debug/elf, const DT_FEATURE DynTag
pkg debug/elf, const DT_FILTER = 2147483647
pkg debug/elf, const DT_FILTER DynTag
pkg debug/elf, const DT_FLAGS_1 = 1879048187
pkg debug/elf, const DT_FLAGS_1 DynTag
pkg debug/elf, const DT_GNU_CONFLICT = 1879047928
pkg debug/elf, const DT_GNU_CONFLICT DynTag
pkg debug/elf, const DT_GNU_CONFLICTSZ = 1879047670
pkg debug/elf, const DT_GNU_CONFLICTSZ DynTag
pkg debug/elf, const DT_GNU_HASH = 1879047925
pkg debug/elf, const DT_GNU_HASH DynTag
pkg debug/elf, const DT_GNU_LIBLIST = 1879047929
pkg debug/elf, const DT_GNU_LIBLIST DynTag
pkg debug/elf, const DT_GNU_LIBLISTSZ = 1879047671
pkg debug/elf, const DT_GNU_LIBLISTSZ DynTag
pkg debug/elf, const DT_GNU_PRELINKED = 1879047669
pkg debug/elf, const DT_GNU_PRELINKED DynTag
pkg debug/elf, const DT_MIPS_AUX_DYNAMIC = 1879048241
pkg debug/elf, const DT_MIPS_AUX_DYNAMIC DynTag
pkg debug/elf, const DT_MIPS_BASE_ADDRESS = 1879048198
pkg debug/elf, const DT_MIPS_BASE_ADDRESS DynTag
pkg debug/elf, const DT_MIPS_COMPACT_SIZE = 1879048239
pkg debug/elf, const DT_MIPS_COMPACT_SIZE DynTag
pkg debug/elf, const DT_MIPS_CONFLICT = 1879048200
pkg debug/elf, const DT_MIPS_CONFLICT DynTag
pkg debug/elf, const DT_MIPS_CONFLICTNO = 1879048203
pkg debug/elf, const DT_MIPS_CONFLICTNO DynTag
pkg debug/elf, const DT_MIPS_CXX_FLAGS = 1879048226
pkg debug/elf, const DT_MIPS_CXX_FLAGS DynTag
pkg debug/elf, const DT_MIPS_DELTA_CLASS = 1879048215
pkg debug/elf, const DT_MIPS_DELTA_CLASS DynTag
pkg debug/elf, const DT_MIPS_DELTA_CLASSSYM = 1879048224
pkg debug/elf, const DT_MIPS_DELTA_CLASSSYM DynTag
pkg debug/elf, const DT_MIPS_DELTA_CLASSSYM_NO = 1879048225
pkg debug/elf, const DT_MIPS_DELTA_CLASSSYM_NO DynTag
pkg debug/elf, const DT_MIPS_DELTA_CLASS_NO = 1879048216
pkg debug/elf, const DT_MIPS_DELTA_CLASS_NO DynTag
pkg debug/elf, const DT_MIPS_DELTA_INSTANCE = 1879048217
pkg debug/elf, const DT_MIPS_DELTA_INSTANCE DynTag
pkg debug/elf, const DT_MIPS_DELTA_INSTANCE_NO = 1879048218
pkg debug/elf, const DT_MIPS_DELTA_INSTANCE_NO DynTag
pkg debug/elf, const DT_MIPS_DELTA_RELOC = 1879048219
pkg debug/elf, const DT_MIPS_DELTA_RELOC DynTag
pkg debug/elf, const DT_MIPS_DELTA_RELOC_NO = 1879048220
pkg debug/elf, const DT_MIPS_DELTA_RELOC_NO DynTag
pkg debug/elf, const DT_MIPS_DELTA_SYM = 1879048221
pkg debug/elf, const DT_MIPS_DELTA_SYM DynTag
pkg debug/elf, const DT_MIPS_DELTA_SYM_NO = 1879048222
pkg debug/elf, const DT_MIPS_DELTA_SYM_NO DynTag
pkg debug/elf, const DT_MIPS_DYNSTR_ALIGN = 1879048235
pkg debug/elf, const DT_MIPS_DYNSTR_ALIGN DynTag
pkg debug/elf, const DT_MIPS_FLAGS = 1879048197
pkg debug/elf, const DT_MIPS_FLAGS DynTag
pkg debug/elf, const DT_MIPS_GOTSYM = 1879048211
pkg debug/elf, const DT_MIPS_GOTSYM DynTag
pkg debug/elf, const DT_MIPS_GP_VALUE = 1879048240
pkg debug/elf, const DT_MIPS_GP_VALUE DynTag
pkg debug/elf, const DT_MIPS_HIDDEN_GOTIDX = 1879048231
pkg debug/elf, const DT_MIPS_HIDDEN_GOTIDX DynTag
pkg debug/elf, const DT_MIPS_HIPAGENO = 1879048212
pkg debug/elf, const DT_MIPS_HIPAGENO DynTag
pkg debug/elf, const DT_MIPS_ICHECKSUM = 1879048195
pkg debug/elf, const DT_MIPS_ICHECKSUM DynTag
pkg debug/elf, const DT_MIPS_INTERFACE = 1879048234
pkg debug/elf, const DT_MIPS_INTERFACE DynTag
pkg debug/elf, const DT_MIPS_INTERFACE_SIZE = 1879048236
pkg debug/elf, const DT_MIPS_INTERFACE_SIZE DynTag
pkg debug/elf, const DT_MIPS_IVERSION = 1879048196
pkg debug/elf, const DT_MIPS_IVERSION DynTag
pkg debug/elf, const DT_MIPS_LIBLIST = 1879048201
pkg debug/elf, const DT_MIPS_LIBLIST DynTag
pkg debug/elf, const DT_MIPS_LIBLISTNO = 1879048208
pkg debug/elf, const DT_MIPS_LIBLISTNO DynTag
pkg debug/elf, const DT_MIPS_LOCALPAGE_GOTIDX = 1879048229
pkg debug/elf, const DT_MIPS_LOCALPAGE_GOTIDX DynTag
pkg debug/elf, const DT_MIPS_LOCAL_GOTIDX = 1879048230
pkg debug/elf, const DT_MIPS_LOCAL_GOTIDX DynTag
pkg debug/elf, const DT_MIPS_LOCAL_GOTNO = 1879048202
pkg debug/elf, const DT_MIPS_LOCAL_GOTNO DynTag
pkg debug/elf, const DT_MIPS_MSYM = 1879048199
pkg debug/elf, const DT_MIPS_MSYM DynTag
pkg debug/elf, const DT_MIPS_OPTIONS = 1879048233
pkg debug/elf, const DT_MIPS_OPTIONS DynTag
pkg debug/elf, const DT_MIPS_PERF_SUFFIX = 1879048238
pkg debug/elf, const DT_MIPS_PERF_SUFFIX DynTag
pkg debug/elf, const DT_MIPS_PIXIE_INIT = 1879048227
pkg debug/elf, const DT_MIPS_PIXIE_INIT DynTag
pkg debug/elf, const DT_MIPS_PLTGOT = 1879048242
pkg debug/elf, const DT_MIPS_PLTGOT DynTag
pkg debug/elf, const DT_MIPS_PROTECTED_GOTIDX = 1879048232
pkg debug/elf, const DT_MIPS_PROTECTED_GOTIDX DynTag
pkg debug/elf, const DT_MIPS_RLD_MAP = 1879048214
pkg debug/elf, const DT_MIPS_RLD_MAP DynTag
pkg debug/elf, const DT_MIPS_RLD_MAP_REL = 1879048245
pkg debug/elf, const DT_MIPS_RLD_MAP_REL DynTag
pkg debug/elf, const DT_MIPS_RLD_TEXT_RESOLVE_ADDR = 1879048237
pkg debug/elf, const DT_MIPS_RLD_TEXT_RESOLVE_ADDR DynTag
pkg debug/elf, const DT_MIPS_RLD_VERSION = 1879048193
pkg debug/elf, const DT_MIPS_RLD_VERSION DynTag
pkg debug/elf, const DT_MIPS_RWPLT = 1879048244
pkg debug/elf, const DT_MIPS_RWPLT DynTag
pkg debug/elf, const DT_MIPS_SYMBOL_LIB = 1879048228
pkg debug/elf, const DT_MIPS_SYMBOL_LIB DynTag
pkg debug/elf, const DT_MIPS_SYMTABNO = 1879048209
pkg debug/elf, const DT_MIPS_SYMTABNO DynTag
pkg debug/elf, const DT_MIPS_TIME_STAMP = 1879048194
pkg debug/elf, const DT_MIPS_TIME_STAMP DynTag
pkg debug/elf, const DT_MIPS_UNREFEXTNO = 1879048210
pkg debug/elf, const DT_MIPS_UNREFEXTNO DynTag
pkg debug/elf, const DT_MOVEENT = 1879047674
pkg debug/elf, const DT_MOVEENT DynTag
pkg debug/elf, const DT_MOVESZ = 1879047675
pkg debug/elf, const DT_MOVESZ DynTag
pkg debug/elf, const DT_MOVETAB = 1879047934
pkg debug/elf, const DT_MOVETAB DynTag
pkg debug/elf, const DT_PLTPAD = 1879047933
pkg debug/elf, const DT_PLTPAD DynTag
pkg debug/elf, const DT_PLTPADSZ = 1879047673
pkg debug/elf, const DT_PLTPADSZ DynTag
pkg debug/elf, const DT_POSFLAG_1 = 1879047677
pkg debug/elf, const DT_POSFLAG_1 DynTag
pkg debug/elf, const DT_PPC64_GLINK = 1879048192
pkg debug/elf, const DT_PPC64_GLINK DynTag
pkg debug/elf, const DT_PPC64_OPD = 1879048193
pkg debug/elf, const DT_PPC64_OPD DynTag
pkg debug/elf, const DT_PPC64_OPDSZ = 1879048194
pkg debug/elf, const DT_PPC64_OPDSZ DynTag
pkg debug/elf, const DT_PPC64_OPT = 1879048195
pkg debug/elf, const DT_PPC64_OPT DynTag
pkg debug/elf, const DT_PPC_GOT = 1879048192
pkg debug/elf, const DT_PPC_GOT DynTag
pkg debug/elf, const DT_PPC_OPT = 1879048193
pkg debug/elf, const DT_PPC_OPT DynTag
pkg debug/elf, const DT_RELACOUNT = 1879048185
pkg debug/elf, const DT_RELACOUNT DynTag
pkg debug/elf, const DT_RELCOUNT = 1879048186
pkg debug/elf, const DT_RELCOUNT DynTag
pkg debug/elf, const DT_SPARC_REGISTER = 1879048193
pkg debug/elf, const DT_SPARC_REGISTER DynTag
pkg debug/elf, const DT_SYMINENT = 1879047679
pkg debug/elf, const DT_SYMINENT DynTag
pkg debug/elf, const DT_SYMINFO = 1879047935
pkg debug/elf, const DT_SYMINFO DynTag
pkg debug/elf, const DT_SYMINSZ = 1879047678
pkg debug/elf, const DT_SYMINSZ DynTag
pkg debug/elf, const DT_SYMTAB_SHNDX = 34
pkg debug/elf, const DT_SYMTAB_SHNDX DynTag
pkg debug/elf, const DT_TLSDESC_GOT = 1879047927
pkg debug/elf, const DT_TLSDESC_GOT DynTag
pkg debug/elf, const DT_TLSDESC_PLT = 1879047926
pkg debug/elf, const DT_TLSDESC_PLT DynTag
pkg debug/elf, const DT_USED = 2147483646
pkg debug/elf, const DT_USED DynTag
pkg debug/elf, const DT_VALRNGHI = 1879047679
pkg debug/elf, const DT_VALRNGHI DynTag
pkg debug/elf, const DT_VALRNGLO = 1879047424
pkg debug/elf, const DT_VALRNGLO DynTag
pkg debug/elf, const DT_VERDEF = 1879048188
pkg debug/elf, const DT_VERDEF DynTag
pkg debug/elf, const DT_VERDEFNUM = 1879048189
pkg debug/elf, const DT_VERDEFNUM DynTag
pkg debug/elf, const PT_AARCH64_ARCHEXT = 1879048192
pkg debug/elf, const PT_AARCH64_ARCHEXT ProgType
pkg debug/elf, const PT_AARCH64_UNWIND = 1879048193
pkg debug/elf, const PT_AARCH64_UNWIND ProgType
pkg debug/elf, const PT_ARM_ARCHEXT = 1879048192
pkg debug/elf, const PT_ARM_ARCHEXT ProgType
pkg debug/elf, const PT_ARM_EXIDX = 1879048193
pkg debug/elf, const PT_ARM_EXIDX ProgType
pkg debug/elf, const PT_GNU_EH_FRAME = 1685382480
pkg debug/elf, const PT_GNU_EH_FRAME ProgType
pkg debug/elf, const PT_GNU_MBIND_HI = 1685386580
pkg debug/elf, const PT_GNU_MBIND_HI ProgType
pkg debug/elf, const PT_GNU_MBIND_LO = 1685382485
pkg debug/elf, const PT_GNU_MBIND_LO ProgType
pkg debug/elf, const PT_GNU_PROPERTY = 1685382483
pkg debug/elf, const PT_GNU_PROPERTY ProgType
pkg debug/elf, const PT_GNU_RELRO = 1685382482
pkg debug/elf, const PT_GNU_RELRO ProgType
pkg debug/elf, const PT_GNU_STACK = 1685382481
pkg debug/elf, const PT_GNU_STACK ProgType
pkg debug/elf, const PT_MIPS_ABIFLAGS = 1879048195
pkg debug/elf, const PT_MIPS_ABIFLAGS ProgType
pkg debug/elf, const PT_MIPS_OPTIONS = 1879048194
pkg debug/elf, const PT_MIPS_OPTIONS ProgType
pkg debug/elf, const PT_MIPS_REGINFO = 1879048192
pkg debug/elf, const PT_MIPS_REGINFO ProgType
pkg debug/elf, const PT_MIPS_RTPROC = 1879048193
pkg debug/elf, const PT_MIPS_RTPROC ProgType
pkg debug/elf, const PT_OPENBSD_BOOTDATA = 1705253862
pkg debug/elf, const PT_OPENBSD_BOOTDATA ProgType
pkg debug/elf, const PT_OPENBSD_RANDOMIZE = 1705237478
pkg debug/elf, const PT_OPENBSD_RANDOMIZE ProgType
pkg debug/elf, const PT_OPENBSD_WXNEEDED = 1705237479
pkg debug/elf, const PT_OPENBSD_WXNEEDED ProgType
pkg debug/elf, const PT_PAX_FLAGS = 1694766464
pkg debug/elf, const PT_PAX_FLAGS ProgType
pkg debug/elf, const PT_S390_PGSTE = 1879048192
pkg debug/elf, const PT_S390_PGSTE ProgType
pkg debug/elf, const PT_SUNWSTACK = 1879048187
pkg debug/elf, const PT_SUNWSTACK ProgType
pkg debug/elf, const PT_SUNW_EH_FRAME = 1685382480
pkg debug/elf, const PT_SUNW_EH_FRAME ProgType
pkg flag, func Func(string, string, func(string) error)
pkg flag, method (*FlagSet) Func(string, string, func(string) error)
pkg go/build, type Package struct, IgnoredOtherFiles []string
pkg io, type ReadSeekCloser interface { Close, Read, Seek }
pkg io, type ReadSeekCloser interface, Close() error
pkg io, type ReadSeekCloser interface, Read([]uint8) (int, error)
pkg io, type ReadSeekCloser interface, Seek(int64, int) (int64, error)
pkg io/fs, const ModeAppend = 1073741824
pkg io/fs, const ModeAppend FileMode
pkg io/fs, const ModeCharDevice = 2097152
pkg io/fs, const ModeCharDevice FileMode
pkg io/fs, const ModeDevice = 67108864
pkg io/fs, const ModeDevice FileMode
pkg io/fs, const ModeDir = 2147483648
pkg io/fs, const ModeDir FileMode
pkg io/fs, const ModeExclusive = 536870912
pkg io/fs, const ModeExclusive FileMode
pkg io/fs, const ModeIrregular = 524288
pkg io/fs, const ModeIrregular FileMode
pkg io/fs, const ModeNamedPipe = 33554432
pkg io/fs, const ModeNamedPipe FileMode
pkg io/fs, const ModePerm = 511
pkg io/fs, const ModePerm FileMode
pkg io/fs, const ModeSetgid = 4194304
pkg io/fs, const ModeSetgid FileMode
pkg io/fs, const ModeSetuid = 8388608
pkg io/fs, const ModeSetuid FileMode
pkg io/fs, const ModeSocket = 16777216
pkg io/fs, const ModeSocket FileMode
pkg io/fs, const ModeSticky = 1048576
pkg io/fs, const ModeSticky FileMode
pkg io/fs, const ModeSymlink = 134217728
pkg io/fs, const ModeSymlink FileMode
pkg io/fs, const ModeTemporary = 268435456
pkg io/fs, const ModeTemporary FileMode
pkg io/fs, const ModeType = 2401763328
pkg io/fs, const ModeType FileMode
pkg io/fs, method (*PathError) Error() string
pkg io/fs, method (*PathError) Timeout() bool
pkg io/fs, method (*PathError) Unwrap() error
pkg io/fs, method (FileMode) IsDir() bool
pkg io/fs, method (FileMode) IsRegular() bool
pkg io/fs, method (FileMode) Perm() FileMode
pkg io/fs, method (FileMode) String() string
pkg io/fs, method (FileMode) Type() FileMode
pkg io/fs, type FileInfo interface { IsDir, ModTime, Mode, Name, Size, Sys }
pkg io/fs, type FileInfo interface, IsDir() bool
pkg io/fs, type FileInfo interface, ModTime() time.Time
pkg io/fs, type FileInfo interface, Mode() FileMode
pkg io/fs, type FileInfo interface, Name() string
pkg io/fs, type FileInfo interface, Size() int64
pkg io/fs, type FileInfo interface, Sys() interface{}
pkg io/fs, type FileMode uint32
pkg io/fs, type PathError struct
pkg io/fs, type PathError struct, Err error
pkg io/fs, type PathError struct, Op string
pkg io/fs, type PathError struct, Path string
pkg io/fs, var ErrClosed error
pkg io/fs, var ErrExist error
pkg io/fs, var ErrInvalid error
pkg io/fs, var ErrNotExist error
pkg io/fs, var ErrPermission error
pkg net, var ErrClosed error
pkg net/http, type Transport struct, GetProxyConnectHeader func(context.Context, *url.URL, string) (Header, error)
pkg os, const ModeAppend fs.FileMode
pkg os, const ModeCharDevice fs.FileMode
pkg os, const ModeDevice fs.FileMode
pkg os, const ModeDir fs.FileMode
pkg os, const ModeExclusive fs.FileMode
pkg os, const ModeIrregular fs.FileMode
pkg os, const ModeNamedPipe fs.FileMode
pkg os, const ModePerm fs.FileMode
pkg os, const ModeSetgid fs.FileMode
pkg os, const ModeSetuid fs.FileMode
pkg os, const ModeSocket fs.FileMode
pkg os, const ModeSticky fs.FileMode
pkg os, const ModeSymlink fs.FileMode
pkg os, const ModeTemporary fs.FileMode
pkg os, const ModeType fs.FileMode
pkg os, func Chmod(string, fs.FileMode) error
pkg os, func Lstat(string) (fs.FileInfo, error)
pkg os, func Mkdir(string, fs.FileMode) error
pkg os, func MkdirAll(string, fs.FileMode) error
pkg os, func OpenFile(string, int, fs.FileMode) (*File, error)
pkg os, func SameFile(fs.FileInfo, fs.FileInfo) bool
pkg os, func Stat(string) (fs.FileInfo, error)
pkg os, method (*File) Chmod(fs.FileMode) error
pkg os, method (*File) ReadDir(int) ([]DirEntry, error)
pkg os, method (*File) Readdir(int) ([]fs.FileInfo, error)
pkg os, method (*File) Stat() (fs.FileInfo, error)
pkg os, type DirEntry interface { Info, IsDir, Name, Type }
pkg os, type DirEntry interface, Info() (fs.FileInfo, error)
pkg os, type DirEntry interface, IsDir() bool
pkg os, type DirEntry interface, Name() string
pkg os, type DirEntry interface, Type() fs.FileMode
pkg os, type FileInfo = fs.FileInfo
pkg os, type FileMode = fs.FileMode
pkg os, type PathError = fs.PathError
pkg os/signal, func NotifyContext(context.Context, ...os.Signal) (context.Context, context.CancelFunc)
pkg testing/iotest, func ErrReader(error) io.Reader
pkg text/template/parse, const NodeComment = 20
pkg text/template/parse, const NodeComment NodeType
pkg text/template/parse, const ParseComments = 1
pkg text/template/parse, const ParseComments Mode
pkg text/template/parse, method (*CommentNode) Copy() Node
pkg text/template/parse, method (*CommentNode) String() string
pkg text/template/parse, method (CommentNode) Position() Pos
pkg text/template/parse, method (CommentNode) Type() NodeType
pkg text/template/parse, type CommentNode struct
pkg text/template/parse, type CommentNode struct, Text string
pkg text/template/parse, type CommentNode struct, embedded NodeType
pkg text/template/parse, type CommentNode struct, embedded Pos
pkg text/template/parse, type Mode uint
pkg text/template/parse, type Tree struct, Mode Mode
pkg unicode, const Version = "13.0.0"
pkg unicode, var Chorasmian *RangeTable
pkg unicode, var Dives_Akuru *RangeTable
pkg unicode, var Khitan_Small_Script *RangeTable
pkg unicode, var Yezidi *RangeTable
pkg crypto/tls, const TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA uint16
pkg crypto/tls, const TLS_RSA_WITH_AES_256_CBC_SHA uint16
pkg crypto/x509, const ECDSA PublicKeyAlgorithm
pkg crypto/x509, const ECDSAWithSHA1 SignatureAlgorithm
pkg crypto/x509, const ECDSAWithSHA256 SignatureAlgorithm
pkg crypto/x509, const ECDSAWithSHA384 SignatureAlgorithm
pkg crypto/x509, const ECDSAWithSHA512 SignatureAlgorithm
pkg debug/elf, type FileHeader struct, Entry uint64
pkg go/doc, var IllegalPrefixes []string
pkg math/big, method (*Int) MarshalJSON() ([]byte, error)
pkg math/big, method (*Int) UnmarshalJSON([]byte) error
pkg regexp/syntax, const ErrUnexpectedParen ErrorCode
pkg syscall (darwin-386), const B0 ideal-int
pkg syscall (darwin-386), const B110 ideal-int
pkg syscall (darwin-386), const B115200 ideal-int
pkg syscall (darwin-386), const B1200 ideal-int
pkg syscall (darwin-386), const B134 ideal-int
pkg syscall (darwin-386), const B14400 ideal-int
pkg syscall (darwin-386), const B150 ideal-int
pkg syscall (darwin-386), const B1800 ideal-int
pkg syscall (darwin-386), const B19200 ideal-int
pkg syscall (darwin-386), const B200 ideal-int
pkg syscall (darwin-386), const B230400 ideal-int
pkg syscall (darwin-386), const B2400 ideal-int
pkg syscall (darwin-386), const B28800 ideal-int
pkg syscall (darwin-386), const B300 ideal-int
pkg syscall (darwin-386), const B38400 ideal-int
pkg syscall (darwin-386), const B4800 ideal-int
pkg syscall (darwin-386), const B50 ideal-int
pkg syscall (darwin-386), const B57600 ideal-int
pkg syscall (darwin-386), const B600 ideal-int
pkg syscall (darwin-386), const B7200 ideal-int
pkg syscall (darwin-386), const B75 ideal-int
pkg syscall (darwin-386), const B76800 ideal-int
pkg syscall (darwin-386), const B9600 ideal-int
pkg syscall (darwin-386), const BRKINT ideal-int
pkg syscall (darwin-386), const CFLUSH ideal-int
pkg syscall (darwin-386), const CLOCAL ideal-int
pkg syscall (darwin-386), const CREAD ideal-int
pkg syscall (darwin-386), const CS5 ideal-int
pkg syscall (darwin-386), const CS6 ideal-int
pkg syscall (darwin-386), const CS7 ideal-int
pkg syscall (darwin-386), const CS8 ideal-int
pkg syscall (darwin-386), const CSIZE ideal-int
pkg syscall (darwin-386), const CSTART ideal-int
pkg syscall (darwin-386), const CSTATUS ideal-int
pkg syscall (darwin-386), const CSTOP ideal-int
pkg syscall (darwin-386), const CSTOPB ideal-int
pkg syscall (darwin-386), const CSUSP ideal-int
pkg syscall (darwin-386), const FLUSHO ideal-int
pkg syscall (darwin-386), const HUPCL ideal-int
pkg syscall (darwin-386), const ICANON ideal-int
pkg syscall (darwin-386), const ICRNL ideal-int
pkg syscall (darwin-386), const IEXTEN ideal-int
pkg syscall (darwin-386), const IGNBRK ideal-int
pkg syscall (darwin-386), const IGNCR ideal-int
pkg syscall (darwin-386), const IGNPAR ideal-int
pkg syscall (darwin-386), const IMAXBEL ideal-int
pkg syscall (darwin-386), const INLCR ideal-int
pkg syscall (darwin-386), const INPCK ideal-int
pkg syscall (darwin-386), const ISIG ideal-int
pkg syscall (darwin-386), const ISTRIP ideal-int
pkg syscall (darwin-386), const IUTF8 ideal-int
pkg syscall (darwin-386), const IXANY ideal-int
pkg syscall (darwin-386), const IXOFF ideal-int
pkg syscall (darwin-386), const IXON ideal-int
pkg syscall (darwin-386), const NOFLSH ideal-int
pkg syscall (darwin-386), const OCRNL ideal-int
pkg syscall (darwin-386), const OFDEL ideal-int
pkg syscall (darwin-386), const OFILL ideal-int
pkg syscall (darwin-386), const ONLCR ideal-int
pkg syscall (darwin-386), const ONLRET ideal-int
pkg syscall (darwin-386), const ONOCR ideal-int
pkg syscall (darwin-386), const ONOEOT ideal-int
pkg syscall (darwin-386), const OPOST ideal-int
pkg syscall (darwin-386), const PARENB ideal-int
pkg syscall (darwin-386), const PARMRK ideal-int
pkg syscall (darwin-386), const PARODD ideal-int
pkg syscall (darwin-386), const PENDIN ideal-int
pkg syscall (darwin-386), const TCIFLUSH ideal-int
pkg syscall (darwin-386), const TCIOFLUSH ideal-int
pkg syscall (darwin-386), const TCOFLUSH ideal-int
pkg syscall (darwin-386), const TCSAFLUSH ideal-int
pkg syscall (darwin-386), const TOSTOP ideal-int
pkg syscall (darwin-386), const VDISCARD ideal-int
pkg syscall (darwin-386), const VDSUSP ideal-int
pkg syscall (darwin-386), const VEOF ideal-int
pkg syscall (darwin-386), const VEOL ideal-int
pkg syscall (darwin-386), const VEOL2 ideal-int
pkg syscall (darwin-386), const VERASE ideal-int
pkg syscall (darwin-386), const VINTR ideal-int
pkg syscall (darwin-386), const VKILL ideal-int
pkg syscall (darwin-386), const VLNEXT ideal-int
pkg syscall (darwin-386), const VMIN ideal-int
pkg syscall (darwin-386), const VQUIT ideal-int
pkg syscall (darwin-386), const VREPRINT ideal-int
pkg syscall (darwin-386), const VSTART ideal-int
pkg syscall (darwin-386), const VSTATUS ideal-int
pkg syscall (darwin-386), const VSTOP ideal-int
pkg syscall (darwin-386), const VSUSP ideal-int
pkg syscall (darwin-386), const VT0 ideal-int
pkg syscall (darwin-386), const VT1 ideal-int
pkg syscall (darwin-386), const VTDLY ideal-int
pkg syscall (darwin-386), const VTIME ideal-int
pkg syscall (darwin-386), const VWERASE ideal-int
pkg syscall (darwin-386), type Termios struct
pkg syscall (darwin-386), type Termios struct, Cc [20]uint8
pkg syscall (darwin-386), type Termios struct, Cflag uint32
pkg syscall (darwin-386), type Termios struct, Iflag uint32
pkg syscall (darwin-386), type Termios struct, Ispeed uint32
pkg syscall (darwin-386), type Termios struct, Lflag uint32
pkg syscall (darwin-386), type Termios struct, Oflag uint32
pkg syscall (darwin-386), type Termios struct, Ospeed uint32
pkg syscall (darwin-386-cgo), const B0 ideal-int
pkg syscall (darwin-386-cgo), const B110 ideal-int
pkg syscall (darwin-386-cgo), const B115200 ideal-int
pkg syscall (darwin-386-cgo), const B1200 ideal-int
pkg syscall (darwin-386-cgo), const B134 ideal-int
pkg syscall (darwin-386-cgo), const B14400 ideal-int
pkg syscall (darwin-386-cgo), const B150 ideal-int
pkg syscall (darwin-386-cgo), const B1800 ideal-int
pkg syscall (darwin-386-cgo), const B19200 ideal-int
pkg syscall (darwin-386-cgo), const B200 ideal-int
pkg syscall (darwin-386-cgo), const B230400 ideal-int
pkg syscall (darwin-386-cgo), const B2400 ideal-int
pkg syscall (darwin-386-cgo), const B28800 ideal-int
pkg syscall (darwin-386-cgo), const B300 ideal-int
pkg syscall (darwin-386-cgo), const B38400 ideal-int
pkg syscall (darwin-386-cgo), const B4800 ideal-int
pkg syscall (darwin-386-cgo), const B50 ideal-int
pkg syscall (darwin-386-cgo), const B57600 ideal-int
pkg syscall (darwin-386-cgo), const B600 ideal-int
pkg syscall (darwin-386-cgo), const B7200 ideal-int
pkg syscall (darwin-386-cgo), const B75 ideal-int
pkg syscall (darwin-386-cgo), const B76800 ideal-int
pkg syscall (darwin-386-cgo), const B9600 ideal-int
pkg syscall (darwin-386-cgo), const BRKINT ideal-int
pkg syscall (darwin-386-cgo), const CFLUSH ideal-int
pkg syscall (darwin-386-cgo), const CLOCAL ideal-int
pkg syscall (darwin-386-cgo), const CREAD ideal-int
pkg syscall (darwin-386-cgo), const CS5 ideal-int
pkg syscall (darwin-386-cgo), const CS6 ideal-int
pkg syscall (darwin-386-cgo), const CS7 ideal-int
pkg syscall (darwin-386-cgo), const CS8 ideal-int
pkg syscall (darwin-386-cgo), const CSIZE ideal-int
pkg syscall (darwin-386-cgo), const CSTART ideal-int
pkg syscall (darwin-386-cgo), const CSTATUS ideal-int
pkg syscall (darwin-386-cgo), const CSTOP ideal-int
pkg syscall (darwin-386-cgo), const CSTOPB ideal-int
pkg syscall (darwin-386-cgo), const CSUSP ideal-int
pkg syscall (darwin-386-cgo), const FLUSHO ideal-int
pkg syscall (darwin-386-cgo), const HUPCL ideal-int
pkg syscall (darwin-386-cgo), const ICANON ideal-int
pkg syscall (darwin-386-cgo), const ICRNL ideal-int
pkg syscall (darwin-386-cgo), const IEXTEN ideal-int
pkg syscall (darwin-386-cgo), const IGNBRK ideal-int
pkg syscall (darwin-386-cgo), const IGNCR ideal-int
pkg syscall (darwin-386-cgo), const IGNPAR ideal-int
pkg syscall (darwin-386-cgo), const IMAXBEL ideal-int
pkg syscall (darwin-386-cgo), const INLCR ideal-int
pkg syscall (darwin-386-cgo), const INPCK ideal-int
pkg syscall (darwin-386-cgo), const ISIG ideal-int
pkg syscall (darwin-386-cgo), const ISTRIP ideal-int
pkg syscall (darwin-386-cgo), const IUTF8 ideal-int
pkg syscall (darwin-386-cgo), const IXANY ideal-int
pkg syscall (darwin-386-cgo), const IXOFF ideal-int
pkg syscall (darwin-386-cgo), const IXON ideal-int
pkg syscall (darwin-386-cgo), const NOFLSH ideal-int
pkg syscall (darwin-386-cgo), const OCRNL ideal-int
pkg syscall (darwin-386-cgo), const OFDEL ideal-int
pkg syscall (darwin-386-cgo), const OFILL ideal-int
pkg syscall (darwin-386-cgo), const ONLCR ideal-int
pkg syscall (darwin-386-cgo), const ONLRET ideal-int
pkg syscall (darwin-386-cgo), const ONOCR ideal-int
pkg syscall (darwin-386-cgo), const ONOEOT ideal-int
pkg syscall (darwin-386-cgo), const OPOST ideal-int
pkg syscall (darwin-386-cgo), const PARENB ideal-int
pkg syscall (darwin-386-cgo), const PARMRK ideal-int
pkg syscall (darwin-386-cgo), const PARODD ideal-int
pkg syscall (darwin-386-cgo), const PENDIN ideal-int
pkg syscall (darwin-386-cgo), const TCIFLUSH ideal-int
pkg syscall (darwin-386-cgo), const TCIOFLUSH ideal-int
pkg syscall (darwin-386-cgo), const TCOFLUSH ideal-int
pkg syscall (darwin-386-cgo), const TCSAFLUSH ideal-int
pkg syscall (darwin-386-cgo), const TOSTOP ideal-int
pkg syscall (darwin-386-cgo), const VDISCARD ideal-int
pkg syscall (darwin-386-cgo), const VDSUSP ideal-int
pkg syscall (darwin-386-cgo), const VEOF ideal-int
pkg syscall (darwin-386-cgo), const VEOL ideal-int
pkg syscall (darwin-386-cgo), const VEOL2 ideal-int
pkg syscall (darwin-386-cgo), const VERASE ideal-int
pkg syscall (darwin-386-cgo), const VINTR ideal-int
pkg syscall (darwin-386-cgo), const VKILL ideal-int
pkg syscall (darwin-386-cgo), const VLNEXT ideal-int
pkg syscall (darwin-386-cgo), const VMIN ideal-int
pkg syscall (darwin-386-cgo), const VQUIT ideal-int
pkg syscall (darwin-386-cgo), const VREPRINT ideal-int
pkg syscall (darwin-386-cgo), const VSTART ideal-int
pkg syscall (darwin-386-cgo), const VSTATUS ideal-int
pkg syscall (darwin-386-cgo), const VSTOP ideal-int
pkg syscall (darwin-386-cgo), const VSUSP ideal-int
pkg syscall (darwin-386-cgo), const VT0 ideal-int
pkg syscall (darwin-386-cgo), const VT1 ideal-int
pkg syscall (darwin-386-cgo), const VTDLY ideal-int
pkg syscall (darwin-386-cgo), const VTIME ideal-int
pkg syscall (darwin-386-cgo), const VWERASE ideal-int
pkg syscall (darwin-386-cgo), type Termios struct
pkg syscall (darwin-386-cgo), type Termios struct, Cc [20]uint8
pkg syscall (darwin-386-cgo), type Termios struct, Cflag uint32
pkg syscall (darwin-386-cgo), type Termios struct, Iflag uint32
pkg syscall (darwin-386-cgo), type Termios struct, Ispeed uint32
pkg syscall (darwin-386-cgo), type Termios struct, Lflag uint32
pkg syscall (darwin-386-cgo), type Termios struct, Oflag uint32
pkg syscall (darwin-386-cgo), type Termios struct, Ospeed uint32
pkg syscall (darwin-amd64), const B0 ideal-int
pkg syscall (darwin-amd64), const B110 ideal-int
pkg syscall (darwin-amd64), const B115200 ideal-int
pkg syscall (darwin-amd64), const B1200 ideal-int
pkg syscall (darwin-amd64), const B134 ideal-int
pkg syscall (darwin-amd64), const B14400 ideal-int
pkg syscall (darwin-amd64), const B150 ideal-int
pkg syscall (darwin-amd64), const B1800 ideal-int
pkg syscall (darwin-amd64), const B19200 ideal-int
pkg syscall (darwin-amd64), const B200 ideal-int
pkg syscall (darwin-amd64), const B230400 ideal-int
pkg syscall (darwin-amd64), const B2400 ideal-int
pkg syscall (darwin-amd64), const B28800 ideal-int
pkg syscall (darwin-amd64), const B300 ideal-int
pkg syscall (darwin-amd64), const B38400 ideal-int
pkg syscall (darwin-amd64), const B4800 ideal-int
pkg syscall (darwin-amd64), const B50 ideal-int
pkg syscall (darwin-amd64), const B57600 ideal-int
pkg syscall (darwin-amd64), const B600 ideal-int
pkg syscall (darwin-amd64), const B7200 ideal-int
pkg syscall (darwin-amd64), const B75 ideal-int
pkg syscall (darwin-amd64), const B76800 ideal-int
pkg syscall (darwin-amd64), const B9600 ideal-int
pkg syscall (darwin-amd64), const BRKINT ideal-int
pkg syscall (darwin-amd64), const CFLUSH ideal-int
pkg syscall (darwin-amd64), const CLOCAL ideal-int
pkg syscall (darwin-amd64), const CREAD ideal-int
pkg syscall (darwin-amd64), const CS5 ideal-int
pkg syscall (darwin-amd64), const CS6 ideal-int
pkg syscall (darwin-amd64), const CS7 ideal-int
pkg syscall (darwin-amd64), const CS8 ideal-int
pkg syscall (darwin-amd64), const CSIZE ideal-int
pkg syscall (darwin-amd64), const CSTART ideal-int
pkg syscall (darwin-amd64), const CSTATUS ideal-int
pkg syscall (darwin-amd64), const CSTOP ideal-int
pkg syscall (darwin-amd64), const CSTOPB ideal-int
pkg syscall (darwin-amd64), const CSUSP ideal-int
pkg syscall (darwin-amd64), const FLUSHO ideal-int
pkg syscall (darwin-amd64), const HUPCL ideal-int
pkg syscall (darwin-amd64), const ICANON ideal-int
pkg syscall (darwin-amd64), const ICRNL ideal-int
pkg syscall (darwin-amd64), const IEXTEN ideal-int
pkg syscall (darwin-amd64), const IGNBRK ideal-int
pkg syscall (darwin-amd64), const IGNCR ideal-int
pkg syscall (darwin-amd64), const IGNPAR ideal-int
pkg syscall (darwin-amd64), const IMAXBEL ideal-int
pkg syscall (darwin-amd64), const INLCR ideal-int
pkg syscall (darwin-amd64), const INPCK ideal-int
pkg syscall (darwin-amd64), const ISIG ideal-int
pkg syscall (darwin-amd64), const ISTRIP ideal-int
pkg syscall (darwin-amd64), const IUTF8 ideal-int
pkg syscall (darwin-amd64), const IXANY ideal-int
pkg syscall (darwin-amd64), const IXOFF ideal-int
pkg syscall (darwin-amd64), const IXON ideal-int
pkg syscall (darwin-amd64), const NOFLSH ideal-int
pkg syscall (darwin-amd64), const OCRNL ideal-int
pkg syscall (darwin-amd64), const OFDEL ideal-int
pkg syscall (darwin-amd64), const OFILL ideal-int
pkg syscall (darwin-amd64), const ONLCR ideal-int
pkg syscall (darwin-amd64), const ONLRET ideal-int
pkg syscall (darwin-amd64), const ONOCR ideal-int
pkg syscall (darwin-amd64), const ONOEOT ideal-int
pkg syscall (darwin-amd64), const OPOST ideal-int
pkg syscall (darwin-amd64), const PARENB ideal-int
pkg syscall (darwin-amd64), const PARMRK ideal-int
pkg syscall (darwin-amd64), const PARODD ideal-int
pkg syscall (darwin-amd64), const PENDIN ideal-int
pkg syscall (darwin-amd64), const TCIFLUSH ideal-int
pkg syscall (darwin-amd64), const TCIOFLUSH ideal-int
pkg syscall (darwin-amd64), const TCOFLUSH ideal-int
pkg syscall (darwin-amd64), const TCSAFLUSH ideal-int
pkg syscall (darwin-amd64), const TOSTOP ideal-int
pkg syscall (darwin-amd64), const VDISCARD ideal-int
pkg syscall (darwin-amd64), const VDSUSP ideal-int
pkg syscall (darwin-amd64), const VEOF ideal-int
pkg syscall (darwin-amd64), const VEOL ideal-int
pkg syscall (darwin-amd64), const VEOL2 ideal-int
pkg syscall (darwin-amd64), const VERASE ideal-int
pkg syscall (darwin-amd64), const VINTR ideal-int
pkg syscall (darwin-amd64), const VKILL ideal-int
pkg syscall (darwin-amd64), const VLNEXT ideal-int
pkg syscall (darwin-amd64), const VMIN ideal-int
pkg syscall (darwin-amd64), const VQUIT ideal-int
pkg syscall (darwin-amd64), const VREPRINT ideal-int
pkg syscall (darwin-amd64), const VSTART ideal-int
pkg syscall (darwin-amd64), const VSTATUS ideal-int
pkg syscall (darwin-amd64), const VSTOP ideal-int
pkg syscall (darwin-amd64), const VSUSP ideal-int
pkg syscall (darwin-amd64), const VT0 ideal-int
pkg syscall (darwin-amd64), const VT1 ideal-int
pkg syscall (darwin-amd64), const VTDLY ideal-int
pkg syscall (darwin-amd64), const VTIME ideal-int
pkg syscall (darwin-amd64), const VWERASE ideal-int
pkg syscall (darwin-amd64), type Termios struct
pkg syscall (darwin-amd64), type Termios struct, Cc [20]uint8
pkg syscall (darwin-amd64), type Termios struct, Cflag uint64
pkg syscall (darwin-amd64), type Termios struct, Iflag uint64
pkg syscall (darwin-amd64), type Termios struct, Ispeed uint64
pkg syscall (darwin-amd64), type Termios struct, Lflag uint64
pkg syscall (darwin-amd64), type Termios struct, Oflag uint64
pkg syscall (darwin-amd64), type Termios struct, Ospeed uint64
pkg syscall (darwin-amd64), type Termios struct, Pad_cgo_0 [4]byte
pkg syscall (darwin-amd64-cgo), const B0 ideal-int
pkg syscall (darwin-amd64-cgo), const B110 ideal-int
pkg syscall (darwin-amd64-cgo), const B115200 ideal-int
pkg syscall (darwin-amd64-cgo), const B1200 ideal-int
pkg syscall (darwin-amd64-cgo), const B134 ideal-int
pkg syscall (darwin-amd64-cgo), const B14400 ideal-int
pkg syscall (darwin-amd64-cgo), const B150 ideal-int
pkg syscall (darwin-amd64-cgo), const B1800 ideal-int
pkg syscall (darwin-amd64-cgo), const B19200 ideal-int
pkg syscall (darwin-amd64-cgo), const B200 ideal-int
pkg syscall (darwin-amd64-cgo), const B230400 ideal-int
pkg syscall (darwin-amd64-cgo), const B2400 ideal-int
pkg syscall (darwin-amd64-cgo), const B28800 ideal-int
pkg syscall (darwin-amd64-cgo), const B300 ideal-int
pkg syscall (darwin-amd64-cgo), const B38400 ideal-int
pkg syscall (darwin-amd64-cgo), const B4800 ideal-int
pkg syscall (darwin-amd64-cgo), const B50 ideal-int
pkg syscall (darwin-amd64-cgo), const B57600 ideal-int
pkg syscall (darwin-amd64-cgo), const B600 ideal-int
pkg syscall (darwin-amd64-cgo), const B7200 ideal-int
pkg syscall (darwin-amd64-cgo), const B75 ideal-int
pkg syscall (darwin-amd64-cgo), const B76800 ideal-int
pkg syscall (darwin-amd64-cgo), const B9600 ideal-int
pkg syscall (darwin-amd64-cgo), const BRKINT ideal-int
pkg syscall (darwin-amd64-cgo), const CFLUSH ideal-int
pkg syscall (darwin-amd64-cgo), const CLOCAL ideal-int
pkg syscall (darwin-amd64-cgo), const CREAD ideal-int
pkg syscall (darwin-amd64-cgo), const CS5 ideal-int
pkg syscall (darwin-amd64-cgo), const CS6 ideal-int
pkg syscall (darwin-amd64-cgo), const CS7 ideal-int
pkg syscall (darwin-amd64-cgo), const CS8 ideal-int
pkg syscall (darwin-amd64-cgo), const CSIZE ideal-int
pkg syscall (darwin-amd64-cgo), const CSTART ideal-int
pkg syscall (darwin-amd64-cgo), const CSTATUS ideal-int
pkg syscall (darwin-amd64-cgo), const CSTOP ideal-int
pkg syscall (darwin-amd64-cgo), const CSTOPB ideal-int
pkg syscall (darwin-amd64-cgo), const CSUSP ideal-int
pkg syscall (darwin-amd64-cgo), const FLUSHO ideal-int
pkg syscall (darwin-amd64-cgo), const HUPCL ideal-int
pkg syscall (darwin-amd64-cgo), const ICANON ideal-int
pkg syscall (darwin-amd64-cgo), const ICRNL ideal-int
pkg syscall (darwin-amd64-cgo), const IEXTEN ideal-int
pkg syscall (darwin-amd64-cgo), const IGNBRK ideal-int
pkg syscall (darwin-amd64-cgo), const IGNCR ideal-int
pkg syscall (darwin-amd64-cgo), const IGNPAR ideal-int
pkg syscall (darwin-amd64-cgo), const IMAXBEL ideal-int
pkg syscall (darwin-amd64-cgo), const INLCR ideal-int
pkg syscall (darwin-amd64-cgo), const INPCK ideal-int
pkg syscall (darwin-amd64-cgo), const ISIG ideal-int
pkg syscall (darwin-amd64-cgo), const ISTRIP ideal-int
pkg syscall (darwin-amd64-cgo), const IUTF8 ideal-int
pkg syscall (darwin-amd64-cgo), const IXANY ideal-int
pkg syscall (darwin-amd64-cgo), const IXOFF ideal-int
pkg syscall (darwin-amd64-cgo), const IXON ideal-int
pkg syscall (darwin-amd64-cgo), const NOFLSH ideal-int
pkg syscall (darwin-amd64-cgo), const OCRNL ideal-int
pkg syscall (darwin-amd64-cgo), const OFDEL ideal-int
pkg syscall (darwin-amd64-cgo), const OFILL ideal-int
pkg syscall (darwin-amd64-cgo), const ONLCR ideal-int
pkg syscall (darwin-amd64-cgo), const ONLRET ideal-int
pkg syscall (darwin-amd64-cgo), const ONOCR ideal-int
pkg syscall (darwin-amd64-cgo), const ONOEOT ideal-int
pkg syscall (darwin-amd64-cgo), const OPOST ideal-int
pkg syscall (darwin-amd64-cgo), const PARENB ideal-int
pkg syscall (darwin-amd64-cgo), const PARMRK ideal-int
pkg syscall (darwin-amd64-cgo), const PARODD ideal-int
pkg syscall (darwin-amd64-cgo), const PENDIN ideal-int
pkg syscall (darwin-amd64-cgo), const TCIFLUSH ideal-int
pkg syscall (darwin-amd64-cgo), const TCIOFLUSH ideal-int
pkg syscall (darwin-amd64-cgo), const TCOFLUSH ideal-int
pkg syscall (darwin-amd64-cgo), const TCSAFLUSH ideal-int
pkg syscall (darwin-amd64-cgo), const TOSTOP ideal-int
pkg syscall (darwin-amd64-cgo), const VDISCARD ideal-int
pkg syscall (darwin-amd64-cgo), const VDSUSP ideal-int
pkg syscall (darwin-amd64-cgo), const VEOF ideal-int
pkg syscall (darwin-amd64-cgo), const VEOL ideal-int
pkg syscall (darwin-amd64-cgo), const VEOL2 ideal-int
pkg syscall (darwin-amd64-cgo), const VERASE ideal-int
pkg syscall (darwin-amd64-cgo), const VINTR ideal-int
pkg syscall (darwin-amd64-cgo), const VKILL ideal-int
pkg syscall (darwin-amd64-cgo), const VLNEXT ideal-int
pkg syscall (darwin-amd64-cgo), const VMIN ideal-int
pkg syscall (darwin-amd64-cgo), const VQUIT ideal-int
pkg syscall (darwin-amd64-cgo), const VREPRINT ideal-int
pkg syscall (darwin-amd64-cgo), const VSTART ideal-int
pkg syscall (darwin-amd64-cgo), const VSTATUS ideal-int
pkg syscall (darwin-amd64-cgo), const VSTOP ideal-int
pkg syscall (darwin-amd64-cgo), const VSUSP ideal-int
pkg syscall (darwin-amd64-cgo), const VT0 ideal-int
pkg syscall (darwin-amd64-cgo), const VT1 ideal-int
pkg syscall (darwin-amd64-cgo), const VTDLY ideal-int
pkg syscall (darwin-amd64-cgo), const VTIME ideal-int
pkg syscall (darwin-amd64-cgo), const VWERASE ideal-int
pkg syscall (darwin-amd64-cgo), type Termios struct
pkg syscall (darwin-amd64-cgo), type Termios struct, Cc [20]uint8
pkg syscall (darwin-amd64-cgo), type Termios struct, Cflag uint64
pkg syscall (darwin-amd64-cgo), type Termios struct, Iflag uint64
pkg syscall (darwin-amd64-cgo), type Termios struct, Ispeed uint64
pkg syscall (darwin-amd64-cgo), type Termios struct, Lflag uint64
pkg syscall (darwin-amd64-cgo), type Termios struct, Oflag uint64
pkg syscall (darwin-amd64-cgo), type Termios struct, Ospeed uint64
pkg syscall (darwin-amd64-cgo), type Termios struct, Pad_cgo_0 [4]byte
pkg syscall (windows-386), const CREATE_NEW_PROCESS_GROUP ideal-int
pkg syscall (windows-386), const CTRL_BREAK_EVENT ideal-int
pkg syscall (windows-386), const CTRL_C_EVENT ideal-int
pkg syscall (windows-386), func GetCurrentProcessId() uint32
pkg syscall (windows-386), type SysProcAttr struct, CreationFlags uint32
pkg syscall (windows-amd64), const CREATE_NEW_PROCESS_GROUP ideal-int
pkg syscall (windows-amd64), const CTRL_BREAK_EVENT ideal-int
pkg syscall (windows-amd64), const CTRL_C_EVENT ideal-int
pkg syscall (windows-amd64), func GetCurrentProcessId() uint32
pkg syscall (windows-amd64), type SysProcAttr struct, CreationFlags uint32

BIN
doc/ExpressivenessOfGo.pdf Normal file

Binary file not shown.

27
doc/Makefile Normal file
View File

@@ -0,0 +1,27 @@
# Copyright 2009 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
RAWHTML=\
articles/defer_panic_recover.rawhtml\
articles/error_handling.rawhtml\
articles/slices_usage_and_internals.rawhtml\
articles/laws_of_reflection.rawhtml\
articles/c_go_cgo.rawhtml\
articles/concurrency_patterns.rawhtml\
articles/godoc_documenting_go_code.rawhtml\
articles/gobs_of_data.rawhtml\
articles/json_and_go.rawhtml\
articles/json_rpc_tale_of_interfaces.rawhtml\
articles/image_draw.rawhtml\
articles/image_package.rawhtml\
effective_go.rawhtml\
go1.rawhtml\
all: $(RAWHTML)
%.rawhtml: %.html
godoc -url /doc/$< >$@
clean:
rm -f $(RAWHTML)

180
doc/articles/c_go_cgo.html Normal file
View File

@@ -0,0 +1,180 @@
<!--{
"Title": "C? Go? Cgo!",
"Template": true
}-->
<p>
Cgo lets Go packages call C code. Given a Go source file written with some
special features, cgo outputs Go and C files that can be combined into a
single Go package.
</p>
<p>
To lead with an example, here's a Go package that provides two functions -
<code>Random</code> and <code>Seed</code> - that wrap C's <code>random</code>
and <code>srandom</code> functions.
</p>
{{code "/doc/progs/cgo1.go" `/package rand/` `/END/`}}
<p>
Let's look at what's happening here, starting with the import statement.
</p>
<p>
The <code>rand</code> package imports <code>"C"</code>, but you'll find there's
no such package in the standard Go library. That's because <code>C</code> is a
"pseudo-package", a special name interpreted by cgo as a reference to C's
name space.
</p>
<p>
The <code>rand</code> package contains four references to the <code>C</code>
package: the calls to <code>C.random</code> and <code>C.srandom</code>, the
conversion <code>C.uint(i)</code>, and the <code>import</code> statement.
</p>
<p>
The <code>Random</code> function calls the standard C library's <code>random</code>
function and returns the result. In C, <code>random</code> returns a value of the
C type <code>long</code>, which cgo represents as the type <code>C.long</code>.
It must be converted to a Go type before it can be used by Go code outside this
package, using an ordinary Go type conversion:
</p>
{{code "/doc/progs/cgo1.go" `/func Random/` `/STOP/`}}
<p>
Here's an equivalent function that uses a temporary variable to illustrate
the type conversion more explicitly:
</p>
{{code "/doc/progs/cgo2.go" `/func Random/` `/STOP/`}}
<p>
The <code>Seed</code> function does the reverse, in a way. It takes a
regular Go <code>int</code>, converts it to the C <code>unsigned int</code>
type, and passes it to the C function <code>srandom</code>.
</p>
{{code "/doc/progs/cgo1.go" `/func Seed/` `/END/`}}
<p>
Note that cgo knows the <code>unsigned int</code> type as <code>C.uint</code>;
see the <a href="/cmd/cgo">cgo documentation</a> for a complete list of
these numeric type names.
</p>
<p>
The one detail of this example we haven't examined yet is the comment
above the <code>import</code> statement.
</p>
{{code "/doc/progs/cgo1.go" `/\/\*/` `/STOP/`}}
<p>
Cgo recognizes this comment. Any lines starting
with <code>#cgo</code>
followed
by a space character are removed; these become directives for cgo.
The remaining lines are used as a header when compiling the C parts of
the package. In this case those lines are just a
single <code>#include</code>
statement, but they can be almost any C code. The <code>#cgo</code>
directives are
used to provide flags for the compiler and linker when building the C
parts of the package.
</p>
<p>
There is a limitation: if your program uses any <code>//export</code>
directives, then the C code in the comment may only include declarations
(<code>extern int f();</code>), not definitions (<code>int f() {
return 1; }</code>). You can use <code>//export</code> directives to
make Go functions accessible to C code.
</p>
<p>
The <code>#cgo</code> and <code>//export</code> directives are
documented in
the <a href="/cmd/cgo/">cgo documentation</a>.
</p>
<p>
<b>Strings and things</b>
</p>
<p>
Unlike Go, C doesn't have an explicit string type. Strings in C are
represented by a zero-terminated array of chars.
</p>
<p>
Conversion between Go and C strings is done with the
<code>C.CString</code>, <code>C.GoString</code>, and
<code>C.GoStringN</code> functions. These conversions make a copy of the
string data.
</p>
<p>
This next example implements a <code>Print</code> function that writes a
string to standard output using C's <code>fputs</code> function from the
<code>stdio</code> library:
</p>
{{code "/doc/progs/cgo3.go" `/package print/` `/END/`}}
<p>
Memory allocations made by C code are not known to Go's memory manager.
When you create a C string with <code>C.CString</code> (or any C memory
allocation) you must remember to free the memory when you're done with it
by calling <code>C.free</code>.
</p>
<p>
The call to <code>C.CString</code> returns a pointer to the start of the
char array, so before the function exits we convert it to an
<a href="/pkg/unsafe/#Pointer"><code>unsafe.Pointer</code></a> and release
the memory allocation with <code>C.free</code>. A common idiom in cgo programs
is to <a href="/doc/articles/defer_panic_recover.html"><code>defer</code></a>
the free immediately after allocating (especially when the code that follows
is more complex than a single function call), as in this rewrite of
<code>Print</code>:
</p>
{{code "/doc/progs/cgo4.go" `/func Print/` `/END/`}}
<p>
<b>Building cgo packages</b>
</p>
<p>
To build cgo packages, just use <a href="/cmd/go/#Compile_packages_and_dependencies">"
<code>go build</code>"</a> or
<a href="/cmd/go/#Compile_and_install_packages_and_dependencies">"<code>go install</code>
"</a> as usual. The go tool recognizes the special <code>"C"</code> import and automatically
uses cgo for those files.
</p>
<p>
<b>More cgo resources</b>
</p>
<p>
The <a href="/cmd/cgo/">cgo command</a> documentation has more detail about
the C pseudo-package and the build process. The <a href="/misc/cgo/">cgo examples</a>
in the Go tree demonstrate more advanced concepts.
</p>
<p>
For a simple, idiomatic example of a cgo-based package, see Russ Cox's <a
href="http://code.google.com/p/gosqlite/source/browse/sqlite/sqlite.go">gosqlite</a>.
Also, the Go Project Dashboard lists <a
href="https://godashboard.appspot.com/project?tag=cgo">several other
cgo packages</a>.
</p>
<p>
Finally, if you're curious as to how all this works internally, take a look
at the introductory comment of the runtime package's <a href="/src/pkg/runtime/cgocall.c">cgocall.c</a>.
</p>

View File

@@ -0,0 +1,79 @@
<!--{
"Title": "Go Concurrency Patterns: Timing out, moving on",
"Template": true
}-->
<p>
Concurrent programming has its own idioms. A good example is timeouts. Although
Go's channels do not support them directly, they are easy to implement. Say we
want to receive from the channel <code>ch</code>, but want to wait at most one
second for the value to arrive. We would start by creating a signalling channel
and launching a goroutine that sleeps before sending on the channel:
</p>
{{code "/doc/progs/timeout1.go" `/timeout :=/` `/STOP/`}}
<p>
We can then use a <code>select</code> statement to receive from either
<code>ch</code> or <code>timeout</code>. If nothing arrives on <code>ch</code>
after one second, the timeout case is selected and the attempt to read from
<code>ch</code> is abandoned.
</p>
{{code "/doc/progs/timeout1.go" `/select {/` `/STOP/`}}
<p>
The <code>timeout</code> channel is buffered with space for 1 value, allowing
the timeout goroutine to send to the channel and then exit. The goroutine
doesn't know (or care) whether the value is received. This means the goroutine
won't hang around forever if the <code>ch</code> receive happens before the
timeout is reached. The <code>timeout</code> channel will eventually be
deallocated by the garbage collector.
</p>
<p>
(In this example we used <code>time.Sleep</code> to demonstrate the mechanics
of goroutines and channels. In real programs you should use <code>
<a href="/pkg/time/#After">time.After</a></code>, a function that returns
a channel and sends on that channel after the specified duration.)
</p>
<p>
Let's look at another variation of this pattern. In this example we have a
program that reads from multiple replicated databases simultaneously. The
program needs only one of the answers, and it should accept the answer that
arrives first.
</p>
<p>
The function <code>Query</code> takes a slice of database connections and a
<code>query</code> string. It queries each of the databases in parallel and
returns the first response it receives:
</p>
{{code "/doc/progs/timeout2.go" `/func Query/` `/STOP/`}}
<p>
In this example, the closure does a non-blocking send, which it achieves by
using the send operation in <code>select</code> statement with a
<code>default</code> case. If the send cannot go through immediately the
default case will be selected. Making the send non-blocking guarantees that
none of the goroutines launched in the loop will hang around. However, if the
result arrives before the main function has made it to the receive, the send
could fail since no one is ready.
</p>
<p>
This problem is a textbook example of what is known as a
<a href="https://en.wikipedia.org/wiki/Race_condition">race condition</a>, but
the fix is trivial. We just make sure to buffer the channel <code>ch</code> (by
adding the buffer length as the second argument to <a href="/pkg/builtin/#make">make</a>),
guaranteeing that the first send has a place to put the value. This ensures the
send will always succeed, and the first value to arrive will be retrieved
regardless of the order of execution.
</p>
<p>
These two examples demonstrate the simplicity with which Go can express complex
interactions between goroutines.
</p>

View File

@@ -0,0 +1,197 @@
<!--{
"Title": "Defer, Panic, and Recover",
"Template": true
}-->
<p>
Go has the usual mechanisms for control flow: if, for, switch, goto. It also
has the go statement to run code in a separate goroutine. Here I'd like to
discuss some of the less common ones: defer, panic, and recover.
</p>
<p>
A <b>defer statement</b> pushes a function call onto a list. The list of saved
calls is executed after the surrounding function returns. Defer is commonly
used to simplify functions that perform various clean-up actions.
</p>
<p>
For example, let's look at a function that opens two files and copies the
contents of one file to the other:
</p>
{{code "/doc/progs/defer.go" `/func CopyFile/` `/STOP/`}}
<p>
This works, but there is a bug. If the call to os.Create fails, the
function will return without closing the source file. This can be easily
remedied by putting a call to src.Close before the second return statement,
but if the function were more complex the problem might not be so easily
noticed and resolved. By introducing defer statements we can ensure that the
files are always closed:
</p>
{{code "/doc/progs/defer2.go" `/func CopyFile/` `/STOP/`}}
<p>
Defer statements allow us to think about closing each file right after opening
it, guaranteeing that, regardless of the number of return statements in the
function, the files <i>will</i> be closed.
</p>
<p>
The behavior of defer statements is straightforward and predictable. There are
three simple rules:
</p>
<p>
1. <i>A deferred function's arguments are evaluated when the defer statement is
evaluated.</i>
</p>
<p>
In this example, the expression "i" is evaluated when the Println call is
deferred. The deferred call will print "0" after the function returns.
</p>
{{code "/doc/progs/defer.go" `/func a/` `/STOP/`}}
<p>
2. <i>Deferred function calls are executed in Last In First Out order
</i>after<i> the surrounding function returns.</i>
</p>
<p>
This function prints "3210":
</p>
{{code "/doc/progs/defer.go" `/func b/` `/STOP/`}}
<p>
3. <i>Deferred functions may read and assign to the returning function's named
return values.</i>
</p>
<p>
In this example, a deferred function increments the return value i <i>after</i>
the surrounding function returns. Thus, this function returns 2:
</p>
{{code "/doc/progs/defer.go" `/func c/` `/STOP/`}}
<p>
This is convenient for modifying the error return value of a function; we will
see an example of this shortly.
</p>
<p>
<b>Panic</b> is a built-in function that stops the ordinary flow of control and
begins <i>panicking</i>. When the function F calls panic, execution of F stops,
any deferred functions in F are executed normally, and then F returns to its
caller. To the caller, F then behaves like a call to panic. The process
continues up the stack until all functions in the current goroutine have
returned, at which point the program crashes. Panics can be initiated by
invoking panic directly. They can also be caused by runtime errors, such as
out-of-bounds array accesses.
</p>
<p>
<b>Recover</b> is a built-in function that regains control of a panicking
goroutine. Recover is only useful inside deferred functions. During normal
execution, a call to recover will return nil and have no other effect. If the
current goroutine is panicking, a call to recover will capture the value given
to panic and resume normal execution.
</p>
<p>
Here's an example program that demonstrates the mechanics of panic and defer:
</p>
{{code "/doc/progs/defer2.go" `/package main/` `/STOP/`}}
<p>
The function g takes the int i, and panics if i is greater than 3, or else it
calls itself with the argument i+1. The function f defers a function that calls
recover and prints the recovered value (if it is non-nil). Try to picture what
the output of this program might be before reading on.
</p>
<p>
The program will output:
</p>
<pre>Calling g.
Printing in g 0
Printing in g 1
Printing in g 2
Printing in g 3
Panicking!
Defer in g 3
Defer in g 2
Defer in g 1
Defer in g 0
Recovered in f 4
Returned normally from f.</pre>
<p>
If we remove the deferred function from f the panic is not recovered and
reaches the top of the goroutine's call stack, terminating the program. This
modified program will output:
</p>
<pre>Calling g.
Printing in g 0
Printing in g 1
Printing in g 2
Printing in g 3
Panicking!
Defer in g 3
Defer in g 2
Defer in g 1
Defer in g 0
panic: 4
panic PC=0x2a9cd8
[stack trace omitted]</pre>
<p>
For a real-world example of <b>panic</b> and <b>recover</b>, see the
<a href="/pkg/encoding/json/">json package</a> from the Go standard library.
It decodes JSON-encoded data with a set of recursive functions.
When malformed JSON is encountered, the parser calls panic to unwind the
stack to the top-level function call, which recovers from the panic and returns
an appropriate error value (see the 'error' and 'unmarshal' methods of
the decodeState type in
<a href="/src/pkg/encoding/json/decode.go">decode.go</a>).
</p>
<p>
The convention in the Go libraries is that even when a package uses panic
internally, its external API still presents explicit error return values.
</p>
<p>
Other uses of <b>defer</b> (beyond the file.Close example given earlier)
include releasing a mutex:
</p>
<pre>mu.Lock()
defer mu.Unlock()</pre>
<p>
printing a footer:
</p>
<pre>printHeader()
defer printFooter()</pre>
<p>
and more.
</p>
<p>
In summary, the defer statement (with or without panic and recover) provides an
unusual and powerful mechanism for control flow. It can be used to model a
number of features implemented by special-purpose structures in other
programming languages. Try it out.
</p>

View File

@@ -0,0 +1,316 @@
<!--{
"Title": "Error Handling and Go",
"Template": true
}-->
<p>
If you have written any Go code you have probably encountered the built-in
<code>error</code> type. Go code uses <code>error</code> values to
indicate an abnormal state. For example, the <code>os.Open</code> function
returns a non-nil <code>error</code> value when it fails to open a file.
</p>
{{code "/doc/progs/error.go" `/func Open/`}}
<p>
The following code uses <code>os.Open</code> to open a file. If an error
occurs it calls <code>log.Fatal</code> to print the error message and stop.
</p>
{{code "/doc/progs/error.go" `/func openFile/` `/STOP/`}}
<p>
You can get a lot done in Go knowing just this about the <code>error</code>
type, but in this article we'll take a closer look at <code>error</code> and
discuss some good practices for error handling in Go.
</p>
<p>
<b>The error type</b>
</p>
<p>
The <code>error</code> type is an interface type. An <code>error</code>
variable represents any value that can describe itself as a string. Here is the
interface's declaration:
</p>
<pre>type error interface {
Error() string
}</pre>
<p>
The <code>error</code> type, as with all built in types, is
<a href="/doc/go_spec.html#Predeclared_identifiers">predeclared</a> in the
<a href="/doc/go_spec.html#Blocks">universe block</a>.
</p>
<p>
The most commonly-used <code>error</code> implementation is the
<a href="/pkg/errors/">errors</a> package's unexported <code>errorString</code> type.
</p>
{{code "/doc/progs/error.go" `/errorString/` `/STOP/`}}
<p>
You can construct one of these values with the <code>errors.New</code>
function. It takes a string that it converts to an <code>errors.errorString</code>
and returns as an <code>error</code> value.
</p>
{{code "/doc/progs/error.go" `/New/` `/STOP/`}}
<p>
Here's how you might use <code>errors.New</code>:
</p>
{{code "/doc/progs/error.go" `/func Sqrt/` `/STOP/`}}
<p>
A caller passing a negative argument to <code>Sqrt</code> receives a non-nil
<code>error</code> value (whose concrete representation is an
<code>errors.errorString</code> value). The caller can access the error string
("math: square root of...") by calling the <code>error</code>'s
<code>Error</code> method, or by just printing it:
</p>
{{code "/doc/progs/error.go" `/func printErr/` `/STOP/`}}
<p>
The <a href="/pkg/fmt/">fmt</a> package formats an <code>error</code> value
by calling its <code>Error() string</code> method.
</p>
<p>
It is the error implementation's responsibility to summarize the context.
The error returned by <code>os.Open</code> formats as "open /etc/passwd:
permission denied," not just "permission denied." The error returned by our
<code>Sqrt</code> is missing information about the invalid argument.
</p>
<p>
To add that information, a useful function is the <code>fmt</code> package's
<code>Errorf</code>. It formats a string according to <code>Printf</code>'s
rules and returns it as an <code>error</code> created by
<code>errors.New</code>.
</p>
{{code "/doc/progs/error.go" `/fmtError/` `/STOP/`}}
<p>
In many cases <code>fmt.Errorf</code> is good enough, but since
<code>error</code> is an interface, you can use arbitrary data structures as
error values, to allow callers to inspect the details of the error.
</p>
<p>
For instance, our hypothetical callers might want to recover the invalid
argument passed to <code>Sqrt</code>. We can enable that by defining a new
error implementation instead of using <code>errors.errorString</code>:
</p>
{{code "/doc/progs/error.go" `/type NegativeSqrtError/` `/STOP/`}}
<p>
A sophisticated caller can then use a
<a href="/doc/go_spec.html#Type_assertions">type assertion</a> to check for a
<code>NegativeSqrtError</code> and handle it specially, while callers that just
pass the error to <code>fmt.Println</code> or <code>log.Fatal</code> will see
no change in behavior.
</p>
<p>
As another example, the <a href="/pkg/encoding/json/">json</a> package specifies a
<code>SyntaxError</code> type that the <code>json.Decode</code> function
returns when it encounters a syntax error parsing a JSON blob.
</p>
{{code "/doc/progs/error.go" `/type SyntaxError/` `/STOP/`}}
<p>
The <code>Offset</code> field isn't even shown in the default formatting of the
error, but callers can use it to add file and line information to their error
messages:
</p>
{{code "/doc/progs/error.go" `/func decodeError/` `/STOP/`}}
<p>
(This is a slightly simplified version of some
<a href="http://camlistore.org/code/?p=camlistore.git;a=blob;f=lib/go/camli/jsonconfig/eval.go#l68">actual code</a>
from the <a href="http://camlistore.org">Camlistore</a> project.)
</p>
<p>
The <code>error</code> interface requires only a <code>Error</code> method;
specific error implementations might have additional methods. For instance, the
<a href="/pkg/net/">net</a> package returns errors of type
<code>error</code>, following the usual convention, but some of the error
implementations have additional methods defined by the <code>net.Error</code>
interface:
</p>
<pre>package net
type Error interface {
error
Timeout() bool // Is the error a timeout?
Temporary() bool // Is the error temporary?
}</pre>
<p>
Client code can test for a <code>net.Error</code> with a type assertion and
then distinguish transient network errors from permanent ones. For instance, a
web crawler might sleep and retry when it encounters a temporary error and give
up otherwise.
</p>
{{code "/doc/progs/error.go" `/func netError/` `/STOP/`}}
<p>
<b>Simplifying repetitive error handling</b>
</p>
<p>
In Go, error handling is important. The language's design and conventions
encourage you to explicitly check for errors where they occur (as distinct from
the convention in other languages of throwing exceptions and sometimes catching
them). In some cases this makes Go code verbose, but fortunately there are some
techniques you can use to minimize repetitive error handling.
</p>
<p>
Consider an <a href="http://code.google.com/appengine/docs/go/">App Engine</a>
application with an HTTP handler that retrieves a record from the datastore and
formats it with a template.
</p>
{{code "/doc/progs/error2.go" `/func init/` `/STOP/`}}
<p>
This function handles errors returned by the <code>datastore.Get</code>
function and <code>viewTemplate</code>'s <code>Execute</code> method. In both
cases, it presents a simple error message to the user with the HTTP status code
500 ("Internal Server Error"). This looks like a manageable amount of code, but
add some more HTTP handlers and you quickly end up with many copies of
identical error handling code.
</p>
<p>
To reduce the repetition we can define our own HTTP <code>appHandler</code>
type that includes an <code>error</code> return value:
</p>
{{code "/doc/progs/error3.go" `/type appHandler/`}}
<p>
Then we can change our <code>viewRecord</code> function to return errors:
</p>
{{code "/doc/progs/error3.go" `/func viewRecord/` `/STOP/`}}
<p>
This is simpler than the original version, but the <a
href="/pkg/net/http/">http</a> package doesn't understand functions that return
<code>error</code>.
To fix this we can implement the <code>http.Handler</code> interface's
<code>ServeHTTP</code> method on <code>appHandler</code>:
</p>
{{code "/doc/progs/error3.go" `/ServeHTTP/` `/STOP/`}}
<p>
The <code>ServeHTTP</code> method calls the <code>appHandler</code> function
and displays the returned error (if any) to the user. Notice that the method's
receiver, <code>fn</code>, is a function. (Go can do that!) The method invokes
the function by calling the receiver in the expression <code>fn(w, r)</code>.
</p>
<p>
Now when registering <code>viewRecord</code> with the http package we use the
<code>Handle</code> function (instead of <code>HandleFunc</code>) as
<code>appHandler</code> is an <code>http.Handler</code> (not an
<code>http.HandlerFunc</code>).
</p>
{{code "/doc/progs/error3.go" `/func init/` `/STOP/`}}
<p>
With this basic error handling infrastructure in place, we can make it more
user friendly. Rather than just displaying the error string, it would be better
to give the user a simple error message with an appropriate HTTP status code,
while logging the full error to the App Engine developer console for debugging
purposes.
</p>
<p>
To do this we create an <code>appError</code> struct containing an
<code>error</code> and some other fields:
</p>
{{code "/doc/progs/error4.go" `/type appError/` `/STOP/`}}
<p>
Next we modify the appHandler type to return <code>*appError</code> values:
</p>
{{code "/doc/progs/error4.go" `/type appHandler/`}}
<p>
(It's usually a mistake to pass back the concrete type of an error rather than
<code>error</code>,
for reasons discussed in <a href="/doc/go_faq.html#nil_error">the Go FAQ</a>,
but it's the right thing to do here because <code>ServeHTTP</code> is the only
place that sees the value and uses its contents.)
</p>
<p>
And make <code>appHandler</code>'s <code>ServeHTTP</code> method display the
<code>appError</code>'s <code>Message</code> to the user with the correct HTTP
status <code>Code</code> and log the full <code>Error</code> to the developer
console:
</p>
{{code "/doc/progs/error4.go" `/ServeHTTP/` `/STOP/`}}
<p>
Finally, we update <code>viewRecord</code> to the new function signature and
have it return more context when it encounters an error:
</p>
{{code "/doc/progs/error4.go" `/func viewRecord/` `/STOP/`}}
<p>
This version of <code>viewRecord</code> is the same length as the original, but
now each of those lines has specific meaning and we are providing a friendlier
user experience.
</p>
<p>
It doesn't end there; we can further improve the error handling in our
application. Some ideas:
</p>
<ul>
<li>give the error handler a pretty HTML template,
<li>make debugging easier by writing the stack trace to the HTTP response when
the user is an administrator,
<li>write a constructor function for <code>appError</code> that stores the
stack trace for easier debugging,
<li>recover from panics inside the <code>appHandler</code>, logging the error
to the console as "Critical," while telling the user "a serious error
has occurred." This is a nice touch to avoid exposing the user to inscrutable
error messages caused by programming errors.
See the <a href="defer_panic_recover.html">Defer, Panic, and Recover</a>
article for more details.
</ul>
<p>
<b>Conclusion</b>
</p>
<p>
Proper error handling is an essential requirement of good software. By
employing the techniques described in this post you should be able to write
more reliable and succinct Go code.
</p>

View File

@@ -48,9 +48,9 @@ had to be installed in certain places, under certain names, using certain build
tools, in order to be used. That's understandable: that's the way it works in
most other languages. Over the last few years we consistently reminded people
about the <code>goinstall</code> command
(now replaced by <a href="/cmd/go/#hdr-Download_and_install_packages_and_dependencies"><code>go get</code></a>)
(now replaced by <a href="/cmd/go/#Download_and_install_packages_and_dependencies"><code>go get</code></a>)
and its conventions: first, that the import path is derived in a known way from
the URL of the source code; second, that the place to store the sources in
the URL of the source code; second, that that the place to store the sources in
the local file system is derived in a known way from the import path; third,
that each directory in a source tree corresponds to a single package; and
fourth, that the package is built using only information in the source code.
@@ -74,22 +74,21 @@ important, the use of the tool itself.</p>
<p>The <code>go</code> command requires that code adheres to a few key,
well-established conventions.</p>
<p>First, the import path is derived in a known way from the URL of the
<p>First, the import path is derived in an known way from the URL of the
source code. For Bitbucket, GitHub, Google Code, and Launchpad, the
root directory of the repository is identified by the repository's
main URL, without the <code>http://</code> prefix. Subdirectories are named by
adding to that path.
For example, the Go example programs are obtained by running</p>
adding to that path. For example, the supplemental networking
libraries for Go are obtained by running</p>
<pre>
git clone https://github.com/golang/example
hg clone http://code.google.com/p/go.net
</pre>
<p>and thus the import path for the root directory of that repository is
"<code>github.com/golang/example</code>".
The <a href="https://godoc.org/github.com/golang/example/stringutil">stringutil</a>
package is stored in a subdirectory, so its import path is
"<code>github.com/golang/example/stringutil</code>".</p>
"<code>code.google.com/p/go.net</code>". The websocket package is stored in a
subdirectory, so its import path is
"<code>code.google.com/p/go.net/websocket</code>".</p>
<p>These paths are on the long side, but in exchange we get an
automatically managed name space for import paths and the ability for
@@ -97,14 +96,13 @@ a tool like the go command to look at an unfamiliar import path and
deduce where to obtain the source code.</p>
<p>Second, the place to store sources in the local file system is derived
in a known way from the import path, specifically
<code>$GOPATH/src/&lt;import-path&gt;</code>.
If unset, <code>$GOPATH</code> defaults to a subdirectory
named <code>go</code> in the user's home directory.
in a known way from the import path. Specifically, the first choice
is <code>$GOPATH/src/&lt;import-path&gt;</code>. If <code>$GOPATH</code> is
unset, the go command will fall back to storing source code alongside the
standard Go packages, in <code>$GOROOT/src/pkg/&lt;import-path&gt;</code>.
If <code>$GOPATH</code> is set to a list of paths, the go command tries
<code>&lt;dir&gt;/src/&lt;import-path&gt;</code> for each of the directories in
that list.
</p>
that list.</p>
<p>Each of those trees contains, by convention, a top-level directory named
"<code>bin</code>", for holding compiled executables, and a top-level directory
@@ -134,30 +132,45 @@ be able to adapt to changing build environments and conditions. For
example, if we allowed extra configuration such as compiler flags or
command line recipes, then that configuration would need to be updated
each time the build tools changed; it would also be inherently tied
to the use of a specific toolchain.</p>
to the use of a specific tool chain.</p>
<h2>Getting started with the go command</h2>
<p>Finally, a quick tour of how to use the go command.
As mentioned above, the default <code>$GOPATH</code> on Unix is <code>$HOME/go</code>.
We'll store our programs there.
To use a different location, you can set <code>$GOPATH</code>;
see <a href="/doc/code.html">How to Write Go Code</a> for details.
<p>Finally, a quick tour of how to use the go command, to supplement
the information in <a href="/doc/code.html">How to Write Go Code</a>,
which you might want to read first. Assuming you want
to keep your source code separate from the Go distribution source
tree, the first step is to set <code>$GOPATH</code>, the one piece of global
configuration that the go command needs. The <code>$GOPATH</code> can be a
list of directories, but by far the most common usage should be to set it to a
single directory. In particular, you do not need a separate entry in
<code>$GOPATH</code> for each of your projects. One <code>$GOPATH</code> can
support many projects.</p>
<p>We first add some source code. Suppose we want to use
<p>Heres an example. Lets say we decide to keep our Go code in the directory
<code>$HOME/mygo</code>. We need to create that directory and set
<code>$GOPATH</code> accordingly.</p>
<pre>
$ mkdir $HOME/mygo
$ export GOPATH=$HOME/mygo
$
</pre>
<p>Into this directory, we now add some source code. Suppose we want to use
the indexing library from the codesearch project along with a left-leaning
red-black tree. We can install both with the "<code>go get</code>"
subcommand:</p>
<pre>
$ go get github.com/google/codesearch/index
$ go get code.google.com/p/codesearch/index
$ go get github.com/petar/GoLLRB/llrb
$
</pre>
<p>Both of these projects are now downloaded and installed into <code>$HOME/go</code>,
which contains the two directories
<code>src/github.com/google/codesearch/index/</code> and
<p>Both of these projects are now downloaded and installed into our
<code>$GOPATH</code> directory. The one tree now contains the two directories
<code>src/code.google.com/p/codesearch/index/</code> and
<code>src/github.com/petar/GoLLRB/llrb/</code>, along with the compiled
packages (in <code>pkg/</code>) for those libraries and their dependencies.</p>
@@ -170,14 +183,13 @@ the pattern "<code>./...</code>" means start in the current directory
("<code>...</code>"):</p>
<pre>
$ cd $HOME/go/src
$ go list ./...
github.com/google/codesearch/cmd/cgrep
github.com/google/codesearch/cmd/cindex
github.com/google/codesearch/cmd/csearch
github.com/google/codesearch/index
github.com/google/codesearch/regexp
github.com/google/codesearch/sparse
code.google.com/p/codesearch/cmd/cgrep
code.google.com/p/codesearch/cmd/cindex
code.google.com/p/codesearch/cmd/csearch
code.google.com/p/codesearch/index
code.google.com/p/codesearch/regexp
code.google.com/p/codesearch/sparse
github.com/petar/GoLLRB/example
github.com/petar/GoLLRB/llrb
$
@@ -187,12 +199,12 @@ $
<pre>
$ go test ./...
? github.com/google/codesearch/cmd/cgrep [no test files]
? github.com/google/codesearch/cmd/cindex [no test files]
? github.com/google/codesearch/cmd/csearch [no test files]
ok github.com/google/codesearch/index 0.203s
ok github.com/google/codesearch/regexp 0.017s
? github.com/google/codesearch/sparse [no test files]
? code.google.com/p/codesearch/cmd/cgrep [no test files]
? code.google.com/p/codesearch/cmd/cindex [no test files]
? code.google.com/p/codesearch/cmd/csearch [no test files]
ok code.google.com/p/codesearch/index 0.239s
ok code.google.com/p/codesearch/regexp 0.021s
? code.google.com/p/codesearch/sparse [no test files]
? github.com/petar/GoLLRB/example [no test files]
ok github.com/petar/GoLLRB/llrb 0.231s
$
@@ -202,18 +214,18 @@ $
current directory:</p>
<pre>
$ cd github.com/google/codesearch/regexp
$ cd $GOPATH/src/code.google.com/p/codesearch/regexp
$ go list
github.com/google/codesearch/regexp
code.google.com/p/codesearch/regexp
$ go test -v
=== RUN TestNstateEnc
--- PASS: TestNstateEnc (0.00s)
=== RUN TestMatch
--- PASS: TestMatch (0.00s)
=== RUN TestGrep
--- PASS: TestGrep (0.00s)
=== RUN TestNstateEnc
--- PASS: TestNstateEnc (0.00 seconds)
=== RUN TestMatch
--- PASS: TestMatch (0.01 seconds)
=== RUN TestGrep
--- PASS: TestGrep (0.00 seconds)
PASS
ok github.com/google/codesearch/regexp 0.018s
ok code.google.com/p/codesearch/regexp 0.021s
$ go install
$
</pre>
@@ -231,18 +243,17 @@ pick such a long name, but that ability would require additional configuration
and complexity in the tool. Typing an extra directory name or two is a small
price to pay for the increased simplicity and power.</p>
<p>As the example shows, its fine to work with packages from many different
projects at once within a single <code>$GOPATH</code> root directory.</p>
<h2>Limitations</h2>
<p>As mentioned above, the go command is not a general-purpose build
tool.
In particular, it does not have any facility for generating Go
source files <em>during</em> a build, although it does provide
<a href="/cmd/go/#hdr-Generate_Go_files_by_processing_source"><code>go</code>
<code>generate</code></a>,
which can automate the creation of Go files <em>before</em> the build.
For more advanced build setups, you may need to write a
tool. In particular, it does not have any facility for generating Go
source files during a build. Instead, if you want to use a tool like
yacc or the protocol buffer compiler, you will need to write a
makefile (or a configuration file for the build tool of your choice)
to run whatever tool creates the Go files and then check those generated source files
to generate the Go files and then check those generated source files
into your repository. This is more work for you, the package author,
but it is significantly less work for your users, who can use
"<code>go get</code>" without needing to obtain and build

View File

@@ -0,0 +1,315 @@
<!--{
"Title": "Gobs of data",
"Template": true
}-->
<p>
To transmit a data structure across a network or to store it in a file, it must
be encoded and then decoded again. There are many encodings available, of
course: <a href="http://www.json.org/">JSON</a>,
<a href="http://www.w3.org/XML/">XML</a>, Google's
<a href="http://code.google.com/p/protobuf">protocol buffers</a>, and more.
And now there's another, provided by Go's <a href="/pkg/encoding/gob/">gob</a>
package.
</p>
<p>
Why define a new encoding? It's a lot of work and redundant at that. Why not
just use one of the existing formats? Well, for one thing, we do! Go has
<a href="/pkg/">packages</a> supporting all the encodings just mentioned (the
<a href="http://code.google.com/p/goprotobuf">protocol buffer package</a> is in
a separate repository but it's one of the most frequently downloaded). And for
many purposes, including communicating with tools and systems written in other
languages, they're the right choice.
</p>
<p>
But for a Go-specific environment, such as communicating between two servers
written in Go, there's an opportunity to build something much easier to use and
possibly more efficient.
</p>
<p>
Gobs work with the language in a way that an externally-defined,
language-independent encoding cannot. At the same time, there are lessons to be
learned from the existing systems.
</p>
<p>
<b>Goals</b>
</p>
<p>
The gob package was designed with a number of goals in mind.
</p>
<p>
First, and most obvious, it had to be very easy to use. First, because Go has
reflection, there is no need for a separate interface definition language or
"protocol compiler". The data structure itself is all the package should need
to figure out how to encode and decode it. On the other hand, this approach
means that gobs will never work as well with other languages, but that's OK:
gobs are unashamedly Go-centric.
</p>
<p>
Efficiency is also important. Textual representations, exemplified by XML and
JSON, are too slow to put at the center of an efficient communications network.
A binary encoding is necessary.
</p>
<p>
Gob streams must be self-describing. Each gob stream, read from the beginning,
contains sufficient information that the entire stream can be parsed by an
agent that knows nothing a priori about its contents. This property means that
you will always be able to decode a gob stream stored in a file, even long
after you've forgotten what data it represents.
</p>
<p>
There were also some things to learn from our experiences with Google protocol
buffers.
</p>
<p>
<b>Protocol buffer misfeatures</b>
</p>
<p>
Protocol buffers had a major effect on the design of gobs, but have three
features that were deliberately avoided. (Leaving aside the property that
protocol buffers aren't self-describing: if you don't know the data definition
used to encode a protocol buffer, you might not be able to parse it.)
</p>
<p>
First, protocol buffers only work on the data type we call a struct in Go. You
can't encode an integer or array at the top level, only a struct with fields
inside it. That seems a pointless restriction, at least in Go. If all you want
to send is an array of integers, why should you have to put it into a
struct first?
</p>
<p>
Next, a protocol buffer definition may specify that fields <code>T.x</code> and
<code>T.y</code> are required to be present whenever a value of type
<code>T</code> is encoded or decoded. Although such required fields may seem
like a good idea, they are costly to implement because the codec must maintain a
separate data structure while encoding and decoding, to be able to report when
required fields are missing. They're also a maintenance problem. Over time, one
may want to modify the data definition to remove a required field, but that may
cause existing clients of the data to crash. It's better not to have them in the
encoding at all. (Protocol buffers also have optional fields. But if we don't
have required fields, all fields are optional and that's that. There will be
more to say about optional fields a little later.)
</p>
<p>
The third protocol buffer misfeature is default values. If a protocol buffer
omits the value for a "defaulted" field, then the decoded structure behaves as
if the field were set to that value. This idea works nicely when you have
getter and setter methods to control access to the field, but is harder to
handle cleanly when the container is just a plain idiomatic struct. Required
fields are also tricky to implement: where does one define the default values,
what types do they have (is text UTF-8? uninterpreted bytes? how many bits in a
float?) and despite the apparent simplicity, there were a number of
complications in their design and implementation for protocol buffers. We
decided to leave them out of gobs and fall back to Go's trivial but effective
defaulting rule: unless you set something otherwise, it has the "zero value"
for that type - and it doesn't need to be transmitted.
</p>
<p>
So gobs end up looking like a sort of generalized, simplified protocol buffer.
How do they work?
</p>
<p>
<b>Values</b>
</p>
<p>
The encoded gob data isn't about <code>int8</code>s and <code>uint16</code>s.
Instead, somewhat analogous to constants in Go, its integer values are abstract,
sizeless numbers, either signed or unsigned. When you encode an
<code>int8</code>, its value is transmitted as an unsized, variable-length
integer. When you encode an <code>int64</code>, its value is also transmitted as
an unsized, variable-length integer. (Signed and unsigned are treated
distinctly, but the same unsized-ness applies to unsigned values too.) If both
have the value 7, the bits sent on the wire will be identical. When the receiver
decodes that value, it puts it into the receiver's variable, which may be of
arbitrary integer type. Thus an encoder may send a 7 that came from an
<code>int8</code>, but the receiver may store it in an <code>int64</code>. This
is fine: the value is an integer and as a long as it fits, everything works. (If
it doesn't fit, an error results.) This decoupling from the size of the variable
gives some flexibility to the encoding: we can expand the type of the integer
variable as the software evolves, but still be able to decode old data.
</p>
<p>
This flexibility also applies to pointers. Before transmission, all pointers are
flattened. Values of type <code>int8</code>, <code>*int8</code>,
<code>**int8</code>, <code>****int8</code>, etc. are all transmitted as an
integer value, which may then be stored in <code>int</code> of any size, or
<code>*int</code>, or <code>******int</code>, etc. Again, this allows for
flexibility.
</p>
<p>
Flexibility also happens because, when decoding a struct, only those fields
that are sent by the encoder are stored in the destination. Given the value
</p>
{{code "/doc/progs/gobs1.go" `/type T/` `/STOP/`}}
<p>
the encoding of <code>t</code> sends only the 7 and 8. Because it's zero, the
value of <code>Y</code> isn't even sent; there's no need to send a zero value.
</p>
<p>
The receiver could instead decode the value into this structure:
</p>
{{code "/doc/progs/gobs1.go" `/type U/` `/STOP/`}}
<p>
and acquire a value of <code>u</code> with only <code>X</code> set (to the
address of an <code>int8</code> variable set to 7); the <code>Z</code> field is
ignored - where would you put it? When decoding structs, fields are matched by
name and compatible type, and only fields that exist in both are affected. This
simple approach finesses the "optional field" problem: as the type
<code>T</code> evolves by adding fields, out of date receivers will still
function with the part of the type they recognize. Thus gobs provide the
important result of optional fields - extensibility - without any additional
mechanism or notation.
</p>
<p>
From integers we can build all the other types: bytes, strings, arrays, slices,
maps, even floats. Floating-point values are represented by their IEEE 754
floating-point bit pattern, stored as an integer, which works fine as long as
you know their type, which we always do. By the way, that integer is sent in
byte-reversed order because common values of floating-point numbers, such as
small integers, have a lot of zeros at the low end that we can avoid
transmitting.
</p>
<p>
One nice feature of gobs that Go makes possible is that they allow you to define
your own encoding by having your type satisfy the
<a href="/pkg/encoding/gob/#GobEncoder">GobEncoder</a> and
<a href="/pkg/encoding/gob/#GobDecoder">GobDecoder</a> interfaces, in a manner
analogous to the <a href="/pkg/encoding/json/">JSON</a> package's
<a href="/pkg/encoding/json/#Marshaler">Marshaler</a> and
<a href="/pkg/encoding/json/#Unmarshaler">Unmarshaler</a> and also to the
<a href="/pkg/fmt/#Stringer">Stringer</a> interface from
<a href="/pkg/fmt/">package fmt</a>. This facility makes it possible to
represent special features, enforce constraints, or hide secrets when you
transmit data. See the <a href="/pkg/encoding/gob/">documentation</a> for
details.
</p>
<p>
<b>Types on the wire</b>
</p>
<p>
The first time you send a given type, the gob package includes in the data
stream a description of that type. In fact, what happens is that the encoder is
used to encode, in the standard gob encoding format, an internal struct that
describes the type and gives it a unique number. (Basic types, plus the layout
of the type description structure, are predefined by the software for
bootstrapping.) After the type is described, it can be referenced by its type
number.
</p>
<p>
Thus when we send our first type <code>T</code>, the gob encoder sends a
description of <code>T</code> and tags it with a type number, say 127. All
values, including the first, are then prefixed by that number, so a stream of
<code>T</code> values looks like:
</p>
<pre>
("define type id" 127, definition of type T)(127, T value)(127, T value), ...
</pre>
<p>
These type numbers make it possible to describe recursive types and send values
of those types. Thus gobs can encode types such as trees:
</p>
{{code "/doc/progs/gobs1.go" `/type Node/` `/STOP/`}}
<p>
(It's an exercise for the reader to discover how the zero-defaulting rule makes
this work, even though gobs don't represent pointers.)
</p>
<p>
With the type information, a gob stream is fully self-describing except for the
set of bootstrap types, which is a well-defined starting point.
</p>
<p>
<b>Compiling a machine</b>
</p>
<p>
The first time you encode a value of a given type, the gob package builds a
little interpreted machine specific to that data type. It uses reflection on
the type to construct that machine, but once the machine is built it does not
depend on reflection. The machine uses package unsafe and some trickery to
convert the data into the encoded bytes at high speed. It could use reflection
and avoid unsafe, but would be significantly slower. (A similar high-speed
approach is taken by the protocol buffer support for Go, whose design was
influenced by the implementation of gobs.) Subsequent values of the same type
use the already-compiled machine, so they can be encoded right away.
</p>
<p>
Decoding is similar but harder. When you decode a value, the gob package holds
a byte slice representing a value of a given encoder-defined type to decode,
plus a Go value into which to decode it. The gob package builds a machine for
that pair: the gob type sent on the wire crossed with the Go type provided for
decoding. Once that decoding machine is built, though, it's again a
reflectionless engine that uses unsafe methods to get maximum speed.
</p>
<p>
<b>Use</b>
</p>
<p>
There's a lot going on under the hood, but the result is an efficient,
easy-to-use encoding system for transmitting data. Here's a complete example
showing differing encoded and decoded types. Note how easy it is to send and
receive values; all you need to do is present values and variables to the
<a href="/pkg/encoding/gob/">gob package</a> and it does all the work.
</p>
{{code "/doc/progs/gobs2.go" `/package main/` `$`}}
<p>
You can compile and run this example code in the
<a href="http://play.golang.org/p/_-OJV-rwMq">Go Playground</a>.
</p>
<p>
The <a href="/pkg/net/rpc/">rpc package</a> builds on gobs to turn this
encode/decode automation into transport for method calls across the network.
That's a subject for another article.
</p>
<p>
<b>Details</b>
</p>
<p>
The <a href="/pkg/encoding/gob/">gob package documentation</a>, especially the
file <a href="/src/pkg/encoding/gob/doc.go">doc.go</a>, expands on many of the
details described here and includes a full worked example showing how the
encoding represents data. If you are interested in the innards of the gob
implementation, that's a good place to start.
</p>

View File

@@ -0,0 +1,139 @@
<!--{
"Title": "Godoc: documenting Go code",
"Template": true
}-->
<p>
The Go project takes documentation seriously. Documentation is a huge part of
making software accessible and maintainable. Of course it must be well-written
and accurate, but it also must be easy to write and to maintain. Ideally, it
should be coupled to the code itself so the documentation evolves along with the
code. The easier it is for programmers to produce good documentation, the better
for everyone.
</p>
<p>
To that end, we have developed the <a href="/cmd/godoc/">godoc</a> documentation
tool. This article describes godoc's approach to documentation, and explains how
you can use our conventions and tools to write good documentation for your own
projects.
</p>
<p>
Godoc parses Go source code - including comments - and produces documentation as
HTML or plain text. The end result is documentation tightly coupled with the
code it documents. For example, through godoc's web interface you can navigate
from a function's <a href="/pkg/strings/#HasPrefix">documentation</a> to its
<a href="/src/pkg/strings/strings.go?#L312">implementation</a> with one click.
</p>
<p>
Godoc is conceptually related to Python's
<a href="http://www.python.org/dev/peps/pep-0257/">Docstring</a> and Java's
<a href="http://www.oracle.com/technetwork/java/javase/documentation/index-jsp-135444.html">Javadoc</a>,
but its design is simpler. The comments read by godoc are not language
constructs (as with Docstring) nor must they have their own machine-readable
syntax (as with Javadoc). Godoc comments are just good comments, the sort you
would want to read even if godoc didn't exist.
</p>
<p>
The convention is simple: to document a type, variable, constant, function, or
even a package, write a regular comment directly preceding its declaration, with
no intervening blank line. Godoc will then present that comment as text
alongside the item it documents. For example, this is the documentation for the
<code>fmt</code> package's <a href="/pkg/fmt/#Fprint"><code>Fprint</code></a>
function:
</p>
{{code "/src/pkg/fmt/print.go" `/Fprint formats using the default/` `/func Fprint/`}}
<p>
Notice this comment is a complete sentence that begins with the name of the
element it describes. This important convention allows us to generate
documentation in a variety of formats, from plain text to HTML to UNIX man
pages, and makes it read better when tools truncate it for brevity, such as when
they extract the first line or sentence.
</p>
<p>
Comments on package declarations should provide general package documentation.
These comments can be short, like the <a href="/pkg/sort/"><code>sort</code></a>
package's brief description:
</p>
{{code "/src/pkg/sort/sort.go" `/Package sort provides/` `/package sort/`}}
<p>
They can also be detailed like the <a href="/pkg/encoding/gob/">gob package</a>'s
overview. That package uses another convention for packages
that need large amounts of introductory documentation: the package comment is
placed in its own file, <a href="/src/pkg/encoding/gob/doc.go">doc.go</a>, which
contains only those comments and a package clause.
</p>
<p>
When writing package comments of any size, keep in mind that their first
sentence will appear in godoc's <a href="/pkg/">package list</a>.
</p>
<p>
Comments that are not adjacent to a top-level declaration are omitted from
godoc's output, with one notable exception. Top-level comments that begin with
the word <code>"BUG(who)”</code> are recognized as known bugs, and included in
the "Bugs” section of the package documentation. The "who” part should be the
user name of someone who could provide more information. For example, this is a
known issue from the <a href="/pkg/bytes/#bugs">bytes package</a>:
</p>
<pre>
// BUG(r): The rule Title uses for word boundaries does not handle Unicode punctuation properly.
</pre>
<p>
Godoc treats executable commands somewhat differently. Instead of inspecting the
command source code, it looks for a Go source file belonging to the special
package "documentation”. The comment on the "package documentation” clause is
used as the command's documentation. For example, see the
<a href="/cmd/godoc/">godoc documentation</a> and its corresponding
<a href="/src/cmd/godoc/doc.go">doc.go</a> file.
</p>
<p>
There are a few formatting rules that Godoc uses when converting comments to
HTML:
</p>
<ul>
<li>
Subsequent lines of text are considered part of the same paragraph; you must
leave a blank line to separate paragraphs.
</li>
<li>
Pre-formatted text must be indented relative to the surrounding comment text
(see gob's <a href="/src/pkg/encoding/gob/doc.go">doc.go</a> for an example).
</li>
<li>
URLs will be converted to HTML links; no special markup is necessary.
</li>
</ul>
<p>
Note that none of these rules requires you to do anything out of the ordinary.
</p>
<p>
In fact, the best thing about godoc's minimal approach is how easy it is to use.
As a result, a lot of Go code, including all of the standard library, already
follows the conventions.
</p>
<p>
Your own code can present good documentation just by having comments as
described above. Any Go packages installed inside <code>$GOROOT/src/pkg</code>
and any <code>GOPATH</code> work spaces will already be accessible via godoc's
command-line and HTTP interfaces, and you can specify additional paths for
indexing via the <code>-path</code> flag or just by running <code>"godoc ."</code>
in the source directory. See the <a href="/cmd/godoc/">godoc documentation</a>
for more details.
</p>

View File

@@ -0,0 +1,348 @@
<!--{
"Title": "Go's Declaration Syntax"
}-->
<p>
Newcomers to Go wonder why the declaration syntax is different from the
tradition established in the C family. In this post we'll compare the
two approaches and explain why Go's declarations look as they do.
</p>
<p>
<b>C syntax</b>
</p>
<p>
First, let's talk about C syntax. C took an unusual and clever approach
to declaration syntax. Instead of describing the types with special
syntax, one writes an expression involving the item being declared, and
states what type that expression will have. Thus
</p>
<pre>
int x;
</pre>
<p>
declares x to be an int: the expression 'x' will have type int. In
general, to figure out how to write the type of a new variable, write an
expression involving that variable that evaluates to a basic type, then
put the basic type on the left and the expression on the right.
</p>
<p>
Thus, the declarations
</p>
<pre>
int *p;
int a[3];
</pre>
<p>
state that p is a pointer to int because '*p' has type int, and that a
is an array of ints because a[3] (ignoring the particular index value,
which is punned to be the size of the array) has type int.
</p>
<p>
What about functions? Originally, C's function declarations wrote the
types of the arguments outside the parens, like this:
</p>
<pre>
int main(argc, argv)
int argc;
char *argv[];
{ /* ... */ }
</pre>
<p>
Again, we see that main is a function because the expression main(argc,
argv) returns an int. In modern notation we'd write
</p>
<pre>
int main(int argc, char *argv[]) { /* ... */ }
</pre>
<p>
but the basic structure is the same.
</p>
<p>
This is a clever syntactic idea that works well for simple types but can
get confusing fast. The famous example is declaring a function pointer.
Follow the rules and you get this:
</p>
<pre>
int (*fp)(int a, int b);
</pre>
<p>
Here, fp is a pointer to a function because if you write the expression
(*fp)(a, b) you'll call a function that returns int. What if one of fp's
arguments is itself a function?
</p>
<pre>
int (*fp)(int (*ff)(int x, int y), int b)
</pre>
<p>
That's starting to get hard to read.
</p>
<p>
Of course, we can leave out the name of the parameters when we declare a
function, so main can be declared
</p>
<pre>
int main(int, char *[])
</pre>
<p>
Recall that argv is declared like this,
</p>
<pre>
char *argv[]
</pre>
<p>
so you drop the name from the <em>middle</em> of its declaration to construct
its type. It's not obvious, though, that you declare something of type
char *[] by putting its name in the middle.
</p>
<p>
And look what happens to fp's declaration if you don't name the
parameters:
</p>
<pre>
int (*fp)(int (*)(int, int), int)
</pre>
<p>
Not only is it not obvious where to put the name inside
</p>
<pre>
int (*)(int, int)
</pre>
<p>
it's not exactly clear that it's a function pointer declaration at all.
And what if the return type is a function pointer?
</p>
<pre>
int (*(*fp)(int (*)(int, int), int))(int, int)
</pre>
<p>
It's hard even to see that this declaration is about fp.
</p>
<p>
You can construct more elaborate examples but these should illustrate
some of the difficulties that C's declaration syntax can introduce.
</p>
<p>
There's one more point that needs to be made, though. Because type and
declaration syntax are the same, it can be difficult to parse
expressions with types in the middle. This is why, for instance, C casts
always parenthesize the type, as in
</p>
<pre>
(int)M_PI
</pre>
<p>
<b>Go syntax</b>
</p>
<p>
Languages outside the C family usually use a distinct type syntax in
declarations. Although it's a separate point, the name usually comes
first, often followed by a colon. Thus our examples above become
something like (in a fictional but illustrative language)
</p>
<pre>
x: int
p: pointer to int
a: array[3] of int
</pre>
<p>
These declarations are clear, if verbose - you just read them left to
right. Go takes its cue from here, but in the interests of brevity it
drops the colon and removes some of the keywords:
</p>
<pre>
x int
p *int
a [3]int
</pre>
<p>
There is no direct correspondence between the look of [3]int and how to
use a in an expression. (We'll come back to pointers in the next
section.) You gain clarity at the cost of a separate syntax.
</p>
<p>
Now consider functions. Let's transcribe the declaration for main, even
though the main function in Go takes no arguments:
</p>
<pre>
func main(argc int, argv *[]byte) int
</pre>
<p>
Superficially that's not much different from C, but it reads well from
left to right:
</p>
<p>
<em>function main takes an int and a pointer to a slice of bytes and returns an int.</em>
</p>
<p>
Drop the parameter names and it's just as clear - they're always first
so there's no confusion.
</p>
<pre>
func main(int, *[]byte) int
</pre>
<p>
One value of this left-to-right style is how well it works as the types
become more complex. Here's a declaration of a function variable
(analogous to a function pointer in C):
</p>
<pre>
f func(func(int,int) int, int) int
</pre>
<p>
Or if f returns a function:
</p>
<pre>
f func(func(int,int) int, int) func(int, int) int
</pre>
<p>
It still reads clearly, from left to right, and it's always obvious
which name is being declared - the name comes first.
</p>
<p>
The distinction between type and expression syntax makes it easy to
write and invoke closures in Go:
</p>
<pre>
sum := func(a, b int) int { return a+b } (3, 4)
</pre>
<p>
<b>Pointers</b>
</p>
<p>
Pointers are the exception that proves the rule. Notice that in arrays
and slices, for instance, Go's type syntax puts the brackets on the left
of the type but the expression syntax puts them on the right of the
expression:
</p>
<pre>
var a []int
x = a[1]
</pre>
<p>
For familiarity, Go's pointers use the * notation from C, but we could
not bring ourselves to make a similar reversal for pointer types. Thus
pointers work like this
</p>
<pre>
var p *int
x = *p
</pre>
<p>
We couldn't say
</p>
<pre>
var p *int
x = p*
</pre>
<p>
because that postfix * would conflate with multiplication. We could have
used the Pascal ^, for example:
</p>
<pre>
var p ^int
x = p^
</pre>
<p>
and perhaps we should have (and chosen another operator for xor),
because the prefix asterisk on both types and expressions complicates
things in a number of ways. For instance, although one can write
</p>
<pre>
[]int("hi")
</pre>
<p>
as a conversion, one must parenthesize the type if it starts with a *:
</p>
<pre>
(*int)(nil)
</pre>
<p>
Had we been willing to give up * as pointer syntax, those parentheses
would be unnecessary.
</p>
<p>
So Go's pointer syntax is tied to the familiar C form, but those ties
mean that we cannot break completely from using parentheses to
disambiguate types and expressions in the grammar.
</p>
<p>
Overall, though, we believe Go's type syntax is easier to understand
than C's, especially when things get complicated.
</p>
<p>
<b>Notes</b>
</p>
<p>
Go's declarations read left to right. It's been pointed out that C's
read in a spiral! See <a href="http://c-faq.com/decl/spiral.anderson.html">
The "Clockwise/Spiral Rule"</a> by David Anderson.
</p>

BIN
doc/articles/image-20.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

BIN
doc/articles/image-2a.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
doc/articles/image-2b.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

BIN
doc/articles/image-2c.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

BIN
doc/articles/image-2d.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
doc/articles/image-2e.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

BIN
doc/articles/image-2f.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,222 @@
<!--{
"Title": "The Go image/draw package",
"Template": true
}-->
<p>
<a href="/pkg/image/draw/">Package image/draw</a> defines
only one operation: drawing a source image onto a destination
image, through an optional mask image. This one operation is
surprisingly versatile and can perform a number of common image
manipulation tasks elegantly and efficiently.
</p>
<p>
Composition is performed pixel by pixel in the style of the Plan 9
graphics library and the X Render extension. The model is based on
the classic "Compositing Digital Images" paper by Porter and Duff,
with an additional mask parameter: <code>dst = (src IN mask) OP dst</code>.
For a fully opaque mask, this reduces to the original Porter-Duff
formula: <code>dst = src OP dst</code>. In Go, a nil mask image is equivalent
to an infinitely sized, fully opaque mask image.
</p>
<p>
The Porter-Duff paper presented
<a href="http://www.w3.org/TR/SVGCompositing/examples/compop-porterduff-examples.png">12 different composition operators</a>,
but with an explicit mask, only 2 of these are needed in practice:
source-over-destination and source. In Go, these operators are
represented by the <code>Over</code> and <code>Src</code> constants. The <code>Over</code> operator
performs the natural layering of a source image over a destination
image: the change to the destination image is smaller where the
source (after masking) is more transparent (that is, has lower
alpha). The <code>Src</code> operator merely copies the source (after masking)
with no regard for the destination image's original content. For
fully opaque source and mask images, the two operators produce the
same output, but the <code>Src</code> operator is usually faster.
</p>
<p><b>Geometric Alignment</b></p>
<p>
Composition requires associating destination pixels with source and
mask pixels. Obviously, this requires destination, source and mask
images, and a composition operator, but it also requires specifying
what rectangle of each image to use. Not every drawing should write
to the entire destination: when updating an animating image, it is
more efficient to only draw the parts of the image that have
changed. Not every drawing should read from the entire source: when
using a sprite that combines many small images into one large one,
only a part of the image is needed. Not every drawing should read
from the entire mask: a mask image that collects a font's glyphs is
similar to a sprite. Thus, drawing also needs to know three
rectangles, one for each image. Since each rectangle has the same
width and height, it suffices to pass a destination rectangle `r`
and two points <code>sp</code> and <code>mp</code>: the source rectangle is equal to <code>r</code>
translated so that <code>r.Min</code> in the destination image aligns with
<code>sp</code> in the source image, and similarly for <code>mp</code>. The effective
rectangle is also clipped to each image's bounds in their
respective co-ordinate space.
</p>
<p>
<img src="image-20.png">
</p>
<p>
The <a href="/pkg/image/draw/#DrawMask"><code>DrawMask</code></a>
function takes seven arguments, but an explicit mask and mask-point
are usually unnecessary, so the
<a href="/pkg/image/draw/#Draw"><code>Draw</code></a> function takes five:
</p>
<pre>
// Draw calls DrawMask with a nil mask.
func Draw(dst Image, r image.Rectangle, src image.Image, sp image.Point, op Op)
func DrawMask(dst Image, r image.Rectangle, src image.Image, sp image.Point,
mask image.Image, mp image.Point, op Op)
</pre>
<p>
The destination image must be mutable, so the image/draw package
defines a <a href="/pkg/image/draw/#Image"><code>draw.Image</code></a>
interface which has a <code>Set</code> method.
</p>
{{code "../src/pkg/image/draw/draw.go" `/type Image/` `/}/`}}
<p><b>Filling a Rectangle</b></p>
<p>
To fill a rectangle with a solid color, use an <code>image.Uniform</code>
source. The <code>Uniform</code> type re-interprets a <code>Color</code> as a
practically infinite-sized <code>Image</code> of that color. For those
familiar with the design of Plan 9's draw library, there is no need
for an explicit "repeat bit" in Go's slice-based image types; the
concept is subsumed by <code>Uniform</code>.
</p>
{{code "/doc/progs/image_draw.go" `/ZERO/` `/STOP/`}}
<p>
To initialize a new image to all-blue:
</p>
{{code "/doc/progs/image_draw.go" `/BLUE/` `/STOP/`}}
<p>
To reset an image to transparent (or black, if the destination
image's color model cannot represent transparency), use
<code>image.Transparent</code>, which is an <code>image.Uniform</code>:
</p>
{{code "/doc/progs/image_draw.go" `/RESET/` `/STOP/`}}
<p>
<img src="image-2a.png">
</p>
<p><b>Copying an Image</b></p>
<p>
To copy from a rectangle <code>sr</code> in the source image to a rectangle
starting at a point <code>dp</code> in the destination, convert the source
rectangle into the destination image's co-ordinate space:
</p>
{{code "/doc/progs/image_draw.go" `/RECT/` `/STOP/`}}
<p>
Alternatively:
</p>
{{code "/doc/progs/image_draw.go" `/RECT2/` `/STOP/`}}
<p>
To copy the entire source image, use <code>sr = src.Bounds()</code>.
</p>
<p>
<img src="image-2b.png">
</p>
<p><b>Scrolling an Image</b></p>
<p>
Scrolling an image is just copying an image to itself, with
different destination and source rectangles. Overlapping
destination and source images are perfectly valid, just as Go's
built-in copy function can handle overlapping destination and
source slices. To scroll an image m by 20 pixels:
</p>
{{code "/doc/progs/image_draw.go" `/SCROLL/` `/STOP/`}}
<p><img src="image-2c.png"></p>
<p><b>Converting an Image to RGBA</b></p>
<p>
The result of decoding an image format might not be an
<code>image.RGBA</code>: decoding a GIF results in an <code>image.Paletted</code>,
decoding a JPEG results in a <code>ycbcr.YCbCr</code>, and the result of
decoding a PNG depends on the image data. To convert any image to
an <code>image.RGBA</code>:
</p>
{{code "/doc/progs/image_draw.go" `/CONV/` `/STOP/`}}
<p>
<img src="image-2d.png">
</p>
<p><b>Drawing Through a Mask</b></p>
<p>
To draw an image through a circular mask with center <code>p</code> and radius
<code>r</code>:
</p>
{{code "/doc/progs/image_draw.go" `/CIRCLESTRUCT/` `/STOP/`}}
{{code "/doc/progs/image_draw.go" `/CIRCLE2/` `/STOP/`}}
<p>
<img src="image-2e.png">
</p>
<p><b>Drawing Font Glyphs</b></p>
<p>
To draw a font glyph in blue starting from a point <code>p</code>, draw with
an <code>image.Uniform</code> source and an <code>image.Alpha mask</code>. For
simplicity, we aren't performing any sub-pixel positioning or
rendering, or correcting for a font's height above a baseline.
</p>
{{code "/doc/progs/image_draw.go" `/GLYPH/` `/STOP/`}}
<p>
<img src="image-2f.png">
</p>
<p><b>Performance</b></p>
<p>
The image/draw package implementation demonstrates how to provide
an image manipulation function that is both general purpose, yet
efficient for common cases. The <code>DrawMask</code> function takes arguments
of interface types, but immediately makes type assertions that its
arguments are of specific struct types, corresponding to common
operations like drawing one <code>image.RGBA</code> image onto another, or
drawing an <code>image.Alpha</code> mask (such as a font glyph) onto an
<code>image.RGBA</code> image. If a type assertion succeeds, that type
information is used to run a specialized implementation of the
general algorithm. If the assertions fail, the fallback code path
uses the generic <code>At</code> and <code>Set</code> methods. The fast-paths are purely
a performance optimization; the resultant destination image is the
same either way. In practice, only a small number of special cases
are necessary to support typical applications.
</p>

View File

@@ -0,0 +1,312 @@
<!--{
"Title": "The Go image package",
"Template": true
}-->
<p>
The <a href="/pkg/image/">image</a> and
<a href="/pkg/image/color/">image/color</a> packages define a number of types:
<code>color.Color</code> and <code>color.Model</code> describe colors,
<code>image.Point</code> and <code>image.Rectangle</code> describe basic 2-D
geometry, and <code>image.Image</code> brings the two concepts together to
represent a rectangular grid of colors. A
<a href="/doc/articles/image_draw.html">separate article</a> covers image
composition with the <a href="/pkg/image/draw/">image/draw</a> package.
</p>
<p>
<b>Colors and Color Models</b>
</p>
<p>
<a href="/pkg/image/color/#Color">Color</a> is an interface that defines the minimal
method set of any type that can be considered a color: one that can be converted
to red, green, blue and alpha values. The conversion may be lossy, such as
converting from CMYK or YCbCr color spaces.
</p>
{{code "/src/pkg/image/color/color.go" `/type Color interface/` `/^}/`}}
<p>
There are three important subtleties about the return values. First, the red,
green and blue are alpha-premultiplied: a fully saturated red that is also 25%
transparent is represented by RGBA returning a 75% r. Second, the channels have
a 16-bit effective range: 100% red is represented by RGBA returning an r of
65535, not 255, so that converting from CMYK or YCbCr is not as lossy. Third,
the type returned is <code>uint32</code>, even though the maximum value is 65535, to
guarantee that multiplying two values together won't overflow. Such
multiplications occur when blending two colors according to an alpha mask from a
third color, in the style of
<a href="https://en.wikipedia.org/wiki/Alpha_compositing">Porter and Duff's</a>
classic algebra:
</p>
<pre>
dstr, dstg, dstb, dsta := dst.RGBA()
srcr, srcg, srcb, srca := src.RGBA()
_, _, _, m := mask.RGBA()
const M = 1&lt;&lt;16 - 1
// The resultant red value is a blend of dstr and srcr, and ranges in [0, M].
// The calculation for green, blue and alpha is similar.
dstr = (dstr*(M-m) + srcr*m) / M
</pre>
<p>
The last line of that code snippet would have been more complicated if we worked
with non-alpha-premultiplied colors, which is why <code>Color</code> uses
alpha-premultiplied values.
</p>
<p>
The image/color package also defines a number of concrete types that implement
the <code>Color</code> interface. For example,
<a href="/pkg/image/color/#RGBA"><code>RGBA</code></a> is a struct that represents
the classic "8 bits per channel" color.
</p>
{{code "/src/pkg/image/color/color.go" `/type RGBA struct/` `/^}/`}}
<p>
Note that the <code>R</code> field of an <code>RGBA</code> is an 8-bit
alpha-premultiplied color in the range [0, 255]. <code>RGBA</code> satisfies the
<code>Color</code> interface by multiplying that value by 0x101 to generate a
16-bit alpha-premultiplied color in the range [0, 65535]. Similarly, the
<a href="/pkg/image/color/#NRGBA"><code>NRGBA</code></a> struct type represents
an 8-bit non-alpha-premultiplied color, as used by the PNG image format. When
manipulating an <code>NRGBA</code>'s fields directly, the values are
non-alpha-premultiplied, but when calling the <code>RGBA</code> method, the
return values are alpha-premultiplied.
</p>
<p>
A <a href="/pkg/image/color/#Model"><code>Model</code></a> is simply
something that can convert <code>Color</code>s to other <code>Color</code>s, possibly lossily. For
example, the <code>GrayModel</code> can convert any <code>Color</code> to a
desaturated <a href="/pkg/image/color/#Gray"><code>Gray</code></a>. A
<code>Palette</code> can convert any <code>Color</code> to one from a
limited palette.
</p>
{{code "/src/pkg/image/color/color.go" `/type Model interface/` `/^}/`}}
{{code "/src/pkg/image/color/color.go" `/type Palette \[\]Color/`}}
<p>
<b>Points and Rectangles</b>
</p>
<p>
A <a href="/pkg/image/#Point"><code>Point</code></a> is an (x, y) co-ordinate
on the integer grid, with axes increasing right and down. It is neither a pixel
nor a grid square. A <code>Point</code> has no intrinsic width, height or
color, but the visualizations below use a small colored square.
</p>
{{code "/src/pkg/image/geom.go" `/type Point struct/` `/^}/`}}
<p>
<img src="image-package-01.png" width="400" height="300">
</p>
{{code "/doc/progs/image_package1.go" `/p := image.Point/`}}
<p>
A <a href="/pkg/image/#Rectangle"><code>Rectangle</code></a> is an axis-aligned
rectangle on the integer grid, defined by its top-left and bottom-right
<code>Point</code>. A <code>Rectangle</code> also has no intrinsic color, but
the visualizations below outline rectangles with a thin colored line, and call
out their <code>Min</code> and <code>Max</code> <code>Point</code>s.
</p>
{{code "/src/pkg/image/geom.go" `/type Rectangle struct/` `/^}/`}}
<p>
For convenience, <code>image.Rect(x0, y0, x1, y1)</code> is equivalent to
<code>image.Rectangle{image.Point{x0, y0}, image.Point{x1, y1}}</code>, but is
much easier to type.
</p>
<p>
A <code>Rectangle</code> is inclusive at the top-left and exclusive at the
bottom-right. For a <code>Point p</code> and a <code>Rectangle r</code>,
<code>p.In(r)</code> if and only if
<code>r.Min.X &lt;= p.X &amp;&amp; p.X &lt; r.Max.X</code>, and similarly for <code>Y</code>. This is analagous to how
a slice <code>s[i0:i1]</code> is inclusive at the low end and exclusive at the
high end. (Unlike arrays and slices, a <code>Rectangle</code> often has a
non-zero origin.)
</p>
<p>
<img src="image-package-02.png" width="400" height="300">
</p>
{{code "/doc/progs/image_package2.go" `/r := image.Rect/` `/fmt.Println/`}}
<p>
Adding a <code>Point</code> to a <code>Rectangle</code> translates the
<code>Rectangle</code>. Points and Rectangles are not restricted to be in the
bottom-right quadrant.
</p>
<p>
<img src="image-package-03.png" width="400" height="300">
</p>
{{code "/doc/progs/image_package3.go" `/r := image.Rect/` `/fmt.Println/`}}
<p>
Intersecting two Rectangles yields another Rectangle, which may be empty.
</p>
<p>
<img src="image-package-04.png" width="400" height="300">
</p>
{{code "/doc/progs/image_package4.go" `/r := image.Rect/` `/fmt.Printf/`}}
<p>
Points and Rectangles are passed and returned by value. A function that takes a
<code>Rectangle</code> argument will be as efficient as a function that takes
two <code>Point</code> arguments, or four <code>int</code> arguments.
</p>
<p>
<b>Images</b>
</p>
<p>
An <a href="/pkg/image/#Image">Image</a> maps every grid square in a
<code>Rectangle</code> to a <code>Color</code> from a <code>Model</code>.
"The pixel at (x, y)" refers to the color of the grid square defined by the
points (x, y), (x+1, y), (x+1, y+1) and (x, y+1).
</p>
{{code "/src/pkg/image/image.go" `/type Image interface/` `/^}/`}}
<p>
A common mistake is assuming that an <code>Image</code>'s bounds start at (0,
0). For example, an animated GIF contains a sequence of Images, and each
<code>Image</code> after the first typically only holds pixel data for the area
that changed, and that area doesn't necessarily start at (0, 0). The correct
way to iterate over an <code>Image</code> m's pixels looks like:
</p>
<pre>
b := m.Bounds()
for y := b.Min.Y; y &lt; b.Max.Y; y++ {
for x := b.Min.X; y &lt; b.Max.X; x++ {
doStuffWith(m.At(x, y))
}
}
</pre>
<p>
<code>Image</code> implementations do not have to be based on an in-memory
slice of pixel data. For example, a
<a href="/pkg/image/#Uniform"><code>Uniform</code></a> is an
<code>Image</code> of enormous bounds and uniform color, whose in-memory
representation is simply that color.
</p>
{{code "/src/pkg/image/names.go" `/type Uniform struct/` `/^}/`}}
<p>
Typically, though, programs will want an image based on a slice. Struct types
like <a href="/pkg/image/#RGBA"><code>RGBA</code></a> and
<a href="/pkg/image/#Gray"><code>Gray</code></a> (which other packages refer
to as <code>image.RGBA</code> and <code>image.Gray</code>) hold slices of pixel
data and implement the <code>Image</code> interface.
</p>
{{code "/src/pkg/image/image.go" `/type RGBA struct/` `/^}/`}}
<p>
These types also provide a <code>Set(x, y int, c color.Color)</code> method
that allows modifying the image one pixel at a time.
</p>
{{code "/doc/progs/image_package5.go" `/m := image.New/` `/m.Set/`}}
<p>
If you're reading or writing a lot of pixel data, it can be more efficient, but
more complicated, to access these struct type's <code>Pix</code> field directly.
</p>
<p>
The slice-based <code>Image</code> implementations also provide a
<code>SubImage</code> method, which returns an <code>Image</code> backed by the
same array. Modifying the pixels of a sub-image will affect the pixels of the
original image, analagous to how modifying the contents of a sub-slice
<code>s[i0:i1]</code> will affect the contents of the original slice
<code>s</code>.
</p>
<img src="image-package-05.png" width="400" height="300">
{{code "/doc/progs/image_package6.go" `/m0 := image.New/` `/fmt.Println\(m0.Stride/`}}
<p>
For low-level code that works on an image's <code>Pix</code> field, be aware
that ranging over <code>Pix</code> can affect pixels outside an image's bounds.
In the example above, the pixels covered by <code>m1.Pix</code> are shaded in
blue. Higher-level code, such as the <code>At</code> and <code>Set</code>
methods or the <a href="/pkg/image/draw/">image/draw package</a>, will clip
their operations to the image's bounds.
</p>
<p>
<b>Image Formats</b>
</p>
<p>
The standard package library supports a number of common image formats, such as
GIF, JPEG and PNG. If you know the format of a source image file, you can
decode from an <a href="/pkg/io/#Reader"><code>io.Reader</code></a> directly.
</p>
<pre>
import (
"image/jpeg"
"image/png"
"io"
)
// convertJPEGToPNG converts from JPEG to PNG.
func convertJPEGToPNG(w io.Writer, r io.Reader) error {
img, err := jpeg.Decode(r)
if err != nil {
return err
}
return png.Encode(w, img)
}
</pre>
<p>
If you have image data of unknown format, the
<a href="/pkg/image/#Decode"><code>image.Decode</code></a> function can detect
the format. The set of recognized formats is constructed at run time and is not
limited to those in the standard package library. An image format package
typically registers its format in an init function, and the main package will
"underscore import" such a package solely for the side effect of format
registration.
</p>
<pre>
import (
"image"
"image/png"
"io"
_ "code.google.com/p/vp8-go/webp"
_ "image/jpeg"
)
// convertToPNG converts from any recognized format to PNG.
func convertToPNG(w io.Writer, r io.Reader) error {
img, _, err := image.Decode(r)
if err != nil {
return err
}
return png.Encode(w, img)
}
</pre>

View File

@@ -3,6 +3,5 @@
}-->
<p>
See the <a href="/doc/#articles">Documents page</a> and the
<a href="/blog/index">Blog index</a> for a complete list of Go articles.
See the <a href="/doc/#articles">Documents page</a> for a complete list of Go articles.
</p>

View File

@@ -0,0 +1,356 @@
<!--{
"Title": "JSON and Go",
"Template": true
}-->
<p>
JSON (JavaScript Object Notation) is a simple data interchange format.
Syntactically it resembles the objects and lists of JavaScript. It is most
commonly used for communication between web back-ends and JavaScript programs
running in the browser, but it is used in many other places, too. Its home page,
<a href="http://json.org">json.org</a>, provides a wonderfully clear and concise
definition of the standard.
</p>
<p>
With the <a href="/pkg/encoding/json/">json package</a> it's a snap to read and
write JSON data from your Go programs.
</p>
<p>
<b>Encoding</b>
</p>
<p>
To encode JSON data we use the
<a href="/pkg/encoding/json/#Marshal"><code>Marshal</code></a> function.
</p>
<pre>
func Marshal(v interface{}) ([]byte, error)
</pre>
<p>
Given the Go data structure, <code>Message</code>,
</p>
{{code "/doc/progs/json1.go" `/type Message/` `/STOP/`}}
<p>
and an instance of <code>Message</code>
</p>
{{code "/doc/progs/json1.go" `/m :=/`}}
<p>
we can marshal a JSON-encoded version of m using <code>json.Marshal</code>:
</p>
{{code "/doc/progs/json1.go" `/b, err :=/`}}
<p>
If all is well, <code>err</code> will be <code>nil</code> and <code>b</code>
will be a <code>[]byte</code> containing this JSON data:
</p>
<pre>
b == []byte(`{"Name":"Alice","Body":"Hello","Time":1294706395881547000}`)
</pre>
<p>
Only data structures that can be represented as valid JSON will be encoded:
</p>
<ul>
<li>
JSON objects only support strings as keys; to encode a Go map type it must be
of the form <code>map[string]T</code> (where <code>T</code> is any Go type
supported by the json package).
</li>
<li>
Channel, complex, and function types cannot be encoded.
</li>
<li>
Cyclic data structures are not supported; they will cause <code>Marshal</code>
to go into an infinite loop.
</li>
<li>
Pointers will be encoded as the values they point to (or 'null' if the pointer
is <code>nil</code>).
</li>
</ul>
<p>
The json package only accesses the exported fields of struct types (those that
begin with an uppercase letter). Therefore only the exported fields of a struct
will be present in the JSON output.
</p>
<p>
<b>Decoding</b>
</p>
<p>
To decode JSON data we use the
<a href="/pkg/encoding/json/#Unmarshal"><code>Unmarshal</code></a> function.
</p>
<pre>
func Unmarshal(data []byte, v interface{}) error
</pre>
<p>
We must first create a place where the decoded data will be stored
</p>
{{code "/doc/progs/json1.go" `/var m Message/`}}
<p>
and call <code>json.Unmarshal</code>, passing it a <code>[]byte</code> of JSON
data and a pointer to <code>m</code>
</p>
{{code "/doc/progs/json1.go" `/err := json.Unmarshal/`}}
<p>
If <code>b</code> contains valid JSON that fits in <code>m</code>, after the
call <code>err</code> will be <code>nil</code> and the data from <code>b</code>
will have been stored in the struct <code>m</code>, as if by an assignment
like:
</p>
{{code "/doc/progs/json1.go" `/m = Message/` `/STOP/`}}
<p>
How does <code>Unmarshal</code> identify the fields in which to store the
decoded data? For a given JSON key <code>"Foo"</code>, <code>Unmarshal</code>
will look through the destination struct's fields to find (in order of
preference):
</p>
<ul>
<li>
An exported field with a tag of <code>"Foo"</code> (see the
<a href="/ref/spec#Struct_types">Go spec</a> for more on struct tags),
</li>
<li>
An exported field named <code>"Foo"</code>, or
</li>
<li>
An exported field named <code>"FOO"</code> or <code>"FoO"</code> or some other
case-insensitive match of <code>"Foo"</code>.
</li>
</ul>
<p>
What happens when the structure of the JSON data doesn't exactly match the Go
type?
</p>
{{code "/doc/progs/json1.go" `/"Food":"Pickle"/` `/STOP/`}}
<p>
<code>Unmarshal</code> will decode only the fields that it can find in the
destination type. In this case, only the Name field of m will be populated,
and the Food field will be ignored. This behavior is particularly useful when
you wish to pick only a few specific fields out of a large JSON blob. It also
means that any unexported fields in the destination struct will be unaffected
by <code>Unmarshal</code>.
</p>
<p>
But what if you don't know the structure of your JSON data beforehand?
</p>
<p>
<b>Generic JSON with interface{}</b>
</p>
<p>
The <code>interface{}</code> (empty interface) type describes an interface with
zero methods. Every Go type implements at least zero methods and therefore
satisfies the empty interface.
</p>
<p>
The empty interface serves as a general container type:
</p>
{{code "/doc/progs/json2.go" `/var i interface{}/` `/STOP/`}}
<p>
A type assertion accesses the underlying concrete type:
</p>
{{code "/doc/progs/json2.go" `/r := i/` `/STOP/`}}
<p>
Or, if the underlying type is unknown, a type switch determines the type:
</p>
{{code "/doc/progs/json2.go" `/switch v/` `/STOP/`}}
The json package uses <code>map[string]interface{}</code> and
<code>[]interface{}</code> values to store arbitrary JSON objects and arrays;
it will happily unmarshal any valid JSON blob into a plain
<code>interface{}</code> value. The default concrete Go types are:
<ul>
<li>
<code>bool</code> for JSON booleans,
</li>
<li>
<code>float64</code> for JSON numbers,
</li>
<li>
<code>string</code> for JSON strings, and
</li>
<li>
<code>nil</code> for JSON null.
</li>
</ul>
<p>
<b>Decoding arbitrary data</b>
</p>
<p>
Consider this JSON data, stored in the variable <code>b</code>:
</p>
{{code "/doc/progs/json3.go" `/b :=/`}}
<p>
Without knowing this data's structure, we can decode it into an
<code>interface{}</code> value with <code>Unmarshal</code>:
</p>
{{code "/doc/progs/json3.go" `/var f interface/` `/STOP/`}}
<p>
At this point the Go value in <code>f</code> would be a map whose keys are
strings and whose values are themselves stored as empty interface values:
</p>
{{code "/doc/progs/json3.go" `/f = map/` `/STOP/`}}
<p>
To access this data we can use a type assertion to access <code>f</code>'s
underlying <code>map[string]interface{}</code>:
</p>
{{code "/doc/progs/json3.go" `/m := f/`}}
<p>
We can then iterate through the map with a range statement and use a type switch
to access its values as their concrete types:
</p>
{{code "/doc/progs/json3.go" `/for k, v/` `/STOP/`}}
<p>
In this way you can work with unknown JSON data while still enjoying the
benefits of type safety.
</p>
<p>
<b>Reference Types</b>
</p>
<p>
Let's define a Go type to contain the data from the previous example:
</p>
{{code "/doc/progs/json4.go" `/type FamilyMember/` `/STOP/`}}
{{code "/doc/progs/json4.go" `/var m FamilyMember/` `/STOP/`}}
<p>
Unmarshaling that data into a <code>FamilyMember</code> value works as
expected, but if we look closely we can see a remarkable thing has happened.
With the var statement we allocated a <code>FamilyMember</code> struct, and
then provided a pointer to that value to <code>Unmarshal</code>, but at that
time the <code>Parents</code> field was a <code>nil</code> slice value. To
populate the <code>Parents</code> field, <code>Unmarshal</code> allocated a new
slice behind the scenes. This is typical of how <code>Unmarshal</code> works
with the supported reference types (pointers, slices, and maps).
</p>
<p>
Consider unmarshaling into this data structure:
</p>
<pre>
type Foo struct {
Bar *Bar
}
</pre>
<p>
If there were a <code>Bar</code> field in the JSON object,
<code>Unmarshal</code> would allocate a new <code>Bar</code> and populate it.
If not, <code>Bar</code> would be left as a <code>nil</code> pointer.
</p>
<p>
From this a useful pattern arises: if you have an application that receives a
few distinct message types, you might define "receiver" structure like
</p>
<pre>
type IncomingMessage struct {
Cmd *Command
Msg *Message
}
</pre>
<p>
and the sending party can populate the <code>Cmd</code> field and/or the
<code>Msg</code> field of the top-level JSON object, depending on the type of
message they want to communicate. <code>Unmarshal</code>, when decoding the
JSON into an <code>IncomingMessage</code> struct, will only allocate the data
structures present in the JSON data. To know which messages to process, the
programmer need simply test that either <code>Cmd</code> or <code>Msg</code> is
not <code>nil</code>.
</p>
<p>
<b>Streaming Encoders and Decoders</b>
</p>
<p>
The json package provides <code>Decoder</code> and <code>Encoder</code> types
to support the common operation of reading and writing streams of JSON data.
The <code>NewDecoder</code> and <code>NewEncoder</code> functions wrap the
<a href="/pkg/io/#Reader"><code>io.Reader</code></a> and
<a href="/pkg/io/#Writer"><code>io.Writer</code></a> interface types.
</p>
<pre>
func NewDecoder(r io.Reader) *Decoder
func NewEncoder(w io.Writer) *Encoder
</pre>
<p>
Here's an example program that reads a series of JSON objects from standard
input, removes all but the <code>Name</code> field from each object, and then
writes the objects to standard output:
</p>
{{code "/doc/progs/json5.go" `/package main/` `$`}}
<p>
Due to the ubiquity of Readers and Writers, these <code>Encoder</code> and
<code>Decoder</code> types can be used in a broad range of scenarios, such as
reading and writing to HTTP connections, WebSockets, or files.
</p>
<p>
<b>References</b>
</p>
<p>
For more information see the <a href="/pkg/encoding/json/">json package documentation</a>. For an example usage of
json see the source files of the <a href="/pkg/net/rpc/jsonrpc/">jsonrpc package</a>.
</p>

View File

@@ -0,0 +1,78 @@
<!--{
"Title": "JSON-RPC: a tale of interfaces"
}-->
<p>
Here we present an example where Go's
<a href="/doc/effective_go.html#interfaces_and_types">interfaces</a> made it
easy to refactor some existing code to make it more flexible and extensible.
Originally, the standard library's <a href="/pkg/net/rpc/">RPC package</a> used
a custom wire format called <a href="/pkg/encoding/gob/">gob</a>. For a
particular application, we wanted to use <a href="/pkg/encoding/json/">JSON</a>
as an alternate wire format.
</p>
<p>
We first defined a pair of interfaces to describe the functionality of the
existing wire format, one for the client, and one for the server (depicted
below).
</p>
<pre>
type ServerCodec interface {
ReadRequestHeader(*Request) error
ReadRequestBody(interface{}) error
WriteResponse(*Response, interface{}) error
Close() error
}
</pre>
<p>
On the server side, we then changed two internal function signatures to accept
the <code>ServerCodec</code> interface instead of our existing
<code>gob.Encoder</code>. Here's one of them:
</p>
<pre>
func sendResponse(sending *sync.Mutex, req *Request,
reply interface{}, enc *gob.Encoder, errmsg string)
</pre>
<p>
became
</p>
<pre>
func sendResponse(sending *sync.Mutex, req *Request,
reply interface{}, enc ServerCodec, errmsg string)
</pre>
<p>
We then wrote a trivial <code>gobServerCodec</code> wrapper to reproduce the
original functionality. From there it is simple to build a
<code>jsonServerCodec</code>.
</p>
<p>
After some similar changes to the client side, this was the full extent of the
work we needed to do on the RPC package. This whole exercise took about 20
minutes! After tidying up and testing the new code, the
<a href="http://code.google.com/p/go/source/diff?spec=svn9daf796ebf1cae97b2fcf760a4ab682f1f063f29&amp;r=9daf796ebf1cae97b2fcf760a4ab682f1f063f29&amp;format=side&amp;path=/src/pkg/rpc/server.go">final changeset</a>
was submitted.
</p>
<p>
In an inheritance-oriented language like Java or C++, the obvious path would be
to generalize the RPC class, and create JsonRPC and GobRPC subclasses. However,
this approach becomes tricky if you want to make a further generalization
orthogonal to that hierarchy. (For example, if you were to implement an
alternate RPC standard). In our Go package, we took a route that is both
conceptually simpler and requires less code be written or changed.
</p>
<p>
A vital quality for any codebase is maintainability. As needs change, it is
essential to adapt your code easily and cleanly, lest it become unwieldy to work
with. We believe Go's lightweight, composition-oriented type system provides a
means of structuring code that scales.
</p>

View File

@@ -0,0 +1,649 @@
<!--{
"Title": "The Laws of Reflection",
"Template": true
}-->
<p>
Reflection in computing is the
ability of a program to examine its own structure, particularly
through types; it's a form of metaprogramming. It's also a great
source of confusion.
</p>
<p>
In this article we attempt to clarify things by explaining how
reflection works in Go. Each language's reflection model is
different (and many languages don't support it at all), but
this article is about Go, so for the rest of this article the word
"reflection" should be taken to mean "reflection in Go".
</p>
<p><b>Types and interfaces</b></p>
<p>
Because reflection builds on the type system, let's start with a
refresher about types in Go.
</p>
<p>
Go is statically typed. Every variable has a static type, that is,
exactly one type known and fixed at compile time: <code>int</code>,
<code>float32</code>, <code>*MyType</code>, <code>[]byte</code>,
and so on. If we declare
</p>
{{code "/doc/progs/interface.go" `/type MyInt/` `/STOP/`}}
<p>
then <code>i</code> has type <code>int</code> and <code>j</code>
has type <code>MyInt</code>. The variables <code>i</code> and
<code>j</code> have distinct static types and, although they have
the same underlying type, they cannot be assigned to one another
without a conversion.
</p>
<p>
One important category of type is interface types, which represent
fixed sets of methods. An interface variable can store any concrete
(non-interface) value as long as that value implements the
interface's methods. A well-known pair of examples is
<code>io.Reader</code> and <code>io.Writer</code>, the types
<code>Reader</code> and <code>Writer</code> from the
<a href="/pkg/io/">io package</a>:
</p>
{{code "/doc/progs/interface.go" `/// Reader/` `/STOP/`}}
<p>
Any type that implements a <code>Read</code> (or
<code>Write</code>) method with this signature is said to implement
<code>io.Reader</code> (or <code>io.Writer</code>). For the
purposes of this discussion, that means that a variable of type
<code>io.Reader</code> can hold any value whose type has a
<code>Read</code> method:
</p>
{{code "/doc/progs/interface.go" `/func readers/` `/STOP/`}}
<p>
It's important to be clear that whatever concrete value
<code>r</code> may hold, <code>r</code>'s type is always
<code>io.Reader</code>: Go is statically typed and the static type
of <code>r</code> is <code>io.Reader</code>.</p>
<p>
An extremely important example of an interface type is the empty
interface:
</p>
<pre>
interface{}
</pre>
<p>
It represents the empty set of methods and is satisfied by any
value at all, since any value has zero or more methods.
</p>
<p>
Some people say that Go's interfaces are dynamically typed, but
that is misleading. They are statically typed: a variable of
interface type always has the same static type, and even though at
run time the value stored in the interface variable may change
type, that value will always satisfy the interface.
</p>
<p>
We need to be precise about all this because reflection and
interfaces are closely related.
</p>
<p><b>The representation of an interface</b></p>
<p>
Russ Cox has written a
<a href="http://research.swtch.com/2009/12/go-data-structures-interfaces.html">detailed blog post</a>
about the representation of interface values in Go. It's not necessary to
repeat the full story here, but a simplified summary is in order.
</p>
<p>
A variable of interface type stores a pair: the concrete value
assigned to the variable, and that value's type descriptor.
To be more precise, the value is the underlying concrete data item
that implements the interface and the type describes the full type
of that item. For instance, after
</p>
{{code "/doc/progs/interface.go" `/func typeAssertions/` `/STOP/`}}
<p>
<code>r</code> contains, schematically, the (value, type) pair,
(<code>tty</code>, <code>*os.File</code>). Notice that the type
<code>*os.File</code> implements methods other than
<code>Read</code>; even though the interface value provides access
only to the <code>Read</code> method, the value inside carries all
the type information about that value. That's why we can do things
like this:
</p>
{{code "/doc/progs/interface.go" `/var w io.Writer/` `/STOP/`}}
<p>
The expression in this assignment is a type assertion; what it
asserts is that the item inside <code>r</code> also implements
<code>io.Writer</code>, and so we can assign it to <code>w</code>.
After the assignment, <code>w</code> will contain the pair
(<code>tty</code>, <code>*os.File</code>). That's the same pair as
was held in <code>r</code>. The static type of the interface
determines what methods may be invoked with an interface variable,
even though the concrete value inside may have a larger set of
methods.
</p>
<p>
Continuing, we can do this:
</p>
{{code "/doc/progs/interface.go" `/var empty interface{}/` `/STOP/`}}
<p>
and our empty interface value <code>e</code> will again contain
that same pair, (<code>tty</code>, <code>*os.File</code>). That's
handy: an empty interface can hold any value and contains all the
information we could ever need about that value.
</p>
<p>
(We don't need a type assertion here because it's known statically
that <code>w</code> satisfies the empty interface. In the example
where we moved a value from a <code>Reader</code> to a
<code>Writer</code>, we needed to be explicit and use a type
assertion because <code>Writer</code>'s methods are not a
subset of <code>Reader</code>'s.)
</p>
<p>
One important detail is that the pair inside an interface always
has the form (value, concrete type) and cannot have the form
(value, interface type). Interfaces do not hold interface
values.
</p>
<p>
Now we're ready to reflect.
</p>
<p><b>The first law of reflection</b></p>
<p><b>1. Reflection goes from interface value to reflection object.</b></p>
<p>
At the basic level, reflection is just a mechanism to examine the
type and value pair stored inside an interface variable. To get
started, there are two types we need to know about in
<a href="/pkg/reflect/">package reflect</a>:
<a href="/pkg/reflect/#Type">Type</a> and
<a href="/pkg/reflect/#Value">Value</a>. Those two types
give access to the contents of an interface variable, and two
simple functions, called <code>reflect.TypeOf</code> and
<code>reflect.ValueOf</code>, retrieve <code>reflect.Type</code>
and <code>reflect.Value</code> pieces out of an interface value.
(Also, from the <code>reflect.Value</code> it's easy to get
to the <code>reflect.Type</code>, but let's keep the
<code>Value</code> and <code>Type</code> concepts separate for
now.)
</p>
<p>
Let's start with <code>TypeOf</code>:
</p>
{{code "/doc/progs/interface2.go" `/package main/` `/STOP main/`}}
<p>
This program prints
</p>
<pre>
type: float64
</pre>
<p>
You might be wondering where the interface is here, since the program looks
like it's passing the <code>float64</code> variable <code>x</code>, not an
interface value, to <code>reflect.TypeOf</code>. But it's there; as
<a href="/pkg/reflect/#Type.TypeOf">godoc reports</a>, the signature of
<code>reflect.TypeOf</code> includes an empty interface:
</p>
<pre>
// TypeOf returns the reflection Type of the value in the interface{}.
func TypeOf(i interface{}) Type
</pre>
<p>
When we call <code>reflect.TypeOf(x)</code>, <code>x</code> is
first stored in an empty interface, which is then passed as the
argument; <code>reflect.TypeOf</code> unpacks that empty interface
to recover the type information.
</p>
<p>
The <code>reflect.ValueOf</code> function, of course, recovers the
value (from here on we'll elide the boilerplate and focus just on
the executable code):
</p>
{{code "/doc/progs/interface2.go" `/START f9/` `/STOP/`}}
<p>
prints
</p>
<pre>
value: &lt;float64 Value&gt;
</pre>
<p>
Both <code>reflect.Type</code> and <code>reflect.Value</code> have
lots of methods to let us examine and manipulate them. One
important example is that <code>Value</code> has a
<code>Type</code> method that returns the <code>Type</code> of a
<code>reflect.Value</code>. Another is that both <code>Type</code>
and <code>Value</code> have a <code>Kind</code> method that returns
a constant indicating what sort of item is stored:
<code>Uint</code>, <code>Float64</code>, <code>Slice</code>, and so
on. Also methods on <code>Value</code> with names like
<code>Int</code> and <code>Float</code> let us grab values (as
<code>int64</code> and <code>float64</code>) stored inside:
</p>
{{code "/doc/progs/interface2.go" `/START f1/` `/STOP/`}}
<p>
prints
</p>
<pre>
type: float64
kind is float64: true
value: 3.4
</pre>
<p>
There are also methods like <code>SetInt</code> and
<code>SetFloat</code> but to use them we need to understand
settability, the subject of the third law of reflection, discussed
below.
</p>
<p>
The reflection library has a couple of properties worth singling
out. First, to keep the API simple, the "getter" and "setter"
methods of <code>Value</code> operate on the largest type that can
hold the value: <code>int64</code> for all the signed integers, for
instance. That is, the <code>Int</code> method of
<code>Value</code> returns an <code>int64</code> and the
<code>SetInt</code> value takes an <code>int64</code>; it may be
necessary to convert to the actual type involved:
</p>
{{code "/doc/progs/interface2.go" `/START f2/` `/STOP/`}}
<p>
The second property is that the <code>Kind</code> of a reflection
object describes the underlying type, not the static type. If a
reflection object contains a value of a user-defined integer type,
as in
</p>
{{code "/doc/progs/interface2.go" `/START f3/` `/STOP/`}}
<p>
the <code>Kind</code> of <code>v</code> is still
<code>reflect.Int</code>, even though the static type of
<code>x</code> is <code>MyInt</code>, not <code>int</code>. In
other words, the <code>Kind</code> cannot discriminate an int from
a <code>MyInt</code> even though the <code>Type</code> can.
</p>
<p><b>The second law of reflection</b></p>
<p><b>2. Reflection goes from reflection object to interface
value.</b></p>
<p>
Like physical reflection, reflection in Go generates its own
inverse.
</p>
<p>
Given a <code>reflect.Value</code> we can recover an interface
value using the <code>Interface</code> method; in effect the method
packs the type and value information back into an interface
representation and returns the result:
</p>
<pre>
// Interface returns v's value as an interface{}.
func (v Value) Interface() interface{}
</pre>
<p>
As a consequence we can say
</p>
{{code "/doc/progs/interface2.go" `/START f3b/` `/STOP/`}}
<p>
to print the <code>float64</code> value represented by the
reflection object <code>v</code>.
</p>
<p>
We can do even better, though. The arguments to
<code>fmt.Println</code>, <code>fmt.Printf</code> and so on are all
passed as empty interface values, which are then unpacked by the
<code>fmt</code> package internally just as we have been doing in
the previous examples. Therefore all it takes to print the contents
of a <code>reflect.Value</code> correctly is to pass the result of
the <code>Interface</code> method to the formatted print
routine:
</p>
{{code "/doc/progs/interface2.go" `/START f3c/` `/STOP/`}}
<p>
(Why not <code>fmt.Println(v)</code>? Because <code>v</code> is a
<code>reflect.Value</code>; we want the concrete value it holds.)
Since our value is a <code>float64</code>, we can even use a
floating-point format if we want:
</p>
{{code "/doc/progs/interface2.go" `/START f3d/` `/STOP/`}}
<p>
and get in this case
</p>
<pre>
3.4e+00
</pre>
<p>
Again, there's no need to type-assert the result of
<code>v.Interface()</code> to <code>float64</code>; the empty
interface value has the concrete value's type information inside
and <code>Printf</code> will recover it.
</p>
<p>
In short, the <code>Interface</code> method is the inverse of the
<code>ValueOf</code> function, except that its result is always of
static type <code>interface{}</code>.
</p>
<p>
Reiterating: Reflection goes from interface values to reflection
objects and back again.
</p>
<p><b>The third law of reflection</b></p>
<p><b>3. To modify a reflection object, the value must be settable.</b></p>
<p>
The third law is the most subtle and confusing, but it's easy
enough to understand if we start from first principles.
</p>
<p>
Here is some code that does not work, but is worth studying.
</p>
{{code "/doc/progs/interface2.go" `/START f4/` `/STOP/`}}
<p>
If you run this code, it will panic with the cryptic message
</p>
<pre>
panic: reflect.Value.SetFloat using unaddressable value
</pre>
<p>
The problem is not that the value <code>7.1</code> is not
addressable; it's that <code>v</code> is not settable. Settability
is a property of a reflection <code>Value</code>, and not all
reflection <code>Values</code> have it.
</p>
<p>
The <code>CanSet</code> method of <code>Value</code> reports the
settability of a <code>Value</code>; in our case,
</p>
{{code "/doc/progs/interface2.go" `/START f5/` `/STOP/`}}
<p>
prints
</p>
<pre>
settability of v: false
</pre>
<p>
It is an error to call a <code>Set</code> method on an non-settable
<code>Value</code>. But what is settability?
</p>
<p>
Settability is a bit like addressability, but stricter. It's the
property that a reflection object can modify the actual storage
that was used to create the reflection object. Settability is
determined by whether the reflection object holds the original
item. When we say
</p>
{{code "/doc/progs/interface2.go" `/START f6/` `/STOP/`}}
<p>
we pass a <em>copy</em> of <code>x</code> to
<code>reflect.ValueOf</code>, so the interface value created as the
argument to <code>reflect.ValueOf</code> is a <em>copy</em> of
<code>x</code>, not <code>x</code> itself. Thus, if the
statement
</p>
{{code "/doc/progs/interface2.go" `/START f6b/` `/STOP/`}}
<p>
were allowed to succeed, it would not update <code>x</code>, even
though <code>v</code> looks like it was created from
<code>x</code>. Instead, it would update the copy of <code>x</code>
stored inside the reflection value and <code>x</code> itself would
be unaffected. That would be confusing and useless, so it is
illegal, and settability is the property used to avoid this
issue.
</p>
<p>
If this seems bizarre, it's not. It's actually a familiar situation
in unusual garb. Think of passing <code>x</code> to a
function:
</p>
<pre>
f(x)
</pre>
<p>
We would not expect <code>f</code> to be able to modify
<code>x</code> because we passed a copy of <code>x</code>'s value,
not <code>x</code> itself. If we want <code>f</code> to modify
<code>x</code> directly we must pass our function the address of
<code>x</code> (that is, a pointer to <code>x</code>):</p>
<p>
<code>f(&amp;x)</code>
</p>
<p>
This is straightforward and familiar, and reflection works the same
way. If we want to modify <code>x</code> by reflection, we must
give the reflection library a pointer to the value we want to
modify.
</p>
<p>
Let's do that. First we initialize <code>x</code> as usual
and then create a reflection value that points to it, called
<code>p</code>.
</p>
{{code "/doc/progs/interface2.go" `/START f7/` `/STOP/`}}
<p>
The output so far is
</p>
<pre>
type of p: *float64
settability of p: false
</pre>
<p>
The reflection object <code>p</code> isn't settable, but it's not
<code>p</code> we want to set, it's (in effect) <code>*p</code>. To
get to what <code>p</code> points to, we call the <code>Elem</code>
method of <code>Value</code>, which indirects through the pointer,
and save the result in a reflection <code>Value</code> called
<code>v</code>:
</p>
{{code "/doc/progs/interface2.go" `/START f7b/` `/STOP/`}}
<p>
Now <code>v</code> is a settable reflection object, as the output
demonstrates,
</p>
<pre>
settability of v: true
</pre>
<p>
and since it represents <code>x</code>, we are finally able to use
<code>v.SetFloat</code> to modify the value of
<code>x</code>:
</p>
{{code "/doc/progs/interface2.go" `/START f7c/` `/STOP/`}}
<p>
The output, as expected, is
</p>
<pre>
7.1
7.1
</pre>
<p>
Reflection can be hard to understand but it's doing exactly what
the language does, albeit through reflection <code>Types</code> and
<code>Values</code> that can disguise what's going on. Just keep in
mind that reflection Values need the address of something in order
to modify what they represent.
</p>
<p><b>Structs</b></p>
<p>
In our previous example <code>v</code> wasn't a pointer itself, it
was just derived from one. A common way for this situation to arise
is when using reflection to modify the fields of a structure. As
long as we have the address of the structure, we can modify its
fields.
</p>
<p>
Here's a simple example that analyzes a struct value, <code>t</code>. We create
the reflection object with the address of the struct because we'll want to
modify it later. Then we set <code>typeOfT</code> to its type and iterate over
the fields using straightforward method calls
(see <a href="/pkg/reflect/">package reflect</a> for details).
Note that we extract the names of the fields from the struct type, but the
fields themselves are regular <code>reflect.Value</code> objects.
</p>
{{code "/doc/progs/interface2.go" `/START f8/` `/STOP/`}}
<p>
The output of this program is
</p>
<pre>
0: A int = 23
1: B string = skidoo
</pre>
<p>
There's one more point about settability introduced in
passing here: the field names of <code>T</code> are upper case
(exported) because only exported fields of a struct are
settable.
</p>
<p>
Because <code>s</code> contains a settable reflection object, we
can modify the fields of the structure.
</p>
{{code "/doc/progs/interface2.go" `/START f8b/` `/STOP/`}}
<p>
And here's the result:
</p>
<pre>
t is now {77 Sunset Strip}
</pre>
<p>
If we modified the program so that <code>s</code> was created from
<code>t</code>, not <code>&amp;t</code>, the calls to
<code>SetInt</code> and <code>SetString</code> would fail as the
fields of <code>t</code> would not be settable.
</p>
<p><b>Conclusion</b></p>
<p>
Here again are the laws of reflection:
</p>
<ol>
<li>Reflection goes from interface value to reflection
object.</li>
<li>Reflection goes from reflection object to interface
value.</li>
<li>To modify a reflection object, the value must be settable.</li>
</ol>
<p>
Once you understand these laws reflection in Go becomes much easier
to use, although it remains subtle. It's a powerful tool that
should be used with care and avoided unless strictly
necessary.
</p>
<p>
There's plenty more to reflection that we haven't covered &mdash;
sending and receiving on channels, allocating memory, using slices
and maps, calling methods and functions &mdash; but this post is
long enough. We'll cover some of those topics in a later
article.
</p>

View File

@@ -1,440 +0,0 @@
<!--{
"Title": "Data Race Detector",
"Template": true
}-->
<h2 id="Introduction">Introduction</h2>
<p>
Data races are among the most common and hardest to debug types of bugs in concurrent systems.
A data race occurs when two goroutines access the same variable concurrently and at least one of the accesses is a write.
See the <a href="/ref/mem/">The Go Memory Model</a> for details.
</p>
<p>
Here is an example of a data race that can lead to crashes and memory corruption:
</p>
<pre>
func main() {
c := make(chan bool)
m := make(map[string]string)
go func() {
m["1"] = "a" // First conflicting access.
c &lt;- true
}()
m["2"] = "b" // Second conflicting access.
&lt;-c
for k, v := range m {
fmt.Println(k, v)
}
}
</pre>
<h2 id="Usage">Usage</h2>
<p>
To help diagnose such bugs, Go includes a built-in data race detector.
To use it, add the <code>-race</code> flag to the go command:
</p>
<pre>
$ go test -race mypkg // to test the package
$ go run -race mysrc.go // to run the source file
$ go build -race mycmd // to build the command
$ go install -race mypkg // to install the package
</pre>
<h2 id="Report_Format">Report Format</h2>
<p>
When the race detector finds a data race in the program, it prints a report.
The report contains stack traces for conflicting accesses, as well as stacks where the involved goroutines were created.
Here is an example:
</p>
<pre>
WARNING: DATA RACE
Read by goroutine 185:
net.(*pollServer).AddFD()
src/net/fd_unix.go:89 +0x398
net.(*pollServer).WaitWrite()
src/net/fd_unix.go:247 +0x45
net.(*netFD).Write()
src/net/fd_unix.go:540 +0x4d4
net.(*conn).Write()
src/net/net.go:129 +0x101
net.func·060()
src/net/timeout_test.go:603 +0xaf
Previous write by goroutine 184:
net.setWriteDeadline()
src/net/sockopt_posix.go:135 +0xdf
net.setDeadline()
src/net/sockopt_posix.go:144 +0x9c
net.(*conn).SetDeadline()
src/net/net.go:161 +0xe3
net.func·061()
src/net/timeout_test.go:616 +0x3ed
Goroutine 185 (running) created at:
net.func·061()
src/net/timeout_test.go:609 +0x288
Goroutine 184 (running) created at:
net.TestProlongTimeout()
src/net/timeout_test.go:618 +0x298
testing.tRunner()
src/testing/testing.go:301 +0xe8
</pre>
<h2 id="Options">Options</h2>
<p>
The <code>GORACE</code> environment variable sets race detector options.
The format is:
</p>
<pre>
GORACE="option1=val1 option2=val2"
</pre>
<p>
The options are:
</p>
<ul>
<li>
<code>log_path</code> (default <code>stderr</code>): The race detector writes
its report to a file named <code>log_path.<em>pid</em></code>.
The special names <code>stdout</code>
and <code>stderr</code> cause reports to be written to standard output and
standard error, respectively.
</li>
<li>
<code>exitcode</code> (default <code>66</code>): The exit status to use when
exiting after a detected race.
</li>
<li>
<code>strip_path_prefix</code> (default <code>""</code>): Strip this prefix
from all reported file paths, to make reports more concise.
</li>
<li>
<code>history_size</code> (default <code>1</code>): The per-goroutine memory
access history is <code>32K * 2**history_size elements</code>.
Increasing this value can avoid a "failed to restore the stack" error in reports, at the
cost of increased memory usage.
</li>
<li>
<code>halt_on_error</code> (default <code>0</code>): Controls whether the program
exits after reporting first data race.
</li>
<li>
<code>atexit_sleep_ms</code> (default <code>1000</code>): Amount of milliseconds
to sleep in the main goroutine before exiting.
</li>
</ul>
<p>
Example:
</p>
<pre>
$ GORACE="log_path=/tmp/race/report strip_path_prefix=/my/go/sources/" go test -race
</pre>
<h2 id="Excluding_Tests">Excluding Tests</h2>
<p>
When you build with <code>-race</code> flag, the <code>go</code> command defines additional
<a href="/pkg/go/build/#hdr-Build_Constraints">build tag</a> <code>race</code>.
You can use the tag to exclude some code and tests when running the race detector.
Some examples:
</p>
<pre>
// +build !race
package foo
// The test contains a data race. See issue 123.
func TestFoo(t *testing.T) {
// ...
}
// The test fails under the race detector due to timeouts.
func TestBar(t *testing.T) {
// ...
}
// The test takes too long under the race detector.
func TestBaz(t *testing.T) {
// ...
}
</pre>
<h2 id="How_To_Use">How To Use</h2>
<p>
To start, run your tests using the race detector (<code>go test -race</code>).
The race detector only finds races that happen at runtime, so it can't find
races in code paths that are not executed.
If your tests have incomplete coverage,
you may find more races by running a binary built with <code>-race</code> under a realistic
workload.
</p>
<h2 id="Typical_Data_Races">Typical Data Races</h2>
<p>
Here are some typical data races. All of them can be detected with the race detector.
</p>
<h3 id="Race_on_loop_counter">Race on loop counter</h3>
<pre>
func main() {
var wg sync.WaitGroup
wg.Add(5)
for i := 0; i < 5; i++ {
go func() {
fmt.Println(i) // Not the 'i' you are looking for.
wg.Done()
}()
}
wg.Wait()
}
</pre>
<p>
The variable <code>i</code> in the function literal is the same variable used by the loop, so
the read in the goroutine races with the loop increment.
(This program typically prints 55555, not 01234.)
The program can be fixed by making a copy of the variable:
</p>
<pre>
func main() {
var wg sync.WaitGroup
wg.Add(5)
for i := 0; i < 5; i++ {
go func(j int) {
fmt.Println(j) // Good. Read local copy of the loop counter.
wg.Done()
}(i)
}
wg.Wait()
}
</pre>
<h3 id="Accidentally_shared_variable">Accidentally shared variable</h3>
<pre>
// ParallelWrite writes data to file1 and file2, returns the errors.
func ParallelWrite(data []byte) chan error {
res := make(chan error, 2)
f1, err := os.Create("file1")
if err != nil {
res &lt;- err
} else {
go func() {
// This err is shared with the main goroutine,
// so the write races with the write below.
_, err = f1.Write(data)
res &lt;- err
f1.Close()
}()
}
f2, err := os.Create("file2") // The second conflicting write to err.
if err != nil {
res &lt;- err
} else {
go func() {
_, err = f2.Write(data)
res &lt;- err
f2.Close()
}()
}
return res
}
</pre>
<p>
The fix is to introduce new variables in the goroutines (note the use of <code>:=</code>):
</p>
<pre>
...
_, err := f1.Write(data)
...
_, err := f2.Write(data)
...
</pre>
<h3 id="Unprotected_global_variable">Unprotected global variable</h3>
<p>
If the following code is called from several goroutines, it leads to races on the <code>service</code> map.
Concurrent reads and writes of the same map are not safe:
</p>
<pre>
var service map[string]net.Addr
func RegisterService(name string, addr net.Addr) {
service[name] = addr
}
func LookupService(name string) net.Addr {
return service[name]
}
</pre>
<p>
To make the code safe, protect the accesses with a mutex:
</p>
<pre>
var (
service map[string]net.Addr
serviceMu sync.Mutex
)
func RegisterService(name string, addr net.Addr) {
serviceMu.Lock()
defer serviceMu.Unlock()
service[name] = addr
}
func LookupService(name string) net.Addr {
serviceMu.Lock()
defer serviceMu.Unlock()
return service[name]
}
</pre>
<h3 id="Primitive_unprotected_variable">Primitive unprotected variable</h3>
<p>
Data races can happen on variables of primitive types as well (<code>bool</code>, <code>int</code>, <code>int64</code>, etc.),
as in this example:
</p>
<pre>
type Watchdog struct{ last int64 }
func (w *Watchdog) KeepAlive() {
w.last = time.Now().UnixNano() // First conflicting access.
}
func (w *Watchdog) Start() {
go func() {
for {
time.Sleep(time.Second)
// Second conflicting access.
if w.last < time.Now().Add(-10*time.Second).UnixNano() {
fmt.Println("No keepalives for 10 seconds. Dying.")
os.Exit(1)
}
}
}()
}
</pre>
<p>
Even such "innocent" data races can lead to hard-to-debug problems caused by
non-atomicity of the memory accesses,
interference with compiler optimizations,
or reordering issues accessing processor memory .
</p>
<p>
A typical fix for this race is to use a channel or a mutex.
To preserve the lock-free behavior, one can also use the
<a href="/pkg/sync/atomic/"><code>sync/atomic</code></a> package.
</p>
<pre>
type Watchdog struct{ last int64 }
func (w *Watchdog) KeepAlive() {
atomic.StoreInt64(&amp;w.last, time.Now().UnixNano())
}
func (w *Watchdog) Start() {
go func() {
for {
time.Sleep(time.Second)
if atomic.LoadInt64(&amp;w.last) < time.Now().Add(-10*time.Second).UnixNano() {
fmt.Println("No keepalives for 10 seconds. Dying.")
os.Exit(1)
}
}
}()
}
</pre>
<h3 id="Unsynchronized_send_and_close_operations">Unsynchronized send and close operations</h3>
<p>
As this example demonstrates, unsynchronized send and close operations
on the same channel can also be a race condition:
</p>
<pre>
c := make(chan struct{}) // or buffered channel
// The race detector cannot derive the happens before relation
// for the following send and close operations. These two operations
// are unsynchronized and happen concurrently.
go func() { c <- struct{}{} }()
close(c)
</pre>
<p>
According to the Go memory model, a send on a channel happens before
the corresponding receive from that channel completes. To synchronize
send and close operations, use a receive operation that guarantees
the send is done before the close:
</p>
<pre>
c := make(chan struct{}) // or buffered channel
go func() { c <- struct{}{} }()
<-c
close(c)
</pre>
<h2 id="Supported_Systems">Supported Systems</h2>
<p>
The race detector runs on
<code>linux/amd64</code>, <code>linux/ppc64le</code>,
<code>linux/arm64</code>, <code>freebsd/amd64</code>,
<code>netbsd/amd64</code>, <code>darwin/amd64</code>,
and <code>windows/amd64</code>.
</p>
<h2 id="Runtime_Overheads">Runtime Overhead</h2>
<p>
The cost of race detection varies by program, but for a typical program, memory
usage may increase by 5-10x and execution time by 2-20x.
</p>
<p>
The race detector currently allocates an extra 8 bytes per <code>defer</code>
and <code>recover</code> statement. Those extra allocations <a
href="https://golang.org/issue/26813">are not recovered until the goroutine
exits</a>. This means that if you have a long-running goroutine that is
periodically issuing <code>defer</code> and <code>recover</code> calls,
the program memory usage may grow without bound. These memory allocations
will not show up in the output of <code>runtime.ReadMemStats</code> or
<code>runtime/pprof</code>.
</p>

BIN
doc/articles/slice-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
doc/articles/slice-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

BIN
doc/articles/slice-3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -0,0 +1,438 @@
<!--{
"Title": "Slices: usage and internals",
"Template": true
}-->
<p>
Go's slice type provides a convenient and efficient means of working with
sequences of typed data. Slices are analogous to arrays in other languages, but
have some unusual properties. This article will look at what slices are and how
they are used.
</p>
<p>
<b>Arrays</b>
</p>
<p>
The slice type is an abstraction built on top of Go's array type, and so to
understand slices we must first understand arrays.
</p>
<p>
An array type definition specifies a length and an element type. For example,
the type <code>[4]int</code> represents an array of four integers. An array's
size is fixed; its length is part of its type (<code>[4]int</code> and
<code>[5]int</code> are distinct, incompatible types). Arrays can be indexed in
the usual way, so the expression <code>s[n]</code> accesses the <i>n</i>th
element:
</p>
<pre>
var a [4]int
a[0] = 1
i := a[0]
// i == 1
</pre>
<p>
Arrays do not need to be initialized explicitly; the zero value of an array is
a ready-to-use array whose elements are themselves zeroed:
</p>
<pre>
// a[2] == 0, the zero value of the int type
</pre>
<p>
The in-memory representation of <code>[4]int</code> is just four integer values laid out sequentially:
</p>
<p>
<img src="slice-array.png">
</p>
<p>
Go's arrays are values. An array variable denotes the entire array; it is not a
pointer to the first array element (as would be the case in C). This means
that when you assign or pass around an array value you will make a copy of its
contents. (To avoid the copy you could pass a <i>pointer</i> to the array, but
then that's a pointer to an array, not an array.) One way to think about arrays
is as a sort of struct but with indexed rather than named fields: a fixed-size
composite value.
</p>
<p>
An array literal can be specified like so:
</p>
<pre>
b := [2]string{"Penn", "Teller"}
</pre>
<p>
Or, you can have the compiler count the array elements for you:
</p>
<pre>
b := [...]string{"Penn", "Teller"}
</pre>
<p>
In both cases, the type of <code>b</code> is <code>[2]string</code>.
</p>
<p>
<b>Slices</b>
</p>
<p>
Arrays have their place, but they're a bit inflexible, so you don't see them
too often in Go code. Slices, though, are everywhere. They build on arrays to
provide great power and convenience.
</p>
<p>
The type specification for a slice is <code>[]T</code>, where <code>T</code> is
the type of the elements of the slice. Unlike an array type, a slice type has
no specified length.
</p>
<p>
A slice literal is declared just like an array literal, except you leave out
the element count:
</p>
<pre>
letters := []string{"a", "b", "c", "d"}
</pre>
<p>
A slice can be created with the built-in function called <code>make</code>,
which has the signature,
</p>
<pre>
func make([]T, len, cap) []T
</pre>
<p>
where T stands for the element type of the slice to be created. The
<code>make</code> function takes a type, a length, and an optional capacity.
When called, <code>make</code> allocates an array and returns a slice that
refers to that array.
</p>
<pre>
var s []byte
s = make([]byte, 5, 5)
// s == []byte{0, 0, 0, 0, 0}
</pre>
<p>
When the capacity argument is omitted, it defaults to the specified length.
Here's a more succinct version of the same code:
</p>
<pre>
s := make([]byte, 5)
</pre>
<p>
The length and capacity of a slice can be inspected using the built-in
<code>len</code> and <code>cap</code> functions.
</p>
<pre>
len(s) == 5
cap(s) == 5
</pre>
<p>
The next two sections discuss the relationship between length and capacity.
</p>
<p>
The zero value of a slice is <code>nil</code>. The <code>len</code> and
<code>cap</code> functions will both return 0 for a nil slice.
</p>
<p>
A slice can also be formed by "slicing" an existing slice or array. Slicing is
done by specifying a half-open range with two indices separated by a colon. For
example, the expression <code>b[1:4]</code> creates a slice including elements
1 through 3 of <code>b</code> (the indices of the resulting slice will be 0
through 2).
</p>
<pre>
b := []byte{'g', 'o', 'l', 'a', 'n', 'g'}
// b[1:4] == []byte{'o', 'l', 'a'}, sharing the same storage as b
</pre>
<p>
The start and end indices of a slice expression are optional; they default to zero and the slice's length respectively:
</p>
<pre>
// b[:2] == []byte{'g', 'o'}
// b[2:] == []byte{'l', 'a', 'n', 'g'}
// b[:] == b
</pre>
<p>
This is also the syntax to create a slice given an array:
</p>
<pre>
x := [3]string{"Лайка", "Белка", "Стрелка"}
s := x[:] // a slice referencing the storage of x
</pre>
<p>
<b>Slice internals</b>
</p>
<p>
A slice is a descriptor of an array segment. It consists of a pointer to the
array, the length of the segment, and its capacity (the maximum length of the
segment).
</p>
<p>
<img src="slice-struct.png">
</p>
<p>
Our variable <code>s</code>, created earlier by <code>make([]byte, 5)</code>,
is structured like this:
</p>
<p>
<img src="slice-1.png">
</p>
<p>
The length is the number of elements referred to by the slice. The capacity is
the number of elements in the underlying array (beginning at the element
referred to by the slice pointer). The distinction between length and capacity
will be made clear as we walk through the next few examples.
</p>
<p>
As we slice <code>s</code>, observe the changes in the slice data structure and
their relation to the underlying array:
</p>
<pre>
s = s[2:4]
</pre>
<p>
<img src="slice-2.png">
</p>
<p>
Slicing does not copy the slice's data. It creates a new slice value that
points to the original array. This makes slice operations as efficient as
manipulating array indices. Therefore, modifying the <i>elements</i> (not the
slice itself) of a re-slice modifies the elements of the original slice:
</p>
<pre>
d := []byte{'r', 'o', 'a', 'd'}
e := d[2:]
// e == []byte{'a', 'd'}
e[1] = 'm'
// e == []byte{'a', 'm'}
// d == []byte{'r', 'o', 'a', 'm'}
</pre>
<p>
Earlier we sliced <code>s</code> to a length shorter than its capacity. We can
grow s to its capacity by slicing it again:
</p>
<pre>
s = s[:cap(s)]
</pre>
<p>
<img src="slice-3.png">
</p>
<p>
A slice cannot be grown beyond its capacity. Attempting to do so will cause a
runtime panic, just as when indexing outside the bounds of a slice or array.
Similarly, slices cannot be re-sliced below zero to access earlier elements in
the array.
</p>
<p>
<b>Growing slices (the copy and append functions)</b>
</p>
<p>
To increase the capacity of a slice one must create a new, larger slice and
copy the contents of the original slice into it. This technique is how dynamic
array implementations from other languages work behind the scenes. The next
example doubles the capacity of <code>s</code> by making a new slice,
<code>t</code>, copying the contents of <code>s</code> into <code>t</code>, and
then assigning the slice value <code>t</code> to <code>s</code>:
</p>
<pre>
t := make([]byte, len(s), (cap(s)+1)*2) // +1 in case cap(s) == 0
for i := range s {
t[i] = s[i]
}
s = t
</pre>
<p>
The looping piece of this common operation is made easier by the built-in copy
function. As the name suggests, copy copies data from a source slice to a
destination slice. It returns the number of elements copied.
</p>
<pre>
func copy(dst, src []T) int
</pre>
<p>
The <code>copy</code> function supports copying between slices of different
lengths (it will copy only up to the smaller number of elements). In addition,
<code>copy</code> can handle source and destination slices that share the same
underlying array, handling overlapping slices correctly.
</p>
<p>
Using <code>copy</code>, we can simplify the code snippet above:
</p>
<pre>
t := make([]byte, len(s), (cap(s)+1)*2)
copy(t, s)
s = t
</pre>
<p>
A common operation is to append data to the end of a slice. This function
appends byte elements to a slice of bytes, growing the slice if necessary, and
returns the updated slice value:
</p>
{{code "/doc/progs/slices.go" `/AppendByte/` `/STOP/`}}
<p>
One could use <code>AppendByte</code> like this:
</p>
<pre>
p := []byte{2, 3, 5}
p = AppendByte(p, 7, 11, 13)
// p == []byte{2, 3, 5, 7, 11, 13}
</pre>
<p>
Functions like <code>AppendByte</code> are useful because they offer complete
control over the way the slice is grown. Depending on the characteristics of
the program, it may be desirable to allocate in smaller or larger chunks, or to
put a ceiling on the size of a reallocation.
</p>
<p>
But most programs don't need complete control, so Go provides a built-in
<code>append</code> function that's good for most purposes; it has the
signature
</p>
<pre>
func append(s []T, x ...T) []T
</pre>
<p>
The <code>append</code> function appends the elements <code>x</code> to the end
of the slice <code>s</code>, and grows the slice if a greater capacity is
needed.
</p>
<pre>
a := make([]int, 1)
// a == []int{0}
a = append(a, 1, 2, 3)
// a == []int{0, 1, 2, 3}
</pre>
<p>
To append one slice to another, use <code>...</code> to expand the second
argument to a list of arguments.
</p>
<pre>
a := []string{"John", "Paul"}
b := []string{"George", "Ringo", "Pete"}
a = append(a, b...) // equivalent to "append(a, b[0], b[1], b[2])"
// a == []string{"John", "Paul", "George", "Ringo", "Pete"}
</pre>
<p>
Since the zero value of a slice (<code>nil</code>) acts like a zero-length
slice, you can declare a slice variable and then append to it in a loop:
</p>
{{code "/doc/progs/slices.go" `/Filter/` `/STOP/`}}
<p>
<b>A possible "gotcha"</b>
</p>
<p>
As mentioned earlier, re-slicing a slice doesn't make a copy of the underlying
array. The full array will be kept in memory until it is no longer referenced.
Occasionally this can cause the program to hold all the data in memory when
only a small piece of it is needed.
</p>
<p>
For example, this <code>FindDigits</code> function loads a file into memory and
searches it for the first group of consecutive numeric digits, returning them
as a new slice.
</p>
{{code "/doc/progs/slices.go" `/digit/` `/STOP/`}}
<p>
This code behaves as advertised, but the returned <code>[]byte</code> points
into an array containing the entire file. Since the slice references the
original array, as long as the slice is kept around the garbage collector can't
release the array; the few useful bytes of the file keep the entire contents in
memory.
</p>
<p>
To fix this problem one can copy the interesting data to a new slice before
returning it:
</p>
{{code "/doc/progs/slices.go" `/CopyDigits/` `/STOP/`}}
<p>
A more concise version of this function could be constructed by using
<code>append</code>. This is left as an exercise for the reader.
</p>
<p>
<b>Further Reading</b>
</p>
<p>
<a href="/doc/effective_go.html">Effective Go</a> contains an
in-depth treatment of <a href="/doc/effective_go.html#slices">slices</a>
and <a href="/doc/effective_go.html#arrays">arrays</a>,
and the Go <a href="/doc/go_spec.html">language specification</a>
defines <a href="/doc/go_spec.html#Slice_types">slices</a> and their
<a href="/doc/go_spec.html#Length_and_capacity">associated</a>
<a href="/doc/go_spec.html#Making_slices_maps_and_channels">helper</a>
<a href="/doc/go_spec.html#Appending_and_copying_slices">functions</a>.
</p>

View File

@@ -0,0 +1,20 @@
# Copyright 2010 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
all: index.html
CLEANFILES:=srcextract.bin htmlify.bin get.bin
index.html: wiki.html srcextract.bin htmlify.bin
PATH=.:$$PATH awk '/^!/{system(substr($$0,2)); next} {print}' < wiki.html | tr -d '\r' > index.html
test: get.bin
bash ./test.sh
rm -f get.6 get.bin
%.bin: %.go
go build -o $@ $^
clean:
rm -f $(CLEANFILES)

View File

@@ -2,15 +2,12 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build ignore
package main
import (
"errors"
"html/template"
"io/ioutil"
"log"
"net/http"
"regexp"
)
@@ -86,20 +83,22 @@ func renderTemplate(w http.ResponseWriter, tmpl string, p *Page) {
}
}
var validPath = regexp.MustCompile("^/(edit|save|view)/([a-zA-Z0-9]+)$")
const lenPath = len("/view/")
func getTitle(w http.ResponseWriter, r *http.Request) (string, error) {
m := validPath.FindStringSubmatch(r.URL.Path)
if m == nil {
var titleValidator = regexp.MustCompile("^[a-zA-Z0-9]+$")
func getTitle(w http.ResponseWriter, r *http.Request) (title string, err error) {
title = r.URL.Path[lenPath:]
if !titleValidator.MatchString(title) {
http.NotFound(w, r)
return "", errors.New("invalid Page Title")
err = errors.New("Invalid Page Title")
}
return m[2], nil // The title is the second subexpression.
return
}
func main() {
http.HandleFunc("/view/", viewHandler)
http.HandleFunc("/edit/", editHandler)
http.HandleFunc("/save/", saveHandler)
log.Fatal(http.ListenAndServe(":8080", nil))
http.ListenAndServe(":8080", nil)
}

View File

@@ -2,14 +2,11 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build ignore
package main
import (
"html/template"
"io/ioutil"
"log"
"net/http"
)
@@ -32,8 +29,10 @@ func loadPage(title string) (*Page, error) {
return &Page{Title: title, Body: body}, nil
}
const lenPath = len("/view/")
func editHandler(w http.ResponseWriter, r *http.Request) {
title := r.URL.Path[len("/edit/"):]
title := r.URL.Path[lenPath:]
p, err := loadPage(title)
if err != nil {
p = &Page{Title: title}
@@ -43,7 +42,7 @@ func editHandler(w http.ResponseWriter, r *http.Request) {
}
func viewHandler(w http.ResponseWriter, r *http.Request) {
title := r.URL.Path[len("/view/"):]
title := r.URL.Path[lenPath:]
p, _ := loadPage(title)
t, _ := template.ParseFiles("view.html")
t.Execute(w, p)
@@ -52,5 +51,5 @@ func viewHandler(w http.ResponseWriter, r *http.Request) {
func main() {
http.HandleFunc("/view/", viewHandler)
http.HandleFunc("/edit/", editHandler)
log.Fatal(http.ListenAndServe(":8080", nil))
http.ListenAndServe(":8080", nil)
}

View File

@@ -2,14 +2,11 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build ignore
package main
import (
"html/template"
"io/ioutil"
"log"
"net/http"
"regexp"
)
@@ -73,16 +70,18 @@ func renderTemplate(w http.ResponseWriter, tmpl string, p *Page) {
}
}
var validPath = regexp.MustCompile("^/(edit|save|view)/([a-zA-Z0-9]+)$")
const lenPath = len("/view/")
var titleValidator = regexp.MustCompile("^[a-zA-Z0-9]+$")
func makeHandler(fn func(http.ResponseWriter, *http.Request, string)) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
m := validPath.FindStringSubmatch(r.URL.Path)
if m == nil {
title := r.URL.Path[lenPath:]
if !titleValidator.MatchString(title) {
http.NotFound(w, r)
return
}
fn(w, r, m[2])
fn(w, r, title)
}
}
@@ -90,5 +89,5 @@ func main() {
http.HandleFunc("/view/", makeHandler(viewHandler))
http.HandleFunc("/edit/", makeHandler(editHandler))
http.HandleFunc("/save/", makeHandler(saveHandler))
log.Fatal(http.ListenAndServe(":8080", nil))
http.ListenAndServe(":8080", nil)
}

View File

@@ -2,14 +2,11 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build ignore
package main
import (
"html/template"
"io/ioutil"
"log"
"net/http"
)
@@ -32,8 +29,10 @@ func loadPage(title string) (*Page, error) {
return &Page{Title: title, Body: body}, nil
}
const lenPath = len("/view/")
func editHandler(w http.ResponseWriter, r *http.Request) {
title := r.URL.Path[len("/edit/"):]
title := r.URL.Path[lenPath:]
p, err := loadPage(title)
if err != nil {
p = &Page{Title: title}
@@ -42,13 +41,13 @@ func editHandler(w http.ResponseWriter, r *http.Request) {
}
func viewHandler(w http.ResponseWriter, r *http.Request) {
title := r.URL.Path[len("/view/"):]
title := r.URL.Path[lenPath:]
p, _ := loadPage(title)
renderTemplate(w, "view", p)
}
func saveHandler(w http.ResponseWriter, r *http.Request) {
title := r.URL.Path[len("/save/"):]
title := r.URL.Path[lenPath:]
body := r.FormValue("body")
p := &Page{Title: title, Body: []byte(body)}
p.save()
@@ -64,5 +63,5 @@ func main() {
http.HandleFunc("/view/", viewHandler)
http.HandleFunc("/edit/", editHandler)
http.HandleFunc("/save/", saveHandler)
log.Fatal(http.ListenAndServe(":8080", nil))
http.ListenAndServe(":8080", nil)
}

View File

@@ -2,14 +2,11 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build ignore
package main
import (
"html/template"
"io/ioutil"
"log"
"net/http"
"regexp"
)
@@ -70,16 +67,18 @@ func renderTemplate(w http.ResponseWriter, tmpl string, p *Page) {
}
}
var validPath = regexp.MustCompile("^/(edit|save|view)/([a-zA-Z0-9]+)$")
const lenPath = len("/view/")
var titleValidator = regexp.MustCompile("^[a-zA-Z0-9]+$")
func makeHandler(fn func(http.ResponseWriter, *http.Request, string)) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
m := validPath.FindStringSubmatch(r.URL.Path)
if m == nil {
title := r.URL.Path[lenPath:]
if !titleValidator.MatchString(title) {
http.NotFound(w, r)
return
}
fn(w, r, m[2])
fn(w, r, title)
}
}
@@ -87,6 +86,5 @@ func main() {
http.HandleFunc("/view/", makeHandler(viewHandler))
http.HandleFunc("/edit/", makeHandler(editHandler))
http.HandleFunc("/save/", makeHandler(saveHandler))
log.Fatal(http.ListenAndServe(":8080", nil))
http.ListenAndServe(":8080", nil)
}

View File

@@ -1,24 +0,0 @@
// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build ignore
package main
import (
"fmt"
"log"
"net"
"net/http"
)
func serve() error {
l, err := net.Listen("tcp", "127.0.0.1:0")
if err != nil {
log.Fatal(err)
}
fmt.Println(l.Addr().String())
s := &http.Server{}
return s.Serve(l)
}

54
doc/articles/wiki/get.go Normal file
View File

@@ -0,0 +1,54 @@
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
import (
"flag"
"fmt"
"io"
"log"
"net"
"net/http"
"os"
"strings"
)
var (
post = flag.String("post", "", "urlencoded form data to POST")
addr = flag.Bool("addr", false, "find open address and print to stdout")
)
func main() {
flag.Parse()
if *addr {
l, err := net.Listen("tcp", "127.0.0.1:0")
if err != nil {
log.Fatal(err)
}
defer l.Close()
fmt.Print(l.Addr())
return
}
url := flag.Arg(0)
if url == "" {
log.Fatal("no url supplied")
}
var r *http.Response
var err error
if *post != "" {
b := strings.NewReader(*post)
r, err = http.Post(url, "application/x-www-form-urlencoded", b)
} else {
r, err = http.Get(url)
}
if err != nil {
log.Fatal(err)
}
defer r.Body.Close()
_, err = io.Copy(os.Stdout, r.Body)
if err != nil {
log.Fatal(err)
}
}

View File

@@ -1,3 +0,0 @@
module doc/articles/wiki
go 1.14

View File

@@ -0,0 +1,16 @@
// Copyright 2010 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
import (
"io/ioutil"
"os"
"text/template"
)
func main() {
b, _ := ioutil.ReadAll(os.Stdin)
template.HTMLEscape(os.Stdout, b)
}

View File

@@ -1,10 +1,7 @@
// +build ignore
package main
import (
"fmt"
"log"
"net/http"
)
@@ -14,5 +11,5 @@ func handler(w http.ResponseWriter, r *http.Request) {
func main() {
http.HandleFunc("/", handler)
log.Fatal(http.ListenAndServe(":8080", nil))
http.ListenAndServe(":8080", nil)
}

View File

@@ -46,7 +46,7 @@ $ cd gowiki
</pre>
<p>
Create a file named <code>wiki.go</code>, open it in your favorite editor, and
Create a file named <code>wiki.go</code>, open it in your favorite editor, and
add the following lines:
</p>
@@ -60,8 +60,8 @@ import (
</pre>
<p>
We import the <code>fmt</code> and <code>ioutil</code> packages from the Go
standard library. Later, as we implement additional functionality, we will
We import the <code>fmt</code> and <code>ioutil</code> packages from the Go
standard library. Later, as we implement additional functionality, we will
add more packages to this <code>import</code> declaration.
</p>
@@ -77,7 +77,7 @@ the title and body.
{{code "doc/articles/wiki/part1.go" `/^type Page/` `/}/`}}
<p>
The type <code>[]byte</code> means "a <code>byte</code> slice".
The type <code>[]byte</code> means "a <code>byte</code> slice".
(See <a href="/doc/articles/slices_usage_and_internals.html">Slices: usage and
internals</a> for more on slices.)
The <code>Body</code> element is a <code>[]byte</code> rather than
@@ -86,8 +86,8 @@ libraries we will use, as you'll see below.
</p>
<p>
The <code>Page</code> struct describes how page data will be stored in memory.
But what about persistent storage? We can address that by creating a
The <code>Page</code> struct describes how page data will be stored in memory.
But what about persistent storage? We can address that by creating a
<code>save</code> method on <code>Page</code>:
</p>
@@ -96,11 +96,11 @@ But what about persistent storage? We can address that by creating a
<p>
This method's signature reads: "This is a method named <code>save</code> that
takes as its receiver <code>p</code>, a pointer to <code>Page</code> . It takes
no parameters, and returns a value of type <code>error</code>."
no parameters, and returns a value of type <code>error</code>."
</p>
<p>
This method will save the <code>Page</code>'s <code>Body</code> to a text
This method will save the <code>Page</code>'s <code>Body</code> to a text
file. For simplicity, we will use the <code>Title</code> as the file name.
</p>
@@ -110,36 +110,35 @@ that is the return type of <code>WriteFile</code> (a standard library function
that writes a byte slice to a file). The <code>save</code> method returns the
error value, to let the application handle it should anything go wrong while
writing the file. If all goes well, <code>Page.save()</code> will return
<code>nil</code> (the zero-value for pointers, interfaces, and some other
<code>nil</code> (the zero-value for pointers, interfaces, and some other
types).
</p>
<p>
The octal integer literal <code>0600</code>, passed as the third parameter to
The octal integer constant <code>0600</code>, passed as the third parameter to
<code>WriteFile</code>, indicates that the file should be created with
read-write permissions for the current user only. (See the Unix man page
<code>open(2)</code> for details.)
</p>
<p>
In addition to saving pages, we will want to load pages, too:
We will want to load pages, too:
</p>
{{code "doc/articles/wiki/part1-noerror.go" `/^func loadPage/` `/^}/`}}
<p>
The function <code>loadPage</code> constructs the file name from the title
parameter, reads the file's contents into a new variable <code>body</code>, and
returns a pointer to a <code>Page</code> literal constructed with the proper
title and body values.
The function <code>loadPage</code> constructs the file name from
<code>Title</code>, reads the file's contents into a new
<code>Page</code>, and returns a pointer to that new <code>page</code>.
</p>
<p>
Functions can return multiple values. The standard library function
<code>io.ReadFile</code> returns <code>[]byte</code> and <code>error</code>.
Functions can return multiple values. The standard library function
<code>io.ReadFile</code> returns <code>[]byte</code> and <code>error</code>.
In <code>loadPage</code>, error isn't being handled yet; the "blank identifier"
represented by the underscore (<code>_</code>) symbol is used to throw away the
error return value (in essence, assigning the value to nothing).
error return value (in essence, assigning the value to nothing).
</p>
<p>
@@ -153,7 +152,7 @@ function to return <code>*Page</code> and <code>error</code>.
<p>
Callers of this function can now check the second parameter; if it is
<code>nil</code> then it has successfully loaded a Page. If not, it will be an
<code>error</code> that can be handled by the caller (see the
<code>error</code> that can be handled by the caller (see the
<a href="/ref/spec#Errors">language specification</a> for details).
</p>
@@ -173,17 +172,17 @@ printed to the screen.
</p>
<p>
You can compile and run the program like this:
You can compile and run the program like this:
</p>
<pre>
$ go build wiki.go
$ ./wiki
This is a sample Page.
This is a sample page.
</pre>
<p>
(If you're using Windows you must type "<code>wiki</code>" without the
(If you're using Windows you must type "<code>wiki</code>" without the
"<code>./</code>" to run the program.)
</p>
@@ -200,10 +199,10 @@ Here's a full working example of a simple web server:
{{code "doc/articles/wiki/http-sample.go"}}
<p>
The <code>main</code> function begins with a call to
<code>http.HandleFunc</code>, which tells the <code>http</code> package to
handle all requests to the web root (<code>"/"</code>) with
<code>handler</code>.
The <code>main</code> function begins with a call to
<code>http.HandleFunc</code>, which tells the <code>http</code> package to
handle all requests to the web root (<code>"/"</code>) with
<code>handler</code>.
</p>
<p>
@@ -213,12 +212,6 @@ worry about its second parameter, <code>nil</code>, for now.)
This function will block until the program is terminated.
</p>
<p>
<code>ListenAndServe</code> always returns an error, since it only returns when an
unexpected error occurs.
In order to log that error we wrap the function call with <code>log.Fatal</code>.
</p>
<p>
The function <code>handler</code> is of the type <code>http.HandlerFunc</code>.
It takes an <code>http.ResponseWriter</code> and an <code>http.Request</code> as
@@ -226,20 +219,20 @@ its arguments.
</p>
<p>
An <code>http.ResponseWriter</code> value assembles the HTTP server's response; by writing
An <code>http.ResponseWriter</code> value assembles the HTTP server's response; by writing
to it, we send data to the HTTP client.
</p>
<p>
An <code>http.Request</code> is a data structure that represents the client
HTTP request. <code>r.URL.Path</code> is the path component
of the request URL. The trailing <code>[1:]</code> means
"create a sub-slice of <code>Path</code> from the 1st character to the end."
HTTP request. The string <code>r.URL.Path</code> is the path component
of the request URL. The trailing <code>[1:]</code> means
"create a sub-slice of <code>Path</code> from the 1st character to the end."
This drops the leading "/" from the path name.
</p>
<p>
If you run this program and access the URL:
If you run this program and access the URL:
</p>
<pre>http://localhost:8080/monkeys</pre>
<p>
@@ -256,42 +249,43 @@ To use the <code>net/http</code> package, it must be imported:
<pre>
import (
"fmt"
"io/ioutil"
"log"
<b>"net/http"</b>
"io/ioutil"
)
</pre>
<p>
Let's create a handler, <code>viewHandler</code> that will allow users to
view a wiki page. It will handle URLs prefixed with "/view/".
Let's create a handler to view a wiki page:
</p>
{{code "doc/articles/wiki/part2.go" `/^const lenPath/`}}
{{code "doc/articles/wiki/part2.go" `/^func viewHandler/` `/^}/`}}
<p>
Again, note the use of <code>_</code> to ignore the <code>error</code>
First, this function extracts the page title from <code>r.URL.Path</code>,
the path component of the request URL. The global constant
<code>lenPath</code> is the length of the leading <code>"/view/"</code>
component of the request path.
The <code>Path</code> is re-sliced with <code>[lenPath:]</code> to drop the
first 6 characters of the string. This is because the path will invariably
begin with <code>"/view/"</code>, which is not part of the page title.
</p>
<p>
The function then loads the page data, formats the page with a string of simple
HTML, and writes it to <code>w</code>, the <code>http.ResponseWriter</code>.
</p>
<p>
Again, note the use of <code>_</code> to ignore the <code>error</code>
return value from <code>loadPage</code>. This is done here for simplicity
and generally considered bad practice. We will attend to this later.
</p>
<p>
First, this function extracts the page title from <code>r.URL.Path</code>,
the path component of the request URL.
The <code>Path</code> is re-sliced with <code>[len("/view/"):]</code> to drop
the leading <code>"/view/"</code> component of the request path.
This is because the path will invariably begin with <code>"/view/"</code>,
which is not part of the page's title.
</p>
<p>
The function then loads the page data, formats the page with a string of simple
HTML, and writes it to <code>w</code>, the <code>http.ResponseWriter</code>.
</p>
<p>
To use this handler, we rewrite our <code>main</code> function to
initialize <code>http</code> using the <code>viewHandler</code> to handle
To use this handler, we create a <code>main</code> function that
initializes <code>http</code> using the <code>viewHandler</code> to handle
any requests under the path <code>/view/</code>.
</p>
@@ -316,11 +310,6 @@ $ go build wiki.go
$ ./wiki
</pre>
<p>
(If you're using Windows you must type "<code>wiki</code>" without the
"<code>./</code>" to run the program.)
</p>
<p>
With this web server running, a visit to <code><a
href="http://localhost:8080/view/test">http://localhost:8080/view/test</a></code>
@@ -337,14 +326,14 @@ form.
</p>
<p>
First, we add them to <code>main()</code>:
First, we add them to <code>main()</code>:
</p>
{{code "doc/articles/wiki/final-noclosure.go" `/^func main/` `/^}/`}}
<p>
The function <code>editHandler</code> loads the page
(or, if it doesn't exist, create an empty <code>Page</code> struct),
The function <code>editHandler</code> loads the page
(or, if it doesn't exist, create an empty <code>Page</code> struct),
and displays an HTML form.
</p>
@@ -354,7 +343,7 @@ and displays an HTML form.
This function will work fine, but all that hard-coded HTML is ugly.
Of course, there is a better way.
</p>
<h2>The <code>html/template</code> package</h2>
<p>
@@ -365,20 +354,20 @@ underlying Go code.
</p>
<p>
First, we must add <code>html/template</code> to the list of imports. We
also won't be using <code>fmt</code> anymore, so we have to remove that.
First, we must add <code>html/template</code> to the list of imports:
</p>
<pre>
import (
<b>"html/template"</b>
"http"
"io/ioutil"
"net/http"
"os"
)
</pre>
<p>
Let's create a template file containing the HTML form.
Let's create a template file containing the HTML form.
Open a new file named <code>edit.html</code>, and add the following lines:
</p>
@@ -392,8 +381,8 @@ HTML:
{{code "doc/articles/wiki/final-noerror.go" `/^func editHandler/` `/^}/`}}
<p>
The function <code>template.ParseFiles</code> will read the contents of
<code>edit.html</code> and return a <code>*template.Template</code>.
The function <code>template.ParseFiles</code> will read the contents of
<code>edit.html</code> and return a <code>*template.Template</code>.
</p>
<p>
@@ -416,7 +405,12 @@ HTML.
</p>
<p>
Since we're working with templates now, let's create a template for our
Now that we've removed the <code>fmt.Fprintf</code> statement, we can remove
<code>"fmt"</code> from the <code>import</code> list.
</p>
<p>
While we're working with templates, let's create a template for our
<code>viewHandler</code> called <code>view.html</code>:
</p>
@@ -434,36 +428,28 @@ handlers. Let's remove this duplication by moving the templating code
to its own function:
</p>
{{code "doc/articles/wiki/final-template.go" `/^func viewHandler/` `/^}/`}}
{{code "doc/articles/wiki/final-template.go" `/^func editHandler/` `/^}/`}}
{{code "doc/articles/wiki/final-template.go" `/^func renderTemplate/` `/^}/`}}
<p>
And modify the handlers to use that function:
</p>
{{code "doc/articles/wiki/final-template.go" `/^func viewHandler/` `/^}/`}}
{{code "doc/articles/wiki/final-template.go" `/^func editHandler/` `/^}/`}}
<p>
If we comment out the registration of our unimplemented save handler in
<code>main</code>, we can once again build and test our program.
<a href="part3.go">Click here to view the code we've written so far.</a>
The handlers are now shorter and simpler.
</p>
<h2>Handling non-existent pages</h2>
<p>
What if you visit <a href="http://localhost:8080/view/APageThatDoesntExist">
<code>/view/APageThatDoesntExist</code></a>? You'll see a page containing
HTML. This is because it ignores the error return value from
<code>loadPage</code> and continues to try and fill out the template
with no data. Instead, if the requested Page doesn't exist, it should
redirect the client to the edit Page so the content may be created:
<code>/view/APageThatDoesntExist</code></a>? The program will crash. This is
because it ignores the error return value from <code>loadPage</code>. Instead,
if the requested Page doesn't exist, it should redirect the client to the edit
Page so the content may be created:
</p>
{{code "doc/articles/wiki/part3-errorhandling.go" `/^func viewHandler/` `/^}/`}}
{{code "doc/articles/wiki/final-noclosure.go" `/^func viewHandler/` `/^}/`}}
<p>
The <code>http.Redirect</code> function adds an HTTP status code of
The <code>http.Redirect</code> function adds an HTTP status code of
<code>http.StatusFound</code> (302) and a <code>Location</code>
header to the HTTP response.
</p>
@@ -471,24 +457,22 @@ header to the HTTP response.
<h2>Saving Pages</h2>
<p>
The function <code>saveHandler</code> will handle the submission of forms
located on the edit pages. After uncommenting the related line in
<code>main</code>, let's implement the handler:
The function <code>saveHandler</code> will handle the form submission.
</p>
{{code "doc/articles/wiki/final-template.go" `/^func saveHandler/` `/^}/`}}
<p>
The page title (provided in the URL) and the form's only field,
<code>Body</code>, are stored in a new <code>Page</code>.
The page title (provided in the URL) and the form's only field,
<code>Body</code>, are stored in a new <code>Page</code>.
The <code>save()</code> method is then called to write the data to a file,
and the client is redirected to the <code>/view/</code> page.
</p>
<p>
The value returned by <code>FormValue</code> is of type <code>string</code>.
We must convert that value to <code>[]byte</code> before it will fit into
the <code>Page</code> struct. We use <code>[]byte(body)</code> to perform
We must convert that value to <code>[]byte</code> before it will fit into
the <code>Page</code> struct. We use <code>[]byte(body)</code> to perform
the conversion.
</p>
@@ -497,9 +481,9 @@ the conversion.
<p>
There are several places in our program where errors are being ignored. This
is bad practice, not least because when an error does occur the program will
have unintended behavior. A better solution is to handle the errors and return
an error message to the user. That way if something does go wrong, the server
will function exactly how we want and the user can be notified.
crash. A better solution is to handle the errors and return an error message
to the user. That way if something does go wrong, the server will continue to
function and the user will be notified.
</p>
<p>
@@ -509,7 +493,7 @@ First, let's handle the errors in <code>renderTemplate</code>:
{{code "doc/articles/wiki/final-parsetemplate.go" `/^func renderTemplate/` `/^}/`}}
<p>
The <code>http.Error</code> function sends a specified HTTP response code
The <code>http.Error</code> function sends a specified HTTP response code
(in this case "Internal Server Error") and error message.
Already the decision to put this in a separate function is paying off.
</p>
@@ -518,18 +502,18 @@ Already the decision to put this in a separate function is paying off.
Now let's fix up <code>saveHandler</code>:
</p>
{{code "doc/articles/wiki/part3-errorhandling.go" `/^func saveHandler/` `/^}/`}}
{{code "doc/articles/wiki/final-noclosure.go" `/^func saveHandler/` `/^}/`}}
<p>
Any errors that occur during <code>p.save()</code> will be reported
Any errors that occur during <code>p.save()</code> will be reported
to the user.
</p>
<h2>Template caching</h2>
<p>
There is an inefficiency in this code: <code>renderTemplate</code> calls
<code>ParseFiles</code> every time a page is rendered.
There is an inefficiency in this code: <code>renderTemplate</code> calls
<code>ParseFiles</code> every time a page is rendered.
A better approach would be to call <code>ParseFiles</code> once at program
initialization, parsing all templates into a single <code>*Template</code>.
Then we can use the
@@ -552,11 +536,10 @@ can't be loaded the only sensible thing to do is exit the program.
</p>
<p>
The <code>ParseFiles</code> function takes any number of string arguments that
identify our template files, and parses those files into templates that are
named after the base file name. If we were to add more templates to our
program, we would add their names to the <code>ParseFiles</code> call's
arguments.
A <code>for</code> loop is used with a <code>range</code> statement to iterate
over an array constant containing the names of the templates we want parsed.
If we were to add more templates to our program, we would add their names to
that array.
</p>
<p>
@@ -582,33 +565,31 @@ this, we can write a function to validate the title with a regular expression.
<p>
First, add <code>"regexp"</code> to the <code>import</code> list.
Then we can create a global variable to store our validation
expression:
Then we can create a global variable to store our validation regexp:
</p>
{{code "doc/articles/wiki/final-noclosure.go" `/^var validPath/`}}
{{code "doc/articles/wiki/final-noclosure.go" `/^var titleValidator/`}}
<p>
The function <code>regexp.MustCompile</code> will parse and compile the
regular expression, and return a <code>regexp.Regexp</code>.
The function <code>regexp.MustCompile</code> will parse and compile the
regular expression, and return a <code>regexp.Regexp</code>.
<code>MustCompile</code> is distinct from <code>Compile</code> in that it will
panic if the expression compilation fails, while <code>Compile</code> returns
an <code>error</code> as a second parameter.
an <code>error</code> as a second parameter.
</p>
<p>
Now, let's write a function that uses the <code>validPath</code>
expression to validate path and extract the page title:
Now, let's write a function that extracts the title string from the request
URL, and tests it against our <code>TitleValidator</code> expression:
</p>
{{code "doc/articles/wiki/final-noclosure.go" `/func getTitle/` `/^}/`}}
<p>
If the title is valid, it will be returned along with a <code>nil</code>
error value. If the title is invalid, the function will write a
"404 Not Found" error to the HTTP connection, and return an error to the
handler. To create a new error, we have to import the <code>errors</code>
package.
error value. If the title is invalid, the function will write a
"404 Not Found" error to the HTTP connection, and return an error to the
handler.
</p>
<p>
@@ -623,10 +604,10 @@ Let's put a call to <code>getTitle</code> in each of the handlers:
<p>
Catching the error condition in each handler introduces a lot of repeated code.
What if we could wrap each of the handlers in a function that does this
validation and error checking? Go's
<a href="/ref/spec#Function_literals">function
literals</a> provide a powerful means of abstracting functionality
What if we could wrap each of the handlers in a function that does this
validation and error checking? Go's
<a href="/ref/spec#Function_declarations">function
literals</a> provide a powerful means of abstracting functionality
that can help us here.
</p>
@@ -673,19 +654,19 @@ Now we can take the code from <code>getTitle</code> and use it here
<p>
The closure returned by <code>makeHandler</code> is a function that takes
an <code>http.ResponseWriter</code> and <code>http.Request</code> (in other
words, an <code>http.HandlerFunc</code>).
words, an <code>http.HandlerFunc</code>).
The closure extracts the <code>title</code> from the request path, and
validates it with the <code>validPath</code> regexp. If the
validates it with the <code>TitleValidator</code> regexp. If the
<code>title</code> is invalid, an error will be written to the
<code>ResponseWriter</code> using the <code>http.NotFound</code> function.
<code>ResponseWriter</code> using the <code>http.NotFound</code> function.
If the <code>title</code> is valid, the enclosed handler function
<code>fn</code> will be called with the <code>ResponseWriter</code>,
<code>Request</code>, and <code>title</code> as arguments.
</p>
<p>
Now we can wrap the handler functions with <code>makeHandler</code> in
<code>main</code>, before they are registered with the <code>http</code>
Now we can wrap the handler functions with <code>makeHandler</code> in
<code>main</code>, before they are registered with the <code>http</code>
package:
</p>
@@ -717,7 +698,7 @@ $ ./wiki
<p>
Visiting <a href="http://localhost:8080/view/ANewPage">http://localhost:8080/view/ANewPage</a>
should present you with the page edit form. You should then be able to
should present you with the page edit form. You should then be able to
enter some text, click 'Save', and be redirected to the newly created page.
</p>
@@ -729,11 +710,11 @@ Here are some simple tasks you might want to tackle on your own:
<ul>
<li>Store templates in <code>tmpl/</code> and page data in <code>data/</code>.
<li>Add a handler to make the web root redirect to
<li>Add a handler to make the web root redirect to
<code>/view/FrontPage</code>.</li>
<li>Spruce up the page templates by making them valid HTML and adding some
CSS rules.</li>
<li>Implement inter-page linking by converting instances of
<li>Implement inter-page linking by converting instances of
<code>[PageName]</code> to <br>
<code>&lt;a href="/view/PageName"&gt;PageName&lt;/a&gt;</code>.
(hint: you could use <code>regexp.ReplaceAllFunc</code> to do this)

View File

@@ -2,14 +2,11 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build ignore
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
)
@@ -32,14 +29,16 @@ func loadPage(title string) (*Page, error) {
return &Page{Title: title, Body: body}, nil
}
const lenPath = len("/view/")
func viewHandler(w http.ResponseWriter, r *http.Request) {
title := r.URL.Path[len("/view/"):]
title := r.URL.Path[lenPath:]
p, _ := loadPage(title)
fmt.Fprintf(w, "<h1>%s</h1><div>%s</div>", p.Title, p.Body)
}
func editHandler(w http.ResponseWriter, r *http.Request) {
title := r.URL.Path[len("/edit/"):]
title := r.URL.Path[lenPath:]
p, err := loadPage(title)
if err != nil {
p = &Page{Title: title}
@@ -55,5 +54,5 @@ func editHandler(w http.ResponseWriter, r *http.Request) {
func main() {
http.HandleFunc("/view/", viewHandler)
http.HandleFunc("/edit/", editHandler)
log.Fatal(http.ListenAndServe(":8080", nil))
http.ListenAndServe(":8080", nil)
}

View File

@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build ignore
package main
import (

View File

@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build ignore
package main
import (

View File

@@ -2,14 +2,11 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build ignore
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
)
@@ -32,13 +29,15 @@ func loadPage(title string) (*Page, error) {
return &Page{Title: title, Body: body}, nil
}
const lenPath = len("/view/")
func viewHandler(w http.ResponseWriter, r *http.Request) {
title := r.URL.Path[len("/view/"):]
title := r.URL.Path[lenPath:]
p, _ := loadPage(title)
fmt.Fprintf(w, "<h1>%s</h1><div>%s</div>", p.Title, p.Body)
}
func main() {
http.HandleFunc("/view/", viewHandler)
log.Fatal(http.ListenAndServe(":8080", nil))
http.ListenAndServe(":8080", nil)
}

View File

@@ -1,76 +0,0 @@
// Copyright 2010 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build ignore
package main
import (
"html/template"
"io/ioutil"
"log"
"net/http"
)
type Page struct {
Title string
Body []byte
}
func (p *Page) save() error {
filename := p.Title + ".txt"
return ioutil.WriteFile(filename, p.Body, 0600)
}
func loadPage(title string) (*Page, error) {
filename := title + ".txt"
body, err := ioutil.ReadFile(filename)
if err != nil {
return nil, err
}
return &Page{Title: title, Body: body}, nil
}
func renderTemplate(w http.ResponseWriter, tmpl string, p *Page) {
t, _ := template.ParseFiles(tmpl + ".html")
t.Execute(w, p)
}
func viewHandler(w http.ResponseWriter, r *http.Request) {
title := r.URL.Path[len("/view/"):]
p, err := loadPage(title)
if err != nil {
http.Redirect(w, r, "/edit/"+title, http.StatusFound)
return
}
renderTemplate(w, "view", p)
}
func editHandler(w http.ResponseWriter, r *http.Request) {
title := r.URL.Path[len("/edit/"):]
p, err := loadPage(title)
if err != nil {
p = &Page{Title: title}
}
renderTemplate(w, "edit", p)
}
func saveHandler(w http.ResponseWriter, r *http.Request) {
title := r.URL.Path[len("/save/"):]
body := r.FormValue("body")
p := &Page{Title: title, Body: []byte(body)}
err := p.save()
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
http.Redirect(w, r, "/view/"+title, http.StatusFound)
}
func main() {
http.HandleFunc("/view/", viewHandler)
http.HandleFunc("/edit/", editHandler)
http.HandleFunc("/save/", saveHandler)
log.Fatal(http.ListenAndServe(":8080", nil))
}

View File

@@ -1,60 +0,0 @@
// Copyright 2010 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build ignore
package main
import (
"html/template"
"io/ioutil"
"log"
"net/http"
)
type Page struct {
Title string
Body []byte
}
func (p *Page) save() error {
filename := p.Title + ".txt"
return ioutil.WriteFile(filename, p.Body, 0600)
}
func loadPage(title string) (*Page, error) {
filename := title + ".txt"
body, err := ioutil.ReadFile(filename)
if err != nil {
return nil, err
}
return &Page{Title: title, Body: body}, nil
}
func renderTemplate(w http.ResponseWriter, tmpl string, p *Page) {
t, _ := template.ParseFiles(tmpl + ".html")
t.Execute(w, p)
}
func viewHandler(w http.ResponseWriter, r *http.Request) {
title := r.URL.Path[len("/view/"):]
p, _ := loadPage(title)
renderTemplate(w, "view", p)
}
func editHandler(w http.ResponseWriter, r *http.Request) {
title := r.URL.Path[len("/edit/"):]
p, err := loadPage(title)
if err != nil {
p = &Page{Title: title}
}
renderTemplate(w, "edit", p)
}
func main() {
http.HandleFunc("/view/", viewHandler)
http.HandleFunc("/edit/", editHandler)
//http.HandleFunc("/save/", saveHandler)
log.Fatal(http.ListenAndServe(":8080", nil))
}

View File

@@ -0,0 +1,76 @@
// Copyright 2010 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
import (
"bytes"
"flag"
"go/ast"
"go/parser"
"go/printer"
"go/token"
"log"
"os"
"text/template"
)
var (
srcFn = flag.String("src", "", "source filename")
getName = flag.String("name", "", "func/type name to output")
html = flag.Bool("html", true, "output HTML")
showPkg = flag.Bool("pkg", false, "show package in output")
)
func main() {
// handle input
flag.Parse()
if *srcFn == "" || *getName == "" {
flag.Usage()
os.Exit(2)
}
// load file
fs := token.NewFileSet()
file, err := parser.ParseFile(fs, *srcFn, nil, 0)
if err != nil {
log.Fatal(err)
}
// create filter
filter := func(name string) bool {
return name == *getName
}
// filter
if !ast.FilterFile(file, filter) {
os.Exit(1)
}
// print the AST
var b bytes.Buffer
printer.Fprint(&b, fs, file)
// drop package declaration
if !*showPkg {
for {
c, err := b.ReadByte()
if c == '\n' || err != nil {
break
}
}
}
// drop leading newlines
for {
b, err := b.ReadByte()
if err != nil {
break
}
if b != '\n' {
os.Stdout.Write([]byte{b})
break
}
}
// output
if *html {
template.HTMLEscape(os.Stdout, b.Bytes())
} else {
b.WriteTo(os.Stdout)
}
}

30
doc/articles/wiki/test.bash Executable file
View File

@@ -0,0 +1,30 @@
#!/usr/bin/env bash
# Copyright 2010 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
set -e
wiki_pid=
cleanup() {
kill $wiki_pid
rm -f test_*.out Test.txt final-test.bin final-test.go
}
trap cleanup 0 INT
go build -o get.bin get.go
addr=$(./get.bin -addr)
sed s/:8080/$addr/ < final.go > final-test.go
go build -o final-test.bin final-test.go
(./final-test.bin) &
wiki_pid=$!
sleep 1
./get.bin http://$addr/edit/Test > test_edit.out
diff -u test_edit.out test_edit.good
./get.bin -post=body=some%20content http://$addr/save/Test
diff -u Test.txt test_Test.txt.good
./get.bin http://$addr/view/Test > test_view.out
diff -u test_view.out test_view.good
echo PASS

View File

@@ -1,165 +0,0 @@
// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main_test
import (
"bytes"
"fmt"
"io/ioutil"
"net/http"
"os"
"os/exec"
"path/filepath"
"strings"
"testing"
)
func TestSnippetsCompile(t *testing.T) {
if testing.Short() {
t.Skip("skipping slow builds in short mode")
}
goFiles, err := filepath.Glob("*.go")
if err != nil {
t.Fatal(err)
}
for _, f := range goFiles {
if strings.HasSuffix(f, "_test.go") {
continue
}
f := f
t.Run(f, func(t *testing.T) {
t.Parallel()
cmd := exec.Command("go", "build", "-o", os.DevNull, f)
out, err := cmd.CombinedOutput()
if err != nil {
t.Errorf("%s: %v\n%s", strings.Join(cmd.Args, " "), err, out)
}
})
}
}
func TestWikiServer(t *testing.T) {
must := func(err error) {
if err != nil {
t.Helper()
t.Fatal(err)
}
}
dir, err := ioutil.TempDir("", t.Name())
must(err)
defer os.RemoveAll(dir)
// We're testing a walkthrough example of how to write a server.
//
// That server hard-codes a port number to make the walkthrough simpler, but
// we can't assume that the hard-coded port is available on an arbitrary
// builder. So we'll patch out the hard-coded port, and replace it with a
// function that writes the server's address to stdout
// so that we can read it and know where to send the test requests.
finalGo, err := ioutil.ReadFile("final.go")
must(err)
const patchOld = `log.Fatal(http.ListenAndServe(":8080", nil))`
patched := bytes.ReplaceAll(finalGo, []byte(patchOld), []byte(`log.Fatal(serve())`))
if bytes.Equal(patched, finalGo) {
t.Fatalf("Can't patch final.go: %q not found.", patchOld)
}
must(ioutil.WriteFile(filepath.Join(dir, "final_patched.go"), patched, 0644))
// Build the server binary from the patched sources.
// The 'go' command requires that they all be in the same directory.
// final_test.go provides the implemtation for our serve function.
must(copyFile(filepath.Join(dir, "final_srv.go"), "final_test.go"))
cmd := exec.Command("go", "build",
"-o", filepath.Join(dir, "final.exe"),
filepath.Join(dir, "final_patched.go"),
filepath.Join(dir, "final_srv.go"))
out, err := cmd.CombinedOutput()
if err != nil {
t.Fatalf("%s: %v\n%s", strings.Join(cmd.Args, " "), err, out)
}
// Run the server in our temporary directory so that it can
// write its content there. It also needs a couple of template files,
// and looks for them in the same directory.
must(copyFile(filepath.Join(dir, "edit.html"), "edit.html"))
must(copyFile(filepath.Join(dir, "view.html"), "view.html"))
cmd = exec.Command(filepath.Join(dir, "final.exe"))
cmd.Dir = dir
stderr := bytes.NewBuffer(nil)
cmd.Stderr = stderr
stdout, err := cmd.StdoutPipe()
must(err)
must(cmd.Start())
defer func() {
cmd.Process.Kill()
err := cmd.Wait()
if stderr.Len() > 0 {
t.Logf("%s: %v\n%s", strings.Join(cmd.Args, " "), err, stderr)
}
}()
var addr string
if _, err := fmt.Fscanln(stdout, &addr); err != nil || addr == "" {
t.Fatalf("Failed to read server address: %v", err)
}
// The server is up and has told us its address.
// Make sure that its HTTP API works as described in the article.
r, err := http.Get(fmt.Sprintf("http://%s/edit/Test", addr))
must(err)
responseMustMatchFile(t, r, "test_edit.good")
r, err = http.Post(fmt.Sprintf("http://%s/save/Test", addr),
"application/x-www-form-urlencoded",
strings.NewReader("body=some%20content"))
must(err)
responseMustMatchFile(t, r, "test_view.good")
gotTxt, err := ioutil.ReadFile(filepath.Join(dir, "Test.txt"))
must(err)
wantTxt, err := ioutil.ReadFile("test_Test.txt.good")
must(err)
if !bytes.Equal(wantTxt, gotTxt) {
t.Fatalf("Test.txt differs from expected after posting to /save.\ngot:\n%s\nwant:\n%s", gotTxt, wantTxt)
}
r, err = http.Get(fmt.Sprintf("http://%s/view/Test", addr))
must(err)
responseMustMatchFile(t, r, "test_view.good")
}
func responseMustMatchFile(t *testing.T, r *http.Response, filename string) {
t.Helper()
defer r.Body.Close()
body, err := ioutil.ReadAll(r.Body)
if err != nil {
t.Fatal(err)
}
wantBody, err := ioutil.ReadFile(filename)
if err != nil {
t.Fatal(err)
}
if !bytes.Equal(body, wantBody) {
t.Fatalf("%v: body does not match %s.\ngot:\n%s\nwant:\n%s", r.Request.URL, filename, body, wantBody)
}
}
func copyFile(dst, src string) error {
buf, err := ioutil.ReadFile(src)
if err != nil {
return err
}
return ioutil.WriteFile(dst, buf, 0644)
}

File diff suppressed because it is too large Load Diff

View File

@@ -18,16 +18,18 @@ underlying binary with arguments appropriate to package-level processing.
<p>
The programs can also be run as stand-alone binaries, with unmodified arguments,
using the go <code>tool</code> subcommand, such as <code>go tool cgo</code>.
For most commands this is mainly useful for debugging.
Some of the commands, such as <code>pprof</code>, are accessible only through
using the go <code>tool</code> subcommand, such as <code>go tool vet</code>.
This style of invocation allows, for instance, checking a single source file
rather than an entire package: <code>go tool vet myprogram.go</code> as
compared to <code>go vet mypackage</code>.
Some of the commands, such as <code>yacc</code>, are accessible only through
the go <code>tool</code> subcommand.
</p>
<p>
Finally the <code>fmt</code> and <code>godoc</code> commands are installed
as regular binaries called <code>gofmt</code> and <code>godoc</code> because
they are so often referenced.
Finally, two of the commands, <code>fmt</code> and <code>doc</code>, are also
installed as regular binaries called <code>gofmt</code> and <code>godoc</code>
because they are so often referenced.
</p>
<p>
@@ -49,6 +51,7 @@ The <code>go</code> program manages Go source code and runs the other
commands listed here.
See the command docs for usage
details.
<br><br>
</td>
</tr>
@@ -58,13 +61,6 @@ details.
<td>Cgo enables the creation of Go packages that call C code.</td>
</tr>
<tr>
<td><a href="/cmd/cover/">cover</a></td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td>Cover is a program for creating and analyzing the coverage profiles
generated by <code>"go test -coverprofile"</code>.</td>
</tr>
<tr>
<td><a href="/cmd/fix/">fix</a></td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
@@ -73,16 +69,17 @@ and rewrites them to use newer ones.</td>
</tr>
<tr>
<td><a href="/cmd/gofmt/">fmt</a></td>
<td><a href="/cmd/go/">doc</a></td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td>Fmt formats Go packages, it is also available as an independent <a href="/cmd/gofmt/">
gofmt</a> command with more general options.</td>
<td>Doc extracts and generates documentation for Go packages, it is also available as
an independent <a href="/cmd/godoc/">godoc</a> command with more general options.</td>
</tr>
<tr>
<td><a href="//godoc.org/golang.org/x/tools/cmd/godoc/">godoc</a></td>
<td><a href="/cmd/go/">fmt</a></td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td>Godoc extracts and generates documentation for Go packages.</td>
<td>Fmt formats Go packages, it is also available as an independent <a href="/cmd/gofmt/">
gofmt</a> command with more general options.</td>
</tr>
<tr>
@@ -92,6 +89,12 @@ gofmt</a> command with more general options.</td>
calls whose arguments do not align with the format string.</td>
</tr>
<tr>
<td><a href="/cmd/yacc/">yacc</a></td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td>Yacc is a version of yacc that generates parsers implemented in Go.</td>
</tr>
</table>
<p>

504
doc/code.html Normal file
View File

@@ -0,0 +1,504 @@
<!--{
"Title": "How to Write Go Code"
}-->
<h2 id="Introduction">Introduction</h2>
<p>
This document demonstrates the development of a simple Go package and
introduces the <a href="/cmd/go/">go command</a>, the standard way to fetch,
build, and install Go packages and commands.
</p>
<h2 id="GOPATH">Code organization</h2>
<h3><code>GOPATH</code> and workspaces</h3>
<p>
One of Go's design goals is to make writing software easier. To that end, the
<code>go</code> command doesn't use Makefiles or other configuration files to
guide program construction. Instead, it uses the source code to find
dependencies and determine build conditions. This means your source code and
build scripts are always in sync; they are one and the same.
</p>
<p>
The one thing you must do is set a <code>GOPATH</code> environment variable.
<code>GOPATH</code> tells the <code>go</code> command (and other related tools)
where to find and install the Go packages on your system.
</p>
<p>
<code>GOPATH</code> is a list of paths. It shares the syntax of your system's
<code>PATH</code> environment variable. A typical <code>GOPATH</code> on
a Unix system might look like this:
</p>
<pre>
GOPATH=/home/user/ext:/home/user/mygo
</pre>
<p>
(On a Windows system use semicolons as the path separator instead of colons.)
</p>
<p>
Each path in the list (in this case <code>/home/user/ext</code> or
<code>/home/user/mygo</code>) specifies the location of a <i>workspace</i>.
A workspace contains Go source files and their associated package objects, and
command executables. It has a prescribed structure of three subdirectories:
</p>
<ul>
<li><code>src</code> contains Go source files,
<li><code>pkg</code> contains compiled package objects, and
<li><code>bin</code> contains executable commands.
</ul>
<p>
Subdirectories of the <code>src</code> directory hold independent packages, and
all source files (<code>.go</code>, <code>.c</code>, <code>.h</code>, and
<code>.s</code>) in each subdirectory are elements of that subdirectory's
package.
</p>
<p>
When building a program that imports the package "<code>widget</code>" the
<code>go</code> command looks for <code>src/pkg/widget</code> inside the Go root,
and then&mdash;if the package source isn't found there&mdash;it searches
for <code>src/widget</code> inside each workspace in order.
</p>
<p>
Multiple workspaces can offer some flexibility and convenience, but for now
we'll concern ourselves with only a single workspace.
</p>
<p>
Let's work through a simple example. First, create a <code>$HOME/mygo</code>
directory and its <code>src</code> subdirectory:
</p>
<pre>
$ mkdir -p $HOME/mygo/src # create a place to put source code
</pre>
<p>
Next, set it as the <code>GOPATH</code>. You should also add the
<code>bin</code> subdirectory to your <code>PATH</code> environment variable so
that you can run the commands therein without specifying their full path.
To do this, add the following lines to <code>$HOME/.profile</code> (or
equivalent):
</p>
<pre>
export GOPATH=$HOME/mygo
export PATH=$PATH:$HOME/mygo/bin
</pre>
<h3>Import paths</h3>
<p>
The standard packages are given short import paths such as <code>"fmt"</code>
and <code>"net/http"</code> for convenience.
For your own projects, it is important to choose a base import path that is
unlikely to collide with future additions to the standard library or other
external libraries.
</p>
<p>
The best way to choose an import path is to use the location of your version
control repository.
For instance, if your source repository is at <code>example.com</code>
or <code>code.google.com/p/example</code>, you should begin your package
paths with that URL, as in "<code>example.com/foo/bar</code>" or
"<code>code.google.com/p/example/foo/bar</code>".
Using this convention, the <code>go</code> command can automatically check out and
build the source code by its import path alone.
</p>
<p>
If you don't intend to install your code in this way, you should at
least use a unique prefix like "<code>widgets/</code>", as in
"<code>widgets/foo/bar</code>". A good rule is to use a prefix such as your
company or project name, since it is unlikely to be used by another group.
</p>
<p>
We'll use <code>example/</code> as our base import path:
</p>
<pre>
$ mkdir -p $GOPATH/src/example
</pre>
<h3>Package names</h3>
<p>
The first statement in a Go source file should be
</p>
<pre>
package <i>name</i>
</pre>
<p>
where <code><i>name</i></code> is the package's default name for imports.
(All files in a package must use the same <code><i>name</i></code>.)
</p>
<p>
Go's convention is that the package name is the last element of the
import path: the package imported as "<code>crypto/rot13</code>"
should be named <code>rot13</code>.
There is no requirement that package names be unique
across all packages linked into a single binary,
only that the import paths (their full file names) be unique.
</p>
<p>
Create a new package under <code>example</code> called <code>newmath</code>:
</p>
<pre>
$ cd $GOPATH/src/example
$ mkdir newmath
</pre>
<p>
Then create a file named <code>$GOPATH/src/example/newmath/sqrt.go</code>
containing the following Go code:
</p>
<pre>
// Package newmath is a trivial example package.
package newmath
// Sqrt returns an approximation to the square root of x.
func Sqrt(x float64) float64 {
// This is a terrible implementation.
// Real code should import "math" and use math.Sqrt.
z := 0.0
for i := 0; i &lt; 1000; i++ {
z -= (z*z - x) / (2 * x)
}
return z
}
</pre>
<p>
This package is imported by the path name of the directory it's in, starting
after the <code>src</code> component:
</p>
<pre>
import "example/newmath"
</pre>
<p>
See <a href="/doc/effective_go.html#names">Effective Go</a> to learn more about
Go's naming conventions.
</p>
<h2>Building and installing</h2>
<p>
The <code>go</code> command comprises several subcommands, the most central being
<code>install</code>. Running <code>go install <i>importpath</i></code> builds
and installs a package and its dependencies.
</p>
<p>
To "install a package" means to write the package object or executable command
to the <code>pkg</code> or <code>bin</code> subdirectory of the workspace in
which the source resides.
</p>
<h3>Building a package</h3>
<p>
To build and install the <code>newmath</code> package, type
</p>
<pre>
$ go install example/newmath
</pre>
<p>
This command will produce no output if the package and its dependencies
are built and installed correctly.
</p>
<p>
As a convenience, the <code>go</code> command will assume the current directory
if no import path is specified on the command line. This sequence of commands
has the same effect as the one above:
</p>
<pre>
$ cd $GOPATH/src/example/newmath
$ go install
</pre>
<p>
The resulting workspace directory tree (assuming we're running Linux on a 64-bit
system) looks like this:
</p>
<pre>
pkg/
linux_amd64/
example/
newmath.a # package object
src/
example/
newmath/
sqrt.go # package source
</pre>
<h3>Building a command</h3>
<p>
The <code>go</code> command treats code belonging to <code>package main</code> as
an executable command and installs the package binary to the
<code>GOPATH</code>'s <code>bin</code> subdirectory.
</p>
<p>
Add a command named <code>hello</code> to the source tree.
First create the <code>example/hello</code> directory:
</p>
<pre>
$ cd $GOPATH/src/example
$ mkdir hello
</pre>
<p>
Then create the file <code>$GOPATH/src/example/hello/hello.go</code>
containing the following Go code.
</p>
<pre>
// Hello is a trivial example of a main package.
package main
import (
"example/newmath"
"fmt"
)
func main() {
fmt.Printf("Hello, world. Sqrt(2) = %v\n", newmath.Sqrt(2))
}
</pre>
<p>
Next, run <code>go install</code>, which builds and installs the binary to
<code>$GOPATH/bin</code> (or <code>$GOBIN</code>, if set; to simplify
presentation, this document assumes <code>GOBIN</code> is unset):
</p>
<pre>
$ go install example/hello
</pre>
<p>
To run the program, invoke it by name as you would any other command:
</p>
<pre>
$ $GOPATH/bin/hello
Hello, world. Sqrt(2) = 1.414213562373095
</pre>
<p>
If you added <code>$HOME/mygo/bin</code> to your <code>PATH</code>, you may omit
the path to the executable:
</p>
<pre>
$ hello
Hello, world. Sqrt(2) = 1.414213562373095
</pre>
<p>
The workspace directory tree now looks like this:
</p>
<pre>
bin/
hello # command executable
pkg/
linux_amd64/
example/
newmath.a # package object
src/
example/
hello/
hello.go # command source
newmath/
sqrt.go # package source
</pre>
<p>
The <code>go</code> command also provides a <code>build</code> command, which is
like <code>install</code> except it builds all objects in a temporary directory
and does not install them under <code>pkg</code> or <code>bin</code>.
When building a command an executable named after the last element of the
import path is written to the current directory. When building a package,
<code>go build</code> serves merely to test that the package and its
dependencies can be built. (The resulting package object is thrown away.)
</p>
<h2 id="Testing">Testing</h2>
<p>
Go has a lightweight test framework composed of the <code>go test</code>
command and the <code>testing</code> package.
</p>
<p>
You write a test by creating a file with a name ending in <code>_test.go</code>
that contains functions named <code>TestXXX</code> with signature
<code>func (t *testing.T)</code>.
The test framework runs each such function;
if the function calls a failure function such as <code>t.Error</code> or
<code>t.Fail</code>, the test is considered to have failed.
</p>
<p>
Add a test to the <code>newmath</code> package by creating the file
<code>$GOPATH/src/example/newmath/sqrt_test.go</code> containing the following
Go code.
</p>
<pre>
package newmath
import "testing"
func TestSqrt(t *testing.T) {
const in, out = 4, 2
if x := Sqrt(in); x != out {
t.Errorf("Sqrt(%v) = %v, want %v", in, x, out)
}
}
</pre>
<p>
Now run the test with <code>go test</code>:
</p>
<pre>
$ go test example/newmath
ok example/newmath 0.165s
</pre>
<p>
Run <code><a href="/cmd/go/#Test_packages">go help test</a></code> and see the
<a href="/pkg/testing/">testing package documentation</a> for more detail.
</p>
<h2 id="remote">Remote packages</h2>
<p>
An import path can describe how to obtain the package source code using a
revision control system such as Git or Mercurial. The <code>go</code> command uses
this property to automatically fetch packages from remote repositories.
For instance, the examples described in this document are also kept in a
Mercurial repository hosted at Google Code,
<code><a href="http://code.google.com/p/go.example">code.google.com/p/go.example</a></code>.
If you include the repository URL in the package's import path,
<code>go get</code> will fetch, build, and install it automatically:
</p>
<pre>
$ go get code.google.com/p/go.example/hello
$ $GOPATH/bin/hello
Hello, world. Sqrt(2) = 1.414213562373095
</pre>
<p>
If the specified package is not present in a workspace, <code>go get</code>
will place it inside the first workspace specified by <code>GOPATH</code>.
(If the package does already exist, <code>go get</code> skips the remote
fetch and behaves the same as <code>go install</code>.)
</p>
<p>
After issuing the above <code>go get</code> command, the workspace directory
tree should now now look like this:
</p>
<pre>
bin/
hello # command executable
pkg/
linux_amd64/
code.google.com/p/go.example/
newmath.a # package object
example/
newmath.a # package object
src/
code.google.com/p/go.example/
hello/
hello.go # command source
newmath/
sqrt.go # package source
sqrt_test.go # test source
example/
hello/
hello.go # command source
newmath/
sqrt.go # package source
sqrt_test.go # test source
</pre>
<p>
The <code>hello</code> command hosted at Google Code depends on the
<code>newmath</code> package within the same repository. The imports in
<code>hello.go</code> file use the same import path convention, so the <code>go
get</code> command is able to locate and install the dependent package, too.
</p>
<pre>
import "code.google.com/p/go.example/newmath"
</pre>
<p>
This convention is the easiest way to make your Go packages available for
others to use.
The <a href="http://godashboard.appspot.com">Go Project Dashboard</a>
is a list of external Go projects including programs and libraries.
</p>
<p>
For more information on using remote repositories with the <code>go</code> command, see
<code><a href="/cmd/go/#Remote_import_path_syntax">go help remote</a></code>.
</p>
<h2 id="more">Further reading</h2>
<p>
See <a href="/doc/effective_go.html">Effective Go</a> for tips on writing
clear, idiomatic Go code.
</p>
<p>
Take <a href="http://tour.golang.org/">A Tour of Go</a> to learn the language
proper.
</p>
<p>
Visit the <a href="/doc/#articles">documentation page</a> for a set of in-depth
articles about the Go language and its libraries and tools.
</p>

View File

@@ -1,4 +1,4 @@
// Copyright 2010 The Go Authors. All rights reserved.
// Copyright 2010 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
@@ -276,7 +276,7 @@ CodewalkViewer.prototype.changeSelectedComment = function(target) {
}
// Force original file even if user hasn't changed comments since they may
// have navigated away from it within the iframe without us knowing.
// have nagivated away from it within the iframe without us knowing.
this.navigateToCode(currentFile);
};
@@ -296,8 +296,8 @@ CodewalkViewer.prototype.updateHeight = function() {
this.sizer.height(codeHeight);
};
window.initFuncs.push(function() {
var viewer = new CodewalkViewer(jQuery('#codewalk-main'));
jQuery(document).ready(function() {
var viewer = new CodewalkViewer(jQuery());
viewer.selectFirstComment();
viewer.targetCommentLinksAtBlank();
viewer.installEventHandlers();

View File

@@ -42,7 +42,7 @@
its <code>src</code> is just a file name.
</step>
<step title="Specifying a source line" src='doc/codewalk/codewalk.xml:/title="Title"/'>
<step title="Specifiying a source line" src='doc/codewalk/codewalk.xml:/title="Title"/'>
The most complex part of the codewalk specification is
saying what lines to highlight.
Instead of ordinary line numbers,
@@ -91,7 +91,7 @@
The full address syntax is summarized in this table
(an excerpt of Table II from
<a href="https://9p.io/sys/doc/sam/sam.html">The text editor <code>sam</code></a>):
<a href="http://plan9.bell-labs.com/sys/doc/sam/sam.html">The text editor <code>sam</code></a>):
<br/><br/>
<table>

View File

@@ -1,52 +0,0 @@
// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main_test
import (
"bytes"
"os"
"os/exec"
"strings"
"testing"
)
// TestMarkov tests the code dependency of markov.xml.
func TestMarkov(t *testing.T) {
cmd := exec.Command("go", "run", "markov.go")
cmd.Stdin = strings.NewReader("foo")
cmd.Stderr = bytes.NewBuffer(nil)
out, err := cmd.Output()
if err != nil {
t.Fatalf("%s: %v\n%s", strings.Join(cmd.Args, " "), err, cmd.Stderr)
}
if !bytes.Equal(out, []byte("foo\n")) {
t.Fatalf(`%s with input "foo" did not output "foo":\n%s`, strings.Join(cmd.Args, " "), out)
}
}
// TestPig tests the code dependency of functions.xml.
func TestPig(t *testing.T) {
cmd := exec.Command("go", "run", "pig.go")
cmd.Stderr = bytes.NewBuffer(nil)
out, err := cmd.Output()
if err != nil {
t.Fatalf("%s: %v\n%s", strings.Join(cmd.Args, " "), err, cmd.Stderr)
}
const want = "Wins, losses staying at k = 100: 210/990 (21.2%), 780/990 (78.8%)\n"
if !bytes.Contains(out, []byte(want)) {
t.Fatalf(`%s: unexpected output\ngot:\n%s\nwant output containing:\n%s`, strings.Join(cmd.Args, " "), out, want)
}
}
// TestURLPoll tests the code dependency of sharemem.xml.
func TestURLPoll(t *testing.T) {
cmd := exec.Command("go", "build", "-o", os.DevNull, "urlpoll.go")
out, err := cmd.CombinedOutput()
if err != nil {
t.Fatalf("%s: %v\n%s", strings.Join(cmd.Args, " "), err, out)
}
}

View File

@@ -1,4 +1,4 @@
// Copyright 2011 The Go Authors. All rights reserved.
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

View File

@@ -1,5 +1,5 @@
<!--
Copyright 2011 The Go Authors. All rights reserved.
Copyright 2011 The Go Authors. All rights reserved.
Use of this source code is governed by a BSD-style
license that can be found in the LICENSE file.
-->
@@ -58,7 +58,7 @@ Prefix Map key
this data.
</step>
<step title="The NewChain constructor function" src="doc/codewalk/markov.go:/func New/,/\n}/">
<step title="The NewChain constructor function" src="doc/codewalk/markov.go:/func New/,/}/">
The <code>Chain</code> struct has two unexported fields (those that
do not begin with an upper case character), and so we write a
<code>NewChain</code> constructor function that initializes the
@@ -181,7 +181,7 @@ p == Prefix{"am", "not"}</pre>
one index to the left (if you consider zero as the leftmost index).
<pre>
p := Prefix{"I", "am"}
copy(p, p[1:])
copy(p, p[:1])
// p == Prefix{"am", "am"}</pre>
We then assign the provided <code>word</code> to the last index
of the slice:

View File

@@ -23,7 +23,7 @@ type score struct {
// An action transitions stochastically to a resulting score.
type action func(current score) (result score, turnIsOver bool)
// roll returns the (result, turnIsOver) outcome of simulating a die roll.
// roll returns the (result, turnIsOver) outcome of simulating a die roll.
// If the roll value is 1, then thisTurn score is abandoned, and the players'
// roles swap. Otherwise, the roll value is added to thisTurn.
func roll(s score) (score, bool) {

Some files were not shown because too many files have changed in this diff Show More