It also takes quite a while to close: about 1 minute on my Virtual Box
machine (1GB RAM) running inside i5/8GB.
Having a .sln file for each project would reduce the load time obviously,
but that would defeat the purpose of using an IDE. There is a natural
workflow with the IDE. The idea is to capture that workflow. If the work
flow is lost, then it makes more sense to go back to using Visual Studio as
an editor, and building "manually", because there is such a thing as the
"productivity" tool becoming a burden itself..
I am wondering if the load-time can be reduced by reworking the project
settings. From the moment I load the .sln, to the moment that I can start
editing a .c file, there is a 48-second delay in the virtual machine above.
Of course, during this delay, Visual Studio is:
1. building internal dependency graphs based on #include files.
2. building internal parse tree to support IntelliSense and other
things.
As it stands, unless I am mistaken, the #include directories that are being
specified to the IDE include superfluous paths, which would result in a
(likely very small) performance increase based on directory searching alone.
Here is the list of the #include directories for the calc application:
Here is a partial list of the #include file dependencies for calc. One can
conclude that there might be dependencies that are superfluous:
This appears to be the case for several applications, including Notepad,
which includes headers for cryptography and networking:
There are things that the programmer can do to reduce the pollution of the
compiler's parse tree. One should add the following macro to the compiler's
command-line when possible:
WIN32_LEAN_AND_MEAN
This #define disables entire blocks of /#ifdef,#include, #include, #include,
#include, #include,#endif/ sequences in Windows(-like?) header files, which
would obviously prevent the compiler from processing those header files into
its parse tree.
As a basic metric, before leaving the conversion to Amine, I converted
roughly 10% of the 800 projects in ReactOS to the IDE. The load time was 3
seconds for this 10%, but I had not yet specified the #include paths to the
IDE, and hence, the code was not building, and surely, the edit-time
compilation was aborting each time that it could not find a #include file,
for, say, mminit.c.
This leaves us to conclude that the best way to find out what the true
performance will be is to finish the structure of the .sln and .vcproj files
to their final state, removing superfluous paths and inclusions, and measure
that.
Finally, all of this is only for x86-32. There is still x86-64, and ARM to
consider. Fortunately, Visual Studio knows better than to build IntelliSense
databases for all CPU's simultaneously. When the user tells the IDE to use a
particular CPU, that is when Visual Studio starts is computation of the
IntelliSense parse-tree.
-John
From: ros-dev-bounces(a)reactos.org [mailto:ros-dev-bounces@reactos.org] On
Behalf Of BinSys
Sent: Thursday, January 10, 2013 11:48 PM
To: ReactOS Development List
Subject: Re: [ros-dev] Notice Of Intent - Visual Studio Build of ReactOS
I suggest a sln file in each directory. Only a sln file is too big, very
slow to load.
At 2013-01-11 07:01:28,"J. C. Jones" <jaibuduvin(a)gmail.com> wrote:
Hi All,
I wanted to give an update since it has been a few days.
As you know, Amine was already in the process of generating Visual Studio
.sln and .vcxproj files for the entire ReactOS tree when I started my own
parallel conversion to Visual Studio. Therefore, I dropped my own
conversion, since there would have been considerable redundancy had I not.
Here is what there is so far (Amine can correct me if I am wrong):
1. Developer pulls entire ReactOS source tree from SVN repository.
2. Developer pulls CMake bundle from
ReactOS.org
3. Developer includes in ENVIRONMENT variable the path to Cmake bin
directory.
4. Developer executes cmake -version.
5. Developer executes configure VSSolution.
6. Developer opens host-tools\reactos.sln and compiles it.
7. Developer opens reactos\reactos.sln and does build.
I am sure Amine can tell you more if you like.
-John
From: ros-dev-bounces(a)reactos.org [mailto:ros-dev-bounces@reactos.org] On
Behalf Of Ged Murphy
Sent: Sunday, January 06, 2013 6:11 AM
To: ReactOS List
Subject: Re: [ros-dev] Notice Of Intent - Visual Studio Build of ReactOS
To speed up the process for you, I'd recommend you get a copy of RosBE and
run 'make msvc10'
This will generate all the project files and a solution for for you, in a
mostly buildable state. I think it may also generate some property sheets,
which you should definitely try to incorporate. I can help you with suitable
property sheets if you'd like some advise on this.
We've already put quite a bit of effort into generating dynamic visual
studio projects, (as this is definitely the only maintainable solution IMO),
so the outputted vcxproj files should lay down a good base for you to work
with.
Ged.
From: "J. C. Jones" <jaibuduvin(a)gmail.com>
Reply-To: ReactOS List <ros-dev(a)reactos.org>
Date: Friday, 4 January 2013 19:30
To: ReactOS List <ros-dev(a)reactos.org>
Subject: Re: [ros-dev] Notice Of Intent - Visual Studio Build of ReactOS
Ok. VS2010+ it will be. J
I will do a quick review to make sure that we can get all the multiple-CPU
development features, etc. and report back.
Cheers.
From: ros-dev-bounces(a)reactos.org [mailto:ros-dev-bounces@reactos.org] On
Behalf Of Aleksey Bragin
Sent: Friday, January 04, 2013 1:25 PM
To: ReactOS Development List
Subject: Re: [ros-dev] Notice Of Intent - Visual Studio Build of ReactOS
It's up to you of course, but VS2008 is too dated, and VS2012 is "too new"
indeed, so many devs will cry about incompatible project files.
So, VS2010 would be the ideal bet, as Ged said.
Regards,
Alex Bragin
On 04.01.2013 23:21, J. C. Jones wrote:
Yes.
But initially, I wanted to make it so that anyone, especially a newbie,
could go from discovering ReactOS, to an edit-compile-link-debug cycle of
"Hello, World!" within the IDE in 30 minutes or less (not the OS, just a
single app). That means accommodating whatever version of Visual Studio they
are using. VS2008 is safe, because, no matter which version they are using:
VS2008, VS2010, VS2011, or VS2012, the conversion would be done
automatically, on their machine, and since the project files in SVN would be
locked, there'd be no harm done to SVN using this method. However, if I
start out with VS2012, for example, then, sure, they could go and download
VS2012 alongside say, VS2010.but my goal was to present a totally new user
with the SVN URL for ReactOS, and say, "Here is is. Give it a try!", and
remove all excuses for them trying it out. [I figured that having to install
a 1GB+ tool alongside a very similar tool was a bigger excuse for most
newbie developers than having to wait < 5 minutes to watch the VS2012 do its
conversion.]
That said, if Visual Studio users came back and said, "We're not using
VS2008 anyway!" then I would change it, and I am definitely open to ideas on
this.
Sent: Friday, January 04, 2013 3:43 AM
To: 'ReactOS Development List'
Subject: Re: [ros-dev] Notice Of Intent - Visual Studio Build of ReactOS
VS2008?
Shouldn't you be doing this in 2012, especially considering the much
improved support for kernel mode projects.
At the very least you should be using 2010 as 2012 can open 2010 project
without modification to project files.
From: ros-dev-bounces(a)reactos.org [mailto:ros-dev-bounces@reactos.org] On
Behalf Of J. C. Jones
Sent: 04 January 2013 02:40
To: 'ReactOS Development List'
Subject: Re: [ros-dev] Notice Of Intent - Visual Studio Build of ReactOS
Yes, it is one thing to create a project file, which takes 15-30 seconds. It
is another thing to get the configuration right. Fortunately, there are
copious notes and highly-readable scripts in the tree which practically say
what needs to be done, so I do not anticipate any major hurdles.
I spent a little time in the source tree today. I integrated a few modules
into Visual Studio 2008, an tested calc, by buiding it from within Visual
Studio for x86-32 and x86-64. It ran fine, thanks to the author(Mr. Carlo
Bramini) who left good notes in his source code. Just for kicks, I also
created an ARM-based project that would run on the Raspberry Pi, compiled it
from within VS2008, and ran it inside the emulator that comes with VS2008.
That ran fine also. Tomorrow I will ask a colleague to try the following:
1. Pull the repository to his local hard disk from inside Visual
Studio.
2. Hit Build.
3. Run calc in an edit- compile-debug loop.
From: ros-dev-bounces(a)reactos.org [mailto:ros-dev-bounces@reactos.org] On
Behalf Of Timo Kreuzer
Sent: Thursday, January 03, 2013 2:18 AM
To: ReactOS Development List
Subject: Re: [ros-dev] Notice Of Intent - Visual Studio Build of ReactOS
Am 02.01.2013 19:04, schrieb J. C. Jones:
It would take 2-3 hours to create VS projects for all user-mode modules.
No offence, but I think you are highly underestimating the magnitude of our
codebase. We are talking about several hundred modules. And you probably
also overestimate the pace at which you can create project files. I did that
myself for a much smaller project, so I know what I'm talking about.
But maybe I'm wrong and they call you "The Machine" :D
_____
_____
No virus found in this message.
Checked by AVG -
www.avg.com
Version: 2013.0.2805 / Virus Database: 2637/6008 - Release Date: 01/03/13
_______________________________________________ Ros-dev mailing list
Ros-dev(a)reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev
_____
No virus found in this message.
Checked by AVG -
www.avg.com
Version: 2013.0.2805 / Virus Database: 2637/6012 - Release Date: 01/05/13
_____
No virus found in this message.
Checked by AVG -
www.avg.com
Version: 2013.0.2890 / Virus Database: 2637/6023 - Release Date: 01/10/13