د پروګرامینګ ژبې خپرول پرل 5.30.0

د 11 میاشتو پراختیا وروسته ترسره شو د پرل پروګرامینګ ژبې نوې باثباته څانګې خوشې کول - 5.30. د نوي ریلیز په چمتو کولو کې، د کوډ شاوخوا 620 زره لینونه بدل شوي، بدلونونو 1300 فایلونه اغیزمن کړي، او 58 پراختیا کونکو په پراختیا کې برخه اخیستې.

څانګه 5.30 د ټاکل شوي پرمختیایي مهالویش سره سم چې شپږ کاله دمخه تصویب شوی خپور شو، چې په کال کې یو ځل د نوي باثباته څانګو خوشې کول او په هرو دریو میاشتو کې اصلاحي خپرونه معنی لري. په شاوخوا یوه میاشت کې ، دا پلان شوی چې د پرل 5.30.1 لومړی اصلاحي خپرونه خوشې کړي ، کوم چې به د پرل 5.30.0 پلي کولو پرمهال پیژندل شوي خورا مهمې غلطۍ سمې کړي. د پرل 5.30 خوشې کولو سره، د 5.26 څانګې لپاره ملاتړ بند شوی، د کوم لپاره چې تازه معلومات یوازې په راتلونکي کې خوشې کیدی شي که جدي امنیتي ستونزې وپیژندل شي. د تجربوي څانګې 5.31 پراختیا پروسه هم پیل شوې ، د کوم په اساس چې د پرل 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 ژبه کې د توسیع په پراختیا کې کارول کیږي؛
  • د یو ځای سره د عملیاتو پلي کولو سره د پرل رامینځته کولو وړتیا اضافه کړه کوم چې د څو تارونو عملیاتو ملاتړ کوي (-Accflags='-DUSE_THREAD_SAFE_LOCALE'). پخوا، دا ډول تطبیق یوازې د پرل څو اړخیزه نسخه جوړولو په وخت کې کارول کیده، مګر اوس د هر ډول جوړونې لپاره فعال کیدی شي؛
  • د "-Dv" (پرمختللي ډیبګ کولو محصول) او "-Dr" (regex debugging) بیرغونه یوځای کول اوس د دې لامل کیږي چې د ټولو ممکنه منظم بیان ډیبګ کولو حالتونه فعال شي؛
  • هغه ځانګړتیاوې چې مخکې له مینځه وړل شوي وې لیرې شوي دي:
    • اوس د لاین جلا کونکي او وائلډ کارډ کرکټرونو په توګه شتون لري اجازه یوازې وکاروئ ګرافیم (کمپوز یونیکوډ حروف اجازه نه لري).
    • بند شوی د "{" کرکټر په منظم بیانونو کې پرته له دې چې له تیښتې څخه کار واخیستل شي د ځینې اوږد مهاله ډولونو لپاره ملاتړ کوي.
    • دا منع ده. د sysread()، syswrite()، recv() او send() افعال د ":utf8" هینډلرونو سره کارول.
    • دا ممنوع ده چې د "زما" تعریفونه په طبیعي ډول غلط شرطي بیاناتو کې وکاروئ (د مثال په توګه، "زما $ x که 0").
    • د ځانګړي متغیرونو لپاره ملاتړ "$*" او "$#" لرې شوی.
      د ډمپ() فنکشن د ضمني زنګ وهلو لپاره ملاتړ بند شوی دی (تاسو باید اوس په واضح ډول د CORE::dump()) مشخص کړئ.

    • دوتنه::Glob::glob فنکشن لرې شوی (تاسو باید فایل::Glob::bsd_glob وکاروئ).
    • د غلط یونیکوډ ترتیبونو بیرته راستنیدو پروړاندې پیک() ته محافظت اضافه شوی.
    • د میکرو کارولو لپاره د ملاتړ پای چې په XS کوډ (C بلاکس) کې د UTF-8 سره عملیات ترسره کوي تر راتلونکي خوشې کیدو پورې ځنډول شوي.
  • د فعالیت اصلاح:
    • د UTF-8 څخه د کرکټر ترتیب ته د ژباړې عملیات ګړندي شوي (کوډ ټکی)، د مثال په توګه، د حکم ("\x7fff") عملیات ترسره کول اوس 12٪ لږ لارښوونو ته اړتیا لري. د عملیاتو فعالیت چې د UTF-8 کریکټ ترتیبونو سموالي معاینه کوي هم ډیر شوي؛
    • په finalize_op() فنکشن کې تکراري زنګونه له منځه وړل شوي؛
    • د ورته حروفونو د ماتولو او په منظم بیانونو کې د کرکټر ټولګیو تعریف کولو لپاره کوډ ته کوچني اصلاح کول؛
    • اصلاح شوی د لاسلیک شوي ډول تعریفونه غیر لاسلیک شوي (IV ته UV) ته بدلول؛
    • په تار کې د عددونو د بدلولو لپاره الګوریتم د یوې پرځای دوه عددونو په یوځل کې پروسس کولو سره ګړندی شوی؛
    • پرمختګونه شوي دي چمتو شوی د LGTM لخوا د تحلیل پراساس؛
    • regcomp.c، regcomp.h او regexec.c فایلونو کې مطلوب کوډ؛
    • په منظم بیانونو کې، د نمونو پروسس کول لکه "qr/[^a]/" د ASCII حروفونو سره د پام وړ ګړندي شوي.
  • د Minix3 پلیټ فارم لپاره ملاتړ بحال شوی. دا ممکنه ده چې د مایکروسافټ ویژول سټوډیو 2019 کمپیلر (Visual C++ 14.2) په کارولو سره جوړ کړئ؛
  • د ماډلونو تازه شوي نسخې په لومړني کڅوړه کې شامل دي. ماډلونه د اصلي جوړښت څخه لیرې شوي دي ب:: ډیبګ и ځای:: کوډونه.

سرچینه: opennet.ru

Add a comment