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

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

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

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

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

  • Crypto/tls бумасында әдепкі бойынша қосылған протоколды қолдау бар TLS 1.3. Ed25519 цифрлық қолтаңбасын қолдайтын "crypto/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.mod файлы ағымдағы жұмыс каталогында немесе go пәрменін іске қосқан кезде, оның ішінде GOPATH/src каталогында болғанда негізгі каталогта болғанда жұмыс істейді. Жаңа орта айнымалылары қосылды: жалпыға қолжетімді модульдердің жолдарын анықтайтын GOPRIVATE және go.sum файлында тізімде жоқ модульдер үшін бақылау сомасы дерекқорына қатынасу параметрлерін белгілейтін GOSUMDB;

  • Әдепкі бойынша "go" пәрмені модульдерді жүктейді және Google (proxy.golang.org, sum.golang.org және index.golang.org) жүргізетін модуль айнасы мен бақылау сомасы дерекқорын пайдаланып олардың тұтастығын тексереді;
  • Тек екілік бумаларды қолдау тоқтатылды, буманы “//go:binary-only-package” режимінде құру енді қатеге әкеледі;
  • Модуль соңғы техникалық қызмет көрсету шығарылымына жаңартылуы керек екенін көрсететін, бірақ ағымдағы негізгі немесе қосымша нұсқаны өзгертпей, «go get» пәрменіне «@patch» жұрнағына қолдау қосылды;
  • Бастапқы басқару жүйелерінен модульдерді шығарып алу кезінде "go" пәрмені енді псевдо-нұсқа сандарын репозиторийдегі метадеректермен сәйкестендіруге әрекет жасап, нұсқа жолында қосымша тексеруді орындайды;
  • Қосымша қолдау қателік тексеру (қателерді орау) стандартты қате өңдеушілерді пайдалануға мүмкіндік беретін орауыштарды жасау арқылы. Мысалы, қате «e» әдісін беру арқылы «w» қатесін орауға болады Қаптау, «w» қайтарады. «e» және «w» қателері де бағдарламада қолжетімді және шешімдер «w» қатесі негізінде қабылданады, бірақ «e» «w» үшін қосымша контекст береді немесе оны басқаша түсіндіреді;
  • Жұмыс уақыты құрамдастарының өнімділігі оңтайландырылды (жылдамдықтың 30%-ға дейін артуы байқалды) және операциялық жүйеге жадтың неғұрлым агрессивті қайтарылуы жүзеге асырылды (бұрын жад бес немесе одан да көп минуттан кейін қайтарылды, бірақ қазір бірден үйме өлшемін азайтқаннан кейін).

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

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