concision

slanning on 2009-05-03T09:01:30

This would be my comment at chromatic's book-promotion blog -- in particular in reply to Ovid's comment -- if I weren't required to sign in there.

Perl6 will be out soon, right? Why put MooseX::Declare in the Perl5 core?

Anyway, the module failed to install for me. I'll try to work out why, though at first glance... MooseX::Method::Signatures failed to install, and it required

    Context::Preserve [requires]
    Parse::Method::Signatures [requires]
    MooseX::Meta::TypeConstraint::ForceCoercion [requires]
    MooseX::Types::Structured [requires]
    aliased [requires]
    B::Hooks::EndOfScope [requires]
    MooseX::Types [requires]
    Devel::Declare [requires]

and of course Parse::Method::Signatures requires

    PPI [requires]
    MooseX::Types::Structured [requires]
    aliased [requires]
    MooseX::Traits [requires]
    namespace::clean [requires]
    MooseX::Types [requires]

and naturally PPI needs

    Test::Object [requires]
    Test::ClassAPI [requires]
    Test::SubCalls [requires]

and Test::SubCalls wants to have

    Hook::LexWrap [requires]

Maybe I'll see where the error is sometime soon. Oh, here we go again, MooseX::Types::Structured needs

    Sub::Exporter [requires]
    Devel::PartialDump [requires]

which I'm quite happy to install, yes, now namespace::clean would like

    B::Hooks::EndOfScope [requires]

and why shouldn't it since MooseX::Method::Signatures itself did, but it'll need

    Variable::Magic [requires]

which I thought I had installed already, but that must've been another machine. So now we're installing MooseX::Meta::TypeConstraint::ForceCoercion which couldn't live without

    namespace::autoclean [requires]

which needs a newer version of

    Class::MOP [requires]

which warns me that

***
    This version of Class::MOP conflicts with the version of
    Moose (0.69) you have installed.

    You will need to upgrade Moose after installing
    this version of Class::MOP.
***

Yes, yes, fine fine. But, oh no, finally a test failure in the version 0.01 module MooseX::Meta::TypeConstraint::ForceCoercion. I'll try to get back to you after I analyze the Moose / Class::MOP stacktrace explosion, but in the meantime, yeah sure, put that in the core. Thanks. ^.^


Most of that is Unnecessary

chromatic on 2009-05-03T22:55:30

It's much easier to add those features to the Perl parser than to shove it in sideways with Devel::Declare and other modules which hijack the compilation process. Several of those dependencies would go away.