Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2005-05-24 07:05:14


David Abrahams wrote:

>> The new glob is implemented as new 'GLOB-RECURSIVELY' builtin. I've
>> decided to use builtin since otherwise, we'd need 'does this name exist'
>> builtin, and if we need new builtin, why don't implement all globbing in
>> core.
>
> Because:
>
> a) it means you can't just get the 'does this name exist'
> functionality without paying for globbing

The price is very low. If you invoke

GLOB-RECURSIVELY foo/bar

then no directory entries will be read and a single 'timestamp' call will be
done. The overhead is a single function that scans the name for
metacharacters.

> b) if you made a mistake in your globbing code you will have to
> ask people to rebuild again.
>
> I'm not saying you should reverse what you've done, but there were
> good reasons I established the principle that the core should stay as
> small as possible.

We probably tried too much. Recall that the class system was originally
implemented in pure jam and was eventually reimplemented in C due to
performance reasons. The same happened with arithmetic -- we eventually got
the CALC builtin.

There are things which just can't be efficient when implemented in jam.

- Volodya

 


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