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

Bruno Buss bruno.buss em gmail.com
Sábado Maio 18 15:52:59 PDT 2013


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
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/brasil-pm/attachments/20130518/c0e69cac/attachment-0001.html>


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