The problem appears to be with litter, not with x/tools/go/packages On my machine, this hangs after "Stage B": https://play.golang.com/p/N2MTQszvnRN
On Wednesday, 21 July 2021 at 11:41:39 UTC+1 mlevi...@gmail.com wrote: > Hi all, > > I'm having a very hard time with golang.org/x/tools/go/packages. Spent > most of my evening yesterday trying to understand what's happening here. > Here's my code: https://play.golang.com/p/5L1N0lSaetB > > With this very simple code I would expect that the program prints detailed > information about the package path I run it with. But whatever the package, > or module, I try to use this with, the program is killed because it takes > all the memory (~32GB) of my machine in a few seconds, nothing ever gets > printed... > > Here's my config: > GO111MODULE="" > GOARCH="amd64" > GOBIN="" > GOCACHE="/home/michel/.cache/go-build" > GOENV="/home/michel/.config/go/env" > GOEXE="" > GOFLAGS="" > GOHOSTARCH="amd64" > GOHOSTOS="linux" > GOINSECURE="" > GOMODCACHE="/home/michel/.go/pkg/mod" > GONOPROXY="" > GONOSUMDB="" > GOOS="linux" > GOPATH="/home/michel/.go" > GOPRIVATE="" > GOPROXY="https://proxy.golang.org,direct" > GOROOT="/usr/local/go" > GOSUMDB="sum.golang.org" > GOTMPDIR="" > GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64" > GOVCS="" > GOVERSION="go1.16" > GCCGO="gccgo" > AR="ar" > CC="gcc" > CXX="g++" > CGO_ENABLED="1" > GOMOD="/dev/null" > CGO_CFLAGS="-g -O2" > CGO_CPPFLAGS="" > CGO_CXXFLAGS="-g -O2" > CGO_FFLAGS="-g -O2" > CGO_LDFLAGS="-g -O2" > PKG_CONFIG="pkg-config" > GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 > -fdebug-prefix-map=/tmp/go-build3825502007=/tmp/go-build > -gno-record-gcc-switches" > > > I have tried many, many things yesterday, including: > - changing the `Mode` in the config > - using go/types directly ("can't find import" for the package I'm look to > parse) > - using different importers > - trying to load and parse different packages > - ... > > For context, and to avoid any XY problem here, my goal is to parse a > package and find an interface based on its name. Once this interface is > found, I need to range over its method set and generate a structure > implementing this interface, with (maybe not at the beginning but) a lot of > logic, e.g. detect that an interface returns an implementation of itself, > and so on. > I'm working on a tool to generate mock structures from their interface > method set, as a personal project, and this is kind of the most important > part of it (being able to automatically generate the mock). > > If anyone would kindly help me find what I'm doing wrong, or at least > point me to useful resources explaining how to fix my problem, I would be > reaaaaaally delighted. This has been a problem for days now... And I can't > find any relevant issue or blog as this is a peculiar context. > > Thanks in advance to all that will read this and have a nice day! :D > -- 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 golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/3c3b25eb-36ed-4ce9-9792-f30b7dc48b1cn%40googlegroups.com.