GCC 9.1

Մայիսի 3-ին տեղի ունեցավ GCC-ի իններորդ տարբերակի առաջին հրապարակային թողարկումը՝ GCC 9.1:
Այն պարունակում է բազմաթիվ նշանակալի բարելավումներ և լրացումներ ութերորդի համեմատ
տարբերակը։

Ընդհանուր փոփոխություններ

Ընտրանքներ
  • Չափն ընդունող հրամաններն այժմ աջակցում են 64-բիթանոց արժեքներին և վերջածանցներին՝ չափը նշելու համար.
  • Ավելացված տարբերակ -flive-patching, վերահսկելու օպտիմալացումները, որոնք պոտենցիալ կործանարար են դինամիկ կոդի փոխարինման համար.
  • Ավելացվեց --completion տարբերակ՝ հրամանի վահանակում ավտոմատ լրացումն աջակցելու համար;
  • Կոմպիլյատորների ախտորոշումն այժմ ներառում է տողերի համարները (-fno-diagnostics-show-line-numbers) Եվ
    տեսակի տեղեկատվություն (fno-diagnostics-show-labels);
  • Ավելացված տարբերակ -fdiagnostics-format=json JSON ձևաչափով դիագնոստիկա դուրս բերելու համար;
  • Հավասարեցում նշելու ընտրանքներ (-falign-գործառույթները, օրինակ) այժմ կարող է ընդունել հավասարեցման մի քանի տարբերակ.
  • Ավելացվել են ֆայլերի ցանկը զտելու տարբերակներ (-fprofile-filter-files, -fprofile-exclude-files), որոնք գործիքավորվում են պրոֆիլավորողի կողմից.
  • AddressSanitizer-ն այժմ ավելի կոմպակտ հավասարեցում է օգտագործում՝ դարսում գտնվող փոփոխականների անվավեր մուտքերը բռնելու համար.
  • Արդյունքների բազմաթիվ բարելավումներ -fopt-info;
  • Ավելացված տարբերակ -fsave-optimization-record օպտիմալացման հաշվետվությունը ֆայլում պահելու համար.
  • Ավելացված տարբերակ -fipa-stack-հավասարեցում и -fipa-տեղեկանք-հասցեական.
Ներկառուցված նոր հնարավորություններ
Նոր հատկանիշ
Այլ

Կոդերի ստեղծման բազմաթիվ բարելավումներ՝ կապված.

  • անջատիչների կոնստրուկցիաների արտադրություն;
  • միջգործընթացային օպտիմալացումներ;
  • պրոֆիլավորման տեղեկատվության վրա հիմնված օպտիմիզացում;
  • օպտիմալացում հավաքման փուլում (LTO);

Նաև gcov-ի ներքին ձևաչափն այժմ JSON է, իսկ նոր տարբերակը --օգտագործել-ջերմություն-գույներ ներառում է կոդի գծերի գունավորում, որը հիմնված է դրանց օգտագործման հաճախականության վրա:

Լեզուներ

Իրականացման որակը և ամբողջականությունը OpenACC C, C++ և Fortran լեզուները շարունակում են կատարելագործվել:

C-ի նման լեզուներ
  • Իրականացվել է OpenMP 5.0-ի մասնակի աջակցություն;
  • Ավելացված հատկություն __կառուցված_փոխարկիչ;
  • Ավելացվեց նախազգուշացում -Փաթեթավորված անդամի հասցե;
  • Մի շարք առկա նախազգուշացումների բարելավումներ.
  • Սխալի տեքստը, երբ սխալ թվով արգումենտներ փոխանցվում է մակրո, այժմ ներառում է հենց մակրոյի հայտարարությունը.
  • Տառասխալների ուղղման առաջարկների բարելավումներ:
C
  • Աջակցեք _Static_assert-ին մեկ արգումենտով -std=c2x-ի համար (ապագա C ստանդարտ);
  • Նոր նախազգուշացում -Բացարձակ արժեք, որը բռնում է սխալ արգումենտի տեսակը այնպիսի ֆունկցիաների համար, ինչպիսին abs().
C ++
  • Նոր նախազգուշացումներ. -Չհնացած-պատճեն,
    -Winit-list-lifetime,
    -Վրեդունդանտ-շարժվել,
    -Վսեմացնող-շարժվել,
    -Wclass-փոխակերպում;
  • Աշխատանքներ են տարվում ապագա ստանդարտից նոր հնարավորությունների ներդրման ուղղությամբ C++2a;
  • Frontend-ն այժմ պահպանում է ավելի ճշգրիտ տեղեկատվություն մի շարք սկզբնական կոդի տարրերի մասին, ինչը թույլ է տալիս ավելի մանրամասն տեղեկատվություն ցուցադրել ախտորոշման մեջ.
  • Բարելավված ախտորոշում գերբեռնված գործառույթների, երկուական օպերատորների, ֆունկցիաների կանչերի և ֆորմատի տողերի համար;
  • Ավելացվել են ավտոմատ շտկումներ, որոնք աջակցվում են զարգացման որոշ միջավայրերի կողմից մի շարք հայտնի սխալների համար (բացակայող փակագծեր, անունների տարածքներ, տառասխալներ և այլն):
libstdc++
  • C++17-ի իրականացումն այլևս փորձնական չէ.
  • Ավելացված զուգահեռ ալգորիթմներ, , , Ա այլևս չի պահանջում -lstdc++fs;
  • Բարելավված փորձարարական աջակցություն C++2a-ի համար ( , , std::bind_front և այլն);
  • Windows-ում ֆայլերի հոսքերի բացման աջակցություն, որոնց ուղիները պարունակում են ոչ char նիշեր.
  • Նախնական աջակցություն Windows-ում;
  • Ցանցային TS-ի նախնական աջակցություն:
D

D լեզվի 2.076 տարբերակը ներառված է GCC-ում:

Ֆորտրան
  • Լրիվ աջակցություն ասինխրոն I/O-ի համար;
  • Իրականացված BACK փաստարկը MINLOC-ի և MAXLOC-ի համար;
  • Իրականացված FINDLOC և IS_CONTIGOUS գործառույթները;
  • Իրականացվել է կոմպլեքս թվերի բաղադրիչներին մուտք գործելու շարահյուսությունը՝ c%re և c%im;
  • Իրականացված շարահյուսություն str%len և a%kind;
  • Իրականացված C նկարագրիչներ և ISO_Fortran_binding.h վերնագիր;
  • Հանգիստ պահանջներ MAX և MIN ֆունկցիաների արդյունքի համար, երբ արգումենտներից մեկը NaN է;
  • Ավելացված տարբերակ -fdec-ներառել;
  • Հրահանգն ավելացված է ԿԱՌՈՒՑՎԱԾ.
libgccjit

Այլ

Ճարտարապետության և ՕՀ-ի հատուկ փոփոխություններ:

Source: linux.org.ru

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