net/netip — validation proof

Go’s own net/netip test suite, converted to C# by go2cs, built against the converted standard library, run under the Go-semantics test host, and compared verdict for verdict against a clean go test -json baseline of the same sources. This page is generated by the converter from that comparison — it is the evidence behind the net/netip row in Validated Test Packages.

Validated 2026-09-23 · converter f95f88866

211 matched · 57 disclosed — Go 1.24.13, windows/amd64, converted package src/core/net/netip.

Measured at Release (tiered JIT off), oracle go version go1.24.13 windows/amd64.

Verdicts

Test go test go2cs
TestAddrAppendText pass pass
TestAddrFrom16 pass pass
TestAddrFrom16/v4-raw pass pass
TestAddrFrom16/v6-raw pass pass
TestAddrFromSlice pass pass
TestAddrLessCompare pass pass
TestAddrMarshalUnmarshal pass pass
TestAddrMarshalUnmarshalBinary pass pass
TestAddrPortCompare pass pass
TestAddrPortMarshalTextString pass pass
TestAddrPortMarshalUnmarshal pass pass
TestAddrPortMarshalUnmarshal/#00 pass pass
TestAddrPortMarshalUnmarshalBinary pass pass
TestAddrPortString pass pass
TestAddrStringAllocs pass fail (disclosed)
TestAddrStringAllocs/ipv4 pass fail (disclosed)
TestAddrStringAllocs/ipv4-in-ipv6 pass fail (disclosed)
TestAddrStringAllocs/ipv4-in-ipv6+zone pass fail (disclosed)
TestAddrStringAllocs/ipv6 pass fail (disclosed)
TestAddrStringAllocs/ipv6+zone pass fail (disclosed)
TestAddrStringAllocs/zero pass pass
TestAddrWellKnown pass pass
TestAddrWellKnown/IPv4_unspecified pass pass
TestAddrWellKnown/IPv6_link-local_all_nodes pass pass
TestAddrWellKnown/IPv6_link-local_all_routers pass pass
TestAddrWellKnown/IPv6_loopback pass pass
TestAddrWellKnown/IPv6_unspecified pass pass
TestAs4 pass pass
TestAsSlice pass pass
TestBitsClearedFrom pass pass
TestBitsSetFrom pass pass
TestIPBitLen pass pass
TestIPNextPrev pass pass
TestIPProperties pass pass
TestIPProperties/interface-local_multicast_v6Addr pass pass
TestIPProperties/interface-local_multicast_v6AddrZone pass pass
TestIPProperties/link-local_unicast_v4Addr pass pass
TestIPProperties/link-local_unicast_v6Addr pass pass
TestIPProperties/link-local_unicast_v6AddrZone pass pass
TestIPProperties/link-local_unicast_v6Addr_upper_bound pass pass
TestIPProperties/link-local_unicast_v6_mapped_v4Addr pass pass
TestIPProperties/loopback_v4Addr pass pass
TestIPProperties/loopback_v6Addr pass pass
TestIPProperties/loopback_v6_mapped_v4Addr pass pass
TestIPProperties/multicast_v4Addr pass pass
TestIPProperties/multicast_v6Addr pass pass
TestIPProperties/multicast_v6AddrZone pass pass
TestIPProperties/multicast_v6_mapped_v4Addr pass pass
TestIPProperties/nil pass pass
TestIPProperties/private_v4Addr_10/8 pass pass
TestIPProperties/private_v4Addr_172.16/12 pass pass
TestIPProperties/private_v4Addr_192.168/16 pass pass
TestIPProperties/private_v6Addr pass pass
TestIPProperties/private_v6_mapped_v4Addr_10/8 pass pass
TestIPProperties/private_v6_mapped_v4Addr_172.16/12 pass pass
TestIPProperties/private_v6_mapped_v4Addr_192.168/16 pass pass
TestIPProperties/unicast_v4Addr pass pass
TestIPProperties/unicast_v6Addr pass pass
TestIPProperties/unicast_v6AddrZone pass pass
TestIPProperties/unicast_v6Addr_unassigned pass pass
TestIPProperties/unicast_v6_mapped_v4Addr pass pass
TestIPProperties/unspecified_v4Addr pass pass
TestIPProperties/unspecified_v6Addr pass pass
TestIPStringExpanded pass pass
TestIPStringExpanded/192.0.2.1 pass pass
TestIPStringExpanded/2001:db8::1 pass pass
TestIPStringExpanded/2001:db8::1%eth0 pass pass
TestIPStringExpanded/::ffff:192.0.2.1 pass pass
TestIPStringExpanded/invalid_IP pass pass
TestIPv4Constructors pass pass
TestIPv6Accessor pass pass
TestInlining pass pass
TestIs4AndIs6 pass pass
TestIs4In6 pass pass
TestNoAllocs pass fail (disclosed)
TestNoAllocs/Addr.As16 pass fail (disclosed)
TestNoAllocs/Addr.As4 pass fail (disclosed)
TestNoAllocs/Addr.BitLen pass fail (disclosed)
TestNoAllocs/Addr.Compare pass fail (disclosed)
TestNoAllocs/Addr.Is4 pass fail (disclosed)
TestNoAllocs/Addr.Is4In6 pass fail (disclosed)
TestNoAllocs/Addr.Is6 pass fail (disclosed)
TestNoAllocs/Addr.IsGlobalUnicast pass fail (disclosed)
TestNoAllocs/Addr.IsInterfaceLocalMulticast pass fail (disclosed)
TestNoAllocs/Addr.IsLinkLocalMulticast pass fail (disclosed)
TestNoAllocs/Addr.IsLinkLocalUnicast pass fail (disclosed)
TestNoAllocs/Addr.IsLoopback pass fail (disclosed)
TestNoAllocs/Addr.IsMulticast pass fail (disclosed)
TestNoAllocs/Addr.IsPrivate pass fail (disclosed)
TestNoAllocs/Addr.IsUnspecified pass fail (disclosed)
TestNoAllocs/Addr.IsZero pass fail (disclosed)
TestNoAllocs/Addr.Less pass fail (disclosed)
TestNoAllocs/Addr.Next pass fail (disclosed)
TestNoAllocs/Addr.Prefix/4 pass fail (disclosed)
TestNoAllocs/Addr.Prefix/6 pass fail (disclosed)
TestNoAllocs/Addr.Prev pass fail (disclosed)
TestNoAllocs/Addr.Unmap pass fail (disclosed)
TestNoAllocs/Addr.WithZone pass fail (disclosed)
TestNoAllocs/Addr.Zone/4 pass fail (disclosed)
TestNoAllocs/Addr.Zone/6 pass fail (disclosed)
TestNoAllocs/Addr.Zone/6zone pass fail (disclosed)
TestNoAllocs/AddrFrom16 pass fail (disclosed)
TestNoAllocs/AddrFrom4 pass fail (disclosed)
TestNoAllocs/AddrPortFrom pass fail (disclosed)
TestNoAllocs/IPv4 pass fail (disclosed)
TestNoAllocs/IPv6LinkLocalAllNodes pass fail (disclosed)
TestNoAllocs/IPv6LinkLocalAllRouters pass fail (disclosed)
TestNoAllocs/IPv6Loopback pass fail (disclosed)
TestNoAllocs/IPv6Unspecified pass pass
TestNoAllocs/MustParseAddr pass fail (disclosed)
TestNoAllocs/MustParseAddrPort pass fail (disclosed)
TestNoAllocs/MustParsePrefix pass fail (disclosed)
TestNoAllocs/ParseAddr/4 pass fail (disclosed)
TestNoAllocs/ParseAddr/6 pass fail (disclosed)
TestNoAllocs/ParseAddrPort pass fail (disclosed)
TestNoAllocs/ParsePrefix/4 pass fail (disclosed)
TestNoAllocs/ParsePrefix/6 pass fail (disclosed)
TestNoAllocs/Prefix.Contains pass fail (disclosed)
TestNoAllocs/Prefix.IsSingleIP pass fail (disclosed)
TestNoAllocs/Prefix.IsZero pass fail (disclosed)
TestNoAllocs/Prefix.Masked pass fail (disclosed)
TestNoAllocs/Prefix.Overlaps pass fail (disclosed)
TestNoAllocs/PrefixFrom pass fail (disclosed)
TestParseAddr pass pass
TestParseAddr/#00 pass pass
TestParseAddr/.1.2.3 pass pass
TestParseAddr/0.0.0.0 pass pass
TestParseAddr/000001.00000002.00000003.000000004 pass pass
TestParseAddr/010.000.015.001 pass pass
TestParseAddr/0300.0250.0214.0377 pass pass
TestParseAddr/0:0:0:0:00000:ffff:127.1.2.3 pass pass
TestParseAddr/0:0:0:0:0:ffff:0:00000 pass pass
TestParseAddr/0xc0.0xa8.0x8c.0xff pass pass
TestParseAddr/1..2.3 pass pass
TestParseAddr/1.2.3. pass pass
TestParseAddr/1.2.3.4%eth0 pass pass
TestParseAddr/1.2.3.4.5 pass pass
TestParseAddr/1234 pass pass
TestParseAddr/127.0.1 pass pass
TestParseAddr/127.1 pass pass
TestParseAddr/192.1234567 pass pass
TestParseAddr/192.168.0.1.5.6 pass pass
TestParseAddr/192.168.12345 pass pass
TestParseAddr/192.168.140.255 pass pass
TestParseAddr/192.168.300.1 pass pass
TestParseAddr/1:2:3:4:5:6:7 pass pass
TestParseAddr/1:2:3:4:5:6:7:8:9 pass pass
TestParseAddr/1:2:3:4::5:6:7:8 pass pass
TestParseAddr/1:2::ffff:192.168.140.255%eth1 pass pass
TestParseAddr/:: pass pass
TestParseAddr/::1 pass pass
TestParseAddr/::ffff:1.2.03.4 pass pass
TestParseAddr/::ffff:1.2.3.z pass pass
TestParseAddr/::ffff:192.168.140.255 pass pass
TestParseAddr/::ffff:192.168.140.255%eth1 pass pass
TestParseAddr/::ffff:192.168.140.bad pass pass
TestParseAddr/FD9E:1A04:F01D::1 pass pass
TestParseAddr/bad pass pass
TestParseAddr/fd7a:115c::626b:430b pass pass
TestParseAddr/fd7a:115c:a1e0::4843:cd96:626b:430b pass pass
TestParseAddr/fd7a:115c:a1e0:ab12:4843:cd96:626b:430b pass pass
TestParseAddr/fd7a:115c:a1e0:ab12:4843:cd96:626b:430b%eth0 pass pass
TestParseAddr/fd7a:115c:a1e0:ab12:4843:cd96:626b:: pass pass
TestParseAddr/fd7a:115c:a1e0:ab12:4843:cd96:: pass pass
TestParseAddr/fe801::1 pass pass
TestParseAddr/fe80: pass pass
TestParseAddr/fe80:1?:1 pass pass
TestParseAddr/fe80::1% pass pass
TestParseAddr/fe80::1::1 pass pass
TestParseAddr/fe80:tail:scal:e:: pass pass
TestParseAddr/ffff::ffff:ffff:ffff:ffff:ffff:ffff:192.168.140.255 pass pass
TestParseAddr/ffff:ffff:ffff:ffff:ffff:ffff:ffff:192.168.140.255 pass pass
TestParseAddrPort pass pass
TestParseAddrPort/1.1.1.1:-123 pass pass
TestParseAddrPort/1.1.1.1:-123/AppendTo pass pass
TestParseAddrPort/1.1.1.1:-123/Marshal pass pass
TestParseAddrPort/1.1.1.1:123456 pass pass
TestParseAddrPort/1.1.1.1:123456/AppendTo pass pass
TestParseAddrPort/1.1.1.1:123456/Marshal pass pass
TestParseAddrPort/1.2.3.4:1234 pass pass
TestParseAddrPort/1.2.3.4:1234/AppendTo pass pass
TestParseAddrPort/1.2.3.4:1234/Marshal pass pass
TestParseAddrPort/:0 pass pass
TestParseAddrPort/:0/AppendTo pass pass
TestParseAddrPort/:0/Marshal pass pass
TestParseAddrPort/[1.2.3.4]:1234 pass pass
TestParseAddrPort/[1.2.3.4]:1234/AppendTo pass pass
TestParseAddrPort/[1.2.3.4]:1234/Marshal pass pass
TestParseAddrPort/[::1]:1234 pass pass
TestParseAddrPort/[::1]:1234/AppendTo pass pass
TestParseAddrPort/[::1]:1234/Marshal pass pass
TestParseAddrPort/fe80::1:1234 pass pass
TestParseAddrPort/fe80::1:1234/AppendTo pass pass
TestParseAddrPort/fe80::1:1234/Marshal pass pass
TestParseIPError pass pass
TestParseIPError/%eth0 pass pass
TestParseIPError/500.0.0.1 pass pass
TestParseIPError/::gggg%eth0 pass pass
TestParseIPError/fe80::1cc0:3e8c:119f:c2e1% pass pass
TestParseIPError/localhost pass pass
TestParsePrefixAllocs pass fail (disclosed)
TestParsePrefixAllocs/192.168.1.0/24 pass fail (disclosed)
TestParsePrefixAllocs/aaaa:bbbb:cccc::/24 pass fail (disclosed)
TestParsePrefixError pass pass
TestParsePrefixError/1.1.1.0%a/24 pass pass
TestParsePrefixError/1.1.1.0/+32 pass pass
TestParsePrefixError/1.1.1.0/-1 pass pass
TestParsePrefixError/1.1.1.0/-32 pass pass
TestParsePrefixError/1.1.1.0/0032 pass pass
TestParsePrefixError/1.1.1.0/032 pass pass
TestParsePrefixError/1.1.1.0/33 pass pass
TestParsePrefixError/1.1.1.0/q pass pass
TestParsePrefixError/1.257.1.1/24 pass pass
TestParsePrefixError/192.168.0.0 pass pass
TestParsePrefixError/2001::/129 pass pass
TestParsePrefixError/2001:db8::%a/32 pass pass
TestPrefix pass pass
TestPrefix/0.0.0.0/0 pass pass
TestPrefix/100.64.0.0/10 pass pass
TestPrefix/192.168.0.0/24 pass pass
TestPrefix/192.168.1.1/32 pass pass
TestPrefix/2000::/3 pass pass
TestPrefix/2001:db8::/96 pass pass
TestPrefix/::/0 pass pass
TestPrefixCompare pass pass
TestPrefixContains pass pass
TestPrefixFromInvalidBits pass pass
TestPrefixIsSingleIP pass pass
TestPrefixMarshalTextString pass pass
TestPrefixMarshalUnmarshal pass pass
TestPrefixMarshalUnmarshal/#00 pass pass
TestPrefixMarshalUnmarshal/0.0.0.0/0 pass pass
TestPrefixMarshalUnmarshal/1.2.3.4/32 pass pass
TestPrefixMarshalUnmarshal/2001:db8::/32 pass pass
TestPrefixMarshalUnmarshal/::/0 pass pass
TestPrefixMarshalUnmarshal/::1/128 pass pass
TestPrefixMarshalUnmarshalBinary pass pass
TestPrefixMasked pass pass
TestPrefixMasked/192.168.0.255/24 pass pass
TestPrefixMasked/2100::/3 pass pass
TestPrefixMasked/invalid_Prefix pass pass
TestPrefixMasked/invalid_Prefix#01 pass pass
TestPrefixMasking pass pass
TestPrefixMasking/IPv4 pass pass
TestPrefixMasking/IPv4/100.64.0.0/10 pass pass
TestPrefixMasking/IPv4/192.0.0.0/16 pass pass
TestPrefixMasking/IPv4/255.255.240.0/20 pass pass
TestPrefixMasking/IPv4/invalid_Prefix pass pass
TestPrefixMasking/IPv6 pass pass
TestPrefixMasking/IPv6/2001:db8::/32 pass pass
TestPrefixMasking/IPv6/::/63 pass pass
TestPrefixMasking/IPv6/a000::/4 pass pass
TestPrefixMasking/IPv6/fe80::dead:beef:0:0/96 pass pass
TestPrefixMasking/IPv6/invalid_Prefix pass pass
TestPrefixMasking/IPv6_zone pass pass
TestPrefixMasking/IPv6_zone/2001:db8::/32 pass pass
TestPrefixMasking/IPv6_zone/::/63 pass pass
TestPrefixMasking/IPv6_zone/a000::/4 pass pass
TestPrefixMasking/IPv6_zone/fe80::dead:beef:0:0/96 pass pass
TestPrefixMasking/IPv6_zone/invalid_Prefix pass pass
TestPrefixMasking/nil pass pass
TestPrefixMasking/nil/invalid_Prefix pass pass
TestPrefixMasking/nil/invalid_Prefix#01 pass pass
TestPrefixOverlaps pass pass
TestPrefixString pass pass
TestPrefixUnmarshalTextNonZero pass pass
TestPrefixValid pass pass
TestUint128AddSub pass pass

Disclosed divergences

A disclosed divergence is a specific Go assertion this conversion does not satisfy — not a skipped test and not a tolerance. Each one is pinned by exact failure signature in the package’s hand-owned go2cs_test_disclosures.json; a disclosed test that fails any other way is still a hard mismatch.

The Class column says which kind each one is: a deferred entry is an assertion the managed CLR can meet, pinned against the named plan that will retire it; every other class is one it provably cannot satisfy.

Test Class Pinned reason
TestAddrStringAllocs aggregate no failure text of its own — the roll-up of this test’s disclosed subtests
TestAddrStringAllocs/ipv4 deferred exact-count AllocsPerRun assert (t.Errorf ‘allocs=%d, want 1’): Addr.String() must complete in exactly one allocation (the result string); the converted formatting path allocates 2 golib-site object(s) per run - the append-based hex/decimal formatting’s intermediate slice storage the CLR heap-allocates where Go’s escape analysis keeps it on the stack. True object count over golib’s allocation sites (a lower bound on the real total): a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when the count reaches 1. Measured 2 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: the formatting path’s intermediate slice storage, the family this reason already assigns to the zh-box netip harvest.
TestAddrStringAllocs/ipv4-in-ipv6 deferred exact-count AllocsPerRun assert (t.Errorf ‘allocs=%d, want 1’): Addr.String() must complete in exactly one allocation (the result string); the converted formatting path allocates 3 golib-site object(s) per run - the append-based hex/decimal formatting’s intermediate slice storage the CLR heap-allocates where Go’s escape analysis keeps it on the stack. True object count over golib’s allocation sites (a lower bound on the real total): a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when the count reaches 1. Measured 3 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: the formatting path’s intermediate slice storage, the family this reason already assigns to the zh-box netip harvest.
TestAddrStringAllocs/ipv4-in-ipv6+zone deferred exact-count AllocsPerRun assert (t.Errorf ‘allocs=%d, want 1’): Addr.String() must complete in exactly one allocation (the result string); the converted formatting path allocates 3 golib-site object(s) per run - the append-based hex/decimal formatting’s intermediate slice storage the CLR heap-allocates where Go’s escape analysis keeps it on the stack. True object count over golib’s allocation sites (a lower bound on the real total): a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when the count reaches 1. Measured 3 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: the formatting path’s intermediate slice storage, the family this reason already assigns to the zh-box netip harvest.
TestAddrStringAllocs/ipv6 deferred exact-count AllocsPerRun assert (t.Errorf ‘allocs=%d, want 1’): Addr.String() must complete in exactly one allocation (the result string); the converted formatting path allocates 106 golib-site object(s) per run - the append-based hex/decimal formatting’s intermediate slice storage the CLR heap-allocates where Go’s escape analysis keeps it on the stack. True object count over golib’s allocation sites (a lower bound on the real total): a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when the count reaches 1. Measured 106 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: the formatting path’s intermediate slice storage, the family this reason already assigns to the zh-box netip harvest.
TestAddrStringAllocs/ipv6+zone deferred exact-count AllocsPerRun assert (t.Errorf ‘allocs=%d, want 1’): Addr.String() must complete in exactly one allocation (the result string); the converted formatting path allocates 106 golib-site object(s) per run - the append-based hex/decimal formatting’s intermediate slice storage the CLR heap-allocates where Go’s escape analysis keeps it on the stack. True object count over golib’s allocation sites (a lower bound on the real total): a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when the count reaches 1. Measured 106 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: the formatting path’s intermediate slice storage, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs aggregate no failure text of its own — the roll-up of this test’s disclosed subtests
TestNoAllocs/Addr.As16 deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 5 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 5 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.As4 deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 5 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 5 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.BitLen deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 3 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 3 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.Compare deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 6 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 6 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.Is4 deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 3 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 3 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.Is4In6 deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 2 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 2 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.Is6 deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 2 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 2 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.IsGlobalUnicast deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 6 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 6 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.IsInterfaceLocalMulticast deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 6 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 6 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.IsLinkLocalMulticast deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 6 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 6 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.IsLinkLocalUnicast deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 6 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 6 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.IsLoopback deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 2 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 2 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.IsMulticast deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 2 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 2 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.IsPrivate deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 6 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 6 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.IsUnspecified deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 2 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 2 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.IsZero deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 3 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 3 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.Less deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 6 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 6 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.Next deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 3 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 3 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.Prefix/4 deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 3 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 3 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.Prefix/6 deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 2 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 2 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.Prev deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 3 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 3 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.Unmap deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 2 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 2 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.WithZone deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 2 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 2 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.Zone/4 deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 3 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 3 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.Zone/6 deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 2 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 2 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Addr.Zone/6zone deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 4 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 4 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/AddrFrom16 deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 2 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 2 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/AddrFrom4 deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 1 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 1 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/AddrPortFrom deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 1 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 1 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/IPv4 deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 1 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 1 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/IPv6LinkLocalAllNodes deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 2 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 2 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/IPv6LinkLocalAllRouters deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 2 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 2 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/IPv6Loopback deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 2 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 2 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/MustParseAddr deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 3 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 3 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/MustParseAddrPort deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 5 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 5 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/MustParsePrefix deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 5 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 5 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/ParseAddr/4 deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 3 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 3 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/ParseAddr/6 deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 3 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 3 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/ParseAddrPort deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 5 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 5 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/ParsePrefix/4 deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 5 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 5 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/ParsePrefix/6 deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 4 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 4 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Prefix.Contains deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 8 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 8 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Prefix.IsSingleIP deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 5 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 5 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Prefix.IsZero deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 5 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 5 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Prefix.Masked deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 5 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 5 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/Prefix.Overlaps deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 10 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 10 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestNoAllocs/PrefixFrom deferred want-0 AllocsPerRun assert (t.Fatalf ‘allocs = %d; want 0’): the measured closure runs netip constructors/methods that Go keeps allocation-free via stack allocation and inlining (the package’s own TestInlining pins those inlining decisions), while the converted path allocates 1 golib-site object(s) per run - parse working buffers, slice headers, and pointer-box shells the managed conversion needs on the heap. go2cs’s AllocsPerRun counter is a true object count over golib’s allocation sites (a lower bound on the real total), so this is a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when its site’s count reaches zero. Measured 1 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: parse working buffers, slice backings and pointer boxes, the family this reason already assigns to the zh-box netip harvest.
TestParsePrefixAllocs aggregate no failure text of its own — the roll-up of this test’s disclosed subtests
TestParsePrefixAllocs/192.168.1.0/24 deferred differential want-0 AllocsPerRun assert (t.Errorf ‘allocs=%d, want 0’): asserts ParsePrefix allocates exactly as many objects as ParseAddr of the same address; the converted ParsePrefix adds 2 golib-site object(s) per run over ParseAddr’s own count (the prefix parse’s extra slicing and value box). True object count over golib’s allocation sites (a lower bound on the real total): a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when the differential reaches zero. Measured +2 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: the prefix parse’s extra slicing and value box, the family this reason already assigns to the zh-box netip harvest.
TestParsePrefixAllocs/aaaa:bbbb:cccc::/24 deferred differential want-0 AllocsPerRun assert (t.Errorf ‘allocs=%d, want 0’): asserts ParsePrefix allocates exactly as many objects as ParseAddr of the same address; the converted ParsePrefix adds 2 golib-site object(s) per run over ParseAddr’s own count (the prefix parse’s extra slicing and value box). True object count over golib’s allocation sites (a lower bound on the real total): a genuine allocation-profile divergence, not a counting-regime artifact. Reduction of exactly these sites is the banked zh-box reduction arc’s netip harvest; this entry retires when the differential reaches zero. Measured +2 object(s)/run, 2026-08-29, go1.23.12/windows-amd64. RELABEL 2026-09-23 (C1, from the i7 reading run at bb54ff0920, Release with tiering off): alloc-profile -> deferred. The run’s own unit note is COUNT, so golib’s counter SAW these objects – the COUNT arm of the 2026-09-05 ladder – and the site family is one a named plan removes: the prefix parse’s extra slicing and value box, the family this reason already assigns to the zh-box netip harvest.

Excluded declarations

Declarations filtered from both sides of the comparison, and therefore not claimed above: Benchmark, Fuzz and Example declarations the converted host does not execute, plus any test requiring a capability the managed runtime does not provide — a testing member the host has not implemented, or a platform behavior it provably cannot reproduce. Each is named with the capability it needs.