ืฉื—ืจื•ืจ ืฉืคืช ื”ืชื›ื ื•ืช Go 1.15

ืฉื”ื•ื’ืฉ ืขืœ ื™ื“ื™ ืฉื—ืจื•ืจ ืฉืคืช ืชื›ื ื•ืช ืขื‘ื•ืจ ืืœ 1.15, ืืฉืจ ืคื•ืชื— ืขืœ ื™ื“ื™ ื’ื•ื’ืœ ื‘ืฉื™ืชื•ืฃ ื”ืงื”ื™ืœื” ื›ืคืชืจื•ืŸ ื”ื™ื‘ืจื™ื“ื™ ื”ืžืฉืœื‘ ืืช ื”ื‘ื™ืฆื•ืขื™ื ื”ื’ื‘ื•ื”ื™ื ืฉืœ ืฉืคื•ืช ื”ื™ื“ื•ืจ ืขื ื”ื™ืชืจื•ื ื•ืช ืฉืœ ืฉืคื•ืช ืกืงืจื™ืคื˜ื™ื ื›ืžื• ืงืœื•ืช ื›ืชื™ื‘ืช ืงื•ื“, ืžื”ื™ืจื•ืช ืคื™ืชื•ื— ื•ื”ื’ื ื” ืขืœ ืฉื’ื™ืื•ืช. ืงื•ื“ ืคืจื•ื™ืงื˜ ืžื•ืคืฅ ืขืœ ื™ื“ื™ ืชื—ืช ืจื™ืฉื™ื•ืŸ BSD.

ื”ืชื—ื‘ื™ืจ ืฉืœ Go ืžื‘ื•ืกืก ืขืœ ืืœืžื ื˜ื™ื ืžื•ื›ืจื™ื ืฉืœ ืฉืคืช C ืขื ื›ืžื” ืฉืืœื•ืช ืžืฉืคืช Python. ื”ืฉืคื” ื“ื™ ืชืžืฆื™ืชื™ืช, ืื‘ืœ ื”ืงื•ื“ ืงืœ ืœืงืจื™ืื” ื•ื”ื‘ื ื”. ืงื•ื“ Go ืžืงื•ืคืœ ืœืงื•ื‘ืฆื™ ื”ืคืขืœื” ื‘ื™ื ืืจื™ื™ื ืขืฆืžืื™ื™ื ื”ืคื•ืขืœื™ื ื‘ืื•ืคืŸ ืžืงื•ืจื™ ืœืœื ืฉื™ืžื•ืฉ ื‘ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช (ืชืช-ืžืขืจื›ื•ืช ืคืจื•ืคื™ืœ, ืื™ืชื•ืจ ื‘ืื’ื™ื ื•ืชืช-ืžืขืจื›ื•ืช ืื—ืจื•ืช ืœื–ื™ื”ื•ื™ ื‘ืขื™ื•ืช ื‘ื–ืžืŸ ืจื™ืฆื” ืžืฉื•ืœื‘ื•ืช ื› ืจื›ื™ื‘ื™ ื–ืžืŸ ืจื™ืฆื”), ื”ืžืืคืฉืจ ืœืš ืœื”ืฉื™ื’ ื‘ื™ืฆื•ืขื™ื ื“ื•ืžื™ื ืœืชื•ื›ื ื™ื•ืช C.

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

ื”ืขื™ืงืจื™ ื—ื™ื“ื•ืฉื™ืื”ื•ืฆื’ ื‘ืžื”ื“ื•ืจืช Go 1.15:

  • ืขื‘ื•ื“ืช ื”ืžืงืฉืจ ืฉื•ืคืจื” ืžืฉืžืขื•ืชื™ืช, ื”ืŸ ื‘ื”ื’ื‘ืจืช ืžื”ื™ืจื•ืช ื”ืคืขื•ืœื” ื•ื”ืคื—ืชืช ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ, ื•ื”ืŸ ื‘ื›ื™ื•ื•ืŸ ืฉืœ ืคื™ืฉื•ื˜ ืชื—ื–ื•ืงืช ื”ืงื•ื“. ื›ืืฉืจ ื ื‘ื“ืง ืขืœ ืžืขืจื›ื•ืช ื”ืคืขืœื” ื”ืžืฉืชืžืฉื•ืช ื‘ืคื•ืจืžื˜ ืงื•ื‘ืฅ ื”ื”ืคืขืœื” ELF (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris), ืงื‘ื•ืฆื” ื˜ื™ืคื•ืกื™ืช ืฉืœ ื™ื™ืฉื•ืžื™ Go ื’ื“ื•ืœื™ื ื ื‘ื ืชื” ื‘-20% ืžื”ืจ ื™ื•ืชืจ, ื•ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ ื”ื•ืคื—ืชื” ื‘-30% ื‘ืžืžื•ืฆืข. ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช ืžื•ื’ื‘ืจืช ื”ืชืืคืฉืจื” ืขืœ ื™ื“ื™ ืžืขื‘ืจ ืœืคื•ืจืžื˜ ื—ื“ืฉ ืฉืœ ืงื•ื‘ืฅ ืื•ื‘ื™ื™ืงื˜ ื•ืขื™ื‘ื•ื“ ืฉืœื‘ื™ื ืคื ื™ืžื™ื™ื ื›ื“ื™ ืœื”ื’ื‘ื™ืจ ืืช ืจืžืช ื”ื”ืงื‘ืœื” ืฉืœ ื”ืขื‘ื•ื“ื”. ื”ืงื™ืฉื•ืจ ื”ืžืงื•ืจื™ ื ืžืฆื ื›ืขืช ื‘ืฉื™ืžื•ืฉ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ื‘ืžืขืจื›ื•ืช linux/amd64 ื•-linux/arm64 ื‘-"-buildmode=pie", ืฉืื™ื ื• ืžืฆืจื™ืš ืขื•ื“ ืฉื™ืžื•ืฉ ื‘ืงื™ืฉื•ืจ C.
  • ื‘ื–ืžืŸ ืจื™ืฆื”, ื”ื”ืคืฆื” ืฉืœ ืื•ื‘ื™ื™ืงื˜ื™ื ืงื˜ื ื™ื ื‘ืžืขืจื›ื•ืช ืขื ืžืกืคืจ ืจื‘ ืฉืœ ืœื™ื‘ื•ืช ืžืขื‘ื“ ืฉื•ืคืจื” ืžืฉืžืขื•ืชื™ืช ื•ื”ื”ืฉื”ื™ื” ื”ื•ืคื—ืชื”. ื‘ืžืงืจื” ืฉืœ ื›ืฉืœื™ื, ืขืจื›ื™ื ืขื ืกื•ื’ื™ ืžืกืคืจื™ื ื•ืžื—ืจื•ื–ื™ื ืžื•ืฆื’ื™ื ื‘ืžืงื•ื ื”ืฆื’ืช ื”ื›ืชื•ื‘ืช. ื‘ืขืช ืฉืœื™ื—ืช ืื•ืชื•ืช SIGSEGV, SIGBUS ื•-SIGFPE ืœืืคืœื™ืงืฆื™ื™ืช Go, ื‘ื”ื™ืขื“ืจ OS/signal.Notify handler, ื”ืืคืœื™ืงืฆื™ื” ืชืฆื ืขื ืคืœื˜ ืžื—ืกื ื™ืช (ื‘ืขื‘ืจ ื”ื”ืชื ื”ื’ื•ืช ื”ื™ื™ืชื” ื‘ืœืชื™ ืฆืคื•ื™ื”).
  • ื”ืžื”ื“ืจ ืขื‘ืจ ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืœื”ืงื˜ื ืช ื’ื•ื“ืœ ืงื‘ืฆื™ ื”ื”ืคืขืœื” ืฉื ื•ืฆืจื• ื‘ืžืžื•ืฆืข ืฉืœ 5% ืขืœ ื™ื“ื™ ืขืฆื™ืจืช ื”ื›ืœืœืช ืžื˜ื ื ืชื•ื ื™ื ืžืกื•ื™ื™ืžื™ื ืขื‘ื•ืจ ืื•ืกืฃ ื”ืืฉืคื” ื•ื ื™ืงื•ื™ ืื’ืจืกื™ื‘ื™ ื™ื•ืชืจ ืฉืœ ืžื˜ื ื ืชื•ื ื™ื ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ.
  • ื”ื“ื’ืœ "-spectre" ื”ืชื•ื•ืกืฃ ืœืžื”ื“ืจ ื•ืœื”ืจื›ื‘ื” ื›ื“ื™ ืœืืคืฉืจ ื”ื’ื ื” ืžืคื ื™ ื”ืชืงืคื•ืช ืžื—ืœืงื•ืช Spectre (ืขื‘ื•ืจ ืจื•ื‘ ื”ืชื•ื›ื ื™ื•ืช ื–ื” ืœื ื ื“ืจืฉ; ื”ืคืขืœืช ื”ืืคืฉืจื•ืช ื™ื›ื•ืœื” ืœื”ื™ื•ืช ืžื•ืฆื“ืงืช ืจืง ืขื‘ื•ืจ ื›ืžื” ืžืงืจื™ื ืžืื•ื“ ืกืคืฆื™ืคื™ื™ื).
  • ื‘ืชืขื•ื“ื•ืช X.509, ื”ืฉื“ื” CommonName ื”ื•ืฆื ืžืฉื™ืžื•ืฉ, ืฉืื™ื ื• ืžื˜ื•ืคืœ ืขื•ื“ ื›ืฉื ืžืืจื— ืื ื”ืฉื“ื” Subject Alternative Names ื—ืกืจ.
  • ื”ืคืงื•ื“ื” "ืขื‘ื•ืจ" ื‘ืžืฉืชื ื” ื”ืกื‘ื™ื‘ื” GOPROXY ื™ื›ื•ืœื” ื›ืขืช ืœืจืฉื•ื ืคืจื•ืงืกื™ ืžืจื•ื‘ื™ื, ืžื•ืคืจื“ื™ื ืขืœ ื™ื“ื™ ืคืกื™ืง ืื• "|". ืื ื”-proxy ื”ืจืืฉื•ืŸ ื‘ืจืฉื™ืžื” ืžื—ื–ื™ืจ ืฉื’ื™ืื” (404 ืื• 410), ืื– ื™ืชื‘ืฆืข ื ื™ืกื™ื•ืŸ ืœื™ืฆื•ืจ ืงืฉืจ ื“ืจืš ื”-proxy ื”ืฉื ื™ ื•ื›ื•'.
  • ื›ืœื™ ื”ืฉื™ืจื•ืช ื”ื•ื˜ืจื™ื ืจ ื”ื•ืกื™ืฃ ืื–ื”ืจื” ืœื’ื‘ื™ ื ื™ืกื™ื•ืŸ ืœื”ืžื™ืจ ืž-string(x) ืื "x" ื”ื•ื ืกื•ื’ ืฉืœ ืžืกืคืจ ืฉืœื ืฉืื™ื ื• ืจื•ื ื” ืื• ื‘ื™ื™ื˜.
  • ื”ื“ื’ืœ "-gnu" ื ื•ืกืฃ ืœื›ืœื™ ื”ืฉื™ืจื•ืช objdump ื›ื“ื™ ืœืชืžื•ืš ื‘ืคื™ืจื•ืง ืชื—ื‘ื™ืจ GNU assembler.
  • ื ื•ืกืคื” ื—ื‘ื™ืœื” ื—ื“ืฉื” ื–ืžืŸ/ืฆื ืชื•ื ื™ื, ื”ืžืืคืฉืจ ืœืš ืœืฉืœื‘ ื‘ืกื™ืก ื ืชื•ื ื™ื ืขื ื ืชื•ื ื™ ืื–ื•ืจ ื–ืžืŸ ื‘ืชื•ื›ื ื™ืช.
  • ืžืชื•ืš ื˜ืงืกื˜ื™ื ืžืงื•ืจื™ื ื•ืชื™ืขื•ื“ ื”ื•ืกืจ ื”ื‘ื™ื˜ื•ื™ื™ื ืจืฉื™ืžืช ืœื‘ื ื”/ืจืฉื™ืžื” ืฉื—ื•ืจื” ื•-master/slave, ืฉืžื•ื—ืœืคื™ื ื›ืขืช ื‘"ืจืฉื™ืžื” ื”ื™ืชืจื”", "ืจืฉื™ืžืช ื—ืกื™ืžื”", "ืชื”ืœื™ืš", "pty", "ืคืจื•ืง" ื•"ืฉืœื™ื˜ื”".
  • ื—ืœืง ื’ื“ื•ืœ ืžื”ืฉื™ืคื•ืจื™ื ื”ืงืœื™ื ื‘ื•ืฆืขื• ื‘ืกืคืจื™ื™ื” ื”ืกื˜ื ื“ืจื˜ื™ืช.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘-OpenBSD 6.7 ื‘ืžืฆื‘ื™ GOARCH=arm ื•-GOARCH=arm64 (ื‘ืขื‘ืจ ืจืง GOARCH=386 ื•-GOARCH=amd64 ื ืชืžื›ื•).
  • ื”ืคื™ืชื•ื— ืฉืœ ืคืœื˜ืคื•ืจืžืช RISC-V 64 ืกื™ื‘ื™ื•ืช (GOOS=linux, GOARCH=riscv64) ื ืžืฉืš.
  • ืขื‘ื•ืจ ืžืขืจื›ื•ืช 32 ืกื™ื‘ื™ื•ืช x86, ื”ืžื”ื“ื•ืจื” ื”ื‘ืื” ืชืขืœื” ืืช ื“ืจื™ืฉื•ืช ื”ืžืขืจื›ืช ื”ืžื™ื ื™ืžืœื™ื•ืช - ืจืง ืžืขื‘ื“ื™ื ืขื SSE2 ื™ืžืฉื™ื›ื• ืœื”ื™ื•ืช ื ืชืžื›ื™ื. ื›ื“ื™ ืœื‘ื ื•ืช ื‘ืžืฆื‘ GOARCH=386 ืชืฆื˜ืจืš ืœืคื—ื•ืช Intel Pentium 4 (ืฉื•ื—ืจืจ ื‘ืฉื ืช 2000) ืื• AMD Opteron/Athlon 64 (ืฉื•ื—ืจืจ ื‘-2003).

ืžืงื•ืจ: OpenNet.ru

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