Go proqramlaşdırma dili buraxılışı 1.13

Tərəfindən təqdim edildi proqramlaşdırma dili buraxılışı 1.13 gedin, Google tərəfindən cəmiyyətin iştirakı ilə tərtib edilmiş dillərin yüksək performansını kod yazma asanlığı, inkişaf sürəti və səhvlərdən qorunma kimi skript dillərinin üstünlükləri ilə birləşdirən hibrid bir həll kimi hazırlanır. Layihə kodu yayılır BSD lisenziyası altında.

Go sintaksisi Python dilindən bəzi borclar ilə C dilinin tanış elementlərinə əsaslanır. Dil olduqca yığcamdır, lakin kodu oxumaq və başa düşmək asandır. Go kodu virtual maşından istifadə etmədən yerli olaraq işləyən müstəqil ikili icra edilə bilən proqramlarda tərtib edilir (profilləşdirmə, sazlama və digər işləmə zamanı problemlərin aşkarlanması alt sistemləri aşağıdakı kimi inteqrasiya olunur). icra vaxtı komponentləri), C proqramları ilə müqayisə edilə bilən performansa nail olmağa imkan verir.

Layihə ilkin olaraq çox yivli proqramlaşdırma və çoxnüvəli sistemlərdə səmərəli əməliyyat, o cümlədən paralel hesablamaların təşkili və paralel icra edilən metodlar arasında qarşılıqlı əlaqə üçün operator səviyyəsində həyata keçirilən vasitələrin təmin edilməsi ilə hazırlanmışdır. Dil ayrıca ayrılmış yaddaş bloklarının həddindən artıq yüklənməsinə qarşı daxili qoruma təmin edir və zibil kollektorundan istifadə etmək imkanı verir.

Əsas yeniliklərGo 1.13 buraxılışında təqdim edildi:

  • Crypto/tls paketində standart olaraq aktivləşdirilmiş protokol dəstəyi var TLS 1.3. Ed25519 rəqəmsal imza dəstəyi ilə yeni "crypto/ed25519" paketi əlavə edildi;
  • İkilik ədədləri (məsələn, 0b101), səkkizliyi (0o377), xəyali (2.71828i) və onaltılıq üzən nöqtəni (0x1p-1021) və rəqəmləri vizual olaraq ayırmaq üçün "_" simvolundan istifadə etmək qabiliyyətini təyin etmək üçün yeni rəqəmli hərfi prefikslər üçün əlavə dəstək çox sayda (1_000_000);
  • “‹‹” və “››” operatorlarından istifadə etməzdən əvvəl uint tipinə lazımsız çevrilmələrin qarşısını alan növbə əməliyyatlarında yalnız imzasız sayğaclardan istifadə məhdudiyyəti aradan qaldırıldı;
  • Illumos platforması üçün əlavə dəstək (GOOS=illumos). Android 10 platforması ilə uyğunluq təmin edilib.FreeBSD (11.2) və macOS (10.11 “El Capitan”) minimum versiyaları üçün tələblər artırılıb.
  • GOPATH-a alternativ olaraq istifadə edilə bilən yeni modul sisteminin davamlı inkişafı. Go 1.13-də əvvəlcədən elan edilmiş planlardan fərqli olaraq, bu sistem defolt olaraq işə salınmır və GO111MODULE=on dəyişəni vasitəsilə aktivləşdirməni və ya modulların avtomatik tətbiq olunduğu kontekstdən istifadəni tələb edir. Yeni modul sistemi inteqrasiya edilmiş versiya dəstəyini, paketlərin çatdırılma imkanlarını və təkmilləşdirilmiş asılılığın idarə edilməsini təmin edir. Modullarla tərtibatçılar artıq GOPATH ağacında işləməyə bağlı deyillər, versiyalı asılılıqları açıq şəkildə müəyyən edə və təkrarlanan quruluşlar yarada bilərlər.

    Əvvəlki buraxılışlardan fərqli olaraq, yeni sistemin avtomatik tətbiqi indi go.mod faylı GOPATH/src qovluğunda olan zaman da daxil olmaqla, go əmri işlədərkən cari işçi kataloqda və ya əsas kataloqda olduqda işləyir. Yeni mühit dəyişənləri əlavə edildi: ictimaiyyət üçün açıq olan modulların yollarını təyin edən GOPRIVATE və go.sum faylında qeyd olunmayan modullar üçün yoxlama məbləği verilənlər bazasına giriş parametrlərini təyin edən GOSUMDB;

  • Defolt olaraq "get" əmri modulları yükləyir və onların bütövlüyünü Google tərəfindən saxlanılan modul güzgüsü və yoxlama məbləği verilənlər bazasından istifadə edərək yoxlayır (proxy.golang.org, sum.golang.org və index.golang.org);
  • Yalnız ikili paketlərə dəstək dayandırıldı, paketin “//go:yalnız-ikili paket” rejimində qurulması indi xəta ilə nəticələnir;
  • "Get get" əmrinə "@patch" şəkilçisi üçün əlavə dəstək əlavə edildi, bu modulun ən son texniki xidmət buraxılışına yenilənməsini, lakin cari əsas və ya kiçik versiyanı dəyişdirmədən yenilənməsini göstərir;
  • Mənbə idarəetmə sistemlərindən modulları əldə edərkən "get" əmri indi versiya sətirində əlavə yoxlama aparır, psevdoversiya nömrələrini depodan metadata ilə uyğunlaşdırmağa çalışır;
  • Əlavə dəstək səhv yoxlama standart xəta idarəçilərindən istifadə etməyə imkan verən sarğıların yaradılması yolu ilə (səhv paketi). Misal üçün, səhv "e" metodu təqdim etməklə "w" xətasına sarıla bilər Açın, "w" qaytarır. Hər iki səhv "e" və "w" proqramda mövcuddur və qərarlar "w" xətası əsasında qəbul edilir, lakin "e" "w" üçün əlavə kontekst təmin edir və ya onu fərqli şəkildə şərh edir;
  • İş vaxtı komponentlərinin performansı optimallaşdırılıb (sürətin 30%-ə qədər artması qeyd edilib) və yaddaşın əməliyyat sisteminə daha aqressiv qaytarılması həyata keçirilib (əvvəllər yaddaş beş və ya daha çox dəqiqədən sonra qaytarılırdı, indi isə dərhal yığın ölçüsünü azaltdıqdan sonra).

Mənbə: opennet.ru

Добавить комментарий