ప్రోగ్రామింగ్ లాంగ్వేజ్ విడుదల Perl 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 అభివృద్ధి ప్రక్రియ కూడా ప్రారంభమైంది, దీని ఆధారంగా మే 2020లో Perl 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, సి భాషలో పొడిగింపుల అభివృద్ధిలో ఉపయోగించబడుతుంది;
  • బహుళ-థ్రెడ్ ఆపరేషన్‌కు (-Accflags='-DUSE_THREAD_SAFE_LOCALE') మద్దతిచ్చే లొకేల్‌తో ఆపరేషన్‌ల అమలుతో పెర్ల్‌ను రూపొందించగల సామర్థ్యం జోడించబడింది. ఇంతకుముందు, అటువంటి అమలు పెర్ల్ యొక్క బహుళ-థ్రెడ్ వెర్షన్‌ను నిర్మించేటప్పుడు మాత్రమే ఉపయోగించబడింది, కానీ ఇప్పుడు ఏదైనా బిల్డ్ కోసం ప్రారంభించబడుతుంది;
  • "-Dv" (మెరుగైన డీబగ్గింగ్ అవుట్‌పుట్) మరియు "-Dr" (regex డీబగ్గింగ్) ఫ్లాగ్‌లను కలపడం వలన ఇప్పుడు సాధ్యమయ్యే అన్ని సాధారణ వ్యక్తీకరణ డీబగ్గింగ్ మోడ్‌లు ప్రారంభించబడతాయి;
  • గతంలో నిలిపివేయబడిన ఫీచర్‌లు తీసివేయబడ్డాయి:
    • ఇప్పుడు లైన్ సెపరేటర్ మరియు వైల్డ్ కార్డ్ అక్షరాలుగా అందుబాటులో ఉన్నాయి అనుమతించబడింది మాత్రమే ఉపయోగించండి గ్రాఫిమ్స్ (సమ్మిళిత యూనికోడ్ అక్షరాలు అనుమతించబడవు).
    • నిలిపివేయబడింది "{" అక్షరాన్ని తప్పించుకోకుండా సాధారణ వ్యక్తీకరణలలో ఉపయోగించే కొన్ని దీర్ఘకాలం వాడుకలో లేని రూపాలకు మద్దతు.
    • Запрещено ":utf8" హ్యాండ్లర్‌లతో sysread(), syswrite(), recv() మరియు send() ఫంక్షన్‌లను ఉపయోగించడం.
    • అంతర్గతంగా తప్పుడు షరతులతో కూడిన స్టేట్‌మెంట్‌లలో "నా" నిర్వచనాలను ఉపయోగించడం నిషేధించబడింది (ఉదాహరణకు, "నా $x అయితే 0").
    • ప్రత్యేక వేరియబుల్స్ “$*” మరియు “$#” కోసం మద్దతు తీసివేయబడింది.
      డంప్() ఫంక్షన్ యొక్క అవ్యక్త కాలింగ్‌కు మద్దతు నిలిపివేయబడింది (మీరు ఇప్పుడు స్పష్టంగా CORE::dump()ని పేర్కొనాలి).

    • ఫైల్::Glob::glob ఫంక్షన్ తీసివేయబడింది (మీరు ఫైల్::Glob::bsd_globని ఉపయోగించాలి).
    • సరికాని యూనికోడ్ సీక్వెన్స్‌లను తిరిగి ఇవ్వకుండా ప్యాక్()కి రక్షణ జోడించబడింది.
    • XS కోడ్ (C బ్లాక్‌లు)లో UTF-8తో ఆపరేషన్లు చేసే మాక్రోల వినియోగానికి మద్దతు ముగింపు తదుపరి విడుదల వరకు వాయిదా వేయబడింది.
  • పనితీరు ఆప్టిమైజేషన్లు:
    • UTF-8 నుండి అక్షర లేఅవుట్‌కి అనువాద కార్యకలాపాలు వేగవంతం చేయబడ్డాయి (కోడ్ పాయింట్), ఉదాహరణకు, ord(“\x7fff”) ఆపరేషన్‌ని నిర్వహించడానికి ఇప్పుడు 12% తక్కువ సూచనలు అవసరం. UTF-8 క్యారెక్టర్ సీక్వెన్స్‌ల ఖచ్చితత్వాన్ని తనిఖీ చేసే కార్యకలాపాల పనితీరు కూడా పెంచబడింది;
    • finalize_op() ఫంక్షన్‌లోని పునరావృత కాల్‌లు తొలగించబడ్డాయి;
    • ఒకే విధమైన అక్షరాలు కుప్పకూలడం మరియు సాధారణ వ్యక్తీకరణలలో అక్షర తరగతులను నిర్వచించడం కోసం కోడ్‌కు చిన్న ఆప్టిమైజేషన్‌లు చేయబడ్డాయి;
    • ఆప్టిమైజ్ చేయబడింది సంతకం చేసిన రకం నిర్వచనాలను సంతకం చేయని వాటికి (IV నుండి UV) మార్చడం;
    • పూర్ణాంకాలను స్ట్రింగ్‌గా మార్చే అల్గోరిథం ఒకటికి బదులుగా రెండు అంకెలను ఒకేసారి ప్రాసెస్ చేయడం ద్వారా వేగవంతం చేయబడింది;
    • మెరుగుదలలు జరిగాయి సిద్ధం LGTM ద్వారా విశ్లేషణ ఆధారంగా;
    • regcomp.c, regcomp.h మరియు regexec.c ఫైల్‌లలో ఆప్టిమైజ్ చేయబడిన కోడ్;
    • సాధారణ వ్యక్తీకరణలలో, ASCII అక్షరాలతో “qr/[^a]/” వంటి నమూనాల ప్రాసెసింగ్ గణనీయంగా వేగవంతం చేయబడింది.
  • Minix3 ప్లాట్‌ఫారమ్‌కు మద్దతు పునరుద్ధరించబడింది. మైక్రోసాఫ్ట్ విజువల్ స్టూడియో 2019 కంపైలర్ (విజువల్ C++ 14.2)ని ఉపయోగించి నిర్మించడం సాధ్యమవుతుంది;
  • మాడ్యూల్స్ యొక్క నవీకరించబడిన సంస్కరణలు ప్రాథమిక ప్యాకేజీలో చేర్చబడ్డాయి. ప్రధాన కూర్పు నుండి మాడ్యూల్స్ తీసివేయబడ్డాయి B::డీబగ్ и లొకేల్:: కోడ్‌లు.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి