Mercurial > hg
view contrib/dockerdeb @ 25937:4f1144c3c72b
demandimport: support lazy loading for absolute_import
Before, we didn't support lazy loading if absolute_import was in
effect and a fromlist was used. This meant that "from . import X"
wasn't lazy and performance could suffer as a result.
With this patch, we now support lazy loading for this scenario.
As part of developing this, I discovered issues when module names
are defined. Since the enforced import style only allows
"from X import Y" or "from .X import Y" in very few scenarios
when absolute_import is enabled - scenarios where Y is not a
module and thus there is nothing to lazy load - I decided to drop
support for this case instead of chasing down the errors. I don't
think much harm will come from this. But I'd like to take another
look once all modules are using absolute_import and I can see the
full extent of what is using names in absolute_import mode.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 08 Aug 2015 16:13:27 -0700 |
parents | 4c4d0012db4f |
children | 05306b9359d3 |
line wrap: on
line source
#!/bin/bash -eu . $(dirname $0)/dockerlib.sh . $(dirname $0)/packagelib.sh BUILDDIR=$(dirname $0) export ROOTDIR=$(cd $BUILDDIR/..; pwd) checkdocker PLATFORM="debian-$1" shift # extra params are passed to build process initcontainer $PLATFORM DEBBUILDDIR=$ROOTDIR/packages/$PLATFORM contrib/builddeb --debbuilddir $DEBBUILDDIR/staged --prepare DSHARED=/mnt/shared/ if [ $(uname) = "Darwin" ] ; then $DOCKER run -u $DBUILDUSER --rm -v $DEBBUILDDIR:$DSHARED -v $PWD:/mnt/hg $CONTAINER \ sh -c "cd /mnt/hg && make clean && make local" fi $DOCKER run -u $DBUILDUSER --rm -v $DEBBUILDDIR:$DSHARED -v $PWD:/mnt/hg $CONTAINER \ sh -c "cd /mnt/hg && make PREFIX=$DSHARED/staged/usr install" $DOCKER run -u $DBUILDUSER --rm -v $DEBBUILDDIR:$DSHARED $CONTAINER \ dpkg-deb --build $DSHARED/staged if [ $(uname) = "Darwin" ] ; then $DOCKER run -u $DBUILDUSER --rm -v $DEBBUILDDIR:$DSHARED -v $PWD:/mnt/hg $CONTAINER \ sh -c "cd /mnt/hg && make clean" fi gethgversion rm -r $DEBBUILDDIR/staged mv $DEBBUILDDIR/staged.deb $DEBBUILDDIR/mercurial-$version-$release.deb echo echo "Build complete - results can be found in $DEBBUILDDIR"