VS 2005

H

Hendrik Schober

[...] It's an easy fix once you know about it. [...]

That's my point. Everybody not knowing
about it misses this. This might well
be tens of thousends of developers. And
they all still write code that ought to
have stopped to compile ten years ago.
And the reason given is that it has
been like this ten years...
That's why I want defaults compatible
with the future, not with the past.


Schobi

--
(e-mail address removed) is never read
I'm Schobi at suespammers dot org

"The presence of those seeking the truth is infinitely
to be prefered to those thinking they've found it."
Terry Pratchett
 
R

Ronald Laeremans [MSFT]

The (significantly!) better conformance and the reduction in build
throughput are very much related.

Ronald Laeremans
Visual C++ team

Hendrik Schober said:
Bret Pehrson said:
[...]
The compiler is definitely more _conformant_ to the standard, but I think
that
it is pretty much in unanimous agreement that it is slower.

I rather hvae it this way, than the
other way around.

Schobi

--
(e-mail address removed) is never read
I'm Schobi at suespammers dot org

"The presence of those seeking the truth is infinitely
to be prefered to those thinking they've found it."
Terry Pratchett
 
R

Ronald Laeremans [MSFT]

The defaults are changing (all 3 of the ones you mention) for VC 2005.

There are benefits for not breaking the users existing code out of the box
(in sometimes subtle ways). So we always try to give users 1 release time to
adjust to the changed behavior before making it the default in cases where
that is an option and where the change of behavior is as big as in the 2 /Zc
options.

Ronald Laeremans
Visual C++ team

Hendrik Schober said:
[...]
OK, the other HS is you [...]


It is me. I know you can make your own
wizards. But that's not the point. The
point is, that this still is the default.
So whoever doesn't look at all these
options and tweaks them, will get code
to compile without even a warning that
shouldn't compile on a C++ compiler for
ten years now.
We're told it's this way because there's
so much non-conformaing code out there.
But I consider this a stupid argument,
as this way we end up with even more of
such code!
I'd rather be compatible (by default!)
with the future than with the past. (And
that's especially true when the past is
gone as long as e.g. the old 'for' scope
behaviour is.)

Schobi

--
(e-mail address removed) is never read
I'm Schobi at suespammers dot org

"The presence of those seeking the truth is infinitely
to be prefered to those thinking they've found it."
Terry Pratchett
 
H

Hendrik Schober

Ronald Laeremans said:
The defaults are changing (all 3 of the ones you mention) for VC 2005.
Good.

There are benefits for not breaking the users existing code out of the box
(in sometimes subtle ways).

I know. But there also are benefits for
making users di The Right Thing(TM) out
of the box. The question is how you
weigh those two against each other. And
this is where I disagree with what you
do.
So we always try to give users 1 release time to
adjust to the changed behavior before making it the default in cases where
that is an option and where the change of behavior is as big as in the 2 /Zc
options.

I don't see the point in doing this. All
it does is making your customers write
even more lines that will give problems.
Ronald Laeremans
[...]


Schobi

--
(e-mail address removed) is never read
I'm Schobi at suespammers dot org

"The presence of those seeking the truth is infinitely
to be prefered to those thinking they've found it."
Terry Pratchett
 
R

Ronald Laeremans [MSFT]

So we always try to give users 1 release time
I don't see the point in doing this. All
it does is making your customers write
even more lines that will give problems.

It allows them to adopt the new version of the compiler and then decide on
their won time to do the work to their code base to make the changes. Having
the option, but having the default immediately work the other way should
accomplish the same, but in our experience means that an inordinate number
of customers get so scared by the initial build failures they just decide
not to upgrade and many don't even do a before further investigation.

Ronald
 
H

Hendrik Schober

Ronald Laeremans said:
It allows them to adopt the new version of the compiler and then decide on
their won time to do the work to their code base to make the changes.

This sounds good in theory. In reality,
however, changes are introduced steadily
with each new version.
So when your customers adopt version X of
the compiler there's a change that was
already introduced in X-1, but which,
since X-1 defaulted to the behaviour of
X-2, they never notized. Now they either
loose time by changing the code they had
written between X-1 and X (atop of older
code, that is) or they just have throw
the compatibility switch.
The first will most likely steal them
time and prevents them from realizing
that there are more changes introduced
with X which are agin hidden by the
compiler which uses the old behaviour by
default. So they'll face the very same
problem with the next version.
The second they could have done just as
well when X-1 was released.

Sorry, but I still fail to see the
advantage.
Having
the option, but having the default immediately work the other way should
accomplish the same, but in our experience means that an inordinate number
of customers get so scared by the initial build failures they just decide
not to upgrade and many don't even do a before further investigation.

So why not have a all-in-one switch for
compatibility with X-1, and maybe even
X-2? Whoever wants can throw that and go
on compiling and hacking old-style code.
If well advertized, everyone able to
read should be able to do that. I mean,
everyone using this product is dealing
with a language that has abstract virtual
base classes, class template partial
specialization -- while missing function
template partial specialization! --, and
comes with exceptions, but no GC, except
if they throw a switch -- by which they
get a very different language!
Heck, you could even bring in a wizard
that sets up or imports old projects so
that the code compiles.

Schobi

--
(e-mail address removed) is never read
I'm Schobi at suespammers dot org

"The presence of those seeking the truth is infinitely
to be prefered to those thinking they've found it."
Terry Pratchett
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top