pebbe / zmq4

A Go interface to ZeroMQ version 4
BSD 2-Clause "Simplified" License
1.17k stars 163 forks source link

go get on zmq4 fails #97

Open daemonza opened 7 years ago

daemonza commented 7 years ago

Not sure, if I need to do something extra, or need something, but I cannot seem to get go get to work.

go get github.com/pebbe/zmq4
# github.com/pebbe/zmq4
../../../github.com/pebbe/zmq4/reactor.go:57: cannot use events (type State) as type int in field value
../../../github.com/pebbe/zmq4/reactor.go:57: cannot use handler (type func(State) error) as type func(int) error in field value
../../../github.com/pebbe/zmq4/reactor.go:68: cannot use props.e (type int) as type State in argument to r.p.Add
../../../github.com/pebbe/zmq4/reactor.go:187: cannot use item.Events (type State) as type int in argument to r.sockets[item.Socket].f
pebbe commented 7 years ago

What is the output of go env and go version? Do you have old sources of zmq4 somewhere?

daemonza commented 7 years ago

go env

➜  ~ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/wgillmer/workspace/go"
GORACE=""
GOROOT="/usr/local/opt/go/libexec"
GOTOOLDIR="/usr/local/opt/go/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/h2/5r4jrl855hddg359493d7gp00000gn/T/go-build081211722=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"
PKG_CONFIG="pkg-config"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"

go version

➜  ~ go version
go version go1.8 darwin/amd64

don't have any other install or source code for zmq4

agnivade commented 7 years ago

Have you installed the actual zeromq library ? You need to install that first, and then you can use the golang library.

pebbe commented 7 years ago

What about the output of this?

go get -v -x github.com/pebbe/zmq4
daemonza commented 7 years ago

Output for :

go get -v -x github.com/pebbe/zmq4


WORK=/var/folders/h2/5r4jrl855hddg359493d7gp00000gn/T/go-build517389540
github.com/pebbe/zmq4
mkdir -p $WORK/github.com/pebbe/zmq4/_obj/
mkdir -p $WORK/github.com/pebbe/
cd /Users/wgillmer/workspace/go/src/github.com/pebbe/zmq4
pkg-config --cflags libzmq
pkg-config --libs libzmq
CGO_LDFLAGS="-g" "-O2" "-L/usr/local/Cellar/zeromq/4.2.2/lib" "-lzmq" /usr/local/opt/go/libexec/pkg/tool/darwin_amd64/cgo -objdir $WORK/github.com/pebbe/zmq4/_obj/ -importpath github.com/pebbe/zmq4 -- -I/usr/local/Cellar/zeromq/4.2.2/include -I $WORK/github.com/pebbe/zmq4/_obj/ -g -O2 auth.go ctxoptions_unix.go errors.go polling.go socketget.go socketget_unix.go socketset.go zmq4.go
cd $WORK
clang -fdebug-prefix-map=a=b -c trivial.c
clang -gno-record-gcc-switches -c trivial.c
cd /Users/wgillmer/workspace/go/src/github.com/pebbe/zmq4
clang -I . -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=$WORK=/tmp/go-build -gno-record-gcc-switches -fno-common -I/usr/local/Cellar/zeromq/4.2.2/include -I $WORK/github.com/pebbe/zmq4/_obj/ -g -O2 -o $WORK/github.com/pebbe/zmq4/_obj/_cgo_export.o -c $WORK/github.com/pebbe/zmq4/_obj/_cgo_export.c
clang -I . -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=$WORK=/tmp/go-build -gno-record-gcc-switches -fno-common -I/usr/local/Cellar/zeromq/4.2.2/include -I $WORK/github.com/pebbe/zmq4/_obj/ -g -O2 -o $WORK/github.com/pebbe/zmq4/_obj/auth.cgo2.o -c $WORK/github.com/pebbe/zmq4/_obj/auth.cgo2.c
clang -I . -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=$WORK=/tmp/go-build -gno-record-gcc-switches -fno-common -I/usr/local/Cellar/zeromq/4.2.2/include -I $WORK/github.com/pebbe/zmq4/_obj/ -g -O2 -o $WORK/github.com/pebbe/zmq4/_obj/ctxoptions_unix.cgo2.o -c $WORK/github.com/pebbe/zmq4/_obj/ctxoptions_unix.cgo2.c
clang -I . -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=$WORK=/tmp/go-build -gno-record-gcc-switches -fno-common -I/usr/local/Cellar/zeromq/4.2.2/include -I $WORK/github.com/pebbe/zmq4/_obj/ -g -O2 -o $WORK/github.com/pebbe/zmq4/_obj/errors.cgo2.o -c $WORK/github.com/pebbe/zmq4/_obj/errors.cgo2.c
clang -I . -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=$WORK=/tmp/go-build -gno-record-gcc-switches -fno-common -I/usr/local/Cellar/zeromq/4.2.2/include -I $WORK/github.com/pebbe/zmq4/_obj/ -g -O2 -o $WORK/github.com/pebbe/zmq4/_obj/polling.cgo2.o -c $WORK/github.com/pebbe/zmq4/_obj/polling.cgo2.c
clang -I . -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=$WORK=/tmp/go-build -gno-record-gcc-switches -fno-common -I/usr/local/Cellar/zeromq/4.2.2/include -I $WORK/github.com/pebbe/zmq4/_obj/ -g -O2 -o $WORK/github.com/pebbe/zmq4/_obj/socketget.cgo2.o -c $WORK/github.com/pebbe/zmq4/_obj/socketget.cgo2.c
clang -I . -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=$WORK=/tmp/go-build -gno-record-gcc-switches -fno-common -I/usr/local/Cellar/zeromq/4.2.2/include -I $WORK/github.com/pebbe/zmq4/_obj/ -g -O2 -o $WORK/github.com/pebbe/zmq4/_obj/socketget_unix.cgo2.o -c $WORK/github.com/pebbe/zmq4/_obj/socketget_unix.cgo2.c
clang -I . -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=$WORK=/tmp/go-build -gno-record-gcc-switches -fno-common -I/usr/local/Cellar/zeromq/4.2.2/include -I $WORK/github.com/pebbe/zmq4/_obj/ -g -O2 -o $WORK/github.com/pebbe/zmq4/_obj/socketset.cgo2.o -c $WORK/github.com/pebbe/zmq4/_obj/socketset.cgo2.c
clang -I . -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=$WORK=/tmp/go-build -gno-record-gcc-switches -fno-common -I/usr/local/Cellar/zeromq/4.2.2/include -I $WORK/github.com/pebbe/zmq4/_obj/ -g -O2 -o $WORK/github.com/pebbe/zmq4/_obj/zmq4.cgo2.o -c $WORK/github.com/pebbe/zmq4/_obj/zmq4.cgo2.c
clang -I . -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=$WORK=/tmp/go-build -gno-record-gcc-switches -fno-common -I/usr/local/Cellar/zeromq/4.2.2/include -I $WORK/github.com/pebbe/zmq4/_obj/ -g -O2 -o $WORK/github.com/pebbe/zmq4/_obj/dummy.o -c ./dummy.c
clang -I . -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=$WORK=/tmp/go-build -gno-record-gcc-switches -fno-common -I/usr/local/Cellar/zeromq/4.2.2/include -I $WORK/github.com/pebbe/zmq4/_obj/ -g -O2 -o $WORK/github.com/pebbe/zmq4/_obj/_cgo_main.o -c $WORK/github.com/pebbe/zmq4/_obj/_cgo_main.c
clang -I . -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=$WORK=/tmp/go-build -gno-record-gcc-switches -fno-common -o $WORK/github.com/pebbe/zmq4/_obj/_cgo_.o $WORK/github.com/pebbe/zmq4/_obj/_cgo_main.o $WORK/github.com/pebbe/zmq4/_obj/_cgo_export.o $WORK/github.com/pebbe/zmq4/_obj/auth.cgo2.o $WORK/github.com/pebbe/zmq4/_obj/ctxoptions_unix.cgo2.o $WORK/github.com/pebbe/zmq4/_obj/errors.cgo2.o $WORK/github.com/pebbe/zmq4/_obj/polling.cgo2.o $WORK/github.com/pebbe/zmq4/_obj/socketget.cgo2.o $WORK/github.com/pebbe/zmq4/_obj/socketget_unix.cgo2.o $WORK/github.com/pebbe/zmq4/_obj/socketset.cgo2.o $WORK/github.com/pebbe/zmq4/_obj/zmq4.cgo2.o $WORK/github.com/pebbe/zmq4/_obj/dummy.o -g -O2 -L/usr/local/Cellar/zeromq/4.2.2/lib -lzmq
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/cgo -dynpackage zmq4 -dynimport $WORK/github.com/pebbe/zmq4/_obj/_cgo_.o -dynout $WORK/github.com/pebbe/zmq4/_obj/_cgo_import.go
cd $WORK
clang -no-pie -c trivial.c
cd /Users/wgillmer/workspace/go/src/github.com/pebbe/zmq4
clang -I . -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=$WORK=/tmp/go-build -gno-record-gcc-switches -fno-common -o $WORK/github.com/pebbe/zmq4/_obj/_all.o $WORK/github.com/pebbe/zmq4/_obj/_cgo_export.o $WORK/github.com/pebbe/zmq4/_obj/auth.cgo2.o $WORK/github.com/pebbe/zmq4/_obj/ctxoptions_unix.cgo2.o $WORK/github.com/pebbe/zmq4/_obj/errors.cgo2.o $WORK/github.com/pebbe/zmq4/_obj/polling.cgo2.o $WORK/github.com/pebbe/zmq4/_obj/socketget.cgo2.o $WORK/github.com/pebbe/zmq4/_obj/socketget_unix.cgo2.o $WORK/github.com/pebbe/zmq4/_obj/socketset.cgo2.o $WORK/github.com/pebbe/zmq4/_obj/zmq4.cgo2.o $WORK/github.com/pebbe/zmq4/_obj/dummy.o -g -O2 -L/usr/local/Cellar/zeromq/4.2.2/lib -Wl,-r -nostdlib
/usr/local/opt/go/libexec/pkg/tool/darwin_amd64/compile -o $WORK/github.com/pebbe/zmq4.a -trimpath $WORK -p github.com/pebbe/zmq4 -buildid 7a7533efa153efa529b469cdae8553218e53b461 -D _/Users/wgillmer/workspace/go/src/github.com/pebbe/zmq4 -I $WORK -pack ./doc.go ./reactor.go ./utils.go $WORK/github.com/pebbe/zmq4/_obj/_cgo_gotypes.go $WORK/github.com/pebbe/zmq4/_obj/auth.cgo1.go $WORK/github.com/pebbe/zmq4/_obj/ctxoptions_unix.cgo1.go $WORK/github.com/pebbe/zmq4/_obj/errors.cgo1.go $WORK/github.com/pebbe/zmq4/_obj/polling.cgo1.go $WORK/github.com/pebbe/zmq4/_obj/socketget.cgo1.go $WORK/github.com/pebbe/zmq4/_obj/socketget_unix.cgo1.go $WORK/github.com/pebbe/zmq4/_obj/socketset.cgo1.go $WORK/github.com/pebbe/zmq4/_obj/zmq4.cgo1.go $WORK/github.com/pebbe/zmq4/_obj/_cgo_import.go
# github.com/pebbe/zmq4
workspace/go/src/github.com/pebbe/zmq4/reactor.go:57: cannot use events (type State) as type int in field value
workspace/go/src/github.com/pebbe/zmq4/reactor.go:57: cannot use handler (type func(State) error) as type func(int) error in field value
workspace/go/src/github.com/pebbe/zmq4/reactor.go:68: cannot use props.e (type int) as type State in argument to r.p.Add
workspace/go/src/github.com/pebbe/zmq4/reactor.go:187: cannot use item.Events (type State) as type int in argument to r.sockets[item.Socket].f
pebbe commented 7 years ago

I asked about this on golang-nuts. https://groups.google.com/forum/#!topic/golang-nuts/VHGqqmpAZDE

pebbe commented 7 years ago

@daemonza Can you please do the following:

go get -work github.com/pebbe/zmq4

This will print out a directory name were it stores temporary files. Put all the contents of that directory in a zipfile and send it to me.

daemonza commented 7 years ago

Here is the output files from the go get -work

gotgetwork_pebbezmq4.zip

pebbe commented 7 years ago

I submiitted this bug report: https://github.com/golang/go/issues/19801

Do you get the same error with version 1.7 of Go? Can you test this?