Go 1.19 is al uitgebracht en dit is het nieuws

onlangs de release van de nieuwe versie van de programmeertaal «Go 1.19» werd aangekondigd, een versie die de vorige release verbetert door verschillende verbeteringen en vooral bugfixes toe te voegen.Van de nieuwigheden die we kunnen benadrukken zijn onder andere de verbeteringen in geheugenbeheer, beveiligingsverbeteringen.

Voor degenen die nieuw zijn bij Go, moet u weten dat dit een programmeertaal is die is ontwikkeld met de deelname van de gemeenschap als een hybride oplossing die de hoge prestaties van gecompileerde talen combineert met voordelen zoals scripttalen zoals het gemak van het schrijven van code, ontwikkeling en bescherming tegen bugs.

De syntaxis van Go is gebaseerd op de gebruikelijke elementen van de C-taal. met enkele leningen uit de Python-taal. De taal is vrij beknopt, maar de code is gemakkelijk te lezen en te begrijpen.

Go-code is gecompileerd in afzonderlijke binaire uitvoerbare bestanden die native worden uitgevoerd, zonder gebruik te maken van een virtuele machine (profilering, foutopsporing en andere subsystemen voor runtime-probleemoplossing zijn ingebouwd als runtime-componenten).

Ga naar 1.19 hoofdnieuws

In deze nieuwe versie van Go 1.19 die wordt gepresenteerd, wordt benadrukt dat: er is gewerkt aan het verfijnen van de ondersteuning voor functies en generieke typen toegevoegd in de nieuwste versie, met behulp waarvan de ontwikkelaar functies kan definiëren en gebruiken die zijn ontworpen om met verschillende typen tegelijk te werken, plus prestatie-optimalisatie van sommige programma's die generieke geneesmiddelen gebruiken, is met 20% verhoogd.

Een andere verandering die opvalt ten opzichte van de nieuwe versie is dat ondersteuning toegevoegd voor koppelingen, lijsten en eenvoudigere syntaxis om koppen in documentopmerkingen te definiëren. Het hulpprogramma gofmt biedt opmaak met de geavanceerde functies van opmerkingen in gedachten met de API-documentatie.

buiten dat herzien Go-geheugenmodel om af te stemmen op C, C++, Java, JavaScript, Rust en Swift die geen sequentieel consistente atomaire waarden toelaten. Nieuwe typen zoals atomic.Int64 en atomic.Pointer[T] zijn geïntroduceerd in het sync/atomic-pakket om het gebruik van atomaire waarden gemakkelijker te maken.

Aan de andere kant wordt ook vermeld dat Garbage Collector heeft nu de mogelijkheid om zachte limieten te definiëren, die worden afgedwongen door de grootte van de heap te beperken en het geheugen agressiever aan het systeem terug te geven, dat wil zeggen dat het verbruik niet onder alle omstandigheden gegarandeerd binnen de gespecificeerde limieten blijft. Zachte limieten kunnen handig zijn voor het optimaliseren van programma's die in vaste geheugencontainers worden uitgevoerd.

Dat wordt ook benadrukt op Unix-systemen worden automatisch extra bestandsdescriptors ingeschakeld (verhoging van de RLIMIT_NOFILE-limiet), om grote wijzigingsuitdrukkingen op x86-64- en ARM64-systemen te versnellen, worden sprongtabellen gebruikt, waarmee grote wijzigingsuitdrukkingen tot 20% sneller kunnen worden verwerkt.

Op riscv64-systemen werd het doorgeven van functieargumenten via CPU-registers geïmplementeerd, wat een prestatieverbetering van ongeveer 10% mogelijk maakte.

Van de andere veranderingen die zich onderscheiden van deze nieuwe versie:

  • Er zijn tal van prestatie-optimalisaties doorgevoerd.
  • Ondersteuning toegevoegd voor het dynamisch instellen van de routine-stackgrootte om de grootte van de gekopieerde gegevens te verkleinen
  • Experimentele ondersteuning toegevoegd voor Linux-omgevingen op systemen met Loongson-processors op basis van de 64-bits LoongArch-architectuur (GOARCH=loong64).
  • Het wijzigen van het geheugenmodel had geen invloed op de compatibiliteit met eerder geschreven code.
  • Een nieuwe "unix"-buildbeperking toegevoegd die kan worden gebruikt in "go:build"-regels om Unix-achtige systemen uit te filteren (aix, android, darwin, dragonfly, freebsd, hurd, illumos, ios, linux, netbsd, openbsd, solaris ).
  • Om de veiligheid te verbeteren, negeert de os/exec-module nu relatieve paden bij het uitbreiden van de omgevingsvariabele PATH (bijvoorbeeld bij het bepalen van het pad van een uitvoerbaar bestand, wordt de huidige map niet langer gecontroleerd).

Tot slot, als u meer wilt weten over deze nieuwe release, kunt u de details bekijken op de volgende link.


Wees de eerste om te reageren

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.