පර්ල් 5.30.0 ක්‍රමලේඛන භාෂාව මුදා හැරීම

සංවර්ධනය මාස 11 කට පසුව සිදු විය පර්ල් ක්‍රමලේඛන භාෂාවේ නව ස්ථාවර ශාඛාවක් නිකුත් කිරීම - 5.30. නව නිකුතුව සකස් කිරීමේදී, කේත රේඛා 620 ක් පමණ වෙනස් කරන ලද අතර, වෙනස්කම් ගොනු 1300 කට බලපෑ අතර, සංවර්ධකයින් 58 දෙනෙකු සංවර්ධනයට සහභාගී විය.

වසර හයකට පෙර අනුමත කරන ලද ස්ථාවර සංවර්ධන කාලසටහනට අනුව 5.30 ශාඛාව නිකුත් කරන ලදී, එයින් අදහස් කරන්නේ වසරකට වරක් නව ස්ථාවර ශාඛා නිකුත් කිරීම සහ සෑම මාස තුනකට වරක් නිවැරදි කිරීම් නිකුත් කිරීමයි. මාසයකින් පමණ, Perl 5.30.1 හි පළමු නිවැරදි කිරීමේ නිකුතුව නිකුත් කිරීමට සැලසුම් කර ඇති අතර, එය Perl 5.30.0 ක්‍රියාත්මක කිරීමේදී හඳුනාගත් වඩාත්ම වැදගත් දෝෂ නිවැරදි කරනු ඇත. Perl 5.30 නිකුත් කිරීමත් සමඟම, 5.26 ශාඛාව සඳහා සහය නවත්වන ලදී, අනාගතයේදී යාවත්කාලීන කිරීම් නිකුත් කළ හැක්කේ තීරණාත්මක ආරක්ෂක ගැටළු හඳුනාගෙන තිබේ නම් පමණි. පර්යේෂණාත්මක ශාඛා 5.31 හි සංවර්ධන ක්‍රියාවලිය ද ආරම්භ වී ඇති අතර, එහි පදනම මත Perl 2020 හි ස්ථාවර නිකුතුවක් 5.32 මැයි මාසයේදී පිහිටුවනු ඇත.

යතුර වෙනස්:

  • "" මෙහෙයුම් සඳහා පර්යේෂණාත්මක සහාය නිත්‍ය ප්‍රකාශනවලට එක් කර ඇත.(?‹!රටාව)"සහ"(?‹=රටාව)»පෙර සැකසූ නම් කරන ලද සැකිලි සඳහා සීමිත ප්‍රවේශය සඳහා. රටා නිර්වචනය යොමු ලක්ෂ්‍යයේ අක්ෂර 255ක් තුළ විය යුතුය;
  • “{m,n}” නිත්‍ය ප්‍රකාශන කොටස්වල ප්‍රමාණයේ නියමයේ (“n”) උපරිම අගය 65534 දක්වා වැඩි කර ඇත;
  • සීමිත එකතු කරන ලදී සහාය විවිධ යුනිකෝඩ් කට්ටල ආවරණය කරමින් නිත්‍ය ප්‍රකාශනවල ඇතැම් අක්ෂර වර්ග ඉස්මතු කිරීමට වෙස් මුහුණු. උදාහරණයක් ලෙස, "qr! \p{nv= /(?x) \A [0-5] \z / }!” අංකවල තායි හෝ බෙංගාලි අක්ෂර වින්‍යාසය ඇතුළුව 0 සිට 5 දක්වා සංඛ්‍යා නිර්වචනය කරන සියලුම යුනිකෝඩ් අක්ෂර තේරීමට ඔබට ඉඩ සලසයි;
  • නිත්‍ය ප්‍රකාශනවල නම් කරන ලද අක්ෂර සඳහා සහය එක් කරන ලදී
    ඇතුළත රටා තනි උද්ධෘත වලින් සීමා කර ඇත (qr'\N{name}');

  • යුනිකෝඩ් පිරිවිතර සහාය අනුවාදයට යාවත්කාලීන කරන ලදී 12.1. පරීක්ෂණාත්මක සංවර්ධන ධජය ඇමතුම්වලින් ඉවත් කර ඇත sv_utf8_downgrade සහ sv_utf8_decode, C භාෂාවේ දිගු සංවර්ධනය කිරීමේදී භාවිතා වේ;
  • බහු-නූල් මෙහෙයුමට සහය වන පෙදෙසියක් සමඟ මෙහෙයුම් ක්‍රියාත්මක කිරීම සමඟ perl ගොඩනැගීමේ හැකියාව එක් කරන ලදී (-Accflags='-DUSE_THREAD_SAFE_LOCALE'). මීට පෙර, එවැනි ක්රියාත්මක කිරීමක් භාවිතා කරන ලද්දේ Perl හි බහු-නූල් අනුවාදයක් තැනීමේදී පමණි, නමුත් දැන් ඕනෑම ගොඩනැගීමක් සඳහා සක්රිය කළ හැකිය;
  • "-Dv" (වැඩිදියුණු කළ දෝශ නිරාකරණ ප්‍රතිදානය) සහ "-Dr" (regex debugging) ධජ ඒකාබද්ධ කිරීම දැන් හැකි සියලුම නිත්‍ය ප්‍රකාශන නිදොස්කරණ මාදිලි සක්‍රීය කිරීමට හේතු වේ;
  • කලින් අත්හරින ලද විශේෂාංග ඉවත් කර ඇත:
    • දැන් රේඛා බෙදුම්කරු සහ වයිල්ඩ්කාඩ් අක්ෂර ලෙස පවතී අවසර ඇත පමණක් භාවිතා කරන්න ග්රැෆිම්ස් (සංයුක්ත යුනිකෝඩ් අක්ෂරවලට අවසර නැත).
    • නතර කළා "{" අක්ෂරය ගැලවී යාමකින් තොරව සාමාන්‍ය ප්‍රකාශනවල භාවිතා කිරීමේ සමහර දිගු-යල් පැන ගිය ආකාර සඳහා සහය දක්වයි.
    • Запрещено ":utf8" හසුරුවන්න සමඟ sysread(), syswrite(), recv() සහ send() ශ්‍රිත භාවිතා කිරීම.
    • නෛසර්ගිකව ව්‍යාජ කොන්දේසි සහිත ප්‍රකාශවල "මගේ" අර්ථ දැක්වීම් භාවිතා කිරීම තහනම් කර ඇත (උදාහරණයක් ලෙස, "මගේ $x නම් 0").
    • "$*" සහ "$#" විශේෂ විචල්‍ය සඳහා සහය ඉවත් කර ඇත.
      ඩම්ප්() ශ්‍රිතයේ ව්‍යංග ඇමතුම් සඳහා සහාය අත්හිටුවා ඇත (ඔබ දැන් පැහැදිලිවම CORE::dump() සඳහන් කළ යුතුය).

    • ගොනුව::Glob::glob ශ්‍රිතය ඉවත් කර ඇත (ඔබ භාවිතා කළ යුත්තේ File::Glob::bsd_glob).
    • වලංගු නොවන යුනිකෝඩ් අනුක්‍රමික ආපසු පැමිණීමට එරෙහිව ඇසුරුම() වෙත ආරක්ෂාව එක් කරන ලදී.
    • XS කේතයේ (C blocks) UTF-8 සමඟ මෙහෙයුම් සිදු කරන මැක්‍රෝස් භාවිතය සඳහා සහාය අවසන් කිරීම ඊළඟ නිකුතුව දක්වා කල් දමා ඇත.
  • කාර්ය සාධන ප්‍රශස්තකරණය:
    • UTF-8 සිට අක්ෂර පිරිසැලසුම දක්වා පරිවර්තන මෙහෙයුම් වේගවත් කර ඇත (කේත ලක්ෂ්යය), උදාහරණයක් ලෙස, ord(“\x7fff”) මෙහෙයුම සිදු කිරීම සඳහා දැන් 12% අඩු උපදෙස් අවශ්‍ය වේ. UTF-8 අක්ෂර අනුපිළිවෙලෙහි නිවැරදි බව පරීක්ෂා කරන මෙහෙයුම් වල කාර්ය සාධනය ද වැඩි කර ඇත;
    • finalize_op() ශ්‍රිතයේ පුනරාවර්තන ඇමතුම් ඉවත් කර ඇත;
    • සමාන අක්ෂර බිඳවැටීම සහ නිත්‍ය ප්‍රකාශනවල අක්ෂර පන්ති නිර්වචනය කිරීම සඳහා කේතයට සුළු ප්‍රශස්තකරණයන් සිදු කරන ලදී;
    • ප්‍රශස්ත කර ඇත අත්සන් කළ ආකාරයේ නිර්වචන අත්සන් නොකළ ඒවා බවට පරිවර්තනය කිරීම (IV සිට UV දක්වා);
    • නිඛිල තන්තුවක් බවට පරිවර්තනය කිරීමේ ඇල්ගොරිතම එක වෙනුවට ඉලක්කම් දෙකක් එකවර සැකසීමෙන් වේගවත් කර ඇත;
    • වැඩිදියුණු කිරීම් සිදු කර ඇත සකස් කර ඇත LGTM විසින් විශ්ලේෂණය මත පදනම්ව;
    • regcomp.c, regcomp.h සහ regexec.c ගොනු වල ප්‍රශස්ත කේතය;
    • නිත්‍ය ප්‍රකාශනවලදී, ASCII අක්ෂර සහිත “qr/[^a]/” වැනි රටා සැකසීම සැලකිය යුතු ලෙස වේගවත් කර ඇත.
  • Minix3 වේදිකාව සඳහා සහය ප්‍රතිසාධනය කර ඇත. Microsoft Visual Studio 2019 සම්පාදකය (Visual C++ 14.2) භාවිතයෙන් ගොඩ නැගිය හැක;
  • මූලික පැකේජයට ඇතුළත් කර ඇති මොඩියුලවල යාවත්කාලීන කරන ලද අනුවාද. ප්රධාන සංයුතියෙන් මොඩියුල ඉවත් කර ඇත B::Dbug и ස්ථානය::කේත.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න