1
0
mirror of https://github.com/golang/go synced 2024-11-20 09:34:52 -07:00
Commit Graph

4544 Commits

Author SHA1 Message Date
Russ Cox
edf7485a6e gofmt -r: documentation and minor fixes
fix a few paren insertion bugs in the printer too.

R=gri, r
CC=golang-dev
https://golang.org/cl/157119
2009-11-23 15:44:27 -08:00
Vish Subramanian
9e95d970cc Fix crash in xml.Unmarshal. Occasionally while running a scrape of some xml with many goroutines
I see a crash with the following stack trace:

	SIGSEGV: segmentation violation
	Faulting address: 0x44
	PC=0x44e510

	runtime·mapaccess2+0x18 /home/vish/go/src/pkg/runtime/hashmap.c:790
       	 runtime·mapaccess2(0x0, 0x0)
	xml·*Parser·text+0x922 /home/vish/go/src/pkg/xml/xml.go:765
       	 xml·*Parser·text(0xe44c9870, 0x7fa3, 0xffffffff, 0x7f00, 0x44b5c4, ...)
	xml·*Parser·RawToken+0x174 /home/vish/go/src/pkg/xml/xml.go:405
         xml·*Parser·RawToken(0xe44c9870, 0x7fa3, 0x0, 0x0)
	xml·*Parser·Token+0x625 /home/vish/go/src/pkg/xml/xml.go:205
       	 xml·*Parser·Token(0xe44c9870, 0x7fa3, 0x0, 0x0, 0x0, ...)
	xml·*Parser·Skip+0x27 /home/vish/go/src/pkg/xml/read.go:371
       	 xml·*Parser·Skip(0xe44c9870, 0x7fa3, 0x8, 0x0)
	xml·*Parser·unmarshal+0xae6 /home/vish/go/src/pkg/xml/read.go:328
       	 xml·*Parser·unmarshal(0xe44c9870, 0x7fa3, 0xe8127120, 0x7fa3, 0xdc94bc40, ...)
	xml·Unmarshal+0xda /home/vish/go/src/pkg/xml/read.go:121
       	 xml·Unmarshal(0xe65724b0, 0x7fa3, 0xdc94bc00, 0x7fa3, 0x4bcfc0, ...)
	scraper·DoSearch+0x3d1 /home/vish/my-go-src/google3/experimental/users/vish/go_http/scraper.go:95
       	 scraper·DoSearch(0xe7dc28c0, 0x7fa3, 0x33, 0x3, 0x6d2510, ...)
	main·scrapeQueries+0x202 /home/vish/my-go-src/google3/experimental/users/vish/go_http/scrape.go:251
       	 main·scrapeQueries(0xe7da2600, 0x7fa3, 0x64, 0x1db0, 0xe7e10000, ...)
	goexit /home/vish/go/src/pkg/runtime/proc.c:135
       	 goexit()
	0x7fa3e7da2600 unknown pc

	Clearly xml.Parser is accessing an uninitialized map. Add a check for a nil map before accessing it.

R=r, rsc
https://golang.org/cl/159050
2009-11-23 14:26:30 -08:00
Russ Cox
e69f12ae1d two more if(h<0) that gcc 4.3 -O2 miscompiles
R=r
https://golang.org/cl/160044
2009-11-23 14:23:14 -08:00
Russ Cox
b90f673290 io.ReadWriter: fix doc comment (ReadWrite -> ReadWriter)
R=r
CC=eds
https://golang.org/cl/160045
2009-11-23 14:22:56 -08:00
Rob Pike
3b7f552fbb fix bug in prefix code: must stop one character before any potential match of an empty string
Fixes #308.

R=rsc
CC=golang-dev
https://golang.org/cl/157142
2009-11-23 14:06:21 -08:00
Rob Pike
b050a1b223 Fix doc striing for NewReadLogger.
Fixes #315.

R=rsc
https://golang.org/cl/157140
2009-11-23 13:51:10 -08:00
Russ Cox
dc30800c28 8g: call throwindex for array out of bounds
R=ken2
https://golang.org/cl/160043
2009-11-23 12:58:28 -08:00
Adam Langley
6e0842db8b crypto/tls: add initial client implementation.
R=rsc, agl
CC=golang-dev
https://golang.org/cl/157076
2009-11-21 15:53:03 -08:00
Rob Pike
ff6a8fd779 mention arrays of arrays and slices of slices
Fixes #113.

R=gri, rsc
CC=golang-dev
https://golang.org/cl/159049
2009-11-20 15:47:15 -08:00
Russ Cox
28e392d4bd gofmt: add -r flag to rewrite source code according to pattern
a little slow, but usable (speed unchanged when not using -r)

tweak go/printer to handle nodes without line numbers
more gracefully in a couple cases.

R=gri
https://golang.org/cl/156103
2009-11-20 15:09:54 -08:00
William Josephson
1444f1bb1d Missed a reference to sc instead of mc in 157065.
R=rsc, dho
https://golang.org/cl/157116
2009-11-20 13:46:47 -08:00
Russ Cox
19dae0799b gofmt -r 'α[β:len(α)] -> α[β:]' -w test/bench
except chameneosredux which i know is being edited

require gofmt for test/bench

R=r
https://golang.org/cl/157110
2009-11-20 13:11:42 -08:00
Devon H. O'Dell
7ada6018a7 FreeBSD's mcontext isn't exactly the same as sigcontext, so
we can't use them interchangably.

R=rsc, wjosephson
CC=golang-dev
https://golang.org/cl/156113
2009-11-20 13:08:16 -08:00
Robert Griesemer
7763345379 Support for basic try-catch style exception handling.
Meant as illustration of the Go pattern that is using
goroutines and channels to handle exceptional situations.

Note: There is no need for "Finally" since the
"try block" (the function f supplied to Try)
cannot do a Smalltalk-style non-local return
and terminate the function surrounding Try.

Replaces CL 157083.

R=r, rsc
https://golang.org/cl/157087
2009-11-20 11:50:11 -08:00
Russ Cox
9ac4449cb2 gofmt -r 'α[β:len(α)] -> α[β:]' -w src/cmd src/pkg
R=r, gri
CC=golang-dev
https://golang.org/cl/156115
2009-11-20 11:45:05 -08:00
Russ Cox
aa4c638b7b x[y:] for strings
R=ken2
https://golang.org/cl/157114
2009-11-20 11:42:28 -08:00
Rob Pike
3e8bb54c2f fix build
R=rsc
https://golang.org/cl/159044
2009-11-20 11:26:40 -08:00
Russ Cox
caf15f855d codereview: handle UTF-8 in message descriptions
what a terrible way to implement strings

R=r
https://golang.org/cl/156116
2009-11-20 11:19:16 -08:00
Rob Pike
d324a851c4 slight simplification made possible by the code now processing match states
in order of discovery.

R=rsc
https://golang.org/cl/157112
2009-11-20 11:16:57 -08:00
Rob Pike
542e5b8ade add unimplemented %+ and % (space) flags to floating-point print.
fix %E: was same as %e.
add tests.

Fixes #278.

R=rsc
CC=golang-dev
https://golang.org/cl/157111
2009-11-20 11:04:51 -08:00
Russ Cox
652f55672d x[lo:] - gc and runtime.
* add runtime sliceslice1 for x[lo:]
  * remove runtime arraytoslice, rewriting &arr into arr[0:len(arr)].
  * port cgen_inline into 8g, 5g.
  * use native memmove in maps

R=ken2
https://golang.org/cl/157106
2009-11-20 09:11:46 -08:00
Russ Cox
688ffc1dc1 test/bench revisions;
* reverse-complement: port C algorithm to Go
	saves 30% on my MacBook Pro and makes it a fairer comparison.
  * test reverse-complement with and without GC (another 15%)
  * revise timing.sh to work on more systems
  * avoid two glibcisms in fasta.c

R=r
https://golang.org/cl/156110
2009-11-20 08:59:11 -08:00
Russ Cox
9bc6a404d5 cgo: allow .so in subdirectories
R=r
https://golang.org/cl/157103
2009-11-20 00:31:03 -08:00
Russ Cox
c614ffe946 codereview: make hg sync work with Mercurial 1.4
R=r
https://golang.org/cl/157102
2009-11-20 00:30:38 -08:00
Rob Pike
c62069cc1f add a match arena to regexp to avoid generating garbage.
simple regexps run 20x faster.
the regex-dna benchmark goes 3x faster.

R=rsc
CC=golang-dev
https://golang.org/cl/156108
2009-11-19 23:12:01 -08:00
Eden Li
b30f753dc3 cgo now renders types with unknown size as [0]byte instead of raising a
fatal error.
Fixes #126.

R=rsc
https://golang.org/cl/157101
2009-11-19 22:09:01 -08:00
Russ Cox
6e0767bb04 reflect fixes
R=r
https://golang.org/cl/156104
2009-11-19 22:06:32 -08:00
Russ Cox
7fce5ad011 fix arm build.
once more with feeling.

TBR=kaib
https://golang.org/cl/157100
2009-11-19 21:16:26 -08:00
James Meneghello
bfbb31595b Map support for template.Execute().
Allows the developer to pass a map either by itself for
evaluation, or inside a struct. Access to data inside
maps is identical to the current system for structs, ie.

-Psuedocode-

mp map[string]string = {
	"header" : "A fantastic header!",
	"footer" : "A not-so-fantastic footer!",
}
template.Execute(mp)

...can be accessed using {header} and {footer} in
the template. Similarly, for maps inside structs:

type s struct {
	mp map[string]string,
}
s1 = new s
s1.mp["header"] = "A fantastic header!";
template.Execute(s1)

...is accessed using {mp.header}. Multi-maps, ie.
map[string](map[string]string) and maps of structs
containing more maps are unsupported, but then, I'm
not even sure if that's supported by the language.

Map elements can be of any type that can be written
by the formatters. Keys should really only be strings.

Fixes #259.

R=r, rsc
https://golang.org/cl/157088
2009-11-19 21:08:05 -08:00
James Meneghello
c16f5cd9a6 Contributions etc.
R=rsc, r
https://golang.org/cl/156106
2009-11-19 21:07:54 -08:00
Michael Hoisie
ce88bfa585 Add json.Marshal to json package
R=rsc
CC=golang-dev
https://golang.org/cl/157068
2009-11-19 20:45:03 -08:00
Michael Hoisie
121bb921fb Added my name to the CONTRIBUTORS file
R=rsc
https://golang.org/cl/156081
2009-11-19 20:44:56 -08:00
Evan Shaw
4db3a166b2 archive/tar: Make Reader and Writer more closely follow io.Reader and io.Writer interfaces
There's no functional change here. io gives the Read and Write methods byte slice arguments, but tar called them uint8. It's the same thing, but I think this is clearer and it matches what other packages do.

R=rsc
CC=golang-dev
https://golang.org/cl/157099
2009-11-19 20:43:30 -08:00
Russ Cox
ec30932124 big: fix arm build - forgot how to spell JMP
Fixes #269.

TBR=kaib
https://golang.org/cl/156107
2009-11-19 20:32:09 -08:00
Russ Cox
d116a32727 gc: reject large channel values at compile time
Fixes #144.

R=ken2
CC=agl1
https://golang.org/cl/156102
2009-11-19 18:20:06 -08:00
Rob Pike
a6e1ad2733 two easy optimizations for regexp:
1) if char class contains a single character, make it a single character.
		(this is used to quote, e.g. [.] rather than \.
	2) if regexp begins with ordinary text substring, use plain string match to start engine

R=rsc
CC=golang-dev
https://golang.org/cl/157095
2009-11-19 16:45:50 -08:00
Robert Griesemer
398927e63b update test.sh for gofmt
R=rsc
https://golang.org/cl/157096
2009-11-19 16:42:49 -08:00
Robert Griesemer
b48f71213a Permit omission of hi bound in slices.
R=r, rsc
https://golang.org/cl/157082
2009-11-19 16:42:05 -08:00
Trevor Strohman
61660adc63 Adds benchmark support to gotest.
No benchmarks are run unless the --benchmarks=<regexp> flag
is specified on the gotest command line.  This change includes
sample benchmarks for regexp.

% gotest --benchmarks=.*
(standard test output redacted)
testing.BenchmarkSimpleMatch	200000	      7799 ns/op
testing.BenchmarkUngroupedMatch	20000	     76898 ns/op
testing.BenchmarkGroupedMatch	50000	     38148 ns/op

R=r, rsc
https://golang.org/cl/154173
2009-11-19 16:35:34 -08:00
Russ Cox
69039e5a5a build Make.deps during make.bash instead
of keeping a checked-in copy.  doesn't
slow down make.bash appreciably.

R=r
https://golang.org/cl/156099
2009-11-19 16:27:13 -08:00
Ken Thompson
d9014dc98a put copy into goyacc
R=rsc
https://golang.org/cl/156100
2009-11-19 15:34:11 -08:00
Rob Pike
4e201c7f20 os.ReadAt doesn't return EOF at EOF.
thanks to lionkov for the fix.

Fixes #262.

R=rsc
CC=golang-dev
https://golang.org/cl/156097
2009-11-19 11:51:23 -08:00
Russ Cox
4aaf948f90 runtime: mask signals during signal handler on OS X
Fixes #265.

R=r
CC=golang-dev
https://golang.org/cl/157084
2009-11-19 11:01:16 -08:00
Robert Griesemer
5fd4f76802 bug219: parsing difficulties with 6g
R=r, rsc
https://golang.org/cl/157085
2009-11-19 00:04:30 -08:00
Rob Pike
9682ee4e04 - flip in and out to exercise overlap check a little (could do better)
- actually test the results

R=rsc, ken2
CC=golang-dev
https://golang.org/cl/156094
2009-11-18 22:26:36 -08:00
Rob Pike
02df7db868 replace custom findByte with bytes.IndexByte
R=rsc
https://golang.org/cl/156093
2009-11-18 19:58:32 -08:00
Adam Langley
bf1f63a273 big: fix large division.
I missed a case.

R=rsc, agl
CC=golang-dev
https://golang.org/cl/156092
2009-11-18 19:26:12 -08:00
Rob Pike
8c1a627e5c add bytes.IndexByte; common case we can make fast later.
also pick off the special case in strings.Index.   don't want strings.IndexByte
because the call site will very rarely need to allocate and we can handle the
test in the code itself.   bytes.IndexByte can avoid a common allocation.

R=rsc
CC=golang-dev
https://golang.org/cl/156091
2009-11-18 19:23:08 -08:00
Robert Griesemer
1a8ebcc4b8 Allow optional second expression in slice expressions.
Built-in function copy.
Addresses issue 203.

R=rsc, r, iant
https://golang.org/cl/156089
2009-11-18 19:15:25 -08:00
Russ Cox
e1c5c3df77 runtime: fix bug on darwin/amd64 - bad g in bsdthread_start
R=r
https://golang.org/cl/157077
2009-11-18 18:17:11 -08:00