On Wed, Aug 1, 2018 at 11:42 AM, Manlio Perillo <[email protected]> wrote: > Il giorno mercoledì 1 agosto 2018 20:36:28 UTC+2, Ian Lance Taylor ha > scritto: >> >> On Wed, Aug 1, 2018 at 11:16 AM, Manlio Perillo >> <[email protected]> wrote: >> > Il giorno mercoledì 1 agosto 2018 19:23:04 UTC+2, Ian Lance Taylor ha >> > scritto: >> >> >> >> On Fri, Jul 27, 2018 at 9:33 PM, Dan Kortschak >> >> <[email protected]> wrote: >> >> > >> >> > That's fine. Though given that a program *can* shell out to `go list >> >> > std` to get the list of std packages, it seems odd to me that there >> >> > is >> >> > not some way of doing that without need to exec a new process. You >> >> > explained it, but not in a way that makes sense to me. >> >> >> >> I'll try to explain it again. >> >> >> >> In Go 1.11 the list of standard packages can be found by looking for >> >> directories under `$GOROOT/src`. We create a package stdpkg that >> >> returns the list of standard packages. It works fine when using Go >> >> 1.11. You build a program using Go 1.11 that calls stdpkg. It works >> >> fine. You install that program in your /usr/bin directory. >> >> >> >> Now, for some reason in Go 1.12, we move things around. Now looking >> >> at `$GOROOT/src` no longer gives you the list of standard packages, >> >> they've moved somewhere else. We update stdpkg so that it uses the >> >> new mechanism. >> >> >> >> You update your system to use Go 1.12. You use it for a few days. >> >> Then you run your program, previously built with Go 1.11, previously >> >> installed in /usr/bin. That program looks at `$GOROOT/src` and >> >> doesn't find anything, because you are now using Go 1.12. So your >> >> program fails in some unexpected way. >> >> >> >> If your program instead ran `go list`, then it would still work, even >> >> when built with 1.11, after you update to 1.12. >> >> >> > >> > Then the question: why golint and friends *does not* run `go list`? >> > Moreover, at least last time I checked, each tool use a slight different >> > implementation with subtle changes in the command behavior. >> >> Yes, that is likely a bug. As I understand it, the current plan is to >> change them to use the go/packages package currently under >> development. That package will invoke the go tool when appropriate. >> >> >> > There is also https://github.com/golang/go/issues/8768. >> >> I added a comment there. >> > > What do you mean with "go/packages"?
Sorry, I mean golang.org/x/tools/go/packages, currently under active development. Ian -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
