Hi all, I've done most of the mechanical changes for Python 3 compatiblity in pymake.
But now I've come to the module structure. There are some challenges. In Python 3, imports first check the standard library and then fall back to searching the current directory [0]. Pymake's parser module happens to conflict with the standard library parser module [1]. There are essentially two solutions to this problem: 1) Rename parser.py -> mkparser.py and pray that we don't conflict again 2) Qualify imports always, e.g. ``import pymake.parser`` or ``from pymake import parser`` (2) seems superior to me, as it paves the way for packaging. Once pymake is installed in site-packages, using qualified imports is the most natural way to reference modules, and development is easier because we can just set PYTHONPATH to the checkout path, and imports work transparently as if pymake was installed. So I started moving toward this model, but immediately got stuck because qualified imports do not allow circular module dependencies. I generated a dependency graph for Pymake, and it came out like this: http://tinypic.com/r/if3c40/8 To focus on the problem I trimmed everything that wasn't involved in a cycle, so I could see more clearly which modules had circular deps: http://tinypic.com/r/fa8uix/8 I have some ideas for dependency breaking, but some deps are so deeply ingrained that I need some hand-holding... Thanks, - Kim [0] http://python3porting.com/differences.html#imports [1] https://docs.python.org/2/library/parser.html _______________________________________________ dev-builds mailing list [email protected] https://lists.mozilla.org/listinfo/dev-builds

