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

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

Go синтаксисі Си тілінің белгілі элементтеріне негізделген, 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 өңдеушісі болмаған жағдайда, қолданба стек ізі шығысымен шығады (бұрын әрекетті болжау мүмкін емес еді).
  • Компилятор қоқыс жинағышқа кейбір метадеректерді қосуды тоқтату және пайдаланылмаған метадеректерді неғұрлым агрессивті тазалау арқылы жасалған орындалатын файлдардың өлшемін орта есеппен 5%-ға азайту үшін оңтайландырылған.
  • Spectre класының шабуылдарынан қорғауды қосу үшін компилятор мен ассемблерге «-spectre» жалауы қосылды (көптеген бағдарламалар үшін бұл талап етілмейді; опцияны қосу тек мыналар үшін негізделуі мүмкін). кейбір өте нақты жағдайлар).
  • X.509 сертификаттарында CommonName өрісі ескірген, ол енді Тақырыптың балама атаулары өрісі жоқ болса, түйін атауы ретінде қарастырылмайды.
  • GOPROXY ортасының айнымалы мәніндегі "go" пәрмені енді үтір немесе "|" арқылы бөлінген бірнеше проксиді тізімдей алады. Тізімдегі бірінші прокси қатені (404 немесе 410) қайтарса, екінші прокси арқылы байланысу әрекеті жасалады, т.б.
  • Ветеринариялық қызметтік бағдарлама "x" рун немесе байттан басқа бүтін сан түрі болса, жолдан(x) түрлендіру әрекеті туралы ескерту қосты.
  • GNU ассемблер синтаксисін бөлшектеуге қолдау көрсету үшін "-gnu" жалауы objdump утилитасына қосылды.
  • Жаңа пакет қосылды уақыт/tzdata, бұл бағдарламаға уақыт белдеуі деректері бар дерекқорды біріктіруге мүмкіндік береді.
  • Бастапқы мәтіндер мен құжаттардан жойылды ақ тізім/қара тізім және негізгі/байланушы сөз тіркестері, олар енді "рұқсат етілген тізім", "блоктау тізімі", "процесс", "pty", "proc" және "басқару" сөздерімен ауыстырылады.
  • Стандартты кітапханаға кішігірім жақсартулардың үлкен бөлігі жасалды.
  • GOARCH=arm және GOARCH=arm6.7 режимдерінде OpenBSD 64 үшін қосылды (бұрын тек GOARCH=386 және GOARCH=amd64 қолдау көрсетілетін).
  • 64-биттік RISC-V платформасын (GOOS=linux, GOARCH=riscv64) дамыту жалғасты.
  • 32 биттік x86 жүйелері үшін келесі шығарылым ең төменгі жүйе талаптарын арттырады - тек SSE2 бар процессорларға қолдау жалғаса береді. GOARCH=386 режимінде құрастыру үшін сізге кем дегенде Intel Pentium 4 (2000 жылы шыққан) немесе AMD Opteron/Athlon 64 (2003 жылы шыққан) қажет.

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

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