Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the YAML CPAN distribution.

Report information
The Basics
Id: 75390
Status: rejected
Priority: 0/
Queue: YAML

People
Owner: Nobody in particular
Requestors: simonw [...] cpan.org
Cc: mca1001 [...] users.sourceforge.net
AdminCc:

Bug Information
Severity: (no value)
Broken in: 0.80
Fixed in: (no value)



Subject: Error due to lack of Mo
Fresh install of YAML 0.8 on Ubuntu (squeeze/sid) and got this error Can\'t locate Mo/default.pm in @INC (@INC contains: /opt/heav...') called at (eval 103) eval 'no Mo::default ;' called at /usr/local/share/perl/5.10.1/YAML/Mo.pm line 5 YAML::Mo::__ANON__(undef, 'builder', 'default') called at /usr/local/share/perl/5.10.1/YAML.pm line 3 YAML::BEGIN() called at (eval 103) line 2 eval {...} called at (eval 103) line 2 require YAML.pm called at Fixed by installing Mo manually. I suspect somehow Mo is supposed to be installed via the Module::Install shennanigans - I'm not sure why it's not
Subject: Re: [rt.cpan.org #75390] Error due to lack of Mo
Date: Tue, 28 Feb 2012 18:58:17 -0800
To: bug-YAML [...] rt.cpan.org
From: Ingy dot Net <ingy [...] ingy.net>
No. Mo is inlined as YAML::Mo as is Mo::default. I would really like to figure this out. Any light you could shine on this would be appreciated. How did you install YAML.pm? On Tue, Feb 28, 2012 at 4:25 PM, Simon Wistow via RT <bug-YAML@rt.cpan.org>wrote: Show quoted text
> Tue Feb 28 19:25:16 2012: Request 75390 was acted upon. > Transaction: Ticket created by SIMONW > Queue: YAML > Subject: Error due to lack of Mo > Broken in: 0.80 > Severity: (no value) > Owner: Nobody > Requestors: simonw@cpan.org > Status: new > Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=75390 > > > > Fresh install of YAML 0.8 on Ubuntu (squeeze/sid) and got this error > > Can\'t locate Mo/default.pm in @INC (@INC contains: /opt/heav...') called > at (eval 103) > > eval 'no Mo::default > ;' called at /usr/local/share/perl/5.10.1/YAML/Mo.pm line 5 > YAML::Mo::__ANON__(undef, 'builder', 'default') called at > /usr/local/share/perl/5.10.1/YAML.pm line 3 > YAML::BEGIN() called at (eval 103) line 2 > eval {...} called at (eval 103) line 2 > require YAML.pm called at > > Fixed by installing Mo manually. > > I suspect somehow Mo is supposed to be installed via the Module::Install > shennanigans - I'm > not sure why it's not >
On 2012-02-29T02:58:27Z, ingy@ingy.net wrote: Show quoted text
> No. Mo is inlined as YAML::Mo as is Mo::default.
Mo::default is not inlined. YAML::Mo::default is! Thus "no Mo::default" fails.
On Tue Feb 28 21:58:27 2012, ingy@ingy.net wrote: Show quoted text
> No. Mo is inlined as YAML::Mo as is Mo::default. I would really like
to Show quoted text
> figure this out. Any light you could shine on this would be
appreciated. Show quoted text
> > How did you install YAML.pm? >
See http://www.cpantesters.org/cpan/report/f9e4a1e0-f354-11e1-bb01- e3918809bd53 for stack traces for the same or a similar issue. The errors are preceded by the message Can't locate Mo/builder.pm in @INC (@INC contains: ...) so maybe there's an unsatisfied dependency on Mo::builder? -- Marty O'Brien, mob@cpan.org
Subject: [rt.cpan.org #75390]
Date: Thu, 6 Jun 2013 23:36:15 +1200
To: bug-yaml [...] rt.cpan.org
From: Andrew Nicols <andrew [...] nicols.co.uk>
I think I may have gotten to the bottom of this one whilst looking at a bug in an inhouse module which uses YAML. So in 0.75, YAML started using Mo, and in 0.81 you moved to using Mo::Inline instead. Mo::Inline seems to expect Mo to be installed though. The Mo::Inline converts the commented out use Mo qw[builder default import]; and turns it into a load of obfuscated code. Digging that code apart, it appears that Mo::Inline adds that version of Mo under the YAML namespace, e.g.: YAML::Mo::builder. However, it also then calls no Mo::builder; It looks like 'no' requires that the module be installed in order to prevent it's use. So on a system when you do *not* have Mo installed, this issue will appear. In a system where Mo *is* installed, then it will be fine.
On 2012-02-28 21:58:27, ingy@ingy.net wrote: Show quoted text
> I would really like to figure this out. Any light you could shine > on this would be appreciated.
Hi, I found this "suddenly started happening" and chopped it down to $ perl -e 'require YAML::Loader' $ perl -e '$SIG{__DIE__} = sub { die "whoops: @_" }; require YAML::Loader' $ perl -e '$SIG{__DIE__} = sub { warn "whoops: @_" }; require YAML::Loader' whoops: Can't locate Mo/builder.pm in @INC (...) at (eval 1) line 1. whoops: Can't locate Mo/default.pm in @INC (...) at (eval 2) line 1. whoops: Can't locate Mo/builder.pm in @INC (...) at (eval 3) line 1. whoops: Can't locate Mo/default.pm in @INC (...) at (eval 4) line 1. whoops: Can't locate Mo/builder.pm in @INC (...) at (eval 5) line 1. whoops: Can't locate Mo/default.pm in @INC (...) at (eval 6) line 1. whoops: Can't locate Mo/builder.pm in @INC (...) at (eval 7) line 1. whoops: Can't locate Mo/default.pm in @INC (...) at (eval 8) line 1. For me just now, it's just noise so I'm ignoring it. I have require YAML::Loader = /usr/share/perl5/YAML/Loader.pm [0.77] require YAML::Mo = /usr/share/perl5/YAML/Mo.pm [0.77] and I don't have Mo.pm hth, -- Matthew
On 2013-10-14 07:02:54, MCAST wrote: Show quoted text
> On 2012-02-28 21:58:27, ingy@ingy.net wrote: >
> > I would really like to figure this out. Any light you could shine > > on this would be appreciated.
I'm now concluding that it's not a YAML bug, but a problem with use of $SIG{__DIE__} without paying sufficient attention to $^S. perlvar(1) warns about this. Show quoted text
> For me just now, it's just noise so I'm ignoring it.
https://github.com/mca-wtsi/HTtapTP/commit/832b81e8 I'm still not sure it's right, or even that a right answer exists. But my TAP output is better than it was. hth, -- Matthew
This issue has been copied to: https://github.com/ingydotnet/yaml-pm/issues/124 please take all future correspondence there. This ticket will remain open but please do not reply here. This ticket will be closed when the github issue is dealt with.