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

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

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

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

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

  • Бастаи crypto/tls дорои дастгирии протокол мебошад, ки бо нобаёнӣ фаъол аст TLS 1.3. Бастаи нави "crypto/ed25519" бо дастгирии имзоҳои рақамии 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, ки роҳҳои модулҳои дастраси оммаро муайян мекунад ва GOSUMDB, ки параметрҳои дастрасӣ ба махзани маблағи чекро барои модулҳое, ки дар файли go.sum номбар нашудаанд, муайян мекунад;

  • Фармони "go" ба таври пешфарз модулҳоро бор мекунад ва якпорчагии онҳоро бо истифода аз оинаи модул ва махзани чеки аз ҷониби Google нигоҳ дошташуда месанҷад (proxy.golang.org, sum.golang.org ва index.golang.org);
  • Дастгирии танҳо бастаҳои дуӣ қатъ карда шуд; сохтани баста дар реҷаи “//go:binary-only-package” ҳоло ба хатогӣ оварда мерасонад;
  • Дастгирии иловашуда барои суффикси "@patch" ба фармони "go get", ки нишон медиҳад, ки модул бояд ба версияи охирини нигоҳдорӣ навсозӣ шавад, аммо бидуни тағир додани версияи ҷории асосӣ ё хурд;
  • Ҳангоми дарёфти модулҳо аз системаҳои идоракунии манбаъ, фармони "рафта" ҳоло санҷиши иловагиро дар сатри версия анҷом медиҳад ва кӯшиш мекунад, ки рақамҳои псевдо-версияро бо метамаълумот аз анбор мувофиқ созад;
  • Дастгирии иловашуда санҷиши хато (печонидани хатогӣ) тавассути эҷоди бастабандҳое, ки ба истифодаи коркардкунандагони хатоҳои стандартӣ имкон медиҳанд. Барои намуна, хато "e" метавонад бо роҳи пешниҳод кардани усул ба хатогии "w" печонида шавад Кушодани, баргардонидани "w". Ҳарду хатоҳои "e" ва "w" дар барнома мавҷуданд ва қарорҳо дар асоси хатои "w" қабул карда мешаванд, аммо "e" контексти иловагиро ба "w" таъмин мекунад ё онро ба таври дигар шарҳ медиҳад;
  • Фаъолияти ҷузъҳои вақти корӣ оптимизатсия карда шуд (афзоиши суръат то 30% қайд карда шуд) ва бозгашти хашмгинтари хотира ба системаи оператсионӣ амалӣ карда шуд (қаблан, хотира пас аз панҷ ё зиёда дақиқа баргардонида мешуд, аммо ҳоло фавран пас аз кам кардани андозаи теппа).

Манбаъ: opennet.ru

Илова Эзоҳ