GCC 9.1

เปƒเบ™เบงเบฑเบ™เบ—เบต 3 เบžเบถเบ”เบชเบฐเบžเบฒ, เบเบฒเบ™เบ›เปˆเบญเบเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡ GCC เบฎเบธเปˆเบ™เบ—เบต 9.1 เป„เบ”เป‰เบˆเบฑเบ”เบ‚เบถเป‰เบ™: GCC XNUMX.
เบกเบฑเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เปเบฅเบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบเป€เบกเบทเปˆเบญเบ—เบฝเบšเบเบฑเบšเปเบ›เบ”
เบชเบฐเบšเบฑเบš.

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบปเปˆเบงเป„เบ›

เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
  • เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปˆเบฒ 64-bit เปเบฅเบฐ suffixes เป€เบžเบทเปˆเบญเบฅเบฐเบšเบธเบ‚เบฐเบซเบ™เบฒเบ”;
  • เป€เบžเบตเปˆเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบ -flive-patching, เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบกเบตเบ—เปˆเบฒเปเบฎเบ‡เบ—เบตเปˆเบˆเบฐเบ—เปเบฒเบฅเบฒเบเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง, เบเบฒเบ™เบ›เปˆเบฝเบ™เบฅเบฐเบซเบฑเบ”;
  • เป€เบžเบตเปˆเบก --completion เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบˆเบฐเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบชเปเบฒเป€เบฅเบฑเบ”เปƒเบ™ shell เบ„เปเบฒเบชเบฑเปˆเบ‡;
  • เบ”เบฝเบงเบ™เบตเป‰เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบช Compiler เบ›เบฐเบเบญเบšเบกเบตเบ•เบปเบงเป€เบฅเบเปเบ–เบง (-fno-diagnostics-show-line-เบ•เบปเบงเป€เบฅเบ) เปเบฅเบฐ
    เบ›เบฐเป€เบžเบ”เบ‚เปเป‰เบกเบนเบ™ (fno-diagnostics-show-labels);
  • เป€เบžเบตเปˆเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบ -fdiagnostics-format=json เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบœเบปเบ™เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเปƒเบ™เบฎเบนเบšเปเบšเบš JSON;
  • เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบˆเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡ (-falign-functions, เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡โ€‹) เปƒเบ™โ€‹เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบเบญเบกโ€‹เบฎเบฑเบšโ€‹เบ„เบนเปˆโ€‹เบœเบปเบงโ€‹เป€เบกเบโ€‹เบ‚เบญเบ‡โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹;
  • เป€เบžเบตเปˆเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เป„เบŸเบฅเปŒ (-fprofile-filter-files, -fprofile-exclude-files), เป€เบŠเบดเปˆเบ‡เปเบกเปˆเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเป‚เบ”เบ profiler;
  • เบ•เบญเบ™เบ™เบตเป‰ AddressSanitizer เปƒเบŠเป‰เบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡เบ—เบตเปˆเปเปœเป‰เบ™เปœเบฒเบเบงเปˆเบฒเป€เบžเบทเปˆเบญเบˆเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ•เบปเบงเปเบ›เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบขเบนเปˆเปƒเบ™ stack;
  • เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ -fopt-info;
  • เป€เบžเบตเปˆเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบ -fsave-optimization-เบšเบฑเบ™เบ—เบถเบ เป€เบžเบทเปˆเบญเบšเบฑเบ™เบ—เบถเบเบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบชเปˆเป„เบŸเบฅเปŒ;
  • เป€เบžเบตเปˆเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบ -fipa-stack-alignment ะธ -fipa-reference-addressable.
เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปƒเบ™เบ•เบปเบงเปƒเบซเบกเปˆ
เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปƒเปเปˆ
เบญเบทเปˆเบ™เป†

เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš:

  • เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบชเบฐเบซเบผเบฑเบš;
  • เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™;
  • เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ‚เปเป‰เบกเบนเบ™ profile;
  • เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบ›เบฐเบเบญเบš (LTO);

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบฎเบนเบšเปเบšเบšเบžเบฒเบเปƒเบ™เบ‚เบญเบ‡ gcov เปเบกเปˆเบ™ JSON, เปเบฅเบฐเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบซเบกเปˆ --use-hotness-colors เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เปƒเบชเปˆเบชเบตเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบ–เบทเบเปƒเบŠเป‰เป€เบฅเบทเป‰เบญเบเป†เบชเปเปˆเบฒเปƒเบ”.

เบžเบฒเบชเบฒเบ•เปˆเบฒเบ‡เป†

เบ„เบธเบ™โ€‹เบ™เบฐโ€‹เบžเบฒเบšโ€‹เปเบฅเบฐโ€‹เบ„เบงเบฒเบกโ€‹เบชเบปเบกโ€‹เบšเบนเบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹ OpenACC เบžเบฒเบชเบฒ C, C++, เปเบฅเบฐ Fortran เบชเบทเบšเบ•เปเปˆเบ›เบฑเบšเบ›เบธเบ‡.

เบžเบฒเบชเบฒ C-like
  • เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™เบชเปเบฒเบฅเบฑเบš OpenMP 5.0 เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”;
  • เป€เบžเบตเปˆเบกเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” __builtin_convertvector;
  • เป€เบžเบตเปˆเบกเบ„เบณเป€เบ•เบทเบญเบ™เปเบฅเป‰เบง -Waddress-of-packed-เบชเบฐเบกเบฒเบŠเบดเบ;
  • เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบขเบนเปˆ;
  • เบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เป€เบกเบทเปˆเบญเบชเบปเปˆเบ‡เบ‚เปเป‰เป‚เบ•เป‰เปเบเป‰เบ‡เบ—เบตเปˆเบœเบดเบ”เบžเบฒเบ”เป„เบ›เบซเบฒเบกเบฐเบซเบฒเบžเบฒเบเบ•เบญเบ™เบ™เบตเป‰เบฅเบงเบกเบกเบตเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ‚เบญเบ‡เบกเบฐเบซเบฒเบžเบฒเบเป€เบญเบ‡;
  • เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เปเบ™เบฐเบ™เบณเบเบฒเบ™เปเบเป‰เป„เบ‚เบเบฒเบ™เบžเบดเบกเบœเบดเบ”.
C
  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ _Static_assert เบเบฑเบšเบซเบ™เบถเปˆเบ‡ argument เบชเปเบฒเบฅเบฑเบš -std = c2x (เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”);
  • เบ„เบณเป€เบ•เบทเบญเบ™เปƒเปเปˆ -Wabsolute-value, เป€เบŠเบดเปˆเบ‡เบˆเบฑเบšเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบŠเบฑเปˆเบ™ abs().
C ++
  • เบ„เบณเป€เบ•เบทเบญเบ™เปƒเปเปˆ: -Wdeprecated-copy,
    -Winit-list-เบ•เบฐเบซเบผเบญเบ”เบŠเบตเบงเบดเบ”,
    -Wredundant-เบเป‰เบฒเบ,
    -Wpessimizing-เบเป‰เบฒเบ,
    -Wclass เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹;
  • เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฑเบเบชเบฐเบ™เบฐเปƒเบซเบกเปˆเบˆเบฒเบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ” C++2a;
  • เบ”เบฝเบงเบ™เบตเป‰ Frontend เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบซเบผเบฒเบเบ‚เบถเป‰เบ™เบเปˆเบฝเบงเบเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบšเบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบกเบนเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบช;
  • เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™ overloaded, binary operator, function calls เปเบฅเบฐ format strings;
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เปเบเป‰เป„เบ‚เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบเบšเบฒเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเปเบฒเบฅเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบ™เบดเบเบปเบก (เบงเบปเบ‡เป€เบฅเบฑเบšเบซเบฒเบเป„เบ›, namespaces, typos, เปเบฅเบฐเบญเบทเปˆเบ™เป†).
libstdc++
  • เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” C++17 เบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบญเบตเบเบ•เปเปˆเป„เบ›;
  • เป€เบžเบตเปˆเบก algorithms เบ‚เบฐเบซเบ™เบฒเบ™, , , เบ เบšเปเปˆเบฎเบฝเบเบฎเป‰เบญเบ‡ -lstdc++fs;
  • เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบชเปเบฒเบฅเบฑเบš C++2a ( , , std::bind_front, เปเบฅเบฐเบญเบทเปˆเบ™เป†);
  • เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบ›เบตเบ”โ€‹เบชเบฐโ€‹เบ•โ€‹เบฃเบตเบกโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เปƒเบ™ Windows เบ—เบตเปˆโ€‹เบกเบตโ€‹เป€เบชเบฑเป‰เบ™โ€‹เบ—เบฒเบ‡โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เปเบกเปˆเบ™ charโ€‹;
  • เบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™ เปƒเบ™ Windows;
  • เบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš Networking TS.
D

เบžเบฒเบชเบฒ D เป€เบงเบตเบŠเบฑเบ™ 2.076 เปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™ GCC.

เบŸเปเบฃเบฑเบ™
  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบš asynchronous I/O;
  • เบ›เบฐเบ•เบดเบšเบฑเบ” BACK argument เบชเปเบฒเบฅเบฑเบš MINLOC เปเบฅเบฐ MAXLOC;
  • เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆ FINDLOC เปเบฅเบฐ IS_CONTIGOUS;
  • syntax เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบ•เบปเบงเป€เบฅเบเบŠเบฑเบšเบŠเป‰เบญเบ™เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”: c%re เปเบฅเบฐ c%im;
  • เบ›เบฐเบ•เบดเบšเบฑเบ” syntax str%len เปเบฅเบฐ a% kind;
  • เบ›เบฐเบ•เบดเบšเบฑเบ” C descriptors เปเบฅเบฐ ISO_Fortran_binding.h header;
  • เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบœเปˆเบญเบ™เบ„เบฒเบเบชเปเบฒเบฅเบฑเบšเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ MAX เปเบฅเบฐ MIN เป€เบกเบทเปˆเบญเบซเบ™เบถเปˆเบ‡เปƒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปเบกเปˆเบ™ NaN;
  • เป€เบžเบตเปˆเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบ -fdec-เบฅเบงเบก;
  • เป€เบžเบตเปˆเบกเบ„เปเบฒเบชเบฑเปˆเบ‡ เบญเบฒเบ„เบฒเบ™.
libgccjit

เบญเบทเปˆเบ™เป†

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ เปเบฅเบฐ OS เบชเบฐเป€เบžเบฒเบฐเบซเบผเบฒเบเบญเบฑเบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: linux.org.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™