[Rio-pm] PAR -> PP -> modulo no build mas funcao nao encontrada

Samir Cury samir.cury.siqueira em cern.ch
Domingo Abril 24 16:15:27 PDT 2011


Haha!

Por isso que me amarro nessa lista :

/QCDContact_Pt-15to30_L-3000_TuneD6T_8TeV-pythia6/Spring11-START310_V4-v1/GEN-SIM
                                                 310.88           undef
/WJets_TuneD6T_matchingdown_7TeV-madgraph-tauola/Fall10-START38_V12-v1/GEN-SIM-RECO
                                               960.35             top


Funciona! Cheio de warnings que eu nao tinha antes, provavelmente tuas
opcoes tem algum "perl critics-like" (deve estar mal escrito) que fazem
tanto na hora de gerar o PAR quanto rodar ele reclamar muuuuuuuuuito. Mas
dai o problema nao e do Perl, e do programador hehehe.

Hoje ja sao 1:13 AM aqui e amanha vou dirigir umas 2:30h pela manha, entao
vou deixar pra ver quando voltar de viagem e entender melhor o problema, pra
postar um "resumao" aqui do porque funcionou e quais eram os erros mais
recorrentes e porque o Perl reclamou tanto. Mesmo que todos ja saibam quem
cair aqui pelo google vai saber tambem =)

Valeu mesmo Breno!

Abracos,
Samir

2011/4/25 breno <breno em rio.pm.org>

> Oi Samir,
>
> cara, não sei o que pode ser não, aqui funciona na moral - e não
> precisei nem passar as dependências via -M. Seria a ordem dos
> parâmetros?
>
> (usei esse código)
>
> garu em bebop:~/tmp$ cat gen.pl
>
> use strict;
> use warnings;
> use WWW::Mechanize;
> use JSON -support_by_pp;
> use Date::Manip;
> use Date::Calc;
> use namespace::autoclean;
> use App::Rad;
>
> App::Rad->run;
>
> sub foo {
>    ParseDate("today");
> }
>
>
> (e gerei o binário assim)
>
> garu em bebop:~/tmp$ pp -B -c -o gen gen.pl
>
> (desligando o perlbrew, para mostrar que não funcionaria sem as deps:
>
> garu em bebop:~/tmp$ perlbrew off
>
> garu em bebop:~/tmp$ perl gen.pl
> Can't locate WWW/Mechanize.pm in @INC (@INC contains: /etc/perl
> /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5
> /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10
> /usr/local/lib/site_perl .) at gen.pl line 3.
> BEGIN failed--compilation aborted at gen.pl line 3.
>
> (finalmente, testando o bundle do PAR)
>
> garu em bebop:~/tmp$ ./gen
> Usage: ./gen command [arguments]
>
> Available Commands:
>    foo
>    help        show syntax and available commands
>
> garu em bebop:~/tmp$ ./gen foo
> 2011042400:00:00
>
>
> []s
>
> garu
>
> 2011/4/24 Samir Cury <eu em samircury.eng.br>:
> > Galera,
> > Estou ajudando a desenvolver um script que tem tanta dependencia chata
> que
> > achei melhor usar algo tipo PAR pra distribuir um executavel sem dor de
> > cabeca.
> > Achei o PP como melhor solucao ate entao :
> > http://search.cpan.org/~rschupp/PAR-Packer-1.009/lib/pp.pm
> > Antes que me perguntem todas as dependencias do codigo, diretamente sao :
> >
> https://github.com/samircury/US-CMS-T2-Admin-Toolkit/blob/master/staleData/generate_report.pl
> >
> > use WWW::Mechanize;
> > use JSON -support_by_pp;
> > use Date::Manip;
> > use Date::Calc;
> > use namespace::autoclean;
> > use App::Rad;
> >
> >
> >
> > O que tambem cria dependencias indiretas. Por consequencia, entao a linha
> do
> > PP pra rodar sem varios (pa::ra::ra not found in @INC) seria algo como :
> >
> > samir em Darkstar ~/coding/US-CMS-T2-Admin-Toolkit/staleData $ pp -o
> > generate-report generate_report.pl -M WWW::Mechanize -M Date::Manip -M
> JSON
> > -M Date::Calc -M namespace::autoclean -M App::Rad -M JSON::backportPP -M
> > Package::Stash -M Class::MOP::Package -M Class::MOP -M base -M
> > Class::MOP::Module -M Package::Stash::PP -M attributes
> >
> > samir em Darkstar ~/coding/US-CMS-T2-Admin-Toolkit/staleData $
> > ./generate-report
> > Undefined subroutine &main::ParseDate called at script/
> generate_report.pl
> > line 68.
> >
> >
> > Podem ver depois eu rodando o script e falhando, onde ele chama a
> ParseDate
> > que esta dentro de Date::Manip, que como podem ver esta incluso no PAR,
> pelo
> > menos no comando do PP.
> >
> > Tambem fiz outro teste :
> > samir em Darkstar ~/coding/US-CMS-T2-Admin-Toolkit/staleData $ perl
> > -MDate::Manip -e'print(ParseDate("today"));'
> > 2011042400:00:00
> > Que prova que tenho o modulo e funciona.
> > Alguem que tenha mais experiencia com o PAR tem alguma ideia?
> > Abracos,
> > Samir
> >
> >
> >
> > _______________________________________________
> > Rio-pm mailing list
> > Rio-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/rio-pm
> >
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20110425/e31e7106/attachment.html>


Mais detalhes sobre a lista de discussão Rio-pm