Visual C++ 6.0 vs 2008?

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
phhnguyen
Posts: 1434
Joined: Wed Apr 21, 2010 4:58 am
Location: Australia
Full name: Nguyen Hong Pham

Visual C++ 6.0 vs 2008?

Post by phhnguyen »

I have just been back to chess hobby after a while and have a "silly" question: which version of Visual Studio - 6.0 or 2008 is better for chess, at least for chess speed?

(I confuse because some my friends still prefer 6.0 than 2008).

Thanks for your helps.
Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: Visual C++ 6.0 vs 2008?

Post by Sven »

phhnguyen wrote:I have just been back to chess hobby after a while and have a "silly" question: which version of Visual Studio - 6.0 or 2008 is better for chess, at least for chess speed?

(I confuse because some my friends still prefer 6.0 than 2008).

Thanks for your helps.
I know Visual Studio 6.0 quite well, still being forced to use it at work in an old project where the effort to change the tool environment is bigger than the negative impact of keeping it. It is a "fossil", the compiler does not conform to current C++ standard in a couple of issues, it is not available for free, it is no longer supported officially by Microsoft, it has no full 64 bit support. And, to come back to your main question, for chess I think that the 6.0 compiler creates slower code than e.g. VS 2008.

It is possible, of course, to use VC++ 6.0 for chess development if a copy of it is available. A good argument for using 6.0 may be that someone is used to it, and therefore thinks that he can work with it quite efficiently while accepting some drawbacks. This is one of the key points: it is often a good choice to use the tool that one is most familiar with.

But in general, I would propose to use VS 2008 or 2010 mainly for the reasons given above.

Sven
Dann Corbit
Posts: 12540
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Visual C++ 6.0 vs 2008?

Post by Dann Corbit »

phhnguyen wrote:I have just been back to chess hobby after a while and have a "silly" question: which version of Visual Studio - 6.0 or 2008 is better for chess, at least for chess speed?

(I confuse because some my friends still prefer 6.0 than 2008).

Thanks for your helps.
VS 2008 is better in every way that I can possibly imagine.
User avatar
Onno Garms
Posts: 224
Joined: Mon Mar 12, 2007 7:31 pm
Location: Bonn, Germany

Re: Visual C++ 6.0 vs 2008?

Post by Onno Garms »

phhnguyen wrote:I have just been back to chess hobby after a while and have a "silly" question: which version of Visual Studio - 6.0 or 2008 is better for chess, at least for chess speed?
I never compared the performance, but I would be very surprised if 2008 has not at least the same speed like 6.0

6.0 (which is more then 10 years old) has a vastly inferior IDE and a huge number of compiler bugs / violations of C++ standard.

By all means avoid 6.0
User avatar
phhnguyen
Posts: 1434
Joined: Wed Apr 21, 2010 4:58 am
Location: Australia
Full name: Nguyen Hong Pham

Re: Visual C++ 6.0 vs 2008?

Post by phhnguyen »

Thanks all. Now it is clear to me. I will use VS2008. I guess some my friends "hate" VS200x because they use it for C# and compare with Java IDEs.

BTW, does anyone compare VS200x with gcc (in Windows)? Any change for gcc (in term of performance)?
Aleks Peshkov
Posts: 892
Joined: Sun Nov 19, 2006 9:16 pm
Location: Russia

Re: Visual C++ 6.0 vs 2008?

Post by Aleks Peshkov »

phhnguyen wrote:BTW, does anyone compare VS200x with gcc (in Windows)? Any change for gcc (in term of performance)?
Out of the box Microsoft compiler is faster. GCC have more compiler options that can be tuned for performance. For fair speed compare it is important to use latest GCC versions, but they are difficult to get on Windows platform.

Robust code should be possible to build in both systems.
Mincho Georgiev
Posts: 454
Joined: Sat Apr 04, 2009 6:44 pm
Location: Bulgaria

Re: Visual C++ 6.0 vs 2008?

Post by Mincho Georgiev »

MSVC++ 6.0 doesnt support 'long long' types, keep that in mind.
User avatar
phhnguyen
Posts: 1434
Joined: Wed Apr 21, 2010 4:58 am
Location: Australia
Full name: Nguyen Hong Pham

Re: Visual C++ 6.0 vs 2008?

Post by phhnguyen »

Mincho Georgiev wrote:MSVC++ 6.0 doesnt support 'long long' types, keep that in mind.
Do you mean 64 bit integer? In VC6.0 we can declare int64_t or LONG LONG.

I can develop most of chess jobs, from engine to GUI, using only VC6.0. However, it is too "old" to continue to use.
Mincho Georgiev
Posts: 454
Joined: Sat Apr 04, 2009 6:44 pm
Location: Bulgaria

Re: Visual C++ 6.0 vs 2008?

Post by Mincho Georgiev »

long long is not 64 bit integer under x86, rather is 2 32 bit integers, placed by the compiler in separate registers. However, maybe I'm wrong and forgot about it, since it was a long time ago using the vc 6.0, but I'm still pretty sure that 6.0 doesn't support neither __int64 nor unsigned long long types.

P.S. I remembered...
It does support __int64 only, but not unsigned long long. So it is preference dependent, i guess.
Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: Visual C++ 6.0 vs 2008?

Post by Sven »

Mincho Georgiev wrote:long long is not 64 bit integer under x86, rather is 2 32 bit integers, placed by the compiler in separate registers. However, maybe I'm wrong and forgot about it, since it was a long time ago using the vc 6.0, but I'm still pretty sure that 6.0 doesn't support neither __int64 nor unsigned long long types.

P.S. I remembered...
It does support __int64 only, but not unsigned long long. So it is preference dependent, i guess.
In MSVC++ 6.0 the platform-specific types "__int64" and "unsigned __int64" are both available. "long long" and "unsigned long long" are not available yet but the size is the same. With an appropriate portable definition of integer data types you can always use "higher level" types names like int64_t, uint64_t.

To actually get a 64 bit value placed in one 64 bit register by the compiler you need both a 64 bit box *and* a newer compiler, of course.

Sven