Boost logo

Boost-Build :

From: Brad King (brad.king_at_[hidden])
Date: 2002-01-13 17:58:53


Dave, Joerg,

I have implemented a sample approach to separating the testing front-end
from multiple testing back-ends. The attached Jamfile contains the code.

Developers declare their tests like this:

test.compile test1 : source1 ;
test.compile-fail test2 : source2 ;
test.link test3 : source3 ;
test.link-fail test4 : source4 ;
test.run test5 : source5 : : -foo ;
test.run-fail test6 : source6 : : -bar : test.in ;

After all these tests are declared (after the user jamfile has been
included, for example), these lines appear:

# Let the user list the tests with "jam list-tests"
test.list list-tests ;

# Invoke the "demo" testing module for "jam demo-test".
demo.invoke demo-test ;

The demo.invoke rule just forwards its target to a "test.invoke" rule
which then calls all the test rules with "demo." as a prefix instead of
"test." as a prefix, and with all the same arguments. The test.invoke
method also creates a target for each test automatically. Each of demo's
rules can refer to $(test-target) to set up the target.

This way, the user can update a specific test by saying:
jam demo-test.test1
jam demo-test.test2
...
or update all tests by saying:
jam demo-test

To see what a particular test entails, the user can also list a specific
test:
jam list-tests.test1
jam list-tests.test2
...
or list all tests by saying:
jam list-tests

This approach has the following advantages:

1.) Developers specify their test only once.
2.) Testing back-ends can be added without changing the "test" module.
3.) Users can choose exactly what back end is to be used, and specify
either a specific test or all tests.
4.) Back-end authors can write their rules almost as if they were being
called directly, but they don't have to worry about the test target
name...they just use $(test-target).

Thoughts?
-Brad
 ---1463811583-96456694-1010961852=:15051 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME=Jamfile
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.21.0201131744120.15051_at_[hidden]>
Content-Description:
Content-Disposition: ATTACHMENT; FILENAME=Jamfile

IyBNb2R1bGUgInRlc3QiIHByb3ZpZGVzIGNvbW1hbmRzIHVzZWQgYnkgZGV2ZWxvcGVycyB0
byBkZXNjcmliZSB0ZXN0cy4NCiMgVGhpcyBpcyB0aGUgdGVzdGluZyBmcm9udC1lbmQuDQpt
b2R1bGUgdGVzdA0Kew0KICBtb2R1bGUgbG9jYWwgdGVzdC1uYW1lcyA7DQoNCiAgIyBUaGUg
Zm9sbG93aW5nIHJ1bGVzIGFyZSBpbnZva2VkIGJ5IGRldmVsb3BlcnMgdG8gZGVzY3JpYmUg
dGhlaXIgdGVzdHMuDQogICMgVGhlc2UgcnVsZXMganVzdCByZWNvcmQgaW5mb3JtYXRpb24g
YWJvdXQgdGhlIHRlc3RzLiAgVGhlIGludm9rZQ0KICAjIHJ1bGUgYmVsb3cgcGFzc2VzIHRo
ZSBpbmZvcm1hdGlvbiB0byBhIHBhcnRpY3VsYXIgdGVzdGluZyBtb2R1bGUuDQoNCiAgcnVs
ZSBjb21waWxlICggbmFtZSA6IHNvdXJjZXMgKyA6IHJlcXVpcmVtZW50cyAqICkNCiAgew0K
ICAgIHRlc3QtbmFtZXMgKz0gJChuYW1lKSA7DQogICAgbW9kdWxlIGxvY2FsIHRlc3RzLiQo
bmFtZSkudHlwZSA9IGNvbXBpbGUgOw0KICAgIG1vZHVsZSBsb2NhbCB0ZXN0cy4kKG5hbWUp
LnNvdXJjZXMgPSAkKHNvdXJjZXMpIDsNCiAgICBtb2R1bGUgbG9jYWwgdGVzdHMuJChuYW1l
KS5yZXF1aXJlbWVudHMgPSAkKHJlcXVpcmVtZW50cykgOw0KICB9DQoNCiAgcnVsZSBjb21w
aWxlLWZhaWwgKCBuYW1lIDogc291cmNlcyArIDogcmVxdWlyZW1lbnRzICogKQ0KICB7DQog
ICAgdGVzdC1uYW1lcyArPSAkKG5hbWUpIDsNCiAgICBtb2R1bGUgbG9jYWwgdGVzdHMuJChu
YW1lKS50eXBlID0gY29tcGlsZS1mYWlsIDsNCiAgICBtb2R1bGUgbG9jYWwgdGVzdHMuJChu
YW1lKS5zb3VyY2VzID0gJChzb3VyY2VzKSA7DQogICAgbW9kdWxlIGxvY2FsIHRlc3RzLiQo
bmFtZSkucmVxdWlyZW1lbnRzID0gJChyZXF1aXJlbWVudHMpIDsNCiAgfQ0KDQogIHJ1bGUg
bGluayAoIG5hbWUgOiBzb3VyY2VzICsgOiByZXF1aXJlbWVudHMgKiApDQogIHsNCiAgICB0
ZXN0LW5hbWVzICs9ICQobmFtZSkgOw0KICAgIG1vZHVsZSBsb2NhbCB0ZXN0cy4kKG5hbWUp
LnR5cGUgPSBsaW5rIDsNCiAgICBtb2R1bGUgbG9jYWwgdGVzdHMuJChuYW1lKS5zb3VyY2Vz
ID0gJChzb3VyY2VzKSA7DQogICAgbW9kdWxlIGxvY2FsIHRlc3RzLiQobmFtZSkucmVxdWly
ZW1lbnRzID0gJChyZXF1aXJlbWVudHMpIDsNCiAgfQ0KDQogIHJ1bGUgbGluay1mYWlsICgg
bmFtZSA6IHNvdXJjZXMgKyA6IHJlcXVpcmVtZW50cyAqICkNCiAgew0KICAgIHRlc3QtbmFt
ZXMgKz0gJChuYW1lKSA7DQogICAgbW9kdWxlIGxvY2FsIHRlc3RzLiQobmFtZSkudHlwZSA9
IGxpbmstZmFpbCA7DQogICAgbW9kdWxlIGxvY2FsIHRlc3RzLiQobmFtZSkuc291cmNlcyA9
ICQoc291cmNlcykgOw0KICAgIG1vZHVsZSBsb2NhbCB0ZXN0cy4kKG5hbWUpLnJlcXVpcmVt
ZW50cyA9ICQocmVxdWlyZW1lbnRzKSA7DQogIH0NCg0KICBydWxlIHJ1biAoIG5hbWUgOiBz
b3VyY2VzICsgOiByZXF1aXJlbWVudHMgKiA6IGFyZ3VtZW50cyAqIDogaW5wdXRzICogKQ0K
ICB7DQogICAgdGVzdC1uYW1lcyArPSAkKG5hbWUpIDsNCiAgICBtb2R1bGUgbG9jYWwgdGVz
dHMuJChuYW1lKS50eXBlID0gcnVuIDsNCiAgICBtb2R1bGUgbG9jYWwgdGVzdHMuJChuYW1l
KS5zb3VyY2VzID0gJChzb3VyY2VzKSA7DQogICAgbW9kdWxlIGxvY2FsIHRlc3RzLiQobmFt
ZSkucmVxdWlyZW1lbnRzID0gJChyZXF1aXJlbWVudHMpIDsNCiAgICBtb2R1bGUgbG9jYWwg
dGVzdHMuJChuYW1lKS5hcmd1bWVudHMgPSAkKGFyZ3VtZW50cykgOw0KICAgIG1vZHVsZSBs
b2NhbCB0ZXN0cy4kKG5hbWUpLmlucHV0cyA9ICQoaW5wdXRzKSA7DQogIH0NCg0KICBydWxl
IHJ1bi1mYWlsICggbmFtZSA6IHNvdXJjZXMgKyA6IHJlcXVpcmVtZW50cyAqIDogYXJndW1l
bnRzICogOiBpbnB1dHMgKiApDQogIHsNCiAgICB0ZXN0LW5hbWVzICs9ICQobmFtZSkgOw0K
ICAgIG1vZHVsZSBsb2NhbCB0ZXN0cy4kKG5hbWUpLnR5cGUgPSBydW4tZmFpbCA7DQogICAg
bW9kdWxlIGxvY2FsIHRlc3RzLiQobmFtZSkuc291cmNlcyA9ICQoc291cmNlcykgOw0KICAg
IG1vZHVsZSBsb2NhbCB0ZXN0cy4kKG5hbWUpLnJlcXVpcmVtZW50cyA9ICQocmVxdWlyZW1l
bnRzKSA7DQogICAgbW9kdWxlIGxvY2FsIHRlc3RzLiQobmFtZSkuYXJndW1lbnRzID0gJChh
cmd1bWVudHMpIDsNCiAgICBtb2R1bGUgbG9jYWwgdGVzdHMuJChuYW1lKS5pbnB1dHMgPSAk
KGlucHV0cykgOw0KICB9DQoNCiAgIyBUaGlzIGlzIGNhbGxlZCBmcm9tIGEgdGVzdGluZyBt
b2R1bGUncyBpbnZva2UgcnVsZSB3aXRoDQogICMgInRlc3QtbW9kdWxlIiBzZXQgdG8gdGhl
IG5hbWUgb2YgdGhlIG1vZHVsZS4gIEl0IHdpbGwgY2FsbCB0aGUNCiAgIyBtb2R1bGUncyB0
ZXN0IHJ1bGVzIGZvciBlYWNoIHRlc3QgcmVjb3JkZWQgYnkgdGhlIGFib3ZlIHJ1bGVzLg0K
ICBydWxlIGludm9rZSAoIHRhcmdldCApDQogIHsNCiAgICBmb3IgbG9jYWwgbmFtZSBpbiAk
KHRlc3QtbmFtZXMpDQogICAgew0KICAgICAgIyBDcmVhdGUgYSB0YXJnZXQgZm9yIHRoZSB0
ZXN0Lg0KICAgICAgbG9jYWwgdGVzdC10YXJnZXQgPSAkKHRhcmdldCkuJChuYW1lKSA7DQog
ICAgICANCiAgICAgICMgTWFrZSBzdXJlIHRoZSB0ZXN0IHRhcmdldCB3aWxsIGJlIHVwZGF0
ZWQuDQogICAgICBERVBFTkRTICQodGFyZ2V0KSA6ICQodGVzdC10YXJnZXQpIDsNCg0KICAg
ICAgIyBHZXQgdGhlIHRlc3QgaW5mb3JtYXRpb24uDQogICAgICBsb2NhbCB0eXBlID0gJCh0
ZXN0cy4kKG5hbWUpLnR5cGUpIDsNCiAgICAgIGxvY2FsIHNvdXJjZXMgPSAkKHRlc3RzLiQo
bmFtZSkuc291cmNlcykgOw0KICAgICAgbG9jYWwgcmVxdWlyZW1lbnRzID0gJCh0ZXN0cy4k
KG5hbWUpLnJlcXVpcmVtZW50cykgOw0KDQogICAgICAjIEludm9rZSB0aGUgdGVzdGluZyBt
b2R1bGUncyB2ZXJzaW9uIG9mIHRoZSB0ZXN0IHJ1bGUuDQogICAgICBpZiAkKHR5cGUpID0g
cnVuIHx8ICQodHlwZSkgPSBydW4tZmFpbA0KICAgICAgew0KICAgICAgICBsb2NhbCBhcmd1
bWVudHMgPSAkKHRlc3RzLiQobmFtZSkuYXJndW1lbnRzKSA7DQogICAgICAgIGxvY2FsIGlu
cHV0cyA9ICQodGVzdHMuJChuYW1lKS5hcmd1bWVudHMpIDsNCg0KICAgICAgICAkKHRlc3Qt
bW9kdWxlKS4kKHR5cGUpICQobmFtZSkgOiAkKHNvdXJjZXMpIDogJChyZXF1aXJlbWVudHMp
DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICQoYXJndW1lbnRz
KSA6ICQoaW5wdXRzKSA7DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAg
ICQodGVzdC1tb2R1bGUpLiQodHlwZSkgJChuYW1lKSA6ICQoc291cmNlcykgOiAkKHJlcXVp
cmVtZW50cykgOw0KICAgICAgfQ0KICAgIH0NCiAgfQ0KDQogIGFjdGlvbnMgcXVpZXRseSBw
cmludA0KICB7DQogICAgZWNobyAiJCh0eXBlKSAkKG5hbWUpIDogJChzb3VyY2VzKSA6ICQo
cmVxdWlyZW1lbnRzKSA7Ig0KICB9DQoNCiAgYWN0aW9ucyBxdWlldGx5IHByaW50LXJ1bg0K
ICB7DQogICAgZWNobyAiJCh0eXBlKSAkKG5hbWUpIDogJChzb3VyY2VzKSA6ICQocmVxdWly
ZW1lbnRzKSA6ICQoYXJndW1lbnRzKSA6ICQoaW5wdXRzKSA7Ig0KICB9DQoNCiAgIyBBIHJ1
bGUgdG8gcHJpbnQgb3V0IHRoZSB0ZXN0cy4NCiAgcnVsZSBsaXN0ICggdGFyZ2V0ICkNCiAg
ew0KICAgIGZvciBsb2NhbCBuYW1lIGluICQodGVzdC1uYW1lcykNCiAgICB7DQogICAgICBs
b2NhbCB0ZXN0LXRhcmdldCA9ICQodGFyZ2V0KS4kKG5hbWUpIDsNCiAgICAgIERFUEVORFMg
JCh0YXJnZXQpIDogJCh0ZXN0LXRhcmdldCkgOw0KICANCiAgICAgIHR5cGUgb24gJCh0ZXN0
LXRhcmdldCkgPSAkKHRlc3RzLiQobmFtZSkudHlwZSkgOw0KICAgICAgbmFtZSBvbiAkKHRl
c3QtdGFyZ2V0KSA9ICQobmFtZSkgOw0KICAgICAgc291cmNlcyBvbiAkKHRlc3QtdGFyZ2V0
KSA9ICQodGVzdHMuJChuYW1lKS5zb3VyY2VzKSA7DQogICAgICByZXF1aXJlbWVudHMgb24g
JCh0ZXN0LXRhcmdldCkgPSAkKHRlc3RzLiQobmFtZSkucmVxdWlyZW1lbnRzKSA7DQoNCiAg
ICAgIGlmICQodHlwZSkgPSBydW4gfHwgJCh0eXBlKSA9IHJ1bi1mYWlsDQogICAgICB7DQog
ICAgICAgIGFyZ3VtZW50cyBvbiAkKHRlc3QtdGFyZ2V0KSA9ICQodGVzdHMuJChuYW1lKS5h
cmd1bWVudHMpIDsNCiAgICAgICAgaW5wdXRzIG9uICQodGVzdC10YXJnZXQpID0gJCh0ZXN0
cy4kKG5hbWUpLmlucHV0cykgOw0KICAgICAgICBwcmludC1ydW4gJCh0ZXN0LXRhcmdldCkg
Ow0KICAgICAgfQ0KICAgICAgZWxzZQ0KICAgICAgew0KICAgICAgICBwcmludCAkKHRlc3Qt
dGFyZ2V0KSA7DQogICAgICB9ICANCiAgICB9DQogIH0NCn0NCg0KIyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tDQojIFNhbXBsZSB0ZXN0aW5nIG1vZHVsZS4gIEp1c3QgcHJpbnRzIG91dCBl
YWNoIHJ1bGUgdGhhdCBpcyBpbnZva2VkLg0KbW9kdWxlIGRlbW8NCnsNCiAgIyBFdmVyeSB0
ZXN0aW5nIG1vZHVsZSBoYXMgYW4gaW52b2tlIHJ1bGUgdGhhdCBzZXRzICJ0ZXN0LW1vZHVs
ZSINCiAgIyB0byB0aGUgbmFtZSBvZiBpdHMgbW9kdWxlIGFuZCBjYWxscyAidGVzdC5pbnZv
a2UiIG9uIGl0cyB0YXJnZXQuDQogIHJ1bGUgaW52b2tlICggdGFyZ2V0ICkNCiAgew0KICAg
IGxvY2FsIHRlc3QtbW9kdWxlID0gZGVtbyA7DQogICAgdGVzdC5pbnZva2UgJCh0YXJnZXQp
IDsNCiAgfQ0KDQogIGFjdGlvbnMgcXVpZXRseSBwcmludA0KICB7DQogICAgZWNobyAiZGVt
by4kKHR5cGUpICQobmFtZSkgOiAkKHNvdXJjZXMpIDogJChyZXF1aXJlbWVudHMpIDsiDQog
IH0NCg0KICBhY3Rpb25zIHF1aWV0bHkgcHJpbnQtcnVuDQogIHsNCiAgICBlY2hvICJkZW1v
LiQodHlwZSkgJChuYW1lKSA6ICQoc291cmNlcykgOiAkKHJlcXVpcmVtZW50cykgOiAkKGFy
Z3VtZW50cykgOiAkKGlucHV0cykgOyINCiAgfQ0KDQogICMgUnVsZXMgd2lsbCBiZSBpbnZv
a2VkIHdpdGggInRlc3QtdGFyZ2V0IiBzZXQgdG8gYSB0YXJnZXQgZm9yDQogICMgdGhlIHRl
c3QgdW5kZXIgdGhpcyB0ZXN0aW5nIG1vZHVsZS4NCg0KICBydWxlIGNvbXBpbGUgKCBuYW1l
IDogc291cmNlcyArIDogcmVxdWlyZW1lbnRzICogKQ0KICB7DQogICAgdHlwZSBvbiAkKHRl
c3QtdGFyZ2V0KSA9IGNvbXBpbGUgOw0KICAgIG5hbWUgb24gJCh0ZXN0LXRhcmdldCkgPSAk
KG5hbWUpIDsNCiAgICBzb3VyY2VzIG9uICQodGVzdC10YXJnZXQpID0gJChzb3VyY2VzKSA7
DQogICAgcmVxdWlyZW1lbnRzIG9uICQodGVzdC10YXJnZXQpID0gJChyZXF1aXJlbWVudHMp
IDsNCiAgICBwcmludCAkKHRlc3QtdGFyZ2V0KSA7DQogIH0NCg0KICBydWxlIGNvbXBpbGUt
ZmFpbCAoIG5hbWUgOiBzb3VyY2VzICsgOiByZXF1aXJlbWVudHMgKiApDQogIHsNCiAgICB0
eXBlIG9uICQodGVzdC10YXJnZXQpID0gY29tcGlsZS1mYWlsIDsNCiAgICBuYW1lIG9uICQo
dGVzdC10YXJnZXQpID0gJChuYW1lKSA7DQogICAgc291cmNlcyBvbiAkKHRlc3QtdGFyZ2V0
KSA9ICQoc291cmNlcykgOw0KICAgIHJlcXVpcmVtZW50cyBvbiAkKHRlc3QtdGFyZ2V0KSA9
ICQocmVxdWlyZW1lbnRzKSA7DQogICAgcHJpbnQgJCh0ZXN0LXRhcmdldCkgOw0KICB9DQoN
CiAgcnVsZSBsaW5rICggbmFtZSA6IHNvdXJjZXMgKyA6IHJlcXVpcmVtZW50cyAqICkNCiAg
ew0KICAgIHR5cGUgb24gJCh0ZXN0LXRhcmdldCkgPSBsaW5rIDsNCiAgICBuYW1lIG9uICQo
dGVzdC10YXJnZXQpID0gJChuYW1lKSA7DQogICAgc291cmNlcyBvbiAkKHRlc3QtdGFyZ2V0
KSA9ICQoc291cmNlcykgOw0KICAgIHJlcXVpcmVtZW50cyBvbiAkKHRlc3QtdGFyZ2V0KSA9
ICQocmVxdWlyZW1lbnRzKSA7DQogICAgcHJpbnQgJCh0ZXN0LXRhcmdldCkgOw0KICB9DQoN
CiAgcnVsZSBsaW5rLWZhaWwgKCBuYW1lIDogc291cmNlcyArIDogcmVxdWlyZW1lbnRzICog
KQ0KICB7DQogICAgdHlwZSBvbiAkKHRlc3QtdGFyZ2V0KSA9IGxpbmstZmFpbCA7DQogICAg
bmFtZSBvbiAkKHRlc3QtdGFyZ2V0KSA9ICQobmFtZSkgOw0KICAgIHNvdXJjZXMgb24gJCh0
ZXN0LXRhcmdldCkgPSAkKHNvdXJjZXMpIDsNCiAgICByZXF1aXJlbWVudHMgb24gJCh0ZXN0
LXRhcmdldCkgPSAkKHJlcXVpcmVtZW50cykgOw0KICAgIHByaW50ICQodGVzdC10YXJnZXQp
IDsNCiAgfQ0KDQogIHJ1bGUgcnVuICggbmFtZSA6IHNvdXJjZXMgKyA6IHJlcXVpcmVtZW50
cyAqIDogYXJndW1lbnRzICogOiBpbnB1dHMgKiApDQogIHsNCiAgICB0eXBlIG9uICQodGVz
dC10YXJnZXQpID0gcnVuIDsNCiAgICBuYW1lIG9uICQodGVzdC10YXJnZXQpID0gJChuYW1l
KSA7DQogICAgc291cmNlcyBvbiAkKHRlc3QtdGFyZ2V0KSA9ICQoc291cmNlcykgOw0KICAg
IHJlcXVpcmVtZW50cyBvbiAkKHRlc3QtdGFyZ2V0KSA9ICQocmVxdWlyZW1lbnRzKSA7DQog
ICAgYXJndW1lbnRzIG9uICQodGVzdC10YXJnZXQpID0gJChhcmd1bWVudHMpIDsNCiAgICBp
bnB1dHMgb24gJCh0ZXN0LXRhcmdldCkgPSAkKGlucHV0cykgOw0KICAgIHByaW50LXJ1biAk
KHRlc3QtdGFyZ2V0KSA7DQogIH0NCg0KICBydWxlIHJ1bi1mYWlsICggbmFtZSA6IHNvdXJj
ZXMgKyA6IHJlcXVpcmVtZW50cyAqIDogYXJndW1lbnRzICogOiBpbnB1dHMgKiApDQogIHsN
CiAgICB0eXBlIG9uICQodGVzdC10YXJnZXQpID0gcnVuLWZhaWwgOw0KICAgIG5hbWUgb24g
JCh0ZXN0LXRhcmdldCkgPSAkKG5hbWUpIDsNCiAgICBzb3VyY2VzIG9uICQodGVzdC10YXJn
ZXQpID0gJChzb3VyY2VzKSA7DQogICAgcmVxdWlyZW1lbnRzIG9uICQodGVzdC10YXJnZXQp
ID0gJChyZXF1aXJlbWVudHMpIDsNCiAgICBhcmd1bWVudHMgb24gJCh0ZXN0LXRhcmdldCkg
PSAkKGFyZ3VtZW50cykgOw0KICAgIGlucHV0cyBvbiAkKHRlc3QtdGFyZ2V0KSA9ICQoaW5w
dXRzKSA7DQogICAgcHJpbnQtcnVuICQodGVzdC10YXJnZXQpIDsNCiAgfQ0KfQ0KDQojIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgRXhhbXBsZSB0ZXN0IGRlc2NyaXB0aW9ucy4NCnRl
c3QuY29tcGlsZSAgICAgIHRlc3QxIDogc291cmNlMSA7DQp0ZXN0LmNvbXBpbGUtZmFpbCB0
ZXN0MiA6IHNvdXJjZTIgOw0KdGVzdC5saW5rICAgICAgICAgdGVzdDMgOiBzb3VyY2UzIDsN
CnRlc3QubGluay1mYWlsICAgIHRlc3Q0IDogc291cmNlNCA7DQp0ZXN0LnJ1biAgICAgICAg
ICB0ZXN0NSA6IHNvdXJjZTUgOiA6IC1mb28gOw0KdGVzdC5ydW4tZmFpbCAgICAgdGVzdDYg
OiBzb3VyY2U2IDogOiAtYmFyIDogdGVzdC5pbiA7DQoNCiMgTGV0IHRoZSB1c2VyIGNhbGwg
ImphbSBpbnZva2UtZGVtbyIgdG8gaW52b2tlIHRoZSBkZW1vIHRlc3RpbmcgbW9kdWxlLg0K
ZGVtby5pbnZva2UgZGVtby10ZXN0IDsNCg0KIyBMZXQgdGhlIHVzZXIgbGlzdCB0aGUgdGVz
dHMgd2l0aCAiamFtIGxpc3QtdGVzdHMiDQp0ZXN0Lmxpc3QgbGlzdC10ZXN0cyA7DQo=
 ---1463811583-96456694-1010961852=:15051--


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