HDTenEightyP/NetNews huggingface dataset:
From: feldmark@eng3.sequent.com (Mark Feldman)
Subject: Re: Plan 9 and Unicode
Organization: Sequent Computer Systems, Inc.
Distribution: comp
Date: 14 Apr 92 10:08:26

Could anyone give a summary of the significant features of the Plan 9
OS, the significance of Plan 9 itself if other than just being another
research OS, and possibly a reference to a paper that goes into more
detail?  I've seen it mentioned now several times during discussions
about Unicode and am ignorant enough not to have heard of it
otherwise.


Thanks very much,
Mark Feldman
Sequent Computer Systems, Inc.
feldmark@sequent.com
--
Mark Feldman
Sequent Computer Systems, Inc.
feldmark@sequent.com
feldmark@psq.mei.co.jp
Newsgroups: comp.std.c++
From: pete@borland.com (Pete Becker)
Subject: Re: Templates in MS C++ 7.0 ???
Organization: Borland International
Date: Fri, 10 Apr 1992 16:21:48 GMT

In article <1992Apr9.035806.3662@talon.ucs.orst.edu> fisherj@ucs.orst.edu (Joseph A. Fisher) writes:
>
>   I am making great use of templates in Borland C++ 3.0. Can Microsoft
>C++ 7.0 support templates at least as easily as Borland. Borlands add claims
>you can't. Our programming group will not be able to use Microsofts
>compiler if they can't support templates. Templates are very, very
>important in our software design.
>

	Microsoft provides a template preprocessor.  To use it, you write your
template definition, and run the preprocessor with some command line switches
to tell it which instantiation you need.  This produces compilable C++ code.
It's up to you to keep track of which instantiations you need.  As I recall,
it supports class templates but not function templates.
	-- Pete
From: lam@saifr00.cfsat.honeywell.com (Josh Lam)
Newsgroups: comp.std.c++
Subject: Apology
Date: 16 Apr 92 15:39:00 GMT
Article-I.D.: saifr00.1992Apr16.153900.4231
Organization: Honeywell Air Transport Systems Division

I apologise for making a mistake in replying to Ruth Fragale's message via
the news net.  I meant to make a personal reply via email but I hit the
wrong key and got my reply posted to the newsgroup instead.

Sorry for wasting the news resources and I will ensure that it will
*never* happen again.

Josh
-- 
Josh Lam
Honeywell Inc
lam@saifr00.cfsat.honeywell.com
From: fisherj@ucs.orst.edu (Joseph A. Fisher)
Newsgroups: comp.std.c++
Subject: Templates in MS C++ 7.0 ???
Date: 9 Apr 92 03:58:06 GMT
Organization: Oregon State University - Computing Services
Originator: fisherj@UCS.ORST.EDU

>|Hey Microsoft, if you're listening and you are planning a
>|response to Borland's scathing ad in the latest PC Week, how
>|about this -- "Sure we may be slow, but at least you can
>|build real applications with our product".

> Again, as one Microsoft C++ programmer, I can only say that my personal
> experience comparing the C7 and the Borland 3.0 products completely contradicts
> the Borland advertising claims.  Again, I encourage serious programmers
> to ignore the advertising claims, and compare *product* as actually
> applied to your real, actual, programming tasks.  Competitive update
> policies should make it affordable for people to make these comparisons,
> thus choosing the best compiler for their particular programming projects.
> Again, a particular programming team has more to gain or lose from their
> choice of compiler than either Borland or Microsoft.  Take some time
> to learn the different products, libraries, debuggers, etc, lest you make
> mistakes in your analysis.  A day or two is not sufficient to accurately perform
> these analyses.

   I am making great use of templates in Borland C++ 3.0. Can Microsoft
C++ 7.0 support templates at least as easily as Borland. Borlands add claims
you can't. Our programming group will not be able to use Microsofts
compiler if they can't support templates. Templates are very, very
important in our software design.

-- 
Joe Fisher
fisherj@ucs.orst.edu
Oregon State University
From: bard@cutter.ssd.loral.com (James Woodyatt)
Newsgroups: comp.std.c++
Subject: Re: Class templates and incomplete classes
Date: 8 Apr 92 02:57:34 GMT
Article-I.D.: wdl.1992Apr8.025734.22821
Organization: Space Systems/Loral

In article <1992Apr8.000827.20812@wdl.loral.com>, bard@cutter.ssd.loral.com (James Woodyatt) writes:
|> int main()
|> {
|>     Foo f;
|> 
|>     f.foo();
|>     return 0;
|> }

I feel dumb. I should have written this:

int main()
{
    Foo<Bar> f& = foo;

    f.foo();
    return 0;
}

It doesn't change the substance of my question though.

Sorry about the confusion. I didn't notice the obsolete code because my
compiler was crashing on code upstream of this.


-- 
James Woodyatt  Space Systems/Loral   Palo Alto, CA   bard@cutter.ssd.loral.com

``And when he dreamed his ears drooled thirty weight engine oil
He took personality tests and stapled them to his lower lip''
				    --Stan Ridgway,
				      `Jack Talked (Like A Man On Fire)'
Newsgroups: comp.std.c++
From: jimad@microsoft.com (Jim ADCOCK)
Subject: Re: C++ name mangling incompatibilities
Date: 10 Apr 92 19:38:02 GMT
Organization: Microsoft Corp.
Distribution: comp

In article <1992Mar31.193816.23051@borland.com> pete@borland.com (Pete Becker) writes:

*His explanation* for some of the design decisions of the Microsoft compiler.

Which is at best speculative on his part.
From: MCCRADY@TOROLAB6.VNET.IBM.COM ("Don McCrady")
Newsgroups: comp.std.c++
Subject: const
Date: 14 Apr 92 19:06:01 GMT

> From: donne@imec.be (Werner Donne)
>
>    const char **a;
>    char **b;
>
>   a = b;
>
> Why is the assignment illegal?

This has been illegal ever since C, and I assume C++ hasn't relaxed
C's rules.  The relevant rule from the assignment operator, ANSI C
3.3.16.1, is:

    One of the following shall hold:
        ...
        - both operands are pointers to qualified or unqualified
          versions of compatible types... [1]

[1] Omitted is the phrase "and the type pointed to by the left has
all the qualifiers of the type pointed to by the right," which is
irrelevant to this discussion.

The above rule means that we can ignore the qualifiers of the *first*
level of the type, but that all the types after this level must be
strictly compatible.  This means that we have to determine whether
a "pointer to const char" is compatible with a "pointer to char".
ANSI C 3.5.4.1 states "For two pointer types to be compatible, both
shall be identically qualified and both shall be pointers to compatible
types."  Now we must determine if "const char" is compatible "char".
ANSI C 3.5.3 states "For two qualified types to be compatible, both shall
have the identically qualified vesion of a compatible type..."

Note that by similar reasoning, all of the following are illegal:

       b = a;
       a == b;  /* or !=, or <, etc... */
       b == a;  /* as above */

++don;

IBM Canada, Toronto.
From: skow@cs.utwente.nl (Jacek Skowronek)
Newsgroups: comp.std.c++
Subject: INFO NEEDED on standards activities
Date: 12 Apr 92 14:22:34 GMT
Reply-To: skow@cs.utwente.nl
Organization: University of Twente, Dept. of Computer Science

I was recently on the kick-off meeting of ANSI X3H7 committee on Object Information
Management. I would like to know what groups or committees are working on standards
within Europe. I mean object-oriented programming and databases. Could You point me
to the addresses of the people taking part in it ?

Jacek


---
-------------------------------------------------------------------
Jacek Skowronek				e-mail: <skow@cs.utwente.nl>
Departament of Computer Science
Twente University
Enschede, The Netherlands
Newsgroups: comp.std.c++
From: bard@cutter.ssd.loral.com (James Woodyatt)
Subject: Class templates and incomplete classes
Organization: Space Systems/Loral
Date: Wed, 8 Apr 1992 00:08:27 GMT

My compiler (GCC-2.1) complains about the following code by going down
on a segmentation fault (which I figure is enough cause to report it as
a bug), but I have reservations about the validity of the code.

Is this legal? I'm trying to declare a template class with an incomplete
class as the template's parameter.

-------------------------------------------------------------------------
template<class T>
class Foo
{
    Method method;

  public:
    typedef void (T::*Method)();

    Foo(Method m) : method(m)  { }
    void foo() { (*method)(); }
};


class Bar
{
  public:
    static Foo<Bar> foo; // Instantiate a template class on an incomplete class

    void alpha()  { }
    void beta()   { }
};


Bar::foo(&Bar::alpha);


int main()
{
    Foo f;

    f.foo();
    return 0;
}


-- 
James Woodyatt  Space Systems/Loral   Palo Alto, CA   bard@cutter.ssd.loral.com

``And when he dreamed his ears drooled thirty weight engine oil
He took personality tests and stapled them to his lower lip''
				    --Stan Ridgway,
				      `Jack Talked (Like A Man On Fire)'
Newsgroups: comp.std.c++
From: kish@iasdv1.iasd.honeywell.com
Subject: C++ Validation 
Reply-To: kish@iasdv1.iasd.honeywell.com
Organization: Honeywell,Phoenix,AZ
Date: Sun, 12 Apr 1992 06:36:09 GMT

For other languages there are defacto public domain validation suites
for the language (remember BOMB for Fortran?). Is any one aware of
a similar tool for more or less "STANDARD" C++ implementation(s).  
I am looking at several different compilers and would like to
see how many different warts I might quickly find to narrow my choices....
                                        KISH@IASDV1.IASD.HONEYWELL.COM
Newsgroups: comp.std.c++,comp.lang.c++
From: jimad@microsoft.com (Jim ADCOCK)
Subject: Re: Borland C++ 3.0 Linker error - Fatal Table Limit Exceeded
Date: 07 Apr 92 18:25:10 GMT
Organization: Microsoft Corp.

In article <1992Apr1.222433.9350@sbcs.sunysb.edu> gmarcus@csws7.ic.sunysb.edu (Glenn Marcus) writes:
|Hey Microsoft, if you're listening and you are planning a
|response to Borland's scathing ad in the latest PC Week, how
|about this -- "Sure we may be slow, but at least you can
|build real applications with our product".

Again, as one Microsoft C++ programmer, I can only say that my personal 
experience comparing the C7 and the Borland 3.0 products completely contradicts 
the Borland advertising claims.  Again, I encourage serious programmers
to ignore the advertising claims, and compare *product* as actually
applied to your real, actual, programming tasks.  Competitive update
policies should make it affordable for people to make these comparisons,
thus choosing the best compiler for their particular programming projects.
Again, a particular programming team has more to gain or lose from their
choice of compiler than either Borland or Microsoft.  Take some time
to learn the different products, libraries, debuggers, etc, lest you make
mistakes in your analysis.  A day or two is not sufficient to accurately perform
these analyses.

My Opinions Only [like always]
From: acoles@bwdls59.bnr.ca (Lynda Timmerman)
Newsgroups: comp.std.c++
Subject: Re: Templates in MS C++ 7.0 ???
Date: 14 Apr 92 15:27:50 GMT
Reply-To: ACOLES@BNR.CA
Organization: BNR Woodline, Ottawa

In article <1992Apr10.162148.29104@borland.com>, pete@borland.com (Pete Becker) writes:
|> In article <1992Apr9.035806.3662@talon.ucs.orst.edu> fisherj@ucs.orst.edu (Joseph A. Fisher) writes:
|> >
|> >   I am making great use of templates in Borland C++ 3.0. Can Microsoft
|> >C++ 7.0 support templates at least as easily as Borland. Borlands add claims
|> >you can't. Our programming group will not be able to use Microsofts
|> >compiler if they can't support templates. Templates are very, very
|> >important in our software design.
|> >

According to the May issue of Computer language, the Microsoft C++ 7.0 supports version 2.1 of
the language.  Borland supports version 3.0 (??).  There aren't templates in 2.1.

AC
Xref: sparky comp.std.c++:399 comp.std.c:1828
From: darcy@druid.uucp (D'Arcy J.M. Cain)
Newsgroups: comp.std.c++,comp.std.c
Subject: Re: const
Date: 15 Apr 92 14:59:31 GMT
Followup-To: comp.std.c
Organization: D'Arcy Cain Consulting

MCCRADY@TOROLAB6.VNET.IBM.COM ("Don McCrady") writes:
>> From: donne@imec.be (Werner Donne)
>>    const char **a;
>>    char **b;
>>   a = b;
>> Why is the assignment illegal?
>
>This has been illegal ever since C, and I assume C++ hasn't relaxed
>C's rules.  The relevant rule from the assignment operator, ANSI C
>3.3.16.1, is:

Right so far.

>    One of the following shall hold:
>        ...
>        - both operands are pointers to qualified or unqualified
>          versions of compatible types... [1]
>
>[1] Omitted is the phrase "and the type pointed to by the left has
>all the qualifiers of the type pointed to by the right," which is
>irrelevant to this discussion.

Hardly irrelevant.  The additional phrase says that the LHS must have
at least all of the type qualifiers (const and/or volatile - see 3.5.3)
of the RHS but the opposite isn't necessarily true.
[...]
>Note that by similar reasoning, all of the following are illegal:
>       b = a;
No, this is perfectly legal.  That's what the additional phrase means.
The RHS has no type qualifier so the LHS doesn't need one but the existence
of one doesn't violate the rule.

>       a == b;  /* or !=, or <, etc... */
>       b == a;  /* as above */
These are legal but from a different but similar rule in 3.3.9.

I'm not sure why the original question was posted to comp.std.c++ as well
as comp.std.c but I think this is a C standard discussion more than a C++
one.  Followups redirected.  Feel free to change it again if you see any
C++ specific issue.

-- 
D'Arcy J.M. Cain (darcy@druid)     |
D'Arcy Cain Consulting             |   There's no government
Toronto, Ontario, Canada           |   like no government!
+1 416 424 2871          DoD#0082  |
Newsgroups: comp.std.c++
From: hr@i-kinetics.com (Human Resources)
Subject: Re: Templates in MS C++ 7.0 ???
Organization: I-Kinetics, Inc., Cambridge, MA USA
Date: Mon, 13 Apr 1992 15:55:16 GMT


See recent edition of MS Journal for full details.

>>   I am making great use of templates in Borland C++ 3.0. Can Microsoft
>> C++ 7.0 support templates at least as easily as Borland. Borlands add claims
>> you can't. Our programming group will not be able to use Microsofts

Templates are C++ 3.0 spec.  MS C++ is at 2.1 spec.  For templates they
supply a "preprocessor" which you run on your code with templates and then
run the compiler.  MS position is that spec 3.0 (i.e. templates) are 
"controversial".

However, Do you use exceptions? Part of 3.0 spec.  Does Borland 3.0 have exceptions.
No....





From: shankar@aspen.IAG.HP.COM (Shankar Unni)
Date: Thu, 9 Apr 1992 21:28:21 GMT
Subject: Re: Intermediate addr outside object: legal?
Organization: HP International Contract Programming
Newsgroups: comp.std.c

In comp.std.c, barmar@think.com (Barry Margolin) writes:

> In article <2160002@aspen.IAG.HP.COM> shankar@aspen.IAG.HP.COM (Shankar Unni) writes:
> >This, of course, does not address the question of what is "the right
> >thing to do" when the compiler sees this expression (the user-
> >friendliness question).  Is it reasonable for the program to get a
> >SIGSEGV on this?  I.e. is this some sort of commonly used (albeit
> >questionable) idiom in some context that I'm not aware of?

> It depends on what you mean by "user-friendliness".  Which is more
> friendly: warning the programmer that their program may not port easily, or
> doing what the programmer probably expects?

Well, I might as well come out and say it: this case came up when
someone trying to optimize TeX 3.14 ran across it. Apparently Web2C
(which translates the original TeX web code into C) puts out code like
this, and from the message I got, it did so all over the place. Which is
why I was asking : is this a peculiarity of Web2C, or do other programs
also do this sort of junk?
-----
Shankar Unni                                 Internet: shankar@iag.hp.com
HP International Contract Programming          HPDESK: Shankar UNNI / HP4700
Phone : +1-408-447-4007                          UUCP: ...!hplabs!hpda!shankar
From: ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe)
Newsgroups: comp.std.c
Subject: Re: min, max, and ANSI
Date: 14 Apr 92 00:59:34 GMT
Organization: Comp Sci, RMIT, Melbourne, Australia

In article <1992Apr13.171330.29829@borland.com>, pete@borland.com (Pete Becker) writes:
> In article <10209@goanna.cs.rmit.oz.au> ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) writes:
> >
> >Turbo C 2.01 does have problems in its <stdlib.h> which the -A option does
> >not fix.  Example:
> >
> 	Turbo C 2.01 was replaced by Turbo C++ 1.0 over two years ago.

I think this one warrants a public apology from me.
I had assumed that our PC support people had a current product.
I apologise for casting unwarranted aspersions on Borland by citing
an obsolete product.

-- 
I am writing a book on debugging aimed at 1st & 2nd year CS students using
C/Modula/Pascal-like languages.  Please send suggestions (other than "you
_must_ cite "C Traps and Pitfalls") to ok@goanna.cs.rmit.oz.au
From: s874330@minyos.xx.rmit.oz.au (Martin Peter Howell)
Newsgroups: comp.std.c
Subject: Re: Idle query
Date: 17 Apr 92 06:16:54 GMT
Organization: RMIT Computer Centre, Melbourne Australia.

ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) writes:

>Am I allowed to declare a local variable called "stdout"?

Not if the translation unit includes <stdio.h> as "stdout" will
be expanded to a pointer to FILE which does nothing for code like...

>	... { FILE *stdout = fopen("foo", "w");  ...
>	      putchar(' '); ... }

-Martin.  
s874330@minyos.xx.rmit.oz.au
Newsgroups: comp.std.c,comp.std.c++
From: pete@borland.com (Pete Becker)
Subject: Re: min, max, and ANSI
Organization: Borland International
Date: Fri, 10 Apr 1992 16:23:27 GMT

In article <1992Apr9.165859.18578@wam.umd.edu> krc@wam.umd.edu (Kevin R. Coombes) writes:
>I have a question about the ANSI C header stdlib.h. A certain compiler that
>shall for the moment remain nameless includes macros for min(a,b) and 
>max(a,b) in <stdlib.h>. Consequently, I managed to lose several hours
>trying to find out why a working program suddenly broke---eventually
>discovering, of course, that I had been using min as the name of a variable,
>and had changed things hwen I #included <stdlib.h> for unrelated reasons.
>Are min and max SUPPOSED to be in stdlib.h, and have I been just lucky
>in avoiding this problem in the past?
>
>Kevin Coombes <krc@math.umd.edu>

	If you compile in ANSI mode (with the -A switch), min and max go
away.  They also go away when compiling C++.
	-- Pete
Newsgroups: comp.std.c
From: diamond@jit533.jit.dec.com (Norman Diamond)
Subject: Re: Intermediate addr outside object: legal?
Reply-To: diamond@jit.dec.com (Norman Diamond)
Organization: Digital Equipment Corporation Japan , Tokyo
Date: Mon, 6 Apr 1992 00:21:28 GMT

In article <1992Apr4.095414.8594@druid.uucp> darcy@druid.uucp (D'Arcy J.M. Cain)
 writes:
>Chapter 3.3.2.1 says that E1[E2] is identical to "(*(E1+(E2)))."  After
>expanding macros the above becomes "(foo - 8000)[9000]" which is
>identical to "(*((foo - 8000)+(9000)))."

Yes.

>Removing superfluous parens that gives "*(foo - 8000 + 9000)" or
>"*(foo + 1000)" which looks perfectly legitimate to me.

Great!  If anyone has problems with standard-conforming implementations
which don't necessarily volunteer to remove superfluous parens, you'll
execute their programs for them?
--
Norman Diamond       diamond@jit081.enet.dec.com
If this were the company's opinion, I wouldn't be allowed to post it.
"Yeah -- bad wiring.  That was probably it.  Very bad."
From: jfw@ksr.com (John F. Woods)
Newsgroups: comp.std.c
Subject: Re: const T **
Keywords: const
Date: 14 Apr 92 17:09:14 EDT

donne@imec.be (Werner Donne) writes:
>int
>main(void)
>{
>  const char **a;
>  char **b;
>  a = b;
>  return 0;
>}

>Why is the assignment illegal?

Because.  :-)

'a' is a pointer to 'const char *', and 'b' is a pointer to 'char *', and
these are not compatible types.  If the declarations were

	char * const * a;
	char *       * b;

then the assignment would be legal, because assignment of pointers is allowed
to add type qualifiers at the level immediately pointed to:

	"both operands are pointers to qualified or unqualified versions of
	compatible types, and the type pointed to by the left has all the
	qualifiers of the type pointed to by the right."

Unfortunately, only one level of addition is permitted for assignment, which
is kind of a wart, since it certainly seems to make sense to be able to
assign a pointer-to-pointer-to-char into a pointer-to-pointer-to-constant-char.

I don't know why the C Standard Committee only specified one level.  And all
of the members of the committee who used to post here seem to have been chased
off, so I guess we'll never know.
Xref: sparky comp.std.c:1799 comp.std.c++:386
From: ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe)
Newsgroups: comp.std.c,comp.std.c++
Subject: Re: min, max, and ANSI
Date: 13 Apr 92 07:48:16 GMT
Followup-To: comp.std.c
Organization: Comp Sci, RMIT, Melbourne, Australia

In article <1992Apr9.165859.18578@wam.umd.edu> krc@wam.umd.edu (Kevin R. Coombes) writes:
> I have a question about the ANSI C header stdlib.h. A certain compiler that
> shall for the moment remain nameless includes macros for min(a,b) and 
> max(a,b) in <stdlib.h>.

In article <1992Apr10.162327.29202@borland.com>, pete@borland.com (Pete Becker) writes:
> 	If you compile in ANSI mode (with the -A switch), min and max go
> away.  They also go away when compiling C++.
> 	-- Pete

Turbo C 2.01 does have problems in its <stdlib.h> which the -A option does
not fix.  Example:

	int boo[2];
	#define state 0[boo]
	#define seed  1[boo]
	#include <stdlib.h>
	...

I hadn't noticed this before today, because I hadn't used tcc before today.
It turns out that most of the functions defined in stdlib.h have identiers
in their prototypes, and those identifiers are in the user's name space.

Then of course there's <assert.h>, with Borland's manual explicitly
saying that assert "turns into an if statement".

Where are the *standard* C compilers?  (Ok, I know about Norcroft, but
last I heard they didn't have a compiler for PCs or Encore Multimaxes.)

I spent several hours last week writing a <stdio.h> for Gcc on an
Encore Multimax; not having one it picked up the /usr/include/stdio.h,
and in strict ANSI mode it didn't #define n16, so the record structure
for a stream control block was wrong.  Result: happy compiler, insane
program.  Where are the *standard* C compilers?

-- 
I am writing a book on debugging aimed at 1st & 2nd year CS students using
C/Modula/Pascal-like languages.  Please send suggestions (other than "you
_must_ cite "C Traps and Pitfalls") to ok@goanna.cs.rmit.oz.au