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

Ole Peter Smith ole.ufg em gmail.com
Sábado Maio 18 15:59:48 PDT 2013


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


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