GCC 9.1

ื‘-3 ื‘ืžืื™ ื”ืชืงื™ื™ืžื” ื”ื”ืคืฆื” ื”ืคื•ืžื‘ื™ืช ื”ืจืืฉื•ื ื” ืฉืœ ื”ื’ืจืกื” ื”ืชืฉื™ืขื™ืช ืฉืœ GCC: GCC 9.1.
ื”ื•ื ืžื›ื™ืœ ื”ืจื‘ื” ืฉื™ืคื•ืจื™ื ื•ืชื•ืกืคื•ืช ืžืฉืžืขื•ืชื™ื•ืช ื‘ื”ืฉื•ื•ืื” ืœืฉืžื™ื ื™
ื’ึดืจึฐืกึธื”.

ืฉื™ื ื•ื™ื™ื ื›ืœืœื™ื™ื

ืืคืฉืจื•ื™ื•ืช
  • ืคืงื•ื“ื•ืช ืฉืžืงื‘ืœื•ืช ื’ื•ื“ืœ ืชื•ืžื›ื•ืช ื›ืขืช ื‘ืขืจื›ื™ 64 ืกื™ื‘ื™ื•ืช ื•ื‘ืกื™ื•ืžื•ืช ืœืฆื™ื•ืŸ ื’ื•ื“ืœ;
  • ื ื•ืกืคื” ืืคืฉืจื•ืช -ืคืœื™ื‘-ื˜ืœืื™, ืœืฉืœื•ื˜ ื‘ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ืฉืขืœื•ืœื•ืช ืœื”ื™ื•ืช ื”ืจืกื ื™ื•ืช ืœื”ื—ืœืคืช ืงื•ื“ ื“ื™ื ืžื™;
  • ื ื•ืกืคื” ืืคืฉืจื•ืช --ื”ืฉืœืžื” ืœืชืžื™ื›ื” ื‘ื”ืฉืœืžื” ืื•ื˜ื•ืžื˜ื™ืช ื‘ืžืขื˜ืคืช ื”ืคืงื•ื“ื”;
  • ืื‘ื—ื•ืŸ ืžื”ื“ืจ ื›ื•ืœืœ ื›ืขืช ืžืกืคืจื™ ืฉื•ืจื” (-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-alignment ะธ -fipa-reference-addressable.
ืชื›ื•ื ื•ืช ืžื•ื‘ื ื•ืช ื—ื“ืฉื•ืช
ืชื›ื•ื ื” ื—ื“ืฉื”
ืื—ืจ

ืฉื™ืคื•ืจื™ื ืจื‘ื™ื ืœื™ืฆื™ืจืช ืงื•ื“ ื”ืงืฉื•ืจื™ื ืœ:

  • ื™ืฆื™ืจืช ืžื‘ื ื™ ืžืชื’;
  • ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ื‘ื™ืŸ ืคืจื•ืฆื“ื•ืจืœื™ื•ืช;
  • ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืขืœ ื‘ืกื™ืก ืžื™ื“ืข ืคืจื•ืคื™ืœ;
  • ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ื‘ืฉืœื‘ ื”ื”ืจื›ื‘ื” (LTO);

ื’ื ื”ืคื•ืจืžื˜ ื”ืคื ื™ืžื™ ืฉืœ gcov ื”ื•ื ื›ืขืช JSON, ื•ื”ืืคืฉืจื•ืช ื”ื—ื“ืฉื” --ื”ืฉืชืžืฉ ื‘ืฆื‘ืขื™ื-ื—ืžื™ื ื›ื•ืœืœ ืฆื‘ื™ืขืช ืฉื•ืจื•ืช ืงื•ื“ ืขืœ ืกืžืš ืชื“ื™ืจื•ืช ื”ืฉื™ืžื•ืฉ ื‘ื”ืŸ.

ืฉืคื•ืช

ืื™ื›ื•ืช ื•ืฉืœืžื•ืช ื”ื™ื™ืฉื•ื OpenACC ื”ืฉืคื•ืช C, C++ ื•-Fortran ืžืžืฉื™ื›ื•ืช ืœื”ืฉืชืคืจ.

ืฉืคื•ืช ื“ืžื•ื™ื•ืช C
  • ืชืžื™ื›ื” ื—ืœืงื™ืช ื‘-OpenMP 5.0 ื™ื•ืฉืžื”;
  • ื ื•ืกืคื” ืคื•ื ืงืฆื™ื” __builtin_convertvector;
  • ื ื•ืกืคื” ืื–ื”ืจื” -ื›ืชื•ื‘ืช-ืฉืœ-ื—ื‘ืจ-ืืจื•ื–;
  • ืฉื™ืคื•ืจื™ื ื‘ืžืกืคืจ ืื–ื”ืจื•ืช ืงื™ื™ืžื•ืช;
  • ื˜ืงืกื˜ ื”ืฉื’ื™ืื” ื‘ืขืช ื”ืขื‘ืจืช ืžืกืคืจ ืฉื’ื•ื™ ืฉืœ ืืจื’ื•ืžื ื˜ื™ื ืœืžืืงืจื• ื›ื•ืœืœ ื›ืขืช ืืช ื”ื”ื›ืจื–ื” ืขืœ ื”ืžืืงืจื• ืขืฆืžื•;
  • ืฉื™ืคื•ืจื™ื ื‘ื”ืฆืขื•ืช ืœืชื™ืงื•ืŸ ืฉื’ื™ืื•ืช ื”ืงืœื“ื”.
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 ืฉื”ื ืชื™ื‘ื™ื ืฉืœื”ื ืžื›ื™ืœื™ื ืชื•ื•ื™ื ืฉืื™ื ื ืชื•ื•ื™ื;
  • ืชืžื™ื›ื” ืจืืฉื•ื ื™ืช ื‘-Windows;
  • ืชืžื™ื›ื” ืจืืฉื•ื ื™ืช ืขื‘ื•ืจ Networking TS.
D

ื’ืจืกื” 2.076 ื‘ืฉืคืช D ื›ืœื•ืœื” ื‘-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-include;
  • ื ื•ืกืคื” ื”ื ื—ื™ื” BUILTIN.
libgccjit

ืื—ืจ

ืฉื™ื ื•ื™ื™ื ืจื‘ื™ื ืกืคืฆื™ืคื™ื™ื ืœืืจื›ื™ื˜ืงื˜ื•ืจื” ื•ืœืžืขืจื›ืช ื”ื”ืคืขืœื”.

ืžืงื•ืจ: linux.org.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”