]> Cypherpunks repositories - gostls13.git/log
gostls13.git
13 years agoruntime: check for nil value pointer in select syncsend case
Ian Lance Taylor [Tue, 27 Sep 2011 03:46:37 +0000 (20:46 -0700)]
runtime: check for nil value pointer in select syncsend case

Fixes #2309.

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

13 years agoexp/norm: fix benchmark bug
Robert Griesemer [Tue, 27 Sep 2011 01:23:21 +0000 (18:23 -0700)]
exp/norm: fix benchmark bug

- don't use range over string to copy string bytes
- some code simplification

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

13 years agowebsocket: remove use of container/vector
Russ Cox [Mon, 26 Sep 2011 23:52:34 +0000 (19:52 -0400)]
websocket: remove use of container/vector

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

13 years agobytes: add EqualFold
Russ Cox [Mon, 26 Sep 2011 23:35:32 +0000 (19:35 -0400)]
bytes: add EqualFold

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

13 years agotest: silence/coalesce some tests
Russ Cox [Mon, 26 Sep 2011 23:35:21 +0000 (19:35 -0400)]
test: silence/coalesce some tests

Add copyright notice to nilptr.go.

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

13 years agogob: protect against invalid message length
Rob Pike [Mon, 26 Sep 2011 22:58:01 +0000 (15:58 -0700)]
gob: protect against invalid message length
Fixes #2301.

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

13 years agoregexp: move to old/regexp, replace with exp/regexp
Russ Cox [Mon, 26 Sep 2011 22:33:13 +0000 (18:33 -0400)]
regexp: move to old/regexp, replace with exp/regexp

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

13 years agostrings: add EqualFold
Russ Cox [Mon, 26 Sep 2011 22:32:51 +0000 (18:32 -0400)]
strings: add EqualFold

Case-insensitive strcmp without using ToLower.
(Using ToLower is not always correct, and it allocates.)

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

13 years agocodereview: extra repo sanity check
Russ Cox [Mon, 26 Sep 2011 22:32:16 +0000 (18:32 -0400)]
codereview: extra repo sanity check

Also work around Mercurial issue 3023.

If anyone has local changes in their repo (due to
patch queues or whatever) stop them from leaking
into the main repository.

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

13 years agostrconv: faster Unquote in common case
Russ Cox [Mon, 26 Sep 2011 17:59:12 +0000 (13:59 -0400)]
strconv: faster Unquote in common case

Also reject literal newline in " and ' quoted strings.

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

13 years agotest: merge nilptr/* into one test
Russ Cox [Mon, 26 Sep 2011 17:59:01 +0000 (13:59 -0400)]
test: merge nilptr/* into one test

The 512 MB array causes load delays on some systems.
Now that we have recover, we can do all the tests in
one binary, so that the delay is incurred just once.

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

13 years agotest: disable sigchld test on Windows
Russ Cox [Mon, 26 Sep 2011 17:11:22 +0000 (13:11 -0400)]
test: disable sigchld test on Windows

Alex Brainman reports that this is the only test
that keeps us from running test/run.

R=alex.brainman, lucio.dere, bradfitz, hectorchu
CC=golang-dev
https://golang.org/cl/4777043

13 years agounicode: fix make tables
Russ Cox [Mon, 26 Sep 2011 17:10:16 +0000 (13:10 -0400)]
unicode: fix make tables

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

13 years agodoc: fix memory model read visibility bug
Russ Cox [Mon, 26 Sep 2011 16:54:30 +0000 (12:54 -0400)]
doc: fix memory model read visibility bug

Fixes #2277.

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

13 years agoexp/ssh: move common code to common.go
Dave Cheney [Mon, 26 Sep 2011 14:25:13 +0000 (10:25 -0400)]
exp/ssh: move common code to common.go

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

13 years agoexp/template/html: make sure marshalled JSON can be parsed as JS.
Mike Samuel [Mon, 26 Sep 2011 09:10:43 +0000 (02:10 -0700)]
exp/template/html: make sure marshalled JSON can be parsed as JS.

This makes sure that all JS newlines are encoded in JSON.

It also moots a TODO about possibly escaping supplemental codepoints.
I served:

Content-Type: text/javascript;charset=UTF-8

var s = "%s";
document.write("<p>", s, "</p><ol>");
for (var i = 0; i < s.length; i++) {
  document.write("<li>", s.charCodeAt(i).toString(16), "</li>");
}
document.write("</l>");

where %s was replaced with bytes "\xf0\x9d\x84\x9e" to test
straight UTF-8 instead of encoding surrogates separately.

Recent Firefox, Chrome, and Safari all decoded it properly.
I have yet to try it on IE or older versions.

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

13 years agoexp/template/html: fix infinite loop in escapeText on bad input
Mike Samuel [Mon, 26 Sep 2011 07:56:49 +0000 (00:56 -0700)]
exp/template/html: fix infinite loop in escapeText on bad input

The template
    "<a="
caused an infinite loop in escape text.

The change to tTag fixes that and the change to escape.go causes
escapeText to panic on any infinite loop that does not involve
a state cycle.

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

13 years agoexp/template/html: error out on ambiguous unquoted attributes
Mike Samuel [Mon, 26 Sep 2011 07:42:38 +0000 (00:42 -0700)]
exp/template/html: error out on ambiguous unquoted attributes

HTML parsers may differ on whether
<input id= onchange=f(             ends in id's or onchange's value,
<a class=`foo                      ends inside a value,
<input style=font:'Arial'          needs open-quote fixup.

Per
http://www.w3.org/TR/html5/tokenization.html#attribute-value-unquoted-state
this treats the error cases in 8.2.4.40 Attribute value (unquoted) state
as fatal errors.

\> U+0022 QUOTATION MARK (")
\> U+0027 APOSTROPHE (')
\> U+003C LESS-THAN SIGN (<)
\> U+003D EQUALS SIGN (=)
\> U+0060 GRAVE ACCENT (`)
        Parse error. Treat it as per the "anything else" entry below.

and emits ErrBadHTML.

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

13 years agoexp/template/html: remove TODO comments that have been done or mooted
Mike Samuel [Mon, 26 Sep 2011 07:10:21 +0000 (00:10 -0700)]
exp/template/html: remove TODO comments that have been done or mooted

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

13 years agoarchive/zip: read and write unix file modes
Gustavo Niemeyer [Sun, 25 Sep 2011 23:48:03 +0000 (20:48 -0300)]
archive/zip: read and write unix file modes

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

13 years agorpc: fix typo in documentation client example
David G. Andersen [Sun, 25 Sep 2011 04:19:08 +0000 (14:19 +1000)]
rpc:  fix typo in documentation client example
The example incorrectly dereferenced an integer variable

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

13 years agotest: match gccgo error messages
Ian Lance Taylor [Sat, 24 Sep 2011 04:23:40 +0000 (21:23 -0700)]
test: match gccgo error messages

bug340.go:14:7: error: expected type
bug340.go:15:4: error: reference to undefined field or method ‘x’

bug350.go:12:1: error: redefinition of ‘m’
bug350.go:11:1: note: previous definition of ‘m’ was here
bug350.go:15:1: error: redefinition of ‘p’
bug350.go:14:1: note: previous definition of ‘p’ was here

bug351.go:12:6: error: non-name on left side of ‘:=’

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

13 years agosyscall: mksyscall_windows.pl to produce packages other than syscall (for example...
Jaroslavas Počepko [Sat, 24 Sep 2011 00:38:39 +0000 (10:38 +1000)]
syscall: mksyscall_windows.pl to produce packages other than syscall (for example pkg/exp/wingui/zwinapi.go)

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

13 years agohttp: add Location method to Response
Brad Fitzpatrick [Fri, 23 Sep 2011 17:57:31 +0000 (10:57 -0700)]
http: add Location method to Response

Fixes #2300

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

13 years agoexp/template/html: tighten rules on dynamic attr names.
Mike Samuel [Fri, 23 Sep 2011 16:25:10 +0000 (09:25 -0700)]
exp/template/html: tighten rules on dynamic attr names.

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

13 years agosuffixarray: add benchmarks for construction
Eric Eisner [Fri, 23 Sep 2011 16:18:10 +0000 (09:18 -0700)]
suffixarray: add benchmarks for construction

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

13 years agosyscall: add GetsockoptByte, SetsockoptByte for openbsd
Mikio Hara [Fri, 23 Sep 2011 14:39:19 +0000 (23:39 +0900)]
syscall: add GetsockoptByte, SetsockoptByte for openbsd

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

13 years agosyscall: add IPv4 ancillary data for linux
Mikio Hara [Fri, 23 Sep 2011 14:38:52 +0000 (23:38 +0900)]
syscall: add IPv4 ancillary data for linux

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

13 years agonet: make use of AF_UNSPEC instead of individual address family
Mikio Hara [Fri, 23 Sep 2011 14:37:42 +0000 (23:37 +0900)]
net: make use of AF_UNSPEC instead of individual address family

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

13 years agoruntime: gdb support: gracefully handle not being able to find types
Luuk van Dijk [Fri, 23 Sep 2011 08:28:02 +0000 (10:28 +0200)]
runtime: gdb support: gracefully handle not being able to find types

The Dwarf info has the full typenames, the go *struct runtime.commonType
has the short name.  A more permanent fix would link the two together
but this way the user gets useable stack traces for now.

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

13 years agosyscall: mark stdin, stdout and stderr as non-inheritable by child process
Alex Brainman [Fri, 23 Sep 2011 08:16:13 +0000 (18:16 +1000)]
syscall: mark stdin, stdout and stderr as non-inheritable by child process

Fixes #2250.

R=golang-dev, hectorchu
CC=golang-dev, vincent.vanackere
https://golang.org/cl/5086050

13 years agowebsocket: add mutex to make websocket full-duplex
Fumitoshi Ukai [Fri, 23 Sep 2011 01:49:24 +0000 (21:49 -0400)]
websocket: add mutex to make websocket full-duplex

One benefit of websocket is that it is full-duplex so that it could
send and receive at the same time.
This CL makes websocket goroutine safe, so user could use websocket
both on goroutine for read and on goroutine for write.

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

13 years agovim: Send GoFmt errors to a location list
Paul Sbarra [Thu, 22 Sep 2011 23:38:10 +0000 (09:38 +1000)]
vim: Send GoFmt errors to a location list

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

13 years agodoc: link to image blog post
Andrew Gerrand [Thu, 22 Sep 2011 21:22:28 +0000 (07:22 +1000)]
doc: link to image blog post

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

13 years agotag weekly.2011-09-21
Andrew Gerrand [Thu, 22 Sep 2011 05:08:23 +0000 (15:08 +1000)]
tag weekly.2011-09-21

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

13 years agoweekly.2011-09-21 weekly.2011-09-21
Andrew Gerrand [Thu, 22 Sep 2011 05:06:10 +0000 (15:06 +1000)]
weekly.2011-09-21

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

13 years agoexp/template/html: elide comments in template source.
Mike Samuel [Thu, 22 Sep 2011 04:38:40 +0000 (21:38 -0700)]
exp/template/html: elide comments in template source.

When templates are stored in external files, developers often embed
comments to explain&|disable code.

  <!-- Oblique reference to project code name here -->
  {{if .C}}...{{else}}<!-- commented out default -->{{end}}

This unnecessarily increases the size of shipped HTML and can leak
information.

This change elides all comments of the following types:
1. <!-- ... --> comments found in source.
2. /*...*/ and // comments found in <script> elements.
3. /*...*/ and // comments found in <style> elements.

It does not elide /*...*/ or // comments found in HTML attributes:
4. <button onclick="/*...*/">
5. <div style="/*...*/">

I can find no examples of comments in attributes in Closure Templates
code and doing so would require keeping track of character positions
post decode in

  <button onclick="/&#42;...*/">

To prevent token joining, /*comments*/ are JS and CSS comments are
replaced with a whitespace char.
HTML comments are not, but to prevent token joining we could try to
detect cases like
   <<!---->b>
   </<!---->b>
which has a well defined meaning in HTML but will cause a validator
to barf.  This is difficult, and this is a very minor case.
I have punted for now, but if we need to address this case, the best
way would be to normalize '<' in stateText to '&lt;' consistently.

The whitespace to replace a JS /*comment*/ with depends on whether
there is an embedded line terminator since
    break/*
    */foo
    ...
is equivalent to
    break;
    foo
    ...
while
    break/**/foo
    ...
is equivalent to
    break foo;
    ...

Comment eliding can interfere with IE conditional comments.
http://en.wikipedia.org/wiki/Conditional_comment

<!--[if IE 6]>
<p>You are using Internet Explorer 6.</p>
<![endif]-->

/*@cc_on
  document.write("You are using IE4 or higher");
@*/

I have not encountered these in production template code, and
the typed content change in CL 4962067 provides an escape-hatch
if conditional comments are needed.

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

13 years agoA&C: Add Paul Sbarra.
David Symonds [Thu, 22 Sep 2011 03:05:13 +0000 (13:05 +1000)]
A&C: Add Paul Sbarra.

R=golang-dev, adg
CC=golang-dev, sbarra.paul
https://golang.org/cl/5044045

13 years agoexp/template/html: simplify transition functions
Mike Samuel [Thu, 22 Sep 2011 02:04:41 +0000 (19:04 -0700)]
exp/template/html: simplify transition functions

This simplifies transition functions to make it easier to reliably
elide comments in a later CL.

Before:
- transition functions are responsible for detecting special end tags.
After:
- the code to detect special end tags is done in one place.

We were relying on end tags being skipped which meant we were
not noticing comments inside script/style elements that contain no
substitutions.
This change means we will notice all such comments where necessary,
but stripTags will notice none since it does not need to.  This speeds
up stripTags.

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

13 years agotest: match gccgo error messages
Ian Lance Taylor [Thu, 22 Sep 2011 00:25:48 +0000 (17:25 -0700)]
test: match gccgo error messages

bug363.go:13:12: error: invalid context-determined non-integer type for shift operand
bug363.go:16:12: error: invalid context-determined non-integer type for shift operand

pointer.go:34:6: error: incompatible type in initialization (pointer to interface type has no methods)
pointer.go:36:6: error: incompatible type in initialization

method2.go:15:1: error: invalid pointer or interface receiver type
method2.go:16:1: error: invalid pointer or interface receiver type
method2.go:21:1: error: invalid pointer or interface receiver type
method2.go:22:1: error: invalid pointer or interface receiver type
method2.go:28:15: error: type ‘*Val’ has no method ‘val’
method2.go:33:11: error: reference to undefined field or method ‘val’

shift1.go:19:16: error: invalid context-determined non-integer type for shift operand
shift1.go:24:19: error: invalid context-determined non-integer type for shift operand
shift1.go:25:17: error: invalid context-determined non-integer type for shift operand
shift1.go:18:18: error: shift of non-integer operand
shift1.go:26:13: error: floating point constant truncated to integer
shift1.go:33:15: error: integer constant overflow
shift1.go:34:15: error: integer constant overflow
shift1.go:35:17: error: integer constant overflow

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

13 years agogodoc: simplify internal FileSystem interface
Robert Griesemer [Wed, 21 Sep 2011 22:12:06 +0000 (15:12 -0700)]
godoc: simplify internal FileSystem interface

- also fixed bug: ReadFile never closed the file before
- per suggestion by bradfitz

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

13 years agogob: slightly simpler decodeUint
Robert Griesemer [Wed, 21 Sep 2011 21:47:00 +0000 (14:47 -0700)]
gob: slightly simpler decodeUint

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

13 years agogob: slightly simpler code for encodeUint
Robert Griesemer [Wed, 21 Sep 2011 21:18:48 +0000 (14:18 -0700)]
gob: slightly simpler code for encodeUint

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

13 years agobytes: fix Replace so it actually copies
Gustavo Niemeyer [Wed, 21 Sep 2011 15:36:17 +0000 (12:36 -0300)]
bytes: fix Replace so it actually copies

The documentation for bytes.Replace says it copies
the slice but it won't necessarily copy them.  Since
the data is mutable, breaking the contract is an issue.

We either have to fix this by making the copy at all
times, as suggested in this CL, or we should change the
documentation and perhaps make better use of the fact
it's fine to mutate the slice in place otherwise.

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

13 years agohttp: add a (disabled) test for TLS handshake timeouts
Brad Fitzpatrick [Wed, 21 Sep 2011 15:30:47 +0000 (08:30 -0700)]
http: add a (disabled) test for TLS handshake timeouts

It's currently broken and disabled, pending a fix
for Issue 2281.

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

13 years agoexp/template/html: fix bug, '<' normalization for text nodes that change context
Mike Samuel [Wed, 21 Sep 2011 05:55:14 +0000 (22:55 -0700)]
exp/template/html: fix bug, '<' normalization for text nodes that change context

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

13 years agotest: match gccgo error messages
Ian Lance Taylor [Tue, 20 Sep 2011 23:47:17 +0000 (16:47 -0700)]
test: match gccgo error messages

Added a return to bug357.go to avoid an error which gccgo
reports but 6g does not.

bug353.go:16:14: error: reference to undefined identifer ‘io.ReadWriterCloser’

bug357.go:18:2: error: value computed is not used

bug358.go:14:11: error: imported and not used: ioutil
bug358.go:19:9: error: invalid use of type

bug359.go:25:14: error: redefinition of ‘a’
bug359.go:25:6: note: previous definition of ‘a’ was here
bug359.go:19:6: error: incompatible type in initialization (implicit assignment of ‘list.List’ hidden field ‘front’)

bug362.go:13:6: error: iota is only defined in const declarations
bug362.go:14:6: error: iota is only defined in const declarations
bug362.go:15:6: error: iota is only defined in const declarations

bug363.go:13:12: error: shift of non-integer operand
bug363.go:16:12: error: shift of non-integer operand

bug365.go:15:8: error: expected package

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

13 years agotest: match gccgo error messages for bug349.go
Ian Lance Taylor [Tue, 20 Sep 2011 21:47:48 +0000 (14:47 -0700)]
test: match gccgo error messages for bug349.go

bug349.go:12:14: error: expected ‘;’ or ‘}’ or newline
bug349.go:12:2: error: not enough arguments to return

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

13 years agotest: match gccgo error messages for goto.go and bug344.go
Ian Lance Taylor [Tue, 20 Sep 2011 21:45:54 +0000 (14:45 -0700)]
test: match gccgo error messages for goto.go and bug344.go

goto.go:39:2: error: goto jumps over declaration of ‘x’
goto.go:40:2: note: ‘x’ defined here
goto.go:57:2: error: goto jumps over declaration of ‘x’
goto.go:62:2: note: ‘x’ defined here
goto.go:77:2: error: goto jumps over declaration of ‘x’
goto.go:78:2: note: ‘x’ defined here
goto.go:87:2: error: goto jumps over declaration of ‘x’
goto.go:88:2: note: ‘x’ defined here
goto.go:114:2: error: goto jumps into block
goto.go:115:2: note: goto target block starts here
goto.go:125:2: error: goto jumps into block
goto.go:122:2: note: goto target block starts here
goto.go:130:2: error: goto jumps into block
goto.go:133:4: note: goto target block starts here
goto.go:142:2: error: goto jumps into block
goto.go:145:2: note: goto target block starts here
goto.go:179:2: error: goto jumps into block
goto.go:180:10: note: goto target block starts here
goto.go:186:2: error: goto jumps into block
goto.go:187:10: note: goto target block starts here
goto.go:194:2: error: goto jumps into block
goto.go:196:4: note: goto target block starts here
goto.go:205:3: error: goto jumps into block
goto.go:202:11: note: goto target block starts here
goto.go:211:3: error: goto jumps into block
goto.go:212:4: note: goto target block starts here
goto.go:219:3: error: goto jumps into block
goto.go:220:18: note: goto target block starts here
goto.go:227:3: error: goto jumps into block
goto.go:228:18: note: goto target block starts here
goto.go:241:3: error: goto jumps into block
goto.go:243:4: note: goto target block starts here
goto.go:290:2: error: goto jumps into block
goto.go:287:6: note: goto target block starts here
goto.go:299:2: error: goto jumps into block
goto.go:294:6: note: goto target block starts here
goto.go:306:2: error: goto jumps into block
goto.go:303:12: note: goto target block starts here
goto.go:313:2: error: goto jumps into block
goto.go:310:24: note: goto target block starts here
goto.go:320:2: error: goto jumps into block
goto.go:317:18: note: goto target block starts here
goto.go:327:2: error: goto jumps into block
goto.go:324:18: note: goto target block starts here
goto.go:334:2: error: goto jumps into block
goto.go:331:18: note: goto target block starts here
goto.go:341:2: error: goto jumps into block
goto.go:338:18: note: goto target block starts here
goto.go:395:2: error: goto jumps into block
goto.go:398:2: note: goto target block starts here
goto.go:403:2: error: goto jumps into block
goto.go:406:2: note: goto target block starts here
goto.go:413:2: error: goto jumps into block
goto.go:417:2: note: goto target block starts here
goto.go:424:3: error: goto jumps into block
goto.go:426:2: note: goto target block starts here
goto.go:436:3: error: goto jumps into block
goto.go:433:2: note: goto target block starts here
goto.go:492:2: error: goto jumps into block
goto.go:495:2: note: goto target block starts here
goto.go:500:2: error: goto jumps into block
goto.go:503:2: note: goto target block starts here
goto.go:510:2: error: goto jumps into block
goto.go:514:2: note: goto target block starts here
goto.go:521:3: error: goto jumps into block
goto.go:523:2: note: goto target block starts here
goto.go:533:3: error: goto jumps into block
goto.go:530:2: note: goto target block starts here

bug344.go:17:2: error: goto jumps into block
bug344.go:20:21: note: goto target block starts here

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

13 years agosuffixarray: improved serialization code
Robert Griesemer [Tue, 20 Sep 2011 21:36:19 +0000 (14:36 -0700)]
suffixarray: improved serialization code

Use gobs to serialize indexes instead of encoding/binary.

Even with gobs, serialize data in slices instead of
applying gob to the entire data structure at once,
to reduce the amount of extra buffer memory needed
inside gob.

7x faster Write/Read for new BenchmarkSaveRestore
compared to old code; possibly because encoding/binary
is more expensive for int32 slice elements (interface
call to get little/big endian encoding), while gob's
encoding is fixed (unconfirmed).

new (using gobs):
suffixarray.BenchmarkSaveRestore        1 2153604000 ns/op

old (using encoding/binary):
suffixarray.BenchmarkSaveRestore        1 15118322000 ns/op

The actual serialized data is slightly larger then using
the old code for very large indices because full 32bit indices
require 5bytes using gobs instead of 4bytes (encoding/binary)
in serialized form.

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

13 years agoreflect: add comment about the doubled semantics of Value.String.
Rob Pike [Tue, 20 Sep 2011 20:26:57 +0000 (13:26 -0700)]
reflect: add comment about the doubled semantics of Value.String.

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

13 years agohttptest: add NewUnstartedServer
Brad Fitzpatrick [Tue, 20 Sep 2011 20:02:10 +0000 (13:02 -0700)]
httptest: add NewUnstartedServer

This allows testing TLS with different http.Server
options (timeouts, limits).

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

13 years agocodereview: save CL messages in $(hg root)/last-change
Russ Cox [Tue, 20 Sep 2011 18:56:15 +0000 (14:56 -0400)]
codereview: save CL messages in $(hg root)/last-change

Fixes #2279.

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

13 years agogob: fix allocation for singletons.
Rob Pike [Tue, 20 Sep 2011 18:28:00 +0000 (11:28 -0700)]
gob: fix allocation for singletons.
Code was double-allocating in some cases.
Fixes #2267.

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

13 years agotest: match gccgo error message for bug337.go
Ian Lance Taylor [Tue, 20 Sep 2011 16:31:07 +0000 (09:31 -0700)]
test: match gccgo error message for bug337.go

bug337.go:17:2: error: value computed is not used

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

13 years agoexp/ssh: refactor halfConnection to transport
Dave Cheney [Tue, 20 Sep 2011 16:21:50 +0000 (12:21 -0400)]
exp/ssh: refactor halfConnection to transport
        This CL generalises the pair of halfConnection members that the
        serverConn holds into a single transport struct that is shared by
        both Server and Client, see also CL 5037047.

        This CL is a replacement for 5040046 which I closed by accident.

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

13 years agoexp/template/html: change transition functions to return indices
Mike Samuel [Tue, 20 Sep 2011 03:52:14 +0000 (20:52 -0700)]
exp/template/html: change transition functions to return indices

Formulaic changes to transition functions in preparation for CL 5074041.
This should be completely semantics preserving.

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

13 years agohttp: fix TLS handshake blocking server accept loop
Brad Fitzpatrick [Tue, 20 Sep 2011 02:56:51 +0000 (19:56 -0700)]
http: fix TLS handshake blocking server accept loop

Fixes #2263

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

13 years agoexp/template/html: allow commenting out of actions
Mike Samuel [Tue, 20 Sep 2011 02:52:31 +0000 (19:52 -0700)]
exp/template/html: allow commenting out of actions

Instead of erroring on actions inside comments, use existing escaping
pipeline to quash the output of actions inside comments.

If a template maintainer uses a comment to disable template code:

  {{if .}}Hello, {{.}}!{{end}}

->

  <!--{{if true}}Hello, {{.}}!{{end}}-->

will result in

  <!--Hello, !-->

regardless of the value of {{.}}.

In a later CL, comment elision will result in the entire commented-out
section being dropped from the template output.

Any side-effects in pipelines, such as panics, will still be realized.

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

13 years agoexp/template/html: define isComment helper
Mike Samuel [Tue, 20 Sep 2011 00:27:49 +0000 (17:27 -0700)]
exp/template/html: define isComment helper

Non semantics-changing refactoring in preparation for comment elision.

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

13 years agogob: don't allocate a slice if there's room to decode already
Rob Pike [Mon, 19 Sep 2011 23:55:08 +0000 (16:55 -0700)]
gob: don't allocate a slice if there's room to decode already
Fixes #2275.

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

13 years agodoc: when configuring gold for gccgo, use --enable-gold=default
Ian Lance Taylor [Mon, 19 Sep 2011 18:54:07 +0000 (11:54 -0700)]
doc: when configuring gold for gccgo, use --enable-gold=default

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

13 years agohttp: always include Content-Length header, even for 0
Dave Grijalva [Mon, 19 Sep 2011 18:41:09 +0000 (11:41 -0700)]
http: always include Content-Length header, even for 0

fixes #2221

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

13 years agosync/atomic: replace MFENCE with LOCK XADD
Dmitriy Vyukov [Mon, 19 Sep 2011 18:09:00 +0000 (11:09 -0700)]
sync/atomic: replace MFENCE with LOCK XADD
MFENCE was introduced only on the Pentium4 (SSE2),
while XADD was introduced on the 486.
Fixes #2268.

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

13 years agosuffixarray: generate less garbage during construction
Eric Eisner [Mon, 19 Sep 2011 18:03:43 +0000 (11:03 -0700)]
suffixarray: generate less garbage during construction

Minorly improves runtime by about 2-3%

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

13 years agohttp: prevent DumpRequest from adding implicit headers
Brad Fitzpatrick [Mon, 19 Sep 2011 17:22:53 +0000 (10:22 -0700)]
http: prevent DumpRequest from adding implicit headers

Fixes #2272

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

13 years agojson: clearer Unmarshal doc
Russ Cox [Mon, 19 Sep 2011 17:19:07 +0000 (13:19 -0400)]
json: clearer Unmarshal doc

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

13 years agogc: disallow invalid map keys
Russ Cox [Mon, 19 Sep 2011 17:11:24 +0000 (13:11 -0400)]
gc: disallow invalid map keys

The algtype-based test broke when algtype
got a bit more fine-grained, so replace with
an explicit check for the invalid key types.

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

13 years agohttp: check explicit wrong Request.ContentLength values
Brad Fitzpatrick [Mon, 19 Sep 2011 16:01:32 +0000 (09:01 -0700)]
http: check explicit wrong Request.ContentLength values

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

13 years agocgo: cgo to use GOARCH from the environment, not runtime.GOARCH (otherwise it results...
Jaroslavas Počepko [Mon, 19 Sep 2011 15:50:59 +0000 (11:50 -0400)]
cgo: cgo to use GOARCH from the environment, not runtime.GOARCH (otherwise it results in necessity of having 8cgo and 6cgo)

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

13 years agogc: handle complex CONVNOP
Russ Cox [Mon, 19 Sep 2011 15:50:53 +0000 (11:50 -0400)]
gc: handle complex CONVNOP

Fixes #2256.

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

13 years ago8l: remove left over debugging
Dave Cheney [Mon, 19 Sep 2011 15:50:45 +0000 (11:50 -0400)]
8l: remove left over debugging

        This line was triggering a null dereference warning
        under clang-3.0. The line was added in a46819aa9150
        but compared to it's sibling in 6l it appears to be
        leftover debugging.

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

13 years agojson: skip nil in UnmarshalJSON and (for symmetry) MarshalJSON
Russ Cox [Mon, 19 Sep 2011 15:50:41 +0000 (11:50 -0400)]
json: skip nil in UnmarshalJSON and (for symmetry) MarshalJSON

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

13 years agonet: use /etc/hosts first when looking up IP addresses using native Go's dns resolver
Andrey Mirtchovski [Mon, 19 Sep 2011 15:50:31 +0000 (11:50 -0400)]
net: use /etc/hosts first when looking up IP addresses using native Go's dns resolver

Previously /etc/hosts would be ignored altogether, this change returns matching results
from that file without talking to a DNS server.

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

13 years agoexp/norm: Adopt regexp to exp/regexp semantics.
Marcel van Lohuizen [Mon, 19 Sep 2011 15:30:19 +0000 (17:30 +0200)]
exp/norm: Adopt regexp to exp/regexp semantics.

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

13 years agoexp/ssh: fix constant in package documentation
Dave Cheney [Mon, 19 Sep 2011 14:32:11 +0000 (10:32 -0400)]
exp/ssh: fix constant in package documentation

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

13 years ago crypto/bcrypt: new package
Jeff Hodges [Mon, 19 Sep 2011 14:29:02 +0000 (10:29 -0400)]
crypto/bcrypt: new package

A port of Provos and Mazières's adapative hashing algorithm. See http://www.usenix.org/events/usenix99/provos/provos_html/node1.html

R=bradfitz, agl, rsc, dchest
CC=golang-dev
https://golang.org/cl/4964078

13 years ago crypto/blowfish: exposing the blowfish key schedule
Jeff Hodges [Mon, 19 Sep 2011 14:21:34 +0000 (10:21 -0400)]
crypto/blowfish: exposing the blowfish key schedule

Mostly useful for the coming crypto/bcrypt package

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

13 years agodoc: link to golang-france
Andrew Gerrand [Mon, 19 Sep 2011 05:36:06 +0000 (15:36 +1000)]
doc: link to golang-france

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

13 years agotag release.r60.1
Andrew Gerrand [Mon, 19 Sep 2011 04:01:39 +0000 (14:01 +1000)]
tag release.r60.1

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

13 years agodoc: update release.r60.1 notes
Andrew Gerrand [Mon, 19 Sep 2011 02:16:08 +0000 (12:16 +1000)]
doc: update release.r60.1 notes

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

13 years agoexp/template/html: allow quotes on either side of conditionals and dynamic HTML names
Mike Samuel [Mon, 19 Sep 2011 02:10:15 +0000 (19:10 -0700)]
exp/template/html: allow quotes on either side of conditionals and dynamic HTML names

This addresses several use cases:

(1) <h{{.HeaderLevel}}> used to build hierarchical documents.
(2) <input on{{.EventType}}=...> used in widgets.
(3) <div {{" dir=ltr"}}> used to embed bidi-hints.

It also makes sure that we treat the two templates below the same:

<img src={{if .Avatar}}"{{.Avatar}}"{{else}}"anonymous.png"{{end}}>
<img src="{{if .Avatar}}{{.Avatar}}{{else}}anonymous.png{{end}}">

This splits up tTag into a number of sub-states and adds testcases.

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

13 years agoexp/template/html: normalize '<' in text and RCDATA nodes.
Mike Samuel [Sun, 18 Sep 2011 19:04:40 +0000 (12:04 -0700)]
exp/template/html: normalize '<' in text and RCDATA nodes.

The template

  <{{.}}

would violate the structure preservation property if allowed and not
normalized, because when {{.}} emitted "", the "<" would be part of
a text node, but if {{.}} emitted "a", the "<" would not be part of
a text node.

This change rewrites '<' in text nodes and RCDATA text nodes to
'&lt;' allowing template authors to write the common, and arguably more
readable:

    Your price: {{.P1}} < list price {{.P2}}

while preserving the structure preservation property.

It also lays the groundwork for comment elision, rewriting

    Foo <!-- comment with secret project details --> Bar

to

    Foo  Bar

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

13 years agoexp/template/html: recognize whitespace at start of URLs.
Mike Samuel [Sun, 18 Sep 2011 18:55:14 +0000 (11:55 -0700)]
exp/template/html: recognize whitespace at start of URLs.

HTML5 uses "Valid URL potentially surrounded by spaces" for
attrs: http://www.w3.org/TR/html5/index.html#attributes-1

    <a href=" {{.}}">

should be escaped to filter out "javascript:..." as data.

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

13 years agoexp/ssh: new package.
Adam Langley [Sat, 17 Sep 2011 19:57:24 +0000 (15:57 -0400)]
exp/ssh: new package.

The typical UNIX method for controlling long running process is to
send the process signals. Since this doesn't get you very far, various
ad-hoc, remote-control protocols have been used over time by programs
like Apache and BIND.

Implementing an SSH server means that Go code will have a standard,
secure way to do this in the future.

R=bradfitz, borman, dave, gustavo, dsymonds, r, adg, rsc, rogpeppe, lvd, kevlar, raul.san
CC=golang-dev
https://golang.org/cl/4962064

13 years agoarchive/tar: document Header fields and Type flags
Mike Rosset [Sat, 17 Sep 2011 18:43:06 +0000 (11:43 -0700)]
archive/tar: document Header fields and Type flags

Documentation more along the lines of os.FileInfo
Fixes #2180.

R=golang-dev, dsymonds
CC=golang-dev, mike.rosset
https://golang.org/cl/4958055

13 years agoruntime: increase stack system space on windows/amd64
Hector Chu [Sat, 17 Sep 2011 10:39:29 +0000 (20:39 +1000)]
runtime: increase stack system space on windows/amd64

gotest src/pkg/exp/template/html was crashing because the exception handler overflowed the goroutine stack.

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

13 years agoruntime/pprof: enable test on windows
Hector Chu [Sat, 17 Sep 2011 08:00:32 +0000 (18:00 +1000)]
runtime/pprof: enable test on windows

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

13 years agoruntime: implement pprof support for windows
Hector Chu [Sat, 17 Sep 2011 07:57:59 +0000 (17:57 +1000)]
runtime: implement pprof support for windows

Credit to jp for proof of concept.

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

13 years agofilepath: fix Glob to return no error on nonmatching patterns
Michael Shields [Sat, 17 Sep 2011 03:30:54 +0000 (20:30 -0700)]
filepath: fix Glob to return no error on nonmatching patterns

filepath.Glob is documented to return nil if no files match
and an error only if the pattern is invalid.  This change
fixes it to work as documented and adds a regression test.

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

13 years agoCONTRIBUTORS: add googler Michael Shields
Rob Pike [Sat, 17 Sep 2011 03:30:17 +0000 (20:30 -0700)]
CONTRIBUTORS: add googler Michael Shields

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

13 years agotest: match gccgo error messages for bug330.go.
Ian Lance Taylor [Sat, 17 Sep 2011 01:28:57 +0000 (18:28 -0700)]
test: match gccgo error messages for bug330.go.

bug330.go:11:6: error: expected numeric type
bug330.go:12:6: error: expected numeric type

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

13 years agoreflect: fix comment
Robert Griesemer [Fri, 16 Sep 2011 22:07:13 +0000 (15:07 -0700)]
reflect: fix comment

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

13 years agohttp/cgi: clean up environment.
Yasuhiro Matsumoto [Fri, 16 Sep 2011 17:36:54 +0000 (10:36 -0700)]
http/cgi: clean up environment.
clean up duplicate environment for CGI.
overriding former by latter.
On windows, When there are duplicated environments like following,

SCRIPT_FILENAME=c:/progra~1/php/php-cgi.exe
SCRIPT_FILENAME=/foo.php

CreateProcess use first entry.

If make cgi.Handle like following,

        cgih = cgi.Handler{
                Path: "c:/strawberry/perl/bin/perl.exe",
                Dir:  "c:/path/to/webroot",
                Root: "c:/path/to/webroot",
                Args: []string{"foo.php"},
                Env:  []string{"SCRIPT_FILENAME=foo.php"},
        }

http/cgi should behave "SCRIPT_FILENAME is foo.php".
But currently, http/cgi is set duplicate environment entries.
So, browser show binary dump of "php-cgi.exe" that is specified indented
SCRIPT_FILENAME in first entry.
This change clean up duplicates, and use latters.

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

13 years agoexp/norm: reverting to using strings.Repeat, as it doesn't look like exp/regexp
Marcel van Lohuizen [Fri, 16 Sep 2011 09:28:53 +0000 (11:28 +0200)]
exp/norm: reverting to using strings.Repeat, as it doesn't look like exp/regexp
is going to support returning multiple matches for a single repeated group.

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

13 years agoexp/norm: changed trie to produce smaller tables.
Marcel van Lohuizen [Fri, 16 Sep 2011 09:27:05 +0000 (11:27 +0200)]
exp/norm: changed trie to produce smaller tables.
Trie now uses sparse block when this makes sense.

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

13 years agoexp/template/html: type fixed point computation in template
Mike Samuel [Fri, 16 Sep 2011 07:34:26 +0000 (00:34 -0700)]
exp/template/html: type fixed point computation in template

I found a simple test case that does require doing the fixed point TODO
in computeOutCtx.

I found a way though to do this and simplify away the escapeRange
hackiness that was added in https://golang.org/cl/5012044/

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

13 years agotag weekly.2011-09-16
Andrew Gerrand [Fri, 16 Sep 2011 07:23:31 +0000 (17:23 +1000)]
tag weekly.2011-09-16

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

13 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

13 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