Sgaoileadh cànan prògramadh Perl 5.30.0

Às deidh 11 mìosan de leasachadh thachair sgaoileadh meur seasmhach ùr de chànan prògramadh Perl - 5.30. Ann a bhith ag ullachadh an naidheachd ùr, chaidh mu 620 mìle loidhne de chòd atharrachadh, thug na h-atharrachaidhean buaidh air 1300 faidhle, agus ghabh 58 leasaiche pàirt san leasachadh.

Chaidh Meur 5.30 a leigeil ma sgaoil a rèir a’ chlàr leasachaidh stèidhichte a chaidh aontachadh o chionn sia bliadhna, a tha a’ ciallachadh gun tèid meuran seasmhach ùra a leigeil ma sgaoil uair sa bhliadhna agus fiosan ceartachaidh gach trì mìosan. Ann an timcheall air mìos, thathas an dùil a ’chiad fhoillseachadh ceartachaidh de Perl 5.30.1 a leigeil ma sgaoil, a cheartaicheas na mearachdan as cudromaiche a chaidh an comharrachadh rè buileachadh Perl 5.30.0. Còmhla ri sgaoileadh Perl 5.30, chaidh stad a chuir air taic airson meur 5.26, agus faodar ùrachaidhean san àm ri teachd a leigeil ma sgaoil a-mhàin ma thèid duilgheadasan tèarainteachd èiginneach a chomharrachadh. Tha pròiseas leasachaidh a ’mheur deuchainneach 5.31 cuideachd air tòiseachadh, air a’ bhunait sin thèid sgaoileadh seasmhach de Perl 2020 a chruthachadh sa Chèitean 5.32.

Prìomh atharrachadh:

  • Chaidh taic deuchainneach airson obrachaidhean " "a chur ri abairtean àbhaisteach.(? ‹! pàtran)"Agus"(? ‹ = pàtran)» airson ruigsinneachd cuibhrichte gu teamplaidean ainmichte a chaidh a phròiseasadh roimhe. Feumaidh mìneachadh a’ phàtrain a bhith taobh a-staigh 255 caractar bhon phuing iomraidh;
  • Chaidh an luach as àirde den t-sònrachadh meud (“n”) ann am blocaichean abairt àbhaisteach “{m,n}” àrdachadh gu 65534;
  • Air a chur ris cuibhrichte taic masgaichean gus cuid de roinnean de charactaran a shoilleireachadh ann an abairtean cunbhalach, a’ còmhdach diofar sheataichean Unicode. Mar eisimpleir, tha an abairt “qr! \p{nv= /(?x) \A [0-5] \z / }!" a’ leigeil leat a h-uile caractar Unicode a thaghadh a mhìnicheas na h-àireamhan bho 0 gu 5, a’ gabhail a-steach litreachadh àireamhan Thai no Bengali;
  • Taic a bharrachd airson caractaran ainmichte ann an abairtean cunbhalach
    taobh a-staigh phàtranan air an comharrachadh le briathran singilte (qr'\N{name}');

  • Taic sònrachadh Unicode air ùrachadh gu dreach 12.1. Chaidh bratach leasachadh deuchainneach a thoirt air falbh bho na gairmean sv_utf8_downgrade agus sv_utf8_decode, air a chleachdadh ann an leasachadh leudachain sa chànan C;
  • Chuir sinn ris a’ chomas air perl a thogail le gnìomhachadh obrachaidhean le locale a bheir taic do dh’ obrachadh ioma-snàthainn (-Accflags = ‘-DUSE_THREAD_SAFE_LOCALE’). Roimhe sin, cha deach a leithid de bhuileachadh a chleachdadh ach nuair a chaidh dreach ioma-snàithlean de Perl a thogail, ach a-nis faodar a chomasachadh airson togail sam bith;
  • Le bhith a’ cothlamadh nam brataichean “-Dv” (toradh deasbaid leasaichte) agus “-Dr” (debugging regex) a-nis tha e comasach a h-uile modh deasbaid faireachdainn cunbhalach a chomasachadh;
  • Chaidh feartan nach deach a mholadh roimhe a thoirt air falbh:
    • Ri fhaighinn a-nis mar sgaradh loidhne agus caractaran cairt fiadhaich ceadaichte cleachdadh a-mhàin grafaichean (chan eil caractaran Unicode cumanta ceadaichte).
    • Sguir dheth taic airson cuid de dhòighean a tha air a dhol à bith o chionn fhada gus a’ charactar “{” a chleachdadh ann an abairtean cunbhalach gun a bhith a’ teicheadh ​​​​às.
    • Запрещено a’ cleachdadh na gnìomhan sysread(), syswrite(), recv() agus send() le làimhseachadh “: utf8”.
    • Tha e toirmisgte mìneachaidhean air “mo” a chleachdadh ann an aithrisean cumhach meallta (mar eisimpleir, “mo $ x ma tha 0”).
    • Chaidh taic airson caochladairean sònraichte “$*” agus “$#” a thoirt air falbh.
      Chaidh stad a chuir air taic airson a bhith a’ gairm a’ ghnìomh dump() gu ciallach (feumaidh tu a-nis CORE a shònrachadh gu soilleir::dump()).

    • Chaidh am faidhle :: Glob :: gnìomh glob a thoirt air falbh (bu chòir dhut File :: Glob ::bsd_glob a chleachdadh).
    • Dìon a bharrachd ris a’ phasgan() an aghaidh sreathan Unicode ceàrr a thilleadh.
    • Chaidh deireadh taic airson cleachdadh macros a bhios a’ coileanadh obair le UTF-8 ann an còd XS (blocaichean C) a chuir dheth gus an ath fhoillseachadh.
  • Optimization Coileanaidh:
    • Chaidh gnìomhachd eadar-theangachaidh bho UTF-8 gu cruth caractar a luathachadh (puing còd), mar eisimpleir, tha feum air 7% nas lugha de stiùiridhean airson a bhith a’ coileanadh an obrachaidh ord (“\ x12fff”) a-nis. Chaidh coileanadh obrachaidhean a’ sgrùdadh ceartachd sreathan caractar UTF-8 a mheudachadh cuideachd;
    • Chaidh cuir às do ghairmean ath-chuairteachaidh anns a’ ghnìomh finalize_op();
    • Rinn sinn mion-leasachaidhean air a’ chòd airson caractaran co-ionann a leagail agus clasaichean caractar a mhìneachadh ann an abairtean cunbhalach;
    • Optimized ag atharrachadh mìneachaidhean seòrsa soidhnichte gu feadhainn gun ainm (IV gu UV);
    • Tha an algairim airson àireamhan iomlan a thionndadh gu sreang air a luathachadh le bhith a’ giullachd dà fhigear aig an aon àm an àite aon;
    • Chaidh leasachaidhean a dhèanamh ullaichte stèidhichte air mion-sgrùdadh le LGTM;
    • Còd as fheàrr ann am faidhlichean regcomp.c, regcomp.h agus regexec.c;
    • Ann an abairtean cunbhalach, chaidh giullachd phàtranan mar “qr/[^a]/” le caractaran ASCII a luathachadh gu mòr.
  • Tha taic airson àrd-ùrlar Minix3 air ath-nuadhachadh. Tha e comasach togail a’ cleachdadh an compiler Microsoft Visual Studio 2019 (Visual C ++ 14.2);
  • Tionndaidhean ùraichte de mhodalan a tha sa phasgan bunaiteach. Tha modalan air an toirt air falbh bhon phrìomh sgrìobhadh B::Debug и Àite::Còdan.

Source: fosgailtenet.ru

Cuir beachd ann