Rob Pike
41efecf51c
exp/template: allow variables as template names.
...
Just an oversight it wasn't already there.
Thanks to islandberry@live.com for pointing out the omission.
R=golang-dev, dsymonds
CC=golang-dev, islandberry
https://golang.org/cl/4703043
2011-07-13 13:21:18 +10:00
Rob Pike
c1c8d46d20
go_tutorial: change the way it's generated.
...
No longer do we generate HTML from it; instead the input
file is already in HTML but has template invocations to
extract programs from other files.
Delete htmlgen, which is no longer needed.
Add tmpltohtml, which runs the templating code.
R=golang-dev, dsymonds, adg
CC=golang-dev
https://golang.org/cl/4699041
2011-07-13 13:20:05 +10:00
David Anderson
f1df07bf6a
5l, 6l, 8l: Add a PT_LOAD PHDR entry for the PHDR.
...
Per the TIS ELF spec, if a PHDR entry is present in the
program header table, it must be part of the memory image of
the program. Failure to do this makes elflint complain, and
causes some tools that manipulate ELF to crash.
R=iant, rsc
CC=dave, golang-dev
https://golang.org/cl/4650067
2011-07-12 17:49:55 -07:00
Robert Griesemer
75780f99f4
csv: fix spelling errors in comments
...
Fixes #2066 .
R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/4699045
2011-07-12 17:45:29 -07:00
Russ Cox
7318664c22
tag release.r58.1: adds OS X Lion support
...
R=adg, dsymonds
CC=golang-dev
https://golang.org/cl/4702043
2011-07-12 17:44:59 -07:00
Quan Yong Zhai
fe9991e8b2
runtime: replace runtime.mcpy with runtime.memmove
...
faster string operations, and more
tested on linux/386
runtime_test.BenchmarkSliceToString 642 532 -17.13%
runtime_test.BenchmarkStringToSlice 636 528 -16.98%
runtime_test.BenchmarkConcatString 1109 897 -19.12%
R=r, iant, rsc
CC=golang-dev
https://golang.org/cl/4674042
2011-07-12 17:30:40 -07:00
Andrew Gerrand
ba91dac3a9
doc: gofix io2010 demo programs
...
R=golang-dev, gri, r, agl
CC=golang-dev
https://golang.org/cl/4696046
2011-07-13 09:40:49 +10:00
Wei Guangjing
f340b3de5a
debug/pe: fixes ImportedSymbols for Win64.
...
R=golang-dev, alex.brainman
CC=golang-dev
https://golang.org/cl/4639086
2011-07-12 11:29:38 -07:00
Robert Hencke
67edf9cb87
gc: make size of struct{} and [0]byte 0 bytes
...
Fixes #1949 .
R=iant, rsc
CC=golang-dev
https://golang.org/cl/4634124
2011-07-12 11:12:06 -07:00
Dmitriy Vyukov
86e7323bdf
runtime: eliminate false sharing during stack growth
...
Remove static variable from runtime·oldstack().
Benchmark results on HP Z600 (2 x Xeon E5620, 8 HT cores, 2.40GHz)
are as follows (with CL 4657091 applied):
benchmark old ns/op new ns/op delta
BenchmarkStackGrowth 1183.00 1180.00 -0.25%
BenchmarkStackGrowth-2 1249.00 1211.00 -3.04%
BenchmarkStackGrowth-4 954.00 805.00 -15.62%
BenchmarkStackGrowth-8 701.00 683.00 -2.57%
BenchmarkStackGrowth-16 465.00 415.00 -10.75%
R=rsc
CC=golang-dev
https://golang.org/cl/4693042
2011-07-12 10:56:21 -07:00
Russ Cox
88e0c0517a
runtime: fix comment (lost in shuffle)
...
TBR=dvyukov
CC=golang-dev
https://golang.org/cl/4710041
2011-07-12 09:26:05 -07:00
Dmitriy Vyukov
c9152a8568
runtime: eliminate contention during stack allocation
...
Standard-sized stack frames use plain malloc/free
instead of centralized lock-protected FixAlloc.
Benchmark results on HP Z600 (2 x Xeon E5620, 8 HT cores, 2.40GHz)
are as follows:
benchmark old ns/op new ns/op delta
BenchmarkStackGrowth 1045.00 949.00 -9.19%
BenchmarkStackGrowth-2 3450.00 800.00 -76.81%
BenchmarkStackGrowth-4 5076.00 513.00 -89.89%
BenchmarkStackGrowth-8 7805.00 471.00 -93.97%
BenchmarkStackGrowth-16 11751.00 321.00 -97.27%
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/4657091
2011-07-12 09:24:32 -07:00
Dmitriy Vyukov
daaf29cf93
sync: improve RWMutex performance
...
The new implementation features wait-free
fast path for readers which significantly improves
performance/scalability on read-mostly workloads.
Benchmark results on HP Z600 (2 x Xeon E5620, 8 HT cores, 2.40GHz)
are as follows:
benchmark old ns/op new ns/op delta
BenchmarkRWMutexUncontended 179.00 96.60 -46.03%
BenchmarkRWMutexUncontended-2 89.10 49.10 -44.89%
BenchmarkRWMutexUncontended-4 44.70 24.70 -44.74%
BenchmarkRWMutexUncontended-8 23.30 12.90 -44.64%
BenchmarkRWMutexUncontended-16 16.80 8.75 -47.92%
BenchmarkRWMutexWrite100 79.60 26.80 -66.33%
BenchmarkRWMutexWrite100-2 305.00 33.00 -89.18%
BenchmarkRWMutexWrite100-4 245.00 113.00 -53.88%
BenchmarkRWMutexWrite100-8 330.00 147.00 -55.45%
BenchmarkRWMutexWrite100-16 371.00 152.00 -59.03%
BenchmarkRWMutexWrite10 78.30 29.80 -61.94%
BenchmarkRWMutexWrite10-2 348.00 165.00 -52.59%
BenchmarkRWMutexWrite10-4 447.00 199.00 -55.48%
BenchmarkRWMutexWrite10-8 564.00 180.00 -68.09%
BenchmarkRWMutexWrite10-16 492.00 192.00 -60.98%
BenchmarkRWMutexWorkWrite100 1077.00 1037.00 -3.71%
BenchmarkRWMutexWorkWrite100-2 659.00 596.00 -9.56%
BenchmarkRWMutexWorkWrite100-4 509.00 361.00 -29.08%
BenchmarkRWMutexWorkWrite100-8 603.00 351.00 -41.79%
BenchmarkRWMutexWorkWrite100-16 750.00 607.00 -19.07%
BenchmarkRWMutexWorkWrite10 990.00 951.00 -3.94%
BenchmarkRWMutexWorkWrite10-2 1119.00 1070.00 -4.38%
BenchmarkRWMutexWorkWrite10-4 1300.00 1199.00 -7.77%
BenchmarkRWMutexWorkWrite10-8 1424.00 1291.00 -9.34%
BenchmarkRWMutexWorkWrite10-16 1981.00 1786.00 -9.84%
R=rsc
CC=golang-dev
https://golang.org/cl/4671051
2011-07-12 09:24:21 -07:00
Rob Pike
4c63129545
effective go: tweak the words about semicolons, parens in control structures,
...
and make and new.
R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/4699043
2011-07-12 23:45:10 +10:00
Adam Langley
9f4c288c16
hash/crc32: add SSE4.2 support
...
Using the CRC32 instruction speeds up the Castagnoli computation by
about 20x on a modern Intel CPU.
R=rsc
CC=golang-dev
https://golang.org/cl/4650072
2011-07-12 09:29:24 -04:00
Alex Brainman
0f8678a747
go/build: include processing of .c files for cgo packages
...
R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/4696041
2011-07-12 17:27:07 +10:00
Nigel Tao
851ded9660
image: remove superfluous if condition.
...
DrawMask already returns early if r.Empty().
R=r
CC=golang-dev
https://golang.org/cl/4703041
2011-07-12 17:02:55 +10:00
Nigel Tao
caaa6764fa
image: re-organize draw.go.
...
There are no behavioral changes, only some copy-and-pastes.
Before, drawFillOver was next to drawCopyOver.
After, drawFillOver is next to drawFillSrc, which is more similar to
drawFillOver than drawCopyOver is.
Similarly, drawCopyOver is now next to drawCopySrc, etc.
R=r
CC=golang-dev
https://golang.org/cl/4695045
2011-07-12 16:56:29 +10:00
Nigel Tao
8bd5089513
image: change Pix from []FooColor to []uint8.
...
Some benchmark numbers below. The image/draw fast-paths show dramatic
improvement, the generic slow-paths show a smaller slow-down.
BEFORE
png.BenchmarkEncodePaletted 200 8203800 ns/op 37.45 MB/s
png.BenchmarkEncodeRGBOpaque 100 26940440 ns/op 45.61 MB/s
png.BenchmarkEncodeRGBA 20 73821000 ns/op 16.65 MB/s
jpeg.BenchmarkEncodeRGBOpaque 50 35598640 ns/op 34.52 MB/s
draw.BenchmarkFillOver 500 4024226 ns/op
draw.BenchmarkFillSrc 10000 152736 ns/op
draw.BenchmarkCopyOver 500 3452824 ns/op
draw.BenchmarkCopySrc 50000 73218 ns/op
draw.BenchmarkNRGBAOver 500 3941234 ns/op
draw.BenchmarkNRGBASrc 1000 2484400 ns/op
draw.BenchmarkYCbCr 1000 2609005 ns/op
draw.BenchmarkGlyphOver 2000 1169575 ns/op
draw.BenchmarkRGBA 200 9031390 ns/op
draw.BenchmarkGenericOver 50 34636620 ns/op
draw.BenchmarkGenericMaskOver 100 16561150 ns/op
draw.BenchmarkGenericSrc 100 13873760 ns/op
draw.BenchmarkGenericMaskSrc 100 25198860 ns/op
AFTER
png.BenchmarkEncodePaletted 200 8206600 ns/op 37.43 MB/s
png.BenchmarkEncodeRGBOpaque 100 26129530 ns/op 47.03 MB/s
png.BenchmarkEncodeRGBA 20 75776750 ns/op 16.22 MB/s
jpeg.BenchmarkEncodeRGBOpaque 50 37192940 ns/op 33.04 MB/s
draw.BenchmarkFillOver 500 3008134 ns/op
draw.BenchmarkFillSrc 10000 154214 ns/op
draw.BenchmarkCopyOver 1000 2169988 ns/op
draw.BenchmarkCopySrc 50000 73095 ns/op
draw.BenchmarkNRGBAOver 1000 2491079 ns/op
draw.BenchmarkNRGBASrc 2000 1361244 ns/op
draw.BenchmarkYCbCr 1000 2554269 ns/op
draw.BenchmarkGlyphOver 2000 1042225 ns/op
draw.BenchmarkRGBA 100 10233340 ns/op
draw.BenchmarkGenericOver 50 38421560 ns/op
draw.BenchmarkGenericMaskOver 100 17521190 ns/op
draw.BenchmarkGenericSrc 100 16351200 ns/op
draw.BenchmarkGenericMaskSrc 100 26538190 ns/op
R=r
CC=golang-dev
https://golang.org/cl/4675076
2011-07-12 16:39:38 +10:00
Nigel Tao
6ec6f1ef62
image/draw: add benchmarks.
...
R=r
CC=golang-dev
https://golang.org/cl/4695043
2011-07-12 16:17:02 +10:00
Russ Cox
1002e82fff
doc: document r58.1
...
R=adg, dsymonds
CC=golang-dev
https://golang.org/cl/4700041
2011-07-12 01:39:09 -04:00
Dmitriy Vyukov
013ad89c9b
runtime: eliminate false sharing on runtime.goidgen
...
runtime.goidgen can be quite frequently modified and
shares cache line with the following variables,
it leads to false sharing.
50c6b0 b nfname
50c6b4 b nfunc
50c6b8 b nfunc$17
50c6bc b nhist$17
50c6c0 B runtime.checking
50c6c4 B runtime.gcwaiting
50c6c8 B runtime.goidgen
50c6cc B runtime.gomaxprocs
50c6d0 B runtime.panicking
50c6d4 B strconv.IntSize
50c6d8 B src/pkg/runtime/_xtest_.ss
50c6e0 B src/pkg/runtime/_xtest_.stop
50c6e8 b addrfree
50c6f0 b addrmem
50c6f8 b argv
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/4673054
2011-07-12 01:25:14 -04:00
Dmitriy Vyukov
909f31872a
runtime: eliminate false sharing on random number generators
...
Use machine-local random number generator instead of
racy global ones.
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/4674049
2011-07-12 01:23:58 -04:00
Dmitriy Vyukov
f9f21aa1fb
runtime: fix data race on runtime·maxstring
...
The data race can lead to erroneous output of
"[invalid string]" instead of a string.
R=golang-dev
CC=golang-dev
https://golang.org/cl/4678049
2011-07-12 01:21:06 -04:00
Alex Brainman
8ed9fc600c
6l: change default output name to 6.out.exe on windows
...
R=golang-dev, vcc.163
CC=golang-dev
https://golang.org/cl/4670049
2011-07-12 14:22:48 +10:00
Brad Fitzpatrick
ce3c3953be
http: support for periodic flushing in ReverseProxy
...
Fixes #2012
R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/4662091
2011-07-11 20:56:21 -07:00
Rob Pike
7c47741811
exp/template: make numbers adhere to Go's rules for ideal constants.
...
Without further type informatnion, 1.0 is a float and an integer
must fit in an int.
R=rsc
CC=golang-dev
https://golang.org/cl/4696042
2011-07-12 13:15:26 +10:00
Alex Brainman
05c89edcd3
go/build: make Nuke comment say what it does
...
R=rsc
CC=golang-dev
https://golang.org/cl/4697041
2011-07-12 13:08:22 +10:00
Andrew Gerrand
87d71a3815
codereview: fix for Mercurial 1.9
...
R=golang-dev, mirtchovski, mikioh.mikioh
CC=golang-dev
https://golang.org/cl/4686049
2011-07-11 22:58:40 -04:00
Yasuhiro Matsumoto
34bac8bcd4
doc: don't specify make target for working on windwos.
...
makehtml does not work on windows.
R=golang-dev, adg, rsc
CC=golang-dev
https://golang.org/cl/4675041
2011-07-11 20:02:32 -04:00
Andrew Gerrand
b4f0e8ffd3
undo CL 4675045 / 0e11e08951f7
...
Breaks Mercurial 1.8.3.
««« original CL description
codereview: fix for Mercurial 1.9
Fixes #2038 .
R=rsc, bobbypowers
CC=golang-dev
https://golang.org/cl/4675045
»»»
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/4685055
2011-07-12 09:57:39 +10:00
Andrew Gerrand
762ea79057
codereview: fix for Mercurial 1.9
...
Fixes #2038 .
R=rsc, bobbypowers
CC=golang-dev
https://golang.org/cl/4675045
2011-07-12 09:36:46 +10:00
Brad Fitzpatrick
1722ec22cd
cgi: close stdout reader pipe when finished
...
This causes the child, if still writing, to get an error or
SIGPIPE and most likely exit so our subsequent wait can
finish.
A more guaranteed fix would be putting a time limit on the
child's overall execution, but this fixes the problem
I was having.
Fixes #2059
R=rsc
CC=golang-dev
https://golang.org/cl/4675081
2011-07-11 15:59:27 -07:00
Brad Fitzpatrick
d53385fd0c
os: don't permit Process.Signal after a successful Wait
...
R=dsymonds, rsc
CC=golang-dev
https://golang.org/cl/4689043
2011-07-11 15:47:42 -07:00
Brad Fitzpatrick
d1f4e0d14e
exec: closeAfterWait append bug
...
Wasn't actually eager closing the fds as a result of the
copy/paste bug. (GC was doing it instead)
R=rsc
CC=golang-dev
https://golang.org/cl/4671057
2011-07-11 14:46:46 -07:00
Evan Martin
2f69a73591
json: encode \r and \n in strings as e.g. "\n", not "\u000A"
...
This is allowed by the JSON spec and is shorter/easier to read.
R=golang-dev, bradfitz, rsc
CC=golang-dev
https://golang.org/cl/4678046
2011-07-11 07:31:08 -07:00
Brad Fitzpatrick
f19b24a182
strconv: handle [-+]Infinity in atof
...
This is the form as returned by Postgres, as well
as JavaScript.
I've tried and failed to find authorative docs online
about the proper string serialization, if any.
R=golang-dev, gri, r, r, rsc
CC=golang-dev
https://golang.org/cl/4650077
2011-07-11 07:25:45 -07:00
Rob Pike
d366c36945
exp/template: fix bug in argument evaluation.
...
Must keep dot and the receiver separate - variables broke that symmetry.
Also clean up function invocation and rename "data" to "dot" for clarity.
R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/4678048
2011-07-11 18:06:24 +10:00
Alex Brainman
3c6a7b3fc5
go/build: use os.MkdirAll to create directories
...
Replaces "mkdir -p ..." command, as Windows mkdir command
does not support -p flag. Also, is simpler and faster then
launching new process.
R=golang-dev, mattn.jp, adg, bradfitz, rsc
CC=golang-dev
https://golang.org/cl/4626087
2011-07-11 15:40:41 +10:00
Rob Pike
7b79b3b244
exp/template: fields and methods on variables.
...
Not strictly necessary (you could achieve the same, clumsily,
via with blocks) but great to have: $x.Field, $y.Method.
R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/4678047
2011-07-11 15:23:38 +10:00
Rob Pike
96bbcc4256
exp/template: documentation glitches and typos.
...
Also explain that len(v)==0 makes v a 'zero value'
in template execution.
R=golang-dev, dsymonds, adg, r
CC=golang-dev
https://golang.org/cl/4691041
2011-07-11 14:43:21 +10:00
Rob Pike
0027dc91b0
exp/template: simpler parse of char constants.
...
We can avoid the check against empty constants (''),
which UnquoteChar doesn't handle well, by leaving on
the trailing quote and seeing that's all we have left at the end.
R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/4657090
2011-07-11 12:36:10 +10:00
Rob Pike
bf9531f80b
exp/template: character constants.
...
Easier to implement than to justify leaving them out.
R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/4662089
2011-07-11 11:46:22 +10:00
Rob Pike
e7030e7fef
exp/template: static check for defined variables.
...
Worth catching at parse time rather than execution. Plus it's really easy.
R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/4641100
2011-07-11 10:01:15 +10:00
Rob Pike
1fe9c9a78f
exp/eval: delete binary
...
Mistakenly checked in.
Fixes #2058 .
R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/4670057
2011-07-11 09:36:17 +10:00
Rob Pike
e44853c969
flag: make -help nicer.
...
- suppress the print that -help is not defined.
- return a special error code if -help is set
- do not change behavior if an explict "help" flag is defined.
R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/4641099
2011-07-11 09:35:50 +10:00
Rob Pike
abae847134
exp/template: add functions print and println.
...
R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/4687041
2011-07-11 09:19:18 +10:00
Rob Pike
4acddca41b
exp/template: package documentation
...
R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/4675072
2011-07-10 20:56:26 +10:00
Nigel Tao
87d9e7e166
image: change Pix[0] to mean top-left corner of an image's Rect instead
...
of the origin.
image/png and image/jpeg benchmarks show no significant changes.
The image/draw changes suggest to me that making a gofix for this is not
feasible. People are just going to have to make manual fixes.
R=r
CC=golang-dev
https://golang.org/cl/4681044
2011-07-10 14:29:47 +10:00
Andrew Gerrand
4d47600f46
archive/zip: add Writer
...
R=bradfitz, dchest, r, rsc
CC=golang-dev
https://golang.org/cl/4523077
2011-07-10 11:30:16 +10:00