Go programmeringssprog udgivelse 1.13

Introduceret udgivelse af programmeringssprog Gå 1.13, som udvikles af Google med deltagelse af fællesskabet som en hybridløsning, der kombinerer den høje ydeevne af kompilerede sprog med fordelene ved scriptsprog, såsom nem at skrive kode, hastighed på udvikling og fejlbeskyttelse. Projektkode distribueret af under BSD-licensen.

Go's syntaks er baseret på velkendte elementer fra C-sproget med nogle lån fra Python-sproget. Sproget er ret kortfattet, men koden er let at læse og forstå. Go-kode er kompileret til selvstændige binære eksekverbare filer, der kører native uden brug af en virtuel maskine (profilering, fejlfinding og andre undersystemer til registrering af runtime-problem er integreret som runtime komponenter), som giver dig mulighed for at opnå ydeevne, der kan sammenlignes med C-programmer.

Projektet er oprindeligt udviklet med henblik på multi-threaded programmering og effektiv drift på multi-core systemer, herunder at give operatør-niveau midler til at organisere parallel computing og interaktion mellem parallel-eksekverede metoder. Sproget giver også indbygget beskyttelse mod overallokerede hukommelsesblokke og giver mulighed for at bruge en skraldeopsamler.

The main innovationerintroduceret i Go 1.13-udgivelsen:

  • crypto/tls-pakken har protokolunderstøttelse aktiveret som standard TLS 1.3. Tilføjet ny pakke "crypto/ed25519" med understøttelse af Ed25519 digitale signaturer;
  • Tilføjet understøttelse af nye numeriske bogstavelige præfikser til at definere binære tal (f.eks. 0b101), oktal (0o377), imaginær (2.71828i) og hexadecimal flydende komma (0x1p-1021), og muligheden for at bruge tegnet "_" til visuelt at adskille cifre i stort antal (1_000_000);
  • Begrænsningen for kun at bruge usignerede tællere i skiftoperationer er blevet fjernet, hvilket undgår unødvendige konverteringer til uint-typen før brug af "‹‹" og "››" operatorerne;
  • Tilføjet understøttelse af Illumos-platformen (GOOS=illumos). Kompatibilitet med Android 10 platformen er sikret. Kravene til minimumsversionerne af FreeBSD (11.2) og macOS (10.11 “El Capitan”) er blevet øget.
  • Fortsat udvikling af det nye modulsystem, som kan bruges som alternativ til GOPATH. I modsætning til tidligere annoncerede planer i Go 1.13 er dette system ikke aktiveret som standard og kræver aktivering gennem GO111MODULE=on-variablen eller brug af en kontekst, hvor moduler anvendes automatisk. Det nye modulsystem byder på integreret versionssupport, pakkeleveringsfunktioner og forbedret afhængighedsstyring. Med moduler er udviklere ikke længere bundet til at arbejde inden for et GOPATH-træ, kan eksplicit definere versionsafhængige afhængigheder og oprette gentagelige builds.

    I modsætning til tidligere udgivelser fungerer automatisk anvendelse af det nye system nu, når en go.mod-fil er til stede i den aktuelle arbejdsmappe eller det overordnede bibliotek, når man kører go-kommandoen, inklusive når den er i GOPATH/src-mappen. Nye miljøvariabler er blevet tilføjet: GOPRIVATE, som definerer stierne til offentligt tilgængelige moduler, og GOSUMDB, som specificerer adgangsparametre til checksum-databasen for moduler, der ikke er opført i go.sum-filen;

  • Kommandoen "go" indlæser som standard moduler og kontrollerer deres integritet ved hjælp af modulspejlet og kontrolsumdatabasen, der vedligeholdes af Google (proxy.golang.org, sum.golang.org og index.golang.org);
  • Understøttelse af kun binære pakker er afbrudt; opbygning af en pakke i tilstanden "//go:binær-kun-pakke" resulterer nu i en fejl;
  • Tilføjet understøttelse af "@patch"-suffikset til "go get"-kommandoen, hvilket indikerer, at modulet skal opdateres til den seneste vedligeholdelsesudgivelse, men uden at ændre den aktuelle større eller mindre version;
  • Når moduler hentes fra kildekontrolsystemer, udfører "go"-kommandoen nu en ekstra kontrol på versionsstrengen, der forsøger at matche pseudoversionsnumre med metadata fra depotet;
  • Tilføjet support fejlinspektion (fejlombrydning) gennem oprettelse af indpakninger, der tillader brug af standard fejlbehandlere. For eksempel, fejl "e" kan ombrydes omkring fejlen "w" ved at tilvejebringe en metode Pak ud, returnerer "w". Begge fejl "e" og "w" er tilgængelige i programmet, og beslutninger træffes baseret på fejl "w", men "e" giver yderligere kontekst til "w" eller fortolker det anderledes;
  • Ydeevnen af ​​runtime-komponenter er blevet optimeret (en hastighedsstigning på op til 30 % er blevet noteret), og en mere aggressiv tilbagevenden af ​​hukommelse til operativsystemet er blevet implementeret (tidligere blev hukommelse returneret efter fem eller flere minutter, men nu med det samme efter at have reduceret bunkestørrelsen).

Kilde: opennet.ru

Tilføj en kommentar