Нашри забони барномасозии Go 1.14

муаррифӣ карда шуд нашри забони барномасозӣ 1.14 равед, ки аз ҷониби Google бо иштироки ҷомеа ҳамчун як ҳалли гибридӣ таҳия шудааст, ки иҷрои баланди забонҳои тартибдодашударо бо бартариҳои забонҳои скриптӣ, ба монанди осонии навиштани код, суръати таҳия ва муҳофизати хатогиҳо муттаҳид мекунад. Рамзи лоиҳа паҳн мекунад таҳти иҷозатномаи BSD.

Синтаксиси Go ба унсурҳои шиноси забони Си бо баъзе қарзҳо аз забони Python асос ёфтааст. Забон хеле мухтасар аст, аммо кодро хондан ва фаҳмидан осон аст. Рамзи Go ба файлҳои иҷрошавандаи бинарии мустақил тартиб дода мешавад, ки бе истифодаи мошини виртуалӣ кор мекунанд (профилсозӣ, ислоҳкунӣ ва дигар зерсистемаҳои муайянкунии мушкилоти вақти корӣ ҳамчун ҷузъҳои вақти корӣ), ки ба шумо имкон медиҳад, ки нишондиҳандаҳои муқоисашаванда бо барномаҳои C ба даст оред.

Лоиҳа дар ибтидо бо назардошти барномасозии бисёрсоҳавӣ ва кори муассир дар системаҳои бисёраслӣ, аз ҷумла таъмини воситаҳои сатҳи оператор барои ташкили ҳисобҳои параллелӣ ва ҳамкорӣ байни усулҳои параллелӣ иҷрошуда таҳия шудааст. Забон инчунин муҳофизати дохилиро аз блокҳои хотираи аз ҳад зиёд ҷудошуда таъмин мекунад ва қобилияти истифодаи коллектори партовҳоро таъмин мекунад.

асосӣ навовариҳодар нашри Go 1.14 муаррифӣ шудааст:

  • Системаи нави модул дар фармони "рафта" барои истифодаи умумӣ омода эълон шудааст, ба таври нобаёнӣ фаъол аст ва барои идоракунии вобастагӣ ба ҷои GOPATH тавсия мешавад. Системаи модули нав дорои дастгирии ҳамгирошудаи версия, имкониятҳои интиқоли бастаҳо ва идоракунии беҳтаршудаи вобастагӣ мебошад. Бо модулҳо, таҳиягарон дигар ба кор дар дохили дарахти GOPATH алоқаманд нестанд, метавонанд вобастагии версияи возеҳро муайян кунанд ва сохтани такроршавандаро эҷод кунанд.
  • Илова карда шуд дастгирии дохилкунии интерфейсҳо бо маҷмӯи усулҳои такроршаванда. Усулҳои интерфейси дарунсохт акнун метавонанд ҳамон номҳо ва имзоҳоро бо усулҳои интерфейсҳои мавҷуда дошта бошанд. Усулҳои ошкоро эълоншуда мисли пештара беназир боқӣ мемонанд.
  • Иҷрои ифодаи "таъхиргузор" такмил дода шуда, онро тақрибан ба мисли занги бевоситаи функсияи таъхиршуда суръат мебахшад ва имкон медиҳад, ки иҷрои вазифаи таъхиршуда дар коди ҳассос ба иҷроиш имкон диҳад.
  • Пешгирии асинхронии корутинҳо (горутинҳо) таъмин карда мешавад - ҳалқаҳое, ки зангҳои функсионалӣ надоранд, ҳоло метавонанд ба бунбасти нақшакаш оварда расонанд ё оғози ҷамъоварии ахлотро таъхир кунанд.
  • Самаранокии системаи тақсимоти саҳифаҳои хотира беҳтар карда шуд ва ҳоло дар конфигуратсияҳо бо арзишҳои бузурги GOMAXPROCS ихтилофҳои қулф ба таври назаррас камтаранд. Дар натиҷа, кам шудани таъхир ва афзоиши интиқол ҳангоми ҳамзамон бошиддат тақсим кардани блокҳои бузурги хотира мебошад.
  • Қулфкунӣ оптимизатсия карда шуд ва шумораи гузаришҳои контекстӣ ҳангоми иҷро кардани таймерҳои дохилӣ, ки дар функсияҳои time.After, time.Tick, net.Conn.SetDeadline истифода мешаванд, кам карда шуд.
  • Дар фармони go, парчами "-mod=vendor" ба таври нобаёнӣ фаъол карда мешавад, агар дар реша феҳристи фурӯшанда мавҷуд бошад, ки барои интиқоли вобастагии беруна ба фурӯшандаи мушаххас пешбинӣ шудааст. Барои бор кардани модулҳо аз кэши модул, на аз директорияи "фурӯшанда" парчами алоҳидаи "-mod=mod" илова карда шуд. Агар файли go.mod танҳо барои хондан бошад, парчами "-mod=lyreadonly" ба таври нобаёнӣ муқаррар карда мешавад, агар директорияи боло "фурӯшанда" вуҷуд надошта бошад. Парчами "-modfile=file" илова карда шуд, то файли алтернативии go.mod ба ҷои файле, ки дар феҳристи решаи модул муайян карда шудааст.
  • Илова кардани тағирёбандаи муҳити GOINSECURE, вақте ки муқаррар карда мешавад, фармони go истифодаи HTTPS-ро талаб намекунад ва ҳангоми боркунии модулҳо бевосита тафтиши сертификатро мегузарад.
  • Компилятор парчами “-d=checkptr”-ро илова кардааст, ки бо нобаёнӣ фаъол аст, то кодро мувофиқат бо қоидаҳои истифодаи бехатари unsafe.Pointer тафтиш кунад.
  • Ба интиқол бастаи нав дохил карда шудааст hash/maphash бо функсияҳои хэш-криптографӣ барои сохтани ҷадвалҳои ҳаш барои пайдарпаии байтҳои худсарона ё сатрҳо.
  • Дастгирии таҷрибавӣ барои платформаи 64-бита RISC-V дар Linux илова карда шуд.
  • Дастгирии иловагӣ барои FreeBSD дар системаҳои 64-битии ARM.

Манбаъ: opennet.ru

Илова Эзоҳ