Нашри забони барномасозии 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-ро талаб намекунад.
  • Дар вақти кор, тақсимоти объектҳои хурд дар системаҳои дорои шумораи зиёди ядроҳои CPU ба таври назаррас беҳтар карда шуд ва таъхири таъхир кам карда шуд. Дар ҳолати нокомиҳо, ба ҷои нишон додани суроға, арзишҳо бо намудҳои рақамӣ ва сатр нишон дода мешаванд. Ҳангоми фиристодани сигналҳои SIGSEGV, SIGBUS ва SIGFPE ба барномаи Go, дар сурати мавҷуд набудани коркардкунандаи OS/signal.Otify, барнома бо баромади пайгирии стек мебарояд (қаблан рафтори пешгӯинашаванда буд).
  • Компилятор барои кам кардани андозаи файлҳои иҷрошавандаи тавлидшуда ба ҳисоби миёна то 5% тавассути қатъ кардани ворид кардани баъзе метадотаҳо барои коллектори ахлот ва тозакунии шадидтари метамаълумоти истифоданашуда оптимизатсия карда шудааст.
  • Парчами "-spectre" ба компилятор ва ассемблер илова карда шудааст, то муҳофизат аз ҳамлаҳои синфи Spectre (барои аксари барномаҳо ин талаб карда намешавад; фаъол кардани опсияро танҳо барои асоснок кардан мумкин аст) баъзе ҳолатҳои хеле мушаххас).
  • Дар сертификатҳои X.509 майдони CommonName бекор карда шудааст, ки агар майдони Номҳои алтернативии мавзӯъ мавҷуд набошад, он дигар ҳамчун номи мизбон баррасӣ намешавад.
  • Фармони "go" дар тағирёбандаи муҳити GOPROXY акнун метавонад проксиҳои сершуморро номбар кунад, ки бо вергул ё "|" ҷудо карда шудаанд. Агар прокси якум дар рӯйхат хатогиро баргардонад (404 ё 410), он гоҳ кӯшиши тамос тавассути прокси дуюм ва ғайра анҷом дода мешавад.
  • Барномаи ветеринарӣ огоҳиро дар бораи кӯшиши табдил додан аз сатр(x) илова кардааст, агар "x" як навъи бутуни ғайр аз рун ё байт бошад.
  • Парчами "-gnu" ба утилитаи objdump барои дастгирии синтаксиси ассемблерҳои GNU ҷудо карда шудааст.
  • Бастаи нав илова карда шуд вақт/tzdata, ки ба шумо имкон медиҳад, ки пойгоҳи додаҳоро бо маълумоти минтақаи вақт ба барнома ворид кунед.
  • Аз матнҳои сарчашма ва ҳуҷҷатҳо хориҷ карда шудааст ибораҳои сафед/рӯйхати сиёҳ ва устод/ғулом, ки ҳоло бо "рӯйхати иҷозат", "рӯйхати блок", "раванд", "pty", "proc" ва "назорат" иваз карда шудаанд.
  • Дар китобхонаи стандартӣ қисми зиёди беҳбудиҳои хурд анҷом дода шуданд.
  • Дастгирии иловагии OpenBSD 6.7 дар режимҳои GOARCH=arm ва GOARCH=arm64 (қаблан танҳо 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

Илова Эзоҳ