Ferzje fan 'e Go-programmeartaal 1.19

De frijlitting fan 'e Go 1.19 programmeartaal wurdt presintearre, dy't wurdt ûntwikkele troch Google mei de partisipaasje fan' e mienskip as in hybride oplossing dy't de hege prestaasjes fan kompilearre talen kombinearret mei sokke foardielen fan skripttalen as gemak fan skriuwen fan koade , snelheid fan ûntwikkeling en flaterbeskerming. De projektkoade wurdt ferspraat ûnder de BSD-lisinsje.

De syntaksis fan Go is basearre op bekende eleminten fan 'e C-taal mei guon lienen út' e Python-taal. De taal is frij beknopt, mar de koade is maklik te lêzen en te begripen. Go-koade is kompilearre yn aparte binêre útfierbere bestannen dy't natuerlik rinne, sûnder it brûken fan in firtuele masine (profilearjen, debuggen modules en oare subsystemen foar deteksje fan runtimeproblemen binne yntegreare as runtime-komponinten), wêrtroch prestaasjes fergelykber binne mei C-programma's.

It projekt is yn earste ynstânsje ûntwikkele mei it each op multi-threaded programmearring en effisjinte operaasje op multi-core systemen, ynklusyf it jaan fan operator-nivo middels foar it organisearjen fan parallel computing en ynteraksje tusken parallel útfierd metoaden. De taal biedt ek ynboude beskerming tsjin oerallokearre ûnthâldblokken en jout de mooglikheid om in garbage collector te brûken.

Under de feroaringen yn 'e nije release:

  • Der is wurk dien om de stipe foar generike funksjes en typen (generika) te skerpjen dy't yn 'e lêste release tafoege binne, mei help fan in ûntwikkelder kin funksjes definiearje en brûke dy't ûntwurpen binne om mei ferskate soarten tagelyk te wurkjen. Optimalisaasje is útfierd - de prestaasjes fan guon programma's mei generika binne mei 20% ferhege.
  • Dokumintearjende opmerkings hawwe stipe tafoege foar keppelings, listen, en ienfâldiger syntaksis foar it definiearjen fan kopteksten. It hulpprogramma gofmt leveret opmaak dy't rekken hâldt mei de útwreide mooglikheden fan opmerkings mei API-dokumintaasje.
  • It ûnthâldmodel foar de Go-taal is feroare om konsistint te wêzen mei de modellen fan C, C++, Java, JavaScript, Rust, en Swift-talen dy't gjin opfolgjende konsekwinte atomêre wearden stypje. Om it makliker te meitsjen om atomyske wearden te brûken, biedt it sync/atomic pakket nije soarten lykas atomic.Int64 en atomic.Pointer[T]. De feroaring fan it ûnthâldmodel hat gjin ynfloed op komptabiliteit mei earder skreaune koade.
  • Om de feiligens te ferbetterjen, nimt de os/exec-module no gjin rekken mei relative paden by it útwreidzjen fan de PATH-omjouwingsfariabele (bygelyks by it bepalen fan it paad foar in útfierber bestân, wurdt de aktuele map net mear kontrolearre).
  • De garbage collector hat no de mooglikheid om sêfte ûnthâld grinzen te definiearjen, dy't tapast wurde troch it beheinen fan de heapgrutte en it werombringen fan ûnthâld nei it systeem mear agressyf, d.w.s. It is net garandearre dat konsumpsje sil wêze binnen oantsjutte grinzen ûnder alle betingsten. Sêfte grinzen kinne nuttich wêze foar it optimalisearjen fan programma's dy't rinne yn konteners mei in fêste ûnthâldgrutte.
  • In nije "unix" bouwbeheining tafoege dy't brûkt wurde kin yn "go:build" rigels om Unix-like systemen út te filterjen (aix, android, darwin, dragonfly, freebsd, hurd, illumos, ios, linux, netbsd, openbsd, solaris ).
  • Tal fan prestaasjesoptimalisaasjes binne ymplementearre. Stipe tafoege foar dynamysk ynstellen fan de koroutine-stapelgrutte om de grutte fan kopieare gegevens te ferminderjen. Op Unix-systemen is automatysk gebrûk fan ekstra triembeskriuwers ymplementearre (it fergrutsjen fan de RLIMIT_NOFILE-limyt). Foar it rapperjen fan grutte switch-útdrukkingen op x86-64- en ARM64-systemen wurde sprongtabellen brûkt, wêrtroch grutte switch-útdrukkingen oant 20% flugger kinne wurde ferwurke. Op riscv64-systemen wurde funksje-arguminten troch CPU-registers trochjûn, wat in prestaasjeferheging fan sawat 10% mooglik makket.
  • Eksperimintele stipe tafoege Linux-окружений на системах с процессорами Loongson на базе 64-разрядной архитектуры LoongArch (GOARCH=loong64).

Boarne: opennet.ru

Keapje betroubere hosting foar siden mei DDoS-beskerming, VPS VDS-tsjinners 🔥 Keapje betroubere websidehosting mei DDoS-beskerming, VPS VDS-tsjinners | ProHoster