public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* libgo patch committed: Update to weekly.2012-01-20
@ 2012-01-25 21:54 Ian Lance Taylor
  2012-01-27 10:56 ` Rainer Orth
  0 siblings, 1 reply; 5+ messages in thread
From: Ian Lance Taylor @ 2012-01-25 21:54 UTC (permalink / raw)
  To: gcc-patches, gofrontend-dev

[-- Attachment #1: Type: text/plain, Size: 252 bytes --]

I have committed a patch to libgo to update to the weekly.2012-01-20
release.  As usual this e-mail message only includes changes to files
specific to gccgo.  Bootstrapped and ran Go testsuite on
x86_64-unknown-linux-gnu.  Committed to mainline.

Ian


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: patch --]
[-- Type: text/x-diff, Size: 6455 bytes --]

diff -r dd654495ccfb libgo/MERGE
--- a/libgo/MERGE	Wed Jan 25 11:55:19 2012 -0800
+++ b/libgo/MERGE	Wed Jan 25 13:45:23 2012 -0800
@@ -1,4 +1,4 @@
-354b17404643
+9f2be4fbbf69
 
 The first line of this file holds the Mercurial revision number of the
 last merge done from the master library sources.
diff -r dd654495ccfb libgo/Makefile.am
--- a/libgo/Makefile.am	Wed Jan 25 11:55:19 2012 -0800
+++ b/libgo/Makefile.am	Wed Jan 25 13:45:23 2012 -0800
@@ -197,6 +197,16 @@
 toolexeclibgocryptox509_DATA = \
 	crypto/x509/pkix.gox
 
+toolexeclibgodatabasedir = $(toolexeclibgodir)/database
+
+toolexeclibgodatabase_DATA = \
+	database/sql.gox
+
+toolexeclibgodatabasesqldir = $(toolexeclibgodatabasedir)/sql
+
+toolexeclibgodatabasesql_DATA = \
+	database/sql/driver.gox
+
 toolexeclibgodebugdir = $(toolexeclibgodir)/debug
 
 toolexeclibgodebug_DATA = \
@@ -237,15 +247,10 @@
 	exp/norm.gox \
 	exp/proxy.gox \
 	exp/spdy.gox \
-	exp/sql.gox \
 	exp/ssh.gox \
 	exp/terminal.gox \
-	exp/types.gox
-
-toolexeclibgoexpsqldir = $(toolexeclibgoexpdir)/sql
-
-toolexeclibgoexpsql_DATA = \
-	exp/sql/driver.gox
+	exp/types.gox \
+	exp/utf8string.gox
 
 toolexeclibgogodir = $(toolexeclibgodir)/go
 
@@ -717,6 +722,7 @@
 	go/net/dnsclient_unix.go \
 	go/net/dnsconfig.go \
 	go/net/dnsmsg.go \
+	go/net/doc.go \
 	$(go_net_newpollserver_file) \
 	go/net/fd.go \
 	$(go_net_fd_os_file) \
@@ -793,6 +799,7 @@
 go_os_files = \
 	$(go_os_dir_file) \
 	go/os/dir.go \
+	go/os/doc.go \
 	go/os/env.go \
 	go/os/error.go \
 	go/os/error_posix.go \
@@ -1005,7 +1012,8 @@
 go_crypto_ecdsa_files = \
 	go/crypto/ecdsa/ecdsa.go
 go_crypto_elliptic_files = \
-	go/crypto/elliptic/elliptic.go
+	go/crypto/elliptic/elliptic.go \
+	go/crypto/elliptic/p224.go
 go_crypto_hmac_files = \
 	go/crypto/hmac/hmac.go
 go_crypto_md4_files = \
@@ -1094,6 +1102,14 @@
 go_crypto_x509_pkix_files = \
 	go/crypto/x509/pkix/pkix.go
 
+go_database_sql_files = \
+	go/database/sql/convert.go \
+	go/database/sql/sql.go
+
+go_database_sql_driver_files = \
+	go/database/sql/driver/driver.go \
+	go/database/sql/driver/types.go
+
 go_debug_dwarf_files = \
 	go/debug/dwarf/buf.go \
 	go/debug/dwarf/const.go \
@@ -1179,9 +1195,6 @@
 	go/exp/spdy/read.go \
 	go/exp/spdy/types.go \
 	go/exp/spdy/write.go
-go_exp_sql_files = \
-	go/exp/sql/convert.go \
-	go/exp/sql/sql.go
 go_exp_ssh_files = \
 	go/exp/ssh/channel.go \
 	go/exp/ssh/cipher.go \
@@ -1205,10 +1218,8 @@
 	go/exp/types/gcimporter.go \
 	go/exp/types/types.go \
 	go/exp/types/universe.go
-
-go_exp_sql_driver_files = \
-	go/exp/sql/driver/driver.go \
-	go/exp/sql/driver/types.go
+go_exp_utf8string_files = \
+	go/exp/utf8string/string.go
 
 go_go_ast_files = \
 	go/go/ast/ast.go \
@@ -1467,7 +1478,6 @@
 go_unicode_utf16_files = \
 	go/unicode/utf16/utf16.go
 go_unicode_utf8_files = \
-	go/unicode/utf8/string.go \
 	go/unicode/utf8/utf8.go
 
 # Define Syscall and Syscall6.
@@ -1751,6 +1761,8 @@
 	crypto/openpgp/packet.lo \
 	crypto/openpgp/s2k.lo \
 	crypto/x509/pkix.lo \
+	database/sql.lo \
+	database/sql/driver.lo \
 	debug/dwarf.lo \
 	debug/elf.lo \
 	debug/gosym.lo \
@@ -1772,11 +1784,10 @@
 	exp/norm.lo \
 	exp/proxy.lo \
 	exp/spdy.lo \
-	exp/sql.lo \
 	exp/ssh.lo \
 	exp/terminal.lo \
 	exp/types.lo \
-	exp/sql/driver.lo \
+	exp/utf8string.lo \
 	html/template.lo \
 	go/ast.lo \
 	go/build.lo \
@@ -2646,6 +2657,26 @@
 	@$(CHECK)
 .PHONY: crypto/x509/pkix/check
 
+@go_include@ database/sql.lo.dep
+database/sql.lo.dep: $(go_database_sql_files)
+	$(BUILDDEPS)
+database/sql.lo: $(go_database_sql_files)
+	$(BUILDPACKAGE)
+database/sql/check: $(CHECK_DEPS)
+	@$(MKDIR_P) database/sql
+	@$(CHECK)
+.PHONY: database/sql/check
+
+@go_include@ database/sql/driver.lo.dep
+database/sql/driver.lo.dep: $(go_database_sql_driver_files)
+	$(BUILDDEPS)
+database/sql/driver.lo: $(go_database_sql_driver_files)
+	$(BUILDPACKAGE)
+database/sql/driver/check: $(CHECK_DEPS)
+	@$(MKDIR_P) database/sql/driver
+	@$(CHECK)
+.PHONY: database/sql/driver/check
+
 @go_include@ debug/dwarf.lo.dep
 debug/dwarf.lo.dep: $(go_debug_dwarf_files)
 	$(BUILDDEPS)
@@ -2856,16 +2887,6 @@
 	@$(CHECK)
 .PHONY: exp/spdy/check
 
-@go_include@ exp/sql.lo.dep
-exp/sql.lo.dep: $(go_exp_sql_files)
-	$(BUILDDEPS)
-exp/sql.lo: $(go_exp_sql_files)
-	$(BUILDPACKAGE)
-exp/sql/check: $(CHECK_DEPS)
-	@$(MKDIR_P) exp/sql
-	@$(CHECK)
-.PHONY: exp/sql/check
-
 @go_include@ exp/ssh.lo.dep
 exp/ssh.lo.dep: $(go_exp_ssh_files)
 	$(BUILDDEPS)
@@ -2896,6 +2917,16 @@
 	@$(CHECK)
 .PHONY: exp/types/check
 
+@go_include@ exp/utf8string.lo.dep
+exp/utf8string.lo.dep: $(go_exp_utf8string_files)
+	$(BUILDDEPS)
+exp/utf8string.lo: $(go_exp_utf8string_files)
+	$(BUILDPACKAGE)
+exp/utf8string/check: $(CHECK_DEPS)
+	@$(MKDIR_P) exp/utf8string
+	@$(CHECK)
+.PHONY: exp/utf8string/check
+
 @go_include@ exp/inotify.lo.dep
 exp/inotify.lo.dep: $(go_exp_inotify_files)
 	$(BUILDDEPS)
@@ -2906,16 +2937,6 @@
 	@$(CHECK)
 .PHONY: exp/inotify/check
 
-@go_include@ exp/sql/driver.lo.dep
-exp/sql/driver.lo.dep: $(go_exp_sql_driver_files)
-	$(BUILDDEPS)
-exp/sql/driver.lo: $(go_exp_sql_driver_files)
-	$(BUILDPACKAGE)
-exp/sql/driver/check: $(CHECK_DEPS)
-	@$(MKDIR_P) exp/sql/driver
-	@$(CHECK)
-.PHONY: exp/sql/driver/check
-
 @go_include@ html/template.lo.dep
 html/template.lo.dep: $(go_html_template_files)
 	$(BUILDDEPS)
@@ -3670,6 +3691,12 @@
 crypto/x509/pkix.gox: crypto/x509/pkix.lo
 	$(BUILDGOX)
 
+database/sql.gox: database/sql.lo
+	$(BUILDGOX)
+
+database/sql/driver.gox: database/sql/driver.lo
+	$(BUILDGOX)
+
 debug/dwarf.gox: debug/dwarf.lo
 	$(BUILDGOX)
 debug/elf.gox: debug/elf.lo
@@ -3716,16 +3743,13 @@
 	$(BUILDGOX)
 exp/spdy.gox: exp/spdy.lo
 	$(BUILDGOX)
-exp/sql.gox: exp/sql.lo
-	$(BUILDGOX)
 exp/ssh.gox: exp/ssh.lo
 	$(BUILDGOX)
 exp/terminal.gox: exp/terminal.lo
 	$(BUILDGOX)
 exp/types.gox: exp/types.lo
 	$(BUILDGOX)
-
-exp/sql/driver.gox: exp/sql/driver.lo
+exp/utf8string.gox: exp/utf8string.lo	
 	$(BUILDGOX)
 
 html/template.gox: html/template.lo
@@ -3941,6 +3965,8 @@
 	crypto/openpgp/elgamal/check \
 	crypto/openpgp/packet/check \
 	crypto/openpgp/s2k/check \
+	database/sql/check \
+	database/sql/driver/check \
 	debug/dwarf/check \
 	debug/elf/check \
 	debug/macho/check \
@@ -3962,9 +3988,9 @@
 	exp/norm/check \
 	exp/proxy/check \
 	exp/spdy/check \
-	exp/sql/check \
 	exp/ssh/check \
 	exp/terminal/check \
+	exp/utf8string/check \
 	html/template/check \
 	go/ast/check \
 	$(go_build_check_omitted_since_it_calls_6g) \

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: libgo patch committed: Update to weekly.2012-01-20
  2012-01-25 21:54 libgo patch committed: Update to weekly.2012-01-20 Ian Lance Taylor
@ 2012-01-27 10:56 ` Rainer Orth
  2012-01-27 12:54   ` Rainer Orth
  2012-01-27 22:35   ` Ian Lance Taylor
  0 siblings, 2 replies; 5+ messages in thread
From: Rainer Orth @ 2012-01-27 10:56 UTC (permalink / raw)
  To: Ian Lance Taylor; +Cc: gcc-patches, gofrontend-dev

[-- Attachment #1: Type: text/plain, Size: 2933 bytes --]

Ian Lance Taylor <iant@google.com> writes:

> I have committed a patch to libgo to update to the weekly.2012-01-20
> release.  As usual this e-mail message only includes changes to files
> specific to gccgo.  Bootstrapped and ran Go testsuite on
> x86_64-unknown-linux-gnu.  Committed to mainline.

This patch (or the previous one, I haven't checked in detail) caused a
couple of problems on Solaris:

/vol/gcc/src/hg/trunk/local/libgo/go/syscall/exec_bsd.go:10:9: error: imported and not used: runtime

  Even after fixing all subsequent errors, runtime isn't used.

/vol/gcc/src/hg/trunk/local/libgo/go/syscall/exec_bsd.go:61:10: error: reference to undefined name 'raw_trace'

	// Enable tracing if requested.
	if sys.Ptrace {
		err1 = raw_trace(_PTRACE_TRACEME, 0, nil, nil)

  This needs to be raw_ptrace instead, it seems.

/vol/gcc/src/hg/trunk/local/libgo/go/syscall/exec_bsd.go:156:31: error: reference to undefined name 'F_CLOEXEC'

			raw_fcntl(nextfd, F_SETFD, F_CLOEXEC)

  This is rather spelled FD_CLOEXEC.

/vol/gcc/src/hg/trunk/local/libgo/go/syscall/exec_bsd.go:199:26: error: reference to undefined name 'IOTCNOTTY'

		_, err1 = raw_ioctl(0, IOTCNOTTY, 0)

  Doesn't exist either, typo for TIOCNOTTY, it seems.

/vol/gcc/src/hg/trunk/local/libgo/go/syscall/exec_bsd.go:207:13: error: not enough arguments

		_, err1 = raw_ioctl(TIOCSCTTY, 0)

  Missing 0 arg.

/vol/gcc/src/hg/trunk/local/libgo/go/os/sys_uname.go:11:1: error: redefinition of 'Hostname'

  Need hostname() here

/vol/gcc/src/hg/trunk/local/libgo/go/os/doc.go:15:1: note: previous definition of 'Hostname' was here
/vol/gcc/src/hg/trunk/local/libgo/go/os/doc.go:16:9: error: reference to undefined name 'hostname'

After those fixes, libgo builds again on Solaris 10/x86 and 11/SPARC.

On Solaris 8/x86, there's more:

/vol/gcc/src/hg/trunk/local/libgo/runtime/go-print.c: In function '__go_print_do
uble':
/vol/gcc/src/hg/trunk/local/libgo/runtime/go-print.c:61:3: error: implicit decla
ration of function 'isinf' [-Werror=implicit-function-declaration]
cc1: all warnings being treated as errors

  There's no isinf in system headers, I've chosen to use __builtin_isinf
  instead.

Undefined                       first referenced
 symbol                             in file
runtime_goenvs                      /var/gcc/regression/trunk/10-gcc/build/i386-pc-solaris2.10/libgo/.libs/libgo.so

  Currently defined in runtime/thread-linux.c only, need to add to
  thread-sema.c, too.

/vol/gcc/src/hg/trunk/local/libgo/go/net/sockoptip_linux.go:95:69: error: refere
nce to undefined identifier 'syscall.IP_PKTINFO'
make[4]: *** [net/net.lo] Error 1

  Provide fallback definition via mksysinfo.sh.

With those changes, libgo also builds on Solaris 8/x86 again, but lots
of undefined references to C99 math functions remain, so the result is
pretty useless.

I'm also checking IRIX 6.5 right now.

This patch is what I'm using for Solaris.

	Rainer



[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: libgo-sol2.patch --]
[-- Type: text/x-patch, Size: 2810 bytes --]

diff --git a/libgo/go/os/sys_uname.go b/libgo/go/os/sys_uname.go
--- a/libgo/go/os/sys_uname.go
+++ b/libgo/go/os/sys_uname.go
@@ -8,7 +8,7 @@ package os
 
 import "syscall"
 
-func Hostname() (name string, err error) {
+func hostname() (name string, err error) {
 	var u syscall.Utsname
 	if errno := syscall.Uname(&u); errno != nil {
 		return "", NewSyscallError("uname", errno)
diff --git a/libgo/go/syscall/exec_bsd.go b/libgo/go/syscall/exec_bsd.go
--- a/libgo/go/syscall/exec_bsd.go
+++ b/libgo/go/syscall/exec_bsd.go
@@ -7,7 +7,6 @@
 package syscall
 
 import (
-	"runtime"
 	"unsafe"
 )
 
@@ -58,7 +57,7 @@ func forkAndExecInChild(argv0 *byte, arg
 
 	// Enable tracing if requested.
 	if sys.Ptrace {
-		err1 = raw_trace(_PTRACE_TRACEME, 0, nil, nil)
+		err1 = raw_ptrace(_PTRACE_TRACEME, 0, nil, nil)
 		if err1 != 0 {
 			goto childerror
 		}
@@ -153,7 +152,7 @@ func forkAndExecInChild(argv0 *byte, arg
 				err1 = err2.(Errno)
 				goto childerror
 			}
-			raw_fcntl(nextfd, F_SETFD, F_CLOEXEC)
+			raw_fcntl(nextfd, F_SETFD, FD_CLOEXEC)
 			fd[i] = nextfd
 			nextfd++
 			if nextfd == pipe { // don't stomp on pipe
@@ -196,7 +195,7 @@ func forkAndExecInChild(argv0 *byte, arg
 
 	// Detach fd 0 from tty
 	if sys.Noctty {
-		_, err1 = raw_ioctl(0, IOTCNOTTY, 0)
+		_, err1 = raw_ioctl(0, TIOCNOTTY, 0)
 		if err1 != 0 {
 			goto childerror
 		}
@@ -204,7 +203,7 @@ func forkAndExecInChild(argv0 *byte, arg
 
 	// Make fd 0 the tty
 	if sys.Setctty {
-		_, err1 = raw_ioctl(TIOCSCTTY, 0)
+		_, err1 = raw_ioctl(0, TIOCSCTTY, 0)
 		if err1 != 0 {
 			goto childerror
 		}
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
--- a/libgo/mksysinfo.sh
+++ b/libgo/mksysinfo.sh
@@ -192,7 +192,7 @@ grep '^const _SHUT_' gen-sysinfo.go |
   sed -e 's/^\(const \)_\(SHUT[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT}
 
 # The net package requires some const definitions.
-for m in IPV6_V6ONLY IPPROTO_IPV6 IPV6_JOIN_GROUP IPV6_LEAVE_GROUP IPV6_TCLASS; do
+for m in IP_PKTINFO IPV6_V6ONLY IPPROTO_IPV6 IPV6_JOIN_GROUP IPV6_LEAVE_GROUP IPV6_TCLASS; do
   if ! grep "^const $m " ${OUT} >/dev/null 2>&1; then
     echo "const $m = 0" >> ${OUT}
   fi
diff --git a/libgo/runtime/go-print.c b/libgo/runtime/go-print.c
--- a/libgo/runtime/go-print.c
+++ b/libgo/runtime/go-print.c
@@ -58,7 +58,7 @@ __go_print_double (double v)
       fputs ("NaN", stderr);
       return;
     }
-  if (isinf (v))
+  if (__builtin_isinf (v))
     {
       putc (v < 0 ? '-' : '+', stderr);
       fputs ("Inf", stderr);
diff --git a/libgo/runtime/thread-sema.c b/libgo/runtime/thread-sema.c
--- a/libgo/runtime/thread-sema.c
+++ b/libgo/runtime/thread-sema.c
@@ -136,6 +136,12 @@ runtime_semawakeup (M *mp)
 }
 
 void
-runtime_osinit(void)
+runtime_osinit (void)
 {
 }
+
+void
+runtime_goenvs (void)
+{
+  runtime_goenvs_unix ();
+}

[-- Attachment #3: Type: text/plain, Size: 144 bytes --]



-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: libgo patch committed: Update to weekly.2012-01-20
  2012-01-27 10:56 ` Rainer Orth
@ 2012-01-27 12:54   ` Rainer Orth
  2012-01-27 22:37     ` Ian Lance Taylor
  2012-01-27 22:35   ` Ian Lance Taylor
  1 sibling, 1 reply; 5+ messages in thread
From: Rainer Orth @ 2012-01-27 12:54 UTC (permalink / raw)
  To: Ian Lance Taylor; +Cc: gcc-patches, gofrontend-dev

[-- Attachment #1: Type: text/plain, Size: 875 bytes --]

Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> writes:

> I'm also checking IRIX 6.5 right now.

IRIX does need one additional change indeed.  Without it, I get

/vol/gcc/src/hg/trunk/local/libgo/go/net/sockoptip.go:79:74: error: reference to undefined identifier 'syscall.IPV6_UNICAST_HOPS'
/vol/gcc/src/hg/trunk/local/libgo/go/net/sockoptip.go:99:74: error: reference to undefined identifier 'syscall.IPV6_MULTICAST_IF'
/vol/gcc/src/hg/trunk/local/libgo/go/net/sockoptip.go:130:74: error: reference to undefined identifier 'syscall.IPV6_MULTICAST_HOPS'
/vol/gcc/src/hg/trunk/local/libgo/go/net/sockoptip.go:150:74: error: reference to undefined identifier 'syscall.IPV6_MULTICAST_LOOP'

Fixed as follows (the comment explains why done this way).

With that patch, I can at least link libgo.so and link a trivial Go
program.  Full bootstrap with run over the weekend.

	Rainer



[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: socket_irix.patch --]
[-- Type: text/x-patch, Size: 560 bytes --]

diff --git a/libgo/go/syscall/socket_irix.go b/libgo/go/syscall/socket_irix.go
--- a/libgo/go/syscall/socket_irix.go
+++ b/libgo/go/syscall/socket_irix.go
@@ -119,3 +119,12 @@ const (
 func anyToSockaddrOS(rsa *RawSockaddrAny) (Sockaddr, error) {
 	return nil, EAFNOSUPPORT
 }
+
+// <netinet/in.h.h> only provides IPV6_* etc. if  _NO_XOPEN4 && _NO_XOPEN5,
+// so as above simply provide them here.
+const (
+	IPV6_UNICAST_HOPS   = 48
+	IPV6_MULTICAST_IF   = IP_MULTICAST_IF
+	IPV6_MULTICAST_HOPS = IP_MULTICAST_TTL
+	IPV6_MULTICAST_LOOP = IP_MULTICAST_LOOP
+)

[-- Attachment #3: Type: text/plain, Size: 144 bytes --]



-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: libgo patch committed: Update to weekly.2012-01-20
  2012-01-27 10:56 ` Rainer Orth
  2012-01-27 12:54   ` Rainer Orth
@ 2012-01-27 22:35   ` Ian Lance Taylor
  1 sibling, 0 replies; 5+ messages in thread
From: Ian Lance Taylor @ 2012-01-27 22:35 UTC (permalink / raw)
  To: Rainer Orth; +Cc: gcc-patches, gofrontend-dev

Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> writes:

> This patch is what I'm using for Solaris.

Thanks.

Committed.

Ian

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: libgo patch committed: Update to weekly.2012-01-20
  2012-01-27 12:54   ` Rainer Orth
@ 2012-01-27 22:37     ` Ian Lance Taylor
  0 siblings, 0 replies; 5+ messages in thread
From: Ian Lance Taylor @ 2012-01-27 22:37 UTC (permalink / raw)
  To: Rainer Orth; +Cc: gcc-patches, gofrontend-dev

Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> writes:

> Fixed as follows (the comment explains why done this way).
>
> With that patch, I can at least link libgo.so and link a trivial Go
> program.  Full bootstrap with run over the weekend.

Thanks.

Committed.

Ian

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-01-27 22:37 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-01-25 21:54 libgo patch committed: Update to weekly.2012-01-20 Ian Lance Taylor
2012-01-27 10:56 ` Rainer Orth
2012-01-27 12:54   ` Rainer Orth
2012-01-27 22:37     ` Ian Lance Taylor
2012-01-27 22:35   ` Ian Lance Taylor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).