rewrite demandload module to be more flexible.
performance not affected.
old demandload module could only import top-level modules like os and
sys.
with rewrite, all of following syntax is emulated perfectly:
import foo, bar foo bar
import foo.bar.quux foo.bar.quux
from foo.bar import quux, blurfl foo.bar:quux,blurfl
only thing missing is "import foo as bar".
also, namespace clashes between placeholder object and demand loaded
module are no longer possible.
#!/bin/sh
mkdir t
cd t
hg init
echo import > port
hg add port
hg commit -m 0 -u spam -d '0 0'
echo export >> port
hg commit -m 1 -u eggs -d '1 0'
echo export > port
echo vaportight >> port
echo 'import/export' >> port
hg commit -m 2 -u spam -d '2 0'
echo 'import/export' >> port
hg commit -m 3 -u eggs -d '3 0'
head -n 3 port > port1
mv port1 port
hg commit -m 4 -u spam -d '4 0'
hg grep port port
echo 'FIXME: history is wrong here'
hg grep --all -nu port port
hg grep import port