public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/18514] New: Alternate "asm" name ignored for function imported into namespace std
@ 2004-11-16 4:31 austern at apple dot com
2004-11-16 4:37 ` [Bug c++/18514] " pinskia at gcc dot gnu dot org
` (9 more replies)
0 siblings, 10 replies; 12+ messages in thread
From: austern at apple dot com @ 2004-11-16 4:31 UTC (permalink / raw)
To: gcc-bugs
Compile the following test case:
extern "C" {
typedef unsigned long size_t;
int snprintf(char * , size_t, const char * , ...) __asm("_fancy_snprintf");
}
namespace std { using ::snprintf; }
namespace std { void foo() { snprintf(0, 3, ""); } }
If you examine the assembly file or the .o file, you will see that we're invoking _snprintf. This is wrong.
We should be invoking _fancy_snprintf.
Note that it's important that we're importing into namespace std. If I change the name to something
else, the problem goes away.
--
Summary: Alternate "asm" name ignored for function imported into
namespace std
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: austern at apple dot com
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: powerpc-apple-darwin7.6.0
GCC host triplet: powerpc-apple-darwin7.6.0
GCC target triplet: powerpc-apple-darwin7.6.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18514
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/18514] Alternate "asm" name ignored for function imported into namespace std
2004-11-16 4:31 [Bug c++/18514] New: Alternate "asm" name ignored for function imported into namespace std austern at apple dot com
@ 2004-11-16 4:37 ` pinskia at gcc dot gnu dot org
2004-11-16 5:33 ` [Bug c++/18514] [3.4/4.0 Regression] " pinskia at gcc dot gnu dot org
` (8 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-11-16 4:37 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-16 04:37 -------
Confirmed on ppc-darwin but it works on x86-linux for some reason.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
GCC build triplet|powerpc-apple-darwin7.6.0 |
GCC host triplet|powerpc-apple-darwin7.6.0 |
Keywords| |wrong-code
Last reconfirmed|0000-00-00 00:00:00 |2004-11-16 04:37:01
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18514
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/18514] [3.4/4.0 Regression] Alternate "asm" name ignored for function imported into namespace std
2004-11-16 4:31 [Bug c++/18514] New: Alternate "asm" name ignored for function imported into namespace std austern at apple dot com
2004-11-16 4:37 ` [Bug c++/18514] " pinskia at gcc dot gnu dot org
@ 2004-11-16 5:33 ` pinskia at gcc dot gnu dot org
2004-11-27 0:21 ` [Bug c++/18514] [3.4/4.0 Regression] Alternate "asm" name ignored for redeclared builtin " neroden at gcc dot gnu dot org
` (7 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-11-16 5:33 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-16 05:33 -------
now I understand why it works on x86-linux, size_t is defined as unsigned int and not unsigned long.
It worked in 3.3.
The problem appeared between 20030301 and 20030302.
--
What |Removed |Added
----------------------------------------------------------------------------
Summary|Alternate "asm" name ignored|[3.4/4.0 Regression]
|for function imported into |Alternate "asm" name ignored
|namespace std |for function imported into
| |namespace std
Target Milestone|--- |3.4.4
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18514
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/18514] [3.4/4.0 Regression] Alternate "asm" name ignored for redeclared builtin function imported into namespace std
2004-11-16 4:31 [Bug c++/18514] New: Alternate "asm" name ignored for function imported into namespace std austern at apple dot com
2004-11-16 4:37 ` [Bug c++/18514] " pinskia at gcc dot gnu dot org
2004-11-16 5:33 ` [Bug c++/18514] [3.4/4.0 Regression] " pinskia at gcc dot gnu dot org
@ 2004-11-27 0:21 ` neroden at gcc dot gnu dot org
2004-11-29 20:56 ` austern at apple dot com
` (6 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: neroden at gcc dot gnu dot org @ 2004-11-27 0:21 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From neroden at gcc dot gnu dot org 2004-11-27 00:20 -------
In 3.4.2 (Debian's version), I can import into *any* namespace (xxx, for
instance) and get the same "problem". However, it *is* essential that the
function be "snprintf", and not "bar". fancy_snprintf is invoked if gcc is
invoked with -fno-builtin-snprintf.
So this looks like an issue with builtins; the builtin is not being overridden
by the explicit declaration. I believe this is semi-documented behavior,
though I suppose it could be documented better.
In 4.0.0, this indeed only happens when importing into std (otherwise
fancy_snprintf is used). It still must be "snprintf" rather than, for
instance, "bar", and the problem still goes away when -fno-builtin-snprintf
is used.
So it still seems to be a problem with builtins, but for some reason 4.0
treats importing a builtin into std differently from importing it into xxx,
while 3.4 doesn't (so this bug should be hit *more* in 3.4).
Resummarizing to note that this is strictly a builtin issue.
--
What |Removed |Added
----------------------------------------------------------------------------
Known to fail| |3.4.2 4.0.0
Last reconfirmed|2004-11-16 04:37:01 |2004-11-27 00:20:57
date| |
Summary|[3.4/4.0 Regression] |[3.4/4.0 Regression]
|Alternate "asm" name ignored|Alternate "asm" name ignored
|for function imported into |for redeclared builtin
|namespace std |function imported into
| |namespace std
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18514
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/18514] [3.4/4.0 Regression] Alternate "asm" name ignored for redeclared builtin function imported into namespace std
2004-11-16 4:31 [Bug c++/18514] New: Alternate "asm" name ignored for function imported into namespace std austern at apple dot com
` (2 preceding siblings ...)
2004-11-27 0:21 ` [Bug c++/18514] [3.4/4.0 Regression] Alternate "asm" name ignored for redeclared builtin " neroden at gcc dot gnu dot org
@ 2004-11-29 20:56 ` austern at apple dot com
2004-11-30 11:45 ` Gabriel Dos Reis
2004-11-30 11:46 ` gdr at integrable-solutions dot net
` (5 subsequent siblings)
9 siblings, 1 reply; 12+ messages in thread
From: austern at apple dot com @ 2004-11-29 20:56 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From austern at apple dot com 2004-11-29 20:56 -------
Yep, I see what the problem is now. When we create a builtin in C++, we create the declaration in both
the global namespace and namespace std. Later, when we see the declaration of snprintf in the global
namespace, we correctly set the assembler name of ::snprintf. We don't set the assembler name of ::
snprintf, since it's a separate declaration. Then we see the using-declaration, which is handled by
do_nonmember_using_decl. It sees that we have an snprintf in namespace std already, verifies that ::
snprintf and std::snprintf are compatible so this is not an error, and then just continues to use the
original declaration of std::snprintf that was created by builtin_function. Nothing ever sets the
assembler name of std::snprintf to match the one that got set for ::snprintf.
So what to do about this? In principle, I think the answer is that builtin_function is doing something
wrong by calling builtin_function_1 twice, once for the global namespace and once for namespace std.
If we really must define all builtins in namespace std (what's the rationale?), then at least we should do
it with a using-declaration instead of creating two entirely separate decls. This would help compile
time performance a little bit: builtin_function_1 is just expensive enough to show up on profiles.
If that's too radical a change given the current state of the compiler, then we could special-case builtins
in do_nonmember_using_decl to make sure that the assembler name gets copied correctly. This
wouldn't be hard. There's already some special-casing for builtins there.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18514
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Bug c++/18514] [3.4/4.0 Regression] Alternate "asm" name ignored for redeclared builtin function imported into namespace std
2004-11-29 20:56 ` austern at apple dot com
@ 2004-11-30 11:45 ` Gabriel Dos Reis
0 siblings, 0 replies; 12+ messages in thread
From: Gabriel Dos Reis @ 2004-11-30 11:45 UTC (permalink / raw)
To: gcc-bugzilla; +Cc: gcc-bugs
"austern at apple dot com" <gcc-bugzilla@gcc.gnu.org> writes:
| So what to do about this? In principle, I think the answer is that
| builtin_function is doing something wrong by calling
| builtin_function_1 twice, once for the global namespace and once for
| namespace std. If we really must define all builtins in namespace
| std (what's the rationale?), then at least we should do it with a
| using-declaration instead of creating two entirely separate decls.
| This would help compile
I believe what happened there is that it was an attempt to implement
the standard mandated semantics where names in <xxx.h> appears to be
using-declarations for names in <cxx> -- except that the actual
implementation gets everything wrong :-/
So the idea was that we get an artificial declaration in both :: and
std::. If we actually write a decl in std::, that is it; same if we
write it in ::. Except that the artificial declaration in :: should
have been a using-declaration for the "real" artificial declaration in
std::. And attributes and whatever should apply transparently to
both -- because they have extern "C" language specification. That is
what failed.
-- Gaby
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/18514] [3.4/4.0 Regression] Alternate "asm" name ignored for redeclared builtin function imported into namespace std
2004-11-16 4:31 [Bug c++/18514] New: Alternate "asm" name ignored for function imported into namespace std austern at apple dot com
` (3 preceding siblings ...)
2004-11-29 20:56 ` austern at apple dot com
@ 2004-11-30 11:46 ` gdr at integrable-solutions dot net
2004-12-09 0:43 ` pinskia at gcc dot gnu dot org
` (4 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: gdr at integrable-solutions dot net @ 2004-11-30 11:46 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From gdr at integrable-solutions dot net 2004-11-30 11:46 -------
Subject: Re: [3.4/4.0 Regression] Alternate "asm" name ignored for redeclared builtin function imported into namespace std
"austern at apple dot com" <gcc-bugzilla@gcc.gnu.org> writes:
| So what to do about this? In principle, I think the answer is that
| builtin_function is doing something wrong by calling
| builtin_function_1 twice, once for the global namespace and once for
| namespace std. If we really must define all builtins in namespace
| std (what's the rationale?), then at least we should do it with a
| using-declaration instead of creating two entirely separate decls.
| This would help compile
I believe what happened there is that it was an attempt to implement
the standard mandated semantics where names in <xxx.h> appears to be
using-declarations for names in <cxx> -- except that the actual
implementation gets everything wrong :-/
So the idea was that we get an artificial declaration in both :: and
std::. If we actually write a decl in std::, that is it; same if we
write it in ::. Except that the artificial declaration in :: should
have been a using-declaration for the "real" artificial declaration in
std::. And attributes and whatever should apply transparently to
both -- because they have extern "C" language specification. That is
what failed.
-- Gaby
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18514
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/18514] [3.4/4.0 Regression] Alternate "asm" name ignored for redeclared builtin function imported into namespace std
2004-11-16 4:31 [Bug c++/18514] New: Alternate "asm" name ignored for function imported into namespace std austern at apple dot com
` (4 preceding siblings ...)
2004-11-30 11:46 ` gdr at integrable-solutions dot net
@ 2004-12-09 0:43 ` pinskia at gcc dot gnu dot org
2004-12-09 21:07 ` cvs-commit at gcc dot gnu dot org
` (3 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-12-09 0:43 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2004-12-09 00:43 -------
Patch here: <http://gcc.gnu.org/ml/gcc-patches/2004-12/msg00645.html>.
--
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |patch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18514
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/18514] [3.4/4.0 Regression] Alternate "asm" name ignored for redeclared builtin function imported into namespace std
2004-11-16 4:31 [Bug c++/18514] New: Alternate "asm" name ignored for function imported into namespace std austern at apple dot com
` (5 preceding siblings ...)
2004-12-09 0:43 ` pinskia at gcc dot gnu dot org
@ 2004-12-09 21:07 ` cvs-commit at gcc dot gnu dot org
2004-12-09 21:24 ` [Bug c++/18514] [3.4 " pinskia at gcc dot gnu dot org
` (2 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-12-09 21:07 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2004-12-09 21:07 -------
Subject: Bug 18514
CVSROOT: /cvs/gcc
Module name: gcc
Changes by: austern@gcc.gnu.org 2004-12-09 21:07:01
Modified files:
gcc/cp : ChangeLog name-lookup.c
gcc/testsuite : ChangeLog
Added files:
gcc/testsuite/g++.dg/ext: builtin1.C builtin2.C builtin3.C
builtin4.C builtin5.C
Log message:
PR c++/18514
* name-lookup.c (do_nonmember_using_decl): A real function
declaration takes precedence over an anticipated declaration.
* g++.dg/ext/builtin1.C: New
* g++.dg/ext/builtin2.C: New
* g++.dg/ext/builtin3.C: New
* g++.dg/ext/builtin4.C: New
* g++.dg/ext/builtin5.C: New
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4526&r2=1.4527
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/name-lookup.c.diff?cvsroot=gcc&r1=1.100&r2=1.101
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4731&r2=1.4732
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/ext/builtin1.C.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/ext/builtin2.C.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/ext/builtin3.C.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/ext/builtin4.C.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/ext/builtin5.C.diff?cvsroot=gcc&r1=NONE&r2=1.1
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18514
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/18514] [3.4 Regression] Alternate "asm" name ignored for redeclared builtin function imported into namespace std
2004-11-16 4:31 [Bug c++/18514] New: Alternate "asm" name ignored for function imported into namespace std austern at apple dot com
` (6 preceding siblings ...)
2004-12-09 21:07 ` cvs-commit at gcc dot gnu dot org
@ 2004-12-09 21:24 ` pinskia at gcc dot gnu dot org
2004-12-09 22:52 ` cvs-commit at gcc dot gnu dot org
2005-05-19 17:33 ` mmitchel at gcc dot gnu dot org
9 siblings, 0 replies; 12+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-12-09 21:24 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2004-12-09 21:24 -------
Fixed at least on the mainline.
--
What |Removed |Added
----------------------------------------------------------------------------
Known to fail|3.4.2 4.0.0 |3.4.2
Known to work| |4.0.0
Summary|[3.4/4.0 Regression] |[3.4 Regression] Alternate
|Alternate "asm" name ignored|"asm" name ignored for
|for redeclared builtin |redeclared builtin function
|function imported into |imported into namespace std
|namespace std |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18514
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/18514] [3.4 Regression] Alternate "asm" name ignored for redeclared builtin function imported into namespace std
2004-11-16 4:31 [Bug c++/18514] New: Alternate "asm" name ignored for function imported into namespace std austern at apple dot com
` (7 preceding siblings ...)
2004-12-09 21:24 ` [Bug c++/18514] [3.4 " pinskia at gcc dot gnu dot org
@ 2004-12-09 22:52 ` cvs-commit at gcc dot gnu dot org
2005-05-19 17:33 ` mmitchel at gcc dot gnu dot org
9 siblings, 0 replies; 12+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-12-09 22:52 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2004-12-09 22:52 -------
Subject: Bug 18514
CVSROOT: /cvs/gcc
Module name: gcc
Branch: apple-ppc-branch
Changes by: austern@gcc.gnu.org 2004-12-09 22:52:32
Modified files:
gcc/cp : ChangeLog name-lookup.c
gcc/testsuite : ChangeLog
Added files:
gcc/testsuite/g++.dg/ext: builtin1.C builtin2.C builtin3.C
builtin4.C builtin5.C
Log message:
Radar 3845695: iostream not long double savvy, but printf is
Ported from FSF mainline, where it was a fix for http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18514 and reviewed by Nathan Sidwell
Reviewed for inclusion in apple-ppc-branch by Geoff Keating and Mike Stump
PR c++/18514
* name-lookup.c (do_nonmember_using_decl): A real function
declaration takes precedence over an anticipated declaration.
* g++.dg/ext/builtin1.C: New
* g++.dg/ext/builtin2.C: New
* g++.dg/ext/builtin3.C: New
* g++.dg/ext/builtin4.C: New
* g++.dg/ext/builtin5.C: New
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.2849.2.70.2.7&r2=1.2849.2.70.2.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/name-lookup.c.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.4.2.14.2.7&r2=1.4.2.14.2.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1936.2.54.2.12&r2=1.1936.2.54.2.13
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/ext/builtin1.C.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/ext/builtin2.C.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/ext/builtin3.C.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/ext/builtin4.C.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/ext/builtin5.C.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=NONE&r2=1.1.2.1
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18514
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/18514] [3.4 Regression] Alternate "asm" name ignored for redeclared builtin function imported into namespace std
2004-11-16 4:31 [Bug c++/18514] New: Alternate "asm" name ignored for function imported into namespace std austern at apple dot com
` (8 preceding siblings ...)
2004-12-09 22:52 ` cvs-commit at gcc dot gnu dot org
@ 2005-05-19 17:33 ` mmitchel at gcc dot gnu dot org
9 siblings, 0 replies; 12+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2005-05-19 17:33 UTC (permalink / raw)
To: gcc-bugs
--
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|3.4.4 |3.4.5
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18514
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2005-05-19 17:33 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-11-16 4:31 [Bug c++/18514] New: Alternate "asm" name ignored for function imported into namespace std austern at apple dot com
2004-11-16 4:37 ` [Bug c++/18514] " pinskia at gcc dot gnu dot org
2004-11-16 5:33 ` [Bug c++/18514] [3.4/4.0 Regression] " pinskia at gcc dot gnu dot org
2004-11-27 0:21 ` [Bug c++/18514] [3.4/4.0 Regression] Alternate "asm" name ignored for redeclared builtin " neroden at gcc dot gnu dot org
2004-11-29 20:56 ` austern at apple dot com
2004-11-30 11:45 ` Gabriel Dos Reis
2004-11-30 11:46 ` gdr at integrable-solutions dot net
2004-12-09 0:43 ` pinskia at gcc dot gnu dot org
2004-12-09 21:07 ` cvs-commit at gcc dot gnu dot org
2004-12-09 21:24 ` [Bug c++/18514] [3.4 " pinskia at gcc dot gnu dot org
2004-12-09 22:52 ` cvs-commit at gcc dot gnu dot org
2005-05-19 17:33 ` mmitchel at gcc dot gnu dot org
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).