Հասանելի է Perl 5.36.0 ծրագրավորման լեզուն

Մեկ տարվա մշակումից հետո հրապարակվել է Perl ծրագրավորման լեզվի նոր կայուն մասնաճյուղի թողարկումը՝ 5.36։ Նոր թողարկումը պատրաստելիս փոխվել է շուրջ 250 հազար տող կոդ, փոփոխությունները ազդել են 2000 ֆայլերի վրա, և մշակմանը մասնակցել է 82 ծրագրավորող։

Մասնաճյուղ 5.36 թողարկվել է ինը տարի առաջ հաստատված ֆիքսված զարգացման ժամանակացույցի համաձայն, որը ենթադրում է նոր կայուն մասնաճյուղերի թողարկում տարին մեկ անգամ և ուղղիչ թողարկումներ յուրաքանչյուր երեք ամիսը մեկ: Մոտ մեկ ամսից նախատեսվում է թողարկել Perl 5.36.1-ի առաջին ուղղիչ թողարկումը, որը կուղղի Perl 5.36.0-ի ներդրման ընթացքում հայտնաբերված ամենաէական սխալները։ Perl 5.36-ի թողարկման հետ մեկտեղ դադարեցվել է 5.32 մասնաճյուղի աջակցությունը, որի համար ապագա թարմացումները կարող են թողարկվել միայն այն դեպքում, եթե հայտնաբերվեն անվտանգության կարևոր խնդիրներ: Սկսվել է նաև 5.37 փորձնական ճյուղի մշակման գործընթացը, որի հիման վրա 2023 թվականի մայիսին կամ հունիսին կձևավորվի Perl 5.38-ի կայուն թողարկում, եթե որոշում չկայացվի անցնել 7.x համարակալման։

Հիմնական փոփոխությունները.

  • Գործառույթների ստորագրությունների աջակցությունը կայունացվել է և այժմ հասանելի է «օգտագործել v5.36» պրագման նշելիս, ինչը թույլ է տալիս հստակորեն սահմանել գործառույթում օգտագործվող փոփոխականների ցանկը և ավտոմատացնել արժեքների ստուգման և նշանակման գործողությունները զանգվածից: մուտքային պարամետրեր. Օրինակ՝ նախկինում օգտագործված կոդը՝ sub foo { die «Չափազանց շատ արգումենտներ ենթածրագրի համար», եթե @_ >= 2; die «Շատ քիչ արգումենտներ ենթածրագրի համար», եթե @_ <= 2; իմ ($ ձախ, $աջ) = @_; վերադարձնել $ձախ + $աջ; }

    ստորագրություններ օգտագործելիս այն կարող է փոխարինվել հետևյալով.

    sub foo ($left, $right) { return $left + $right; }

    Եթե ​​դուք զանգահարեք foo-ին երկուից ավելի արգումենտներով, թարգմանիչը սխալ կթողնի: Ցանկը նաև աջակցում է «$» հատուկ փոփոխականին, որը թույլ է տալիս անտեսել որոշ արգումենտներ, օրինակ՝ «sub foo ($left, $, $right)» թույլ կտա պատճենել միայն առաջին և երրորդ արգումենտները փոփոխականների մեջ: , մինչդեռ հենց երեքը պետք է փոխանցվեն ֆունկցիայի արգումենտին։

    Ստորագրության շարահյուսությունը նաև թույլ է տալիս նշել կամընտիր փաստարկներ և նշել լռելյայն արժեքներ, եթե արգումենտը բացակայում է: Օրինակ, նշելով «sub foo ($left, $right = 0)» երկրորդ արգումենտը դառնում է կամընտիր, և եթե այն բացակայում է, 0 արժեքը փոխանցվում է: Հանձնարարության գործողության մեջ կարող եք նշել կամայական արտահայտություններ, ներառյալ այլ փոփոխականների օգտագործումը: ցանկից կամ գլոբալ փոփոխականներից: Փոփոխականի փոխարեն հեշ կամ զանգված նշելը (օրինակ՝ «sub foo ($left, @right)») թույլ կտա փոխանցել մեկ կամ մի քանի արգումենտ:

  • Ստորագրություններով հայտարարված գործառույթներում «@_» զանգվածից կամընտիր պարամետր նշանակելու աջակցությունը հայտարարվում է փորձնական և կհանգեցնի նախազգուշացման (նախազգուշացումը տրվում է միայն այն դեպքում, եթե @_-ն օգտագործվում է նոր շարահյուսության օգտագործմամբ հայտարարված ֆունկցիաներում): Օրինակ, կցուցադրվի նախազգուշացում ֆունկցիայի համար. use v5.36; sub f ($x, $y = 123) { ասեք «Առաջին փաստարկը $_[0] է»; }
  • Կայունացված և հասանելի է «օգտագործել v5.36» պրագման նշելիս, «isa» ինֆիքս օպերատորը ստուգելու համար՝ արդյոք օբյեկտը նշված դասի օրինակ է, թե դրանից բխող դաս: Օրինակ՝ if( $obj isa Փաթեթ::Name ) { … }
  • «Օգտագործել v5.36» պրագման նշելիս նախազգուշացման մշակումը միացված է («օգտագործել նախազգուշացումներ» ռեժիմը ակտիվացված է):
  • «Օգտագործել v5.36» պրագման նշելիս օբյեկտներ կանչելու համար անուղղակի նշումների աջակցությունը («անուղղակի հատկանիշ») անջատված է. օբյեկտներ կանչելու հնացած եղանակ, որտեղ «->»-ի փոխարեն օգտագործվում է բացատ («մեթոդ $»: օբյեկտ @param» փոխարեն «$object-> $method(@param)»): Օրինակ, «my $cgi = new CGI»-ի փոխարեն դուք պետք է օգտագործեք «my $cgi = CGI->new»:
  • «Օգտագործել v5.36» պրագման նշելիս, Perl 4 ոճով բազմաչափ զանգվածների և հեշերի նմանակման աջակցությունն անջատված է («հատկանիշ բազմաչափ»)՝ թույլ տալով, որ մի քանի ստեղների նշումը թարգմանվի միջանկյալ զանգվածի մեջ (օրինակ՝ « $hash{1, 2}») փոխարկվել է «$hash{join($;, 1, 2)}»):
  • «Օգտագործել v5.36» պրագման նշելիս փորձարարական ճյուղավորման մեխանիզմի աջակցությունը («հատկանիշի անջատիչ»), որը նման է անջատիչի և գործի հայտարարություններին, անջատված է (Perl-ն օգտագործում է տվյալ և երբ հիմնաբառերը): Այս հատկությունը օգտագործելու համար, սկսած Perl 5.36-ից, դուք պետք է հստակորեն նշեք «օգտագործել «անջատիչ» հատկանիշը», և եթե նշեք «օգտագործել տարբերակը», այն այլևս ավտոմատ կերպով միացված չի լինի:
  • Կանոնավոր արտահայտությունների ներսում քառակուսի փակագծերի լրացուցիչ նիշերի դասերի աջակցությունը կայունացվել է և հասանելի է լռելյայն: Հատկանիշը թույլ է տալիս կատարել համընկնումներ՝ օգտագործելով նիշերի շարքերի հատման, բացառման և միավորման առաջադեմ կանոններ: Օրինակ՝ «[AZ - W]»՝ A-ից Z-ի նիշեր՝ բացառությամբ W-ի:
  • «(?», «( )», «{ }» և «[ ]» գործողությունների աջակցությունը մասամբ կայունացված է և հասանելի է լռելյայնորեն. կարող եք օգտագործել «» «», «» «» և այլն նշանները: Օրինակ: , «քռ»պատ»։
  • Տեսակավորման ֆունկցիան առանց արգումենտների կանչելն արգելված է, որն այժմ կհանգեցնի սխալի։ @a = տեսակավորել @դատարկ; # կշարունակվի @a = տեսակավորում; # սխալ կտպվի @a = sort(); # սխալ կտպվի
  • Առաջարկվել է հրամանի տողի նոր դրոշ «-g», որը հնարավորություն է տալիս բեռնելու ամբողջ ֆայլը որպես ամբողջություն, այլ ոչ թե տող առ տող: Դրոշի գործողությունը նման է «-0777» նշմանը:
  • Unicode-ի բնութագրերի աջակցությունը թարմացվել է մինչև 14.0 տարբերակ:
  • Ապահովում է լողացող կետի բացառությունների (SIGFPE) ակնթարթային մշակում, որը նման է այլ ահազանգերի, ինչպիսիք են SIGSEGV-ը, որը թույլ է տալիս կապել ձեր սեփական մշակողները SIGFPE-ի համար $SIG{FPE}-ի միջոցով, օրինակ՝ դուրս բերելով գծի համարը, որտեղ առաջացել է խնդիրը:
  • Հիմնական փաթեթում ներառված մոդուլների թարմացված տարբերակները:
  • Ավելացված է կատարողականի օպտիմալացում: Տրվել է մեծ հեշ ստեղներ ավելի արդյունավետ պահելու հնարավորություն՝ առանց ընդհանուր լարային աղյուսակների օգտագործման: Զգալիորեն բարելավվել է նոր սկալյար արժեքների ստեղծման կատարումը, օրինակ՝ հետևյալ կոդը այժմ աշխատում է 30%-ով ավելի արագ՝ $str = «A» x 64; համար (0..1_000_000) { @svs = պառակտում //, $str }
  • Թարգմանիչ կոդը սկսեց օգտագործել C99 ստանդարտում սահմանված որոշ կառուցվածքներ: Perl-ի կառուցումն այժմ պահանջում է C99-ն աջակցող կոմպիլյատոր: MSVC++-ի (նախա-VC12) հին տարբերակներում կառուցելու աջակցությունը դադարեցվել է: Ավելացված է աջակցություն Microsoft Visual Studio 2022-ում (MSVC++ 14.3) կառուցելու համար:
  • AT&T UWIN, DOS/DJGPP և Novell NetWare հարթակների աջակցությունը դադարեցվել է։

Source: opennet.ru

Добавить комментарий