BorlandTalk.com Forum Index BorlandTalk.com
Borland discussion newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Project Buld Wish List
Goto page 1, 2  Next
 
Post new topic   Reply to topic    BorlandTalk.com Forum Index -> C++ Builder (Non-Technical)
View previous topic :: View next topic  
Author Message
Randall Parker
Guest





PostPosted: Tue Dec 21, 2004 8:26 pm    Post subject: Project Buld Wish List Reply with quote



Any more ideas? I'm sure this is an incomplete list.

1) Distributed Builds.
A) Be able to register a bunch of machines for sending source files out to them
to be compiled.
B) Each node should have a build manager demon that reports back to each
developer's machine whether the node is already doing a build for someone else. So
you kick off a build and it gets doled out only to machines that are not already busy.
C) Your own builds should have priority on your machine over builds from other
machines. But one complication is that you shouldn't be able to so lower the priority
of a part of someone else's build that their one file from their build to your
machine doesn't finish long after the rest of their files have compiled. Though
perhaps a way to automatically cancel the compile and reassign that file to another
machine could be done based on how much CPU time that file is getting? Seems
complicated to do this feature well.
D) Maybe a build queue makes the most sense. You submit your build and if another
build is running on the shared machines you get told that your build has entered the
queue.

2) Multithreaded builds on a single OS instance.
Given that hyperthreading and SMP with multiple CPU cores on a chip look to be
the trends build/make logic that does not spin off a bunch of threads does not make
optimal use of the machine.

3) Smarter Make Logic to first compile the files that are most likely to have syntax
errors.
Suppose that there are files
a.cpp, a.h,
b.cpp, b.h,
c.cpp, c.h,
d.cpp, d.h
and suppose that all the cpp files include all the .h files. Therefore a change
in any header file requires all the .cpp files to need rebuilding (this is a
hypothetical to illustrate a point).
Suppose that the files that have changed since the last build are:
c.cpp
c.h
d.h
What file does it make sense to compile first? It is obvious to me that c.cpp
should be compiled first. All the .cpp files need to be compiled. But c.cpp ought to
be compiled first because doing so checks both c.cpp and c.h. An error with c.h
missing something that c.cpp needs will not be found until c.cpp is compiled. So why
compile a.cpp and b.cpp and only then c.cpp? The error in c.h that must be fixed to
make c.cpp compile correctly will require a recompile of a.cpp and b.cpp. So why
compile them first?
Also, the changes in d.h are more likely to cause syntax errors in d.cpp than in,
say, b.cpp. So after compiling c.cpp the next logical candidate to compile is d.cpp.
Anyone agree, disagree with all this?

4) Smarter Make Logic to order source files to reduce the number of header file reads
from disk.
Suppose 5 out of 20 .cpp files all include x.h and y.h and x.h has changed.
Suppose the user is not making use of precompiled headers. It makes sense to group
those 5 files together and have the compiler read x.h and y.h in once and cache them
across the 5 compiles of the 5 .cpp files.

5) Multiple build configurations in a single project.
- With and without debug info.
- With and without CodeGuard.
- Static versus dynamically loaded dlls.
- etc.
Do them all from the same project.
A) Have the ability to set "Current Default Build" so that when you do Make or
Build or Run that is the build configuration that gets Make logic done to it.
B) Have the ability to say "Build All Configurations".
C) Have the ability to drag some configurations to a list and then say "Build
Configuration List".

6) A Precompiled Headers Expert/Wizard that analyses your source code to suggest
candidates for precompiled header configurations.

7) Query a Make Interface to get "List Of Files That Need Rebuilding".
Before kicking off a big build be able to find out which files will get rebuilt.
It would be nice to be able to take that list and drag items on the list to
change the order of the building so that files you think are more likely to have
syntax errors will get built first.
Back to top
Alex Bakaev
Guest





PostPosted: Tue Dec 21, 2004 9:10 pm    Post subject: Re: Project Buld Wish List Reply with quote



Randall Parker wrote:
Quote:
Any more ideas? I'm sure this is an incomplete list.
[snip]


1. BC++-like Source Pools.
2. BC++-like options inheritance
3. BC++-like TargetExpert, where it's possible to change the type of a
project (DLL/exe/lib).

If these were implemented, then it's easy to see that pretty much every
desirable build feature mentioned would be very easy to have.

..a

Back to top
Randall Parker
Guest





PostPosted: Tue Dec 21, 2004 9:37 pm    Post subject: Re: Project Buld Wish List Reply with quote



Alex,

What are Source Pools?

How was Options Inheritance done? (I last used BCW far too long ago and for too short
a period of time to remember)

Did TargetExpert only change the project type?

Alex Bakaev wrote:

Quote:

1. BC++-like Source Pools.
2. BC++-like options inheritance
3. BC++-like TargetExpert, where it's possible to change the type of a
project (DLL/exe/lib).

If these were implemented, then it's easy to see that pretty much every
desirable build feature mentioned would be very easy to have.

.a

Back to top
Alex Bakaev
Guest





PostPosted: Tue Dec 21, 2004 10:00 pm    Post subject: Re: Project Buld Wish List Reply with quote

Randall Parker wrote:

Randal,

Quote:
What are Source Pools?

Source pool is a collection of sources. It is not associated with any
target (at least not initially). Source pools can be reference-copied or
value-copied into a target. A source pool can have an option set that
will be applied to all sources in it. A single source pool can be
referenced in as many targets as you may have in a project.
Quote:

How was Options Inheritance done? (I last used BCW far too long ago and
for too short a period of time to remember)

A child inherited options of its parent. A nice tree view showed every
option at every node - with an ability to see an overriden option.
Quote:

Did TargetExpert only change the project type?

Target Expert could change a type of a target in a project. BC++

projects could have multiple targets in it (a project group in BCB is a
weak approximation of BC++ project).

Now it should be easy to see that one could set up an executable target,
add a source pool(s) to it and apply a Debug option set.
Then, create another target, add the same source pool(s) to it and apply
a Release option set. Etc., etc.

Of course, when one builds a project, all targets are built. When one
builds a particular target, only it is rebuilt (remade).

..a

Back to top
Kenneth de Camargo
Guest





PostPosted: Tue Dec 21, 2004 11:15 pm    Post subject: Re: Project Buld Wish List Reply with quote

Alex Bakaev wrote:

Quote:
Randall Parker wrote:
Any more ideas? I'm sure this is an incomplete list.
[snip]

1. BC++-like Source Pools.
2. BC++-like options inheritance
3. BC++-like TargetExpert, where it's possible to change the type of
a project (DLL/exe/lib).

If these were implemented, then it's easy to see that pretty much
every desirable build feature mentioned would be very easy to have.

I second that...

--
Ken
http://planeta.terra.com.br/educacao/kencamargo/
* this is not a sig *

Back to top
Leroy Casterline
Guest





PostPosted: Wed Dec 22, 2004 6:52 am    Post subject: Re: Project Buld Wish List Reply with quote

"Kenneth de Camargo" <INVERT:rb.moc.arret@jcrk> wrote:

Quote:
Alex Bakaev wrote:

I second that..

One more thing: Enchanted program manager. I can't stress the importance
of enchantment too much.

Back to top
Russell Hind
Guest





PostPosted: Wed Dec 22, 2004 8:42 am    Post subject: Re: Project Buld Wish List Reply with quote

Randall Parker wrote:
Quote:
Any more ideas? I'm sure this is an incomplete list.


I'd like to see project group options. Each project group could have
multiple configurations associated with it and each configuration
basically stores which configuration to build each project with.

e.g. you could have project group options 'Release' in which all
projects in the group are set to 'Release' build or a mixture of release
and debug.

That way, they entire group of projects could be switched ot a desired
configuration (but not necessarily the same for each project in the
group) from a combo box.

C# in D2005 supports multiple build configurations, but you would have
to manually change each project to a release build to do a release.

These settings should be stored with the group.

I'd also like to see the ability to load up other project groups inside
your project group. That way, if you have a lib/dll project in your
group, and it already has a project group that builds all its tests and
the dll itself, you could just add that group to your project, rather
than having to add all the individual projects to it. I don't see why
this has ever been a limitation really.

Cheers

Russell

Back to top
Harry Bego
Guest





PostPosted: Wed Dec 22, 2004 8:58 am    Post subject: Re: Project Buld Wish List Reply with quote

"Randall Parker" <STOPtechiepundit (AT) EVILfuturePOXpunditSPAM (DOT) com> wrote in
message news:41c8872b (AT) newsgroups (DOT) borland.com...
Quote:
Any more ideas? I'm sure this is an incomplete list.
snip
3) Smarter Make Logic to first compile the files that are most likely to
have syntax
errors.

So, first compile files that are opened in the editor.

If you work in ten files at the same time, then build
or make should surely compile those first.

Harry



Back to top
Pete Fraser
Guest





PostPosted: Wed Dec 22, 2004 10:04 am    Post subject: Re: Project Buld Wish List Reply with quote

Now what does that mean?
I though enchanted had something to do with magic/spells?
Or do you mean enhanced?
Rgds Pete

"Leroy Casterline" <casterle (AT) ccltd (DOT) com> wrote

Quote:
"Kenneth de Camargo" <INVERT:rb.moc.arret@jcrk> wrote:

Alex Bakaev wrote:

I second that..

One more thing: Enchanted program manager. I can't stress the importance
of enchantment too much.



Back to top
Russell Hind
Guest





PostPosted: Wed Dec 22, 2004 10:04 am    Post subject: Re: Project Buld Wish List Reply with quote

Pete Fraser wrote:
Quote:
Now what does that mean?
I though enchanted had something to do with magic/spells?
Or do you mean enhanced?
Rgds Pete


I think you missed the thread earlier between Leroy and John K!

Back to top
OBones
Guest





PostPosted: Wed Dec 22, 2004 10:26 am    Post subject: Re: Project Buld Wish List Reply with quote

Randall Parker wrote:

Quote:
Any more ideas? I'm sure this is an incomplete list.

1) Distributed Builds.

That's what Incredibuild does. It works with Visual Studio and is quite
impressive. I don't know if it works with C++ Builder though.

Back to top
Kenneth de Camargo
Guest





PostPosted: Wed Dec 22, 2004 12:14 pm    Post subject: Re: Project Buld Wish List Reply with quote

Leroy Casterline wrote:

Quote:
"Kenneth de Camargo" <INVERT:rb.moc.arret@jcrk> wrote:

Alex Bakaev wrote:

I second that..

One more thing: Enchanted program manager. I can't stress the
importance of enchantment too much.

ROFL!

--
Ken
http://planeta.terra.com.br/educacao/kencamargo/
* this is not a sig *

Back to top
Hendrik Schober
Guest





PostPosted: Wed Dec 22, 2004 6:38 pm    Post subject: Re: Project Buld Wish List Reply with quote

Russell Hind <noone (AT) nowhere (DOT) com> wrote:
Quote:
[...]
e.g. you could have project group options 'Release' in which all
projects in the group are set to 'Release' build or a mixture of release
and debug.

IIRC, this is what VS does.

Quote:
[...]
Russell


Schobi

--
[email]SpamTrap (AT) gmx (DOT) de[/email] is never read
I'm Schobi at suespammers dot org

"The presence of those seeking the truth is infinitely
to be prefered to those thinking they've found it."
Terry Pratchett



Back to top
Hendrik Schober
Guest





PostPosted: Wed Dec 22, 2004 6:41 pm    Post subject: Re: Project Buld Wish List Reply with quote

Hendrik Schober <SpamTrap (AT) gmx (DOT) de> wrote:
Quote:
[...]
IIRC, this is what VS does.

Oops! Should have been "IIUC, ...".

Schobi

--
[email]SpamTrap (AT) gmx (DOT) de[/email] is never read
I'm Schobi at suespammers dot org

"The presence of those seeking the truth is infinitely
to be prefered to those thinking they've found it."
Terry Pratchett



Back to top
Randall Parker
Guest





PostPosted: Wed Dec 22, 2004 7:49 pm    Post subject: Re: Project Buld Wish List Reply with quote

Yes, I just posted a link to IncrediBuild's web site so that Schobi would go off and
try it. I recalled him saying he does long builds. Hopefully he will report back on
how well he thinks it works.

Have you used it? If so, what features does it have that are neat?

OBones wrote:
Quote:
Randall Parker wrote:
1) Distributed Builds.

That's what Incredibuild does. It works with Visual Studio and is quite
impressive. I don't know if it works with C++ Builder though.

Back to top
Display posts from previous:   
Post new topic   Reply to topic    BorlandTalk.com Forum Index -> C++ Builder (Non-Technical) All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.