Re: [Maria-developers] Status of Windows build
[moving the discussion to maria-developers@] Timour Katchaounov <timour@askmonty.org> writes:
Sergey,
1. buy VS Enterprise Edition (or Standard Edition, I wasn't able to figure out what exactly do we need to make builds. They don't offer evaluation versions of Standard, only Enterprise).
2. make the build script support building with VS Community Edition (possible but will take some time).
No, we should not build with VS Community Edition. AFAIK, the free edition's compiler produces much less optimized code than the payed for editions. I don't think it is serious on our side to save money by not buying one VS license.
On the other hand, the advantage of building with the community edition (I think we really mean the express / no-cost edition right?) is that it makes it easier for people to build themselves (and get the same result as our release builds). This is IMO important, we are an Open Source project after all. So it would be interesting to learn if there really is a speed difference here. Do you have some background information on this? Or do we need to run benchmarks to know for sure?
One more alternative would be to create a Windows virtual machine, and install the evaluation version in the VM. Then once there is a copy, one can always roll-back to the "fresh" installation.
Given what is at stake, I'd much prefer that we have a license of VS.
As I said above, I would prefer using the no-cost version, unless there is a real reason not to. Just my 2 cents, - Kristian.
+1 On Jan 14, 2010 8:29 AM, "Kristian Nielsen" <knielsen@knielsen-hq.org> wrote: [moving the discussion to maria-developers@] Timour Katchaounov <timour@askmonty.org> writes:
Sergey,
1. buy VS Enterprise Edition (or Standard Edition, I wasn't able to figure out what exactly do we need to make builds. They don't offer evaluation versions of Standard, only Enterprise).
2. make the build script support building with VS Community Edition (possible but will take some time).
No, we should not build with VS Community Edition. AFAIK, the free edition's compiler produces much less optimized code than the payed for editions. I don't think it is serious on our side to save money by not buying one VS license.
On the other hand, the advantage of building with the community edition (I think we really mean the express / no-cost edition right?) is that it makes it easier for people to build themselves (and get the same result as our release builds). This is IMO important, we are an Open Source project after all. So it would be interesting to learn if there really is a speed difference here. Do you have some background information on this? Or do we need to run benchmarks to know for sure?
One more alternative would be to create a Windows virtual machine, and install the evaluation version in the VM. Then once there is a copy, one can always roll-back to the "fresh" installation.
Given what is at stake, I'd much prefer that we have a license of VS.
As I said above, I would prefer using the no-cost version, unless there is a real reason not to. Just my 2 cents, - Kristian. _______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
Kristian, all, Not being a build/packaging expert, there are two issues here: - Making it possible for any developer to build (and develop) MariaDB on Windows with Visual C++. This is perfectly possible with either edition of Visual C++. - Creating a binary distribution for direct installation. This is the issue we are discussing. I spent half an hour searching MS web site for a comparison of the versions, and Bo seems right - no differences are claimed with respect to the optimizing compiler. The major two differences I found in the VC++ 2008 that affect us are: A) The Express Edition cannot build 64-bit binaries. B) The Express Edition has much fewer tools to create binary packages. To me (A) is the more important one, and (B) needs to be investigated. Since Sergey Petrunia built the binaries so far, I hope he can tell whether what's missing in the Express Edition is needed or not. My source of information is this page: http://tinyurl.com/c3e5mh (original:) http://www.microsoft.com/downloads/details.aspx?familyid=727BCFB0-B575-47AB-9FD8-4EE067BB3A37&displaylang=en Timour
[moving the discussion to maria-developers@]
Timour Katchaounov <timour@askmonty.org> writes:
Sergey,
1. buy VS Enterprise Edition (or Standard Edition, I wasn't able to figure out what exactly do we need to make builds. They don't offer evaluation versions of Standard, only Enterprise).
2. make the build script support building with VS Community Edition (possible but will take some time). No, we should not build with VS Community Edition. AFAIK, the free edition's compiler produces much less optimized code than the payed for editions. I don't think it is serious on our side to save money by not buying one VS license.
On the other hand, the advantage of building with the community edition (I think we really mean the express / no-cost edition right?) is that it makes it easier for people to build themselves (and get the same result as our release builds). This is IMO important, we are an Open Source project after all.
So it would be interesting to learn if there really is a speed difference here. Do you have some background information on this? Or do we need to run benchmarks to know for sure?
One more alternative would be to create a Windows virtual machine, and install the evaluation version in the VM. Then once there is a copy, one can always roll-back to the "fresh" installation.
Given what is at stake, I'd much prefer that we have a license of VS.
As I said above, I would prefer using the no-cost version, unless there is a real reason not to.
Just my 2 cents,
- Kristian.
On Fri, Jan 15, 2010 at 1:54 AM, Timour Katchaounov <timour@askmonty.org> wrote:
Kristian, all,
Not being a build/packaging expert, there are two issues here: - Making it possible for any developer to build (and develop) MariaDB on Windows with Visual C++. This is perfectly possible with either edition of Visual C++. - Creating a binary distribution for direct installation. This is the issue we are discussing.
I spent half an hour searching MS web site for a comparison of the versions, and Bo seems right - no differences are claimed with respect to the optimizing compiler.
I concur. The compiler is the same one as in standard and professional editions. In fact, the latest compilers themselves come free with the platform SDK. Visual Studio can be configured to make use of them. Last I checked (v6.1 SDK) these compilers are the enterprise versions, containing static code analysis, if you like bells-and-whistles. But the compilers than come with the IDE suffice, and I repeat, are the same as what's in Standard/Professional. See "cl /?".
The major two differences I found in the VC++ 2008 that affect us are: A) The Express Edition cannot build 64-bit binaries.
This can be made to work. If you download the platform SDK, you can install the X64 compilers, and configure Visual Studio to use them. If we need to automate the build, then we can the the SetEnv.cmd script to set the environment for us (E.g. setenv /x64 /Release) and use MSBuild (or vcbuild) as before, provided that CMake generates appropriate x64 configurations for us (which it should with cmake -g "Visual Studio 9 2008 Win64").
B) The Express Edition has much fewer tools to create binary packages.
Which tools are you missing? Most if not all are part of the platform SDK. - Alex
In fact, if all you want is an automated build, you don't even need the IDE. Just download the PSDK and use MSBuild to build the CMake-generated solution. On Fri, Jan 15, 2010 at 12:41 PM, Alex Budovski <abudovski@gmail.com> wrote:
On Fri, Jan 15, 2010 at 1:54 AM, Timour Katchaounov <timour@askmonty.org> wrote:
Kristian, all,
Not being a build/packaging expert, there are two issues here: - Making it possible for any developer to build (and develop) MariaDB on Windows with Visual C++. This is perfectly possible with either edition of Visual C++. - Creating a binary distribution for direct installation. This is the issue we are discussing.
I spent half an hour searching MS web site for a comparison of the versions, and Bo seems right - no differences are claimed with respect to the optimizing compiler.
I concur. The compiler is the same one as in standard and professional editions. In fact, the latest compilers themselves come free with the platform SDK. Visual Studio can be configured to make use of them. Last I checked (v6.1 SDK) these compilers are the enterprise versions, containing static code analysis, if you like bells-and-whistles.
But the compilers than come with the IDE suffice, and I repeat, are the same as what's in Standard/Professional. See "cl /?".
The major two differences I found in the VC++ 2008 that affect us are: A) The Express Edition cannot build 64-bit binaries.
This can be made to work. If you download the platform SDK, you can install the X64 compilers, and configure Visual Studio to use them.
If we need to automate the build, then we can the the SetEnv.cmd script to set the environment for us (E.g. setenv /x64 /Release) and use MSBuild (or vcbuild) as before, provided that CMake generates appropriate x64 configurations for us (which it should with cmake -g "Visual Studio 9 2008 Win64").
B) The Express Edition has much fewer tools to create binary packages.
Which tools are you missing? Most if not all are part of the platform SDK.
- Alex
-----Original Message----- From: maria-developers-bounces+wlad=sun.com@lists.launchpad.net [mailto:maria-developers-bounces+wlad=sun.com@lists.launchpad.net] On Behalf Of Alex Budovski Sent: Friday, January 15, 2010 2:44 AM To: Timour Katchaounov Cc: Kristian Nielsen; maria-developers@lists.launchpad.net; Bo Thorsen Subject: Re: [Maria-developers] Status of Windows build
In fact, if all you want is an automated build, you don't even need the IDE. Just download the PSDK and use MSBuild to build the CMake-generated solution.
CMake won't generate a VS solution if Visual Studio is not installed (CMake is using devenv internally, for platform checks etc). But CMake also can generate makefiles with cmake -G "NMake Makefiles", and this works fine with SDK.
On Fri, Jan 15, 2010 at 1:54 AM, Timour Katchaounov <timour@askmonty.org> wrote:
Kristian, all,
Not being a build/packaging expert, there are two issues here: - Making it possible for any developer to build (and develop) MariaDB on Windows with Visual C++. This is perfectly possible with either edition of Visual C++. - Creating a binary distribution for direct installation. This is the issue we are discussing.
I spent half an hour searching MS web site for a comparison of the versions, and Bo seems right - no differences are claimed with respect to the optimizing compiler.
I concur. The compiler is the same one as in standard and
On Fri, Jan 15, 2010 at 12:41 PM, Alex Budovski <abudovski@gmail.com> wrote: professional
editions. In fact, the latest compilers themselves come free with the platform SDK. Visual Studio can be configured to make use of them. Last I checked (v6.1 SDK) these compilers are the enterprise versions, containing static code analysis, if you like bells-and-whistles.
But the compilers than come with the IDE suffice, and I repeat, are the same as what's in Standard/Professional. See "cl /?".
The major two differences I found in the VC++ 2008 that affect us are: A) The Express Edition cannot build 64-bit binaries.
This can be made to work. If you download the platform SDK, you can install the X64 compilers, and configure Visual Studio to use them.
If we need to automate the build, then we can the the SetEnv.cmd script to set the environment for us (E.g. setenv /x64 /Release) and use MSBuild (or vcbuild) as before, provided that CMake generates appropriate x64 configurations for us (which it should with cmake -g "Visual Studio 9 2008 Win64").
B) The Express Edition has much fewer tools to create binary packages.
Which tools are you missing? Most if not all are part of the platform SDK.
- Alex
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
Timour Katchaounov <timour@askmonty.org> writes:
- Making it possible for any developer to build (and develop) MariaDB on Windows with Visual C++. This is perfectly possible with either edition of Visual C++.
I want it to be easy for people to build themselves something that is as good as what we release. At MySQL, there were tons of magic in secret build scripts used to build releases, and I desparately want to avoid that. (I'm not saying that we are doing the same for Windows currently, just explaining my reasoning). Thus all else being equal I want us to spend our efforts primarily on building with the tools that our users (those that want to build themselves) will be building with. (But as you explain below, all else is not equal).
I spent half an hour searching MS web site for a comparison of the versions, and Bo seems right - no differences are claimed with respect to the optimizing compiler.
The major two differences I found in the VC++ 2008 that affect us are: A) The Express Edition cannot build 64-bit binaries.
Right, that's a showstopper :-/ - Kristian.
The major two differences I found in the VC++ 2008 that affect us are: A) The Express Edition cannot build 64-bit binaries.
Right, that's a showstopper :-/
If Cmake is able to produce a 64bit project (via cmake -g "Visual Studio 9 2008 Win64") with the express IDE installed, then the rest is simple*. I'd be curious to see if it can. * See my earlier post. - Alex
participants (5)
-
Adam M. Dutko
-
Alex Budovski
-
Kristian Nielsen
-
Timour Katchaounov
-
Vladislav Vaintroub