]> Cypherpunks.ru repositories - gostls13.git/log
gostls13.git
12 years agoweekly.2011-09-16 weekly.2011-09-16
Andrew Gerrand [Fri, 16 Sep 2011 07:18:36 +0000 (17:18 +1000)]
weekly.2011-09-16

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

12 years agonet: reuse channels during io
Alex Brainman [Fri, 16 Sep 2011 03:40:02 +0000 (13:40 +1000)]
net: reuse channels during io

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

12 years agoexp/template/html: moved error docs out of package docs onto error codes
Mike Samuel [Fri, 16 Sep 2011 02:05:33 +0000 (19:05 -0700)]
exp/template/html: moved error docs out of package docs onto error codes

This replaces the errStr & errLine members of context with a single err
*Error, and introduces a number of const error codes, one per
escape-time failure mode, that can be separately documented.

The changes to the error documentation moved from doc.go to error.go
are cosmetic.

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

12 years agogodoc: remove dependency of syscall
Robert Griesemer [Thu, 15 Sep 2011 23:47:01 +0000 (16:47 -0700)]
godoc: remove dependency of syscall

On app-engine, we cannot import syscall.
The respective constants are already defined
elsewhere for the same reason.

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

12 years agogodoc: use new index/suffixarray serialization code
Robert Griesemer [Thu, 15 Sep 2011 23:21:42 +0000 (16:21 -0700)]
godoc: use new index/suffixarray serialization code

When saving/restoring the fulltext index, the entire
respective suffixarray is now saved/restored (as opposed
to the indexed data only, and the suffixarray recreated).
This saves significant start-up time for large indexes,
at the cost of significantly larger index files.

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

12 years agoindex/suffixarray: support for serialization
Robert Griesemer [Thu, 15 Sep 2011 23:21:21 +0000 (16:21 -0700)]
index/suffixarray: support for serialization

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

12 years agotextproto: parse RFC 959 multiline responses correctly
Brad Fitzpatrick [Thu, 15 Sep 2011 21:29:59 +0000 (14:29 -0700)]
textproto: parse RFC 959 multiline responses correctly

Fixes #2218

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

12 years agohttp: MaxBytesReader doc cleanups
Brad Fitzpatrick [Thu, 15 Sep 2011 21:26:22 +0000 (14:26 -0700)]
http: MaxBytesReader doc cleanups

Comments from rsc after 4921049 was submitted.

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

12 years agohttp: document that Response.Body is non-nil
Brad Fitzpatrick [Thu, 15 Sep 2011 21:09:53 +0000 (14:09 -0700)]
http: document that Response.Body is non-nil

Fixes #2208

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

12 years agoflag: make zero FlagSet useful
Russ Cox [Thu, 15 Sep 2011 21:04:51 +0000 (17:04 -0400)]
flag: make zero FlagSet useful

This makes it possible to use a FlagSet as a
field in a larger struct.

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

12 years agogodoc: use go/build to find files in a package
Russ Cox [Thu, 15 Sep 2011 20:49:06 +0000 (16:49 -0400)]
godoc: use go/build to find files in a package

Fixes #1156.
Fixes #2172.

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

12 years agobuild: add build comments to core packages
Russ Cox [Thu, 15 Sep 2011 20:48:57 +0000 (16:48 -0400)]
build: add build comments to core packages

The go/build package already recognizes
system-specific file names like

        mycode_darwin.go
        mycode_darwin_386.go
        mycode_386.s

However, it is also common to write files that
apply to multiple architectures, so a recent CL added
to go/build the ability to process comments
listing a set of conditions for building.  For example:

        // +build darwin freebsd openbsd/386

says that this file should be compiled only on
OS X, FreeBSD, or 32-bit x86 OpenBSD systems.

These conventions are not yet documented
(hence this long CL description).

This CL adds build comments to the multi-system
files in the core library, a step toward making it
possible to use go/build to build them.

With this change go/build can handle crypto/rand,
exec, net, path/filepath, os/user, and time.

os and syscall need additional adjustments.

R=golang-dev, r, gri, r, gustavo
CC=golang-dev
https://golang.org/cl/5011046

12 years agogo/build: change //build to // +build
Russ Cox [Thu, 15 Sep 2011 20:48:21 +0000 (16:48 -0400)]
go/build: change //build to // +build

New rules as discussed on CL 5011046.
Also apply to C and assembly files, not just Go files.

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

12 years agohttp/cgi: add openbsd environment configuration
Brad Fitzpatrick [Thu, 15 Sep 2011 19:41:00 +0000 (12:41 -0700)]
http/cgi: add openbsd environment configuration

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

12 years agohttp: fix WriteProxy documentation
Brad Fitzpatrick [Thu, 15 Sep 2011 17:28:55 +0000 (10:28 -0700)]
http: fix WriteProxy documentation

Fixes #2258

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

12 years agogo/build: fix build (revert test changes)
Russ Cox [Thu, 15 Sep 2011 16:34:34 +0000 (12:34 -0400)]
go/build: fix build (revert test changes)

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

12 years agogo/build: handle cgo, //build comments
Russ Cox [Thu, 15 Sep 2011 16:11:41 +0000 (12:11 -0400)]
go/build: handle cgo, //build comments

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

12 years agoexp/template/html: pre-sanitized content
Mike Samuel [Thu, 15 Sep 2011 15:51:55 +0000 (08:51 -0700)]
exp/template/html: pre-sanitized content

Not all content is plain text.  Sometimes content comes from a trusted
source, such as another template invocation, an HTML tag whitelister,
etc.

Template authors can deal with over-escaping in two ways.

1) They can encapsulate known-safe content via
   type HTML, type CSS, type URL, and friends in content.go.
2) If they know that the for a particular action never needs escaping
   then they can add |noescape to the pipeline.
   {{.KnownSafeContent | noescape}}
   which will prevent any escaping directives from being added.

This CL defines string type aliases: HTML, CSS, JS, URI, ...
It then modifies stringify to unpack the content type.
Finally it modifies the escaping functions to use the content type and
decline to escape content that does not require it.

There are minor changes to escapeAction and helpers to treat as
equivalent explicit escaping directives such as "html" and "urlquery"
and the escaping directives defined in the contextual autoescape module
and to recognize the special "noescape" directive.

The html escaping functions are rearranged.  Instead of having one
escaping function used in each {{.}} in

    {{.}} : <textarea title="{{.}}">{{.}}</textarea>

a slightly different escaping function is used for each.
When {{.}} binds to a pre-sanitized string of HTML

    `one < <i>two</i> &amp; two < "3"`

we produces something like

     one < <i>two</i> &amp; two < "3" :
     <textarea title="one &lt; two &amp; two &lt; &#34;3&#34;">
       one &lt; &lt;i&gt;two&lt;/i&gt; &amp; two &lt; "3"
     </textarea>

Although escaping is not required in <textarea> normally, if the
substring </textarea> is injected, then it breaks, so we normalize
special characters in RCDATA and do the same to preserve attribute
boundaries.  We also strip tags since developers never intend
typed HTML injected in an attribute to contain tags escaped, but
do occasionally confuse pre-escaped HTML with HTML from a
tag-whitelister.

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

12 years agodoc: release.r60.1
Andrew Gerrand [Thu, 15 Sep 2011 09:26:12 +0000 (19:26 +1000)]
doc: release.r60.1

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

12 years agogodoc: support for complete index serialization
Robert Griesemer [Thu, 15 Sep 2011 03:46:03 +0000 (20:46 -0700)]
godoc: support for complete index serialization

- now fulltext index information is saved/restored
- minor updates to appinit.go

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

12 years agogo/token: support to serialize file sets
Robert Griesemer [Thu, 15 Sep 2011 03:45:45 +0000 (20:45 -0700)]
go/token: support to serialize file sets

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

12 years agoexp/template/html: render templates unusable when escaping fails
Mike Samuel [Thu, 15 Sep 2011 03:40:50 +0000 (20:40 -0700)]
exp/template/html: render templates unusable when escaping fails

This moots a caveat in the proposed package documentation by
rendering useless any template that could not be escaped.

From https://golang.org/cl/4969078/
> If EscapeSet returns an error, do not Execute the set; it is not
> safe against injection.
r: [but isn't the returned set nil? i guess you don't overwrite the
r: original if there's a problem, but i think you're in your rights to
r: do so]

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

12 years agoruntime: eliminate handle churn when churning channels on Windows
Hector Chu [Thu, 15 Sep 2011 00:23:21 +0000 (20:23 -0400)]
runtime: eliminate handle churn when churning channels on Windows

The Windows implementation of the net package churns through a couple of channels for every read/write operation.  This translates into a lot of time spent in the kernel creating and deleting event objects.

R=rsc, dvyukov, alex.brainman, jp
CC=golang-dev
https://golang.org/cl/4997044

12 years agodebug/elf: permit another case of SHT_NOBITS section overlap in test
Ian Lance Taylor [Wed, 14 Sep 2011 22:33:37 +0000 (15:33 -0700)]
debug/elf: permit another case of SHT_NOBITS section overlap in test

Lets test pass when using gccgo.

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

12 years agojson: if a field's tag is "-", never encode it.
David Symonds [Wed, 14 Sep 2011 22:09:43 +0000 (08:09 +1000)]
json: if a field's tag is "-", never encode it.

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

12 years agoexp/template/html: flesh out package documentation.
Mike Samuel [Wed, 14 Sep 2011 21:21:20 +0000 (14:21 -0700)]
exp/template/html: flesh out package documentation.

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

12 years agosrc: fix a couple of govet-discovered errors.
Rob Pike [Wed, 14 Sep 2011 20:29:31 +0000 (13:29 -0700)]
src: fix a couple of govet-discovered errors.

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

12 years agocrypto/tls: support SSLv3
Adam Langley [Wed, 14 Sep 2011 19:32:19 +0000 (15:32 -0400)]
crypto/tls: support SSLv3

It would be nice not to have to support this since all the clients
that we care about support TLSv1 by now. However, due to buggy
implementations of SSLv3 on the Internet which can't do version
negotiation correctly, browsers will sometimes switch to SSLv3. Since
there's no good way for a browser tell a network problem from a buggy
server, this downgrade can occur even if the server in question is
actually working correctly.

So we need to support SSLv3 for robustness :(

Fixes #1703.

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

12 years agoexp/template/html: check that modified nodes are not shared by templates
Mike Samuel [Wed, 14 Sep 2011 18:52:03 +0000 (11:52 -0700)]
exp/template/html: check that modified nodes are not shared by templates

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

12 years agopath/filepath: document that Walk sorts its output
Rob Pike [Wed, 14 Sep 2011 18:18:43 +0000 (11:18 -0700)]
path/filepath: document that Walk sorts its output

R=golang-dev, cw
CC=golang-dev
https://golang.org/cl/5004045

12 years agoexp/norm: added normregtest to .hgignore.
Marcel van Lohuizen [Wed, 14 Sep 2011 18:03:21 +0000 (20:03 +0200)]
exp/norm: added normregtest to .hgignore.

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

12 years agotest: Add test for inheriting private method from anonymous field.
Ian Lance Taylor [Wed, 14 Sep 2011 17:31:51 +0000 (10:31 -0700)]
test: Add test for inheriting private method from anonymous field.

The spec says that all methods are inherited from an anonymous
field.  There is no exception for non-exported methods.

This is related to issue 1536.

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

12 years agogo/printer: use panic/defer instead of goroutine
Robert Griesemer [Wed, 14 Sep 2011 15:49:21 +0000 (08:49 -0700)]
go/printer: use panic/defer instead of goroutine
for handling errors

Fixes #2249.

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

12 years agogofmt: add else test
Russ Cox [Wed, 14 Sep 2011 15:29:18 +0000 (11:29 -0400)]
gofmt: add else test

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

12 years agowebsocket: rename websocket.WebSocketAddr to *websocket.Addr.
Russ Cox [Wed, 14 Sep 2011 15:29:11 +0000 (11:29 -0400)]
websocket: rename websocket.WebSocketAddr to *websocket.Addr.

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

12 years agoruntime: track HeapIdle
Russ Cox [Wed, 14 Sep 2011 15:29:01 +0000 (11:29 -0400)]
runtime: track HeapIdle

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

12 years agoimage/jpeg: fix build
Mikio Hara [Wed, 14 Sep 2011 15:14:03 +0000 (11:14 -0400)]
image/jpeg: fix build

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

12 years agoimage/draw: unbreak build for image.NewXxx change.
Nigel Tao [Wed, 14 Sep 2011 12:09:46 +0000 (22:09 +1000)]
image/draw: unbreak build for image.NewXxx change.

TBR=rsc
CC=golang-dev
https://golang.org/cl/5016044

12 years agoimage: change the NewXxx functions to take a Rectangle instead of
Nigel Tao [Wed, 14 Sep 2011 11:39:49 +0000 (21:39 +1000)]
image: change the NewXxx functions to take a Rectangle instead of
taking (w, h int).

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

12 years agoruntime: syscall to return both AX and DX for windows/386
Alex Brainman [Wed, 14 Sep 2011 06:19:45 +0000 (16:19 +1000)]
runtime: syscall to return both AX and DX for windows/386

Fixes #2181.

R=golang-dev, jp
CC=golang-dev
https://golang.org/cl/5000042

12 years agotemplate: add doc.go to Makefile
Mike Samuel [Wed, 14 Sep 2011 01:50:02 +0000 (18:50 -0700)]
template: add doc.go to Makefile

The template package is the only one that has a doc.go not mentioned
in its Makefile.

This doesn't seem to bother godoc, but seems like a bug to me.

$ for d in $(find pkg -name doc.go); do echo $d; grep doc.go $(dirname $d)/Makefile; done
pkg/fmt/doc.go
        doc.go\
pkg/go/doc/doc.go
        doc.go\
pkg/gob/doc.go
        doc.go\
pkg/html/doc.go
        doc.go\
pkg/old/template/doc.go
        doc.go\
pkg/sync/atomic/doc.go
        doc.go\
pkg/template/doc.go

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

12 years agoexp/template/html: move transition functions to a separate file
Mike Samuel [Wed, 14 Sep 2011 00:53:55 +0000 (17:53 -0700)]
exp/template/html: move transition functions to a separate file

This CL moves code but makes no changes otherwise.

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

12 years agopath/filepath: new signature for Walk
Rob Pike [Wed, 14 Sep 2011 00:47:59 +0000 (17:47 -0700)]
path/filepath: new signature for Walk
This one uses a closure than an interface, and is much simpler to use.
It also enables a called function to return an error and (possibly)
halt processing.

Fixes #2237.

R=golang-dev, gri, rsc, r, cw, n13m3y3r
CC=golang-dev
https://golang.org/cl/5014043

12 years agoexp/template/html: escape {{template}} calls and sets of templates
Mike Samuel [Tue, 13 Sep 2011 23:57:39 +0000 (16:57 -0700)]
exp/template/html: escape {{template}} calls and sets of templates

This adds support for {{template "callee"}} calls.
It recognizes that calls can appear in many contexts.

{{if .ImageURL}}
    <img src="{{.ImageURL}}" alt="{{template "description"}}">
{{else}}
    <p>{{template "description"}}</p>
{{end}}

calls a template in two different contexts, first in an HTML attribute
context, and second in an HTML text context.

Those two contexts aren't very different, but when linking text
to search terms, the escaping context can be materially different:

<a href="/search?q={{template "tags"}}">{{template "tags"}}</a>

This adds API:
EscapeSet(*template.Set, names ...string) os.Error

takes a set of templates and the names of those which might be called
in the default context as starting points.

It changes the escape* functions to be methods of an object which
maintains a conceptual mapping of
(template names*input context) -> output context.

The actual mapping uses as key a mangled name which combines the
template name with the input context.

The mangled name when the input context is the default context is the
same as the unmangled name.

When a template is called in multiple contexts, we clone the template.

{{define "tagLink"}}
  <a href="/search?q={{template "tags"}}">{{template "tags"}}</a>
{{end}}
{{define "tags"}}
  {{range .Tags}}{{.}},{{end}}
{{end}}

given []string{ "foo", "O'Reilly", "bar" } produces

  <a href="/search?q=foo,O%27Reilly,bar">foo,O&#39;Reilly,bar</a>

This involves rewriting the above to something like

{{define "tagLink"}}
  <a href="/search?q={{template "tags$1"}}">{{template "tags"}}</a>
{{end}}
{{define "tags"}}
  {{range .Tags}}{{. | html}},{{end}}
{{end}}
{{define "tags$1"}}
  {{range .Tags}}{{. | urlquery}},{{end}}
{{end}}

clone.go provides a mechanism for cloning template "tags" to produce
"tags$1".

changes to escape.go implement the new API and context propagation
around the call graph.

context.go includes minor changes to support name mangling and
context_test.go tests those.

js.go contains a bug-fix.

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

12 years agohttp: Alphabetize imports.
Ian Lance Taylor [Tue, 13 Sep 2011 16:38:26 +0000 (09:38 -0700)]
http: Alphabetize imports.

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

12 years agoos: Fix comment in generated signal_unix.go file.
Ian Lance Taylor [Tue, 13 Sep 2011 16:38:08 +0000 (09:38 -0700)]
os: Fix comment in generated signal_unix.go file.

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

12 years agoexp/norm: Added regression test tool for the standard Unicode test set.
Marcel van Lohuizen [Tue, 13 Sep 2011 10:51:48 +0000 (12:51 +0200)]
exp/norm: Added regression test tool for the standard Unicode test set.

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

12 years agonet: add a LookupTXT function.
Nigel Tao [Tue, 13 Sep 2011 03:05:33 +0000 (13:05 +1000)]
net: add a LookupTXT function.

This CL only supports Unix, not Plan 9 or Windows.

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

12 years agotime: another attempt to fix windows build
Alex Brainman [Tue, 13 Sep 2011 02:42:24 +0000 (12:42 +1000)]
time: another attempt to fix windows build

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

12 years agotime: fix Windows build after ceeedb519c4a
Brad Fitzpatrick [Tue, 13 Sep 2011 00:18:25 +0000 (17:18 -0700)]
time: fix Windows build after ceeedb519c4a

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

12 years agoexp/template/html: tolerate '/' ambiguity in JS when it doesn't matter.
Mike Samuel [Mon, 12 Sep 2011 23:37:03 +0000 (16:37 -0700)]
exp/template/html: tolerate '/' ambiguity in JS when it doesn't matter.

Often, division/regexp ambiguity doesn't matter in JS because the next
token is not a slash.

For example, in

  <script>var global{{if .InitVal}} = {{.InitVal}}{{end}}</script>

When there is an initial value, the {{if}} ends with jsCtxDivOp
since a '/' following {{.InitVal}} would be a division operator.
When there is none, the empty {{else}} branch ends with jsCtxRegexp
since a '/' would start a regular expression.  A '/' could result
in a valid program if it were on a new line to allow semicolon
insertion to terminate the VarDeclaration.

There is no '/' though, so we can ignore the ambiguity.

There are cases where a missing semi can result in ambiguity that
we should report.

  <script>
  {{if .X}}var x = {{.X}}{{end}}
  /...{{.Y}}
  </script>

where ... could be /foo/.test(bar) or /divisor.  Disambiguating in
this case is hard and is required to sanitize {{.Y}}.

Note, that in the case where there is a '/' in the script tail but it
is not followed by any interpolation, we already don't care.  So we
are already tolerant of

<script>{{if .X}}var x = {{.X}}{{end}}/a-bunch-of-text</script>

because tJS checks for </script> before looking in /a-bunch-of-text.

This CL
- Adds a jsCtx value: jsCtxUnknown
- Changes joinContext to join contexts that only differ by jsCtx.
- Changes tJS to return an error when a '/' is seen in jsCtxUnknown.
- Adds tests for both the happy and sad cases.

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

12 years agoexp/template/html: fix bug /*/ is not a full JS block comment.
Mike Samuel [Mon, 12 Sep 2011 23:01:30 +0000 (16:01 -0700)]
exp/template/html: fix bug /*/ is not a full JS block comment.

Similar tests for CSS already catch this problem in tCSS.

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

12 years agocrypto/tls: handle non-TLS more robustly
Russ Cox [Mon, 12 Sep 2011 20:52:49 +0000 (16:52 -0400)]
crypto/tls: handle non-TLS more robustly

Fixes #2253.

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

12 years agogc: clean up if grammar
Russ Cox [Mon, 12 Sep 2011 19:52:29 +0000 (15:52 -0400)]
gc: clean up if grammar

Fixes #2248.

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

12 years agogofmt: accept program fragments on standard input
Russ Cox [Mon, 12 Sep 2011 19:41:49 +0000 (15:41 -0400)]
gofmt: accept program fragments on standard input

This makes it possible to grab a block of code
in an editor and pipe it through gofmt, instead of
having to pipe in the entire file.

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

12 years agogodoc, suffixarray: switch to exp/regexp
Robert Griesemer [Mon, 12 Sep 2011 19:20:48 +0000 (12:20 -0700)]
godoc, suffixarray: switch to exp/regexp

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

12 years agopath/filepath: fix Visitor doc
Gustavo Niemeyer [Mon, 12 Sep 2011 19:18:48 +0000 (16:18 -0300)]
path/filepath: fix Visitor doc

The path is not in fact relative to the root, but
joined to it.

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

12 years agotime: make Weekday a method.
Rob Pike [Mon, 12 Sep 2011 18:47:55 +0000 (11:47 -0700)]
time: make Weekday a method.
Weekday is redundant information for a Time structure.
When parsing a time with a weekday specified, it can create an
incorrect Time value.
When parsing a time without a weekday specified, people
expect the weekday to be set.
Fix all three problems by computing the weekday on demand.

This is hard to gofix, since we must change the type of the node.
Since uses are rare and existing code will be caught by the compiler,
there is no gofix module here.

Fixes #2245.

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

12 years agoexp/regexp/syntax: fix invalid input parser crash
Russ Cox [Mon, 12 Sep 2011 18:03:53 +0000 (14:03 -0400)]
exp/regexp/syntax: fix invalid input parser crash

Reported by Kyle Lemons.

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

12 years agowebsocket: Fix infinite recursion in WebSockAddr String()
Tarmigan Casebolt [Mon, 12 Sep 2011 17:48:56 +0000 (13:48 -0400)]
websocket: Fix infinite recursion in WebSockAddr String()

String() is already inherited from the embedded *url.URL

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

12 years agoexp/norm: fixed typo. Bug exposed by gomake testtables. Changes did not affect other...
Marcel van Lohuizen [Mon, 12 Sep 2011 08:21:35 +0000 (10:21 +0200)]
exp/norm: fixed typo. Bug exposed by gomake testtables. Changes did not affect other tests
as this part of Hangul is handled algorithmically.

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

12 years agoexp/template/html: fix JS regexp escape of an empty string.
Nigel Tao [Mon, 12 Sep 2011 01:57:34 +0000 (11:57 +1000)]
exp/template/html: fix JS regexp escape of an empty string.

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

12 years agoimage/png: don't use a goroutine to decode. This was preventing
Nigel Tao [Fri, 9 Sep 2011 23:51:13 +0000 (09:51 +1000)]
image/png: don't use a goroutine to decode. This was preventing
decoding during an init function.

Fixes #2224.

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

12 years agodoc: link to notable blog posts
Andrew Gerrand [Fri, 9 Sep 2011 23:35:25 +0000 (09:35 +1000)]
doc: link to notable blog posts

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

12 years agold: grow dwarf includestack on demand.
Luuk van Dijk [Fri, 9 Sep 2011 13:08:57 +0000 (15:08 +0200)]
ld: grow dwarf includestack on demand.

Fixes #2241
while not breaking issue 1878 again.

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

12 years agopath/filepath: make UNC file names work
Yasuhiro Matsumoto [Fri, 9 Sep 2011 07:38:29 +0000 (17:38 +1000)]
path/filepath: make UNC file names work

Fixes #2201

R=golang-dev, r, rsc, alex.brainman, robert.hencke, jp
CC=golang-dev
https://golang.org/cl/4950051

12 years agoexp/template/html: Grammar rules for HTML comments and special tags.
Mike Samuel [Fri, 9 Sep 2011 07:07:40 +0000 (00:07 -0700)]
exp/template/html: Grammar rules for HTML comments and special tags.

Augments type context and adds grammatical rules to handle special HTML constructs:
    <!-- comments -->
    <script>raw text</script>
    <textarea>no tags here</textarea>

This CL does not elide comment content.  I recommend we do that but
have not done it in this CL.

I used a codesearch tool over a codebase in another template language.

Based on the below I think we should definitely recognize
  <script>, <style>, <textarea>, and <title>
as each of these appears frequently enough that there are few
template using apps that do not use most of them.

Of the other special tags,
  <xmp>, <noscript>
are used but infrequently, and
  <noframe> and friend, <listing>
do not appear at all.

We could support <xmp> even though it is obsolete in HTML5
because we already have the machinery, but I suggest we do not
support noscript since it is a normal tag in some browser
configurations.

I suggest recognizing and eliding <!-- comments -->
(but not escaping text spans) as they are widely used to
embed comments in template source.  Not eliding them increases
the size of content sent over the network, and risks leaking
code and project internal details.
The template language I tested elides them so there are
no instance of IE conditional compilation directives in the
codebase but that could be a source of confusion.

The codesearch does the equivalent of
$ find . -name \*.file-extension \
  | perl -ne 'print "\L$1\n" while s@<([a-z][a-z0-9])@@i' \
  | sort | uniq -c | sort

The 5 uses of <plaintext> seem to be in tricky code and can be ignored.
The 2 uses of <xmp> appear in the same tricky code and can be ignored.
I also ignored end tags to avoid biasing against unary
elements and threw out some nonsense names since since the
long tail is dominated by uses of < as a comparison operator
in the template languages expression language.

I have added asterisks next to abnormal elements.

  26765 div
   7432 span
   7414 td
   4233 a
   3730 tr
   3238 input
   2102 br
   1756 li
   1755 img
   1674 table
   1388 p
   1311 th
   1064 option
    992 b
    891 label
    714 script *
    519 ul
    446 tbody
    412 button
    381 form
    377 h2
    358 select
    353 strong
    318 h3
    314 body
    303 html
    266 link
    262 textarea *
    261 head
    258 meta
    225 title *
    189 h1
    176 col
    156 style *
    151 hr
    119 iframe
    103 h4
    101 pre
    100 dt
     98 thead
     90 dd
     83 map
     80 i
     69 object
     66 ol
     65 em
     60 param
     60 font
     57 fieldset
     51 string
     51 field
     51 center
     44 bidi
     37 kbd
     35 legend
     30 nobr
     29 dl
     28 var
     26 small
     21 cite
     21 base
     20 embed
     19 colgroup
     12 u
     12 canvas
     10 sup
     10 rect
     10 optgroup
     10 noscript *
      9 wbr
      9 blockquote
      8 tfoot
      8 code
      8 caption
      8 abbr
      7 msg
      6 tt
      6 text
      6 h5
      5 svg
      5 plaintext *
      5 article
      4 shortquote
      4 number
      4 menu
      4 ins
      3 progress
      3 header
      3 content
      3 bool
      3 audio
      3 attribute
      3 acronym
      2 xmp *
      2 overwrite
      2 objects
      2 nobreak
      2 metadata
      2 description
      2 datasource
      2 category
      2 action

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

12 years agogodoc: fine tuning of template file
Robert Griesemer [Fri, 9 Sep 2011 01:27:26 +0000 (18:27 -0700)]
godoc: fine tuning of template file

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

12 years agoos: forgotten file of submitted CL 4984051
Jaroslavas Počepko [Thu, 8 Sep 2011 23:39:23 +0000 (09:39 +1000)]
os: forgotten file of submitted CL 4984051

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

12 years agogodoc: show packages matching a query at the top
Robert Griesemer [Thu, 8 Sep 2011 22:35:56 +0000 (15:35 -0700)]
godoc: show packages matching a query at the top

Also: fix layout of textual search results and
fix a field reference in the respective template.

Fixes #1987.

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

12 years agoexp/template/html: autoescape actions in HTML style attributes.
Mike Samuel [Thu, 8 Sep 2011 21:18:20 +0000 (07:18 +1000)]
exp/template/html: autoescape actions in HTML style attributes.

This does not wire up <style> elements as that is pending support
for raw text content in CL https://golang.org/cl/4964045/

This CL allows actions to appear in contexts like

selectors:        {{.Tag}}{{.Class}}{{.Id}}
property names:   border-{{.BidiLeadingEdge}}
property values:  color: {{.Color}}
strings:          font-family: "{{font-name}}"
URL strings:      background: "/foo?image={{.ImgQuery}}"
URL literals:     background: url("{{.Image}}")

but disallows actions inside CSS comments and disallows
embedding of JS in CSS entirely.

It is based on the CSS3 lexical grammar with affordances for
common browser extensions including line comments.

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

12 years agoexp/regexp: add MustCompilePOSIX
Russ Cox [Thu, 8 Sep 2011 19:00:49 +0000 (15:00 -0400)]
exp/regexp: add MustCompilePOSIX

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

12 years agoexp/regexp: add CompilePOSIX, more tests
Russ Cox [Thu, 8 Sep 2011 18:49:51 +0000 (14:49 -0400)]
exp/regexp: add CompilePOSIX, more tests

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

12 years agoexp/regexp/syntax: import all RE2 parse tests + fix bugs
Russ Cox [Thu, 8 Sep 2011 18:18:02 +0000 (14:18 -0400)]
exp/regexp/syntax: import all RE2 parse tests + fix bugs

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

12 years agosyscall: add route flags for linux
Mikio Hara [Thu, 8 Sep 2011 17:59:34 +0000 (13:59 -0400)]
syscall: add route flags for linux

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

12 years agogodoc: fix local link for factory functions
Robert Griesemer [Thu, 8 Sep 2011 17:37:26 +0000 (10:37 -0700)]
godoc: fix local link for factory functions

- fix suggested by rodrigo.moraes

Fixes #1755.

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

12 years agoexp/regexp: leftmost-longest matching
Russ Cox [Thu, 8 Sep 2011 14:09:25 +0000 (10:09 -0400)]
exp/regexp: leftmost-longest matching

Not exposed in the API yet, but passes tests.

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

12 years agocodereview: Mercurial 1.9 fix for hg diff @nnn
Russ Cox [Thu, 8 Sep 2011 14:08:49 +0000 (10:08 -0400)]
codereview: Mercurial 1.9 fix for hg diff @nnn

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

12 years agosync/atomic: add 64-bit Load and Store
Dmitriy Vyukov [Thu, 8 Sep 2011 07:58:48 +0000 (11:58 +0400)]
sync/atomic: add 64-bit Load and Store

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

12 years agoos: os.RemoveAll has to check for 2 error codes on Windows. ENOENT is not enough.
Jaroslavas Počepko [Thu, 8 Sep 2011 07:27:41 +0000 (17:27 +1000)]
os: os.RemoveAll has to check for 2 error codes on Windows. ENOENT is not enough.
os.Lstat can return ENOTDIR as well.

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

12 years agoWindows: net, syscall: implement SetsockoptIPMReq(), move to winsock v2.2 for multica...
Paul Lalonde [Thu, 8 Sep 2011 06:32:40 +0000 (16:32 +1000)]
Windows: net, syscall: implement SetsockoptIPMReq(), move to winsock v2.2 for multicast support.
I don't know the protocol regarding the zsyscall files which appear to
be hand-generated, so I've re-done them and added them to the change.

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

12 years agoA+C: Paul Lalonde (individual CLA).
Nigel Tao [Thu, 8 Sep 2011 06:31:13 +0000 (16:31 +1000)]
A+C: Paul Lalonde (individual CLA).

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

12 years agosync/atomic: do not run TestStoreLoadSeq for too long (fix windows builder)
Alex Brainman [Thu, 8 Sep 2011 03:31:40 +0000 (13:31 +1000)]
sync/atomic: do not run TestStoreLoadSeq for too long (fix windows builder)

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

12 years agotag release.r60
Andrew Gerrand [Thu, 8 Sep 2011 02:54:35 +0000 (12:54 +1000)]
tag release.r60

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

12 years agodoc: release.r60
Andrew Gerrand [Thu, 8 Sep 2011 02:08:07 +0000 (12:08 +1000)]
doc: release.r60

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

12 years agodoc: fix date in weekly snapshot history
Andrew Gerrand [Thu, 8 Sep 2011 00:03:27 +0000 (10:03 +1000)]
doc: fix date in weekly snapshot history

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

12 years agotag weekly.2011-09-07
Andrew Gerrand [Wed, 7 Sep 2011 23:45:47 +0000 (09:45 +1000)]
tag weekly.2011-09-07

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

12 years agoweekly.2011-09-07 weekly.2011-09-07
Andrew Gerrand [Wed, 7 Sep 2011 23:43:35 +0000 (09:43 +1000)]
weekly.2011-09-07

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

12 years agoundo CL 4964067 / 661cb84cc6f0
Robert Griesemer [Wed, 7 Sep 2011 22:19:53 +0000 (15:19 -0700)]
undo CL 4964067 / 661cb84cc6f0

API change. Needs further reflection.

««« original CL description
path/filepath: Simplify Walk interface

The last argument of filepath.Walk was removed, and the Visitor
interface now contains an Error method that is called on errors.

Fixes #2237.

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

»»»

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

12 years agopath/filepath: Simplify Walk interface
Gustavo Niemeyer [Wed, 7 Sep 2011 21:49:48 +0000 (14:49 -0700)]
path/filepath: Simplify Walk interface

The last argument of filepath.Walk was removed, and the Visitor
interface now contains an Error method that is called on errors.

Fixes #2237.

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

12 years agogc: add -p flag to catch import cycles earlier
Russ Cox [Wed, 7 Sep 2011 19:50:21 +0000 (15:50 -0400)]
gc: add -p flag to catch import cycles earlier

The linker would catch them if gc succeeded,
but too often the cycle manifests as making the
current package and the imported copy of itself
appear as different packages, which result in
type signature mismatches that confuse users.

As a crutch, add the -p flag to say 'if you see an
import of this package, give up early'.  Results in
messages like (during gotest in sort):

export_test.go:7: import "sort" while compiling that package (import cycle)
export_test.go:7: import "container/heap": package depends on "sort" (import cycle)

Fixes #2042.

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

12 years agonet: sync CIDRMask code, doc
Russ Cox [Wed, 7 Sep 2011 19:50:07 +0000 (15:50 -0400)]
net: sync CIDRMask code, doc

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

12 years ago5a, 5c, 6a, 6c, 8a, 8c: fix Windows file paths
Hector Chu [Wed, 7 Sep 2011 19:49:56 +0000 (15:49 -0400)]
5a, 5c, 6a, 6c, 8a, 8c: fix Windows file paths

Verified with objdump -W.

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

12 years agoexp/regexp: bug fixes and RE2 tests
Russ Cox [Wed, 7 Sep 2011 19:48:06 +0000 (15:48 -0400)]
exp/regexp: bug fixes and RE2 tests

Also add exp/regexp to build (forgot before).

At this point I am very confident in exp/regexp's
behavior.  It should be usable as a drop-in
replacement for regexp now.

Later CLs could introduce a CompilePOSIX
to get at traditional POSIX ``extended regular expressions''
as in egrep and also an re.MatchLongest method to
change the matching mode to leftmost longest
instead of leftmost first.  On the other hand, I expect
very few people to use either.

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

12 years agonet: ParseCIDR returns IPNet instead of IPMask
Mikio Hara [Wed, 7 Sep 2011 18:01:12 +0000 (14:01 -0400)]
net: ParseCIDR returns IPNet instead of IPMask

Note that this CL will break your existing code which uses
ParseCIDR.

This CL changes ParseCIDR("172.16.253.121/28") to return
the IP address "172.16.253.121", the network implied by the
network number "172.16.253.112" and mask "255.255.255.240".

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

12 years agogc: silence Plan 9 warnings
Lucio De Re [Wed, 7 Sep 2011 17:55:48 +0000 (13:55 -0400)]
gc: silence Plan 9 warnings

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

12 years agosort: use heapsort to bail out quicksort
Ziad Hatahet [Wed, 7 Sep 2011 17:54:33 +0000 (13:54 -0400)]
sort: use heapsort to bail out quicksort

See http://research.swtch.com/2008/01/killing-quicksort.html for more
info.
Fixes #467.

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

12 years agogopprof: regexp fixes
Hector Chu [Wed, 7 Sep 2011 17:53:29 +0000 (13:53 -0400)]
gopprof: regexp fixes

Extract Windows filenames correctly.
Don't remove receivers from method names.

Fixes #2227.

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

12 years agoA+C: Ziad Hatahet (individual CLA)
Russ Cox [Wed, 7 Sep 2011 17:53:05 +0000 (13:53 -0400)]
A+C: Ziad Hatahet (individual CLA)

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

12 years agosync/atomic: add Store functions
Dmitriy Vyukov [Wed, 7 Sep 2011 17:50:51 +0000 (21:50 +0400)]
sync/atomic: add Store functions

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