Lëshimi i gjuhës së programimit Go 1.13

Të paraqitura lëshimi i gjuhës së programimit Go 1.13, e cila zhvillohet nga kompania Google me pjesëmarrjen e komunitetit si një zgjidhje hibride që kombinon performancën e lartë të gjuhëve të kompilimit me avantazhet e gjuhëve skriptuese, siç janë lehtësia në shkruarjen e kodit, shpejtësia e zhvillimit dhe mbrojtja nga gabimet. Kodi i projektit distribuohet nën licencën BSD.

Sintaksa e Go bazohet në elementët e njohur të gjuhës C me huazime të veçanta nga gjuha Python. Gjuha është mjaft e shkurtër, por kodi lexohet dhe perceptohet lehtë. Kodi në gjuhën Go kompillet në skedarë binarë ekzekutivë të veçantë, që ekzekutohen në mënyrë lokale pa përdorimin e një makine virtuale (modulet e profilizimit, depurimit dhe nën-sistemet e tjera të zbulimit të problemeve në fazën e ekzekutimit integrohen si komponentë të runtime), e cila mundëson arritjen e performancës të krahasueshme me programet në gjuhën C.

Projekti zhvillohet fillimisht me fokus në programimin me shumë procese dhe funksionimin efikas në sisteme me shumë bërthama, duke ofruar gjithashtu mjete të implementuara në nivelin e operatorëve për organizimin e llogaritjeve paralel dhe ndërveprimin ndërmjet metodave që ekzekutohen paralelisht. Gjuha gjithashtu ofron mjete të integruara mbrojtjeje nga dalja jashtë zonave të lejuara të blloqeve të alokuar të memorjes dhe siguron mundësinë e përdorimit të një mbledhësi të plehrave.

Ndryshimet kryesore risitë, të prezantuara në lëshimin Go 1.13:

  • Në paketën crypto/tls është përfshirë përkrahja për protokollin TLS 1.3. Është shtuar një paketë e re «crypto/ed25519» me përkrahje për nënshkrime digjitale Ed25519;
  • Shtuar mbështetje përPrefikset e reja të literalëve dixhitalë për përcaktimin e numrave binarë (p.sh., 0b101), të numrave oktonalë (0o377), të numrave kompleksë (2.71828i) dhe të numrave hexadecimalë me pikë lëvizëse (0x1p-1021). Gjithashtu, mundësuar përdorimi i simbolit «_» për ndarjen e qartë të shifrave në numrat e mëdhenj (1_000_000);
  • Hequr kufizimi për përdorimin e vetëm numrave të paqenë në operacionet e zhvendosjes, duke lejuar shmangien e konvertimeve të panevojshme në tipin uint para se të përdoren operatorët «‹‹» dhe «››»;
  • Shtuar mbështetje për platformën Illumos (GOOS=illumos). Siguruar pajtueshmëri me platformën Android 10. Rritur kërkesat për versionet minimale të FreeBSD (11.2) dhe macOS (10.11 «El Capitan»).
  • Vazhdon përmirësimi i sistemit të ri të moduleve, i cili mund të përdoret si një alternativë për GOPATH. Pavarësisht planeve të mëparshme, në Go 1.13 ky sistem nuk është përfshirë si parazgjedhje dhe kërkon aktivizim përmes variablës GO111MODULE=on ose përdorimin e një konteksti në të cilin modulet përdoren automatikisht. Sistemi i ri i moduleve karakterizohet nga mbështetje e integruar për versionimin, mjetet e shpërndarjes së paketave dhe një sistem të përmirësuar për menaxhimin e varësive. Me ndihmën e moduleve, zhvilluesit nuk janë më të lidhur me punën brenda pemës së GOPATH, mund të përcaktojnë qartë varësitë me konsideratën e versioneve dhe të krijojnë ndërtime të ripërtëritshme.

    Ndryshe nga lëshimet e kaluara, aplikimi automatik i sistemit të ri tani aktivizohet kur, gjatë ekzekutimit të komandës go, në katalogun aktual të punës ose në një katalog prindor është i pranishëm një skedar go.mod, përfshirë kur ndodhen në katalogun GOPATH/src. Janë shtuar variablat e rinj të mjedisit: GOPRIVATE, i cili përcakton rrugët e moduleve të paarritshme publikisht, dhe GOSUMDB, i cili përcakton parametrat e aksesit në bazën e kontrolleve të moduleve që nuk janë listuar në skedarin go.sum;

  • В команде «go» по умолчанию обеспечена загрузка модулей и проверка их целостности, используя зеркало модулей и базу контрольных сумм, поддерживаемые компанией Google (proxy.golang.org, sum.golang.org и index.golang.org);
  • Прекращена поддержка только бинарных пакетов, сборка пакета в режиме «//go:binary-only-package» теперь приводит к выводу ошибки;
  • В команду «go get» добавлена поддержка суффикса «@patch», указывающего, что модуль должен быть обновлён до последнего корректирующего выпуска, но без смены текущей значительной или промежуточной версии;
  • При извлечении модулей из систем контроля версий команда «go» теперь выполняет дополнительную проверку строки с номером версии, пытаясь сопоставить номера псевдо-версий с метаданным из репозитория;
  • Shtuar mbështetje për инспектирования ошибок (error wrapping) через создание обёрток, позволяющих использовать типовые обработчики ошибок. Например, gabim «e» может быть обёрнута над ошибкой «w» через предоставление метода Unwrap, duke kthen «w». Të dyja gabimet «e» dhe «w» janë të disponueshme në program dhe vendimet merren në bazë të gabimit «w», por «e» ofron kontekst shtesë për «w» ose e interpreton atë ndryshe;
  • Është optimizuar performanca e komponenteve runtime (shënohet një rritje shpejtësie deri në 30%) dhe është angazhuar një rikthim më agresiv i memories në sistemin operativ (më parë memoria kthehej pas pesë minutash e më shumë, ndërsa tani menjëherë pas reduktimit të madhësisë së heap-it).

Burimi: opennet.ru

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster