Dominic WILLIAMS | 4 Sep 17:53 2000
Picon

Parallel builds on NT ?

Hello,

I am interested in using jam on NT.

The home page (http://www.perforce.com/jam/jam.html) states among
features that: "On UNIX and NT, jam can do this with multiple, concurrent
processes. " On the other hand, the documentation on the jam command
(http://public.perforce.com/public/jam/src/Jam.html) says that the -j option
(number of concurrent jobs) is "UNIX only".

What is the situation ?

Thanks for your help,

Dominic Williams.

Alexander Nicolaou | 4 Sep 18:49 2000
Picon
Picon

Re: Parallel builds on NT ?

> I am interested in using jam on NT.
> 
> The home page (http://www.perforce.com/jam/jam.html) states among
> features that: "On UNIX and NT, jam can do this with multiple, concurrent
> processes. " On the other hand, the documentation on the jam command
> (http://public.perforce.com/public/jam/src/Jam.html) says that the -j option
> (number of concurrent jobs) is "UNIX only".

I assume -j is implemented for NT, but if you're using MSVC's compiler 
you cannot use it. The issue is that to save space and time cl creates
a ".pdb" file which is a database of debugging information for your 
program, and only one compile process at a time can update this file;
the second simultaneous compile will fail (just like the irritating
feature that you can't compile while also running the debugger).

With g++ you will not have this problem, but g++ is about twice as 
slow as MSVC at at compile time, so there is zero gain on a dual 
processor machine. (Although g++ accepts a more complete subset of
ANSI C++ than MSVC, particularly in regard to templates.)

alex

Martine Habib | 4 Sep 19:16 2000
Picon

RE: Parallel builds on NT ?

You can use the -j option, however, if you do not use "compiler pdb files"
(obtained by using the option /Zi), but "linker" pdb files (obtained by
using the /pdb: linker option. The price is that either you get an "all
release" build with limited debug info, or you have to build using /Z7 with
full debug info.

-----Original Message-----
From: Alexander Nicolaou [mailto:anicolao <at> mud.cgl.uwaterloo.ca]
Sent: Monday, September 04, 2000 9:49 AM
To: d.williams <at> csee-transport.fr
Cc: jamming <at> perforce.com
Subject: Re: [jamming] Parallel builds on NT ?

> I am interested in using jam on NT.
> 
> The home page (http://www.perforce.com/jam/jam.html) states among
> features that: "On UNIX and NT, jam can do this with multiple, concurrent
> processes. " On the other hand, the documentation on the jam command
> (http://public.perforce.com/public/jam/src/Jam.html) says that the -j
option
> (number of concurrent jobs) is "UNIX only".

I assume -j is implemented for NT, but if you're using MSVC's compiler 
you cannot use it. The issue is that to save space and time cl creates
a ".pdb" file which is a database of debugging information for your 
program, and only one compile process at a time can update this file;
the second simultaneous compile will fail (just like the irritating
feature that you can't compile while also running the debugger).

With g++ you will not have this problem, but g++ is about twice as 
(Continue reading)

Edward Lam | 5 Sep 01:33 2000
Picon

RE: Parallel builds on NT ?

--- Martine Habib <mhabib <at> microsoft.com> wrote:
> You can use the -j option, however, if you do not
> use "compiler pdb files" (obtained by using the 
> option /Zi), but "linker" pdb files (obtained by
> using the /pdb: linker option. The price is that
> either you get an "all release" build with limited 
> debug info, or you have to build using /Z7 with full

> debug info.

Just to clarify, you mean that if I want to use the -j
option with jam and MSVC, then I just use /Z7 with cl,
right? What are the disadvantages to using /Z7 vs. /Zi
?  I presume that you would lose the ability to do
"edit and debug" but I don't tend to use this feature
anyways.

Thanks,
-Edward

__________________________________________________
Do You Yahoo!?
Yahoo! Mail - Free email you can access from anywhere!
http://mail.yahoo.com/

Martine Habib | 5 Sep 01:52 2000
Picon

RE: Parallel builds on NT ?

>Just to clarify, you mean that if I want to use the -j
>option with jam and MSVC, then I just use /Z7 with cl,
>right?

Correct.

>What are the disadvantages to using /Z7 vs. /Zi ?

You also lose incremental linking and compilation. This can still be OK if
your modules are not too large, as you gain quite a lot of speed by using
-j.
You do, of course also lose "Edit and Continue".

Martine

-----Original Message-----
From: Edward Lam [mailto:e4lam <at> yahoo.com]
Sent: Monday, September 04, 2000 4:34 PM
To: Martine Habib; 'Alexander Nicolaou'; d.williams <at> csee-transport.fr
Cc: jamming <at> perforce.com
Subject: RE: [jamming] Parallel builds on NT ?

--- Martine Habib <mhabib <at> microsoft.com> wrote:
> You can use the -j option, however, if you do not
> use "compiler pdb files" (obtained by using the 
> option /Zi), but "linker" pdb files (obtained by
> using the /pdb: linker option. The price is that
> either you get an "all release" build with limited 
> debug info, or you have to build using /Z7 with full

(Continue reading)

Lee Marzke | 5 Sep 21:21 2000

Setting environment variables for compiler

How would you set an environment variable 

e.g. GCC_EXEC_PREFIX

in a Jamfile? ( on Unix )   We have different targets that use
different version of GCC and this changes often.

Thanks,

Lee

Dominic WILLIAMS | 6 Sep 13:48 2000
Picon

automagically listing source files

Hello,

Thanks for your useful information on parallel builds on NT. One thing I
can say for Jam is that it has a friendly and competent user group !

With gnu make, I am used to listing source files automatically, e.g.

myprog:  $(wildcard *.cpp)

This way, the makefile can be set up once and for all, and does not need
to be modified each time a new source file is added to the project. Is this
sort of thing possible using Jam ?

Dominic.

Sawhney, Davinder | 8 Sep 16:41 2000

Anyone looking for Jamming job - Maryland-Baltimore area

Hi! 

I am not sure if this is the correct use of this group
but any interested in consulting or permanent job in the
Maryland area can email me with their resume

Davinder

Lex Spoon | 8 Sep 18:36 2000
Picon

Re: automagically listing source files

In my view, one of the nice things about Jam is that it gets away from
wildcard stuff.  What's so hard about:

	SourceFile  foo.c ;
	SourceFile  bar.c ;
	(etc)

If you can write the code for a file, then you can certainly add a line
to the Jamfile for it.  And the really nice thing is, you can say what
*kind* of source file it is, even if the filename doesn't help:

	ExtraOptimizedSourceFile  zap.c ;

Furthermore, if you have any automatically generated *.c files, they
won't get picked up.

So anyway, you *can* do things like what you describe, but I actually
like having things listed out, better.

-Lex

Dominic WILLIAMS <d.williams <at> csee-transport.fr> wrote:
> Hello,
> 
> Thanks for your useful information on parallel builds on NT. One thing I
> can say for Jam is that it has a friendly and competent user group !
> 
> With gnu make, I am used to listing source files automatically, e.g.
> 
> myprog:  $(wildcard *.cpp)
(Continue reading)

Lex Spoon | 8 Sep 18:33 2000
Picon

Re: Setting environment variables for compiler

What does this have to do with environment variables, exactly?  You can
do things like:

	set CC = /bin/gcc  on  foo.o  ;

(I'm sure this syntax isn't exactly right).  Anyway, then the regular
Jam commands will use that version of CC just for foo.o.

-Lex

Lee Marzke <lmarzke <at> kns.com> wrote:
> How would you set an environment variable 
> 
> e.g. GCC_EXEC_PREFIX
> 
> in a Jamfile? ( on Unix )   We have different targets that use
> different version of GCC and this changes often.
> 
> Thanks,
> 
> Lee
> _______________________________________________
> jamming mailing list  -  jamming <at> perforce.com
> http://maillist.perforce.com/mailman/listinfo/jamming


Gmane