From: David Abrahams (dave_at_[hidden])
Date: 2004-05-05 16:49:02
Ken Smith <Ken.Smith_at_[hidden]> writes:
> I am new to Jam and am weighing the benefits of each of the flavors of
> Jam. Can anyone tell me why there are so many flavors of Jam and why
> haven't some of the improvments introduced by the other flavors been
> integrated into Perforce Jam?
Perforce Jam has a very weak interpreted programming language built
Boost.Build is a high-level build system with a fair amount of code.
We needed some basic language features that could support nontrivial
software design. We added features like named arguments for rules,
type checking, modules, rule indirection and while loops (Perforce got
the last two eventually). We also routinely ran over Perforce Jam's
internal fixed-size buffer limits for various string operations,
crashing it, so we implemented a "mutable string" module that used
dynamic allocation when neccessary. The list of enhancements has now
grown to be quite a bit larger than this.
I think Perforce's goal to keep Jam simple prevents them from wanting
to pick up most of our changes.
> As a brand new user of Jam, should I use Perforce Jam unless I run
> into issues which Boost.Jam solves?
It depends on your goals. If some of your needs are described here:
Then use Boost.Build. Otherwise, you might go with one of the others
if you're not afraid of the inherent limitations.
> Is Perforce Jam considered the official version?
I guess. Our forks have diverged.
-- Dave Abrahams Boost Consulting http://www.boost-consulting.com
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk