Portál AbcLinuxu, 14. května 2025 16:24

Perl 6 a renesance Perlu 5

Perl 5.12 vyšel 12.dubna (seznam novinek). Vývoj Perlu 5 po vzoru Perlu 6 a Parrotu přechází na vydávání nových verzí "podle data" namísto "podle nových vlastností". Perl 5.12.1 tedy vyjde za měsíce (a Perl 5.14 za rok) od tohoto vydání. Někteří vývojáři mluví o renesanci Perlu 5 a jiní vysvětlují ([1], [2], [3]), jak je to s vývojem Perlu 6.

23.4.2010 18:43 | mj41 | Nová verze


Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

zoul avatar 24.4.2010 12:19 zoul | skóre: 43 | blog: | Boskovice
Rozbalit Rozbalit vše Re: Perl 6 a renesance Perlu 5
Odpovědět | Sbalit | Link | Blokovat | Admin
Pokud používáte MacPorts, můžete si nový Perl nainstalovat jako variantu portu perl5:
zoul@naima:~ $ port variants perl5
perl5 has the variants:
   perl5_10: use perl 5.10 instead of perl 5.8 or perl 5.12
   perl5_12: use perl 5.12 instead of perl 5.8 or perl 5.10
25.4.2010 09:01 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Perl 6 a renesance Perlu 5
Odpovědět | Sbalit | Link | Blokovat | Admin
škoda, že Modern::Perl je pořád externí modul...
In Ada the typical infinite loop would normally be terminated by detonation.
zoul avatar 25.4.2010 11:48 zoul | skóre: 43 | blog: | Boskovice
Rozbalit Rozbalit vše Re: Perl 6 a renesance Perlu 5
Zrovna v souvislosti s vydáním 5.12 se ukazují jeho slabiny, viz třeba tady. Aktuální zdroják paradoxně není dost „modern“ na 5.12:
sub import {
    warnings->import();
    strict->import();
    feature->import( ':5.10' );
    mro::set_mro( scalar caller(), 'c3' );
}
S Modern::Perl tedy člověk nedostane například feature unicode_strings:
#!/usr/bin/env perl

use feature 'say';

sub dump_features {
    my $hint_hash = (caller(0))[10];
    say join " | ", keys %$hint_hash;
}

{ use Modern::Perl;    dump_features; }
{ use feature ':5.12'; dump_features; }

__END__
feature_say | feature_state | feature_switch
feature_unicode | feature_say | feature_state | feature_switch
25.4.2010 19:20 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Perl 6 a renesance Perlu 5
O důvod víc mít ho v jádře. Nebo cokoliv jiného, než psaní tří jiných řádků (a jejich ruční udržování) - uznejte že to není moc perlovské (simple things simple).
In Ada the typical infinite loop would normally be terminated by detonation.
zoul avatar 25.4.2010 19:28 zoul | skóre: 43 | blog: | Boskovice
Rozbalit Rozbalit vše Re: Perl 6 a renesance Perlu 5
On je problém s tím rozhraním, tam zahrnutí do jádra IMHO nic nevyřeší. Samotné Modern::Perl nefunguje (protože definice moderního Perlu se posouvá) a něco jako navrhované use Modern::Perl as_of => '2009-06-23' už zdaleka není tak sexy. Use feature ":5.12" už je celkem blízko. V principu ale souhlasím, sám Modern::Perl používám.
26.4.2010 06:52 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Perl 6 a renesance Perlu 5
definice moderního Perlu se posouvá
A to vadí? Zrovna tak se posouvá zbytek funkcí v core, nebo verze modulů. Nechci se domáhat verze (např.) 5.10, ale chci jen jedním příkazem zapnout strict, warnings, features, případně další dobroty. Předpokládám, že verze >=5.10 budou mít aspoň přibližně zpětně kompatibilní chování. Až vznikne nějaká zásadní nekompatibilita tak začnu teprv řešit "as of".
In Ada the typical infinite loop would normally be terminated by detonation.
zoul avatar 26.4.2010 14:53 zoul | skóre: 43 | blog: | Boskovice
Rozbalit Rozbalit vše Re: Perl 6 a renesance Perlu 5
No trochu to vadí. Strictures a warnings jsou bez problémů, ale u features už narazíme na rozdíly mezi 5.10 a 5.12, jak jsem psal výš. Co by měl Modern::Perl dělat? Když bude načítat všechny features z 5.12, bude to spíš Latest::Perl než Modern::Perl a vypeče všechny uživatele 5.10 (zdaleka ne každý může aktualizovat podle vlastních představ). Když zůstane u 5.10, budeme muset ručně přidávat features z pozdějších Perlů a jsme plus mínus tam, odkud jsme vyšli.
26.4.2010 19:46 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Perl 6 a renesance Perlu 5
vypeče všechny uživatele 5.10
V tomhle si odporujem. Proč myslíte, že by je to mělo vypect? Respektive, proč myslíte, že by je to mělo vypect nezanedbatelně větší mírou než libovolná jiná změna mezi těmi verzemi perlu?
In Ada the typical infinite loop would normally be terminated by detonation.
zoul avatar 26.4.2010 20:04 zoul | skóre: 43 | blog: | Boskovice
Rozbalit Rozbalit vše Re: Perl 6 a renesance Perlu 5
Používám 5.10, aktualizuju moduly, přijde mi nová verze Modern::Perl a bude trvat na use feature ":5.12", načež mi všechen kód pozdechá, ne?
zoul@naima:~ $ /usr/bin/perl -e "use feature ':5.12'"
Feature bundle "5.12" is not supported by Perl 5.10.0 at -e line 1
S přechodem na novou verzi modulů samozřejmě musím počítat s tím, že mi něco nepojede. Tady bych ale narazil pokaždé, když použiju jiný „moderní“ Perl než ten úplně poslední.

Možná mi něco zásadního uchází?
27.4.2010 06:56 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Perl 6 a renesance Perlu 5
Jo, takhle. Tak 1) to by se nestalo kdyby to byla záležitost jádra (použiju Modern který mi přišel s 5.10), nebo 2) samozřejmě není problém v tom modulu tuto věc ošetřit (na 5.10 použije feature 5.10). Nebo tam může být "use feature :all" nebo něco na ten způsob a je po problému.
In Ada the typical infinite loop would normally be terminated by detonation.
zoul avatar 27.4.2010 12:22 zoul | skóre: 43 | blog: | Boskovice
Rozbalit Rozbalit vše Re: Perl 6 a renesance Perlu 5
Pravda, to by šlo. V tom případě by use Modern::Perl znamenalo „tak moderní Perl, jak jen to jde na současném interpretu“. Přičemž na <=5.8 to nejde vůbec :)

Založit nové vláknoNahoru


ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.