 |
BorlandTalk.com Borland discussion newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Jonathan Benedicto Guest
|
Posted: Wed Dec 07, 2005 4:30 pm Post subject: Delegator (rmbcc32) query |
|
|
Hello All,
As you might know, I'm working on a distributed build system for BCB.
(Actually might work in Delphi too).
But, I need to ask you a few questions. Lets say you bought it, and
installed in on your LAN. What kind of compiler setups can Delegator assume
is on each computer ? Eg. BCB, etc.
Jonathan
|
|
| Back to top |
|
 |
David Perkins Guest
|
Posted: Wed Dec 07, 2005 4:37 pm Post subject: Re: Delegator (rmbcc32) query |
|
|
| Quote: | But, I need to ask you a few questions. Lets say you bought it, and
installed in on your LAN. What kind of compiler setups can Delegator assume
is on each computer ? Eg. BCB, etc.
|
For me it will be BCBv5 pro and BCB2006 pro (eventually)
|
|
| Back to top |
|
 |
Jonathan Benedicto Guest
|
Posted: Wed Dec 07, 2005 4:38 pm Post subject: Re: Delegator (rmbcc32) query |
|
|
David Perkins wrote:
| Quote: | For me it will be BCBv5 pro and BCB2006 pro (eventually)
|
Ok, so on all the machines Delegator can use to compile, they all have BCB.
Jonathan
|
|
| Back to top |
|
 |
David Perkins Guest
|
Posted: Thu Dec 08, 2005 12:19 am Post subject: Re: Delegator (rmbcc32) query |
|
|
| Quote: | Ok, so on all the machines Delegator can use to compile, they all have BCB.
|
Yes. I have a dual-opteron system as the build machine. Whilst
developing, I would like to offload some of the compilation to that machine.
|
|
| Back to top |
|
 |
Jonathan Benedicto Guest
|
Posted: Thu Dec 08, 2005 3:12 am Post subject: Re: Delegator (rmbcc32) query |
|
|
David Perkins wrote:
| Quote: | Yes. I have a dual-opteron system as the build machine. Whilst
developing, I would like to offload some of the compilation to that
machine.
|
Ok, thanks. I'll remember that.
Jonathan
|
|
| Back to top |
|
 |
Hendrik Schober Guest
|
Posted: Fri Dec 09, 2005 10:39 am Post subject: Re: Delegator (rmbcc32) query |
|
|
Jonathan Benedicto <incorrect (AT) no (DOT) server> wrote:
| Quote: | Hello All,
As you might know, I'm working on a distributed build system for BCB.
(Actually might work in Delphi too).
But, I need to ask you a few questions. Lets say you bought it, and
installed in on your LAN. What kind of compiler setups can Delegator assume
is on each computer ? Eg. BCB, etc.
|
As a hint (I think we discussed this here before, but
I'm not sure): IncrediBuild ([url]www.xoreax.com)[/url], which
is used for distributed builds from VS, seems to
1. transfer cl.exe (the commend line compiler that
the IDE also uses) plus all necessary DLLs, as
you don't need to install anything but the build
agent on remote machines in order to have them
participate in your builds,
2. create some kind of virtual file system on the
remote machine (which has all the needed headers
in a single file); they somehow must cl.exe use
this to find the necessary headers
This is all guesswork, of course, drawn from looking
at what it puts into the temp folder.
HTH anyway!
Schobi
--
[email]SpamTrap (AT) gmx (DOT) de[/email] is never read
I'm Schobi at suespammers dot org
"If you put a large switch in some cave somewhere, with a sign
on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH',
the paint wouldn't even have time to dry."
Terry Pratchett
|
|
| Back to top |
|
 |
Jonathan Benedicto Guest
|
Posted: Fri Dec 09, 2005 1:50 pm Post subject: Re: Delegator (rmbcc32) query |
|
|
Hendrik Schober wrote:
| Quote: | As a hint (I think we discussed this here before, but
I'm not sure): IncrediBuild ([url]www.xoreax.com)[/url], which
is used for distributed builds from VS, seems to
1. transfer cl.exe (the commend line compiler that
the IDE also uses) plus all necessary DLLs, as
you don't need to install anything but the build
agent on remote machines in order to have them
participate in your builds,
|
Thank you for your reply. Seems like I'll have to go this way.
| Quote: | 2. create some kind of virtual file system on the
remote machine (which has all the needed headers
in a single file); they somehow must cl.exe use
this to find the necessary headers
|
I'm already working on this using a IOCP server system on every computer to
handle the file requests.
Jonathan
|
|
| Back to top |
|
 |
Hendrik Schober Guest
|
Posted: Fri Dec 09, 2005 2:50 pm Post subject: Re: Delegator (rmbcc32) query |
|
|
Jonathan Benedicto <incorrect (AT) no (DOT) server> wrote:
| Quote: | [...]
2. create some kind of virtual file system on the
remote machine (which has all the needed headers
in a single file); they somehow must cl.exe use
this to find the necessary headers
I'm already working on this using a IOCP server system on every computer to
handle the file requests.
|
<interested> What's this? </interested>
Schobi
--
[email]SpamTrap (AT) gmx (DOT) de[/email] is never read
I'm Schobi at suespammers dot org
"If you put a large switch in some cave somewhere, with a sign
on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH',
the paint wouldn't even have time to dry."
Terry Pratchett
|
|
| Back to top |
|
 |
Jonathan Benedicto Guest
|
Posted: Fri Dec 09, 2005 4:01 pm Post subject: Re: Delegator (rmbcc32) query |
|
|
Hendrik Schober wrote:
| Quote: | | interested> What's this?
|
IOCP is a Windows feature that allows hundreds of connections to be handled
by a few threads. So what I'm doing is building Delegator's file system to
have a FTP-type server on every machine whether it is a build initiator or
a agent. This is so that source code files and compiled obj files can be
shared easily.
Jonathan
|
|
| Back to top |
|
 |
Tamas Demjen Guest
|
Posted: Fri Dec 09, 2005 5:37 pm Post subject: Re: Delegator (rmbcc32) query |
|
|
| Quote: | But, I need to ask you a few questions. Lets say you bought it, and
installed in on your LAN. What kind of compiler setups can Delegator assume
is on each computer ? Eg. BCB, etc.
|
I know how the distributed version of GCC works (approximately). It
requires nothing else but the exact same compiler on the remote
machines. You don't need any of the include files, lib files, standard
library, none of those. The preprocessing phase of the compilation is
done on the master computer (on which you develop). The distributed
machines get .cpp files without any header or any other kind of
interdependency. If you are interesting about the exact details, I have
some more information. I don't know your email address, send me a
personal email.
However, I'm not sure this is really the best way to go. That's because
your compile times will go up significantly without precompiled headers,
and overall you won't gain anything. I'm not sure if GCC supports PCH
now, but it didn't in the past, and the distributed version didn't
either. You really want to make sure that your design supports PCH right
on the distributed computers. That means it's better to copy all the
dependent headers to the remote machines, rather than sending
preprocessed files. You'll have to replicate a similar directory
structure, and adjust the -I directive (include file path) if necessary
(unless you can use the exact same directory paths).
One more option is to preprocess the PCH part and the rest separately,
and send two files per unit to the distributed machine. You send a PCH
file containing everything before #pragma hdrstop, and send the .cpp,
containing everything else. The PCH file may not always be the same, you
have to prepare for different PCHs in the same project, which involves
auto-naming the PCH files. But most of the units will share the same PCH
file, and you have to handle that correctly (not recreating the same PCH
file again and again).
If you preprocess on the master computer, you have to store a mapping
between original files and line numbers and the preprocessed "giant"
file's line numbers, so you can convert line numbers in error messages
back to a usable format.
Tom
|
|
| Back to top |
|
 |
Jonathan Benedicto Guest
|
Posted: Fri Dec 09, 2005 5:44 pm Post subject: Re: Delegator (rmbcc32) query |
|
|
Tamas Demjen wrote:
| Quote: | However, I'm not sure this is really the best way to go. That's
because your compile times will go up significantly without
precompiled headers, and overall you won't gain anything. I'm not
sure if GCC supports PCH now, but it didn't in the past, and the
distributed version didn't either. You really want to make sure that
your design supports PCH right on the distributed computers. That
means it's better to copy all the dependent headers to the remote
machines, rather than sending preprocessed files. You'll have to
replicate a similar directory structure, and adjust the -I directive
(include file path) if necessary (unless you can use the exact same
directory paths).
|
This idea is good, thank you. I'm probably going to use a system similar to
this.
Jonathan
|
|
| Back to top |
|
 |
Tamas Demjen Guest
|
Posted: Fri Dec 09, 2005 9:49 pm Post subject: Re: Delegator (rmbcc32) query |
|
|
Jonathan Benedicto wrote:
| Quote: | This idea is good, thank you. I'm probably going to use a system similar to
this.
|
And if it's possible, try to use mtbcc32 on all the distributed machines
for an even greater benefit ;-)
Tom
|
|
| Back to top |
|
 |
Jonathan Benedicto Guest
|
Posted: Fri Dec 09, 2005 9:59 pm Post subject: Re: Delegator (rmbcc32) query |
|
|
Tamas Demjen wrote:
| Quote: | And if it's possible, try to use mtbcc32 on all the distributed
machines for an even greater benefit
|
Actually, I plan to integrate mtbcc32 into te system so that it always
supports multi-threaded compiles.
Jonathan
|
|
| Back to top |
|
 |
David Perkins Guest
|
Posted: Sat Dec 10, 2005 11:07 am Post subject: Re: Delegator (rmbcc32) query |
|
|
Jonathan Benedicto wrote:
| Quote: | Hendrik Schober wrote:
As a hint (I think we discussed this here before, but
I'm not sure): IncrediBuild ([url]www.xoreax.com)[/url], which
is used for distributed builds from VS, seems to
1. transfer cl.exe (the commend line compiler that
the IDE also uses) plus all necessary DLLs, as
you don't need to install anything but the build
agent on remote machines in order to have them
participate in your builds,
Thank you for your reply. Seems like I'll have to go this way.
|
Why not just assume the compiler is already installed?
|
|
| Back to top |
|
 |
Jonathan Benedicto Guest
|
Posted: Sat Dec 10, 2005 4:52 pm Post subject: Re: Delegator (rmbcc32) query |
|
|
David Perkins wrote:
| Quote: | Why not just assume the compiler is already installed?
|
I was wondering if I could assume that BCB was installed, but I might
either have to get Borland's permission to distribute a bcc32 around the
network, or just assume that it was on the PATH already.
Jonathan
|
|
| Back to top |
|
 |
|
|
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
|
|