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

Reply via email to