Gean programmeartaal release 1.13

Yntrodusearre útjefte fan programmeartaal Gean 1.13, dy't wurdt ûntwikkele troch Google mei de partisipaasje fan 'e mienskip as in hybride oplossing dy't de hege prestaasjes fan kompilearre talen kombineart mei de foardielen fan skripttalen lykas gemak fan skriuwen fan koade, snelheid fan ûntwikkeling en flaterbeskerming. Projektkoade ferspraat troch û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 stand-alone binêre útfierbere triemmen dy't natuerlik rinne sûnder in firtuele masine te brûken (profilearjen, debuggen en oare subsystemen foar deteksje fan runtimeproblemen binne yntegreare as runtime komponinten), wêrtroch jo prestaasjes kinne berikke fergelykber 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.

haad ynnovaasjesyntrodusearre yn 'e Go 1.13 release:

  • It crypto/tls-pakket hat protokol-stipe standert ynskeakele TLS 1.3. Nij pakket tafoege "crypto/ed25519" mei stipe foar Ed25519 digitale hantekeningen;
  • Stipe tafoege foar nije numerike letterlike foarheaksels foar it definiearjen fan binêre getallen (bgl yn grutte oantallen (0_101_0);
  • De beheining op it brûken fan allinich net-ûndertekene tellers yn skiftoperaasjes is fuortsmiten, wat ûnnedige konversaasjes nei it uint-type foarkomt foardat jo de "‹‹" en "››" operators brûke;
  • Stipe tafoege foar it Illumos-platfoarm (GOOS = illumos). Kompatibiliteit mei it platfoarm Android 10 is garandearre. De easken foar de minimale ferzjes fan FreeBSD (11.2) en macOS (10.11 "El Capitan") binne ferhege.
  • Trochgean ûntwikkeling fan it nije module systeem, dat kin brûkt wurde as alternatyf foar GOPATH. Yn tsjinstelling ta earder oankundige plannen yn Go 1.13 is dit systeem net standert ynskeakele en fereasket aktivearring fia de GO111MODULE=on fariabele of it brûken fan in kontekst wêryn modules automatysk tapast wurde. It nije modulesysteem hat yntegreare ferzjestipe, mooglikheden foar pakketlevering, en ferbettere ôfhinklikensbehear. Mei modules binne ûntwikkelders net mear bûn oan it wurkjen binnen in GOPATH-beam, kinne eksplisyt ferzjebewiisde ôfhinklikens definiearje en werheljebere builds meitsje.

    Oars as eardere útjeften wurket automatyske tapassing fan it nije systeem no as in go.mod-bestân oanwêzich is yn 'e aktuele wurkmap of âldermap by it útfieren fan it go-kommando, ynklusyf as it yn' e GOPATH/src-map is. Nije omjouwingsfariabelen binne tafoege: GOPRIVATE, dy't de paden definiearret fan iepenbier tagonklike modules, en GOSUMDB, dy't tagongsparameters oanjout foar de kontrôlesumdatabank foar modules dy't net yn 'e go.sum-bestân steane;

  • It kommando "go" laadt standert modules en kontrolearret har yntegriteit mei de module-spegel- en kontrôlesumdatabase dy't troch Google bewarre wurdt (proxy.golang.org, sum.golang.org en index.golang.org);
  • Stipe foar allinich binêre pakketten is beëinige; it bouwen fan in pakket yn 'e "//go:binary-only-package" modus resultearret no yn in flater;
  • Stipe tafoege foar it efterheaksel "@patch" oan it kommando "go get", wat oanjout dat de module bywurke wurde moat nei de lêste ûnderhâldsrelease, mar sûnder de hjoeddeiske grutte of lytse ferzje te feroarjen;
  • By it opheljen fan modules fan boarnekontrôlesystemen, fiert it kommando "go" no in ekstra kontrôle út op de ferzjestring, en besykje te passen pseudo-ferzjenûmers mei metadata út it repository;
  • Stipe tafoege flater ynspeksje (flater wrapping) troch it meitsjen fan wrappers dy't tastean it brûken fan standert flater handlers. Bygelyks, in flater "e" kin omkeard wurde om flater "w" troch in metoade te leverjen Utpakke, werom "w". Beide flaters "e" en "w" binne beskikber yn it programma en besluten wurde makke basearre op flater "w", mar "e" jout ekstra kontekst oan "w" of ynterpretearret it oars;
  • De prestaasjes fan runtime-komponinten binne optimalisearre (in snelheidsferheging fan maksimaal 30% is opmurken) en in agressiver weromkommen fan ûnthâld nei it bestjoeringssysteem is ymplementearre (earder waard ûnthâld weromjûn nei fiif of mear minuten, mar no direkt nei it ferminderjen fan de heapgrutte).

Boarne: opennet.ru

Add a comment