- 22 Sep, 2011 5 commits
-
-
Andrew Gerrand authored
R=golang-dev, dsymonds CC=golang-dev https://golang.org/cl/5075050
-
Mike Samuel authored
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="/*...*/"> 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 '<' 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
-
David Symonds authored
R=golang-dev, adg CC=golang-dev, sbarra.paul https://golang.org/cl/5044045
-
Mike Samuel authored
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
-
Ian Lance Taylor authored
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
-
- 21 Sep, 2011 6 commits
-
-
Robert Griesemer authored
- also fixed bug: ReadFile never closed the file before - per suggestion by bradfitz R=bradfitz CC=golang-dev https://golang.org/cl/5092047
-
Robert Griesemer authored
R=r CC=golang-dev https://golang.org/cl/5089048
-
Robert Griesemer authored
R=r CC=golang-dev https://golang.org/cl/5077047
-
Gustavo Niemeyer authored
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
-
Brad Fitzpatrick authored
It's currently broken and disabled, pending a fix for Issue 2281. R=golang-dev, adg CC=golang-dev https://golang.org/cl/5092045
-
Mike Samuel authored
R=nigeltao CC=golang-dev https://golang.org/cl/5080042
-
- 20 Sep, 2011 14 commits
-
-
Ian Lance Taylor authored
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
-
Ian Lance Taylor authored
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
-
Ian Lance Taylor authored
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
-
Robert Griesemer authored
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
-
Rob Pike authored
R=rsc CC=golang-dev https://golang.org/cl/5091044
-
Brad Fitzpatrick authored
This allows testing TLS with different http.Server options (timeouts, limits). R=golang-dev, rsc CC=golang-dev https://golang.org/cl/5094043
-
Russ Cox authored
Fixes #2279. R=bradfitz, r, r CC=golang-dev https://golang.org/cl/5096042
-
Rob Pike authored
Code was double-allocating in some cases. Fixes #2267. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/5093042
-
Ian Lance Taylor authored
bug337.go:17:2: error: value computed is not used R=golang-dev, rsc CC=golang-dev https://golang.org/cl/5094042
-
Dave Cheney authored
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
-
Mike Samuel authored
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
-
Brad Fitzpatrick authored
Fixes #2263 R=golang-dev, adg CC=golang-dev https://golang.org/cl/5076042
-
Mike Samuel authored
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
-
Mike Samuel authored
Non semantics-changing refactoring in preparation for comment elision. R=nigeltao CC=golang-dev https://golang.org/cl/5071043
-
- 19 Sep, 2011 15 commits
-
-
Rob Pike authored
Fixes #2275. R=golang-dev, gri CC=golang-dev https://golang.org/cl/5082041
-
Ian Lance Taylor authored
R=golang-dev, dsymonds CC=golang-dev https://golang.org/cl/5030057
-
Dave Grijalva authored
fixes #2221 R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/4952052
-
Dmitriy Vyukov authored
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
-
Eric Eisner authored
Minorly improves runtime by about 2-3% R=gri, jeff CC=golang-dev https://golang.org/cl/5052045
-
Brad Fitzpatrick authored
Fixes #2272 R=rsc CC=golang-dev https://golang.org/cl/5043051
-
Russ Cox authored
R=r CC=golang-dev https://golang.org/cl/5056049
-
Russ Cox authored
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
-
Brad Fitzpatrick authored
R=golang-dev, rsc CC=golang-dev https://golang.org/cl/5070041
-
Jaroslavas Počepko authored
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
-
Russ Cox authored
Fixes #2256. R=ken2 CC=golang-dev https://golang.org/cl/5044047
-
Dave Cheney authored
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
-
Russ Cox authored
R=dsymonds, r CC=golang-dev https://golang.org/cl/5050049
-
Andrey Mirtchovski authored
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
-
Marcel van Lohuizen authored
R=rsc CC=golang-dev https://golang.org/cl/5046041
-