perldelta - kas naujo perl v5.8.3 versijoje
Šiame dokumente yra aprašomi perlo 5.8.2 ir 5.8.3 versijų skirtumai Jeigu jūs atnaujinate perlo versiją iš ankstesnės (tarkim 5.6.1) versijos,
pirma perskaitykite perl58delta, kur yra aprašyti pokyčiai tarp 5.6.0 ir
5.8.0, perl581delta bei perl582delta, kuriose aprašyti skirtumai
tarp 5.8.0, 5.8.1 ir 5.8.2 versijų. - Nesuderinami pokyčiai
-
Nėra nesuderinamų su 5.8.2 versija pokyčių.
- Patobulinimai branduolyje
-
Pririštiems per
tie mechanizmą asociatyviesiems masyvams (hešams) dabar
galima aprašyti metodą SCALAR. Jis yra iškviečiamas tada kai
pririštas hešas yra naudojamas skaliariniame kontekste, kaip kad
if (%tied_hash) {
...
}Iki šiol tokiu atveju %tied_hash grąžindavo tai kas būtų buvę grąžinama
prieš pririšant hešą (taigi dažniausiai 0). Šiuo metu nesant aprašyto SCALAR
metodo grąžinama TRUE, jei veiksmas vyksta each iteracijoje arba
iškviečiamas FIRSTKEY metodas, patikrinantis ar hešas nėra tuščias (perlas
užtikrina kad kitas each taipogi prasidės FIRSTKEY iškvietimu). Plačiau
apie tai skaitykite perltie/SCALAR dokumentaciją. - Moduliai ir pragmos
- CGI
- Cwd
- Digest
- Digest::MD5
- Encode
- ExtUtils::MakeMaker
-
Dabar gali sugeneruoti SIGNATURE bylą jei yra įdiegtas Module::Signature
modulis. Tereikia metodui
WriteMakefile() perduoti (SIGN => 1).
(Modulį patobulino Autrijus Tang gavęs The Perl Foundation stipendiją)
- File::Spec
- FindBin
-
Dabar yra funkcija
again kuri išsprendžia problemas, kurios iškyla kai
moduliai, esantys skirtingose direktorijose nori pasinaudoti FindBin.
- List::Util
-
Dabar nuorodas (references) galima paversti į skirtąsias tik skaitymui
(read-only).
- Math::BigInt
- PodParser
- Pod::Perldoc
- POSIX
- Unicode::Collate
- Unicode::Normalize
- Test::Harness
- threads::shared
cond_wait turi naują dviejų argumentų formą. Pridėta cond_timedwait.
- Pagalbinių programų patobulinimai
find2perl dabar pagal nutylėjimą įjungia -print raktą. Iki šiol jį
reikėdavo nurodyti komandinėje eilutėje.
Atsirado nauja pagalbinė programa prove, kuria galima nesunkiai paleisti
atskirus regresijos testus per komandinę eilutę. prove yra Test::Harness
modulio dalis, tad senesnių perlo versijų vartotojai ją gali gauti per CPAN. - Nauja dokumentacija
-
Kai kuriose vietose dokumentacija buvo šiek tiek patobulinta ir
standartizuota.
Patobulinta specialius kodo blokus (BEGIN, CHECK, INIT, END) aprašanti
dokumentacija. - Kodo greičio patobulinimai
- Įdiegimo ir tinkinimo (konfigūravimo) patobulinimai
-
Perlas dabar veikia OpenVMS I64 platformoje
- Rinktiniai riktų pataisymai
-
Panaudojus
substr() UTF8 simbolių eilutei ir paskui bandant ją pasiekti
kartais būdavo grąžinamos šiūkšlės. Tai buvo todėl, kad į laikinąją atmintinę
būdavo įrašomi neteisingi simbolių nuotoliai nuo eilutės pradžios. Šis
riktas pataisytas.
$a .. $b dabar turėtų veikti kaip ir tikėtasi jei $a ar $b reikšmės yra
undef.
Dabar be problemų galima naudoti unikodinius asociatyviųjų masyvų (hešų)
raktus. $^E nuskaitymas dabar išsaugo $!. Anksčiau C kodas, kuris slepiasi
po $^E neišsaugodavo errno, taigi bandant nuskaityti $^E galėjo
netikėtai pasikeisti errno ir tuo pačiu $!.
Grįžtamosios funkcijos (vėl) veikia su C++. 5.8.2 versijoje vienas klaidos
pataisymas netyčia sugadino kai kurių C++ rašytų Perlo modulių kompiliavimą. - Nauji arba pakeisti diagnostinai pranešimai
- Pakitęs C kodas
-
Asociatyviųjų masyvų (hešų) kodas buvo sumažintas išimant kai kuriuos
pasikartojančius kodo fragmentus. Išorinė kodo sąsaja nepasikeitė, tad be
aukščiau išvardintų riktų pataisymų niekas neturėjo pasikeisti.
hv_clear_placeholders dabar yra perlo API dalis.
Aptvarkytos kai kurios C makro funkcijos. Ypač tos, kurios sukuria laikinus
vietinius kintamuosius - dabar jos turėtų atsargiau parinkti šiems
kintamiesiems vardą taip išvengiant riktų susijusių su skirtingais
kintamaisiais turinčiais tuos pačius vardus. signal.h dabar visada įtraukiamas.
- Tinkinimas ir kompiliavimas
Configure dabar iškviečia grįžtamąsias funkcijas (callbacks)
nepaisydamas kintamojo kuriam jis yra kviečiamas reikšmės. Anksčiau šios
funkcijos buvo iškviečiamos tik case $variable $define) šakai.
Šis pokytis turėtų liesti tik platformų programuotojus, kurie rašo
konfigūracines hints bylas.
- Nauji testai
- Žinomos problemos
-
Turime krūvą nepataisytų riktų. Riktų taisymas ir tvarkymas nėra pats
įdomiausias darbas, ypač bendruomenei kuri viską daro be atlygio.
Perl5 programuotojų komanda šiuo metu daro kai kuriuos patobulinimus,
kurie turėtų padėti išspręsti šias problemas 2004-ųjų metų pradžioje. - Problemos specifinės kuriai nors platformai
- Pranešimai apie riktus
-
Jeigu manote jog radote riktą, peržvelkite paskutines temas
comp.lang.perl.misc naujienų grupėje jei perlo riktų duomenų bazę
adresu http://bugs.perl.org. Papildomos informacijos taip pat gali
būti ir pagrindinėje perlo svetainėje http://www.perl.org.
Jeigu manote kad radote rktą, kurio dar niekas neaptiko, pasinaudokite
perlbug programa, kuri yra perlo dalis. Pasistenkite kuo labiau
sumažinti kodo ištrauką, kuria parodomas riktas. Jūsų rikto aprašymas,
kartu su perl -V rezultatu, bus išsiųstas adresu perlbug@perl.org
ir išanalizuotas perlo programuotojų komandos. Visus perlo riktus
galite matyti adresu at http://bugs.perl.org/
Changes byla labai detaliai aprašo visus pokyčius. INSTALL byla aprašo kaip įdiegti perlą. README byloje yra aprašyti bendri dalykai. Artistic ir Copying bylose yra informacija apie perlo autorines
teises. |