]> Cypherpunks repositories - gostls13.git/log
gostls13.git
14 years agoflag: fix error in documentation example.
Rob Pike [Fri, 25 Mar 2011 18:28:31 +0000 (11:28 -0700)]
flag: fix error in documentation example.
Fixes #1615.
This time for sure.

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

14 years agoruntime/pprof: disable test on darwin
Russ Cox [Fri, 25 Mar 2011 17:47:07 +0000 (13:47 -0400)]
runtime/pprof: disable test on darwin

Fixes #1641.

Actually it side steps the real issue, which is that the
setitimer(2) implementation on OS X is not useful for
profiling of multi-threaded programs.  I filed the below
using the Apple Bug Reporter.

/*
Filed as Apple Bug Report #9177434.

This program creates a new pthread that loops, wasting cpu time.
In the main pthread, it sleeps on a condition that will never come true.
Before doing so it sets up an interval timer using ITIMER_PROF.
The handler prints a message saying which thread it is running on.

POSIX does not specify which thread should receive the signal, but
in order to be useful in a user-mode self-profiler like pprof or gprof
   http://code.google.com/p/google-perftools
   http://www.delorie.com/gnu/docs/binutils/gprof_25.html
it is important that the thread that receives the signal is the one
whose execution caused the timer to expire.

Linux and FreeBSD handle this by sending the signal to the process's
queue but delivering it to the current thread if possible:

   http://lxr.linux.no/linux+v2.6.38/kernel/signal.c#L802
     807        /*
     808         * Now find a thread we can wake up to take the signal off the queue.
     809         *
     810         * If the main thread wants the signal, it gets first crack.
     811         * Probably the least surprising to the average bear.
     812         * /

   http://fxr.watson.org/fxr/source/kern/kern_sig.c?v=FREEBSD8;im=bigexcerpts#L1907
     1914         /*
     1915          * Check if current thread can handle the signal without
     1916          * switching context to another thread.
     1917          * /

On those operating systems, this program prints:

    $ ./a.out
    signal on cpu-chewing looper thread
    signal on cpu-chewing looper thread
    signal on cpu-chewing looper thread
    signal on cpu-chewing looper thread
    signal on cpu-chewing looper thread
    signal on cpu-chewing looper thread
    signal on cpu-chewing looper thread
    signal on cpu-chewing looper thread
    signal on cpu-chewing looper thread
    signal on cpu-chewing looper thread
    $

The OS X kernel does not have any such preference.  Its get_signalthread
does not prefer current_thread(), in contrast to the other two systems,
so the signal gets delivered to the first thread in the list that is able to
handle it, which ends up being the main thread in this experiment.
http://fxr.watson.org/fxr/source/bsd/kern/kern_sig.c?v=xnu-1456.1.26;im=excerpts#L1666

    $ ./a.out
    signal on sleeping main thread
    signal on sleeping main thread
    signal on sleeping main thread
    signal on sleeping main thread
    signal on sleeping main thread
    signal on sleeping main thread
    signal on sleeping main thread
    signal on sleeping main thread
    signal on sleeping main thread
    signal on sleeping main thread
    $

The fix is to make get_signalthread use the same heuristic as
Linux and FreeBSD, namely to use current_thread() if possible
before scanning the process thread list.

*/

#include <sys/time.h>
#include <sys/signal.h>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

static void handler(int);
static void* looper(void*);

static pthread_t pmain, ploop;

int
main(void)
{
        struct itimerval it;
        struct sigaction sa;
        pthread_cond_t cond;
        pthread_mutex_t mu;

        memset(&sa, 0, sizeof sa);
        sa.sa_handler = handler;
        sa.sa_flags = SA_RESTART;
        memset(&sa.sa_mask, 0xff, sizeof sa.sa_mask);
        sigaction(SIGPROF, &sa, 0);

        pmain = pthread_self();
        pthread_create(&ploop, 0, looper, 0);

        memset(&it, 0, sizeof it);
        it.it_interval.tv_usec = 10000;
        it.it_value = it.it_interval;
        setitimer(ITIMER_PROF, &it, 0);

        pthread_mutex_init(&mu, 0);
        pthread_mutex_lock(&mu);

        pthread_cond_init(&cond, 0);
        for(;;)
                pthread_cond_wait(&cond, &mu);

        return 0;
}

static void
handler(int sig)
{
        static int nsig;
        pthread_t p;

        p = pthread_self();
        if(p == pmain)
                printf("signal on sleeping main thread\n");
        else if(p == ploop)
                printf("signal on cpu-chewing looper thread\n");
        else
                printf("signal on %p\n", (void*)p);
        if(++nsig >= 10)
                exit(0);
}

static void*
looper(void *v)
{
        for(;;);
}

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

14 years agotest: match gccgo error messages for label.go and label1.go.
Ian Lance Taylor [Fri, 25 Mar 2011 17:36:46 +0000 (10:36 -0700)]
test: match gccgo error messages for label.go and label1.go.

label.go:30:1: error: label ‘L6’ already defined
label.go:28:1: note: previous definition of ‘L6’ was here
label.go:23:1: error: label ‘L4’ defined and not used
label.go:52:2: error: label ‘defalt’ defined and not used
label.go:17:1: error: label ‘L2’ defined and not used
label.go:26:1: error: label ‘L5’ defined and not used
label.go:20:1: error: label ‘L3’ defined and not used
label.go:14:1: error: label ‘L1’ defined and not used

label1.go:32:13: error: invalid continue label ‘L2’
label1.go:44:13: error: invalid continue label ‘L3’
label1.go:52:10: error: invalid break label ‘L4’
label1.go:55:13: error: invalid continue label ‘L4’
label1.go:65:9: error: invalid break label ‘L5’
label1.go:68:12: error: invalid continue label ‘L5’
label1.go:76:10: error: invalid break label ‘L1’
label1.go:79:13: error: invalid continue label ‘L1’

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

14 years agoruntime: always set *received in chanrecv.
Ian Lance Taylor [Fri, 25 Mar 2011 17:36:22 +0000 (10:36 -0700)]
runtime: always set *received in chanrecv.

Also fix comment.

The only caller of chanrecv initializes the value to false, so
this patch makes no difference at present.  But it seems like
the right thing to do.

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

14 years agoruntime/darwin: remove unused local variables.
Ian Lance Taylor [Fri, 25 Mar 2011 17:35:46 +0000 (10:35 -0700)]
runtime/darwin: remove unused local variables.

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

14 years agohttp/pprof: cpu profiling support
Russ Cox [Fri, 25 Mar 2011 16:50:12 +0000 (12:50 -0400)]
http/pprof: cpu profiling support

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

14 years agohttp: modified perl cgi test to remove newline from env variables
Roger Pau Monné [Fri, 25 Mar 2011 16:33:45 +0000 (09:33 -0700)]
http: modified perl cgi test to remove newline from env variables

Fixes #1639

R=golang-dev, bradfitzgo
CC=golang-dev
https://golang.org/cl/4291069

14 years agoruntime: fix arm build
Russ Cox [Fri, 25 Mar 2011 16:30:49 +0000 (12:30 -0400)]
runtime: fix arm build

R=adg, dfc, r
CC=golang-dev
https://golang.org/cl/4296042

14 years agoA+C: Roger Pau Monné (individual CLA)
Russ Cox [Fri, 25 Mar 2011 16:30:09 +0000 (12:30 -0400)]
A+C: Roger Pau Monné (individual CLA)

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

14 years agofreebsd-386: update defs
Devon H. O'Dell [Thu, 24 Mar 2011 23:18:04 +0000 (10:18 +1100)]
freebsd-386: update defs

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

14 years agogo/parser: resolve identifiers properly
Robert Griesemer [Thu, 24 Mar 2011 18:45:52 +0000 (11:45 -0700)]
go/parser: resolve identifiers properly

Correctly distinguish between lhs and rhs identifiers
and resolve/declare them accordingly.

Collect field and method names in respective scopes
(will be available after some minor AST API changes).

Also collect imports since it's useful to have that
list directly w/o having to re-traverse the AST
(will also be available after some minor AST API changes).

No external API changes in this CL.

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

14 years agomisc/emacs: gofmt: don't clobber the current buffer on failure
Sameer Ajmani [Thu, 24 Mar 2011 14:35:39 +0000 (10:35 -0400)]
misc/emacs: gofmt: don't clobber the current buffer on failure

Change M-x gofmt to display errors in a new buffer instead of
clobbering the current buffer.

Add gofmt-before-save, which runs gofmt when in go-mode.  This
can be used with before-save-hook.  Add to your .emacs:
  (add-hook 'before-save-hook 'gofmt-before-save)

R=rsc, aclements, amdragon
CC=golang-dev
https://golang.org/cl/4276059

14 years agogob: remove another allocation.
Rob Pike [Thu, 24 Mar 2011 04:49:19 +0000 (21:49 -0700)]
gob: remove another allocation.
The top level bytes.Buffer is always there and can be re-used.
Rpc goes from 83 to 79 mallocs per round trip.

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

14 years agoruntime: fix freebsd-amd64 (and part of 386)
Andrew Gerrand [Thu, 24 Mar 2011 00:45:12 +0000 (11:45 +1100)]
runtime: fix freebsd-amd64 (and part of 386)

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

14 years agosyscall: StartProcess fixes for windows
Alex Brainman [Thu, 24 Mar 2011 00:20:28 +0000 (11:20 +1100)]
syscall: StartProcess fixes for windows

- StartProcess will work with relative (to attr.Dir, not
  current directory) executable filenames
- StartProcess will only work if executable filename points
  to the real file, it will not search for executable in the
  $PATH list and others (see CreateProcess manual for details)
- StartProcess argv strings can contain any characters

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

14 years agodoc: update contrib.html to be more enticing
Andrew Gerrand [Thu, 24 Mar 2011 00:06:02 +0000 (11:06 +1100)]
doc: update contrib.html to be more enticing
doc: refer to golang-dev instead of -nuts in contribute.html

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

14 years agotesting: add -test.cpuprofile flag
Russ Cox [Wed, 23 Mar 2011 22:17:14 +0000 (18:17 -0400)]
testing: add -test.cpuprofile flag

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

14 years ago5l/6l/8l: undo spadj cleanup at ARET for following instructions in the same stackframe.
Luuk van Dijk [Wed, 23 Mar 2011 22:11:29 +0000 (23:11 +0100)]
5l/6l/8l: undo spadj cleanup at ARET for following instructions in the same stackframe.

5l was already correct, clarified comment and added diags for unmaintained code.

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

14 years agohttp: don't chunk 304 responses
Brad Fitzpatrick [Wed, 23 Mar 2011 21:29:26 +0000 (14:29 -0700)]
http: don't chunk 304 responses

rsc's earlier fix, plus tests.

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

14 years agogotest: fix gofmt issue in generated _testmain.go
Brad Fitzpatrick [Wed, 23 Mar 2011 21:23:05 +0000 (14:23 -0700)]
gotest: fix gofmt issue in generated _testmain.go

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

14 years agosyscall: GetsockoptInt.
Albert Strasheim [Wed, 23 Mar 2011 18:33:48 +0000 (14:33 -0400)]
syscall: GetsockoptInt.

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

14 years agogofmt: add profiling flag
Russ Cox [Wed, 23 Mar 2011 18:28:38 +0000 (14:28 -0400)]
gofmt: add profiling flag

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

14 years agoruntime/pprof: cpu profiling support
Russ Cox [Wed, 23 Mar 2011 17:54:31 +0000 (13:54 -0400)]
runtime/pprof: cpu profiling support

R=r, bradfitzgo, r2
CC=golang-dev
https://golang.org/cl/4313041

14 years agohttp: export Transport, add keep-alive support
Brad Fitzpatrick [Wed, 23 Mar 2011 17:38:18 +0000 (10:38 -0700)]
http: export Transport, add keep-alive support

This patch adds a connection cache and keep-alive
support to Transport, which is used by the
HTTP client.

It's also structured such that it's easy to add
HTTP pipelining in the future.

R=rsc, petar-m, bradfitzwork, r
CC=golang-dev
https://golang.org/cl/4272045

14 years agoCONTRIBUTORS: John DeNero, Sameer Ajmani (Google CLA)
Russ Cox [Wed, 23 Mar 2011 17:33:45 +0000 (13:33 -0400)]
CONTRIBUTORS: John DeNero, Sameer Ajmani (Google CLA)

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

14 years agoruntime: cpu profiling support
Russ Cox [Wed, 23 Mar 2011 15:43:37 +0000 (11:43 -0400)]
runtime: cpu profiling support

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

14 years agoruntime: fix print - no %v in C
Russ Cox [Wed, 23 Mar 2011 15:34:03 +0000 (11:34 -0400)]
runtime: fix print - no %v in C

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

14 years agogodefs: handle volatile
Russ Cox [Wed, 23 Mar 2011 15:33:53 +0000 (11:33 -0400)]
godefs: handle volatile

R=iant
CC=golang-dev
https://golang.org/cl/4291063

14 years agoruntime: os-specific types and code for setitimer
Russ Cox [Wed, 23 Mar 2011 15:31:42 +0000 (11:31 -0400)]
runtime: os-specific types and code for setitimer

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

14 years agoruntime: more stack split fixes
Russ Cox [Wed, 23 Mar 2011 15:28:24 +0000 (11:28 -0400)]
runtime: more stack split fixes

Found by stkcheck after 6l, 8l bug fixes Luuk is about to submit.

R=lvd
CC=golang-dev
https://golang.org/cl/4306047

14 years agomisc/bbedit: remove closed keyword
Anthony Starks [Wed, 23 Mar 2011 05:29:40 +0000 (16:29 +1100)]
misc/bbedit: remove closed keyword

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

14 years agomisc/vim: remove 'closed' as a builtin function.
David Symonds [Wed, 23 Mar 2011 03:26:28 +0000 (14:26 +1100)]
misc/vim: remove 'closed' as a builtin function.

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

14 years agosync: fix example code
Andrew Gerrand [Wed, 23 Mar 2011 03:24:30 +0000 (14:24 +1100)]
sync: fix example code

Fixes #1631.

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

14 years agochan: allocate a new chan with one
Ken Thompson [Wed, 23 Mar 2011 01:41:17 +0000 (18:41 -0700)]
chan: allocate a new chan with one
malloc rather than nelements + 1.

R=rob
CC=golang-dev
https://golang.org/cl/4291064

14 years agogodoc: add -template flag to specify custom templates
Andrew Gerrand [Tue, 22 Mar 2011 22:44:23 +0000 (09:44 +1100)]
godoc: add -template flag to specify custom templates

R=gri, niemeyer, rsc1
CC=golang-dev
https://golang.org/cl/4291059

14 years agogo/printer: Revert API change of CL 4274075.
Robert Griesemer [Tue, 22 Mar 2011 21:14:26 +0000 (14:14 -0700)]
go/printer: Revert API change of CL 4274075.

Revert changes to printer.Config. Pass in the
nodeSizes map trough an internal helper function.

R=golang-dev, rsc1
CC=golang-dev
https://golang.org/cl/4309042

14 years agoMake.pkg: Always define _CGO_CFLAGS and friends.
Ian Lance Taylor [Tue, 22 Mar 2011 20:30:16 +0000 (13:30 -0700)]
Make.pkg: Always define _CGO_CFLAGS and friends.

Submitting TBR to fix Darwin build.

TBR=rsc
CC=golang-dev
https://golang.org/cl/4273096

14 years agoMake.pkg: add support for SWIG, and add two SWIG examples
Ian Lance Taylor [Tue, 22 Mar 2011 20:05:51 +0000 (13:05 -0700)]
Make.pkg: add support for SWIG, and add two SWIG examples

The SWIG examples are not yet built or tested by default.

R=r, rsc, iant2
CC=golang-dev
https://golang.org/cl/4287056

14 years agogob: fix up ugly formatting introduced by buggy (now fixed) gofmt.
Rob Pike [Tue, 22 Mar 2011 18:52:41 +0000 (11:52 -0700)]
gob: fix up ugly formatting introduced by buggy (now fixed) gofmt.

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

14 years agogob: use pointers in bootstrapType so interfaces behave properly
Rob Pike [Tue, 22 Mar 2011 18:43:00 +0000 (11:43 -0700)]
gob: use pointers in bootstrapType so interfaces behave properly
and don't lead to a nil reflect.Type.
Fixes #1626.

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

14 years agogo/printer, gofmt: simplify struct formatting and respect line breaks
Robert Griesemer [Tue, 22 Mar 2011 18:05:26 +0000 (11:05 -0700)]
go/printer, gofmt: simplify struct formatting and respect line breaks

Also: gofmt src misc

Fixes #1627.

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

14 years agotest: enable tests using v, ok := <-ch syntax
Robert Hencke [Tue, 22 Mar 2011 17:32:43 +0000 (10:32 -0700)]
test: enable tests using v, ok := <-ch syntax

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

14 years agogopprof: fix bug: do not rotate 180 degrees for large scrolls
Russ Cox [Tue, 22 Mar 2011 06:04:59 +0000 (02:04 -0400)]
gopprof: fix bug: do not rotate 180 degrees for large scrolls

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

14 years agold: return > 0 exit code on unsafe import
Andrew Gerrand [Tue, 22 Mar 2011 04:00:21 +0000 (15:00 +1100)]
ld: return > 0 exit code on unsafe import

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

14 years agogo/printer, gofmt: avoid exponential layout algorithm
Robert Griesemer [Tue, 22 Mar 2011 00:15:59 +0000 (17:15 -0700)]
go/printer, gofmt: avoid exponential layout algorithm

Use memoization to avoid repeated recomputation of nested
node sizes. Speeds up testdata/slow.input by several orders
of magnitude.

- added respective test case
- added timeout to test code
- deleted some unrelated unused code

Fixes #1628.

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

14 years agocgi: extra failure debugging in host_test
Brad Fitzpatrick [Mon, 21 Mar 2011 21:43:38 +0000 (14:43 -0700)]
cgi: extra failure debugging in host_test

Trying to track down why this fails on some
people's machines.

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

14 years agotime: give a helpful message when we can't set the time zone for testing.
Rob Pike [Mon, 21 Mar 2011 20:48:31 +0000 (13:48 -0700)]
time: give a helpful message when we can't set the time zone for testing.
Fixes #1625.

R=bradfitzgo, bradfitzwork, r2
CC=golang-dev
https://golang.org/cl/4295060

14 years agosyscall: rename from .sh to .pl, because these files are in Perl.
Rob Pike [Mon, 21 Mar 2011 20:02:10 +0000 (13:02 -0700)]
syscall: rename from .sh to .pl, because these files are in Perl.
Also delete references to nacl.

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

14 years agoexec: document dir option for Run
Gustavo Niemeyer [Mon, 21 Mar 2011 14:25:00 +0000 (11:25 -0300)]
exec: document dir option for Run

R=golang-dev, bradfitzwork, rsc1, peterGo
CC=golang-dev
https://golang.org/cl/4271056

14 years agobuild: reenable clean.bash without gomake
Gustavo Niemeyer [Mon, 21 Mar 2011 03:27:50 +0000 (00:27 -0300)]
build: reenable clean.bash without gomake

This change had already been made in revision 7371, but
was then undone with changes in revision 7606.

R=golang-dev, rsc1
CC=golang-dev
https://golang.org/cl/4239064

14 years agogoinstall: add -clean flag to docs
Andrew Gerrand [Mon, 21 Mar 2011 03:18:12 +0000 (14:18 +1100)]
goinstall: add -clean flag to docs

Fixes #1629.

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

14 years agorpc: increase server_test timeout
Gustavo Niemeyer [Mon, 21 Mar 2011 03:07:22 +0000 (00:07 -0300)]
rpc: increase server_test timeout

These timeouts are breaking tests in very slow
systems every once in a while.  I've noticed
problems when compiling the Ubuntu packages for
arm, specifically.

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

14 years agopath/filepath: fix TestEvalSymlinks when run under symlinked GOROOT
Andrew Gerrand [Mon, 21 Mar 2011 00:24:48 +0000 (11:24 +1100)]
path/filepath: fix TestEvalSymlinks when run under symlinked GOROOT

Fixes #1622.

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

14 years agoflag: document Nflag function
Fazlul Shahriar [Sun, 20 Mar 2011 18:45:43 +0000 (11:45 -0700)]
flag: document Nflag function

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

14 years agogopprof: update list of memory allocation functions
Russ Cox [Sat, 19 Mar 2011 00:55:21 +0000 (20:55 -0400)]
gopprof: update list of memory allocation functions

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

14 years agobuild: diagnose Ubuntu's buggy copy of gold
Russ Cox [Fri, 18 Mar 2011 22:23:00 +0000 (18:23 -0400)]
build: diagnose Ubuntu's buggy copy of gold

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

14 years agonet: Use preallocated buffer for kqueue/kevent.
Ian Lance Taylor [Fri, 18 Mar 2011 19:48:12 +0000 (12:48 -0700)]
net: Use preallocated buffer for kqueue/kevent.

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

14 years agocgo: fix index-out-of-bounds bug
Robert Griesemer [Fri, 18 Mar 2011 19:38:38 +0000 (12:38 -0700)]
cgo: fix index-out-of-bounds bug

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

14 years agorpc: keep free lists of Request and Response structures.
Rob Pike [Fri, 18 Mar 2011 18:54:36 +0000 (11:54 -0700)]
rpc: keep free lists of Request and Response structures.
Also in the common case avoid unnecessary buffering in
the channel.
Removes 13 allocations per round trip. Now at 86, down from
144 a week ago.

R=rsc, bradfitzgo, r2, rsc1
CC=golang-dev
https://golang.org/cl/4277060

14 years agonet: Use preallocated buffer for epoll.
Ian Lance Taylor [Fri, 18 Mar 2011 18:50:19 +0000 (11:50 -0700)]
net: Use preallocated buffer for epoll.

Reduces rpc test "mallocs per rpc round trip" by 4.

Gains ~8% on a localhost client/server RPC test.

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

14 years agogodoc: No need to use filepath.IsAbs()
Yasuhiro Matsumoto [Fri, 18 Mar 2011 16:28:23 +0000 (09:28 -0700)]
godoc: No need to use filepath.IsAbs()

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

14 years agogodoc: fix path problem for windows.
Yasuhiro Matsumoto [Fri, 18 Mar 2011 05:27:30 +0000 (22:27 -0700)]
godoc: fix path problem for windows.

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

14 years agosinit.c: recursion in sinit
Ken Thompson [Thu, 17 Mar 2011 23:47:00 +0000 (16:47 -0700)]
sinit.c: recursion in sinit
fixes #1617

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

14 years agofilepath: do not run TestEvalSymlinks on Windows
Alex Brainman [Thu, 17 Mar 2011 23:19:19 +0000 (10:19 +1100)]
filepath: do not run TestEvalSymlinks on Windows

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

14 years agogo/parser: fix memory leak by making a copy of token literals
Robert Griesemer [Thu, 17 Mar 2011 22:32:29 +0000 (15:32 -0700)]
go/parser: fix memory leak by making a copy of token literals

The scanner returns slices into the original source
for token values. If those slices are making it into
the AST and from there into other long-living data
structures (e.g. godoc search), references to the
original source are kept around involuntarily.

For the current godoc and source tree, this change reduces
memory consumption after indexing and before GC by ~92MB
or almost 30%, and by ~10MB after GC (or about 6%).

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

14 years agoflag: fix example in doc comment.
Rob Pike [Thu, 17 Mar 2011 22:29:52 +0000 (15:29 -0700)]
flag: fix example in doc comment.

Fixes #1615.

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

14 years agonet: Don't force epoll/kqueue to wake up in order to add new events.
Ian Lance Taylor [Thu, 17 Mar 2011 20:42:40 +0000 (13:42 -0700)]
net: Don't force epoll/kqueue to wake up in order to add new events.

In conjunction with the non-blocking system call CL, this
gives about an 8% performance improvement on a client/server
test running on my local machine.

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

14 years agogo/scanner: to interpret line comments with Windows filenames
Alex Brainman [Thu, 17 Mar 2011 18:49:56 +0000 (11:49 -0700)]
go/scanner: to interpret line comments with Windows filenames

Fixes #1614.

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

14 years agoos: remove fstat TODO
Caine Tighe [Thu, 17 Mar 2011 17:57:36 +0000 (13:57 -0400)]
os: remove fstat TODO

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

14 years agogob: eliminate two more allocations in decode.
Rob Pike [Thu, 17 Mar 2011 17:47:42 +0000 (10:47 -0700)]
gob: eliminate two more allocations in decode.
- just an oversight; we were reallocating a buffer.
- use unsafe to avoid allocating storage for a string twice.

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

14 years agotime: isolate syscall reference in sys.go
Russ Cox [Thu, 17 Mar 2011 17:46:05 +0000 (13:46 -0400)]
time: isolate syscall reference in sys.go

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

14 years ago.hgignore: Ignore all goinstalled packages
Evan Shaw [Thu, 17 Mar 2011 05:45:05 +0000 (01:45 -0400)]
.hgignore: Ignore all goinstalled packages

R=golang-dev, niemeyer, rsc1, rog, rsc
CC=golang-dev
https://golang.org/cl/4285047

14 years agodoc: mention godoc in "implements" FAQ
Andrew Gerrand [Thu, 17 Mar 2011 05:37:34 +0000 (16:37 +1100)]
doc: mention godoc in "implements" FAQ

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

14 years agopath/filepath: add EvalSymlinks function
Andrew Gerrand [Thu, 17 Mar 2011 05:36:37 +0000 (16:36 +1100)]
path/filepath: add EvalSymlinks function

R=rsc, niemeyer, r2, rog, iant2, r
CC=golang-dev
https://golang.org/cl/4235060

14 years agodoc: explain release and weekly tags in install.html
Andrew Gerrand [Thu, 17 Mar 2011 05:33:10 +0000 (16:33 +1100)]
doc: explain release and weekly tags in install.html

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

14 years agosyscall: Permit non-blocking syscalls.
Ian Lance Taylor [Thu, 17 Mar 2011 02:03:01 +0000 (19:03 -0700)]
syscall: Permit non-blocking syscalls.

Permit system calls to be designated as non-blocking, meaning
that we simply call them without involving the scheduler.

This change by itself is mostly performance neutral.  In
combination with a following change to the net package there
is a performance advantage.

R=rsc, dfc, r2, iant2, rsc1
CC=golang-dev
https://golang.org/cl/4278055

14 years agogc: fix crash when using -u
Russ Cox [Thu, 17 Mar 2011 01:05:40 +0000 (21:05 -0400)]
gc: fix crash when using -u

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

14 years agogob: remove a few more allocations.
Rob Pike [Thu, 17 Mar 2011 01:03:13 +0000 (18:03 -0700)]
gob: remove a few more allocations.
- use enc.err and dec.err instead of return values in deferred error catcher
- replace io.WriteString with buffer.WriteString

now at:
mallocs per encode of type Bench: 7
mallocs per decode of type Bench: 8

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

14 years agopath: work for windows.
Yasuhiro Matsumoto [Wed, 16 Mar 2011 23:41:23 +0000 (10:41 +1100)]
path: work for windows.

R=brainman, rsc, rsc1
CC=golang-dev
https://golang.org/cl/4249064

14 years agogofix: httpserver - rewrite rw.SetHeader to rw.Header.Set
Andrew Gerrand [Wed, 16 Mar 2011 22:59:18 +0000 (09:59 +1100)]
gofix: httpserver - rewrite rw.SetHeader to rw.Header.Set

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

14 years agocodereview: permit CLs of the form weekly.DATE
Andrew Gerrand [Wed, 16 Mar 2011 22:11:08 +0000 (09:11 +1100)]
codereview: permit CLs of the form weekly.DATE
gobuilder: recognize CLs of the form weekly.DATE

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

14 years agohttp: add NewProxyClientConn
Brad Fitzpatrick [Wed, 16 Mar 2011 21:32:35 +0000 (14:32 -0700)]
http: add NewProxyClientConn

This just returns a ClientConn suitable for writing
proxy requests.  To be used in Transport.

R=rsc, petar-m
CC=golang-dev
https://golang.org/cl/4290052

14 years agogo/ast: merge CaseClause and TypeCaseClause
Robert Griesemer [Wed, 16 Mar 2011 21:25:59 +0000 (14:25 -0700)]
go/ast: merge CaseClause and TypeCaseClause
(per rsc's suggestion)

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

14 years agogo/scanner: use filepath
Alex Brainman [Wed, 16 Mar 2011 17:38:03 +0000 (10:38 -0700)]
go/scanner: use filepath

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

14 years agotesting: compile regexp only once
Rob Pike [Wed, 16 Mar 2011 17:32:21 +0000 (10:32 -0700)]
testing: compile regexp only once
The -test.run and -test.bench flags were compilng the regexp for ever test
function, which was mucking up memory profiles.   Add a simple wrapper
to save the compiled state so that the regexp is compiled only once for
each flag.

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

14 years agotesting: fix build
Rob Pike [Wed, 16 Mar 2011 17:12:25 +0000 (10:12 -0700)]
testing: fix build
Dependency on bufio crept in during last CL; this breaks the cycle.
Also add a missing '-' to the documentation.

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

14 years agotesting: add -test.memprofile and -test.memprofilerate flags.
Rob Pike [Wed, 16 Mar 2011 16:53:58 +0000 (09:53 -0700)]
testing: add -test.memprofile and -test.memprofilerate flags.
These allow a test to generate memory profiles automatically.

R=golang-dev, rsc1
CC=golang-dev
https://golang.org/cl/4273064

14 years agocrypto/openpgp: add DSA signature support.
Adam Langley [Wed, 16 Mar 2011 14:50:06 +0000 (10:50 -0400)]
crypto/openpgp: add DSA signature support.

R=bradfitzgo, nsz
CC=golang-dev
https://golang.org/cl/4280041

14 years agocrypto/ecdsa: truncate hash values.
Adam Langley [Wed, 16 Mar 2011 14:42:41 +0000 (10:42 -0400)]
crypto/ecdsa: truncate hash values.

There is some disagreement about how to deal with hash values larger
than the curve order size. We choose to follow OpenSSL's lead here.

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

14 years agodoc: fix line wrapping for release.html
Andrew Gerrand [Wed, 16 Mar 2011 05:36:18 +0000 (16:36 +1100)]
doc: fix line wrapping for release.html

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

14 years agotag weekly.2011-03-15
Andrew Gerrand [Wed, 16 Mar 2011 05:26:46 +0000 (16:26 +1100)]
tag weekly.2011-03-15

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

14 years agoweekly.2011-03-15 weekly.2011-03-15
Andrew Gerrand [Wed, 16 Mar 2011 05:24:08 +0000 (16:24 +1100)]
weekly.2011-03-15

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

14 years agogob: keep free lists of encoder and decoder states.
Rob Pike [Wed, 16 Mar 2011 04:30:07 +0000 (21:30 -0700)]
gob: keep free lists of encoder and decoder states.
Avoids 3 mallocs in a round trip encoding/decoding a struct.

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

14 years agogofix: fix godoc doc
Alex Brainman [Wed, 16 Mar 2011 04:20:46 +0000 (15:20 +1100)]
gofix: fix godoc doc

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

14 years agogofix: fix procattr registration, tests
Russ Cox [Wed, 16 Mar 2011 02:58:09 +0000 (13:58 +1100)]
gofix: fix procattr registration, tests

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

14 years agogofix: procattr
Russ Cox [Wed, 16 Mar 2011 02:33:57 +0000 (22:33 -0400)]
gofix: procattr

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

14 years agogo/printer: output tuning for gofix
Robert Griesemer [Wed, 16 Mar 2011 00:45:16 +0000 (17:45 -0700)]
go/printer: output tuning for gofix

If braces don't have position information for a composite
literal, don't assume alignment of key:value pairs under
the (wrong) assumption that there may be multiple lines.

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

14 years agogob: move benchmarks to a new timing_test.go file.
Rob Pike [Wed, 16 Mar 2011 00:14:02 +0000 (17:14 -0700)]
gob: move benchmarks to a new timing_test.go file.
Add malloc counts for encode and decode.

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

14 years agodebug/proc: fix build
Russ Cox [Tue, 15 Mar 2011 23:39:50 +0000 (19:39 -0400)]
debug/proc: fix build

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

14 years agorpc: add the ability to write out a memory profile during testing.
Rob Pike [Tue, 15 Mar 2011 21:20:30 +0000 (14:20 -0700)]
rpc: add the ability to write out a memory profile during testing.

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