Go бағдарламалау тілінің шығарылымы 1.14

Жіберген бағдарламалау тілінің шығарылымы 1.14 өтіңіз, оны Google қауымдастықтың қатысуымен құрастырылған тілдердің жоғары өнімділігін код жазудың қарапайымдылығы, әзірлеу жылдамдығы және қателерден қорғау сияқты сценарий тілдерінің артықшылықтарымен біріктіретін гибридті шешім ретінде әзірлейді. Жоба коды таралады BSD лицензиясы бойынша.

Go синтаксисі Си тілінің белгілі элементтеріне негізделген, Python тілінен кейбір қарыздар. Тіл өте қысқа, бірақ кодты оқуға және түсінуге оңай. Go коды виртуалды машинаны пайдаланбай жергілікті түрде іске қосылатын оқшауланған екілік орындалатын файлдарға жинақталған (профильдеу, жөндеу және басқа орындау уақытындағы ақауларды анықтау ішкі жүйелері ретінде біріктірілген. орындау уақытының құрамдастары), бұл C бағдарламаларымен салыстырылатын өнімділікке қол жеткізуге мүмкіндік береді.

Жоба бастапқыда көп ағынды бағдарламалауды және көп ядролы жүйелерде тиімді жұмыс істеуді, соның ішінде параллельді есептеулерді ұйымдастыру және параллель орындалатын әдістер арасындағы өзара әрекеттесу үшін оператор деңгейінде іске асырылатын құралдарды қамтамасыз етумен әзірленген. Сондай-ақ тіл бөлінген жад блоктарының асып кетуіне қарсы кірістірілген қорғанысты қамтамасыз етеді және қоқыс жинағышты пайдалану мүмкіндігін береді.

басты инновацияларGo 1.14 шығарылымында енгізілген:

  • «Өту» пәрменіндегі жаңа модуль жүйесі жалпы пайдалануға дайын деп жарияланды, әдепкі бойынша қосылады және GOPATH орнына тәуелділікті басқару үшін ұсынылады. Жаңа модуль жүйесі біріктірілген нұсқаларды қолдауды, пакеттерді жеткізу мүмкіндіктерін және жақсартылған тәуелділікті басқаруды ұсынады. Модульдермен әзірлеушілер енді GOPATH ағашында жұмыс істеуге байланысты емес, нұсқалық тәуелділіктерді анық анықтай алады және қайталанатын құрылымдарды жасай алады.
  • Қосылды қабаттасатын әдістер жиынтығы бар ендіру интерфейстерін қолдау. Кірістірілген интерфейстің әдістері енді бар интерфейстердегі әдістермен бірдей атауларға және қолтаңбаларға ие болуы мүмкін. Анық жарияланған әдістер бұрынғыдай бірегей болып қалады.
  • "Кейінге қалдыру" өрнегінің өнімділігі жақсартылды, бұл оны кейінге қалдырылған функцияны тікелей шақыру сияқты жылдам етеді, өнімділікке сезімтал кодта кейінге қалдырылған функцияны орындауға мүмкіндік береді.
  • Корутиндердің (горутиндердің) асинхронды алдын ала таңдауы қамтамасыз етілген - функция шақырулары жоқ циклдар енді жоспарлаушының тұйықталуына әкелуі немесе қоқыс жинаудың басталуын кешіктіруі мүмкін.
  • Жад бетін бөлу жүйесінің тиімділігі жақсарды және қазір үлкен GOMAXPROCS мәндері бар конфигурациялардағы құлыптау даулары айтарлықтай азайды. Нәтиже бір уақытта үлкен жад блоктарын қарқынды тарату кезінде кідірістің азаюы және өткізу қабілетінің жоғарылауы болып табылады.
  • Уақыт.After, time.Tick, net.Conn.SetDeadline функцияларында пайдаланылған ішкі таймерлерді іске қосу кезінде құлыптау оңтайландырылды және мәтінмәндік қосқыштар саны азайды.
  • Go пәрменінде, егер түбірде белгілі бір жеткізушіге байланыстырылған сыртқы тәуелділіктерді жеткізуге арналған жеткізуші каталогы болса, әдепкі бойынша «-mod=vendor» жалаушасы қосылады. Модульдерді «өндіруші» каталогынан емес, модуль кэшінен жүктеу үшін бөлек «-mod=mod» жалаушасы қосылды. Егер go.mod файлы тек оқуға арналған болса, жоғарғы «жеткізуші» каталогы болмаса, «-mod=ly readonly» жалауы әдепкі бойынша орнатылады. Модульдің түбірлік каталогындағы файлдың орнына баламалы go.mod файлын көрсету үшін "-modfile=file" жалаушасы қосылды.
  • GOINSECURE ортасының айнымалы мәні қосылды, орнатылған кезде go пәрмені HTTPS пайдалануды қажет етпейді және модульдерді тікелей жүктеген кезде сертификатты тексеруді өткізіп жібереді.
  • Компилятор unsafe.Pointer бағдарламасын қауіпсіз пайдалану ережелеріне сәйкес кодты тексеру үшін әдепкі бойынша қосылған “-d=checkptr” жалаушасын қосты.
  • Жаңа пакет жеткізілімге кіреді хэш/мапаш ерікті байт тізбектері немесе жолдар үшін хэш кестелерін жасау үшін криптографиялық емес хэш функцияларымен.
  • Linux жүйесінде 64-биттік RISC-V платформасына эксперименттік қолдау қосылды.
  • 64 биттік ARM жүйелерінде FreeBSD қолдауы қосылды.

Ақпарат көзі: opennet.ru

пікір қалдыру