Verëffentlechung vun der Go Programméiersprooch 1.18

D'Verëffentlechung vun der Go 1.18 Programméierungssprooch gëtt presentéiert, déi vu Google mat der Participatioun vun der Gemeinschaft als Hybridléisung entwéckelt gëtt, déi d'High Performance vu kompiléierte Sprooche kombinéiert mat sou Virdeeler vu Skriptsproochen wéi Einfachheet vum Code ze schreiwen , Vitesse vun Entwécklung a Feeler Schutz. De Projet Code gëtt ënner der BSD Lizenz verdeelt.

Dem Go seng Syntax baséiert op vertraute Elementer vun der C Sprooch mat e puer Prêten aus der Python Sprooch. D'Sprooch ass zimmlech präzis, awer de Code ass einfach ze liesen a verstoen. Go Code gëtt a Stand-alone binär ausführbar Dateien zesummegesat, déi natiirlech lafen ouni eng virtuell Maschinn ze benotzen (Profiling, Debugging Moduler, an aner Runtime Problem Detectioun Subsystemer sinn als Runtime Komponenten integréiert), wat d'Performance vergläichbar mat C Programmer erlaabt.

De Projet ass ufanks entwéckelt mat engem Auge fir Multi-threaded Programméierung an effizient Operatioun op Multi-Core Systemer, dorënner d'Bedreiwer-Niveau Mëttele fir d'Organisatioun vun parallele Informatik an Interaktioun tëscht parallel ausgefouerten Methoden z'organiséieren. D'Sprooch bitt och e gebaute Schutz géint iwwerallokéiert Erënnerungsblocken a bitt d'Fäegkeet fir e Gerempels ze benotzen.

Déi nei Versioun füügt Ënnerstëtzung fir generesch Funktiounen an Typen (Generik), mat der Hëllef vun deenen en Entwéckler kann Funktiounen definéieren a benotzen, entwéckelt fir mat verschiddenen Typen gläichzäiteg ze schaffen. Et ass och méiglech Interfaces ze benotzen fir kombinéiert Typen ze kreéieren déi verschidde Datentypen spanen. Ënnerstëtzung fir Generik gëtt implementéiert ouni Réckkompatibilitéit mam existente Code ze briechen. // Zomm gesat Wäerter, Wierker fir int64 an float64 Zorte func SumIntsOrFloats[K vergläichbar, V int64 | float64](m Kaart[K]V) V { var s V fir _, v := Range m { s += v } Retour s } // Eng aner Optioun mat enger generescher Typdefinitioun: Typ Zuel Interface { int64 | float64 } func SumNumbers[K vergläichbar, V Zuel](m Kaart[K]V) V { var s V fir _, v := Range m { s += v } return s }

Aner Verbesserungen:

  • Utilities fir Fuzzing Code Testen sinn an de Standard Toolkit integréiert. Wärend Fuzzing Testen gëtt e Stroum vun all méigleche zoufälleg Kombinatioune vun Inputdaten generéiert a méiglech Feeler wärend hirer Veraarbechtung opgeholl. Wann eng Sequenz crasht oder net mat der erwaarter Äntwert passt, dann ass dëst Verhalen héich wahrscheinlech e Feeler oder Schwachstelle ze weisen.
  • Zousätzlech Ënnerstëtzung fir multimodulare Aarbechtsberäicher, wat Iech erlaabt Kommandoen op verschidde Moduler gläichzäiteg auszeféieren, wat Iech erlaabt gläichzäiteg Code a verschidde Moduler ze bauen a lafen.
  • Bedeitend Leeschtungsoptimiséierunge goufen fir Systemer baséiert op Apple M1, ARM64 a PowerPC64 Prozessoren gemaach. Aktivéiert d'Kapazitéit fir Registere ze benotzen amplaz vum Stack fir Argumenter op Funktiounen ze passéieren an d'Resultat zréckzeginn. Verbessert Inline Ausrollung vu Schleifen vum Compiler. Typprüfung am Compiler gouf komplett nei designt. E puer Tester weisen eng 20% ​​Erhéijung vun der Codeleistung am Verglach zu der viregter Verëffentlechung, awer d'Kompilatioun selwer dauert ongeféier 15% méi laang.
  • An der Runtime ass d'Effizienz vum Retour vum fräie Gedächtnis an de Betribssystem erhéicht ginn an d'Operatioun vum Müllsammler gouf verbessert, d'Behuele vun deem méi prévisibel ginn ass.
  • Nei Packagen net/netip an Debug/buildinfo goufen an d'Standardbibliothéik bäigefüügt. Ënnerstëtzung fir TLS 1.0 an 1.1 ass als Standard am Client Code deaktivéiert. De Krypto/x509 Modul huet gestoppt d'Veraarbechtung vun Zertifikater ënnerschriwwen mam SHA-1 Hash.
  • D'Ufuerderunge fir d'Ëmwelt am Linux goufen erhéicht fir ze schaffen, Dir musst elo e Linux Kernel vun op d'mannst Versioun 2.6.32 hunn. An der nächster Verëffentlechung ginn ähnlech Ännerunge fir FreeBSD erwaart (Ënnerstëtzung fir d'FreeBSD 11.x Branche gëtt gestoppt) an op d'mannst FreeBSD 12.2 wäert néideg sinn fir ze schaffen.

Source: opennet.ru

Setzt e Commentaire