Project

General

Profile

Emulator Issues #3972

Visual Studio 2010

Added by Billiard26 over 9 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
% Done:

0%

Operating system:
Windows
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
Yes
Regression start:
Fixed in:

Description

I propose we switch to Visual Studio 2010 for the windows build.

The main reason for switching is for partial C++0x support
We would be able to use: auto, rvalue references, lambdas, static_assert (I have some usages planned :p)
g++ 4.5 supports all of these. (all but lambdas are supported by g++ 4.4)

Some other reasons to switch to VS2010:
- Nice interface
highlights errors before you compile, and it's blue!
- It's the year 2011
VS2010 express is free and we need to get with the times :p

If we decide to switch (and use C++0x features)
we would no longer be able to support vs2008, but again, vs2010 express is free, users can easily upgrade.

I have vs2010 solution/project files nearly ready. (I did not use the conversion wizard except for wxw)
I'll finish/commit them if we agree to switch.

Devs, please post if you have an opinion.

History

#2 Updated by BhaaL over 9 years ago

You already know my thoughts about it. I'm against it for below mentioned reasons, but I won't object if I'm the only one and the other devs want to update.

I use 2010 each day at work for a medium sized (11 project) C#/WPF solution, and half the team gets random hangs on compiling, debugging, exiting debug or just typing in the editor. You may want to look at Microsoft Connect IDs 498240, 504538, 564495, 527907, 566073, 623520, 574691, ...

Yes, its blue! One reason to update. C++0x, yay for auto! Another reason to update.
Being able to type without waiting for the IDE to respond, One reason to wait for SP1 or stick to 2008.
Oh, and my personal favorite: http://blogs.msdn.com/b/vcblog/archive/2009/11/17/improvements-to-find-all-references-in-visual-studio-2010.aspx - another reason not to (and no, shuffle, I don't want to get VAX one way or another :P)

#3 Updated by NeoBrainX over 9 years ago

Some points on this (mostly personal opinion):
- If lambdas aren't supported by gcc 4.4, we should think about not using them.. not sure which distro releases are using 4.4
- I still need to test MSVC 2010 to get an opinion on it.. gonna do that soon I guess
- Do any of these things actually improve anything or is it just for code prettiness? maybe the rvalue stuff improves speed, but then again I doubt the speed improvement would be big.
- Do we want to use CMake for windows as well or maintain separate vs2010 solution/project files? ...

Erm, and what about that include/lib path thing? It's set per-project now in msvc2010, can that be automated for dolphin so that you only have to specify the paths once?

I agree with j4ck.fr0st on "find all references" ... That functionality just sucks :P I can live with 3rd party solutions on that though.

#4 Updated by Anonymous over 9 years ago

Last night I found one bug (and the related hotfix) that may matter for dolphin (although people have been compiling dolphin without issues for a while now...):
See my post here http://blogs.msdn.com/b/vcblog/archive/2010/12/09/vs2010-sp1-beta-what-s-on-it-for-c-developers.aspx#10119114
If it were an issue with dolphin, people using the VS2010 builds would get strange crashes on movaps instructions, but that doesn't seem to be the case.

Also, check out the main topic of the post I was responding to - it seems like SP1 fixes some issues that j4ck.fr0st mentioned.

I'm all for moving to VS2010 anyways.

I'm all not for using cmake for VS files...

FWIW, 2008 is more unstable than 2010 on my machine (not that either are unstable to the point of being annoying).

@j4ck.fr0st If you don't want to use VAX, I'll consider that your own problem. However, now that I read the actual issue you're complaining about...the problem is just that you have to check a box in Tools > Options ??? How hard can that be? :P

#5 Updated by BhaaL over 9 years ago

It wouldnt be a problem if simply unchecking the option would fix it, but it doesn't. It's as broken as 2008, but that one at least doesn't take ages to find its stuff.

Whatever, do what you want :P

#6 Updated by LM1234 over 9 years ago

DeSmuME_2010_do_not_use_this_use_2008_instead_since_2010_is_buggy.sln

:)

#7 Updated by hrydgard over 9 years ago

  • Status changed from New to Accepted

Just noting my opinion:
* I am not against switching to VS2010
* I am against going crazy with new C++0x features, making the project uncompilable on even quite recent distros and MacOSX

#8 Updated by NeoBrainX over 9 years ago

Tested vs10 for some days now:
- when I'm doing an svn update while Dolphin is opened in vs10, it crashes during reloading certain projects
- relinking takes ages for some reason (that "Generating code" step), with both Release and DebugFast
- some trivial UI actions take up to 20 seconds to complete for me.. e.g. "view->property manager" or like changing solution configuration (at least for the first time, maybe after that it's faster)

  • evil-doer additionally reported linker crashes "on several recent revs", not sure about that one.

That's all I can think of right now, prolly missed one or two minor points...

Apart from C++0x support, I have yet to see anything which vs10 offers and vs08 doesn't... right now there haven't been any real advantages for me after upgrading.

Guess we should at least wait for SP1 until using C++0x... unless I at some point happen to be the last dev to be against it (UNLESS everyone else simply doesn't care :P).

#9 Updated by Anonymous over 9 years ago

  • when I'm doing an svn update while Dolphin is opened in vs10, it crashes during reloading certain projects
    -> Haven't seen this :/

  • relinking takes ages for some reason (that "Generating code" step), with both Release and DebugFast
    -> well, what happens when LTCG is used is that the compiler produces an intermediate representation for everything, which is then used as a whole by the linker. It should result in slightly faster compile stage, with a longer link stage. However, it gives a few % speed increase, and shaves off MBs from the Release .exe.
    LTCG and /GL has been disabled for the debugfast target.
    There seems to be some bugs with dolphin + LTCG + aggresive optimizations. Currently no one (including myself) is experiencing them...but I'll wait a bit in order to see if they pop up again.

  • some trivial UI actions take up to 20 seconds to complete for me.. e.g. "view->property manager" or like changing solution configuration (at least for the first time, maybe after that it's faster)
    VS is very HDD intensive while it builds up Intellisense stuff. Probably you've forgotten it's ever happened on 2008, but I assure you it does :p. And yeah, should only be slow the first time.

  • evil-doer additionally reported linker crashes "on several recent revs", not sure about that one.
    -> Haven't seen this either; sounded like something in his environment was wacky.

Apart from C++0x support, I have yet to see anything which vs10 offers and vs08 doesn't... right now there haven't been any real advantages for me after upgrading.
-> In general the UI is more responsive/quick to open/quick to close for me. I've also seen that the debugger is more helpful with deciphering complex types and their values.

Guess we should at least wait for SP1 until using C++0x... unless I at some point happen to be the last dev to be against it (UNLESS everyone else simply doesn't care :P).
-> There isn't really any msvc-related reason to not use c++0x stuff already. The only reason dolphin shouldn't use it at this point is because the gcc situation on OSX is apparently crappy and needs looking into.

#10 Updated by Anonymous over 9 years ago

OK, having said all that...
1) The vs2010 projects (pretty much just wxw I think) still generate a horrible amount of warnings that should be fixed before ditching 2008.
2) There seems to be some problem when building all configurations at once. You'll end up with strange errors because it seemingly tries to link x64 libs with x86 stuff. However if you build everything seperately it works fine...dunno, gotta check it out.
I think I'm the only person who uses batch build for everything at once, so not a critical issue :p

#11 Updated by samljer over 9 years ago

All valid arguments, free blah blah
but the move to VS2010 express does NOT support 64bit
i havent been able to emulate since the move
32bit is just too slow.
and i have a quad phenom2 940 3.0ghz

This change broke 64 bit. you guys made the change for a small improvement in speed
that was only lost again due to lack of 64bit. smooth.

#12 Updated by Anonymous over 9 years ago

64bit is supported just fine. smooth yourself.

#13 Updated by jackroberts06 over 9 years ago

"but the move to VS2010 express does NOT support 64bit"

http://www.youtube.com/watch?v=M_gGb_LLT64

#14 Updated by florian98.rg over 9 years ago

"You have to launch VS2010 from the x64 build environment.

Start Menu -> Windows SDK 7.1 -> Windows SDK 7.1 Command Prompt
Then run "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\VCExpress.exe" (or whatever/wherever your copy of VS is)"

That way you can compile x64

#15 Updated by skidau over 9 years ago

  • Status changed from Accepted to Fixed

The switch has been done.

Also available in: Atom PDF