* virtual inheritance: optimization for empty objects @ 1999-03-04 12:56 Alexander Schiemann 1999-03-31 23:46 ` Alexander Schiemann 0 siblings, 1 reply; 20+ messages in thread From: Alexander Schiemann @ 1999-03-04 12:56 UTC (permalink / raw) To: egcs ^ permalink raw reply [flat|nested] 20+ messages in thread
* virtual inheritance: optimization for empty objects 1999-03-04 12:56 virtual inheritance: optimization for empty objects Alexander Schiemann @ 1999-03-31 23:46 ` Alexander Schiemann 0 siblings, 0 replies; 20+ messages in thread From: Alexander Schiemann @ 1999-03-31 23:46 UTC (permalink / raw) To: egcs ^ permalink raw reply [flat|nested] 20+ messages in thread
* virtual inheritance: optimization for empty objects @ 1999-03-04 13:05 Alexander Schiemann 1999-03-04 13:39 ` Alexandre Oliva 1999-03-31 23:46 ` Alexander Schiemann 0 siblings, 2 replies; 20+ messages in thread From: Alexander Schiemann @ 1999-03-04 13:05 UTC (permalink / raw) To: egcs Hi, deriving a class B from class A without adding a data-member does not increase the size. But with virtual inheritance egcs-1.1.1 does not take advantage of such a situation. Of course, some virtual pointer had to be added. But we need only the locations of non-empty blocks of data assigned to some virtual bases. The easiest example is the following multiple derivation: struct A{ int a; // some data }; struct B1:virtual A{}; // no additional data struct B2:virtual A{}; // no additional data struct C:public B1,public B2{}; We get the sizes: sizeof A=4 sizeof B1=8 sizeof B2=8 sizeof C=12 So we have two redundant virtual pointers in C. We could let B1 and B2 overlap in C (both consist of the same virtual pointer). With additional levels of virtual bases the possible gain increases quickly. Even if only some of the derived classes do not add data it seems possible (though not entirely trivial) to get rid of many of the virtual pointers. I think that quite frequently abstract classes consist only of virtual functions. I encountered this situation modeling hierarchies of mathematical objects (that have a partial order of generalization). In this context every base-class occurs once in an object and only the lowest base-class and the most derived classes have some data. Now I would like to know - does this suggestion conform with the standard (two base subobjects having the same address)? I checked it, but perhaps I missed some requirement. - are there compilers that implement this kind of layout? Thanks Alexander Schiemann ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: virtual inheritance: optimization for empty objects 1999-03-04 13:05 Alexander Schiemann @ 1999-03-04 13:39 ` Alexandre Oliva 1999-03-31 23:46 ` Alexandre Oliva 1999-03-31 23:46 ` Alexander Schiemann 1 sibling, 1 reply; 20+ messages in thread From: Alexandre Oliva @ 1999-03-04 13:39 UTC (permalink / raw) To: Alexander Schiemann; +Cc: egcs [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 535 bytes --] On Mar 4, 1999, Alexander Schiemann <aschiem@count.math.uni-sb.de> wrote: > deriving a class B from class A without adding a data-member > does not increase the size. > But with virtual inheritance egcs-1.1.1 does not take advantage > of such a situation. The latest snapshots will, if you compile with -fnew-abi. -- Alexandre Oliva http://www.dcc.unicamp.br/~oliva aoliva@{acm.org,computer.org} oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org} Instituto de Computação, Universidade Estadual de Campinas, SP, Brasil ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: virtual inheritance: optimization for empty objects 1999-03-04 13:39 ` Alexandre Oliva @ 1999-03-31 23:46 ` Alexandre Oliva 0 siblings, 0 replies; 20+ messages in thread From: Alexandre Oliva @ 1999-03-31 23:46 UTC (permalink / raw) To: Alexander Schiemann; +Cc: egcs [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 536 bytes --] On Mar 4, 1999, Alexander Schiemann <aschiem@count.math.uni-sb.de> wrote: > deriving a class B from class A without adding a data-member > does not increase the size. > But with virtual inheritance egcs-1.1.1 does not take advantage > of such a situation. The latest snapshots will, if you compile with -fnew-abi. -- Alexandre Oliva http://www.dcc.unicamp.br/~oliva aoliva@{acm.org,computer.org} oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org} Instituto de Computação, Universidade Estadual de Campinas, SP, Brasil ^ permalink raw reply [flat|nested] 20+ messages in thread
* virtual inheritance: optimization for empty objects 1999-03-04 13:05 Alexander Schiemann 1999-03-04 13:39 ` Alexandre Oliva @ 1999-03-31 23:46 ` Alexander Schiemann 1 sibling, 0 replies; 20+ messages in thread From: Alexander Schiemann @ 1999-03-31 23:46 UTC (permalink / raw) To: egcs Hi, deriving a class B from class A without adding a data-member does not increase the size. But with virtual inheritance egcs-1.1.1 does not take advantage of such a situation. Of course, some virtual pointer had to be added. But we need only the locations of non-empty blocks of data assigned to some virtual bases. The easiest example is the following multiple derivation: struct A{ int a; // some data }; struct B1:virtual A{}; // no additional data struct B2:virtual A{}; // no additional data struct C:public B1,public B2{}; We get the sizes: sizeof A=4 sizeof B1=8 sizeof B2=8 sizeof C=12 So we have two redundant virtual pointers in C. We could let B1 and B2 overlap in C (both consist of the same virtual pointer). With additional levels of virtual bases the possible gain increases quickly. Even if only some of the derived classes do not add data it seems possible (though not entirely trivial) to get rid of many of the virtual pointers. I think that quite frequently abstract classes consist only of virtual functions. I encountered this situation modeling hierarchies of mathematical objects (that have a partial order of generalization). In this context every base-class occurs once in an object and only the lowest base-class and the most derived classes have some data. Now I would like to know - does this suggestion conform with the standard (two base subobjects having the same address)? I checked it, but perhaps I missed some requirement. - are there compilers that implement this kind of layout? Thanks Alexander Schiemann ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <199903042105.WAA19132.cygnus.egcs@count.math.uni-sb.de>]
* Re: virtual inheritance: optimization for empty objects [not found] <199903042105.WAA19132.cygnus.egcs@count.math.uni-sb.de> @ 1999-03-06 17:09 ` Jason Merrill 1999-03-31 23:46 ` Jason Merrill 0 siblings, 1 reply; 20+ messages in thread From: Jason Merrill @ 1999-03-06 17:09 UTC (permalink / raw) To: Alexander Schiemann; +Cc: egcs >>>>> Alexander Schiemann <aschiem@count.math.uni-sb.de> writes: > - does this suggestion conform with the standard (two base subobjects > having the same address)? I checked it, but perhaps > I missed some requirement. Yes. Only base subobjects of the same type are required to have different addresses. > - are there compilers that implement this kind of layout? I don't know. IBM's may. They have a patent on having a vbase with no data members share space with a derived class, which would not cover this optimization; but it's in the same area, so they may have thought of it. I hate software patents. Jason ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: virtual inheritance: optimization for empty objects 1999-03-06 17:09 ` Jason Merrill @ 1999-03-31 23:46 ` Jason Merrill 0 siblings, 0 replies; 20+ messages in thread From: Jason Merrill @ 1999-03-31 23:46 UTC (permalink / raw) To: Alexander Schiemann; +Cc: egcs >>>>> Alexander Schiemann <aschiem@count.math.uni-sb.de> writes: > - does this suggestion conform with the standard (two base subobjects > having the same address)? I checked it, but perhaps > I missed some requirement. Yes. Only base subobjects of the same type are required to have different addresses. > - are there compilers that implement this kind of layout? I don't know. IBM's may. They have a patent on having a vbase with no data members share space with a derived class, which would not cover this optimization; but it's in the same area, so they may have thought of it. I hate software patents. Jason ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <nms.mail.egcs/199903042105.WAA19132@count.math.uni-sb.de>]
[parent not found: <nms.mail.egcs/orn21tueds.fsf@araguaia.dcc.unicamp.br>]
* Re: virtual inheritance: optimization for empty objects [not found] ` <nms.mail.egcs/orn21tueds.fsf@araguaia.dcc.unicamp.br> @ 1999-03-14 11:01 ` Marc Girod 1999-03-14 11:15 ` Alexandre Oliva ` (2 more replies) 0 siblings, 3 replies; 20+ messages in thread From: Marc Girod @ 1999-03-14 11:01 UTC (permalink / raw) To: Alexandre Oliva; +Cc: egcs >>>>> "AO" == Alexandre Oliva <oliva@dcc.unicamp.br> writes: AO> On Mar 4, 1999, Alexander Schiemann <aschiem@count.math.uni-sb.de> wrote: >> deriving a class B from class A without adding a data-member >> does not increase the size. >> But with virtual inheritance egcs-1.1.1 does not take advantage >> of such a situation. AO> The latest snapshots will, if you compile with -fnew-abi. I am very interested, but trying with a small example on 19990314, I get: sizeof> c++ -o foo -fnew-abi foo.C foo.C: In function `int main()': foo.C:36: `cout' undeclared in namespace `std' foo.C:46: `endl' undeclared in namespace `std' I used std::cout and std::endl. I works without -fnew-abi. I guess I need to rebuild the libstdc++, or what exactly should I rebuild?... Are there instructions? Best Regards! Marc -- Marc Girod Hiomo 5/1 Voice: +358-9-511 23746 Nokia Telecommunications P.O. Box 320 Mobile: +358-40-569 7954 NWS/NMS/NMS for Data 00045 NOKIA Group Fax: +358-9-511 23580 Finland marc.girod@ntc.nokia.com ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: virtual inheritance: optimization for empty objects 1999-03-14 11:01 ` Marc Girod @ 1999-03-14 11:15 ` Alexandre Oliva [not found] ` < orlngz3n0r.fsf@dcc.unicamp.br > 1999-03-31 23:46 ` Alexandre Oliva [not found] ` < 1yk8wjdhf7.fsf@sinkku.ntc.nokia.com > 1999-03-31 23:46 ` Marc Girod 2 siblings, 2 replies; 20+ messages in thread From: Alexandre Oliva @ 1999-03-14 11:15 UTC (permalink / raw) To: Marc Girod; +Cc: egcs [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 718 bytes --] On Mar 14, 1999, Marc Girod <girod@stybba.ntc.nokia.com> wrote: >>>>>> "AO" == Alexandre Oliva <oliva@dcc.unicamp.br> writes: sizeof> c++ -o foo -fnew-abi foo.C > foo.C: In function `int main()': > foo.C:36: `cout' undeclared in namespace `std' > foo.C:46: `endl' undeclared in namespace `std' > I guess I need to rebuild the libstdc++ Yup > Are there instructions? Not that I know of. I think it's not supposed to be widely used before it becomes official, when it will be enabled by default. -- Alexandre Oliva http://www.dcc.unicamp.br/~oliva aoliva@{acm.org,computer.org} oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org} Instituto de Computação, Universidade Estadual de Campinas, SP, Brasil ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: < orlngz3n0r.fsf@dcc.unicamp.br >]
* Re: virtual inheritance: optimization for empty objects [not found] ` < orlngz3n0r.fsf@dcc.unicamp.br > @ 1999-03-15 3:44 ` F. Heitkamp [not found] ` < 199903151145.GAA14544@pc1.fred.org > 1999-03-31 23:46 ` F. Heitkamp 0 siblings, 2 replies; 20+ messages in thread From: F. Heitkamp @ 1999-03-15 3:44 UTC (permalink / raw) To: oliva; +Cc: girod, egcs Mailing-List: contact egcs-help@egcs.cygnus.com; run by ezmlm Precedence: bulk Sender: owner-egcs@egcs.cygnus.com Cc: egcs@egcs.cygnus.com Content-Type: text/plain; charset=iso-8859-1 From: Alexandre Oliva <oliva@dcc.unicamp.br> Date: 14 Mar 1999 16:10:44 -0300 User-Agent: Gnus/5.07008 (Pterodactyl Gnus v0.80) XEmacs/20.4 (Emerald) On Mar 14, 1999, Marc Girod <girod@stybba.ntc.nokia.com> wrote: > I guess I need to rebuild the libstdc++ Yup > Are there instructions? Not that I know of. I think it's not supposed to be widely used before it becomes official, when it will be enabled by default. Which libstdc++ is better to use? The newest broken one or the oldest incompatible one? Or even something in between? Fred ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: < 199903151145.GAA14544@pc1.fred.org >]
* Re: virtual inheritance: optimization for empty objects [not found] ` < 199903151145.GAA14544@pc1.fred.org > @ 1999-03-15 16:07 ` Martin v. Loewis 1999-03-31 23:46 ` Martin v. Loewis 0 siblings, 1 reply; 20+ messages in thread From: Martin v. Loewis @ 1999-03-15 16:07 UTC (permalink / raw) To: fheitka; +Cc: oliva, girod, egcs > Which libstdc++ is better to use? The newest broken one or the oldest > incompatible one? Or even something in between? That very much depends on what you want to use it for. If you want to develop applications, use the one that comes with the compiler. If you want to check standards-compliance, report bugs, and provide fixes, by any means, please use the newest broken one :-) Regards, Martin ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: virtual inheritance: optimization for empty objects 1999-03-15 16:07 ` Martin v. Loewis @ 1999-03-31 23:46 ` Martin v. Loewis 0 siblings, 0 replies; 20+ messages in thread From: Martin v. Loewis @ 1999-03-31 23:46 UTC (permalink / raw) To: fheitka; +Cc: oliva, girod, egcs > Which libstdc++ is better to use? The newest broken one or the oldest > incompatible one? Or even something in between? That very much depends on what you want to use it for. If you want to develop applications, use the one that comes with the compiler. If you want to check standards-compliance, report bugs, and provide fixes, by any means, please use the newest broken one :-) Regards, Martin ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: virtual inheritance: optimization for empty objects 1999-03-15 3:44 ` F. Heitkamp [not found] ` < 199903151145.GAA14544@pc1.fred.org > @ 1999-03-31 23:46 ` F. Heitkamp 1 sibling, 0 replies; 20+ messages in thread From: F. Heitkamp @ 1999-03-31 23:46 UTC (permalink / raw) To: oliva; +Cc: girod, egcs Mailing-List: contact egcs-help@egcs.cygnus.com; run by ezmlm Precedence: bulk Sender: owner-egcs@egcs.cygnus.com Cc: egcs@egcs.cygnus.com Content-Type: text/plain; charset=iso-8859-1 From: Alexandre Oliva <oliva@dcc.unicamp.br> Date: 14 Mar 1999 16:10:44 -0300 User-Agent: Gnus/5.07008 (Pterodactyl Gnus v0.80) XEmacs/20.4 (Emerald) On Mar 14, 1999, Marc Girod <girod@stybba.ntc.nokia.com> wrote: > I guess I need to rebuild the libstdc++ Yup > Are there instructions? Not that I know of. I think it's not supposed to be widely used before it becomes official, when it will be enabled by default. Which libstdc++ is better to use? The newest broken one or the oldest incompatible one? Or even something in between? Fred ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: virtual inheritance: optimization for empty objects 1999-03-14 11:15 ` Alexandre Oliva [not found] ` < orlngz3n0r.fsf@dcc.unicamp.br > @ 1999-03-31 23:46 ` Alexandre Oliva 1 sibling, 0 replies; 20+ messages in thread From: Alexandre Oliva @ 1999-03-31 23:46 UTC (permalink / raw) To: Marc Girod; +Cc: egcs [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 719 bytes --] On Mar 14, 1999, Marc Girod <girod@stybba.ntc.nokia.com> wrote: >>>>>> "AO" == Alexandre Oliva <oliva@dcc.unicamp.br> writes: sizeof> c++ -o foo -fnew-abi foo.C > foo.C: In function `int main()': > foo.C:36: `cout' undeclared in namespace `std' > foo.C:46: `endl' undeclared in namespace `std' > I guess I need to rebuild the libstdc++ Yup > Are there instructions? Not that I know of. I think it's not supposed to be widely used before it becomes official, when it will be enabled by default. -- Alexandre Oliva http://www.dcc.unicamp.br/~oliva aoliva@{acm.org,computer.org} oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org} Instituto de Computação, Universidade Estadual de Campinas, SP, Brasil ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: < 1yk8wjdhf7.fsf@sinkku.ntc.nokia.com >]
* Re: virtual inheritance: optimization for empty objects [not found] ` < 1yk8wjdhf7.fsf@sinkku.ntc.nokia.com > @ 1999-03-14 11:45 ` Joe Buck 1999-03-31 23:46 ` Joe Buck 1999-03-14 11:52 ` Martin v. Loewis 1 sibling, 1 reply; 20+ messages in thread From: Joe Buck @ 1999-03-14 11:45 UTC (permalink / raw) To: Marc Girod; +Cc: oliva, egcs > sizeof> c++ -o foo -fnew-abi foo.C > foo.C: In function `int main()': > foo.C:36: `cout' undeclared in namespace `std' > foo.C:46: `endl' undeclared in namespace `std' > > I used std::cout and std::endl. I works without -fnew-abi. Does -fnew-abi turn on -fhonor-std? If it does, you might try -fno-honor-std in addition to -fnew-abi. (no-honor-std is the hack that ignores references to the std namespace, so that standard C++ programs can work even though libstdc++ isn't putting the streams in the std namespace). ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: virtual inheritance: optimization for empty objects 1999-03-14 11:45 ` Joe Buck @ 1999-03-31 23:46 ` Joe Buck 0 siblings, 0 replies; 20+ messages in thread From: Joe Buck @ 1999-03-31 23:46 UTC (permalink / raw) To: Marc Girod; +Cc: oliva, egcs > sizeof> c++ -o foo -fnew-abi foo.C > foo.C: In function `int main()': > foo.C:36: `cout' undeclared in namespace `std' > foo.C:46: `endl' undeclared in namespace `std' > > I used std::cout and std::endl. I works without -fnew-abi. Does -fnew-abi turn on -fhonor-std? If it does, you might try -fno-honor-std in addition to -fnew-abi. (no-honor-std is the hack that ignores references to the std namespace, so that standard C++ programs can work even though libstdc++ isn't putting the streams in the std namespace). ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: virtual inheritance: optimization for empty objects [not found] ` < 1yk8wjdhf7.fsf@sinkku.ntc.nokia.com > 1999-03-14 11:45 ` Joe Buck @ 1999-03-14 11:52 ` Martin v. Loewis 1999-03-31 23:46 ` Martin v. Loewis 1 sibling, 1 reply; 20+ messages in thread From: Martin v. Loewis @ 1999-03-14 11:52 UTC (permalink / raw) To: girod; +Cc: oliva, egcs > foo.C:36: `cout' undeclared in namespace `std' > foo.C:46: `endl' undeclared in namespace `std' > > I used std::cout and std::endl. I works without -fnew-abi. > > I guess I need to rebuild the libstdc++, or what exactly should I > rebuild?... You need much more than that ... you need to rewrite libstdc++. With -fnew-abi, std is a namespace. So if cout is not in namespace std (which it isn't in libstdc++ v2), it is an error to refer to it via std::cout. You can try arrange libstdc++ to use it consistently, either by putting the library in std::, or by removing the extra qualifiers. As an alternative, you could try libstdc++ v3, which gets this right. Regards, Martin ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: virtual inheritance: optimization for empty objects 1999-03-14 11:52 ` Martin v. Loewis @ 1999-03-31 23:46 ` Martin v. Loewis 0 siblings, 0 replies; 20+ messages in thread From: Martin v. Loewis @ 1999-03-31 23:46 UTC (permalink / raw) To: girod; +Cc: oliva, egcs > foo.C:36: `cout' undeclared in namespace `std' > foo.C:46: `endl' undeclared in namespace `std' > > I used std::cout and std::endl. I works without -fnew-abi. > > I guess I need to rebuild the libstdc++, or what exactly should I > rebuild?... You need much more than that ... you need to rewrite libstdc++. With -fnew-abi, std is a namespace. So if cout is not in namespace std (which it isn't in libstdc++ v2), it is an error to refer to it via std::cout. You can try arrange libstdc++ to use it consistently, either by putting the library in std::, or by removing the extra qualifiers. As an alternative, you could try libstdc++ v3, which gets this right. Regards, Martin ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: virtual inheritance: optimization for empty objects 1999-03-14 11:01 ` Marc Girod 1999-03-14 11:15 ` Alexandre Oliva [not found] ` < 1yk8wjdhf7.fsf@sinkku.ntc.nokia.com > @ 1999-03-31 23:46 ` Marc Girod 2 siblings, 0 replies; 20+ messages in thread From: Marc Girod @ 1999-03-31 23:46 UTC (permalink / raw) To: Alexandre Oliva; +Cc: egcs >>>>> "AO" == Alexandre Oliva <oliva@dcc.unicamp.br> writes: AO> On Mar 4, 1999, Alexander Schiemann <aschiem@count.math.uni-sb.de> wrote: >> deriving a class B from class A without adding a data-member >> does not increase the size. >> But with virtual inheritance egcs-1.1.1 does not take advantage >> of such a situation. AO> The latest snapshots will, if you compile with -fnew-abi. I am very interested, but trying with a small example on 19990314, I get: sizeof> c++ -o foo -fnew-abi foo.C foo.C: In function `int main()': foo.C:36: `cout' undeclared in namespace `std' foo.C:46: `endl' undeclared in namespace `std' I used std::cout and std::endl. I works without -fnew-abi. I guess I need to rebuild the libstdc++, or what exactly should I rebuild?... Are there instructions? Best Regards! Marc -- Marc Girod Hiomo 5/1 Voice: +358-9-511 23746 Nokia Telecommunications P.O. Box 320 Mobile: +358-40-569 7954 NWS/NMS/NMS for Data 00045 NOKIA Group Fax: +358-9-511 23580 Finland marc.girod@ntc.nokia.com ^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~1999-03-31 23:46 UTC | newest] Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 1999-03-04 12:56 virtual inheritance: optimization for empty objects Alexander Schiemann 1999-03-31 23:46 ` Alexander Schiemann 1999-03-04 13:05 Alexander Schiemann 1999-03-04 13:39 ` Alexandre Oliva 1999-03-31 23:46 ` Alexandre Oliva 1999-03-31 23:46 ` Alexander Schiemann [not found] <199903042105.WAA19132.cygnus.egcs@count.math.uni-sb.de> 1999-03-06 17:09 ` Jason Merrill 1999-03-31 23:46 ` Jason Merrill [not found] <nms.mail.egcs/199903042105.WAA19132@count.math.uni-sb.de> [not found] ` <nms.mail.egcs/orn21tueds.fsf@araguaia.dcc.unicamp.br> 1999-03-14 11:01 ` Marc Girod 1999-03-14 11:15 ` Alexandre Oliva [not found] ` < orlngz3n0r.fsf@dcc.unicamp.br > 1999-03-15 3:44 ` F. Heitkamp [not found] ` < 199903151145.GAA14544@pc1.fred.org > 1999-03-15 16:07 ` Martin v. Loewis 1999-03-31 23:46 ` Martin v. Loewis 1999-03-31 23:46 ` F. Heitkamp 1999-03-31 23:46 ` Alexandre Oliva [not found] ` < 1yk8wjdhf7.fsf@sinkku.ntc.nokia.com > 1999-03-14 11:45 ` Joe Buck 1999-03-31 23:46 ` Joe Buck 1999-03-14 11:52 ` Martin v. Loewis 1999-03-31 23:46 ` Martin v. Loewis 1999-03-31 23:46 ` Marc Girod
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).