new new & make

R=r
OCL=22166
CL=22166
diff --git a/src/lib/net/dialgoogle_test.go b/src/lib/net/dialgoogle_test.go
index 684439d..86ef5b9 100644
--- a/src/lib/net/dialgoogle_test.go
+++ b/src/lib/net/dialgoogle_test.go
@@ -22,7 +22,7 @@
 	req := io.StringBytes("GET / HTTP/1.0\r\nHost: www.google.com\r\n\r\n");
 	n, errno := fd.Write(req);
 
-	buf := new([]byte, 1000);
+	buf := make([]byte, 1000);
 	n, errno = io.Readn(fd, buf);
 
 	if n < 1000 {
diff --git a/src/lib/net/dnsclient.go b/src/lib/net/dnsclient.go
index eff46f8..f9ca002 100644
--- a/src/lib/net/dnsclient.go
+++ b/src/lib/net/dnsclient.go
@@ -44,7 +44,7 @@
 	if len(name) >= 256 {
 		return nil, DNS_NameTooLong
 	}
-	out := new(*DNS_Msg);
+	out := new(DNS_Msg);
 	out.id = 0x1234;
 	out.question = []DNS_Question{
 		DNS_Question{ name, DNS_TypeA, DNS_ClassINET }
@@ -64,14 +64,14 @@
 		// TODO(rsc): set up timeout or call ReadTimeout.
 		// right now net does not support that.
 
-		buf := new([]byte, 2000);	// More than enough.
+		buf := make([]byte, 2000);	// More than enough.
 		n, err = c.Read(buf);
 		if err != nil {
 			// TODO(rsc): only continue if timed out
 			continue
 		}
 		buf = buf[0:n];
-		in := new(*DNS_Msg);
+		in := new(DNS_Msg);
 		if !in.Unpack(buf) || in.id != out.id {
 			continue
 		}
@@ -85,7 +85,7 @@
 // On return, if err == nil, addrs != nil.
 // TODO(rsc): Maybe return [][]byte (==[]IPAddr) instead?
 func Answer(name string, dns *DNS_Msg) (addrs []string, err *os.Error) {
-	addrs = new([]string, 0, len(dns.answer));
+	addrs = make([]string, 0, len(dns.answer));
 
 	if dns.rcode == DNS_RcodeNameError && dns.authoritative {
 		return nil, DNS_NameNotFound	// authoritative "no such host"
diff --git a/src/lib/net/dnsconfig.go b/src/lib/net/dnsconfig.go
index 5c2b458..04feddb 100644
--- a/src/lib/net/dnsconfig.go
+++ b/src/lib/net/dnsconfig.go
@@ -31,9 +31,9 @@
 	if file == nil {
 		return nil
 	}
-	conf := new(*DNS_Config);
-	conf.servers = new([]string, 3)[0:0];		// small, but the standard limit
-	conf.search = new([]string, 0);
+	conf := new(DNS_Config);
+	conf.servers = make([]string, 3)[0:0];		// small, but the standard limit
+	conf.search = make([]string, 0);
 	conf.ndots = 1;
 	conf.timeout = 1;
 	conf.attempts = 1;
@@ -62,14 +62,14 @@
 
 		case "domain":	// set search path to just this domain
 			if len(f) > 1 {
-				conf.search = new([]string, 1);
+				conf.search = make([]string, 1);
 				conf.search[0] = f[1];
 			} else {
-				conf.search = new([]string, 0)
+				conf.search = make([]string, 0)
 			}
 
 		case "search":	// set search path to given servers
-			conf.search = new([]string, len(f) - 1);
+			conf.search = make([]string, len(f) - 1);
 			for i := 0; i < len(conf.search); i++ {
 				conf.search[i] = f[i+1];
 			}
diff --git a/src/lib/net/dnsmsg.go b/src/lib/net/dnsmsg.go
index 1c85c93..76cdd90 100644
--- a/src/lib/net/dnsmsg.go
+++ b/src/lib/net/dnsmsg.go
@@ -198,18 +198,18 @@
 
 // Map of constructors for each RR wire type.
 var rr_mk = map[int]*()DNS_RR {
-	DNS_TypeCNAME: func() DNS_RR { return new(*DNS_RR_CNAME) },
-	DNS_TypeHINFO: func() DNS_RR { return new(*DNS_RR_HINFO) },
-	DNS_TypeMB: func() DNS_RR { return new(*DNS_RR_MB) },
-	DNS_TypeMG: func() DNS_RR { return new(*DNS_RR_MG) },
-	DNS_TypeMINFO: func() DNS_RR { return new(*DNS_RR_MINFO) },
-	DNS_TypeMR: func() DNS_RR { return new(*DNS_RR_MR) },
-	DNS_TypeMX: func() DNS_RR { return new(*DNS_RR_MX) },
-	DNS_TypeNS: func() DNS_RR { return new(*DNS_RR_NS) },
-	DNS_TypePTR: func() DNS_RR { return new(*DNS_RR_PTR) },
-	DNS_TypeSOA: func() DNS_RR { return new(*DNS_RR_SOA) },
-	DNS_TypeTXT: func() DNS_RR { return new(*DNS_RR_TXT) },
-	DNS_TypeA: func() DNS_RR { return new(*DNS_RR_A) },
+	DNS_TypeCNAME: func() DNS_RR { return new(DNS_RR_CNAME) },
+	DNS_TypeHINFO: func() DNS_RR { return new(DNS_RR_HINFO) },
+	DNS_TypeMB: func() DNS_RR { return new(DNS_RR_MB) },
+	DNS_TypeMG: func() DNS_RR { return new(DNS_RR_MG) },
+	DNS_TypeMINFO: func() DNS_RR { return new(DNS_RR_MINFO) },
+	DNS_TypeMR: func() DNS_RR { return new(DNS_RR_MR) },
+	DNS_TypeMX: func() DNS_RR { return new(DNS_RR_MX) },
+	DNS_TypeNS: func() DNS_RR { return new(DNS_RR_NS) },
+	DNS_TypePTR: func() DNS_RR { return new(DNS_RR_PTR) },
+	DNS_TypeSOA: func() DNS_RR { return new(DNS_RR_SOA) },
+	DNS_TypeTXT: func() DNS_RR { return new(DNS_RR_TXT) },
+	DNS_TypeA: func() DNS_RR { return new(DNS_RR_A) },
 }
 
 // Pack a domain name s into msg[off:].
@@ -424,7 +424,7 @@
 				}
 				n := int(msg[off]);
 				off++;
-				b := new([]byte, n);
+				b := make([]byte, n);
 				for i := 0; i < n; i++ {
 					b[i] = msg[off+i];
 				}
@@ -582,7 +582,7 @@
 	// Could work harder to calculate message size,
 	// but this is far more than we need and not
 	// big enough to hurt the allocator.
-	msg = new([]byte, 2000);
+	msg = make([]byte, 2000);
 
 	// Pack it in: header and then the pieces.
 	off := 0;
@@ -623,10 +623,10 @@
 	dns.rcode = int(dh.bits & 0xF);
 
 	// Arrays.
-	dns.question = new([]DNS_Question, dh.qdcount);
-	dns.answer = new([]DNS_RR, dh.ancount);
-	dns.ns = new([]DNS_RR, dh.nscount);
-	dns.extra = new([]DNS_RR, dh.arcount);
+	dns.question = make([]DNS_Question, dh.qdcount);
+	dns.answer = make([]DNS_RR, dh.ancount);
+	dns.ns = make([]DNS_RR, dh.nscount);
+	dns.extra = make([]DNS_RR, dh.arcount);
 
 	for i := 0; i < len(dns.question); i++ {
 		off, ok = UnpackStruct(&dns.question[i], msg, off);
diff --git a/src/lib/net/fd.go b/src/lib/net/fd.go
index a9c90c8..e155abd 100644
--- a/src/lib/net/fd.go
+++ b/src/lib/net/fd.go
@@ -78,9 +78,9 @@
 func (s *PollServer) Run();
 
 func NewPollServer() (s *PollServer, err *os.Error) {
-	s = new(*PollServer);
-	s.cr = new(chan *FD, 1);
-	s.cw = new(chan *FD, 1);
+	s = new(PollServer);
+	s.cr = make(chan *FD, 1);
+	s.cw = make(chan *FD, 1);
 	if s.pr, s.pw, err = os.Pipe(); err != nil {
 		return nil, err
 	}
@@ -100,7 +100,7 @@
 		s.poll.Close();
 		goto Error
 	}
-	s.pending = new(map[int64] *FD);
+	s.pending = make(map[int64] *FD);
 	go s.Run();
 	return s, nil
 }
@@ -214,11 +214,11 @@
 	if err = SetNonblock(fd); err != nil {
 		return nil, err
 	}
-	f = new(*FD);
+	f = new(FD);
 	f.fd = fd;
 	f.osfd = os.NewFD(fd);
-	f.cr = new(chan *FD, 1);
-	f.cw = new(chan *FD, 1);
+	f.cr = make(chan *FD, 1);
+	f.cw = make(chan *FD, 1);
 	return f, nil
 }
 
diff --git a/src/lib/net/fd_darwin.go b/src/lib/net/fd_darwin.go
index 5a21be5..a92ad78 100644
--- a/src/lib/net/fd_darwin.go
+++ b/src/lib/net/fd_darwin.go
@@ -19,7 +19,7 @@
 }
 
 export func NewPollster() (p *Pollster, err *os.Error) {
-	p = new(*Pollster);
+	p = new(Pollster);
 	var e int64;
 	if p.kq, e = syscall.kqueue(); e != 0 {
 		return nil, os.ErrnoToError(e)
diff --git a/src/lib/net/fd_linux.go b/src/lib/net/fd_linux.go
index e459ddd..77c2747 100644
--- a/src/lib/net/fd_linux.go
+++ b/src/lib/net/fd_linux.go
@@ -25,7 +25,7 @@
 }
 
 export func NewPollster() (p *Pollster, err *os.Error) {
-	p = new(*Pollster);
+	p = new(Pollster);
 	var e int64;
 
 	// The arg to epoll_create is a hint to the kernel
@@ -34,7 +34,7 @@
 	if p.epfd, e = syscall.epoll_create(16); e != 0 {
 		return nil, os.ErrnoToError(e)
 	}
-	p.events = new(map[int64] uint32);
+	p.events = make(map[int64] uint32);
 	return p, nil
 }
 
diff --git a/src/lib/net/ip.go b/src/lib/net/ip.go
index 883a1c6..5ab0c50 100644
--- a/src/lib/net/ip.go
+++ b/src/lib/net/ip.go
@@ -23,7 +23,7 @@
 
 // Make the 4 bytes into an IPv4 address (in IPv6 form)
 func MakeIPv4(a, b, c, d byte) []byte {
-	p := new([]byte, IPv6len);
+	p := make([]byte, IPv6len);
 	for i := 0; i < 10; i++ {
 		p[i] = 0
 	}
@@ -44,11 +44,11 @@
 	IPv4allsys = MakeIPv4(0xe0, 0x00, 0x00, 0x01);
 	IPv4allrouter = MakeIPv4(0xe0, 0x00, 0x00, 0x02);
 	IPv4prefix = MakeIPv4(0, 0, 0, 0);
-	IPallbits = new([]byte, IPv6len);
+	IPallbits = make([]byte, IPv6len);
 	for i := 0; i < IPv6len; i++ {
 		IPallbits[i] = 0xff
 	}
-	IPnoaddr = new([]byte, IPv6len);	// zeroed
+	IPnoaddr = make([]byte, IPv6len);	// zeroed
 }
 
 // Is p all zeros?
@@ -115,7 +115,7 @@
 	if n != len(mask) {
 		return nil
 	}
-	out := new([]byte, n);
+	out := make([]byte, n);
 	for i := 0; i < n; i++ {
 		out[i] = ip[i] & mask[i];
 	}
@@ -280,7 +280,7 @@
 //	* The last 32 bits can be in IPv4 form.
 // Thus, ::ffff:1.2.3.4 is the IPv4 address 1.2.3.4.
 func ParseIPv6(s string) []byte {
-	p := new([]byte, 16);
+	p := make([]byte, 16);
 	ellipsis := -1;	// position of ellipsis in p
 	i := 0;	// index in string s
 
diff --git a/src/lib/net/net.go b/src/lib/net/net.go
index cdf606a..915a354 100644
--- a/src/lib/net/net.go
+++ b/src/lib/net/net.go
@@ -370,7 +370,7 @@
 }
 
 func NewConnTCP(fd *FD, raddr string) *ConnTCP {
-	c := new(*ConnTCP);
+	c := new(ConnTCP);
 	c.fd = fd;
 	c.raddr = raddr;
 	c.SetNoDelay(true);
@@ -398,7 +398,7 @@
 }
 
 func NewConnUDP(fd *FD, raddr string) *ConnUDP {
-	c := new(*ConnUDP);
+	c := new(ConnUDP);
 	c.fd = fd;
 	c.raddr = raddr;
 	return c
@@ -497,7 +497,7 @@
 		syscall.close(fd.fd);
 		return nil, os.ErrnoToError(e1)
 	}
-	l = new(*ListenerTCP);
+	l = new(ListenerTCP);
 	l.fd = fd;
 	return l, nil
 }
diff --git a/src/lib/net/net_darwin.go b/src/lib/net/net_darwin.go
index 9d143d3..2ad0043 100644
--- a/src/lib/net/net_darwin.go
+++ b/src/lib/net/net_darwin.go
@@ -16,7 +16,7 @@
 	if p == nil || port < 0 || port > 0xFFFF {
 		return nil, os.EINVAL
 	}
-	sa := new(*syscall.SockaddrInet4);
+	sa := new(syscall.SockaddrInet4);
 	sa.len = syscall.SizeofSockaddrInet4;
 	sa.family = syscall.AF_INET;
 	sa.port[0] = byte(port>>8);
@@ -32,7 +32,7 @@
 	if p == nil || port < 0 || port > 0xFFFF {
 		return nil, os.EINVAL
 	}
-	sa := new(*syscall.SockaddrInet6);
+	sa := new(syscall.SockaddrInet6);
 	sa.len = syscall.SizeofSockaddrInet6;
 	sa.family = syscall.AF_INET6;
 	sa.port[0] = byte(port>>8);
diff --git a/src/lib/net/net_linux.go b/src/lib/net/net_linux.go
index 028e6e2..19ae0b6 100644
--- a/src/lib/net/net_linux.go
+++ b/src/lib/net/net_linux.go
@@ -16,7 +16,7 @@
 	if p == nil || port < 0 || port > 0xFFFF {
 		return nil, os.EINVAL
 	}
-	sa := new(*syscall.SockaddrInet4);
+	sa := new(syscall.SockaddrInet4);
 	sa.family = syscall.AF_INET;
 	sa.port[0] = byte(port>>8);
 	sa.port[1] = byte(port);
@@ -41,7 +41,7 @@
 		p = IPv6zero;
 	}
 
-	sa := new(*syscall.SockaddrInet6);
+	sa := new(syscall.SockaddrInet6);
 	sa.family = syscall.AF_INET6;
 	sa.port[0] = byte(port>>8);
 	sa.port[1] = byte(port);
diff --git a/src/lib/net/parse.go b/src/lib/net/parse.go
index b9ee185..904eb64 100644
--- a/src/lib/net/parse.go
+++ b/src/lib/net/parse.go
@@ -60,7 +60,7 @@
 	if err != nil {
 		return nil
 	}
-	return &File{fd, new([]byte, 1024)[0:0]};
+	return &File{fd, make([]byte, 1024)[0:0]};
 }
 
 package func ByteIndex(s string, c byte) int {
@@ -85,7 +85,7 @@
 
 // Split s at any bytes in t.
 package func SplitAtBytes(s string, t string) []string {
-	a := new([]string, 1+CountAnyByte(s, t));
+	a := make([]string, 1+CountAnyByte(s, t));
 	n := 0;
 	last := 0;
 	for i := 0; i < len(s); i++ {
diff --git a/src/lib/net/port.go b/src/lib/net/port.go
index efcbc0a..fbf5308 100644
--- a/src/lib/net/port.go
+++ b/src/lib/net/port.go
@@ -17,7 +17,7 @@
 var services map[string] map[string] int
 
 func ReadServices() {
-	services = new(map[string] map[string] int);
+	services = make(map[string] map[string] int);
 	file := Open("/etc/services");
 	for line, ok := file.ReadLine(); ok; line, ok = file.ReadLine() {
 		// "http 80/tcp www www-http # World Wide Web HTTP"
@@ -36,7 +36,7 @@
 		netw := portnet[j+1:len(portnet)];	// "tcp"
 		m, ok1 := services[netw];
 		if !ok1 {
-			m = new(map[string] int);
+			m = make(map[string] int);
 			services[netw] = m;
 		}
 		for i := 0; i < len(f); i++ {
diff --git a/src/lib/net/tcpserver_test.go b/src/lib/net/tcpserver_test.go
index e5520f5..730764c 100644
--- a/src/lib/net/tcpserver_test.go
+++ b/src/lib/net/tcpserver_test.go
@@ -36,7 +36,7 @@
 		if err != nil {
 			break;
 		}
-		echodone := new(chan int);
+		echodone := make(chan int);
 		go Echo(fd, echodone);
 		<-echodone;	// make sure Echo stops
 		l.Close();
@@ -67,8 +67,8 @@
 
 func DoTest(t *testing.T, network, listenaddr, dialaddr string) {
 	t.Logf("Test %s %s %s\n", network, listenaddr, dialaddr);
-	listening := new(chan int);
-	done := new(chan int);
+	listening := make(chan int);
+	done := make(chan int);
 	go Serve(t, network, listenaddr, listening, done);
 	<-listening;	// wait for server to start
 	Connect(t, network, dialaddr);