Page 1 of 2

Future of Visual C++ 6.0 support

Posted: Thu Nov 18, 2004 10:16 pm
by sinbad
Visual C++ 6.0 is old. Very old. It's full of bugs (internal compiler errors, scoping errors) and poor implementations (template specialisation) that have continuously caused us to add small hacks to the Ogre source and avoid using some template structures. It's a pain in the arse, and I for one am getting quite cheesed off with supporting it.

In addition, MS is dropping support for VC6 right now. DirectX 9.0c has problems with it, and MS's advice is to upgrade (unsurprisingly). They are hinting that near future versions of the platform SDK won't support it either, for the same reasons as DirectX (they say security).

What I'd like to get a view on is the number of people still using it, and what you would do if we dropped support for it at some point in the near future.

Posted: Thu Nov 18, 2004 10:38 pm
by Kencho
I currently use VC6, but I'll upgrade to VC8 soon. Anyways, I would prefer to use free software, as many people here.

Posted: Thu Nov 18, 2004 10:43 pm
by :wumpus:
I vote for dropping VC6 support, but only as soon as we officially support mingw without hacks and patches. I think supporting VC6 is more of a burden than supporting mingw, because the lack of C++ compliance and the buggyness of VC6 really holds us back from doing stuff right.

Posted: Thu Nov 18, 2004 10:43 pm
by Banania
I still use VC6. It is more a habit than a real choice.
In fact, I like the IDE better than the .NET one. That's merely the main reason actually as I'am well aware that the compiler is crap.

So, even though I was tempted to answer "hunt you down", I guess I would have no choice but switch to VC7.1 or maybe VC8.
It was meant to happen someday anyhow.

Posted: Thu Nov 18, 2004 11:37 pm
by dennis
What about having volunteers maintain a separate branch for it?

Posted: Thu Nov 18, 2004 11:38 pm
by jonnii
i say get rid of vc6.0 :D

vs8 is absolutely rocking.

Posted: Fri Nov 19, 2004 12:13 am
by _mental_
Personally I'm all for getting rid of the VC 6.0 build, but I think this should be a post 1.0 thing. We've supported it this far so I think we should support it for our first major version. Post 1.0 I'm for dropping it for the development branch but keeping it for the 1.0 bugfix branch. If someone else wants to support it in the post 1.0 development branch and beyond they are perfectly welcome to do so.

Being able to use co-variant return types (as well as a few other advanced c++ features) makes me happy so I look forward to a time when we can drop VC 6.0 support.

Posted: Fri Nov 19, 2004 12:44 am
by pjcast
_mental_ wrote:Personally I'm all for getting rid of the VC 6.0 build, but I think this should be a post 1.0 thing. We've supported it this far so I think we should support it for our first major version. Post 1.0 I'm for dropping it for the development branch but keeping it for the 1.0 bugfix branch. If someone else wants to support it in the post 1.0 development branch and beyond they are perfectly welcome to do so.

Being able to use co-variant return types (as well as a few other advanced c++ features) makes me happy so I look forward to a time when we can drop VC 6.0 support.
I agree with you completely. Perhaps the next major version after 1 can stop VC6 support. Version 1 should satisfy people with VC6 for a while. And after that, they would be forced to upgrade for newer versions (or hack up the OGRE code to allow support still) - in either case it would no longer be a burden to you guys :)

Posted: Fri Nov 19, 2004 1:30 am
by Snugglebear
Still waiting on a final version of 8/2005. Until that point VS6 will hang around. If OGRE dumps support in the interim I'll be spending a lot of time on documentation and/or design work, not programming.

Posted: Fri Nov 19, 2004 1:43 am
by monster
Personally I'm all for getting rid of the VC 6.0 build, but I think this should be a post 1.0 thing. We've supported it this far so I think we should support it for our first major version.
Far be it from me to disagree with the Ogre devs, but IMHO I'd suggest the exact opposite.
:twisted:

If you're not going to support VC6 going forward, then desupporting it before you get to 1.0 seems like the sensible thing to do. Otherwise, people using VC6 are going to pick up Ogre 1.0 and then get really upset when 1.1 comes out and they're suddenly desupported. If "official" Ogre doesn't support VC6 then any separate VC6-compatible branch (if one exists) should never make it to 1.0, to save confusion.

Having said that, I think there should be an alternative and official support for DevCpp/MingW seems like the ideal candidate. Personally I use VC7.1 but I can understand that people can't afford to / don't want to fork out for this Microsoft gubbins. I'd hate to see Ogre held back because of hacks needed to support an ancient compiler, so DevCpp/MingW looks like the only reasonable way forward.

Posted: Fri Nov 19, 2004 4:14 am
by stodge
I voted for switching to DevCpp/MingW: it would enable more people to get access to OGRE, who can't afford Microsoft's compilers. They could always switch to Linux, but that might not happen! :wink:

Posted: Fri Nov 19, 2004 4:31 am
by Silent
Edited:

Open Your Wallet
Version Six Is Really Bad
Microsoft Upgrade

Posted: Fri Nov 19, 2004 4:53 am
by Whitebear
It would be nice for the mankind to get rid of VC6.0 along with M$ itself. Just my private opinion. :)

Posted: Fri Nov 19, 2004 6:02 am
by thegame
It would be nice for the mankind to get rid of VC6.0 along with M$ itself. Just my private opinion
:D

Yup VS 6 is _bad_. VS 7.1 is defenitly the way to go.

Posted: Fri Nov 19, 2004 6:41 am
by Snugglebear
Silent wrote:Edited:

Open Your Wallet
Version Six Is Really Bad
Microsoft Upgrade
Want New Compiler
Seven Is Soon Obsolete
Pay Twice I Shall Not

Around The Corner
Eight Remains Poised For More Tests
Release Date Plus Plus

Posted: Fri Nov 19, 2004 7:34 am
by IoN_PuLse
I agree with wumpus, mingw support should replace the current vc6 support.

Posted: Fri Nov 19, 2004 7:45 am
by tuan kuranes
There is at least 3 paginglandscape plugin users that I know who use VC6.
(but don't seems to use forums much...)

The solution would be to find a free way to use MS free "Visual C++ Toolkit 2003" within VC6.

Some googling gives at least a 50 $ shareware that "seems" to allow so :
http://www.programmersheaven.com/zone3/cat155/36920.htm

Posted: Fri Nov 19, 2004 10:50 am
by Deamon
_mental_ wrote:Personally I'm all for getting rid of the VC 6.0 build, but I think this should be a post 1.0 thing. We've supported it this far so I think we should support it for our first major version. Post 1.0 I'm for dropping it for the development branch but keeping it for the 1.0 bugfix branch. If someone else wants to support it in the post 1.0 development branch and beyond they are perfectly welcome to do so.

Being able to use co-variant return types (as well as a few other advanced c++ features) makes me happy so I look forward to a time when we can drop VC 6.0 support.
I would mutch appritiate this approach. Since i'm still using VC6 and cannot affort to upgrade so soon.

Deamon

Posted: Fri Nov 19, 2004 12:58 pm
by iq
Didn't vote as I have upgraded already, but want to give my opinion on this:
Personally I'm all for getting rid of the VC 6.0 build, but I think this should be a post 1.0 thing. We've supported it this far so I think we should support it for our first major version.
Apart from the point monster made one thing on the road to 1.0 is said to be a thorough code review - a good point to get rid of all unneccessary cruft and workarounds, So keeping VC6 only to drop it directly after 1.0 sounds like a missed chance to me.
Anyway I trust the Ogre team to come up with a reasonable decision considering the sterling job they did so far...

PS: can someone shoot all the comercial vendors that buy up all the VS packages on ebay - doing that would make upgrading a lot less painful for most people :wink:

Posted: Fri Nov 19, 2004 2:34 pm
by :wumpus:
You can use the free VC8 (with IDE!) beta (http://msdn.microsoft.com/express/) to compile OGRE (there's a topic describing exactly what you need to do), maybe that's a good hint to current VC6 users :) This means you don't have to mess around with getting the free but IDE-less 2003 to work.

I think we should drop VC6 (and take up mingw) *before* 1.0 . Dropping it afterwards is indeed a missed oppertunity,

Posted: Fri Nov 19, 2004 2:58 pm
by sinbad
I agree with _mental_, that since we have supported VC6 so far and potentially built up a VC6 user base, we should support them for 1.0. When I said 'near future', I was talking about near term after 1.0 really. Whilst I can appreciate the opinion that dropping it before 1.0 would make the 1.0 release 'cleaner', I don't think that outweighs the need to support the existing base with a 'finished' release. There's also the issue of timing - VC8 won't be out officially until a good few months after 1.0 anyway. I think that once VC8 is officially released, we should shift version support upwards; I see no justification to support 3 major versions of a product, but the current and previous version is reasonable.

I also think this will give us enough time to test MingW properly. Given the amount of work that's in progress for 1.0 I think we have enough on our hands, but we can gradually build up the MingW support over that time. If we drop VC6 before 1.0, we should get no-cost alternatives 100% supported as a replacement to avoid potentially losing users, and I don't know that we have the time for that. Better to overlap them I think.

Posted: Fri Nov 19, 2004 3:00 pm
by _mental_
Sounds good to me.

Posted: Fri Nov 19, 2004 8:02 pm
by Snugglebear
:wumpus: wrote:You can use the free VC8 (with IDE!) beta (http://msdn.microsoft.com/express/) to compile OGRE (there's a topic describing exactly what you need to do), maybe that's a good hint to current VC6 users :) This means you don't have to mess around with getting the free but IDE-less 2003 to work.

I think we should drop VC6 (and take up mingw) *before* 1.0 . Dropping it afterwards is indeed a missed oppertunity,
I am not a source of free labor for Microsoft. If they want me to test their products, they can pay me.

Posted: Fri Nov 19, 2004 8:07 pm
by Chaster
monster wrote:
Personally I'm all for getting rid of the VC 6.0 build, but I think this should be a post 1.0 thing. We've supported it this far so I think we should support it for our first major version.
Far be it from me to disagree with the Ogre devs, but IMHO I'd suggest the exact opposite.
:twisted:

If you're not going to support VC6 going forward, then desupporting it before you get to 1.0 seems like the sensible thing to do. Otherwise, people using VC6 are going to pick up Ogre 1.0 and then get really upset when 1.1 comes out and they're suddenly desupported. If "official" Ogre doesn't support VC6 then any separate VC6-compatible branch (if one exists) should never make it to 1.0, to save confusion.

Having said that, I think there should be an alternative and official support for DevCpp/MingW seems like the ideal candidate. Personally I use VC7.1 but I can understand that people can't afford to / don't want to fork out for this Microsoft gubbins. I'd hate to see Ogre held back because of hacks needed to support an ancient compiler, so DevCpp/MingW looks like the only reasonable way forward.
I agree with Monster. Supporting VC 6.0 in the 1.0 build and then dropping it makes no sense to me. Version 1.0 should be the "foundation" release - and anything in it should be considered "base". Putting in something you know you are going to drop almost immediately thereafter makes no sense.

Drop it now is my vote. And up until a week ago, I was still using VC 6 for Ogre. VC 6 is old and decrepit. It's time to lay it to rest. BTW, there is a way to use the VC 7 Toolkit with VC 6. See the following webpage:

http:// http://www.sawtoothdistortion.com/Artic ... piler.html

Note that doing so (using the VC 7 compiler with VC 6) is not without problems, but it's doable..

Chaster

Posted: Fri Nov 19, 2004 8:31 pm
by dorvo
If you're planning on supporting DevCPP/MingW and VC7.x, why bother using VC6.0? Like other people have said, it's "old and decrepit". :)

Take, for example, the issue with compiling OGRE: with VC6, you're REQUIRED to use STLPort (which isn't such a bad thing), but with VC7.x, it's now optional. That's one less dependency on compiling. Personally, I was never able to get STLport to work with VC7.1, so I'm just using the STL that comes with VC7.1 to compile with.

If that's just the beginning of the issues with VC6.0, then wouldn't it be better to drop it? From what Chaster said:
Version 1.0 should be the "foundation" release - and anything in it should be considered "base". Putting in something you know you are going to drop almost immediately thereafter makes no sense.
You may actually lose users if the VC6.0 support was left in for v1.0.0, then dropped right afterwards. However, by adding support for DevCPP/MingW, which were free the last time I looked (and are pretty decent to use), the VC6.0 users may take that route, or upgrade when VC8 is officially released.

Unfortunately, there's no easy trade-off for this. But, if you are planning to cut off support for VC6.0 entirely, it might work better to stop supporting it earlier, that way, when v1.0.0 is released, people will have had experience using OGRE with the supported compilers.