Michael Felt added the comment:

Vinay - I am in favor, but if the root cause of the holdup is unclear 
documentation then let's address the root cause.

Stronger, I am in agreement. The first patch I submitted for AIX included using 
LIBPATH (and could have added LD_LIBRARY_PATH) - but that was rejected.

> In my view, the best should not be the enemy of the good, and pragmatism 
> beats purity. I don't have the resources to test this functionality on all 
> platforms - just Windows and Linux - and am not familiar with other platforms 
> like AIX, Solaris or the BSDs. The documentation makes clear that the 
> behaviour of find_library is system-dependent and makes no promises of a 
> particular level of consistency, either with dlopen() or across platforms.

* Again, basically I agree with the principles. I do not have the resources for 
all linux platforms, Solaris, BSD, Windows, etc..
* As far as "other platforms" and dlopen() behavior - from the man pages I have 
referenced I see more similarity than difference.
* behaviour of find_library is system-dependent - exactly - but unfortunately, 
for now AIX is whatever is in the else: box. That it works at all is a 
statement of the flexibility of AIX - and the sweat and tears of AIX admins to 
get the pieces to fit.

> Nor can we guarantee in the documentation that find_library() will exactly 
> emulate dlopen(), since that may not hold on all platforms - and in fact, 
> since Windows is in the mix, there is little point in trying to tie 
> find_library() behaviour to that of dlopen() directly.

Good points. However, while it cannot be guaranteed - upfront - (although I 
would say that I could make them mimic each other on AIX given the leeway, 
better directive) - it can be stated as an objective for "posix".
:) Windows is windows - maybe someone who knows windows well enough could make 
something very close.

> The purpose of find_library as currently documented seems adequately 
> described, and the documentation update in my latest patch clarifies things 
> further.

Obviously, here is where we disagree. If it was 'adequately' described you 
could have used the documentation as a justification years ago. Your change 
touches on it, but still leaves a great deal to discuss - and especially - 
convince those who may actually commit.

> I'm not sure the agreement you seek will come any time soon, as it has not 
> come in the last five years; it doesn't seem possible to aim for e.g. exact 
> behaviour of dlopen(), because (a) it's not the same on Windows and (b) 
> potentially varies too widely across POSIX platforms. Can you propose some 
> change to the find_library() contract which you can assure will be 
> implementable across all platforms? Certainly, fidelity with dlopen() isn't 
> it.

As you mentioned earlier - the implementations are system-dependent - so yes, 
we could argue for find_library search behavior that emulates dlopen() (better 
perhaps "LoadLibrary()") - but not define any particular behavior - precisely 
because it may be different on different platforms. Again, the objective is to 
replicate that platform's LoadLibrary search behavior - whatever that may be.

Once we have established what is needed/desired as a goal, over time 
implementations will catch up. Linux will be leading the way because you have, 
presumably, already implemented it.

Michael

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue9998>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to