1
0
mirror of https://github.com/golang/go synced 2024-10-04 15:11:20 -06:00
Commit Graph

1913 Commits

Author SHA1 Message Date
Kirklin McDonald
0046d51e06 net: add support for DNS SRV requests.
Fixes #758.

R=rsc, adg
CC=golang-dev
https://golang.org/cl/1078041
2010-06-30 10:54:24 +10:00
Russ Cox
774333685e runtime: fix scheduling bug - world wasn't stopping
Fixes #886.

R=r
CC=golang-dev
https://golang.org/cl/1667051
2010-06-29 17:47:27 -07:00
Rob Pike
64b6a789a1 strconv: fix %.1f, 0.09
Fixes #822.
Credit to https://golang.org/cl/1442041 by danielfleischman

R=rsc
CC=golang-dev
https://golang.org/cl/1738047
2010-06-29 16:51:56 -07:00
Rob Pike
21f8ae8fec strconv: fix %.2g, 40
Fixes #845.

R=rsc
CC=golang-dev
https://golang.org/cl/1673049
2010-06-29 16:39:17 -07:00
Vinu Rajashekhar
00ad47f906 Move the function Run() back into fd.go.
R=iant
CC=golang-dev, rsc
https://golang.org/cl/1748041
2010-06-29 12:04:04 -07:00
Rob Pike
da69685ee5 gob: a couple of tiny simplifications using Kind()
R=rsc
CC=golang-dev
https://golang.org/cl/1695046
2010-06-29 10:14:32 -07:00
Alex Brainman
059c7ba996 runtime: fix windows build
R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/1747041
2010-06-29 07:12:14 -07:00
Nigel Tao
715425bf6f exp/draw/x11: implement the mapping from keycodes to keysyms.
R=rsc
CC=golang-dev, rog
https://golang.org/cl/1739042
2010-06-29 10:54:41 +10:00
Ian Lance Taylor
807605d0fc Only catch all signals if os/signal package imported.
Fixes #776.

R=rsc
CC=golang-dev
https://golang.org/cl/1745041
2010-06-28 17:14:17 -07:00
Rob Pike
d4384ff7f5 netchan: use gob DecodeValue to eliminate the need for a pointer value
in Import and Export.

R=rsc
CC=golang-dev
https://golang.org/cl/1707047
2010-06-28 17:12:09 -07:00
Rob Pike
12a4d84371 gob: add DecodeValue and EncodeValue
R=rsc
CC=golang-dev
https://golang.org/cl/1698045
2010-06-28 17:11:54 -07:00
Peter Mundy
ea88de805e syscall: Add syscall_bsd.go to zsycall_freebsd_386.go
Revision: 5885c9d10f created syscall_bsd.go for code used
by Darwin and other *BSDs, which should have included
FreeBSD. mksyscall.sh to generate new zsyscall_freebsd_386.go.

Fixes #862.

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/1701048
2010-06-29 09:11:02 +10:00
Rob Pike
08483defac rpc: allow non-struct args and reply (they must still be pointers)
R=rsc
CC=golang-dev
https://golang.org/cl/1722046
2010-06-28 16:05:54 -07:00
Rob Pike
eb20ba6d01 netchan: allow chan of basic types now that gob can handle such
R=rsc
CC=golang-dev
https://golang.org/cl/1741041
2010-06-28 15:59:54 -07:00
Rob Pike
5245ea771d fmt.Printf: fix bug in handling of %#v.
nice side effect: slices now obey their format verb. example:
	fmt.Printf("%q\n", []string{"a"})

R=rsc
CC=golang-dev
https://golang.org/cl/1729045
2010-06-28 14:11:38 -07:00
Rob Pike
a26ab29ab8 gob: allow transmission of things other than structs at the top level.
also fix a bug handling nil maps: before, would needlessly send empty map

R=rsc
CC=golang-dev
https://golang.org/cl/1739043
2010-06-28 14:09:47 -07:00
Vinu Rajashekhar
e0334ab798 Move the functions, newPollServer and Run, from fd.go
to a new source file.

R=iant, rsc
CC=golang-dev
https://golang.org/cl/1670046
2010-06-28 13:58:56 -07:00
Rob Pike
56f3c70111 fmt.Scan: fix handling of EOFs.
Fixes #876.

R=rsc
CC=golang-dev
https://golang.org/cl/1675048
2010-06-24 15:24:25 -07:00
Rob Pike
37a6bc838b gob: add support for complex numbers
R=rsc
CC=golang-dev
https://golang.org/cl/1708048
2010-06-24 15:07:28 -07:00
Christopher Wedgwood
57e1888741 Build draw/x11. Skip for test.
R=nigeltao_golang
CC=golang-dev, r, rsc
https://golang.org/cl/1690043
2010-06-23 15:08:27 +10:00
Rob Pike
e05c3668d2 regexp: restore accidentally deleted test item.
R=rsc
CC=golang-dev
https://golang.org/cl/1714044
2010-06-22 16:11:21 -07:00
Rob Pike
a8cd6c2012 regexp: bug fix: need to track whether match begins with fixed prefix.
Fixes #872.

R=rsc
CC=golang-dev
https://golang.org/cl/1731043
2010-06-22 16:02:14 -07:00
Rob Pike
537e5f4b7e debug/dwarf: update PDF link.
Fixes #881.

R=iant
CC=golang-dev
https://golang.org/cl/1696044
2010-06-22 14:56:16 -07:00
Russ Cox
e63ae242e6 runtime: split extern.go into debug.go, extern.go, sig.go.
move mal next to the other malloc functions.

R=r
CC=golang-dev
https://golang.org/cl/1701045
2010-06-21 20:53:49 -07:00
Russ Cox
44ca04d3d6 big, bytes: move assembly externs to separate file
to make it easier to build package without assembly.

R=r, r2
CC=golang-dev
https://golang.org/cl/1680045
2010-06-21 19:53:08 -07:00
Russ Cox
f374575fb7 net: move Dial, Listen out of net.go.
now net.go is only type definitions, not active code.

R=r
CC=golang-dev
https://golang.org/cl/1708046
2010-06-21 19:52:30 -07:00
Russ Cox
121a16fa95 runtime: delete old types
R=r
CC=golang-dev
https://golang.org/cl/1715043
2010-06-21 18:03:25 -07:00
Christopher Wedgwood
7edd49614c net: Fix ICMP test.
Ping IDs should be limited to 16-bits.  Fix failure printing.

R=rsc
CC=golang-dev, jean-christophe smith <jeanchristophe.smith
https://golang.org/cl/1682043
2010-06-21 16:40:44 -07:00
Russ Cox
226b5fc666 syslog: use local network for tests
R=r
CC=golang-dev
https://golang.org/cl/1724042
2010-06-21 13:48:49 -07:00
Russ Cox
fc090a3a54 reflect: add Type.Bits method, add tags to prohibit conversions
gob: substitute slice for map

R=r
CC=golang-dev
https://golang.org/cl/1699045
2010-06-21 13:19:29 -07:00
Russ Cox
96d35c6984 pkg/Makefile: allow DISABLE_NET_TESTS=1 to disable network tests
netchan, rpc, websocket: run test servers on 127.0.0.1,
to avoid conflict with OS X firewall.

TBR=r
CC=golang-dev
https://golang.org/cl/1689046
2010-06-21 13:05:38 -07:00
Russ Cox
1b79cd2e71 undo changes accidentally included in 09c5add99d50
R=ken2
CC=golang-dev
https://golang.org/cl/1736042
2010-06-20 12:45:39 -07:00
Russ Cox
45bdf0367e reflect: add Kind, remove Int8Type, Int8Value, etc.
update other code to match.

R=r
CC=golang-dev
https://golang.org/cl/1680044
2010-06-20 12:16:25 -07:00
Russ Cox
a212d174ac gc: better error messages for interface failures, conversions
x.go:13: cannot use t (type T) as type Reader in assignment:
	T does not implement Reader (Read method requires pointer receiver)
x.go:19: cannot use q (type Q) as type Reader in assignment:
	Q does not implement Reader (missing Read method)
		have read()
		want Read()
x.go:22: cannot use z (type int) as type Reader in assignment:
	int does not implement Reader (missing Read method)

x.go:24: too many arguments to conversion to complex: complex(1, 3)

R=ken2
CC=golang-dev
https://golang.org/cl/1736041
2010-06-20 11:45:53 -07:00
Russ Cox
a674c024c7 nacl: fix build
TBR=r
CC=golang-dev
https://golang.org/cl/1706044
2010-06-18 22:45:42 -07:00
Russ Cox
2d3e47ca10 strconv: add AtofN, FtoaN
R=r
CC=golang-dev
https://golang.org/cl/1700043
2010-06-18 22:43:37 -07:00
Rob Pike
3748d22672 fmt.Scanf: improve error message when input does not match format
R=rsc
CC=golang-dev
https://golang.org/cl/1693043
2010-06-18 20:37:03 -07:00
Russ Cox
21ff75bc0e complex divide: match C99 implementation
R=iant, ken2, r, r2, ken3
CC=golang-dev
https://golang.org/cl/1686044
2010-06-18 15:46:00 -07:00
Brad Fitzpatrick
743f818218 http: reply to Expect 100-continue requests automatically
This CL replaces my earlier https://golang.org/cl/1640044/show
in which Continue handling was explicit.  Instead, this CL makes
it automatic.  Reading from Body() is an implicit acknowledgement
that the request headers were fine and the body is wanted.  In that
case, the 100 Continue response is written automatically when the
request continues the "Expect: 100-continue" header.

R=rsc, adg
CC=golang-dev
https://golang.org/cl/1610042
2010-06-16 10:15:39 -07:00
Nigel Tao
6de79ee0ef image: add an Alpha16 type, for completeness.
R=rsc
CC=golang-dev, rog
https://golang.org/cl/1707042
2010-06-16 12:36:07 +10:00
Rob Pike
d60312c4c0 fmt.Scan: fix %c in the case where the input does not implement ReadRune itself.
While we're at it, clean up and test the code to guarantee we see every byte when
the text is erroneous UTF-8.

Fixes #866.

R=rsc
CC=golang-dev
https://golang.org/cl/1712042
2010-06-15 17:41:11 -07:00
Rob Pike
9baa7a51ba bytes.Buffer.ReadFrom: fix bug.
Fixes #852.

R=rsc
CC=golang-dev
https://golang.org/cl/1680042
2010-06-15 17:40:47 -07:00
Russ Cox
c9172fb2a3 runtime: correct fault for 16-bit divide on Leopard
R=r
CC=golang-dev
https://golang.org/cl/1703041
2010-06-14 18:07:17 -07:00
Rob Pike
177746ba31 fmt.Printf: write tests for %T.
Fix a bug that caused it to ignore field widths.

R=rsc
CC=golang-dev
https://golang.org/cl/1704041
2010-06-14 17:42:31 -07:00
Rob Pike
d482c163be fmt.Print*: reimplement to switch on type first.
This shortens, simplifies and regularizes the code significantly.
(Improvements to reflect could make another step.)
Passes all.bash.

One semantic change occurs: The String() method changes
behavior. It used to run only for string formats such as %s and %q.
Instead, it now runs whenever the item has the method and the
result is then processed by the format as a string. Besides the
regularization, this has three effects:

	1) width is honored for String() items
	2) %x works for String() items
	3) implementations of String that merely recur will recur forever

Regarding point 3, example from the updated documentation:
	type X int
	func (x X) String() string { return Sprintf("%d", x) }
should cast the value before recurring:
	func (x X) String() string { return Sprintf("%d", int(x)) }

R=rsc
CC=golang-dev
https://golang.org/cl/1613045
2010-06-14 17:16:35 -07:00
Nigel Tao
43b3a247d3 html: sync testdata/webkit to match WebKit tip.
R=rsc
CC=golang-dev
https://golang.org/cl/1701041
2010-06-15 09:07:47 +10:00
Roger Peppe
18274e0075 Add IndexFunc and LastIndexFunc.
Change TrimRight and TrimLeft to use these functions.
Incidentally fix minor bug in TrimRight.
Add some test cases for this.
YMMV whether it's worth saving the closure allocation.

R=r, r2
CC=golang-dev, hoisie, rsc
https://golang.org/cl/1198044
2010-06-14 14:54:48 -07:00
Russ Cox
6672b40c09 remove uses of ... from tree, add one test
R=r
CC=golang-dev
https://golang.org/cl/1662041
2010-06-14 11:23:11 -07:00
Nigel Tao
44a17e9df7 exp/draw: small draw.drawGlyphOver optimization.
Make dpix variable names consistent.

R=rsc
CC=golang-dev
https://golang.org/cl/1563041
2010-06-14 16:49:43 +10:00
Russ Cox
53a529ab2b runtime: fix 386 signal handler bug
Cannot assume that g == m->curg at time of signal.
Must save actual g and restore.

Fixes flaky crashes with messages like

throw: malloc mlookup
throw: malloc/free - deadlock
throw: unwindstack on self
throw: free mlookup

(and probably others) when running cgo.

R=iant
CC=golang-dev
https://golang.org/cl/1648043
2010-06-12 10:48:04 -07:00
Alex Brainman
c1e20720f7 runtime: switch to OS stack during Windows syscall
R=rsc
CC=golang-dev
https://golang.org/cl/1381041
2010-06-11 01:38:12 -07:00
Alex Brainman
fdb460ec11 runtime: free lock handles on Windows
R=rsc
CC=golang-dev
https://golang.org/cl/1652041
2010-06-11 00:53:54 -07:00
Rob Pike
62b5c7c69d add path.Base, analogous to Unix basename
R=rsc
CC=golang-dev
https://golang.org/cl/1633042
2010-06-09 19:59:22 -07:00
Adam Langley
5f0319c0a6 asn1: allow '*' in PrintableString.
Although technically incorrect, we want this in order to parse X.509
certificates where a wildcard hostname ("*.example.com") has been put
into a PrintableString.

Fixes #850.

R=rsc
CC=golang-dev
https://golang.org/cl/1615043
2010-06-09 20:52:41 -04:00
Robert Griesemer
e0e5c150b0 exp/eval test: fix build
R=r
CC=golang-dev
https://golang.org/cl/1599043
2010-06-09 15:52:42 -07:00
Robert Griesemer
ace5269dfe go/scanner: report illegal escape sequences
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/1636043
2010-06-09 15:19:22 -07:00
Russ Cox
565b5dc076 gc: new typechecking rules
* Code for assignment, conversions now mirrors spec.
* Changed some snprint -> smprint.
* Renamed runtime functions to separate
  interface conversions from type assertions:
  convT2I, assertI2T, etc.
* Correct checking of \U sequences.

Fixes #840.
Fixes #830.
Fixes #778.

R=ken2
CC=golang-dev
https://golang.org/cl/1303042
2010-06-08 18:50:02 -07:00
Russ Cox
6aaef04469 misc cleanup: gofmt + &x -> x[0:] conversion
R=gri
CC=golang-dev
https://golang.org/cl/1620042
2010-06-08 17:51:57 -07:00
Robert Griesemer
f29fb251dc go/printer: deleted dead code
(remains of the semicolon conversion)

R=rsc
CC=golang-dev
https://golang.org/cl/1623041
2010-06-08 17:46:04 -07:00
Robert Griesemer
3f3ff2bd5c go/parser: correct position of empty statement ';'
(caused certain files to not be idempotent under gofmt)

- corrected golden files for go/printer
- slightly simplified some code in nodes.go (no impact on formatting)
- these changes have no impact on gofmt output of .go files under src, misc

fallthrough statement considered harmful!

R=rsc
CC=golang-dev
https://golang.org/cl/1593042
2010-06-08 17:06:26 -07:00
Andrew Gerrand
9b3c743f82 http: add Head function for making HTTP HEAD requests
R=rsc
CC=golang-dev
https://golang.org/cl/1581041
2010-06-08 01:28:40 +02:00
Daniel Theophanes
129c6c14d1 runtime: finish pchw -> tiny, added gettime for tiny
R=rsc
CC=golang-dev
https://golang.org/cl/1514041
2010-06-07 14:18:42 -07:00
Andrew Gerrand
8334d107c4 http: fix erroneous comment
R=r
CC=golang-dev
https://golang.org/cl/1539042
2010-06-06 17:18:09 +02:00
Nigel Tao
64784801cd HTML5 parser test data from WebKit.
R=rsc
CC=golang-dev
https://golang.org/cl/1559041
2010-06-04 17:47:22 -07:00
Nigel Tao
37fba90bc7 Fixes #836.
R=gri
CC=golang-dev
https://golang.org/cl/1548042
2010-06-04 17:30:39 -07:00
Nigel Tao
2006667931 draw.Draw fast paths for the Over operator.
Time (us) to draw a 200x200 src onto an image.RGBA dst with the Over
operator. Each case was measured three separate times, and the sorted
times are reported.

Fill case (where src is an image.ColorImage):
Before:
7438, 7511, 7526
After:
3073, 3087, 3102

Copy case (where src is an image.RGBA):
Before:
9506, 9510, 9563
After:
5262, 5300, 5344

R=rsc
CC=golang-dev
https://golang.org/cl/1532041
2010-06-03 17:19:00 -07:00
Nigel Tao
c2e9f0c562 Add Opaque method to the image types.
R=rsc
CC=golang-dev
https://golang.org/cl/1533041
2010-06-03 17:18:26 -07:00
Rob Pike
9a70762ac9 fmt.Scan: %c
R=rsc
CC=golang-dev
https://golang.org/cl/1518042
2010-06-03 17:03:22 -07:00
Russ Cox
28852c1531 io/ioutil: add TempFile
R=r
CC=golang-dev
https://golang.org/cl/1472042
2010-06-03 16:29:34 -07:00
Russ Cox
24baca4936 http: handle status 304 correctly
- cannot send body
  - should not send body-related headers

R=r
CC=golang-dev
https://golang.org/cl/1499041
2010-06-03 16:09:37 -07:00
Rob Pike
962e8b8736 fmt.Scan: field widths
Also fix an interface bug: white-space-delimited doesn't work well for cases like "%d, %d" on "23, 23")

R=rsc
CC=golang-dev
https://golang.org/cl/1502041
2010-06-03 16:06:41 -07:00
Charles L. Dorian
3fb8d2ad84 math: fix typo in Exp2 benchmark
Was timing Exp, not Exp2.

R=rsc, r
CC=golang-dev
https://golang.org/cl/1521042
2010-06-03 15:04:22 -07:00
Rob Pike
04721ff309 netchan: fix typo in test
R=rsc
CC=golang-dev
https://golang.org/cl/1522041
2010-06-03 13:16:09 -07:00
Nigel Tao
2e632088ce Fix typo in xml comments.
R=rsc
CC=golang-dev
https://golang.org/cl/1503041
2010-06-03 00:56:53 -07:00
Kyle Consalus
aae02a1855 Optimization to regexp _CharClass: keep track of overall range of
charclass to avoid unnecessarily iterating over ranges.
    Also, use the fact that IntVector is an []int to avoid method calls.
    On my machine, this brings us from ~27500 ns/op to ~17500 ns/op in the benchmark I've added (it is also faster in the case where a range check
    doesn't help, added a benchmark for this too.)

    I'd also like to propose that "[]", and "[^]" be disallowed. They aren't useful as far as I can tell, they aren't widely supported, and they make reasoning about character classes a bit more complicated.

R=r
CC=golang-dev
https://golang.org/cl/1495041
2010-06-02 23:04:44 -07:00
Charles L. Dorian
3d4c97b82c math: Pow special cases (signed zero, IEEE 754-2008)
Also added more tests for acosh, hypot, log, log10, log2
in all_test.go.

R=rsc
CC=golang-dev
https://golang.org/cl/1417041
2010-06-02 20:55:47 -07:00
Rob Pike
6106c63abc fmt.Scan: scan []byte arguments
R=rsc
CC=golang-dev
https://golang.org/cl/1486041
2010-06-02 16:28:01 -07:00
Russ Cox
041d978d84 bufio: change ReadSlice to match description
On error, ReadSlice is defined to return the available data
and advance past that data, but it was not behaving that
way for err == ErrBufferFull, making it harder for callers to
handle well.

R=r
CC=golang-dev
https://golang.org/cl/1480041
2010-06-02 16:17:18 -07:00
Rob Pike
4fc97c4703 fmt.Scanf: implement formats, provide Sscanf (strings)
- provide convenience functions for scanning strings
- enable Scanf etc.
- update doc comments

R=rsc
CC=golang-dev
https://golang.org/cl/1451044
2010-06-02 14:58:31 -07:00
Russ Cox
8ae29642b1 big: fix spelling of Euclidean
R=gri
CC=golang-dev
https://golang.org/cl/1372042
2010-06-02 12:53:15 -07:00
Rob Pike
5df40b434d fmt.Scan: renamings, strings, errors
- implement scanning for all renamed types
	(compiler bug stops complex from being renamable,
	so it can't be tested but the code is there)
- %q %x for strings
- error handling now done with panic/recover

R=rsc
CC=golang-dev
https://golang.org/cl/1458041
2010-06-01 15:22:01 -07:00
Rob Pike
b8a89972ee fmt.Scan: renamings, strings, errors
- implement scanning for all renamed types
	(compiler bug stops complex from being renamable,
	so it can't be tested but the code is there)
- %q %x for strings
- error handling now done with panic/recover

R=rsc
CC=golang-dev
https://golang.org/cl/1458041
2010-06-01 15:21:21 -07:00
Robert Griesemer
ab215f73fc big: bug fix for Quo aliasing problem
Fixes #820.

R=rsc
CC=golang-dev
https://golang.org/cl/1453041
2010-06-01 14:37:11 -07:00
Evan Shaw
69879f0414 runtime: Fix printing -Inf
R=rsc
CC=golang-dev
https://golang.org/cl/1258044
2010-06-01 14:08:15 -07:00
Vinu Rajashekhar
0d64fa19f8 Correct the regexp for finding unix signal names.
For example, earlier, the regexp would accept SIGQUEUE_MAX
  as a unix signal with name SIGQUEUE. Now it is ignored.

R=iant
CC=golang-dev, golang-nuts, joel.sherrill
https://golang.org/cl/1452041
2010-06-01 12:02:00 -07:00
Nigel Tao
c3080418d6 Fix typo in gob docs. They were introduced in revision 3199778baf
"change the encoding of uints...".

R=r
CC=golang-dev
https://golang.org/cl/1436041
2010-05-31 17:35:59 -07:00
Fazlul Shahriar
eed5bb3bee vector: undo changes to autogenerated files
Also, move Do() to vector.go, so that Do() for IntVector and StringVector
is autogenerated.

The only files edited are Makefile, defs.go, and vector.go. The rest are
autogenerated with "make generate".

R=r
CC=golang-dev, hoisie
https://golang.org/cl/1435041
2010-05-31 15:53:55 -07:00
Rob Pike
ce9da214b7 fmt: fix end-of-array error in parsenum.
Fixes #821.

R=rsc
CC=golang-dev
https://golang.org/cl/1434041
2010-05-31 14:57:32 -07:00
Michael Hoisie
ebb1c8b912 IntVector.Do now takes an f(int), and StringVector.Do now takes an f(string).
R=r
CC=golang-dev
https://golang.org/cl/1433041
2010-05-31 14:55:30 -07:00
Rob Pike
8af4acf59d fmt.Scan: refactor the implementation so format-driven and normal scanning use the same function.
simplifies the code significantly.
Still TODO:
	- proper format handling
	- strings

R=rsc
CC=golang-dev
https://golang.org/cl/1432041
2010-05-31 14:53:15 -07:00
Rob Pike
e6600ea17d fmt.Scan:
- reimplement integer scanning to handle renamed basic integer types
- start implementation of Fscanf and Scanf; not yet ready for general use.

This intermediate CL is a useful checkpoint. A similar change needs to be
done for float and complex, but it seemed worth getting the approach
reviewed before making those changes.

R=rsc
CC=golang-dev
https://golang.org/cl/1418041
2010-05-31 10:56:58 -07:00
Alex Brainman
901976cfc3 implement os.FileInfo.*time_ns for windows
R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/1145044
2010-05-31 13:43:40 +02:00
Andrew Gerrand
a63f73c196 net: fix typo
Fixes #819.

R=rsc
CC=golang-dev
https://golang.org/cl/1421041
2010-05-31 07:05:41 +02:00
Rob Pike
752b47cfc5 netchan: improve closing and shutdown. there's still more to do.
Fixes #805.

R=rsc
CC=golang-dev
https://golang.org/cl/1400041
2010-05-28 22:32:29 -07:00
Nigel Tao
2bb59fd71a Make image.Color.RGBA return 16 bit color instead of 32 bit color.
R=rsc
CC=golang-dev
https://golang.org/cl/1388041
2010-05-28 12:59:21 -07:00
Alex Brainman
d5a8647d80 syscall: windows SysAlloc should use stdcall_raw not syscall
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/1382041
2010-05-28 11:47:09 -07:00
Alex Brainman
12923e43f2 syscall: windows syscall trace to assist debugging
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/1383041
2010-05-28 11:46:10 -07:00
Rob Pike
0580deafaf fmt.Scan: add Fscan and Fscanln and make Scan and Scanln
read from standard input.  Add description of scanning to
the package comment.

R=rsc
CC=golang-dev
https://golang.org/cl/1390041
2010-05-28 11:29:27 -07:00
Roger Peppe
1fda1323d4 Add Rectangle.Eq and Point.In.
Fix Rectangle.Clip.
It could return a non-canonical rectangle if its arguments
did not overlap.
e.g. Rect(0, 0, 10, 10).Clip(Rect(0, 20, 10, 30)) -> Rect(0, 20, 10, 10)

R=rsc, r
CC=golang-dev, golang-dev
https://golang.org/cl/1290041
2010-05-27 17:19:47 -07:00
Russ Cox
bb84f4b5d2 changes &x -> x[0:] for array to slice conversion
R=gri
CC=golang-dev
https://golang.org/cl/1326042
2010-05-27 14:51:47 -07:00
Rob Pike
7ee6d44e4f fmt.Scan: custom formatters
R=rsc
CC=golang-dev
https://golang.org/cl/1315042
2010-05-26 18:16:41 -07:00
Rob Pike
6965b407dd fmt.Scan: custom formatters
R=rsc
CC=golang-dev
https://golang.org/cl/1315042
2010-05-26 18:15:09 -07:00
Robert Griesemer
a4129988a4 godoc: collect package comments from all package files, not just the first one found
R=r
CC=golang-dev
https://golang.org/cl/1331041
2010-05-26 13:44:27 -07:00
Adam Langley
f199f292e7 big: add ModInverse.
ModInverse is just a small wrapper around GcdInt, but it's nice to
have in order to be clear about what one is doing in other code.

R=gri, agl1
CC=golang-dev
https://golang.org/cl/1244045
2010-05-26 15:58:58 -04:00
Rob Pike
5b77928478 fmt: fix 386 build. error strings differ for overflow on 386.
R=gri
CC=golang-dev
https://golang.org/cl/1316042
2010-05-26 10:01:52 -07:00
Rob Pike
71f130f55c fmt.Scan, fmt.Scanln: Start of a simple scanning API in the fmt package.
Still to do:
	- composite types
	- user-defined scanners
	- format-driven scanning
The package comment will be updated when more of the functionality is in place.

R=rsc
CC=golang-dev
https://golang.org/cl/1252045
2010-05-25 21:02:35 -07:00
Nigel Tao
0c662f60a5 Optimize exp/draw/x11 flusher inner loop.
On my laptop, time to prepare and write 800x600 pixels over the
socket falls from 125-ish ms to 80-ish ms.

Thanks to Roger Peppe for the suggestion.

R=r
CC=golang-dev
https://golang.org/cl/1228044
2010-05-24 19:32:42 -07:00
Russ Cox
566f598046 fix build - nacl stubs
TBR=nigeltao
CC=golang-dev
https://golang.org/cl/1259042
2010-05-24 17:00:21 -07:00
Christopher Wedgwood
5c19c4e5e3 net: udp, implement BindToDevice
R=rsc
CC=golang-dev, r
https://golang.org/cl/1271041
2010-05-24 16:53:23 -07:00
Evan Shaw
751fc425ee big: Rat test improvements
R=gri
CC=golang-dev
https://golang.org/cl/1270041
2010-05-24 16:38:41 -07:00
Nigel Tao
c95e11db56 Fix typo in exp/draw/x11.
R=rsc
CC=golang-dev
https://golang.org/cl/1282041
2010-05-24 15:07:47 -07:00
Russ Cox
21518ea2af runtime: free old hashmap pieces during resizing
R=r
CC=golang-dev
https://golang.org/cl/1254044
2010-05-24 14:31:10 -07:00
Alex Brainman
2a1ee42e2b fix windows build
R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/1209048
2010-05-24 11:48:14 -07:00
Nigel Tao
2d8aee45b8 Make draw/x11 treat $DISPLAY the same way x-go-bindings does.
This ought to make draw/x11 work on a Mac.

R=rsc
CC=golang-dev
https://golang.org/cl/1265042
2010-05-24 11:44:09 -07:00
Adam Langley
eadebba36f big: prevent errors in Exp in the face of aliasing
R=gri
CC=golang-dev, golang-dev
https://golang.org/cl/1244044
2010-05-24 14:32:55 -04:00
Andrew Gerrand
977475fd49 syscall: update freebsd_amd64
R=rsc, r
CC=golang-dev
https://golang.org/cl/1268041
2010-05-24 09:58:59 -07:00
Nigel Tao
e974fb949e When making images, allocate one big buffer instead of many small ones.
R=rsc, r
CC=golang-dev
https://golang.org/cl/1267041
2010-05-23 11:12:00 -07:00
Robert Griesemer
72fd5c80f8 go/printer, gofmt: fix printing of labels,
apply gofmt to src, misc

Fixes #752.

R=rsc
CC=golang-dev
https://golang.org/cl/1240044
2010-05-21 20:25:08 -07:00
Robert Griesemer
38b2d10bb2 test/hilbert.go: convert to test case and benchmark for big.Rat
R=rsc
CC=golang-dev
https://golang.org/cl/1231044
2010-05-21 20:20:17 -07:00
Christopher Wedgwood
13d5a19a98 net: implement raw sockets
R=rsc
CC=golang-dev
https://golang.org/cl/684041
2010-05-21 17:30:40 -07:00
Evan Shaw
5ac88f4a8b big: Add Rat type
Implementations are pretty rough and simple at this point, but it's a start.

R=gri
CC=golang-dev
https://golang.org/cl/1250043
2010-05-21 16:14:55 -07:00
Russ Cox
f58ba18a08 runtime: correct tracebacks for nascent goroutines, even closures
Fixes #780.

R=r
CC=golang-dev
https://golang.org/cl/1221042
2010-05-21 14:40:21 -07:00
Russ Cox
48673d2745 syscall: add Utimes, Futimes stubs for NaCl - fix build
TBR=nigeltao
CC=golang-dev
https://golang.org/cl/1262042
2010-05-21 14:39:10 -07:00
Russ Cox
1d076a6e61 syscall: regenerate zsyscall_linux_arm.go - fix build
R=kaib
CC=golang-dev
https://golang.org/cl/1209047
2010-05-21 14:33:17 -07:00
Robert Griesemer
e8dec0dc05 big: fix Int.SetString comment, simplify implementation,
always return z for nat.scan

R=rsc
CC=golang-dev
https://golang.org/cl/1236043
2010-05-21 14:28:34 -07:00
Robert Griesemer
638ef0794f bignum: deprecate by moving into exp directory
R=rsc
CC=golang-dev
https://golang.org/cl/1211047
2010-05-21 14:14:22 -07:00
Robert Griesemer
e3bfeec474 big: implemented Int.Binomial (to be used in test/hilbert.go with the
forthcoming implementation of big.Rat)

R=rsc
CC=golang-dev
https://golang.org/cl/1229047
2010-05-20 23:10:51 -07:00
Michael Hoisie
9192ec2ea1 netFD: fix race between Close and Read/Write
Fixes #783.

R=rsc, cw
CC=golang-dev
https://golang.org/cl/1207043
2010-05-20 17:13:50 -07:00
Roger Peppe
798140693e Fix Rectangle.Canon()
R=rsc, r, gri
CC=golang-dev
https://golang.org/cl/1239043
2010-05-20 14:33:50 -07:00
Nigel Tao
efda3aba10 Fast-ish path for drawing onto an image.RGBA destination.
Time to draw.Draw a 200x200 image fell from 18.4ms (and 1 malloc) to
5.6ms (and 0 mallocs). It's still relatively slow since it assumes
nothing about the src or mask images, but it does remove the malloc.
There are existing faster, more specialized paths for copies, fills
and image glyph masks.

Also added a "compare to a slow but obviously correct implementation"
check to draw_test.go.

R=rsc, r
CC=golang-dev
https://golang.org/cl/1223044
2010-05-20 13:57:18 -07:00
Christopher Wedgwood
37a6adf1d3 syscall: linux, implement BindToDevice
R=rsc
CC=adg, golang-dev, r
https://golang.org/cl/1253043
2010-05-20 09:43:13 -07:00
Christopher Wedgwood
5265857ac4 syscall: bsd, stub BindToDevice
R=rsc
CC=adg, golang-dev, r
https://golang.org/cl/1257041
2010-05-20 09:39:35 -07:00
Russ Cox
4843b130bb runtime: avoid allocation for fixed strings
R=r
CC=golang-dev
https://golang.org/cl/1083041
2010-05-19 21:33:31 -07:00
Brad Fitzpatrick
1afa2a1b2d os: add Chtimes function
R=rsc, r
CC=golang-dev
https://golang.org/cl/1103041
2010-05-19 17:48:53 -07:00
Russ Cox
cbc01a3e76 syscall: add Utimes on Darwin/FreeBSD, add Futimes everywhere
Needed for CL 1103041 and beyond.

R=adg, bradfitzpatrick
CC=bradfitz, golang-dev
https://golang.org/cl/1172042
2010-05-19 17:47:57 -07:00
Russ Cox
b198c8612e runtime: allow large map values
Fixes #772.

R=ken2
CC=golang-dev
https://golang.org/cl/1206043
2010-05-19 12:57:47 -07:00
Robert Griesemer
a688eb6ee4 big: potential bug fix, cleanups
- implemented setWord, use it where setUint64 is wrong
- divLarge: use fast mulWW, divWW; implemented mulWW, divWW
- better assembly code for addMulVVW

R=rsc
CC=golang-dev
https://golang.org/cl/1258042
2010-05-19 09:36:50 -07:00
Russ Cox
b629687f79 fix build - no netchan tests under NaCl
TBR=r
CC=golang-dev
https://golang.org/cl/1230042
2010-05-18 23:25:07 -07:00
Michael Hoisie
4a3cb1ad2f bytes: add Trim, TrimLeft, TrimRight, and generic functions
R=rsc, r
CC=golang-dev
https://golang.org/cl/946045
2010-05-18 23:01:05 -07:00
Charles L. Dorian
809479740f math: amd64 versions of fdim, fmax, fmin
Uses the SSE2 max, min instructions. Also shorter sqrt_amd64.s

R=rsc
CC=golang-dev
https://golang.org/cl/1216042
2010-05-18 22:33:50 -07:00
Charles L. Dorian
879241d819 math: signed zero Sqrt special case
IEEE 754 says: sqrt(-0) = -0

R=rsc
CC=golang-dev
https://golang.org/cl/1098041
2010-05-18 22:16:01 -07:00
Robert Griesemer
90d0c3316c big: bug fix for division
Fixes #784.

R=rsc
CC=golang-dev
https://golang.org/cl/1196043
2010-05-18 16:31:49 -07:00
Kyle Consalus
2db47c9083 Trivial optimization.
Cached string indexing in inner loop of Btoui64.

    Before:
    strconv_test.BenchmarkAtoi   5000000           309 ns/op
    strconv_test.BenchmarkAtoiNeg    5000000           325 ns/op
    strconv_test.BenchmarkAtoi64     5000000           465 ns/op
    strconv_test.BenchmarkAtoi64Neg  5000000           469 ns/op

    After:
    strconv_test.BenchmarkAtoi  10000000           182 ns/op
    strconv_test.BenchmarkAtoiNeg   10000000           193 ns/op
    strconv_test.BenchmarkAtoi64    10000000           251 ns/op
    strconv_test.BenchmarkAtoi64Neg 10000000           258 ns/op

R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/1227042
2010-05-18 16:29:24 -07:00
Robert Griesemer
dbb6232724 big: implemented format support for fmt library, MulRange
- support for binary prefix 0b (to match fmt.Format)
- renamed nat.new -> nat.setUint64 for consistency
- more tests

R=r
CC=golang-dev
https://golang.org/cl/1233041
2010-05-15 10:23:41 -07:00
Charles L. Dorian
1d4e2d1adc cmath: add package description
Also update range of Phase and Polar due to signed zero.
[Phase(cmplx(-1, +0)) = pi and Phase(cmplx(-1, -0)) = -pi]

R=rsc, r
CC=golang-dev
https://golang.org/cl/1235041
2010-05-15 10:06:54 -07:00
Robert Griesemer
650cc32739 go/printer (gofmt): don't lose mandatory semicolons
Fixes #779.

R=r
CC=golang-dev
https://golang.org/cl/1218042
2010-05-14 15:38:25 -07:00
Roger Peppe
14e04f4d40 Prevent Printf crashing when giving an extra nil argument.
R=rsc, r
CC=golang-dev
https://golang.org/cl/1195041
2010-05-13 12:49:48 -07:00
Robert Griesemer
d6acc0646b http: prevent crash if remote server is not responding with "HTTP/"
Fixes #775.

R=rsc
CC=golang-dev
https://golang.org/cl/1180042
2010-05-11 16:50:20 -07:00
Russ Cox
75dbbd2137 netchan: be less chatty during gotest
R=r
CC=golang-dev
https://golang.org/cl/1186041
2010-05-11 14:57:08 -07:00
Russ Cox
4e5bc6a8fe json: fix array -> non-array decoding
Fixes #773.

R=adg
CC=golang-dev
https://golang.org/cl/1120042
2010-05-11 14:38:55 -07:00
Nigel Tao
916426ea76 drawGlyphOver optimization.
Timings (as for change 1122043) go from 49ms to 48ms ish. It's
mostly lost in the noise, but it probably doesn't hurt.

R=r
CC=golang-dev
https://golang.org/cl/1179041
2010-05-11 13:35:16 +10:00
Nigel Tao
d7a6d22852 exp/draw fast path for glyph images.
To draw.Draw a 32x32 image.Alpha 10000 times,
Before: 633ms with 10000 mallocs
After: 49ms with 0 mallocs

These times are just blitting an image.Alpha, and do not include
rasterizing a glyph's vector contours to an image.Alpha.

The "generic" test case in draw_test.go tests this fast path.

R=rsc
CC=golang-dev
https://golang.org/cl/1122043
2010-05-10 10:32:08 +10:00
Rob Pike
b717768b94 template: regularize the handling of interfaces, pointers, and
methods when looking up names.
Fixes #764.

R=rsc
CC=golang-dev
https://golang.org/cl/1170041
2010-05-09 16:40:38 -07:00
Michael Hoisie
834abb8068 json: accept escaped slash in string scanner
R=rsc
CC=golang-dev
https://golang.org/cl/1173041
2010-05-08 17:34:05 -07:00
Robert Griesemer
52cc058172 big: cleanups and performance tuning
- removed last argument (n) from all core arithmetic routines;
  instead, use the length of the result

- simplified nat.make implementation and chose a better capacity
  for new values, removed a TODO in the process

Changing the constant e from 1 (old) to 4 (new) improved
pidigits -s -n 10000 by ~9% (on a 3.06GHz Intel Core 2 Duo):

user	0m3.882s (old)
user	0m3.549s (new)

R=rsc
CC=golang-dev
https://golang.org/cl/1133043
2010-05-08 13:52:36 -07:00
Robert Griesemer
61eb0e71f2 big: more cleanup
- pass []Word instead of *Word to core arithmetic functions
- remove dead code

R=rsc
CC=golang-dev
https://golang.org/cl/1154042
2010-05-07 18:26:31 -07:00
Rob Pike
f023e859cf compress: renamings.
NewDeflater -> NewWriter
NewInflater -> NewReader
Deflater -> Compressor
Inflater -> Decompressor

R=rsc
CC=golang-dev
https://golang.org/cl/1166041
2010-05-07 14:32:34 -07:00
Rob Pike
b541921b66 gob: bug fix: errors encoding the payload were not
returned to caller.

R=rsc
CC=golang-dev
https://golang.org/cl/1164041
2010-05-07 13:30:13 -07:00
Rob Pike
56c5710b38 gob: add an internal commentary example showing how the
values are encoded for transmission.

R=rsc
CC=golang-dev
https://golang.org/cl/1146041
2010-05-07 11:44:41 -07:00
Ian Lance Taylor
e1b47159ab Save the scheduling state even predawn.
This permits cgo callbacks to work when run in init code.
Otherwise cgocallback switches to the wrong stack address.

R=rsc
CC=golang-dev
https://golang.org/cl/1123043
2010-05-06 22:07:03 -07:00
Robert Griesemer
6d7583d5fd fix build (typo in arith_386.s)
R=rsc
CC=golang-dev
https://golang.org/cl/1139042
2010-05-06 19:16:26 -07:00
Robert Griesemer
3f287b5002 big: implemented overlap-tolerant shifts in assembly
- no need to make copies in cases of aliases
- removed deprecated internal shift functions
- minor unrelated simplifications

This change improves pidigits -s -n10000 by almost 20%:

user 0m6.156s (old)
user 0m4.999s (new)

(pidigits -s -n20000 goes from ~25s to ~19s)

R=rsc
CC=golang-dev
https://golang.org/cl/1149041
2010-05-06 18:20:01 -07:00
Rob Pike
eb48bfbbda runtime.GOMAXPROCS: hack it to have it return the old value.
R=rsc
CC=golang-dev
https://golang.org/cl/1140041
2010-05-06 11:50:47 -07:00
Rob Pike
9088f9f245 gob: add test for indirect maps, slices, arrays.
fix a bug in the handling of indirect maps.

R=rsc
CC=golang-dev
https://golang.org/cl/1132042
2010-05-06 10:45:18 -07:00
Nigel Tao
20ba090978 Make exp/draw/x11 respect $XAUTHORITY.
R=rsc, cw, nigeltao_golang
CC=golang-dev
https://golang.org/cl/1134041
2010-05-06 18:41:42 +10:00
Rob Pike
7861da737e gob: add support for maps.
Because maps are mostly a hidden type, they must be
implemented using reflection values and will not be as
efficient as arrays and slices.

R=rsc
CC=golang-dev
https://golang.org/cl/1127041
2010-05-05 16:46:39 -07:00
Rob Pike
46152bb9fe pkg/Makefile: add netchan to standard package list
R=golang-dev
CC=golang-dev
https://golang.org/cl/1121041
2010-05-05 15:17:26 -07:00
Kyle Consalus
24bfd652ee Conversion from loop to copy().
R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/1072041
2010-05-05 09:57:53 -07:00
Conrad Meyer
5789c86fc0 Fix a typo in net/unixsock
R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/1113041
2010-05-05 09:55:11 -07:00
Robert Griesemer
b9caa4ac56 big: completed set of Int division routines & cleanups
- renamed Len -> BitLen, simplified implementation
- renamed old Div, Mod, DivMod -> Que, Rem, QuoRem
- implemented Div, Mod, DivMod (Euclidian definition, more
  useful in a mathematical context)
- fixed a bug in Exp (-0 was possible)
- added extra tests to check normalized results everywhere
- uniformly set Int.neg flag at the end of computations
- minor cosmetic cleanups
- ran all tests

R=rsc
CC=golang-dev
https://golang.org/cl/1091041
2010-05-03 18:48:05 -07:00
Russ Cox
7d7ebd2fe1 runtime, strconv: tiny cleanups
R=r
CC=golang-dev
https://golang.org/cl/1081042
2010-05-03 17:47:40 -07:00
Russ Cox
9995dec9da big: fix memory corruption in nat.shr
R=gri
CC=golang-dev
https://golang.org/cl/1084041
2010-05-03 14:28:45 -07:00
Russ Cox
23c0aa3916 runtime/arm: fix build
Import _mulv from Inferno again, change R9 to R2.
Not sure what the other differences were for, but
they weren't working.

TBR=kaib
CC=golang-dev
https://golang.org/cl/1079041
2010-05-03 13:24:39 -07:00
Evan Shaw
4d1b1574af big: Add bitwise methods for Int
R=gri
CC=golang-dev
https://golang.org/cl/987041
2010-05-03 11:20:52 -07:00
Russ Cox
23bf408d41 syscall: fix arm build (fix bugs in generator, to add O_LARGEFILE)
R=r
CC=golang-dev
https://golang.org/cl/1021043
2010-05-03 11:11:01 -07:00
Rob Pike
e1d20d0a51 bytes: Change IndexAny to look for UTF-8 encoded characters.
Also improve the implementations of Equals and Compare.

R=rsc
CC=golang-dev
https://golang.org/cl/969047
2010-05-03 10:59:00 -07:00
Giles Lean
3c32300c4d runtime: update godefs usage comment for GOARCH=386 GOOS={darwin,freebsd}
When trying to regenerate src/pkg/runtime/darwin/386/defs.h
on a 64 bit capable Snow Leopard (OS X 10.6.3) system I
needed to add -f -m32 to godefs, as this OS and hardware
combination defaults to 64 bit compilation.

For safety, make the same change to the 32 bit FreeBSD
instructions in .../freebsd/defs.c.  (Tested OK and no
problems introduced.)

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/1052042
2010-05-03 01:26:39 -07:00
Charles L. Dorian
37089cce67 math: fix typo in Cbrt description
R=rsc
CC=golang-dev
https://golang.org/cl/979043
2010-05-02 23:33:08 -07:00
Robert Griesemer
26078c395a big: cleanup and removal of redundant functionality
R=rsc
CC=golang-dev
https://golang.org/cl/1048041
2010-05-01 15:11:27 -07:00
Russ Cox
6361f52fc4 gc: be pickier about slice, chan, array, and map sizes
Fixes #589.

R=ken2
CC=golang-dev
https://golang.org/cl/1032044
2010-05-01 13:15:42 -07:00
Russ Cox
cf0e224380 vector: use correct capacity in call to make
R=gri, r, bflm
CC=golang-dev
https://golang.org/cl/1032043
2010-05-01 13:00:01 -07:00
Robert Griesemer
58e77990ba big: use fast shift routines
- fixed a couple of bugs in the process
  (shift right was incorrect for negative numbers)
- added more tests and made some tests more robust
- changed pidigits back to using shifts to multiply
  by 2 instead of add

  This improves pidigit -s -n 10000 by approx. 5%:

  user 0m6.496s (old)
  user 0m6.156s (new)

R=rsc
CC=golang-dev
https://golang.org/cl/963044
2010-04-30 21:25:48 -07:00
Robert Griesemer
161b44c76a big/arith: assembly routines for 386 long shifts (2nd round)
R=rsc
CC=golang-dev
https://golang.org/cl/986044
2010-04-30 14:41:04 -07:00
Alex Brainman
b94ae26073 syscall: handle EOF on pipe - special case on Windows
R=rsc
CC=golang-dev
https://golang.org/cl/962046
2010-04-30 12:46:46 -07:00
Robert Griesemer
ac1d46a22a fix build
R=rsc
CC=golang-dev
https://golang.org/cl/1044041
2010-04-30 12:01:15 -07:00
Robert Griesemer
407dbb42d4 big: improved computation of "karatsuba length" for faster multiplies
This results in an improvement of > 35% for the existing Mul benchmark
using the same karatsuba threshold, and an improvement of > 50% with
a slightly higher threshold (32 instead of 30):

big.BenchmarkMul           500	   6731846 ns/op (old alg.)
big.BenchmarkMul	   500	   4351122 ns/op (new alg.)
big.BenchmarkMul           500	   3133782 ns/op (new alg., new theshold)

Also:
- tweaked calibrate.go, use same benchmark as for Mul benchmark

R=rsc
CC=golang-dev
https://golang.org/cl/1037041
2010-04-30 11:54:27 -07:00
Robert Griesemer
f78b09e673 big: assembly routines for 386 long shifts
R=rsc
CC=golang-dev
https://golang.org/cl/974043
2010-04-30 11:53:37 -07:00
Robert Griesemer
2b0a30c4b5 big: implemented core shift routines in arith.go and
provide assembly versions (for x86-64 for now)

(Not yet used - waiting for previous CL to clear)

R=rsc
CC=golang-dev
https://golang.org/cl/1040041
2010-04-30 09:29:11 -07:00
Nigel Tao
05cf357dd9 Add EWOULDBLOCK to sycall_nacl.go.
R=rsc
CC=go-dev, golang-dev
https://golang.org/cl/1006045
2010-04-30 18:45:04 +10:00
Alex Brainman
f81d471940 rename GOOS=mingw to GOOS=windows
R=rsc, Joe Poirier
CC=golang-dev
https://golang.org/cl/1015043
2010-04-29 23:45:14 -07:00
Russ Cox
7906e31167 syscall: force O_LARGEFILE in Linux open system call
Fixes #717.

R=adg, PeterGo
CC=golang-dev
https://golang.org/cl/1032041
2010-04-29 23:34:06 -07:00
Joe Poirier
4aaddf8a35 syscall: mingw Sleep
R=rsc, brainman
CC=golang-dev
https://golang.org/cl/961047
2010-04-29 23:08:22 -07:00
Christopher Wedgwood
b5da6ea4dd net: use short variable declaration
R=rsc
CC=golang-dev
https://golang.org/cl/1019043
2010-04-29 11:02:10 -07:00
Christopher Wedgwood
be9f6344a7 net: parser should handle EOF without newline properly.
Fixes #686.

R=rsc
CC=adg, golang-dev
https://golang.org/cl/979044
2010-04-29 11:01:21 -07:00
Russ Cox
718da3339a darwin: bsdthread_create can fail; print good error
Fixes #549.

R=adg
CC=golang-dev
https://golang.org/cl/1019042
2010-04-28 19:36:42 -07:00
Russ Cox
7c77e450cc net: do not require newline at end of resolv.conf
Fixes #686.

R=adg
CC=golang-dev
https://golang.org/cl/961046
2010-04-28 19:36:04 -07:00
Russ Cox
0485ba72c3 xml: allow text segments to end at EOF
Fixes #674.

R=adg
CC=golang-dev
https://golang.org/cl/1018042
2010-04-28 19:29:20 -07:00
Christopher Wedgwood
1331f8b3cb fmt: %T print <nil> for nil
R=r
CC=golang-dev, rsc
https://golang.org/cl/1014043
2010-04-28 13:07:19 -07:00
Ian Lance Taylor
96179629ef Remove destination of symlink test in case it got left behind
earlier.

R=rsc
CC=golang-dev
https://golang.org/cl/972045
2010-04-28 11:08:07 -07:00
Russ Cox
000ab98df6 5l, 6l, 8l, runtime: make -s binaries work
5l, 6l, 8l: change ELF header so that strip doesn't destroy binary

Fixes #261.

R=iant, r
CC=golang-dev
https://golang.org/cl/994044
2010-04-27 22:40:26 -07:00
Robert Griesemer
b2183701c0 big: implemented Karatsuba multiplication
Plus:
- calibration "test" - include in tests with gotest -calibrate
- basic Mul benchmark
- extra multiplication tests
- various cleanups

This change improves multiplication speed of numbers >= 30 words
in length (current threshold; found empirically with calibrate):

The multiplication benchmark (multiplication of a variety of long numbers)
improves by ~35%, individual multiplies can be significantly faster.

gotest -benchmarks=Mul
big.BenchmarkMul	     500	   6829290 ns/op (w/ Karatsuba)
big.BenchmarkMul	     100	  10600760 ns/op

There's no impact on pidigits for -n=10000 or -n=20000
because the operands are are too small.

R=rsc
CC=golang-dev
https://golang.org/cl/1004042
2010-04-27 19:16:08 -07:00
Russ Cox
dc606a20ce net: drop non-RHEL-4.6 ports from test
Fixes #610.

R=adg
CC=golang-dev
https://golang.org/cl/1006044
2010-04-27 19:04:22 -07:00
Russ Cox
01fc062496 iterable: expose iterFunc as iterable.Func
Fixes #483.

R=dsymonds, dsymonds1
CC=golang-dev
https://golang.org/cl/965044
2010-04-27 18:48:29 -07:00
Russ Cox
9c8cee712d net: fix bug in internetSocket introduced by error cleanup.
Fixes #750.

R=adg
CC=golang-dev
https://golang.org/cl/988043
2010-04-27 18:48:11 -07:00
Andrew Gerrand
8553b9c68f template: remove reference to json-template
Rather than confuse people by linking to a spec we
don't fully support, let them just use the package docs.

R=r, rsc
CC=golang-dev
https://golang.org/cl/1016041
2010-04-28 10:14:58 +10:00
Robert Griesemer
e42ebea96c fix build
R=r
CC=golang-dev
https://golang.org/cl/989044
2010-04-27 14:05:53 -07:00
Russ Cox
646301a766 rpc/jsonrpc: support for jsonrpc wire encoding
R=r
CC=golang-dev
https://golang.org/cl/989042
2010-04-27 13:51:58 -07:00
Russ Cox
dc644b8f43 json: delete obsolete code
R=r
CC=golang-dev
https://golang.org/cl/943047
2010-04-27 13:51:38 -07:00
Russ Cox
dcff89057b rpc: abstract client and server encodings
R=r
CC=golang-dev, rog
https://golang.org/cl/811046
2010-04-27 13:51:25 -07:00
Robert Griesemer
72f9b2ebee gofmt: fine-tune stripping of parentheses
(composite literals in control clauses only need
       parentheses if the literals start with a type name)

R=rsc
CC=golang-dev
https://golang.org/cl/962045
2010-04-27 13:27:48 -07:00
Robert Griesemer
48ccf8247e go/parser: don't require parens around composite literals inside a composite literal
within an if, for, or switch control clause

R=rsc
CC=golang-dev
https://golang.org/cl/943046
2010-04-27 11:57:17 -07:00
Robert Griesemer
2bfc2d7772 gofmt: don't strip mandatory ()'s around composite literals in control clauses
Fixes #748.

R=rsc
CC=golang-dev
https://golang.org/cl/946043
2010-04-27 10:59:33 -07:00
Russ Cox
0e8384af65 json: streaming
R=r, cw
CC=golang-dev
https://golang.org/cl/952041
2010-04-27 10:46:37 -07:00
Russ Cox
bec40ba516 json: preserve field name case by default
This matches the old JSON package behavior.
All lowercase names are not as standard as I believed,
and it seems less surprising to need to write

	type T struct { Field string "field" }

to get lower case (behavior after this CL) than it does to need
to write

	type T struct { Field string "Field" }

to preserve the case (behavior before this CL).

Also test and  fix unmarshal into non-nil interface
value or pointer.

Fixes #744.

R=r
CC=golang-dev
https://golang.org/cl/1013041
2010-04-27 10:24:00 -07:00
Russ Cox
cc62bed075 pipe: implementation #3; this time for sure!
Added goroutine; got simpler.

Fixes deadlock when doing Read+Close
or Write+Close on same end.

R=r, cw
CC=golang-dev
https://golang.org/cl/994043
2010-04-27 10:17:17 -07:00
Micah Stetson
6c124cb879 time: remove incorrect time.ISO8601 and add time.RFC3339
Fixes #734.

R=rsc, r
CC=golang-dev
https://golang.org/cl/975042
2010-04-27 00:05:24 -07:00
Alex Brainman
a83c5f5cad syscall: fix mingw build
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/988042
2010-04-26 23:47:53 -07:00
Alex Brainman
fb6b39186b os, syscall: more mingw
R=rsc, rsc1
CC=golang-dev
https://golang.org/cl/878046
2010-04-26 23:17:14 -07:00
Giles Lean
461314b6e7 os: create sys_bsd.go
R=rsc
CC=golang-dev
https://golang.org/cl/897042
2010-04-26 23:01:31 -07:00
Evan Shaw
bf1c881afe os: Fix build for MinGW
R=rsc
CC=golang-dev
https://golang.org/cl/1014041
2010-04-26 22:50:47 -07:00
Charles L. Dorian
22f84c5b2a math: more special cases for signed zero
R=rsc
CC=golang-dev
https://golang.org/cl/937042
2010-04-26 22:44:39 -07:00
Russ Cox
72d9322032 crypto/tls: simpler implementation of record layer
Depends on CL 957045, 980043, 1004043.
Fixes #715.

R=agl1, agl
CC=golang-dev
https://golang.org/cl/943043
2010-04-26 22:19:04 -07:00
Russ Cox
47a0533411 net: introduce net.Error interface
Adds two more methods, Timeout and Temporary.
Implemented by os.Errno too.  The intent is to make
the checks for os.EAGAIN a little less clunky.
It should also let us clean up a bug that Mike Solomon
pointed out: if a network server gets an "out of file descriptors"
error from Accept, the listener should not stop.
It will be able to check this because that error would
have Temporary() == true.

Also clean up some underscore names.

Fixes #442.

R=r
CC=golang-dev, msolo
https://golang.org/cl/957045
2010-04-26 22:15:25 -07:00
Russ Cox
1d18e89125 net: add Pipe
R=r
CC=golang-dev
https://golang.org/cl/1004043
2010-04-26 10:36:05 -07:00
Russ Cox
78551a9b43 bytes: add Next method to Buffer, simplify Read.
R=r
CC=golang-dev
https://golang.org/cl/980043
2010-04-26 10:02:01 -07:00
Russ Cox
9f69ab39f0 xml: fix innerxml handling of & escapes
R=r
CC=golang-dev
https://golang.org/cl/1009041
2010-04-26 10:01:33 -07:00
Russ Cox
13bb28a40a template: fix handling of pointer inside interface
R=r
CC=golang-dev
https://golang.org/cl/982043
2010-04-26 10:01:13 -07:00
Russ Cox
6f33f34bbc regexp: allow escaping of any punctuation
More in line with other regexp packages
and egrep; accommodates overzealous escapers.

R=r
CC=golang-dev
https://golang.org/cl/1008041
2010-04-26 10:00:18 -07:00
Russ Cox
c6138efbcb runtime: closures, defer bug fix for Native Client
Enable package tests for Native Client build.

R=r
CC=golang-dev
https://golang.org/cl/957042
2010-04-22 17:52:22 -07:00
Rob Pike
6e80a01ab7 os/stat_freebsd.go: maybe fix build for freebsd
R=rsc
CC=golang-dev
https://golang.org/cl/970042
2010-04-22 17:04:28 -07:00
Evan Shaw
841a32dd5e big: Create type nat
Changed most of the functions in nat.go to methods on nat.

R=gri
CC=golang-dev
https://golang.org/cl/976041
2010-04-22 16:57:29 -07:00
Rob Pike
5cd8c83037 FileInfo: regularize the types of some fields.
Uid, Gid become int.
File size info becomes int64.
Times become int64.

R=rsc, cw
CC=golang-dev
https://golang.org/cl/968042
2010-04-22 14:01:33 -07:00
Evan Shaw
f0ecf34f29 vector: Don't always regenerate {int,string}vector.go
R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/917042
2010-04-23 00:43:59 +10:00
Evan Shaw
455e799f6d big: Add some tests
R=rsc, gri
CC=golang-dev
https://golang.org/cl/967041
2010-04-21 17:12:36 -07:00
Russ Cox
dba9d62bc2 json: Marshal, Unmarshal using new scanner
R=r
CC=golang-dev
https://golang.org/cl/953041
2010-04-21 16:40:53 -07:00
Russ Cox
214a55b06a runtime: switch state back to Grunning after recovery
Fixes #733.

R=r
CC=golang-dev
https://golang.org/cl/958041
2010-04-21 16:27:41 -07:00
Russ Cox
e7b6fe3989 xml: new "innerxml" tag to collect inner XML
R=r
CC=golang-dev
https://golang.org/cl/971041
2010-04-21 16:27:31 -07:00
Russ Cox
57d9de3ac8 utf16: add DecodeRune, EncodeRune
R=r
CC=golang-dev
https://golang.org/cl/970041
2010-04-21 16:27:18 -07:00
Russ Cox
1b70b61411 big: fix build - start with zero in scanN
R=gri, eds
CC=golang-dev
https://golang.org/cl/947042
2010-04-20 22:51:48 -07:00
Kyle Consalus
d7b4851586 strings: add ReadRune to Reader
R=rsc
CC=golang-dev
https://golang.org/cl/940041
2010-04-20 22:18:26 -07:00
Evan Shaw
e4136fe91c big: eliminate redundant array lookups
This gives about a 6% performance improvement to pidigits.
Thanks to Russ for the suggestion.

R=rsc, gri
CC=golang-dev
https://golang.org/cl/957041
2010-04-20 21:41:58 -07:00
Evan Shaw
4f445d2744 big: reduce the number of allocations
There was a bug in makeN that caused lots of unnecessary
allocations.  Fixing this exposed a few bugs in other
functions which worked when makeN allocated a new slice, but
failed when it simply resized an existing slice.  The result
is a pretty big performance improvement.  When running
pidigits, here were the numbers I got on amd64:

Before this change:
pidigits 10000
        gcc -O2 pidigits.c -lgmp        2.09u 0.02s 2.11r
        gc pidigits     12.68u 0.04s 12.72r
        gc_B pidigits   12.71u 0.03s 12.75r

After:
pidigits 10000
        gcc -O2 pidigits.c -lgmp        2.09u 0.00s 2.10r
        gc pidigits     6.82u 0.00s 6.85r
        gc_B pidigits   6.55u 0.01s 6.59r

R=rsc, gri
CC=golang-dev
https://golang.org/cl/953042
2010-04-20 21:24:07 -07:00
Evan Shaw
76cbbc8a95 big: Add Lsh and Value; convert pidigits to use big
This yields a pretty significant performance boost to pidigits and there are still some improvements to be made. Here are my numbers:

amd64 w/ bignum:
pidigits 10000
        gcc -O2 pidigits.c -lgmp        2.10u 0.00s 2.10r
        gc pidigits     22.92u 0.02s 22.97r
        gc_B pidigits   22.62u 0.00s 22.65r

amd64 w/ big:
pidigits 10000
        gcc -O2 pidigits.c -lgmp        2.09u 0.02s 2.11r
        gc pidigits     12.68u 0.04s 12.72r
        gc_B pidigits   12.71u 0.03s 12.75r

386 w/ bignum:
pidigits 10000
        gcc -O2 pidigits.c -lgmp        2.09u 0.00s 2.09r
        gc pidigits     44.30u 0.01s 44.35r
        gc_B pidigits   44.29u 0.03s 44.35r

386 w/ big:
pidigits 10000
        gcc -O2 pidigits.c -lgmp        2.10u 0.00s 2.10r
        gc pidigits     22.70u 0.06s 22.79r
        gc_B pidigits   22.80u 0.09s 22.91r

R=rsc, gri
CC=golang-dev
https://golang.org/cl/881050
2010-04-20 20:39:36 -07:00
Russ Cox
20c50cf0f8 runtime: rename cgo2c, *.cgo to goc2c, *.goc
to avoid confusion with real cgo

R=r
CC=golang-dev
https://golang.org/cl/904046
2010-04-20 17:03:25 -07:00
Russ Cox
7295b61cdb reflect: implement Set(nil), SetValue(nil) for PtrValue and MapValue
R=r
CC=golang-dev
https://golang.org/cl/823048
2010-04-20 17:02:08 -07:00
Evan Shaw
73374c93a6 big: Get rid of function pointers and init function
R=rsc, gri
CC=golang-dev
https://golang.org/cl/929041
2010-04-19 19:07:22 -07:00
Kyle Consalus
ad2c5a4984 Added strings.FieldsFunc, a generalization of strings.Fields in style of the strings.Trim*Func functions.
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/824051
2010-04-19 16:36:50 -07:00
Andrew Gerrand
3ffbd57b94 syscall: match linux Setsid function signature to darwin
SETSID does return an errno - any reason why it has been done this
way in zsyscall_linux_* ? Otherwise it should be the same as darwin.

From SETSID(2) on my Linux box:

ERRORS
       On error, -1 is returned, and errno is set.

Fixes #730

R=rsc
CC=golang-dev
https://golang.org/cl/878047
2010-04-19 13:12:11 +10:00
Raif S. Naffah
57e764171c reflect: add FieldByNameFunc
xml: add support for XML marshalling embedded structs.

R=rsc
CC=golang-dev
https://golang.org/cl/837042
2010-04-18 15:22:36 -07:00
Michael Hoisie
13f81feb31 net: fix bugs in packStructValue
packStructValue was cutting off last byte of uint32
in _Dns_msg.Unpack, use packRR for rr types

R=rsc
CC=golang-dev
https://golang.org/cl/844048
2010-04-18 14:46:24 -07:00
Russ Cox
3cfa2c3ddf json: scanner, Compact, Indent, and tests
This is the first of probably four separate CLs
for the new implementation of the json package.

The scanner is the core of the new implementation.
The other CLs would be the new decoder,
the new encoder, and support for JSON streams.

R=r
CC=golang-dev
https://golang.org/cl/802051
2010-04-18 14:45:08 -07:00
Rob Pike
3f7da4f861 rpc: Add Close() method to rpc.Client to allow graceful connection teardown.
Fixes #675.

R=rsc, msolo
CC=golang-dev
https://golang.org/cl/882049
2010-04-16 16:17:47 -07:00
Evan Shaw
9ca10b0a5c exp/eval: Always read float literals as base 10
We were letting bignum decide, which caused problems with float literals with a leading 0.

R=gri
CC=golang-dev
https://golang.org/cl/816047
2010-04-15 19:53:35 -07:00
Evan Shaw
ff922fe15a go/ast: Update comment to mention imaginary literals
R=gri
CC=golang-dev
https://golang.org/cl/846050
2010-04-15 18:06:22 -07:00
Evan Shaw
39a2e82ee6 exp/eval: Implement x[lo:]
R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/908044
2010-04-15 18:04:24 -07:00
Russ Cox
a318f9d3a4 flag: eliminate unnecessary structs
R=r
CC=golang-dev
https://golang.org/cl/872045
2010-04-15 15:25:46 -07:00
Andrei Vieru
fffac8072e "godoc -src pkg_name" excludes duplicates entries
$ godoc xml | grep Copy\(\)
func (c CharData) Copy() CharData
func (c Comment) Copy() Comment
func (d Directive) Copy() Directive
func (p ProcInst) Copy() ProcInst
func (e StartElement) Copy() StartElement
--------------------------------------------
$ godoc -src xml | grep Copy\(\)
func (c CharData) Copy() CharData
--------------------------------------------
$ godoc -src xml Copy
func (c CharData) Copy() CharData { return CharData(makeCopy(c)) }
--------------------------------------------
The command "godoc -src pkg_name" should output the interface of the named package, but it excludes all duplicate entries. Also the command "godoc -src pkg_name method_name" will output the source code only for one method even if there are more of them with the same name in the same package. This patch set fixes this issue.

R=gri
CC=golang-dev
https://golang.org/cl/883051
2010-04-15 09:50:37 -07:00
Kai Backman
26e846429d support for printing floats:
fmt.Printf("float32 %f\n", float32(1234.56789))
fmt.Printf("float64 %f\n", float64(1234.56789))
->
float32 1234.567871
float64 1234.567890

this is a snapshot. extended instruction support, corner cases
and fixes coming in subseuent cls.

R=rsc
CC=dpx, golang-dev
https://golang.org/cl/876045
2010-04-15 12:43:49 +03:00
Robert Griesemer
0fd00c8bb7 scanner: implement Peek() to look at the next char w/o advancing
R=rsc
CC=golang-dev
https://golang.org/cl/840045
2010-04-14 21:33:34 -07:00
Russ Cox
1baf35e41f bytes: shuffle implementation, making WriteByte 50% faster
R=r
CC=golang-dev
https://golang.org/cl/920041
2010-04-14 01:52:56 -07:00
Russ Cox
c3e54f0988 runtime: better trace for fault due to nil pointer call
R=r
CC=golang-dev
https://golang.org/cl/854048
2010-04-13 22:31:47 -07:00
Alex Brainman
035265975f os, syscall: mingw bug fixes
R=rsc
CC=golang-dev
https://golang.org/cl/815044
2010-04-13 22:30:41 -07:00
Alex Brainman
b07e4d9511 os: mingw version of Readdir() and Stat() implemented
R=rsc
CC=golang-dev
https://golang.org/cl/851045
2010-04-13 16:30:11 -07:00
Rob Pike
1b56947f84 netchan: allow client to send as well as receive.
much rewriting and improving, but it's still experimental.

R=rsc
CC=golang-dev
https://golang.org/cl/875045
2010-04-13 13:49:42 -07:00
Rob Pike
effddcadc4 template: use panic/recover to simplify internal error handling.
R=rsc
CC=golang-dev
https://golang.org/cl/824049
2010-04-13 13:28:08 -07:00
Christopher Wedgwood
74d0302eb9 Remove exp/exception as it's no longer relevant
R=gri, adg
CC=golang-dev, r, rsc
https://golang.org/cl/857048
2010-04-13 10:51:35 +10:00
Rob Pike
c701c38e13 fixes for rpc:
- don't log normal EOF
- fix ServeConn to block as documented

R=rsc, msolo
CC=golang-dev
https://golang.org/cl/886043
2010-04-12 17:14:28 -07:00
Christopher Wedgwood
9149d91888 xml: update documentation to match current coding style
R=rsc, r
CC=golang-dev
https://golang.org/cl/891048
2010-04-12 10:28:50 -07:00
Andrei Vieru
1ab15fac22 fmt format verb %b bug
fmt.Printf("%b", int8(-1)) prints 64 ones instead of 8.
This happens only for signed integers (int8, in16 and int32). I guess it's because of the way the conversion between integer types works. From go spec: "Conversions between integer types. If the value is a signed quantity, it is sign extended to implicit infinite precision ....". And there are several conversions to int64 and uint64 in the fmt package. This pathch solves only half of the problem. On a 32 bit system, an fmt.Printf("%b", int(-1)) should still print 64 ones.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/891049
2010-04-12 10:20:06 -07:00
Christopher Wedgwood
10f7f80fae json: update documentation to match current coding style
R=rsc
CC=golang-dev
https://golang.org/cl/888045
2010-04-11 22:09:34 -07:00
Evan Shaw
d77010547d debug/elf: Fix doc comments
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/849049
2010-04-11 14:49:44 -07:00
Evan Shaw
fa860653ae exp/eval: Fix example and add target to Makefile
R=rsc
CC=golang-dev
https://golang.org/cl/901042
2010-04-11 12:42:19 -07:00
Christopher Wedgwood
ae729a433f archive/tar: update documentation to match current coding style
R=rsc, r
CC=golang-dev
https://golang.org/cl/903044
2010-04-11 10:29:07 -07:00
Christopher Wedgwood
98a5a20c5e nacl: update documentation to match current coding style
R=rsc, r
CC=golang-dev
https://golang.org/cl/822047
2010-04-11 10:19:32 -07:00
Christopher Wedgwood
3fbe7f4f41 testing: update documentation to match current coding style
R=rsc, r
CC=golang-dev
https://golang.org/cl/823045
2010-04-11 10:18:49 -07:00
Andrew Gerrand
adb3b863c9 time: fix comment typo
R=r
CC=golang-dev
https://golang.org/cl/811044
2010-04-11 23:33:25 +10:00
Michael Hoisie
92ac0cfbb2 strings: add IndexRune, Trim, TrimLeft, TrimRight, and the generic equivalents TrimFunc, TrimLeftFunc, TrimRightFunc
R=rsc, r
CC=golang-dev
https://golang.org/cl/799048
2010-04-09 18:57:03 -07:00
Russ Cox
6363542695 runtime: delete malx, skip_depth argument to malloc
remove internal functions from traces in gopprof instead.

R=r
CC=golang-dev
https://golang.org/cl/855046
2010-04-09 15:30:40 -07:00
Russ Cox
08852ffe80 freebsd: fix build, maybe
R=r
CC=golang-dev
https://golang.org/cl/909041
2010-04-09 14:37:53 -07:00
Charles L. Dorian
3c3e68ba32 math: use ** for exponentiation in comments
R=rsc
CC=golang-dev
https://golang.org/cl/908041
2010-04-09 14:37:33 -07:00
Charles L. Dorian
9b1d6332e8 cmath: use ** for exponentiation in comments
R=rsc
CC=golang-dev
https://golang.org/cl/831045
2010-04-09 14:37:26 -07:00
Ian Lance Taylor
a4f8d36ba5 Run initcgo for all amd64 targets, not just GNU/Linux.
This is required to make cgo export work on Darwin.  Note that
this corrects the stack alignment when calling initcgo to that
required by gcc on amd64.

R=rsc
CC=golang-dev
https://golang.org/cl/907041
2010-04-09 14:15:15 -07:00
Ian Lance Taylor
2e20386fc7 Library support for cgo export.
These functions are used to call from a C function back to a
Go function.  This only includes 386 support.

R=rsc
CC=golang-dev
https://golang.org/cl/834045
2010-04-09 13:30:35 -07:00
Ian Lance Taylor
2d0ff3f1a6 Support cgo export on amd64.
R=rsc
CC=golang-dev
https://golang.org/cl/857045
2010-04-09 13:30:11 -07:00
Rob Pike
3ddeef8153 rename os.Dir to os.FileInfo
R=rsc
CC=golang-dev
https://golang.org/cl/902042
2010-04-09 11:36:40 -07:00
Alex Brainman
a17544f283 fix bug in os_test.go checkMode
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/872043
2010-04-08 21:16:05 -07:00
Russ Cox
c60d048594 runtime: fix build (panic) for FreeBSD
R=adg
CC=golang-dev
https://golang.org/cl/867046
2010-04-08 21:13:42 -07:00
Russ Cox
5963dbac08 runtime: turn divide by zero, nil dereference into panics
tested on linux/amd64, linux/386, linux/arm, darwin/amd64, darwin/386.
freebsd untested; will finish in a separate CL.

for now all the panics are errorStrings.
richer structures can be added as necessary
once the mechanism is shaked out.

R=r
CC=golang-dev
https://golang.org/cl/906041
2010-04-08 18:15:30 -07:00
Russ Cox
72157c300b runtime: fix bad status throw
when garbage collector sees recovering goroutine

Fixes #711.

R=r
CC=golang-dev
https://golang.org/cl/869045
2010-04-08 13:24:53 -07:00
Russ Cox
2f0cae46d8 runtime: work around kernel bug in Snow Leopard signal handling
Could not take a signal on threads other than the main thread.
If you look at the spinning binary with dtrace, you can see a
fault happening over and over:

    $ dtrace -n '
    fbt::user_trap:entry /execname=="boot32" && self->count < 10/
    {
        self->count++;
        printf("%s %x %x %x %x", probefunc, arg1, arg2, arg3, arg4);
        stack();
        tracemem(arg4, 256);
    }'

    dtrace: description 'fbt::user_trap:entry ' matched 1 probe
    CPU     ID                    FUNCTION:NAME
      1  17015                  user_trap:entry user_trap 0 10 79af0a0 79af0a0
                  mach_kernel`lo_alltraps+0x12a

             0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f  0123456789abcdef
         0: 0e 00 00 00 37 00 00 00 00 00 00 00 1f 00 00 00  ....7...........
        10: 1f 00 00 00 a8 33 00 00 00 00 00 01 00 00 00 00  .....3..........
        20: 98 ba dc fe 07 09 00 00 00 00 00 00 98 ba dc fe  ................
        30: 06 00 00 00 0d 00 00 00 34 00 00 00 9e 1c 00 00  ........4.......
        40: 17 00 00 00 00 02 00 00 ac 30 00 00 1f 00 00 00  .........0......
        50: 00 00 00 00 00 00 00 00 0d 00 00 00 e0 e6 29 00  ..............).
        60: 34 00 00 00 00 00 00 00 9e 1c 00 00 00 00 00 00  4...............
        70: 17 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00  ................
        80: ac 30 00 00 00 00 00 00 1f 00 00 00 00 00 00 00  .0..............
        90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        a0: 48 00 00 00 10 00 00 00 85 00 00 00 a0 f2 29 00  H.............).
        b0: 69 01 00 02 00 00 00 00 e6 93 04 82 ff 7f 00 00  i...............
        c0: 2f 00 00 00 00 00 00 00 06 02 00 00 00 00 00 00  /...............
        d0: 78 ee 42 01 01 00 00 00 1f 00 00 00 00 00 00 00  x.B.............
        e0: 00 ed 9a 07 00 00 00 00 00 00 00 00 00 00 00 00  ................
        f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

    ...

The memory dump shows a 32-bit exception frame:

    x86_saved_state32

    gs = 0x37
    fs = 0
    es = 0x1f
    ds = 0x1f
    edi = 0x33a8
    esi = 0x01000000
    ebp = 0
    cr2 = 0xfedcba98
    ebx = 0x0907
    edx = 0
    ecx = 0xfedcba98
    eax = 0x06
    trapno = 0x0d
    err = 0x34
    eip = 0x1c9e
    cs = 0x17
    efl = 0x0200
    uesp = 0x30ac
    ss = 0x1f

The cr2 of 0xfedcba98 is the address that the new thread read
to cause the fault, but note that the trap is now a GP fault with
error code 0x34, meaning it's moved past the cr2 problem and on
to an invaild segment selector.  The 0x34 is suspiciously similar
to the 0x37 in gs, and sure enough, OS X forces gs to have
that value in the signal handler, and if your thread hasn't set
up that segment (known as USER_CTHREAD), you'll fault on the IRET
into the signal handler and never be able to handle a signal.

The kernel bug is that it forces segment 0x37 without making sure
it is a valid segment.  Leopard also forced 0x37 but had the courtesy
to set it up first.

Since OS X requires us to set up that segment (using the
thread_fast_set_cthread_self system call), we might as well
use it instead of the more complicated i386_set_ldt call to
set up our per-OS thread storage.

Also add some more zeros to bsdthread_register for new arguments
in Snow Leopard (apparently unnecessary, but being careful).

Fixes #510.

R=r
CC=golang-dev
https://golang.org/cl/824046
2010-04-08 13:24:37 -07:00
Charles L. Dorian
9aa8f95ba8 math: atan2 special cases (negative zero)
Added Signbit(), revised Copysign()

R=rsc
CC=golang-dev
https://golang.org/cl/822045
2010-04-08 13:24:04 -07:00
Russ Cox
24c58174b2 runtime: use explicit flag when finalizer goroutine is waiting
Avoids spurious wakeups during other sleeping by that goroutine.
Fixes #711.

R=r
CC=golang-dev
https://golang.org/cl/902041
2010-04-07 20:38:02 -07:00
Ken Thompson
b57afc2f83 another try at clearing
channel recv data.

R=rsc
CC=golang-dev
https://golang.org/cl/896041
2010-04-06 17:33:43 -07:00
Ken Thompson
dec248c665 change channel read to clear
data just read from the channel.
this will make it easier to
recognize when to garbage
collect and finalize.

R=rsc
CC=golang-dev
https://golang.org/cl/882043
2010-04-06 16:58:52 -07:00
Russ Cox
caa149f73d net: use chan bool instead of chan *netFD to avoid cycle
The cycle is *netFD -> cw chanl *netFD in struct ->
same *netFD in channel read buffer.

Because channels are finalized, the cycle makes them
uncollectable.  A better fix is to make channels not
finalized anymore, and that will happen, but this is
an easy, reasonable workaround until then.

Another good fix would be to zero the channel receive
buffer entry after the receive.  That too will happen.

R=r
CC=golang-dev
https://golang.org/cl/875043
2010-04-06 16:50:27 -07:00
Rob Pike
6431b984db flags: better tests.
R=rsc
CC=golang-dev
https://golang.org/cl/864044
2010-04-06 16:46:52 -07:00
Russ Cox
88ce9ce40c runtime: two proc bug fixes
1. Fix bug in GOMAXPROCS when trying to cut number of procs
Race could happen on any system but was
manifesting only on Xen hosted Linux.

2. Fix recover on ARM, where FP != caller SP.

R=r
CC=golang-dev
https://golang.org/cl/880043
2010-04-06 13:48:31 -07:00
Rob Pike
b26a7a2b88 fix deps.bash. \t does not mean tab in some seds.
also: add /dev/null to the ls args to repair handling of empty dependency lists.

R=rsc
CC=golang-dev
https://golang.org/cl/883045
2010-04-06 10:53:48 -07:00
Giles Lean
ac3cf56d33 syscall package: document that errno is zeroed on success
This is a documentation enhancement only, without any code
change.

The rationale for documenting this precisely is that Unix
programmers who "know" that errno's value is undefined after
a successful system call may be surprised otherwise and
search to be sure that a zero errno may be relied upon after
successful calls.

R=r, rsc1, rsc
CC=golang-dev
https://golang.org/cl/812044
2010-04-06 10:28:55 -07:00
Ian Lance Taylor
0688a97556 GNU/Linux sed requires \? rather than ?. Just use * instead.
R=rsc, r
CC=golang-dev
https://golang.org/cl/810043
2010-04-06 10:23:21 -07:00