Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2001-12-24 11:40:08


There are some issues with Jam & Boost.Build that I came across while
experimenting with possible project semantics.

1.
list = 1 2 3 4 5 6 7 ;
list2 = 1 ;
$(list[--2]) gives 1 2
$(list2[1--2]) gives 1
The behaviour is clearly a bug, I've fixed it and added tests for it.

2. I don't seem to understand IMPORT/EXPORT. Suppose:

rule initialize-project ( project-module ) {
IMPORT project : project-id location used-jamfiles
: $(project-module) : project-id location used-jamfiles ;
EXPORT $(project-module) : project-id location used-jamfiles ;
}

Alas, this code does not make new rules available using quilified names: what
is done is that new *local* rules appear in $(proejct-module) and then
"exported" flag for them is set? Would it make sense to additionally insert
qualified name into the global namespace? Writing

module $(project-module) {
rule project-id ......
}

allows to do what I want, though.

3. Jamfile in test directory simply doesn't work on Linux. /bin/sh complains
about syntax errors and other similar problems happen. I've fixed most
problems, although one remains, and one is solved using simply kludge.
Suppose the following command is used:

echo "actions unbuilt { } unbuilt all ; EXIT error ;" > temp.jam
jam -sBOOST_BUILD_PATH=.. -sJAMFILE=temp.jam
rm temp.jam

Jam, AFAIKT, puts the text to a bat file and executed file. Unfortunately,
status returned is that of the *last* command!

4. test.jam in the new directory imports "classes", which is missing.

5. Module os.path does not work for two reasons. First, it's not finished --
I've added something to it locally and hope to add more later. Second, module
names containing dots just won't work: "os.path" will be included as
"os.jam" by the import rule. I tried to fix it.

6. Jam identification change. I'm not sure about proper copyright string --
Boost.Jam is based on FTJam, which is based on Perforce Jam -- so I left it
out completely.

If those patches look OK, I'll commit them.

- Volodya

 --------------Boundary-00=_WYWUQ2JA27BV5MFQO64W Content-Type: text/x-diff;
charset="koi8-r";
name="test-on-linux.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="test-on-linux.diff"

SW5kZXg6IHJlY3Vyc2l2ZS5qYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3QvYm9vc3Qv
Ym9vc3QvdG9vbHMvYnVpbGQvdGVzdC9yZWN1cnNpdmUuamFtLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjMKZGlmZiAtdSAtcjEuMyByZWN1cnNpdmUuamFtCi0tLSByZWN1cnNpdmUuamFtCTIwMDEv
MTAvMjAgMTM6MDE6MTYJMS4zCisrKyByZWN1cnNpdmUuamFtCTIwMDEvMTIvMjQgMTY6MDg6NDgK
QEAgLTY5LDcgKzY5LDYgQEAKICAgICByZXR1cm4gJCh0YXJnZXQpIDsKIH0KIAotCiAjIFRoZSB0
ZW1wb3JhcnkgamFtZmlsZSB3ZSB3cml0ZSBpcyBjYWxsZWQgInRlbXAuamFtIi4gSWYgdGhlIHVz
ZXIgaGFzIHNldAogIyBCT09TVF9CVUlMRF9ST09ULCBpdCB3aWxsIGJlIGJ1aWx0IHRoZXJlLgog
Z0JPT1NUX1RFU1RfSkFNRklMRSA9IHRlbXAuamFtIDsKQEAgLTg5LDEwICs4OCwxMSBAQAogfQog
YWN0aW9ucyBpbnZva2UtSmFtCiB7Ci0gICAgZWNobyAkKFBSRUZJWCkgJCg8Okc9KSA+ICQoZ0JP
T1NUX1RFU1RfSkFNRklMRSkKLSAgICBqYW0gLWYuLi9KYW1iYXNlIC1zSkFNRklMRT0kKGdCT09T
VF9URVNUX0pBTUZJTEUpICAkKEpBTUFSR1MpID4kKHJlZGlyZWN0KQotICAgICQoUkVNT1ZFKSAk
KGdCT09TVF9URVNUX0pBTUZJTEUpCisgICAgZWNobyAiJChQUkVGSVgpICQoPDpHPSkiID4gJChn
Qk9PU1RfVEVTVF9KQU1GSUxFKQorICAgIGphbSAtc0JPT1NUX0JVSUxEX1BBVEg9Li4gLXNKQU1G
SUxFPSQoZ0JPT1NUX1RFU1RfSkFNRklMRSkgICQoSkFNQVJHUykgPiQocmVkaXJlY3QpCiB9Cisj
ICAgICAkKFJFTU9WRSkgJChnQk9PU1RfVEVTVF9KQU1GSUxFKQorCiAKICMgVGhlc2UgYWN0aW9u
cyBleHBlY3QgdG8gZmluZCB0aGUgdW5ncmlzdGVkIHBhcnQgb2YgJCg8KSBpbiBzY3JhdGNoLW91
dHB1dC50eHQKICMgYW5kIHJldHVybiBhIG5vbnplcm8gZXhpdCBjb2RlIG90aGVyd2lzZQpAQCAt
MTExLDcgKzExMSw3IEBACiAgICAgIyBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4gSXMgdGhlcmUgYSBz
aW1wbGVyIGZpbmQ/CiAgICAgYWN0aW9ucyBxdWlldGx5IEV4cGVjdC1pbi1vdXRwdXQKICAgICB7
Ci0gICAgICAgICQoVkVSQk9TRSlzY3JhdGNoLW91dHB1dC50eHQgOworICAgICAgICAkKFZFUkJP
U0Upc2NyYXRjaC1vdXRwdXQudHh0OwogICAgICAgICBncmVwICIkKDw6Rz0pIiBzY3JhdGNoLW91
dHB1dC50eHQKICAgICB9CiB9Cg==
 --------------Boundary-00=_WYWUQ2JA27BV5MFQO64W Content-Type: text/x-diff;
charset="koi8-r";
name="modules-import.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="modules-import.diff"

SW5kZXg6IG1vZHVsZXMuamFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L2Jvb3N0L2Jv
b3N0L3Rvb2xzL2J1aWxkL25ldy9tb2R1bGVzLmphbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41
CmRpZmYgLXUgLXIxLjUgbW9kdWxlcy5qYW0KLS0tIG1vZHVsZXMuamFtCTIwMDEvMTIvMTMgMTg6
NDM6MjIJMS41CisrKyBtb2R1bGVzLmphbQkyMDAxLzEyLzI0IDE2OjI2OjIwCkBAIC0zOSwxMSAr
MzksMTYgQEAKICAgICAgICAgICAgIElNUE9SVCBtb2R1bGVzIDogbm9fdGVzdF9kZWZpbmVkIDog
JChtb2R1bGUtbmFtZSkgOiBfX3Rlc3RfXyA7CiAKICAgICAgICAgICAgICMgQWRkIHNvbWUgZ3Jp
c3Qgc28gdGhhdCB0aGUgbW9kdWxlIHdpbGwgaGF2ZSBhIHVuaXF1ZSB0YXJnZXQgbmFtZQotICAg
ICAgICAgICAgbG9jYWwgbW9kdWxlLXRhcmdldCA9ICQobW9kdWxlLW5hbWU6Rz1tb2R1bGVAOlM9
LmphbSkgOworICAgICAgICAgICAgbG9jYWwgbW9kdWxlLXRhcmdldCA7CisJICAgIGlmICQobW9k
dWxlLW5hbWU6UykgIT0gLmphbSB7CisJCW1vZHVsZS10YXJnZXQgPSAkKG1vZHVsZS1uYW1lOkc9
bW9kdWxlQCkuamFtIDsKKwkgICAgfSBlbHNlIHsKKwkJbW9kdWxlLXRhcmdldCA9ICQobW9kdWxl
LW5hbWU6Rz1tb2R1bGVAKSA7CisJICAgIH0JCQkJCiAgICAgICAgICAgICAKICAgICAgICAgICAg
IFNFQVJDSCBvbiAkKG1vZHVsZS10YXJnZXQpID0gJChCT09TVF9CVUlMRF9QQVRIKSA7CiAgICAg
ICAgICAgICBCSU5EUlVMRSBvbiAkKG1vZHVsZS10YXJnZXQpID0gbW9kdWxlcy5yZWNvcmQtYmlu
ZGluZyA7Ci0gICAgICAgICAgICBpbmNsdWRlICQobW9kdWxlLW5hbWU6Rz1tb2R1bGVAOlM9Lmph
bSkgOworICAgICAgICAgICAgaW5jbHVkZSAkKG1vZHVsZS10YXJnZXQpIDsKIAogICAgICAgICB9
CiAgICAgICAgIGxvYWRpbmctbW9kdWxlcyA9ICQobG9hZGluZy1tb2R1bGVzWzEtLTJdKSA7Cg==
 --------------Boundary-00=_WYWUQ2JA27BV5MFQO64W Content-Type: text/x-diff;
charset="koi8-r";
name="indexing-and-identification.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="indexing-and-identification.diff"

SW5kZXg6IGphbV9zcmMvZXhwYW5kLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3QvYm9v
c3QvYm9vc3QvdG9vbHMvYnVpbGQvamFtX3NyYy9leHBhbmQuYyx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS4zCmRpZmYgLXUgLXIxLjMgZXhwYW5kLmMKLS0tIGphbV9zcmMvZXhwYW5kLmMJMjAwMS8x
MS8xMSAxMjo1OTozOAkxLjMKKysrIGphbV9zcmMvZXhwYW5kLmMJMjAwMS8xMi8yNCAxNjozNDoz
NApAQCAtMjQzLDYgKzI0Myw4IEBACiAKIAkJICAgIGlmKCBicmFja2V0WzFdICYmICggZGFzaCA9
IHN0cmNociggYnJhY2tldCArIDIsICctJyApICkgKQogCQkgICAgeworICAgICAgICAgICAgICAg
ICAgICAgICAgaWYoIGRhc2ggPT0gYnJhY2tldCArIDIgJiYgKiggYnJhY2tldCArIDEgKSA9PSAn
LScpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1kYXNoOwogCQkJc3RyaW5nX3RydW5j
YXRlKCAmdmFyaWFibGUsIGRhc2ggLSB2YXJuYW1lICk7CiAJCQlzdWIxID0gYXRvaSggYnJhY2tl
dCArIDEgKTsKIAkJCXN1YjIgPSBhdG9pKCBkYXNoICsgMSApOwpAQCAtNTY0LDggKzU2NiwxMiBA
QAogewogICAgIGlmICggaW5kZXggPCAwICkKICAgICAgICAgaW5kZXggPSBsZW5ndGggKyAxICsg
aW5kZXg7Ci0gICAgaWYgKCBpbmRleCA8IDAgKQotICAgICAgICBpbmRleCA9IDA7CisgICAgLyoq
IEZvciBmaXJzdCByYW5nZSBpbmRleCBuZWdhdGl2ZSB2YWx1ZXMgYXJlIG9rLgorICAgICAgICBG
b3Igc2Vjb25kIHJldHVybiB2YWx1ZSBvZiAwIG1lYW5zIGRvbid0IHVzZSBzZWNvbmQgYm91bmQu
IAorICAgICAgICBXZSBuZWVkIHRvIG1ha2UgaXQgLTEgc28gdGhhdCBhbGwgZWxlbWVudHMgYXJl
IHNraXBwZWQuCisgICAgKi8KKyAgICBpZiAoIGluZGV4ID09IDAgKQorICAgICAgICBpbmRleCA9
IC0xOwogICAgIHJldHVybiBpbmRleDsKIH0KIApJbmRleDogamFtX3NyYy9KYW1maWxlCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L2Jvb3N0L2Jvb3N0L3Rvb2xzL2J1aWxkL2phbV9zcmMv
SmFtZmlsZSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yCmRpZmYgLXUgLXIxLjIgSmFtZmlsZQot
LS0gamFtX3NyYy9KYW1maWxlCTIwMDEvMTEvMDYgMTU6MzY6MTYJMS4yCisrKyBqYW1fc3JjL0ph
bWZpbGUJMjAwMS8xMi8yNCAxNjozNDozNApAQCAtMTYzLDcgKzE2Myw3IEBACiAJfQogfQogCi1W
RVJTSU9OID0gZnRqYW0tMi4zLjUgOworVkVSU0lPTiA9IGJvb3N0LWphbS0zLjAgOwogCiAKIGFj
dGlvbnMgVGFyLUd6CkluZGV4OiBqYW1fc3JjL2phbS5jCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j
dnNyb290L2Jvb3N0L2Jvb3N0L3Rvb2xzL2J1aWxkL2phbV9zcmMvamFtLmMsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuNgpkaWZmIC11IC1yMS42IGphbS5jCi0tLSBqYW1fc3JjL2phbS5jCTIwMDEv
MTIvMDQgMTg6MTk6MjQJMS42CisrKyBqYW1fc3JjL2phbS5jCTIwMDEvMTIvMjQgMTY6MzQ6MzQK
QEAgLTIyMyw5ICsyMjMsOCBAQAogCiAgICAgaWYoICggcyA9IGdldG9wdHZhbCggb3B0diwgJ3Yn
LCAwICkgKSApCiAgICAgewotICAgICAgICBwcmludGYoICJKYW0vTVIgICIgKTsKKyAgICAgICAg
cHJpbnRmKCAiQm9vc3QuSmFtICAiICk7CiAgICAgICAgIHByaW50ZiggIlZlcnNpb24gJXMuICAi
LCBWRVJTSU9OICk7Ci0gICAgICAgIHByaW50ZiggIkNvcHlyaWdodCAxOTkzLCAyMDAwIENocmlz
dG9waGVyIFNlaXdhbGQuICAiICk7CiAgICAgICAgIHByaW50ZiggIiVzLlxuIiwgT1NNSU5PUiAp
OwogCiAgICAgICAgIHJldHVybiBFWElUT0s7CkluZGV4OiBqYW1fc3JjL3BhdGNobGV2ZWwuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9ib29zdC9ib29zdC90b29scy9idWlsZC9qYW1f
c3JjL3BhdGNobGV2ZWwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yCmRpZmYgLXUgLXIxLjIg
cGF0Y2hsZXZlbC5oCi0tLSBqYW1fc3JjL3BhdGNobGV2ZWwuaAkyMDAxLzExLzA2IDE1OjM2OjE2
CTEuMgorKysgamFtX3NyYy9wYXRjaGxldmVsLmgJMjAwMS8xMi8yNCAxNjozNDozNApAQCAtMSw1
ICsxLDUgQEAKIC8qIEtlZXAgSkFNVkVSU1lNIGluIHN5bmMgd2l0aCBWRVJTSU9OLiAqLwogLyog
SXQgY2FuIGJlIGFjY2Vzc2VkIGFzICQoSkFNVkVSU0lPTikgaW4gdGhlIEphbWZpbGUuICovCiAK
LSNkZWZpbmUgVkVSU0lPTiAiMi4zLjIiCi0jZGVmaW5lIEpBTVZFUlNZTSAiSkFNVkVSU0lPTj0y
LjMiCisjZGVmaW5lIFZFUlNJT04gIjMuMC4wIgorI2RlZmluZSBKQU1WRVJTWU0gIkpBTVZFUlNJ
T049My4wIgpJbmRleDogdGVzdC9jaGVjay1qYW0tcGF0Y2hlcy5qYW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2c3Jvb3QvYm9vc3QvYm9vc3QvdG9vbHMvYnVpbGQvdGVzdC9jaGVjay1qYW0tcGF0
Y2hlcy5qYW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC11IC1yMS43IGNoZWNrLWph
bS1wYXRjaGVzLmphbQotLS0gdGVzdC9jaGVjay1qYW0tcGF0Y2hlcy5qYW0JMjAwMS8xMS8yNyAx
Njo0MTo1OQkxLjcKKysrIHRlc3QvY2hlY2stamFtLXBhdGNoZXMuamFtCTIwMDEvMTIvMjQgMTY6
MzQ6MzQKQEAgLTEyMCw2ICsxMjAsMTIgQEAKICAgICBhc3NlcnQtaW5kZXggLTIgOiBkIDsKICAg
ICBhc3NlcnQtaW5kZXggMi0tMiA6IGIgYyBkIDsKICAgICBhc3NlcnQtaW5kZXggLTMtLTIgOiBj
IGQgOworICAgIGFzc2VydC1pbmRleCAxLS0yIDogYSBiIGMgZCA7CisgICAgYXNzZXJ0LWluZGV4
IC0tMiA6IGEgYiBjIGQgOworICAgIGFzc2VydC1pbmRleCAxLS0xMCA6IDsKKyAgICB4ID0gYSA7
CisgICAgYXNzZXJ0LWluZGV4IDEtLTIgOiA7CisgICAgYXNzZXJ0LWluZGV4IC0tMiA6IDsKIH0K
IAogIwo=
 --------------Boundary-00=_WYWUQ2JA27BV5MFQO64W--


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