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

Tərəfindən təqdim edildi proqramlaşdırma dili buraxılışı 1.15 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.15 buraxılışında təqdim edildi:

  • Bağlayıcının işi həm əməliyyat sürətinin artırılmasında, həm də yaddaş istehlakının azaldılmasında, həm də kodun saxlanmasının sadələşdirilməsi istiqamətində xeyli təkmilləşdirilmişdir. ELF icra edilə bilən fayl formatından (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris) istifadə edərək əməliyyat sistemlərində sınaqdan keçirildikdə tipik böyük Go proqramları dəsti 20% daha sürətli quruldu və yaddaş sərfiyyatı orta hesabla 30% azaldı. Artan məhsuldarlıq yeni obyekt fayl formatına keçid və işin paralelləşdirmə səviyyəsini artırmaq üçün daxili mərhələlərin yenidən işlənməsi ilə mümkün olmuşdur. Doğma əlaqələndirici indi linux/amd64 və linux/arm64 sistemlərində "-buildmode=pie" sistemlərində defolt olaraq istifadə olunur ki, bu da artıq C linkerinin istifadəsini tələb etmir.
  • İş müddətində çox sayda CPU nüvəsi olan sistemlərdə kiçik obyektlərin paylanması əhəmiyyətli dərəcədə yaxşılaşdırıldı və gecikmə azaldı. Uğursuzluq halında, ünvanı göstərmək əvəzinə rəqəmli və sətir tipli dəyərlər göstərilir. SIGSEGV, SIGBUS və SIGFPE siqnallarını Go proqramına göndərərkən, os/signal.Notify işləyicisi olmadıqda, proqram yığın izi çıxışı ilə çıxacaq (əvvəllər davranış gözlənilməz idi).
  • Kompilyator zibil kollektoru üçün bəzi metadataların daxil edilməsini və istifadə olunmamış metadataların daha aqressiv təmizlənməsini dayandırmaqla yaradılan icra olunan faylların ölçüsünü orta hesabla 5% azaltmaq üçün optimallaşdırılmışdır.
  • Spectre sinfi hücumlarından qorunmaq üçün kompilyator və assemblerə “-spectre” bayrağı əlavə edilmişdir (əksər proqramlar üçün bu tələb olunmur; seçimi aktivləşdirmək yalnız əsaslandırıla bilər. bəzi çox spesifik hallar).
  • X.509 sertifikatlarında ÜmumiAd sahəsi köhnəlib, Mövzu Alternativ Adları sahəsi yoxdursa, bu daha host adı kimi qəbul edilmir.
  • GOPROXY mühit dəyişənindəki "get" əmri indi vergül və ya "|" ilə ayrılmış çoxsaylı proksiləri siyahıya ala bilər. Siyahıdakı birinci proksi xəta qaytarırsa (404 və ya 410), onda ikinci proksi vasitəsilə əlaqə saxlamağa cəhd ediləcək və s.
  • Baytar yardım proqramı, əgər "x" rün və ya baytdan başqa tam ədəddirsə, sətirdən(x) çevirməyə cəhd barədə xəbərdarlıq əlavə etdi.
  • GNU assembler sintaksisinin sökülməsini dəstəkləmək üçün "-gnu" bayrağı objdump yardım proqramına əlavə edilmişdir.
  • Yeni paket əlavə edildi vaxt/tzdata, bu proqrama vaxt zonası məlumatları ilə verilənlər bazasını inteqrasiya etməyə imkan verir.
  • Mənbə mətnlərindən və sənədlərdən çıxarıldı ağ siyahı/qara siyahı və master/slave ifadələri indi "icazə siyahısı", "blok siyahısı", "proses", "pty", "proc" və "nəzarət" ilə əvəz olunur.
  • Standart kitabxanada kiçik təkmilləşdirmələrin böyük bir hissəsi edildi.
  • GOARCH=arm və GOARCH=arm6.7 rejimlərində OpenBSD 64 üçün əlavə dəstək (əvvəllər yalnız GOARCH=386 və GOARCH=amd64 dəstəklənirdi).
  • 64 bitlik RISC-V platformasının (GOOS=linux, GOARCH=riscv64) inkişafı davam etdi.
  • 32 bitlik x86 sistemləri üçün növbəti buraxılış minimum sistem tələblərini yüksəldəcək - yalnız SSE2 ilə prosessorlar dəstəklənməyə davam edəcək. GOARCH=386 rejimində qurmaq üçün sizə ən azı Intel Pentium 4 (2000-ci ildə buraxılıb) və ya AMD Opteron/Athlon 64 (2003-cü ildə buraxılıb) lazımdır.

Mənbə: opennet.ru

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