Hi Chris, hi Audrey,
Chris Dolan schrieb:
[...]
I'd like to find a way to get the original-name behavior with .par files
so that Module::Pluggable will start working. Any ideas?
<speculation>
I've been looking over the source code, and I believe the difference is
that .exe files use _extract_inc() while .par files are extracted
incrementally via unpar(). I haven't found documentation explaining the
reason for that difference, but I suspect it's because the .exe loads
just one PAR collection while multiple .par files could be loaded at
once. Perhaps there are other reasons?
Perhaps we could introduce a syntax like the following?
use PAR {file => 'foo.par', extract => 1};
Then that version could call _extract_inc. Might that be feasible? If
so, I'd be willing to try a first cut at implementation.
</speculation>
I'm unsure. I wonder why we would introduce new syntax for what should
work by default! If we want incremental extraction, why no extract with
the real file names? I'm sure Audrey had good reasons to do it the way
she did, but to be honest, I still don't entirely understand why.
Perhaps we should spend the time to figure this out once and for all
before we add more syntax. We might be able to get rid of the munged
file names for Perl modules and just have them for (extra, non-Perl-XS)
shared libs which might otherwise produce name clashes.
Chris, I really don't want to put you off with this and appreciate that
you are willing to help solve this old problem! Also, I just reread your
mail and realized that it's not only the names of the modules but also
the incremental extraction which is problematic for Module::Pluggable.
So perhaps we need new syntax after all. :(
I'm CCing this mail to Audrey in the hope that she can shed some light
on this. After all, the MD5 hashing has caused a lot of problems in the
past.
Steffen