Discussion:
C++ features
(too old to reply)
Dan Partelly
2012-09-19 12:21:09 UTC
Permalink
Hey all.

Is there any list of what level of C++ support have been done so far and ca
be expected in the next release ? And in general is there any list with
detail exactly what level of the C++ the watcom compiler has ?

Thanks all !
Marty Stanquist
2012-09-19 15:23:07 UTC
Permalink
Our C++ compiler is an early implementation started by Watcom in the early
1990's. It is written in C and was developed actively through around 1996.
It is a stable application, but more bug fixes have been added than feature
upgrades. Here are a few links that may be useful:

http://www.openwatcom.org/index.php/About_Open_Watcom
http://www.openwatcom.org/index.php/Reference_Manuals
http://www.openwatcom.org/index.php/Open_Watcom_STL
http://www.azillionmonkeys.com/qed/watfaq.shtml

My expectations for C++ moving into generation 2.0x are that we will make
incremental changes to the standard template and language compliance. I will
try to provide more details in a follow up post. I just to respond to your
inquiry.

Marty

"Dan Partelly" wrote in message news:k3cdce$hn$***@www.openwatcom.org...

Hey all.

Is there any list of what level of C++ support have been done so far and ca
be expected in the next release ? And in general is there any list with
detail exactly what level of the C++ the watcom compiler has ?

Thanks all !
Paul S. Person
2012-09-19 16:49:54 UTC
Permalink
On Wed, 19 Sep 2012 15:21:09 +0300, "Dan Partelly"
Post by Dan Partelly
Hey all.
Is there any list of what level of C++ support have been done so far and ca
be expected in the next release ? And in general is there any list with
detail exactly what level of the C++ the watcom compiler has ?
I don't know about a list, but Watcom C/C++ 11 was able to do
templates well enough that a freeware version of STL could be
configured to work with it. Even in 16-bit.

I believe a lot of the class library is done, but not all of it.

However, there was a discussion a while back about how multithreading
support was to be done, starting with what was required, particularly
for the DOS target. This discussion revealed that OW has mulithreading
support already, although how compatible it is with the latest
(draft?) standard I do not know.

There was a major change (literally, new C++ compilers) a few versions
back, but that mostly concerned postponing generation of templates
until needed. That is, with the prior compilers, given a template
class A,

typedef A B;

was enough to cause every single member function to be generated. This
may not seem important, but one result was that simply including
<string> in a 16-bit program produced 58K bytes or so of code,
essentially filling a single code segment, because of the typedefs in
<string>. The new version does not do this: the typedef shown would
produce, at most, the constructors and destructor and perhaps the
operator =(), although it has been so long I'm not sure it even
produces that much until an object is created or they are used.
--
"Nature must be explained in
her own terms through
the experience of our senses."
Marty Stanquist
2012-09-19 22:05:03 UTC
Permalink
Paul, When you get a chance, please send me a direct email (do not post) at
martys1ow at att dot net. I tried sending you something today but it
bounced. Thanks, Marty.

"Paul S. Person" wrote in message news:***@4ax.com...

On Wed, 19 Sep 2012 15:21:09 +0300, "Dan Partelly"
Post by Dan Partelly
Hey all.
Is there any list of what level of C++ support have been done so far and ca
be expected in the next release ? And in general is there any list with
detail exactly what level of the C++ the watcom compiler has ?
I don't know about a list, but Watcom C/C++ 11 was able to do
templates well enough that a freeware version of STL could be
configured to work with it. Even in 16-bit.

I believe a lot of the class library is done, but not all of it.

However, there was a discussion a while back about how multithreading
support was to be done, starting with what was required, particularly
for the DOS target. This discussion revealed that OW has mulithreading
support already, although how compatible it is with the latest
(draft?) standard I do not know.

There was a major change (literally, new C++ compilers) a few versions
back, but that mostly concerned postponing generation of templates
until needed. That is, with the prior compilers, given a template
class A,

typedef A B;

was enough to cause every single member function to be generated. This
may not seem important, but one result was that simply including
<string> in a 16-bit program produced 58K bytes or so of code,
essentially filling a single code segment, because of the typedefs in
<string>. The new version does not do this: the typedef shown would
produce, at most, the constructors and destructor and perhaps the
operator =(), although it has been so long I'm not sure it even
produces that much until an object is created or they are used.
--
"Nature must be explained in
her own terms through
the experience of our senses."
Paul S. Person
2012-09-20 17:07:08 UTC
Permalink
On Wed, 19 Sep 2012 17:05:03 -0500, "Marty Stanquist"
Post by Marty Stanquist
Paul, When you get a chance, please send me a direct email (do not post) at
martys1ow at att dot net. I tried sending you something today but it
bounced. Thanks, Marty.
What, exactly, are you trying to send? I have no interest in job
offers, nor in any of the more seamy offers I recall seeing when my
filtering was not as effective as it is now.

If it can't be said publicly, it probably shouldn't be said at all.

Although I wouldn't expect this from an Open Watcom newsgroup, I have
been on newsgroups (back when I used a valid email) where people would
send very nasty emails privately while pretending, in the newsgroup,
to be very polite. It got so bad that I adopted a personal strategy:
anybody doing that shortly found his "private" email being quoted
publicly. Separating public posts and private email is all very well,
but it can be abused.

And of course my email address doesn't work. That's why it ends in
"invalid": because that is what it is.

I had a nasty episode where my email was being used by spammers; I
accrued 10MB of bounces per week in my mail box. When I created
various alternate email addresses (ie, pretended to be a family
instead of an individual), I narrowed it down to Usenet.

I even know what group it was happening in. It most certainly was not
one associated with Watcom or Open Watcom. But, at least at that time,
Agent required me to use the same email with all the newsgroups, so I
had to use an invalid address on all of them. And, anyway, since it
wasn't happening to anyone else, it was most likely an individual
doing this manually, and such a person could be a lurker on any
newsgroup.

There are exceptions for some web sites, a listserve, relatives, and
work on wgml. But, generally, I am not a fan of emails where a
newsgroup exists.
--
"Nature must be explained in
her own terms through
the experience of our senses."
Marty Stanquist
2012-09-20 21:55:50 UTC
Permalink
I was just seeking additional ideas for enhancing C++, short and long term.
I'd like to start reviewing the code and refining the roadmap. But this can
certainly be done in the forum.

Marty

"Paul S. Person" wrote in message news:***@4ax.com...

On Wed, 19 Sep 2012 17:05:03 -0500, "Marty Stanquist"
Post by Marty Stanquist
Paul, When you get a chance, please send me a direct email (do not post) at
martys1ow at att dot net. I tried sending you something today but it
bounced. Thanks, Marty.
What, exactly, are you trying to send? I have no interest in job
offers, nor in any of the more seamy offers I recall seeing when my
filtering was not as effective as it is now.

If it can't be said publicly, it probably shouldn't be said at all.

Although I wouldn't expect this from an Open Watcom newsgroup, I have
been on newsgroups (back when I used a valid email) where people would
send very nasty emails privately while pretending, in the newsgroup,
to be very polite. It got so bad that I adopted a personal strategy:
anybody doing that shortly found his "private" email being quoted
publicly. Separating public posts and private email is all very well,
but it can be abused.

And of course my email address doesn't work. That's why it ends in
"invalid": because that is what it is.

I had a nasty episode where my email was being used by spammers; I
accrued 10MB of bounces per week in my mail box. When I created
various alternate email addresses (ie, pretended to be a family
instead of an individual), I narrowed it down to Usenet.

I even know what group it was happening in. It most certainly was not
one associated with Watcom or Open Watcom. But, at least at that time,
Agent required me to use the same email with all the newsgroups, so I
had to use an invalid address on all of them. And, anyway, since it
wasn't happening to anyone else, it was most likely an individual
doing this manually, and such a person could be a lurker on any
newsgroup.

There are exceptions for some web sites, a listserve, relatives, and
work on wgml. But, generally, I am not a fan of emails where a
newsgroup exists.
--
"Nature must be explained in
her own terms through
the experience of our senses."
Paul S. Person
2012-09-21 17:10:44 UTC
Permalink
On Thu, 20 Sep 2012 16:55:50 -0500, "Marty Stanquist"
Post by Marty Stanquist
I was just seeking additional ideas for enhancing C++, short and long term.
I'd like to start reviewing the code and refining the roadmap. But this can
certainly be done in the forum.
The problem there, for me, is that I have been working in C (on wgml)
for so long that my knowledge of where OW C++ is currently is
nonexistent.

So I wouldn't be much help: I can't help plot enhancements when I
don't know the current state!
--
"Nature must be explained in
her own terms through
the experience of our senses."
Dan Partelly
2012-09-19 18:31:09 UTC
Permalink
Thanks all for the replys so far.

- Yes, Im mainly interested in template support for C++
- What support for C++11 does actually the switch -za0x enable ? Looking in
source tree
I seen decltype and static_assert in *.key files of /plusplus, but they
doesnt seem to work, and since I seen the source first time today, I got no
ideea yet where to look for implementation details of what is and what aint.

Meanwile Ive got to build OW 2.0 branch on XP. Worked great.

Does the source compile on FreeBSD 9 ?

Thanks
Post by Dan Partelly
Hey all.
Is there any list of what level of C++ support have been done so far and
ca be expected in the next release ? And in general is there any list with
detail exactly what level of the C++ the watcom compiler has ?
Thanks all !
Marty Stanquist
2012-09-19 19:30:13 UTC
Permalink
FreeBSD 9 is a high priority. There are still a few snags, but hopefully
these will be worked out soon.

Marty

"Dan Partelly" wrote in message news:k3d31g$p29$***@www.openwatcom.org...

Thanks all for the replys so far.

- Yes, Im mainly interested in template support for C++
- What support for C++11 does actually the switch -za0x enable ? Looking in
source tree
I seen decltype and static_assert in *.key files of /plusplus, but they
doesnt seem to work, and since I seen the source first time today, I got no
ideea yet where to look for implementation details of what is and what aint.

Meanwile Ive got to build OW 2.0 branch on XP. Worked great.

Does the source compile on FreeBSD 9 ?

Thanks
Post by Dan Partelly
Hey all.
Is there any list of what level of C++ support have been done so far and
ca be expected in the next release ? And in general is there any list with
detail exactly what level of the C++ the watcom compiler has ?
Thanks all !
Peter C. Chapin
2012-09-20 11:07:04 UTC
Permalink
Post by Dan Partelly
Is there any list of what level of C++ support have been done so far
and can be expected in the next release ? And in general is there any
list with detail exactly what level of the C++ the watcom compiler
has ?
There is some discussion about this on the Wiki. See:

http://www.openwatcom.org/index.php/Cpp_compiler_and_library

I'm not sure how up to date it is.

Roughly, Open Watcom implements a significant percentage of C++98. There
are still a number of deficiencies related to the more "exotic" aspects
of C++98 although some of them are troublesome. For example it isn't
currently possible to define a template member of a class template
outside the class template (all such members have to be inline). Also
template-template parameters are unsupported, etc. There are also a
number of irksome bugs.

The STL provided with OW is incomplete although enough is implemented to
do useful work. The IOStream library is old fashion.

There is essentially zero support for C++11, although a few things have
been sprinkled in here and there.

Peter
Dan Partelly
2012-09-21 07:05:15 UTC
Permalink
Thanks Peter.


Btw, Ive seent that you made some lectures of your parallel programming
course available on
Adobe connect platform. Is there any way you could make those available as a
download too?
I would like to watch them, but I much prefer to download them for the
convenience of viewing anywhere at anytime.

Thanks Dan
Post by Peter C. Chapin
Post by Dan Partelly
Is there any list of what level of C++ support have been done so far
and can be expected in the next release ? And in general is there any
list with detail exactly what level of the C++ the watcom compiler
has ?
http://www.openwatcom.org/index.php/Cpp_compiler_and_library
I'm not sure how up to date it is.
Roughly, Open Watcom implements a significant percentage of C++98. There
are still a number of deficiencies related to the more "exotic" aspects of
C++98 although some of them are troublesome. For example it isn't
currently possible to define a template member of a class template outside
the class template (all such members have to be inline). Also
template-template parameters are unsupported, etc. There are also a number
of irksome bugs.
The STL provided with OW is incomplete although enough is implemented to
do useful work. The IOStream library is old fashion.
There is essentially zero support for C++11, although a few things have
been sprinkled in here and there.
Peter
Loading...