Ukukhutshwa kolwimi lwenkqubo yeGo 1.13

Yaziswa ukukhutshwa kolwimi lwenkqubo Yiya kwi-1.13, ephuhliswa nguGoogle ngokuthatha inxaxheba koluntu njengesisombululo esidibeneyo esidibanisa ukusebenza okuphezulu kweelwimi ezihlanganisiweyo kunye nezibonelelo zeelwimi zokubhala ezifana nokulula kwekhowudi yokubhala, isantya sophuhliso kunye nokukhusela iimpazamo. Ikhowudi yeprojekthi isasazwa ngu phantsi kwelayisensi ye-BSD.

Isivakalisi sikaGo sisekwe kwizinto eziqhelekileyo zolwimi lwe-C kunye nokubolekwa kulwimi lwePython. Ulwimi lufutshane, kodwa ikhowudi ifundeka lula kwaye iqondwe. Ikhowudi yokuya iqokelelwe kwi-stand-yodwa yokubini ephunyeziweyo esebenza ngokwemveli ngaphandle kokusebenzisa umatshini wenyani (iprofayili, ukulungisa ingxaki, kunye nezinye iindlela zokubona ingxaki yexesha lokusebenza zidityaniswe njenge Amacandelo exesha lokusebenza), ekuvumela ukuba ufezekise ukusebenza ngokuthelekiswa neenkqubo zeC.

Iprojekthi iqale iphuhliswe ngeso kwiprogram ye-multi-threaded kunye nokusebenza ngokufanelekileyo kwiinkqubo ezininzi ezingundoqo, kubandakanywa nokubonelela ngeendlela zomgangatho womqhubi wokuququzelela i-computing ehambelanayo kunye nokusebenzisana phakathi kweendlela eziqhutywe ngokuhambelanayo. Ulwimi lukwabonelela ngokhuseleko olwakhelwe ngaphakathi kwiibhloko zememori ezabiwe ngokugqithisileyo kwaye lubonelela ngokukwazi ukusebenzisa umqokeleli wenkunkuma.

Siseko ezintshayaziswe kukhupho lweGo 1.13:

  • Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ crypto/tls Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° I-TLS 1.3. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ Β«crypto/ed25519Β» с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… подписСй Ed25519;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… прСфиксов Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² для опрСдСлСния Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… чисСл (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 0b101), Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… (0o377), ΠΌΠ½ΠΈΠΌΡ‹Ρ… (2.71828i) ΠΈ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой (0x1p-1021), Π° Ρ‚Π°ΠΊΠΆΠ΅ обСспСчСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования символа Β«_Β» для наглядного раздСлСния Ρ†ΠΈΡ„Ρ€ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… числах (1_000_000);
  • Бнято ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° использованиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Ρ… счётчиков Π² опСрациях сдвига, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Π² Ρ‚ΠΈΠΏ uint ΠΏΠ΅Ρ€Π΅Π΄ использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Β«β€Ήβ€ΉΒ» ΠΈ Β«β€Ίβ€ΊΒ»;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Illumos (GOOS=illumos). ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ Android 10. ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Ρ‹ трСбования ΠΊ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ вСрсиям FreeBSD (11.2) ΠΈ macOS (10.11 Β«El CapitanΒ»)
  • ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΎ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ систСмы ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ GOPATH. Π’ΠΎΠΏΡ€Π΅ΠΊΠΈ Ρ€Π°Π½Π΅Π΅ ΠΎΠ·Π²ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ ΠΏΠ»Π°Π½Π°ΠΌ Π² Go 1.13 данная систСма Ρ‚Π°ΠΊ ΠΈ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ GO111MODULE=on ΠΈΠ»ΠΈ использования контСкста, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ автоматичСски. Новая систСма ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ отличаСтся ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ вСрсионирования, срСдствами доставки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ систСмой управлСния зависимостями. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ большС Π½Π΅ привязаны ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Π΅Ρ€Π΅Π²Π° GOPATH, ΠΌΠΎΠ³ΡƒΡ‚ явно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ зависимости с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ вСрсий ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ повторяСмыС сборки.

    Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… выпусков автоматичСскоС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ систСмы Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ срабатываСт, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ go Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΈΠ»ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ присутствуСт Ρ„Π°ΠΉΠ» go.mod, Π² Ρ‚ΠΎΠΌ числС ΠΏΡ€ΠΈ Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ GOPATH/src. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния: GOPRIVATE, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π°Ρ ΠΏΡƒΡ‚ΠΈ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ нСдоступных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΈ GOSUMDB, Π·Π°Π΄Π°ΡŽΡ‰Π°Ρ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ доступа ΠΊ Π±Π°Π·Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… сумм ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Π½Π΅ пСрСчислСнных Π² Ρ„Π°ΠΉΠ»Π΅ go.sum;

  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Β«goΒ» ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ обСспСчСна Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈΡ… цСлостности, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π·Π΅Ρ€ΠΊΠ°Π»ΠΎ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ Π±Π°Π·Ρƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… сумм, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Google (proxy.golang.org, sum.golang.org ΠΈ index.golang.org);
  • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², сборка ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Β«//go:binary-only-packageΒ» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ ошибки;
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«go getΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° суффикса Β«@patchΒ», ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½ Π΄ΠΎ послСднСго ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ выпуска, Π½ΠΎ Π±Π΅Π· смСны Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ вСрсии;
  • ΠŸΡ€ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈΠ· систСм контроля вСрсий ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«goΒ» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выполняСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ строки с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ вСрсии, ΠΏΡ‹Ρ‚Π°ΡΡΡŒ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€Π° псСвдо-вСрсий с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠ· рСпозитория;
  • Inkxaso eyongeziweyo инспСктирования ошибок (error wrapping) Ρ‡Π΅Ρ€Π΅Π· созданиС ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΎΠΊ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ошибок. НапримСр, impazamo Β«eΒ» ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ‘Ρ€Π½ΡƒΡ‚Π° Π½Π°Π΄ ошибкой Β«wΒ» Ρ‡Π΅Ρ€Π΅Π· прСдоставлСниС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Khulula, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π³ΠΎ Β«wΒ». ОбС ошибки Β«eΒ» ΠΈ Β«wΒ» доступны Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π½Π° основании ошибки Β«wΒ», Π½ΠΎ Β«eΒ» прСдоставляСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ контСкст ΠΊ Β«wΒ» ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ ΠΏΠΎ ΠΈΠ½ΠΎΠΌΡƒ;
  • ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° оптимизация ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ runtime-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (отмСчаСтся прирост скорости Π΄ΠΎ 30%) ΠΈ задСйствовано Π±ΠΎΠ»Π΅Π΅ агрСссивноС Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ памяти Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму (Ρ€Π°Π½Π΅Π΅ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π»Π°ΡΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡΡ‚ΡŒ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΈΠ½ΡƒΡ‚, Π° сСйчас сразу послС урСзания Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΡƒΡ‡ΠΈ).

umthombo: opennet.ru

Yongeza izimvo