Go программалоо тили релиз 1.13

киргизилген программалоо тили чыгаруу Go 1.13, Google тарабынан коомчулуктун катышуусу менен иштелип чыккан гибриддик чечим катары компиляцияланган тилдердин жогорку натыйжалуулугун скрипт тилдеринин артыкчылыктары менен, мисалы, код жазуунун оңойлугу, иштеп чыгуу ылдамдыгы жана каталардан коргоо. Долбоор коду жайылуу BSD лицензиясы боюнча.

Go синтаксиси Python тилинен алынган кээ бир C тилинин тааныш элементтерине негизделген. Тили абдан кыска, бирок кодду окуу жана түшүнүү оңой. 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” режиминде куруу азыр катага алып келет;
  • "Get get" буйругуна "@patch" суффиксине колдоо кошулду, бул модулдун эң акыркы тейлөө релизине жаңыртылуусу керектигин, бирок учурдагы негизги же кичине версиясын өзгөртпөстөн;
  • Булак башкаруу тутумдарынан модулдарды чыгарып жатканда, "go" буйругу эми версия сабында кошумча текшерүүнү жүзөгө ашырат, псевдо-версия номерлерин репозиторийдеги метаберилиштер менен дал келтирүүгө аракет кылат;
  • Кошулган колдоо ката текшерүү (ката ороо) стандарттык ката иштетүүчүлөрдү колдонууга мүмкүндүк берүүчү орогучтарды түзүү аркылуу. Мисалы, ката "e" ыкмасын камсыз кылуу менен "w" катасынын айланасына оролгон болот Оруу, "w" кайтып келет. "e" жана "w" каталары программада бар жана чечимдер "w" катасынын негизинде кабыл алынат, бирок "e" "w" үчүн кошумча контекстти берет же аны башкача чечмелейт;
  • Иштөө убактысынын компоненттеринин иштеши оптималдаштырылган (30% га чейин ылдамдыктын өсүшү байкалган) жана эстутумдун операциялык тутумга агрессивдүү кайтарылышы ишке ашырылган (мурда эстутум беш же андан көп мүнөттөн кийин кайтарылган, бирок азыр дароо үймөктүн көлөмүн азайткандан кийин).

Source: opennet.ru

Комментарий кошуу