[Brasil-PM] perl 5 versão18 lançado! \o/

Carlos Costa crncosta em gmail.com
Domingo Maio 19 06:07:15 PDT 2013


Foi uma leitura bastante interessante e ilustrativa. Me fez lembrar que
`Perl rocks`, nunca morre! exemplo de projeto FOSS saudável e em plena
atividade =)

Breno, Muito Obrigado!

( )s
Carlos.


2013/5/18 Ole Peter Smith <ole.ufg em gmail.com>

> +1!
>
> 0le
>
> Send via Android
> On May 18, 2013 7:53 PM, "Bruno Buss" <bruno.buss em gmail.com> wrote:
>
>> garu++ pelo resumão + tradução do perldelta :-)
>>
>>
>> [ ]'s
>>
>>
>> 2013/5/18 breno <breno em rio.pm.org>
>>
>>> É com enorme prazer que a comunidade Perl de todo o mundo recebe a
>>> mais nova versão do Perl 5! O Perl 5.18.0 representa mais ou menos 1
>>> ano de desenvolvimento desde o 5.16.0 e contém aproximadamente 400.000
>>> linhas de mudanças entre 2.100 arquivos, feitas por 113 autores
>>> diferentes.
>>>
>>> Você poderá baixar e instalar a partir de seu mirror favorito ou em
>>> https://metacpan.org/release/RJBS/perl-5.18.0/
>>>
>>> Os digests SHA1 para este release são:
>>>
>>>  a09281aece16772ca676d842c1b24fb9f9f1a409  perl-5.18.0.tar.bz2
>>>  f5a97a9fa4e9d0ef9c4b313c5b778a0e76291ee2  perl-5.18.0.tar.gz
>>>
>>> Se você prefere instalar via perlbrew, aguarde o 5.18.0 estar
>>> disponível verificando a lista retornada pelo comando:
>>>
>>> % perlbrew available
>>>
>>> Depois é só instalar e usar!
>>>
>>> % perlbrew install perl-5.18.0
>>> % perlbrew switch perl-5.18.0
>>>
>>>
>>> Confira as principais novidades:
>>>
>>>
>>> Novo mecanismo para features experimentais!
>>> --------------------------------------------------------------
>>>
>>> Inúmeros sistemas críticos dependem fortemente de Perl em todo o
>>> mundo. Por isso, sempre há uma grande preocupação com
>>> retrocompatibilidade no desenvolvimento da linguagem Perl, o que é bom
>>> mas exige cuidado extremo ao adicionar uma nova feature. Para evitar a
>>> sensação de conservadorismo excessivo e ao mesmo tempo permitir o
>>> desenvolvimento e exploração de novas features experimentais que
>>> elevem a qualidade e recursos da linguagem ainda mais, foi criado o
>>> seguinte mecanismo:
>>>
>>> - features experimentais serão ativadas pelo pragma "use feature
>>> nome_da_feature"
>>> - features experimentais vão sempre gerar warnings avisando que a
>>> feature é, bem, experimental - a menos que o desenvolvedor
>>> deliberadamente desative os warnings. Assim, ao dizer "no warnings
>>> 'experimental::nome_da_feature'", o desenvolvedor está assumindo
>>> responsabilidade por quaisquer problemas devido a mudanças futuras na
>>> feature, ou mesmo em sua remoção completa.
>>>
>>> Como algumas features atuais (por exemplo, "~~" e "my $_") agora
>>> emitem warnings no 5.18.0 avisando explicitamente sobre isso, você
>>> pode querer desativar os warnings em versões anteriores do Perl (caso
>>> esteja escrevendo um módulo que usa a feature experimental, por
>>> exemplo). Como a categoria 'experimental' não existe em versões
>>> anteriores, vc pode fazer isso usando o pragma 'if':
>>>
>>> no if $] >= 5.018, 'warnings', 'experimental::nome_da_feature';
>>>
>>> Consulte https://metacpan.org/module/perlexperiment para saber mais
>>> sobre quais as features marcadas como experimentais.
>>>
>>>
>>> Mudança completa na implementação dos hashes
>>> --------------------------------------------------------------------
>>>
>>> => A semente usada pela função de hash do Perl agora é aleatória. Isso
>>> significa que a ordem das chaves e valores de um hash retornadas por
>>> keys(), values() e each() vão ser diferentes a cada execução do seu
>>> programa. Isso já acontecia antes, porém de forma mais sutil. Agora
>>> acontecerá em cada execução. Como nas versões anteriores, para
>>> garantir a ordem, basta usar sort(). A linguagem continua garantindo
>>> que, independente da ordem, ela será a mesma para todas as funções
>>> acima. Ou seja, o idioma relativamente comum:
>>>
>>> my @chaves = keys %hash;
>>> my @valores = values %hash;
>>>
>>> ainda é garantido de funcionar, já que a ordem, embora aleatória entre
>>> execuções, será a mesma tanto para o keys() quanto para o values().
>>>
>>> A idéia dessa mudança é expor bugs sutis mais claramente (já que a
>>> linguagem nunca garantiu a ordem) e tornar os hashes do perl mais
>>> robustos a ataques de complexidade algorítmica. Portanto, caso vc
>>> tenha problemas com essa mudança, corrija seu código! Se precisar por
>>> algum motivo qualquer manter o modelo anterior (que trocava a ordem
>>> apenas quando o tamanho do bucket de hash mudava), basta definir a
>>> variável de ambiente PERL_PERTURB_KEYS para o valor "1", mas isso é
>>> inseguro e não recomendado.
>>>
>>> => Foi adicionado suporte a diferentes funções de hash, e a função
>>> padrão passou a ser a "ONE_AT_A_TIME_HARD". É possível escolher sua
>>> própria função de hash ao compilar o perl, de acordo com seu gosto e
>>> necessidades de segurança e desempenho.
>>>
>>>
>>> Suporte a Unicode 6.2!
>>> -------------------------------
>>>
>>> Para saber as diferenças entre o Unicode 6.1 e esse, veja
>>> http://www.unicode.org/versions/Unicode6.2.0
>>>
>>> Uma outra característica interessante é que, embora o padrão agora
>>> seja o Unicode 6.2, você pode recompilar o perl para usar qualquer
>>> versão do Unicode (com seus problemas associados, lógico).
>>>
>>>
>>> Subrotinas léxicas (experimental)
>>> ---------------------------------------------
>>>
>>> use 5.18.0;
>>> no warnings 'experimental::lexical_subs';
>>> use feature 'lexical_subs';
>>>
>>> my sub teste { ... };  # yup! "our sub" e "state sub" também funcionam!
>>>
>>> Essa feature permite criar subrotinas visíveis somente dentro do
>>> escopo léxico em que são declaradas. A função é criada sempre que o
>>> bloco de código é acessado.
>>>
>>> Para mais informações, vejam:
>>> https://metacpan.org/module/perlsub#Lexical-Subroutines
>>>
>>>
>>> Módulos que vão sair do core em versões futuras do perl
>>>
>>> ----------------------------------------------------------------------------
>>>
>>> Os módulos à seguir serão removidos da distribuição core do perl em
>>> versões futuras e devem ser instaladas via CPAN. As versões dentro do
>>> core vão emitir um warning da categoria 'deprecated'. Para
>>> silenciá-los, basta instalar a versão do CPAN :)
>>>
>>> Archive::Extract, B::Lint, B::Lint::Debug, CPANPLUS (e sub-módulos),
>>> Devel::InnerPackage, encoding, Log::Message (e sub-módulos),
>>> Module::Pluggable, Module::Pluggable::Object, Object::Accessor,
>>> Pod::LaTeX, Term::UI, Term::UI::History
>>>
>>>
>>> Melhorias de desempenho
>>> ------------------------------------
>>>
>>> => declarações de variáveis léxicas em listas como "my ($x, $y)" foram
>>> otimizadas para serem realizadas em apenas uma operação, tornando-as
>>> mais rápidas do que declarações separadas;
>>>
>>> => pack() com argumentos constantes está mais rápido;
>>>
>>> => expressões regulares casando com propriedades Unicode como \X estão
>>> de 35% a 40% mais rápidas;
>>>
>>> => otimização de hashes em contexto booleano foi extendida para
>>> contemplar também "scalar(%hash)", "%hash ? ... : ..." e "sub { %hash
>>> || ... }
>>>
>>> => testes em arquivos são levemente mais eficientes;
>>>
>>>
>>> Outras
>>> ----------
>>>
>>> Documentação atualizada, novas mensagens de "diagnostics", mais opções
>>> de compilação, melhor estruturação interna de diversos componentes.
>>> Ah, e um *MONTE* de bugfixes! :D
>>>
>>> Para ver mais detalhes sobre as mudanças, é só acessar o arquivo
>>> "perldelta.pod", disponível dentro da distribuição ou em
>>> https://metacpan.org/module/RJBS/perl-5.18.0/pod/perldelta.pod
>>>
>>>
>>> Obituário
>>> ------------
>>>
>>> Hojung Yoon (AMORETTE), 24 anos, de Seul na Coréia do Sul, seguiu para
>>> seu longo descanso no dia 8 de Maio de 2013. Ele era um jovem e
>>> brilhante hacker Perl 5 & 6 e um dedicado membro do Seoul.pm. Ele
>>> programava Perl, falava Perl, comia Perl, e amava Perl. Nós
>>> acreditamos que ele ainda está programando em Perl com seu laptop IBM
>>> quebrado em algum lugar. Vamos sentir sua falta.
>>>
>>>
>>> Agradecimentos
>>> ----------------------
>>>
>>> A linguagem Perl continua florescendo em sua terceira década graças a
>>> uma comunidade vibrante de usuários e desenvolvedores (sim, você!
>>> Obrigado!)
>>>
>>> Os seguintes desenvolvedores são conhecidos por terem contribuido com
>>> as melhorias que que tornaram o Perl 5.18.0:
>>>
>>> Aaron Crane, Aaron Trevena, Abhijit Menon-Sen, Adrian M. Enache, Alan
>>> Haggai Alavi, Alexandr Ciornii, Andrew Tam, Andy Dougherty, Anton
>>> Nikishaev, Aristotle Pagaltzis, Augustina Blair, Bob Ernst, Brad
>>> Gilbert, Breno G. de Oliveira, Brian Carlson, Brian Fraser, Charlie
>>> Gonzalez, Chip Salzenberg, Chris 'BinGOs' Williams, Christian Hansen,
>>> Colin Kuskie, Craig A. Berry, Dagfinn Ilmari Mannsåker, Daniel Dragan,
>>> Daniel Perrett, Darin McBride, Dave Rolsky, David Golden, David
>>> Leadbeater, David Mitchell, David Nicol, Dominic Hargreaves, E.
>>> Choroba, Eric Brine, Evan Miller, Father Chrysostomos, Florian
>>> Ragwitz, François Perrad, George Greer, Goro Fuji, H.Merijn Brand,
>>> Herbert Breunung, Hugo van der Sanden, Igor Zaytsev, James E Keenan,
>>> Jan Dubois, Jasmine Ahuja, Jerry D. Hedden, Jess Robinson, Jesse
>>> Luehrs, Joaquin Ferrero, Joel Berger, John Goodyear, John Peacock,
>>> Karen Etheridge, Karl Williamson, Karthik Rajagopalan, Kent Fredric,
>>> Leon Timmermans, Lucas Holt, Lukas Mai, Marcus Holland-Moritz, Markus
>>> Jansen, Martin Hasch, Matthew Horsfall, Max Maischein, Michael G
>>> Schwern, Michael Schroeder, Moritz Lenz, Nicholas Clark, Niko Tyni,
>>> Oleg Nesterov, Patrik Hägglund, Paul Green, Paul Johnson, Paul
>>> Marquess, Peter Martini, Rafael Garcia-Suarez, Reini Urban, Renee
>>> Baecker, Rhesa Rozendaal, Ricardo Signes, Robin Barker, Ronald J.
>>> Kimball, Ruslan Zakirov, Salvador Fandiño, Sawyer X, Scott Lanning,
>>> Sergey Alekseev, Shawn M Moore, Shirakata Kentaro, Shlomi Fish,
>>> Sisyphus, Smylers, Steffen Müller, Steve Hay, Steve Peters, Steven
>>> Schubiger, Sullivan Beck, Sven Strickroth, Sébastien Aperghis-Tramoni,
>>> Thomas Sibley, Tobias Leich, Tom Wyant, Tony Cook, Vadim Konovalov,
>>> Vincent Pit, Volker Schatz, Walt Mankowski, Yves Orton, Zefram.
>>>
>>> Que tal entrar nessa lista também nas versões futuras do Perl? É mais
>>> fácil do que você pensa, e sua contribuição será muito bem vinda.
>>> Mesmo que você esteja começando com Perl e não saiba nada de C,
>>> provavelmente há um tíquete que você pode ajudar! Veja o vídeo em
>>> http://www.videolog.tv/video.php?id=959787 e faça seu primeiro patch
>>> hoje!
>>>
>>>
>>> Boa diversão!
>>>
>>> []s
>>>
>>> -b
>>> _______________________________________________
>>> Brasil-PM mailing list
>>> Brasil-PM em pm.org
>>> http://mail.pm.org/mailman/listinfo/brasil-pm
>>>
>>
>>
>>
>> --
>> Bruno C. Buss
>> http://www.brunobuss.net
>>
>> _______________________________________________
>> Brasil-PM mailing list
>> Brasil-PM em pm.org
>> http://mail.pm.org/mailman/listinfo/brasil-pm
>>
>
> _______________________________________________
> Brasil-PM mailing list
> Brasil-PM em pm.org
> http://mail.pm.org/mailman/listinfo/brasil-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/brasil-pm/attachments/20130519/3f60ed8d/attachment.html>


Mais detalhes sobre a lista de discussão Brasil-PM