Re: ActiveMQ (was Re: Devel::Cover with Moose?)

2011-05-30 Thread Toby Wintermute
On 27 May 2011 02:58, David Cantrell  wrote:
> On Thu, May 26, 2011 at 05:25:01PM +0100, Simon Wistow wrote:
>
>> Unless things have changed dramatically ActiveMQ has many, many features
>> pretty much all poorly documented in the typical ASF/Java project
>> fashion (i.e a poorly maintained wiki referencing multiple versions of
>> the software implicitly, a collection of hard to navigate JIRA pages and
>> masses of badly written Javadoc with no clear entry point).
>
> You're not talking about ActiveMQ you tease, you're talking about perl!
> And Javascript, and exim, and BIND, and Linux, and ...

Actually, I reckon a lot of Perl modules have quite good documentation
compared to most of the Java modules I've looked into! The Perl
community tends to start out with a SYNOPSIS section that includes a
simple example of how to use the module, and that can be so helpful to
get started.

> Of course, with perl (and Javscript, BIND and Linux), if you want to
> learn how to use the damned thing and how it all fits together, then
> there are some splendid books you can buy and a community of users.
> Maybe you can do the same with ActiveMQ.

I came across this while looking for comparisons of other queues:

http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes
After reading through it, my take-away message was: All software sucks.

RabbitMQ initially sounded quite good to me, btw, until I saw that
message queue replication was still merely planned for future
versions. Oh :(
But perhaps it's better to have something that has less features but
is reliable, than one that promises the moon, but will crash when I
least expect it? (As people seem to imply with ActiveMQ)

Thanks for all the input so far, guys.
-Toby

-- 
Turning and turning in the widening gyre
The falcon cannot hear the falconer
Things fall apart; the center cannot hold
Mere anarchy is loosed upon the world


Re: ActiveMQ (was Re: Devel::Cover with Moose?)

2011-05-26 Thread David Cantrell
On Thu, May 26, 2011 at 05:25:01PM +0100, Simon Wistow wrote:

> Unless things have changed dramatically ActiveMQ has many, many features 
> pretty much all poorly documented in the typical ASF/Java project 
> fashion (i.e a poorly maintained wiki referencing multiple versions of 
> the software implicitly, a collection of hard to navigate JIRA pages and 
> masses of badly written Javadoc with no clear entry point).

You're not talking about ActiveMQ you tease, you're talking about perl!
And Javascript, and exim, and BIND, and Linux, and ...

Of course, with perl (and Javscript, BIND and Linux), if you want to
learn how to use the damned thing and how it all fits together, then
there are some splendid books you can buy and a community of users.
Maybe you can do the same with ActiveMQ.

-- 
David Cantrell | Nth greatest programmer in the world

  Longum iter est per praecepta, breve et efficax per exempla.


Re: ActiveMQ (was Re: Devel::Cover with Moose?)

2011-05-26 Thread Simon Wistow
On Thu, May 26, 2011 at 05:25:01PM +0100, me said:
> My experience is a few years old and it's very possible things have 
> changed now

Apparently not

http://goodstuff.im/activemq-not-ready-for-prime-time

Money quote:

"I recommended ActiveMQ to a client [...] (and) I am quite frankly 
tremendously embarrassed.  I am writing this so that if you are 
considering ActiveMQ versus the numerous other open source message 
queues that you don't make the same mistake that I did... choose 
something else."



Re: ActiveMQ (was Re: Devel::Cover with Moose?)

2011-05-26 Thread Simon Wistow
On Tue, May 24, 2011 at 03:18:27PM +1000, Toby Wintermute said:
> By the way.. how are you finding ActiveMQ, especially when interacting
> with it from Perl?

My experience is a few years old and it's very possible things have 
changed now but, given a choice between working with ActiveMQ again and 
sawing off my own limbs with a spork I would choose self-mutilation with 
the hybrid cutlery every time.

Every time.

In my experience people's timeline with ActiveMQ goes like this (mine 
included, obv.) 

"Oooh, this looks nice. Not too hard to install. Oh, and look how easy 
it was to get stuff working. This is magic! Awesome. [time passes] Hmm, 
that's a bit odd, I guess I'll just work around it [more time passes] 
Wait? What? That's retarded! Why is it doing that? [even more time 
passes] Holy Shit! Where's my data? Screw this."

Unless things have changed dramatically ActiveMQ has many, many features 
pretty much all poorly documented in the typical ASF/Java project 
fashion (i.e a poorly maintained wiki referencing multiple versions of 
the software implicitly, a collection of hard to navigate JIRA pages and 
masses of badly written Javadoc with no clear entry point). The basics 
(queues, topics, failover) don't work reliably because it appears like 
the dev team are hellbent on replicating every last feature of MQSeries 
and TibCo Rendevous. But doing it badly.

...

Ad breathe.

You'll have even more trouble with Stomp. It looks like I never released 
my Net::Stomp::Async module which got round the problem of only ever 
being able to consume 100 messages/s (because of select()) but you might 
still run into problems with the fact that Stomp assumes everything is 
text which can make doing property based routing difficult.

Also, (again unless things have changed) ActiveMQ requires that backoff 
is done by the client. I'm not sure if that's an issue.

I've had some issues with RabbitMQ reliability in the past and adminning 
Erlang can be interesting.

More recently I've used ZeroMQ for some stuff, a little Redis PubSub 
(with custom patches for queues as well as topics), TheSchwartz with 
specialist workers and written a really simple system in node.js




Re: ActiveMQ (was Re: Devel::Cover with Moose?)

2011-05-25 Thread Daniel Pittman
On Wed, May 25, 2011 at 02:10, Ruud H.G. van Tol  wrote:
> On 2011-05-25 09:19, James Laver wrote:
>> On 24 May 2011, at 06:31, Daniel Pittman wrote:
[…]
> Anyone here who used Spread recently?

I made trivial use of it in both testing and production to serve as a
collector for Apache logs.  It was very little trouble, and did the
job, but was relatively painful to expand the network since it
required restarts of the service.  The Apache log collector handled
that gracefully, but IIRC you need to specifically support it.
Performance was reasonable, but then...

I was using the 3.1 release at the time, though, so I have no idea if
4.0 or 4.1 improve on that.

> It is supposed to be faster, lower level, taking < 1% CPU.

...CPU load on the network was comparable to the load on ActiveMQ
systems under similar load.  Spread isn't really much different
otherwise in terms of either speed, or being "lower level" (in either
the sense of being better for, or worse for, that. ;)

If I had to pick a "does as little as possible" low level library, 0mq
looks like the best available choice, but it provides next to
*nothing* in terms of scaling; you have a toolkit for messaging and
get to build out the rest of the routing, scaling, persistence, etc
yourself.

Daniel
-- 
⎋ Puppet Labs Developer – http://puppetlabs.com
✉ Daniel Pittman 
✆ Contact me via gtalk, email, or phone: +1 (503) 893-2285
♲ Made with 100 percent post-consumer electrons



Re: ActiveMQ (was Re: Devel::Cover with Moose?)

2011-05-25 Thread Daniel Pittman
On Wed, May 25, 2011 at 02:02, Dean Wilson  wrote:
> On Wed, May 25, 2011 at 08:19:07AM +0100, James Laver wrote:
>> You mean apart from RabbitMQ? Rabbit is also the most full-featured of any 
>> of the free message queues I've come across.
>
> Apart from HA, mesh networks and clustering. Rabbit is no where near prime
> time for that yet.

That is pretty much it: I would absolutely recommend RabbitMQ if you
don't need to scale, but ActiveMQ is the only robust choice I found if
you do need those things.  (For some values of clustering, obviously,
given the Erlang clustering that RabbitMQ can do. :)

Daniel
-- 
⎋ Puppet Labs Developer – http://puppetlabs.com
✉ Daniel Pittman 
✆ Contact me via gtalk, email, or phone: +1 (503) 893-2285
♲ Made with 100 percent post-consumer electrons



Re: ActiveMQ (was Re: Devel::Cover with Moose?)

2011-05-25 Thread Ruud H.G. van Tol

On 2011-05-25 09:19, James Laver wrote:

On 24 May 2011, at 06:31, Daniel Pittman wrote:



It is, presently, the best of the options out there in terms of scale


You mean apart from RabbitMQ? Rabbit is also the most full-featured of any of 
the free message queues I've come across.

My personal experience of using ActiveMQ is "don't: it'll cause you headache after 
headache". The same could be said of RabbitMQ, but we were doing some fairly 
tediously complicated stuff there (stuff that I believe would be impossible under 
ActiveMQ). Having watched people fight ActiveMQ trying to get it to do simple things, 
having watched people fighting Net::Stomp to find out why messages were being dropped at 
random sizes and having seen just how many times people wanted to go to the pub after 
dealing with ActiveMQ, I've already chosen RabbitMQ again for my current project.


Anyone here who used Spread recently?

It is supposed to be faster, lower level, taking < 1% CPU.

http://www.spread.org/

http://activemq.apache.org/how-does-activemq-compare-to-spread-toolkit.html

http://jeremy.zawodny.com/blog/archives/010511.html

--
Ruud


Re: ActiveMQ (was Re: Devel::Cover with Moose?)

2011-05-25 Thread Dean Wilson
On Wed, May 25, 2011 at 08:19:07AM +0100, James Laver wrote:
> You mean apart from RabbitMQ? Rabbit is also the most full-featured of any of 
> the free message queues I've come across.

Apart from HA, mesh networks and clustering. Rabbit is no where near prime
time for that yet.
 
> My personal experience of using ActiveMQ is "don't: it'll cause you
> headache after headache".

I don't do much with Net::STOMP (but it works for my basic cases) but we do
quite a lot with multi-dc resilient broker networks with clients in Ruby
and Java (and some perl) that RabbitMQ can't do using ActiveMQ.

If you have multiple locations or need solid HA modern ActiveMQ versions
are pretty much the best solution at the moment.

Plus most companies have more in-house JVM tuning skills than they do Erlang
runtime.

  Dean
-- 
Dean Wilson
http://www.unixdaemon.net   @unixdaemon
http://www.puppetcookbook.com   @puppetcookbook


Re: ActiveMQ (was Re: Devel::Cover with Moose?)

2011-05-25 Thread Dave Hodgkinson

On 25 May 2011, at 03:57, Toby Wintermute wrote:
> 
> Quickly updating this -- further investigation shows that ActiveMQ's
> behaviour is to take any ACK to mean you're acknowledging everything
> sent so far. If you don't ACK anything, or the recent things, then
> it'll happily store and resend them.

Just like TCP :)

All this means is that you need to separate the concern of queue
management from the concern of queue processing.




Re: ActiveMQ (was Re: Devel::Cover with Moose?)

2011-05-25 Thread James Laver

On 24 May 2011, at 06:31, Daniel Pittman wrote:

> It is, presently, the best of the options out there in terms of scale

You mean apart from RabbitMQ? Rabbit is also the most full-featured of any of 
the free message queues I've come across.

My personal experience of using ActiveMQ is "don't: it'll cause you headache 
after headache". The same could be said of RabbitMQ, but we were doing some 
fairly tediously complicated stuff there (stuff that I believe would be 
impossible under ActiveMQ). Having watched people fight ActiveMQ trying to get 
it to do simple things, having watched people fighting Net::Stomp to find out 
why messages were being dropped at random sizes and having seen just how many 
times people wanted to go to the pub after dealing with ActiveMQ, I've already 
chosen RabbitMQ again for my current project.

/j


Re: ActiveMQ (was Re: Devel::Cover with Moose?)

2011-05-24 Thread Toby Wintermute
On 24 May 2011 19:53, Toby Wintermute  wrote:
> On 24 May 2011 15:18, Toby Wintermute  wrote:
>> On 23 May 2011 21:07, Peter Edwards  wrote:
>>> Back to fighting with ActiveMQ. Feh.
>>
>> By the way.. how are you finding ActiveMQ, especially when interacting
>> with it from Perl?
>
> Answering my own question a bit here, but I have now used ActiveMQ
> with Perl via the STOMP interface to ActiveMQ.
>
> 1) I've already had to file two bugs with patches to AnyEvent::STOMP,
> as it simply didn't work at all. This is possibly due to a stricter
> parsing of STOMP by ActiveMQ than others.. I'm not sure.
> It doesn't give me much confidence that anyone else is working with
> both ActiveMQ and this CPAN module though!
>
> 2) The ACK system seems to be ignored by ActiveMQ.
> I set "ACK"s to be manual, and then I am only sending ACKs for 50% of
> the messages I receive.
> I am setting the Receipt header in messages I send.
>
> So, I expect that either
> a) I will not receipt RECEIPTs for things I didn't ACK, or
> b) The broker will resend messages that I failed to ACK.
>
> Neither of these happen.
> I receive RECEIPTs for every message sent, and un-ACKed messages are
> not requeued.
>
> Is that meant to happen?

Quickly updating this -- further investigation shows that ActiveMQ's
behaviour is to take any ACK to mean you're acknowledging everything
sent so far. If you don't ACK anything, or the recent things, then
it'll happily store and resend them.

So if I receive 10 messages, and sent ACKs for none except the last,
then all are considered good by activemq. Nothing will be requeued.

If I receive 10 messages, and send ACKs for, say, #8, but not #9 or
#10, then activemq will consider the first 8 as good, and requeue and
resend the ninth and tenth.

So if you're using ACKs to indicate that you haven't totally crashed
while processing a message, then the system will work as you expect..
if you crash and reconnect, you'll receive the last message again.

This is a bit annoying if you're writing an asynchronous consumer with
AnyEvent::STOMP though, because you could conceivably receive 3
messages and be processing them simultaneously.. finish #3 first and
ACK it, then crash out before finishing #1 and #2. But because you
ACKed #3, ActiveMQ considers 1 and 2 as fine too :(

Note that I am a newbie at AMQ so it's possible there's some sort of
option floating around to change this that I just haven't found yet..

-Toby


Re: ActiveMQ (was Re: Devel::Cover with Moose?)

2011-05-24 Thread Peter Edwards
Actually we are running ActiveMQ 5.4.0 in production although latest is
5.4.2 on that branch and 5.5.0 is now also available.
http://activemq.apache.org/

https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311210&version=12315623
Yet more "Java leaking memory" bugfixes by the look of it :-)

-Peter


Re: ActiveMQ (was Re: Devel::Cover with Moose?)

2011-05-24 Thread Peter Corlett
On 24 May 2011, at 06:18, Toby Wintermute wrote:
> On 23 May 2011 21:07, Peter Edwards  wrote:
>> Back to fighting with ActiveMQ. Feh.
> By the way.. how are you finding ActiveMQ, especially when interacting
> with it from Perl?

AFAICS, it seems to work best through the STOMP support. Net::Stomp is a bit 
funky, but I've wrapped it into something that doesn't have a multi-stage setup 
process and thus can be glued into Catalyst with Catalyst::Model::Adaptor. It 
sprouted serialisation and deserialisation of messages and tracing (set 
STOMP_TRACE in the environment to have the messages dumped). At some point I 
should tidy up the tests and docs and shove it on CPAN. Any idea what name I 
should give it? (Net::Stomp::Simple? It uses Moose so it's not terribly ::Lite.)

> I've been recommended to use it for a project at work, but I don't
> think the recommender has actually used it. Curious to know how it
> works in the real world.

Being software, it is of course hateful, but I've found it to be the 
least-worst of all of the message-queue systems I've tried. I made a Debian 
(therefore also Ubuntu) package for it which took a whole load of arsing around 
away.





Re: ActiveMQ (was Re: Devel::Cover with Moose?)

2011-05-24 Thread Peter Edwards
> > By the way.. how are you finding ActiveMQ, especially when interacting
> > with it from Perl?
>
>
I'm using it from Net::Stomp which had issues but now (version 0.40 on)
works fine for us.
Historically, ActiveMQ had problems with memory leaks though 5.3 works fine
for us. It is also the standard queue platform used more widely within the
BBC.
One thing to watch out for is if you use non-persistent queues and don't
consume the messages eventually the server runs out of memory and at that
point (rather bizarrely IMO) still accepts TCP/IP connections but blocks
responding to requests. You do see messages in its log, though. IIRC some
people have had problems with high volume sites when the message packet is
over 2K and occasionally frames get dropped (so use a smaller payload).

We're using it in a fairly simplistic way, I write to a queue to notify
publishing events (start and finish) and we also wrote a node.js
http://nodejs.org/ pub-sub hub which picks those up using
https://github.com/benjaminws/stomp-js and re-broadcasts by cometd to web
clients (in addition to handling other client-server notifications and
messaging). Seems to work okay. The JS code with node turned out to be
straightforward and easier to implement a FSA than say writing a Perl POE
server.

Regards, Peter
http://perl.dragonstaff.co.uk


Re: ActiveMQ (was Re: Devel::Cover with Moose?)

2011-05-24 Thread Toby Wintermute
On 24 May 2011 15:18, Toby Wintermute  wrote:
> On 23 May 2011 21:07, Peter Edwards  wrote:
>> Back to fighting with ActiveMQ. Feh.
>
> By the way.. how are you finding ActiveMQ, especially when interacting
> with it from Perl?

Answering my own question a bit here, but I have now used ActiveMQ
with Perl via the STOMP interface to ActiveMQ.

1) I've already had to file two bugs with patches to AnyEvent::STOMP,
as it simply didn't work at all. This is possibly due to a stricter
parsing of STOMP by ActiveMQ than others.. I'm not sure.
It doesn't give me much confidence that anyone else is working with
both ActiveMQ and this CPAN module though!

2) The ACK system seems to be ignored by ActiveMQ.
I set "ACK"s to be manual, and then I am only sending ACKs for 50% of
the messages I receive.
I am setting the Receipt header in messages I send.

So, I expect that either
a) I will not receipt RECEIPTs for things I didn't ACK, or
b) The broker will resend messages that I failed to ACK.

Neither of these happen.
I receive RECEIPTs for every message sent, and un-ACKed messages are
not requeued.

Is that meant to happen?

Cheers,
Toby


Re: ActiveMQ (was Re: Devel::Cover with Moose?)

2011-05-23 Thread Daniel Pittman
On Mon, May 23, 2011 at 22:18, Toby Wintermute  wrote:
> On 23 May 2011 21:07, Peter Edwards  wrote:
>> Back to fighting with ActiveMQ. Feh.
>
> By the way.. how are you finding ActiveMQ, especially when interacting
> with it from Perl?

FWIW, we find it scales fairly efficiently and works robustly in the
field for the use we make in MCollective.  It is, presently, the best
of the options out there in terms of scale – but if you don't need
clustering, or super-efficient multi-site message routing, you might
find that some of the simpler competitors are easier to approach.

> I've been recommended to use it for a project at work, but I don't
> think the recommender has actually used it. Curious to know how it
> works in the real world.

For anything message-bus you really need to ask "in the real world,
for a load like X", for your own X.  The number and size of messages,
persistence, timeliness, and consumers can make a substantial
difference to how well the tool works.  For anything less than a few
MQ, or a few thousand small (4-128K) messages a second, most of the
options work just fine.

Daniel
-- 
⎋ Puppet Labs Developer – http://puppetlabs.com
✉ Daniel Pittman 
✆ Contact me via gtalk, email, or phone: +1 (503) 893-2285
♲ Made with 100 percent post-consumer electrons



ActiveMQ (was Re: Devel::Cover with Moose?)

2011-05-23 Thread Toby Wintermute
On 23 May 2011 21:07, Peter Edwards  wrote:
> Back to fighting with ActiveMQ. Feh.

By the way.. how are you finding ActiveMQ, especially when interacting
with it from Perl?

I've been recommended to use it for a project at work, but I don't
think the recommender has actually used it. Curious to know how it
works in the real world.

Cheers,
Toby

-- 
Turning and turning in the widening gyre
The falcon cannot hear the falconer
Things fall apart; the center cannot hold
Mere anarchy is loosed upon the world


Re: Devel::Cover with Moose?

2011-05-23 Thread Toby Wintermute
On 24 May 2011 04:26, Paul Johnson  wrote:
> On Mon, May 23, 2011 at 06:27:22PM +1000, Toby Corkindale wrote:
>> Is anyone else using Devel::Cover with Moose, much?
>> I seem to get megabytes of warnings displayed even on trivial modules.
>> It's trying to create MD5 digests of files containing the materialised
>> functions created by __PACKAGE__->meta->make_immutable.
>>
>> For example:
>>
>> $ cat Foo.pm
>> package Foo;
>> use Moose;
>> __PACKAGE__->meta->make_immutable;
>> 1;
>>
>> $ perl -MDevel::Cover -e 'use Foo'
>>
>> I've filed a bug report, but I don't suppose there's just an easy workaround?
>
> I've read the bug report.  I don't suppose there is, unless you count
> piping the output through grep -v "Can't" as an easy workaround.  It's
> quite easy, at least.
>
> Is the problem just that there is a lot of noise, or are the results
> incorrect in some way too?

It's mainly the noise that bothers me.

> The noise I can probably deal with.  The problem is, I suppose, that
> Moose is making up filenames and then when Devel::Cover takes it at its
> word and goes to look in those files it finds that Moose was actually
> telling porky pies, and so it complains about that.

I suppose that's fair enough, albeit annoying.

> Does Moose consistently format its made up filenames in some way that I
> could recognise them?  Is there any useful information in the made up
> filenames or should I just ignore them completely?

They appear to be package+function names, rather than file names - eg:
My::Package::Name::new

> I realise that this is not the appropriate list for this discussion, but
> I'm not on any Moose lists and you didn't ask in perl-qa :-P

I'm not on those lists either.. Sounds like I should probably join one
of these days.

-- 
Turning and turning in the widening gyre
The falcon cannot hear the falconer
Things fall apart; the center cannot hold
Mere anarchy is loosed upon the world



Re: Devel::Cover with Moose?

2011-05-23 Thread Paul Johnson
On Mon, May 23, 2011 at 06:27:22PM +1000, Toby Corkindale wrote:
> Is anyone else using Devel::Cover with Moose, much?
> I seem to get megabytes of warnings displayed even on trivial modules.
> It's trying to create MD5 digests of files containing the materialised
> functions created by __PACKAGE__->meta->make_immutable.
> 
> For example:
> 
> $ cat Foo.pm
> package Foo;
> use Moose;
> __PACKAGE__->meta->make_immutable;
> 1;
> 
> $ perl -MDevel::Cover -e 'use Foo'
> 
> I've filed a bug report, but I don't suppose there's just an easy workaround?

I've read the bug report.  I don't suppose there is, unless you count
piping the output through grep -v "Can't" as an easy workaround.  It's
quite easy, at least.

Is the problem just that there is a lot of noise, or are the results
incorrect in some way too?

The noise I can probably deal with.  The problem is, I suppose, that
Moose is making up filenames and then when Devel::Cover takes it at its
word and goes to look in those files it finds that Moose was actually
telling porky pies, and so it complains about that.

Does Moose consistently format its made up filenames in some way that I
could recognise them?  Is there any useful information in the made up
filenames or should I just ignore them completely?

I realise that this is not the appropriate list for this discussion, but
I'm not on any Moose lists and you didn't ask in perl-qa :-P

-- 
Paul Johnson - p...@pjcj.net
http://www.pjcj.net


Re: Devel::Cover with Moose?

2011-05-23 Thread Peter Edwards
After upgrading to latest NYTProf 4.06 I get fewer warnings

  82% ... Source for Moose generated method (unknown origin) isn't available
(/home/edwarp11/dev/generated method (unknown origin): No such file or
directory)

Then when I upgrade to latest Moose 2.0007 I get
$ perl -d:NYTProf t.pl
Couldn't load class (MooseX::StrictConstructor::Trait::Class) because:
Undefined subroutine &namespace::autoclean::on_scope_end called at
/home/edwarp11/perl_local1/lib/perl5/namespace/autoclean.pm line 57.

Upgraded namespace::autoclean from 0.11 to 0.12 and
$ perl -d:NYTProf.pl
runs cleanly but when I run nytprofhtml I get
   0% ... Eval::Closure::__ANON__[(eval
113)[/home/edwarp11/perl_local1/lib/perl5/Eval/Closure.pm:124]:26] has no
caller subnames but a call count of 2
about 100 times



> [edwarp11@wsfmas26 dev]$ perl -d:NYTProf t.pl
> [edwarp11@wsfmas26 dev]$ nytprofhtml
> Reading nytprof.out
> Processing nytprof.out data
> Writing sub reports to nytprof directory
>   81% ... Unable to open '/home/edwarp11/dev/generated method (unknown
> origin)' for reading: No such file or directory.
>   99% ... Unable to open '/home/edwarp11/dev/accessor foo defined at T.pm'
> for reading: No such file or directory.
>
>


Re: Devel::Cover with Moose?

2011-05-23 Thread Peter Edwards
On 23 May 2011 09:27, Toby Corkindale  wrote:

> Is anyone else using Devel::Cover with Moose, much?
> I seem to get megabytes of warnings displayed even on trivial modules.
> It's trying to create MD5 digests of files containing the materialised
> functions created by __PACKAGE__->meta->make_immutable.
>
>
Similar behaviour with NYTProf

[edwarp11@wsfmas26 dev]$ perl -d:NYTProf t.pl
[edwarp11@wsfmas26 dev]$ nytprofhtml
Reading nytprof.out
Processing nytprof.out data
Writing sub reports to nytprof directory
  81% ... Unable to open '/home/edwarp11/dev/generated method (unknown
origin)' for reading: No such file or directory.
  99% ... Unable to open '/home/edwarp11/dev/accessor foo defined at T.pm'
for reading: No such file or directory.

A bit of Googling turns up a comment July 2009 from Tim Bunce
http://blog.woobling.org/2009/07/optimizing-mooses-startup.html
then
http://code.google.com/p/perl-devel-nytprof/source/browse/trunk/t/71-moose.t?spec=svn1374&r=1374
r1374<http://code.google.com/p/perl-devel-nytprof/source/detail?spec=svn1374&r=1374>
by
tim.bunce on Sep 30, 2010
Diff<http://code.google.com/p/perl-devel-nytprof/source/diff?spec=svn1374&r=1374&format=side&path=/trunk/t/71-moose.t&old_path=/trunk/t/71-moose.t&old=>

Add preliminary (incomplete) test files
for #line handling and Moose.


I'd be interested in hearing if anyone has these tools playing together
well.

There's not much Moose in the production code here and what we have was
added after our last round of NYTProf'ing so I haven't looked in detail at
the reports it produces yet.

Back to fighting with ActiveMQ. Feh.

Regards, Peter
http://perl.dragonstaff.co.uk


Devel::Cover with Moose?

2011-05-23 Thread Toby Corkindale
Is anyone else using Devel::Cover with Moose, much?
I seem to get megabytes of warnings displayed even on trivial modules.
It's trying to create MD5 digests of files containing the materialised
functions created by __PACKAGE__->meta->make_immutable.

For example:

$ cat Foo.pm
package Foo;
use Moose;
__PACKAGE__->meta->make_immutable;
1;

$ perl -MDevel::Cover -e 'use Foo'

I've filed a bug report, but I don't suppose there's just an easy workaround?

Cheers,
Toby