[Python-Dev] Re: .DLL vs .PYD search order

Guido van Rossum guido@CNRI.Reston.VA.US
Fri, 03 Dec 1999 08:45:07 -0500


[Greg]
> > I'd rather see the builtin machinery move to Python, regardless of what
> > system is used and/or what features are added.

[Marc]
> In the long run that's probably the right direction, but right now
> we are only talking a very small set of additional features,
> which can easily be added to the existing code without too much
> fuzz.

I disagree.  We should do the redisign right rather than tweaking the
existing code.

> Plus it won't slow things down, which is important since
> Python startup time is already an issue all by itself. The
> imputil.py approach of doing (a whole bunch of) recursive Python
> function calls to all kinds of importers will not speed this up,
> I'm afraid. A on-disk lookup table would speed this up, but
> it would also break the current logic in imputil.py, which
> puts importer independence above all.

I don't care about the current logic in imputil.  It's only a prototype!

> IMHO, we should retreat to a more centralized interface,
> one which more resembles a manager rather than the agent
> interface implemented in imputil.py. Add-ons can then
> register themselves to say "hey, I can handle pyz-archives"
> or "I know how to import .so modules" or "I provide a
> search function which you can call to have me scan
> my module container (directory, web-site, archive)".

This makes sense.

> The manager would take care of what to call and in which
> order, plus delegate requests to add-ons which implement
> the needed logic, e.g. add-ons for signature checking, unzipping
> archives, file system lookup tables, etc.
> 
> It could also trace its actions and then keep an on-disk
> knowledge base for what it did in the past to find certain
> modules under certain conditions.
> 
> Anyway, all this is extra magic for some future version of
> Python.

I would say the manager API design and a basic set of specific
handlers should go into 1.6.

--Guido van Rossum (home page: http://www.python.org/~guido/)