Go 1.18 áááá¯ááááºážáááºážáá¬áá¬á áá¬ážá ááœááºááŸáááŸá¯ááᯠáááºááŒáá¬ážááŒá®ážá á¡ááá¯ááºážá¡ááá¯ááºážááá«áááºááŸá¯ááŒáá·áº Google á០áá®ááœááºáá¬ážááá·áº áá±á«ááºážá ááºáá¬áá¬á áá¬ážáá»á¬ážá á áœááºážáá±á¬ááºáááºááŒáá·áºáá¬ážááŸá¯ááᯠáá±á«ááºážá ááºáá¬ážáá±á¬ áá¬ááºááœáŸááºážáá±ážáá¬áá¬á áá¬ážáá»á¬ážá á¡á¬ážáá¬áá»ááºáá»á¬ážááŒá áºááá·áº áá¯ááºáá±ážáá¬ážáááœááºáá°ááŒááºáž ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ á¡ááŸáááºá¡áá¯ááºááŸáá·áº á¡ááŸá¬ážá¡ááœááºáž áá¬ááœááºááŸá¯á ááá±á¬áá»ááºáá¯ááºááᯠBSD ááá¯ááºá ááºá¡á±á¬ááºááœáẠááŒáá·áºáá±áá¬ážáááºá
Go á syntax ááẠPython áá¬áá¬á áá¬ážá០áá»á±ážáá°áá¬ážáá±á¬ á¡áá»áá¯á·áá±á¬ C language á á¡áá»áœááºážááááºááŸááá±á¬ ááŒááºá ááºáá»á¬ážá¡áá±á«áº á¡ááŒá±áá¶áá¬ážáááºá áá¬áá¬á áá¬ážááẠá¡ááœááºááá¯áá±á¬ááºážáá±á¬áºáááºáž áá¯ááºááẠáááºááŸá¯áá¬ážáááºááẠááœááºáá°áááºá Go áá¯ááºááᯠvirtual machine ááá¯á¡áá¯á¶ážáááŒá¯áá² áá°áááºážá¡ááá¯ááºážáááºáááºááá·áº stand-alone binary executable ááá¯ááºáá»á¬áž (profileing, debugging modules, and other runtime problem detection subsystems are integrated as runtime components) ááẠC áááá¯ááááºáá»á¬ážááŸáá·áº ááŸáá¯ááºážááŸááºááá¯ááºáá±á¬ á áœááºážáá±á¬ááºáááºááᯠáááŸáá á±áá«áááºá
ááá±á¬áá»ááºááᯠá¡ááŒáá¯ááºááœááºááŒá°áá¬á á®á ááºááŒááºážááŸáá·áº parallel-executed áááºážáááºážáá»á¬ážááŒá¬áž á¡ááŒááºá¡ááŸááºá¡áá»áá¯ážáááºáá±á¬ááºááŸá¯á¡ááœáẠá¡á±á¬áºááá±áá¬á¡ááá·áºáááºážáááºážáá»á¬áž áá¶á·ááá¯ážáá±ážááŒááºážá¡áá«á¡ááẠmulti-threaded programming ááŸáá·áº multi-core á áá áºáá»á¬ážááœáẠáááá±á¬ááºáá±á¬áááºáááºááŸá¯áá»á¬ážááᯠáá»ááºá ááá»á á±ááẠáááŠážááœáẠááá±á¬áá»ááºááᯠáá®ááœááºáá²á·áááºá áá¬áá¬á áá¬ážááẠááœá²áá±áá»áá¬ážáá±ážáá±á¬ áááºááá¯áá®ááááºááá¯á·ááŒááºážá០áááºáááºáá¬ážáá±á¬ á¡áá¬á¡ááœááºááá¯áááºáž áá±ážáá±á¬ááºááŒá®áž á¡ááŸáá¯ááºá á¯áá±á¬ááºážáá°á¡á¬áž á¡áá¯á¶ážááŒá¯ááá¯ááºá áœááºážááᯠáá±á¬ááºáá¶á·áá±ážáááºá
áá¬ážááŸááºážá¡áá áºááœáẠáá±á¬á·ááºáá²áá±ážáá¬ážáá°ááẠá¡áá»áá¯ážá¡á á¬ážáá»á¬ážá áœá¬ááŸáá·áº áá áºááŒáá¯ááºáááºá¡áá¯ááºáá¯ááºááẠáá®ááá¯ááºážáá¯ááºáá¬ážááá·áº áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáááºááŸááºá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº á¡áá°á¡áá®ááŒáá·áº áá±áá¯áá»áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááŸáá·áº á¡áá»áá¯ážá¡á á¬ážáá»á¬áž (generics) á¡ááœáẠáá¶á·ááá¯ážááŸá¯ áááºáá±á¬ááºážáá±ážáá«áááºá áá±áá¬á¡áá»áá¯ážá¡á á¬ážáá»á¬ážá áœá¬ááᯠááœáŸááºážááŒá¯á¶ááá¯ááºáá±á¬ áá±á«ááºážá ááºá¡áá»áá¯ážá¡á á¬ážáá»á¬ážááᯠáááºáá®ážááẠá¡ááºáá¬áá±á·á áºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá áááºááŸááá¯ááºááŸáá·áº áá±á¬ááºááŒááºááá¯ááºáááºááŸá¯ááᯠááá»áá¯ážáá»ááºáá² generics áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáááºá // áá±á«ááºážáááºáááºááŸááºáááºááá¯ážáá»á¬ážá int64 ááŸáá·áº float64 á¡áá»áá¯ážá¡á á¬ážáá»á¬ážá¡ááœáẠá¡áá¯ááºáá¯ááºáá±á¬ Func SumInntsOrFloats[K ááŸáá¯ááºážááŸááºááá¯ááºáá±á¬á V int64 | float64](m map[K]V) V { var s V á¡ááœáẠ_, v := range m { s += v } return s } // áá±áá¯áá»á¡áá»áá¯ážá¡á á¬áž á¡áááá¹áá«ááºááœáá·áºááá¯áá»ááº- á¡áá»áá¯ážá¡á á¬áž áá¶áá«áẠáá»ááºááŸá¬ááŒáẠ{ int64 | float64 } func SumNumbers[K ááŸáá¯ááºážááŸááºááá¯ááºáá±á¬á V áá¶áá«ááº](m map[K]V) V {var s V á¡ááœáẠ_, v := range m { s += v } return s }
á¡ááŒá¬ážááá¯ážáááºááŸá¯áá»á¬áž-
- fuzzing code á ááºážáááºááŒááºážá¡ááœáẠá¡áá¯á¶ážá¡áá±á¬ááºáá»á¬ážááᯠstandard toolkit ááœáẠáá±á«ááºážá ááºáá¬ážáááºá fuzzing á ááºážáááºáá±á ááºá¡ááœááºáž ááŒá áºááá¯ááºáá»á±ááŸááá±á¬ áá»áááºážáá±áá¬áá±á«ááºážá ááºááŸá¯á¡á¬ážáá¯á¶ážááᯠáá¯ááºáá±ážááŒá®áž áááºážááá¯á·á áá¯ááºáá±á¬ááºáá±á ááºá¡ááœááºáž ááŒá áºááá¯ááºáá±á¬ áá»ááŸá¯á¶ážááŸá¯áá»á¬ážááᯠááŸááºáááºážáááºáá¬ážáááºá á¡á á®á¡á á¥áºáá áºáᯠáá»ááºá á®ážááœá¬ážáá«á ááá¯á·ááá¯áẠáá»áŸá±á¬áºááá·áºáá¬ážááá·áº áá¯á¶á·ááŒááºááŸá¯ááŸáá·áº áááá¯ááºáá®áá«áá á€á¡ááŒá¯á¡áá°ááẠáá»áá¯á·ááœááºážáá»áẠááá¯á·ááá¯áẠá¡á¬ážáááºážáá»ááºááᯠááœáŸááºááŒááẠá¡ááœááºá¡áá¬ážá¡áá¬ááŸááááºá
- Multi-modular workspaces áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ áá±á«ááºážááá·áºáá¬ážááŒá®ážá áááºááẠáá±á¬áºáá»á°ážáá»á¬ážá áœá¬ááᯠáá áºááŒáá¯ááºáááºáááºáž áá¯ááºáá»á¬ážááᯠáá±á¬áºáá»á°ážáá»á¬ážá áœá¬ááœáẠáá áºááŒáá¯ááºááẠáááºáá±á¬ááºáᬠáá¯ááºáá»á¬áž áá¯ááºáá±á¬ááºááá¯ááºá á±áááºááŒá áºáááºá
- Apple M1á ARM64 ááŸáá·áº PowerPC64 áááá¯áááºáá¬áá»á¬ážá¡áá±á«áº á¡ááŒá±áá¶áá¬ážáá±á¬ á áá áºáá»á¬ážá¡ááœáẠáááá¬áááºááŸá¬ážáá±á¬ á áœááºážáá±á¬ááºááẠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠááŒá¯áá¯ááºáá¬ážáá«áááºá áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááá¯á· á¡ááŒá±á¬ááºážááŒáá»ááºáá»á¬ážáá±ážááá¯á·ááŒá®áž ááááºááᯠááŒááºáá±ážáááºá¡ááœáẠstack á¡á á¬áž ááŸááºáá¯á¶áááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºá áœááºážááᯠááœáá·áºáá¬ážáááºá compiler á០inline unrolling ááᯠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠááŒá¯áá¯ááºáá¬ážáááºá compiler ááœáẠá á áºáá±ážááŒááºáž á¡áá»áá¯ážá¡á á¬ážááᯠáá¯á¶ážá ááŒááºááẠáá®ááá¯ááºážáá¯ááºáá¬ážáá«áááºá á¡áá»áá¯á·áá±á¬á ááºážáááºááŸá¯áá»á¬ážááẠááááºááœááºááŸáááŸá¯ááŸáá·áº ááŸáá¯ááºážááŸááºáá«á áá¯ááºá áœááºážáá±á¬ááºááẠ20% ááá¯ážáá¬áá±á¬áºáááºáž á á¯á ááºážááŸá¯ááá¯ááºááá¯ááºá 15% ááá·áº ááá¯ááŒá¬áá«áááºá
- runtime ááœááºá operating system ááá¯á· freed memory ááŒááºááá¯á·ááŒááºážá áááá±á¬ááºááŸá¯ ááá¯ážááŒáá·áºáá¬ááŒá®áž á¡ááŸáá¯ááºá á¯áá±á¬ááºážáá°á áá¯ááºáá±á¬ááºáá»ááºááᯠááŒáŸáá·áºáááºáá¬ážááŒá®ážá áááºážá á¡ááŒá¯á¡áá°ááẠááá·áºááŸááºážááá¯ááºááœááºáᬠááŒá áºáá¬áááºá
- áááºáá±á·áá»áºá¡áá áºáá»á¬áž net/netip ááŸáá·áº debug/buildinfo ááá¯á·ááᯠstandard library ááá¯á· áá±á«ááºážááá·áºáá¬ážáá«áááºá TLS 1.0 ááŸáá·áº 1.1 á¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠáá¯á¶ážá áœá²áá°áá¯ááºááœáẠáá°áááºážá¡á¬ážááŒáá·áº ááááºáá¬ážáááºá crypto/x509 áá±á¬áºáá»á°ážááẠSHA-1 hash ááᯠá¡áá¯á¶ážááŒá¯á áááºááŸááºááá¯ážáá¬ážáá±á¬ áááºááŸááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºááŒááºážááᯠáááºááá·áºáá¬ážáááºá
- Linux ááŸá áááºáááºážáá»ááºá¡ááœáẠááá¯á¡ááºáá»ááºáá»á¬ážááᯠááŒáŸáá·áºáááºáá¬ážááŒá®ážá á¡áá¯ááºáá¯ááºáááºá ááᯠáááºááẠá¡áááºážáá¯á¶áž áá¬ážááŸááºáž 2.6.32 ááŸá Linux kernel áá áºáá¯ááŸáááẠááá¯á¡ááºáá«áááºá áá¬ááá·áºáá¯ááºáá±ááŸá¯ááœááºá FreeBSD á¡ááœáẠá¡áá¬ážáá°ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠáá»áŸá±á¬áºááá·áºáá¬ážáá«ááẠ(FreeBSD 11.x áá¬áááœá²á¡ááœáẠáá¶á·ááá¯ážááŸá¯áááºááá¯ááºážáááº) ááŸáá·áº á¡áááºážáá¯á¶áž FreeBSD 12.2 á¡áá¯ááºáá¯ááºááẠááá¯á¡ááºáááºááŒá áºáááºá
source: opennet.ru