Te tukunga o te reo hootaka Haere 1.14

Tukuna e te tuku reo hotaka Haere 1.14, kei te whakawhanakehia e Google me te whai waahi o te hapori hei otinga ranu e whakakotahi ana i nga mahi teitei o nga reo whakahiato me nga painga o nga reo tuhi penei i te ngawari o te tuhi waehere, te tere o te whakawhanaketanga me te tiaki hapa. Waehere kaupapa tohaina e i raro i te raihana BSD.

Ko te wetereo a Go i ahu mai i nga huānga taunga o te reo C me etahi nama mai i te reo Python. He tino poto te reo, engari he ngawari te panui me te mohio ki te waehere. Ka whakahiatohia te waehere Haere ki roto i nga whakahaere-rua-a-rua ka mahi taketake me te kore e whakamahi i te miihini mariko (whakaahua, patuiro, me etahi atu punaha rapu raruraru wa-haere kua whakauruhia hei nga wahanga wa whakahaere), ka taea e koe te whakatutuki i nga mahi e rite ana ki nga kaupapa C.

I whakawhanakehia te kaupapa i te tuatahi ma te titiro ki nga hotaka miro-maha me te mahi pai i runga i nga punaha maha-matua, tae atu ki te whakarato huarahi taumata-kaiwhakahaere mo te whakarite rorohiko whakarara me te taunekeneke i waenga i nga tikanga mahi whakarara. Ka whakarato hoki te reo i te whakamarumaru i roto i nga poraka mahara kua tohatohahia me te whai waahi ki te whakamahi i te kaikohi paru.

Main nga mahi auahai whakauruhia i roto i te tuku Haere 1.14:

  • Новая систСма ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Β«goΒ» объявлСна Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ для повсСмСстного использования, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π° для управлСния зависимостями вмСсто GOPATH. Новая систСма ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ отличаСтся ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ вСрсионирования, срСдствами доставки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ систСмой управлСния зависимостями. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ большС Π½Π΅ привязаны ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Π΅Ρ€Π΅Π²Π° GOPATH, ΠΌΠΎΠ³ΡƒΡ‚ явно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ зависимости с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ вСрсий ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ повторяСмыС сборки.
  • Kua tapirihia ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° встраивания интСрфСйсов с ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΡΡ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ· встроСнного интСрфСйса Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ сигнатуры, Ρ‡Ρ‚ΠΎ ΠΈ Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… интСрфСйсах. Π―Π²Π½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ.
  • Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ выраТСния Β«deferΒ», использованиС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ отличаСтся ΠΏΠΎ скорости ΠΎΡ‚ прямого Π²Ρ‹Π·ΠΎΠ²Π° ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ отсрочСнный запуск Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅, Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° асинхронноС вытСснСниС сопрограмм (goroutine) β€” Ρ†ΠΈΠΊΠ»Ρ‹, Π½Π΅ содСрТащиС Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° ΠΈΠ»ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ΅ Π½Π°Ρ‡Π°Π»Π° сборки мусора.
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ систСмы распрСдСлСния страниц памяти, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мСньшС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π² конфигурациях с большими значСниями GOMAXPROCS. Как Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»ΠΈΡΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΠ»Π°ΡΡŒ пропускная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΌ интСнсивном распрСдСлСнии Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ² памяти.
  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ сниТСно число ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ контСкста ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² функциях time.After, time.Tick, net.Conn.SetDeadline.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ go ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ Ρ„Π»Π°Π³ Β«-mod=vendorΒ», Ссли Π² ΠΊΠΎΡ€Π½Π΅ имССтся ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ vendor, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для поставки Π²Π½Π΅ΡˆΠ½ΠΈΡ… зависимостСй, привязанных ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌΡƒ поставщику. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π»Π°Π³ Β«-mod=modΒ» для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈΠ· кэша ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Π° Π½Π΅ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Β«vendorΒ». Если Ρ„Π°ΠΉΠ» go.mod доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ обСспСчСно выставлСниС Ρ„Π»Π°Π³Π° Β«-mod=readonlyΒ», Ссли отсутствуСт Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Β«vendorΒ». Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Π»Π°Π³ Β«-modfile=fileΒ» для задания Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° go.mod вмСсто ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎΡΡ Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ модуля.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° пСрСмСнная окруТСния GOINSECURE, ΠΏΡ€ΠΈ установкС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π° go Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ использования HTTPS ΠΈ пропускаСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ сСртификатов ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.
  • Π’ компилятор Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ„Π»Π°Π³ Β«-d=checkptrΒ» для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° Π½Π° соотвСтствиС ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ бСзопасного использования unsafe.Pointer.
  • Π’ поставку Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ hash/maphash с нСкриптографичСскими Ρ…ΡΡˆ-функциями для создания Ρ…ΡΡˆ-Ρ‚Π°Π±Π»ΠΈΡ† для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΈΠ»ΠΈ строк.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° 64-разрядной ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ RISC-V Π² Linux.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° FreeBSD Π½Π° 64-разрядных систСмах ARM.

Source: opennet.ru

Tāpiri i te kōrero