የፕሮግራም አወጣጥ ቋንቋ መልቀቅ Perl 5.30.0

ከ 11 ወራት እድገት በኋላ ወስዷል የፐርል ፕሮግራሚንግ ቋንቋ አዲስ የተረጋጋ ቅርንጫፍ መልቀቅ - 5.30. አዲሱን እትም በማዘጋጀት ላይ ወደ 620 ሺህ የሚጠጉ የኮድ መስመሮች ተለውጠዋል, ለውጦቹ 1300 ፋይሎችን ነክተዋል, እና 58 ገንቢዎች በእድገቱ ውስጥ ተሳትፈዋል.

ቅርንጫፍ 5.30 የተለቀቀው ከስድስት ዓመታት በፊት በተፈቀደው ቋሚ የልማት መርሃ ግብር መሰረት ነው, ይህም በዓመት አንድ ጊዜ አዳዲስ የተረጋጋ ቅርንጫፎችን መለቀቅ እና በየሦስት ወሩ እርማት እንደሚለቀቁ ያመለክታል. በአንድ ወር ጊዜ ውስጥ የፐርል 5.30.1 የመጀመሪያ እርማት ለመልቀቅ ታቅዷል, ይህም በፔርል 5.30.0 ትግበራ ወቅት ተለይተው የሚታወቁትን በጣም ጉልህ ስህተቶች ያስተካክላል. ከፔርል 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 ቋንቋ ውስጥ ቅጥያዎችን ለማዳበር ጥቅም ላይ ይውላል;
  • ባለብዙ ክር ክዋኔን ከሚደግፍ አከባቢ (-Accflags='-DUSE_THREAD_SAFE_LOCALE') ከኦፕሬሽኖች ትግበራ ጋር ፐርል የመገንባት ችሎታ ታክሏል። ቀደም ሲል እንዲህ ዓይነቱ አተገባበር ጥቅም ላይ የሚውለው ባለ ብዙ ክር የፐርል ስሪት ሲገነባ ብቻ ነው, አሁን ግን ለማንኛውም ግንባታ ሊነቃ ይችላል;
  • የ"-Dv" (የተሻሻለ የማረሚያ ውፅዓት) እና "-Dr" (regex debugging) ባንዲራዎችን በማጣመር አሁን ሁሉም ሊሆኑ የሚችሉ መደበኛ የቃላት ማረም ሁነታዎች እንዲነቁ ያደርጋል።
  • ከዚህ ቀደም የተቋረጡ ባህሪያት ተወግደዋል።
    • አሁን እንደ መስመር መለያ እና የዱር ምልክት ቁምፊዎች ይገኛል። ተፈቅዷል ብቻ ይጠቀሙ ግራፊክስ (የተቀናበረ የዩኒኮድ ቁምፊዎች አይፈቀዱም).
    • ተቋርጧል "{" ቁምፊን ሳያመልጡ በመደበኛ አገላለጾች ለመጠቀም ለአንዳንድ ረጅም ጊዜ ያለፈባቸው ቅርጾች ድጋፍ።
    • Запрещено የ sysread ()፣ syswrite ()፣ recv() እና ላክ() ተግባራትን በ":utf8" ተቆጣጣሪዎች በመጠቀም።
    • በተፈጥሮ ሐሰተኛ ሁኔታዊ መግለጫዎች ውስጥ “የእኔ” ትርጓሜዎችን መጠቀም የተከለከለ ነው (ለምሳሌ “የእኔ $x ከሆነ 0”)።
    • የልዩ ተለዋዋጮች ድጋፍ "$*" እና "$#" ተወግዷል።
      የቆሻሻ መጣያ() ተግባርን በተዘዋዋሪ ለመጥራት የሚደረግ ድጋፍ ተቋርጧል (አሁን CORE:: dump()ን በግልፅ መግለጽ አለቦት።

    • የፋይል :: ግሎብ :: ግሎብ ተግባር ተወግዷል (ፋይል :: ግሎብ :: bsd_glob ን መጠቀም አለብህ)።
    • የተሳሳቱ የዩኒኮድ ቅደም ተከተሎችን ላለመመለስ ወደ ጥቅል() ጥበቃ ታክሏል።
    • ከUTF-8 ጋር በXS ኮድ (C blocks) ውስጥ የሚሰሩ የማክሮዎች አጠቃቀም ድጋፍ መጨረሻ እስከሚቀጥለው ልቀት ድረስ ለሌላ ጊዜ ተላልፏል።
  • የአፈጻጸም ማሻሻያዎች፡-
    • ከUTF-8 ወደ ቁምፊ አቀማመጥ የትርጉም ስራዎች ተፋጥነዋል (ኮድ ነጥብ), ለምሳሌ የ ord ("\ x7fff") ክወና አሁን ማከናወን 12% ያነሰ መመሪያዎችን ይፈልጋል. የ UTF-8 ቁምፊ ቅደም ተከተሎችን ትክክለኛነት የሚፈትሹ የኦፕሬሽኖች አፈፃፀም እንዲሁ ጨምሯል ።
    • በማጠቃለያው_ኦፕ() ተግባር ውስጥ ተደጋጋሚ ጥሪዎች ተወግደዋል።
    • ተመሳሳይ ቁምፊዎችን ለመሰባበር እና በመደበኛ አገላለጾች ውስጥ የቁምፊ ክፍሎችን ለመለየት በኮዱ ላይ አነስተኛ ማሻሻያዎችን አድርጓል።
    • የተመቻቸ የተፈረመ አይነት ትርጓሜዎችን ወደ ያልተፈረሙ (IV ወደ UV) መለወጥ;
    • ኢንቲጀርን ወደ ሕብረቁምፊ የመቀየር ስልተ ቀመር ከአንድ ይልቅ ሁለት አሃዞችን በአንድ ጊዜ በማስኬድ ተፋጠነ።
    • ማሻሻያዎች ተደርገዋል። ተዘጋጅቷል በ LGTM ትንተና ላይ የተመሠረተ;
    • የተመቻቸ ኮድ በፋይሎች regcomp.c፣ regcomp.h እና regexec.c;
    • በመደበኛ አገላለጾች ውስጥ፣ እንደ “qr/[^a]/” ያሉ የASCII ቁምፊዎችን በመጠቀም የስርዓተ-ጥለት ሂደት በከፍተኛ ፍጥነት ተጨምሯል።
  • የ Minix3 መድረክ ድጋፍ ወደነበረበት ተመልሷል። የማይክሮሶፍት ቪዥዋል ስቱዲዮ 2019 ማጠናከሪያ (Visual C ++ 14.2) በመጠቀም መገንባት ይቻላል;
  • በመሠረታዊ ጥቅል ውስጥ የተካተቱ የሞጁሎች የተዘመኑ ስሪቶች። ሞጁሎች ከዋናው ጥንቅር ተወግደዋል። ለ:: ማረም и አካባቢ :: ኮዶች.

ምንጭ: opennet.ru

አስተያየት ያክሉ