$ the-wire · showcase
gopls boots one daemon for every subcommand, and the compiler learns to see NUL bytes
By RepoJournal · Filed · About Go · Composed from the cited sources · methodology
A day of correctness fixes across the Go toolchain: gopls gets a single-daemon model and its integration tests stop running everything twice, while the compiler's scanner closes a gap where leading NUL bytes in source went unchecked.
gopls/internal/cmd: start a daemon with -remote=auto golang/tools
The -remote=auto flag used to start a daemon only from 'serve'; it now passes remoteArgs so any gopls subcommand can launch one. Server notifications are also handled sequentially, which stops diagnostics from being dropped.
cmd/compile/internal/syntax: report NUL byte read after buffer refill golang/go
A NUL byte as the first byte of a file, or as the first byte after a buffer refill, was ignored by source.nextch, so the scanner reported "invalid character" outside strings and accepted the byte silently inside them. The check now runs after refilling the buffer.
gopls/internal/test/integration: faster execution time golang/tools
The integration suite was booting two LSP server sessions and two disk sandboxes per test because regtest.DefaultModes ran every test in both Default and Forwarded modes. It now returns Default alone in non-short runs, taking rfindley's TODO.
internal/refactor: ignore //line directives in Delete{Decl,Stmt} golang/tools
DeleteDecl and DeleteStmt compared lines via token.File.Line, which honors //line directives, so a directive could make unrelated later code look adjacent and get deleted along with a declaration. Both now use unadjusted line numbers.
crypto/tls: reject IP addresses in ECH public names golang/go
ECH public names now reject IP literals during config selection, as required by RFC 9849 section 6.1.7.
cmd/apidiff: stop using gcexportdata.{Read,Write}Bundle golang/exp
apidiff drops gcexportdata.Read/WriteBundle, which were experimental and are heading for removal, and writes -m -w output as a zip with one entry per package. Bundle files you have already produced will not read back the same way.
net/http: update cancelTimerBody comment golang/go
by Ilya Priven
A comment in net/http's cancelTimerBody was still describing b.stop(), which was removed in CL 361919. Nothing changes at runtime.
gopls/internal/cmd: Add inspect subcommand golang/tools
Alex Putman's initial 'gopls inspect' subcommand resolves a target query through gopls.resolve_target into protocol.Locations and uses it for definition location and full hover documentation. The target query args are intended as a general symbol-based argument type.