Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^6: Do Pure Perl CPAN packages really need to use ExtUtils::Command::MM?

by ELISHEVA (Prior)
on Feb 18, 2011 at 07:38 UTC ( [id://888860]=note: print w/replies, xml ) Need Help??


in reply to Re^5: Do Pure Perl CPAN packages really need to use ExtUtils::Command::MM?
in thread Do Pure Perl CPAN packages really need to use ExtUtils::Command::MM?

Technically, all MakeMaker is doing is a pass through too. Each just makes a shell call to its own implementation of test, install, etc. Since we are talking pure Perl modules here (check thread title) those are the only targets that are relevant. Whether pssthrough is a suitable way to deal with C/C++ builds is another discussion entirely.

If anything Module::Build's shell commands are safer. MakeMaker's target implementation requires quoted parameters and long lists of files passes on the command line. Both are known to cause portability problems because of differences in shell quoting rules and limits on command line length. Module::Build's perl calls have none of those issues because there are no quoted parameters or file lists - instead it relies on its stored project metadata.

Given that both MM and MB command lines are only making Perl calls to their own libraries, "passthrough is crap" is little more than a bald statement that you believe Module::Build is crap.

I didn't post this question to take sides in the "I hate Module::Build" debate. I posted this question because I wanted to understand what the cost benefits were. How big of a community refuses at any price to use Module::Build or anything tainted by it (e.g. a Makefile whose targets are implemented by Module::Build)? How big of a community can't download Module::Build but can download CPAN modules (jetthro argues such a community is likely to be very small indeed). What are the costs of supporting their needs? (how much time in this case, no one is getting paid here). Does it occur to you that my time is valuable and you are asking me to spend it to support your hatred of Module::Build? If so, I need a good reason.

"It's crap" is way too vague to count as a reason. I personally would have preferred you had posted a thoughful and well written essay on _why_ you trust MakeMaker so much more than Module::Build. Even if you said nothing more than "its the new kid on the block and I just don't trust it" that would have mattered more to me. Your feelings as a member of the "I hate Module::Build" club do count.

Looking at the tenor of the responses on this thread and who has participated and who has not, I'm inclined to believe that the answer to my question is something like this: aside from some very vocal (if anonymous) individuals like yourself, most people simply don't care. They just want the install to work. Period. Whatever I do that makes that happen will make them happy. If that's the case, I would have to say that one is more likely to get a reliable install using a Module::Build backed makefile than not. Do you have concrete counter arguments and examples?

Replies are listed 'Best First'.
Re^7: Do Pure Perl CPAN packages really need to use ExtUtils::Command::MM?
by Anonymous Monk on Feb 18, 2011 at 10:19 UTC
    Technically, all MakeMaker is doing is a pass through too. Each just makes a shell call to its own implementation of test, install, etc. Since we are talking pure Perl modules here (check thread title) those are the only targets that are relevant. Whether pssthrough is a suitable way to deal with C/C++ builds is another discussion entirely.

    I pay attention to the topic at hand (pure perl cpan packages), and yes, passthrough is crap.

    It is like the most beautiful woman you ever saw, except when you get close you find out she is really a man.

    If you want Makefile.PL and Module::Build, use Module::Install, it is most excellent.

    Given that both MM and MB command lines are only making Perl calls to their own libraries, "passthrough is crap" is little more than a bald statement that you believe Module::Build is crap.

    No I don't, otherwise I would not have recommended that you forget Makefile.PL and stick with Build.PL. Besides, didn't you know passthrough is DEPRECATED?

    I didn't post this question to take sides in the "I hate Module::Build" debate.

    With the amount of .. *pause* .. shall we say ... "tangents" , you could have fooled me.

    ... How big of a community can't download Module::Build but can download CPAN modules... What are the costs ...

    Survey time :)

    Does it occur to you that my time is valuable and you are asking me to spend it to support your hatred of Module::Build? If so, I need a good reason.

    Balls. Sounds like a stiff something or other or other or another is in order.

    Looking at the tenor of the responses on this thread and who has participated and who has not, I'm inclined to believe that the answer to my question is something like this: aside from some very vocal (if anonymous) individuals like yourself, most people simply don't care....

    *yawn* Straw man, Argumentum ex silentio, Ad hominem, Argumentum ad ignorantiam...

      Besides, didn't you know passthrough is DEPRECATED?

      Sorry to disappoint you, but you don't get to hang me on that nail. I explictly said further back I planned to use 'small' which uses the passthrough technique but is NOT deprecated. The one you are referring to is literally named "passthrough". I never have and never did have any intentions of using it. But if you read through the docs you will realize that it is deprecated because it is no longer needed thanks to CPAN's support for configure_requires, not because it is crap.

      From the module docs (bold mine):

        small

        A small Makefile.PL will be created that passes all functionality through to the Build.PL script in the same directory. The user must already have Module::Build installed in order to use this, or else they'll get a module-not-found error.

        passthrough (DEPRECATED)

        This is just like the small option above, but if Module::Build is not already installed on the user's system, the script will offer to use CPAN.pm to download it and install it before continuing with the build.... This option has been deprecated and may be removed in a future version of Module::Build. Modern CPAN.pm and CPANPLUS will recognize the configure_requires metadata property and install Module::Build before running Build.PL if Module::Build is listed and Module::Build now adds itself to configure_requires by default.

        not because it is crap

        Another strawman

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://888860]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (8)
As of 2024-03-28 12:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found