Craig McPheeters | 6 Nov 2001 00:51
Picon

A few extensions to Jam

Hi,

Some of the development groups at Alias|Wavefront have been using a minor
variant of Jam for a couple years with great success.  We are using Jam 
to build large products on multiple platforms.  Like most users of Jam,
we have customized a local Jambase quite heavily.  Along with the Jambase
customizations, we have extended Jam itself in a variety of ways.

The extensions to Jam may be useful for other groups working with large
projects, this mail announces the availability of the extensions.
Hopefully some of these will make their way into the Jam mainline.

I have a branch on the Perforce public depot at:
   //guest/craig_mcpheeters/jam/src/...

That branch now contains all of the changes we have made to Jam, in a form
that is hopefully usable by a variety of people.  There are 12 independent
extensions, and a few simple fixes.

There is a file in the branch called Jamfile.config which lists the extensions
in some detail.  Briefly, they are:

* a header cache.  Jam normally scans all source files for headers at each
  run.  This can be time consuming on large source trees.  The header cache
  saves the results of the current header scan, and it is re-used the next
  time jam is run.  This can save several minutes of startup time on large
  projects
* the output from a run of Jam using several jobs is now optionally serialized
* enable command buffers to grow dynamically.  Some platforms are able to
  accept multi-megabyte command buffers.  With this extension, jam can generate
(Continue reading)

David Abrahams | 6 Nov 2001 01:28
Favicon
Gravatar

Re: A few extensions to Jam

I don't think much is happening with the Jam mainline.
I, too have been making a bunch of Jam core language changes, and have fixed
a number of bugs as well. The core language changes are described here:

http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/~checkout~/boost/boost/tools/
build/build_system.htm#core_extensions

It would be good if those of us working on Jam enhancements would get
together, instead of working in isolation.

-Dave

===================================================
  David Abrahams, C++ library designer for hire
 resume: http://users.rcn.com/abrahams/resume.html

        C++ Booster (http://www.boost.org)
          email: david.abrahams <at> rcn.com
===================================================

----- Original Message -----
From: "Craig McPheeters" <cmcpheeters <at> aw.sgi.com>
To: <david.abrahams <at> rcn.com>; <jamming <at> perforce.com>
Sent: Monday, November 05, 2001 6:51 PM
Subject: A few extensions to Jam

> Hi,
>
>
> Some of the development groups at Alias|Wavefront have been using a minor
(Continue reading)

Alan Burlison | 6 Nov 2001 17:18
Picon

Your Jam changes

Hi Craig,

> The extensions to Jam may be useful for other groups working with large
> projects, this mail announces the availability of the extensions.
> Hopefully some of these will make their way into the Jam mainline.

Are these changes based on Jam or FTJam?  I'm quite interested in trying out Jam, but
having gone through the mail aliases I'm a little worried about the apparently
stalled mainline, and the various different versions that seem to be popping up.  I
have a large project to work with (*.h = 10k files / 3m LOC, *.c = 23k files, 24.5m
LOC, plus other goop on top), so I think that in my case the header caching would be
vital.  However, some of the stuff done for Boost also looks useful, but it doesn't
appear that I can have both at once.

p.s.  How about 'Compote' as a posher alternative to 'Marmalade'?

[From Old French composte, mixture, from Latin composita, feminine past participle of
compnere, to put together]

:-)

Alan Burlison

David Abrahams | 6 Nov 2001 17:30
Favicon
Gravatar

Re: Your Jam changes

I'm interested in most of Craig's enhancements, so if you want to merge them
into our source base I'd be happy to look at your patches.

The latest stuff is in the boost cvs repository at sourceforge in the
boost/tools/build module.

-Dave

===================================================
  David Abrahams, C++ library designer for hire
 resume: http://users.rcn.com/abrahams/resume.html

        C++ Booster (http://www.boost.org)
          email: david.abrahams <at> rcn.com
===================================================

----- Original Message -----
From: "Alan Burlison" <Alan.Burlison <at> sun.com>
To: <cmcpheeters <at> aw.sgi.com>
Cc: <david.abrahams <at> rcn.com>; <jamming <at> perforce.com>
Sent: Tuesday, November 06, 2001 11:18 AM
Subject: Your Jam changes

> Hi Craig,
>
> > The extensions to Jam may be useful for other groups working with large
> > projects, this mail announces the availability of the extensions.
> > Hopefully some of these will make their way into the Jam mainline.
>
> Are these changes based on Jam or FTJam?  I'm quite interested in trying
(Continue reading)

Alan Burlison | 6 Nov 2001 17:37
Picon

Re: Your Jam changes

David Abrahams wrote:

> I'm interested in most of Craig's enhancements, so if you want to merge them
> into our source base I'd be happy to look at your patches.

I wouldn't mind doing this if I was fairly confident that the result would actually
work for us, and ascertaining that that was the case will itself take some
considerable time.  I'm not desperate for this, as I can easily test using the
existing versions, I'm more concerned by the apparent (?) lack of coordination
between the 3 (?) versions of Jam that seem to be floating around.

Alan Burlison

Achim Domma | 6 Nov 2001 17:43
Picon

introduction for Jam

Hi,

I want to learn how to use Jam, but can not find much documentation. The
short docu I found is rather for people switching from 'make', but I don't
know much about 'make'. Could somebody point me to a tutorial or send my
some simple (but not trivial ;-) ) examples ?

greetings
Achim

Laura Wingerd | 6 Nov 2001 19:15
Favicon

Re: introduction for Jam

I conducted a Jam tutorial session at this year's 
Perforce User Conference. You might find the writeup 
and the slides useful. See the links at:

http://www.perforce.com/perforce/conf2001/index.html#jam

--Laura

------------------------------------------------------------------------
Laura Wingerd
laura <at> perforce.com
1-510-545-5406
Perforce Software, Inc.    
www.perforce.com

On Tue, 6 Nov 2001, Achim Domma wrote:

> Hi,
> 
> I want to learn how to use Jam, but can not find much documentation. The
> short docu I found is rather for people switching from 'make', but I don't
> know much about 'make'. Could somebody point me to a tutorial or send my
> some simple (but not trivial ;-) ) examples ?
> 
> greetings
> Achim
> 
> _______________________________________________
> jamming mailing list  -  jamming <at> perforce.com
> http://maillist.perforce.com/mailman/listinfo/jamming
(Continue reading)

Craig McPheeters | 6 Nov 2001 20:26
Picon

Re: A few extensions to Jam

> From: "David Abrahams" <david.abrahams <at> rcn.com>
> Subject: Re: A few extensions to Jam
> Date: Mon, 5 Nov 2001 19:28:57 -0500
> 
> I don't think much is happening with the Jam mainline.
> I, too have been making a bunch of Jam core language changes, and have fixed
> a number of bugs as well. The core language changes are described here:
> 
> http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/~checkout~/boost/boost/tools/
> build/build_system.htm#core_extensions
> 
> It would be good if those of us working on Jam enhancements would get
> together, instead of working in isolation.

I've taken a look at your core extensions, thanks for providing the URL.
It seems that you are taking a more aggressive approach to changes than I
am - which is ok, we just have different design goals.  I've been trying to
restrict myself to changes which are under-the-covers, without changing the
language itself.  A lot of the stuff you've got is interesting, while
loops, modules, etc.  In Linux terms, perhaps I'm working in a stable
series and you're working in the next experimental/more aggressive series.
ie, 2.4 vs 2.5?  (if that makes sense to you...)

At the moment, the time I have to work on this is constrained in a variety
of ways.  What I have is working for us.

I would prefer to not find myself maintaining a branch of jam years down
the road.  If there are changes made in the Jam mainline, I should be able
to easily incorporate them, and will do so.  In an ideal world, many of the
changes I have would be accepted into the mainline and the delta between
(Continue reading)

Craig McPheeters | 6 Nov 2001 20:36
Picon

Re: Your Jam changes

> Date: Tue, 06 Nov 2001 16:18:58 +0000
> From: Alan Burlison <Alan.Burlison <at> sun.com>
> CC: david.abrahams <at> rcn.com, jamming <at> perforce.com
> Subject: Your Jam changes
> 
> Hi Craig,

Hi,

> > The extensions to Jam may be useful for other groups working with large
> > projects, this mail announces the availability of the extensions.
> > Hopefully some of these will make their way into the Jam mainline.
> 
> Are these changes based on Jam or FTJam?  I'm quite interested in trying

My changes are based on Jam, I did most of this work almost 2 years ago.
My branch is a direct branch from the jam mainline, with integration
history to make it easy for the jam folks to see the differences.

> out Jam, but having gone through the mail aliases I'm a little worried
> about the apparently stalled mainline, and the various different versions
> that seem to be popping up.  I have a large project to work with (*.h =
> 10k files / 3m LOC, *.c = 23k files, 24.5m LOC, plus other goop on top),
> so I think that in my case the header caching would be vital.  However,
> some of the stuff done for Boost also looks useful, but it doesn't appear
> that I can have both at once.

Yeah, your project sounds large enough to benefit from some of my changes.
It also sounds like my branch and Boost may be compatible - although there
would be some merging required.  I also mentioned earlier that I don't want
(Continue reading)

Craig McPheeters | 6 Nov 2001 20:57
Picon

Re: Your Jam changes

> Date: Tue, 06 Nov 2001 16:37:30 +0000
> From: Alan Burlison <Alan.Burlison <at> sun.com>
> CC: cmcpheeters <at> aw.sgi.com, jamming <at> perforce.com
> Subject: Re: Your Jam changes
> 
> David Abrahams wrote:
> 
> > I'm interested in most of Craig's enhancements, so if you want to merge them
> > into our source base I'd be happy to look at your patches.
> 
> I wouldn't mind doing this if I was fairly confident that the result
> would actually work for us, and ascertaining that that was the case will
> itself take some considerable time.  I'm not desperate for this, as I can
> easily test using the existing versions, I'm more concerned by the
> apparent (?) lack of coordination between the 3 (?) versions of Jam that
> seem to be floating around.

I wouldn't be overly concerned about the different versions.  Its a good
thing.

The different versions each seem to have different policies for accepting
changes.  The policy in my branch is that I would accept changes (from myself)
which were as minimal as possible and enabled the use of Jam on large 
internal projects.  My policy was to avoid changes to the language where
possible, with a goal of minimizing the differences in order to ease future
integrations from the mainline, and the reverse.  

The policy in the FTjam branch seems more open to changes in the language,
and other non-critical-but-useful changes.  I like some of the extensions
David has created, although they don't match the policy I have established
(Continue reading)


Gmane