Re: [go-nuts] missing $GOPATH

2019-09-30 Thread Dan Kortschak
Filed https://golang.org/issue/34628

On Fri, 2019-09-27 at 15:19 +0930, Dan Kortschak wrote:
> Looking into it it appears that there's active work in
> go/build.defaultGOPATH that makes returning an informative error
> message impossible.
> 
> This made sense when it was done in 428df5e39c0[1], but since then
> 57568958774[2] has gone in which changes the message from something
> that was useful to something that is now almost devoid of
> information.
> 
> was:
> ```
> go install: no install location for directory
> /home/user/src/path.org/to/package outside GOPATH
>   For more details see: 'go help gopath'
> ```
> 
> now:
> ```
> missing $GOPATH
> ```
> 
> ISTM that the warning provided before 428df5e39c0 is now the better
> option in terms of confusion. Perhaps that warning could be an error
> so
> that functional behaviour that exists now would remain, but with an
> actual explanation. Stopping with this error would be helpful:
> 
> ```
> warning: GOPATH set to GOROOT (/home/user/go) has no effect
> ```
> 
> 
> [1]https://go-review.googlesource.com/c/go/+/33105/
> [2]https://go-review.googlesource.com/c/go/+/118095/
> 
> 
> On Fri, 2019-09-27 at 12:51 +0930, Dan Kortschak wrote:
> > Yes, that explains it. Perhaps the error could be more informative.
> > 
> > On Thu, 2019-09-26 at 20:19 -0700, Ian Lance Taylor wrote:
> > > On Thu, Sep 26, 2019 at 7:36 PM Dan Kortschak 
> > > wrote:
> > > > 
> > > > I am looking at some changes we have made to make code
> > > > generation
> > > > independent of GOPATH since from the SettingGOPATH page of the
> > > > wiki
> > > > says "If no GOPATH is set, it is assumed to be $HOME/go on Unix
> > > > systems
> > > > and %USERPROFILE%\go on Windows."
> > > > 
> > > > However, when I run `go env` I see `missing $GOPATH` in
> > > > response.
> > > > 
> > > > ```
> > > > ~ $ go env
> > > > GO111MODULE="on"
> > > > GOARCH="amd64"
> > > > GOBIN="/home/user/bin"
> > > > GOCACHE="/home/user/.cache/go-build"
> > > > GOENV="/home/user/.config/go/env"
> > > > GOEXE=""
> > > > GOFLAGS=""
> > > > GOHOSTARCH="amd64"
> > > > GOHOSTOS="linux"
> > > > GONOPROXY=""
> > > > GONOSUMDB=""
> > > > GOOS="linux"
> > > > GOPATH="/home/user"
> > > > GOPRIVATE=""
> > > > GOPROXY="https://proxy.golang.org,direct;
> > > > GOROOT="/home/user/go"
> > > > GOSUMDB="sum.golang.org"
> > > > GOTMPDIR=""
> > > > GOTOOLDIR="/home/user/go/pkg/tool/linux_amd64"
> > > > 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-build038144482=/tmp/go-build -gno-record-gcc-
> > > > switches"
> > > > ~ $ unset GOPATH
> > > > ~ $ go env
> > > > missing $GOPATH
> > > > ```
> > > > 
> > > > Is this expected now?
> > > 
> > > The problem you are encountering is that /home/user/go is already
> > > being used for GOROOT, so it can't be used for GOPATH.  If the
> > > default
> > > location is unavailable, there is no fallback, so you get
> > > "missing
> > > $GOPATH".
> > > 
> > > 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 golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/a08470225fa8e0ccf7c1ab7f252277474ae6a2b0.camel%40kortschak.io.


Re: [go-nuts] missing $GOPATH

2019-09-26 Thread Dan Kortschak
Looking into it it appears that there's active work in
go/build.defaultGOPATH that makes returning an informative error
message impossible.

This made sense when it was done in 428df5e39c0[1], but since then
57568958774[2] has gone in which changes the message from something
that was useful to something that is now almost devoid of information.

was:
```
go install: no install location for directory
/home/user/src/path.org/to/package outside GOPATH
For more details see: 'go help gopath'
```

now:
```
missing $GOPATH
```

ISTM that the warning provided before 428df5e39c0 is now the better
option in terms of confusion. Perhaps that warning could be an error so
that functional behaviour that exists now would remain, but with an
actual explanation. Stopping with this error would be helpful:

```
warning: GOPATH set to GOROOT (/home/user/go) has no effect
```


[1]https://go-review.googlesource.com/c/go/+/33105/
[2]https://go-review.googlesource.com/c/go/+/118095/


On Fri, 2019-09-27 at 12:51 +0930, Dan Kortschak wrote:
> Yes, that explains it. Perhaps the error could be more informative.
> 
> On Thu, 2019-09-26 at 20:19 -0700, Ian Lance Taylor wrote:
> > On Thu, Sep 26, 2019 at 7:36 PM Dan Kortschak 
> > wrote:
> > > 
> > > I am looking at some changes we have made to make code generation
> > > independent of GOPATH since from the SettingGOPATH page of the
> > > wiki
> > > says "If no GOPATH is set, it is assumed to be $HOME/go on Unix
> > > systems
> > > and %USERPROFILE%\go on Windows."
> > > 
> > > However, when I run `go env` I see `missing $GOPATH` in response.
> > > 
> > > ```
> > > ~ $ go env
> > > GO111MODULE="on"
> > > GOARCH="amd64"
> > > GOBIN="/home/user/bin"
> > > GOCACHE="/home/user/.cache/go-build"
> > > GOENV="/home/user/.config/go/env"
> > > GOEXE=""
> > > GOFLAGS=""
> > > GOHOSTARCH="amd64"
> > > GOHOSTOS="linux"
> > > GONOPROXY=""
> > > GONOSUMDB=""
> > > GOOS="linux"
> > > GOPATH="/home/user"
> > > GOPRIVATE=""
> > > GOPROXY="https://proxy.golang.org,direct;
> > > GOROOT="/home/user/go"
> > > GOSUMDB="sum.golang.org"
> > > GOTMPDIR=""
> > > GOTOOLDIR="/home/user/go/pkg/tool/linux_amd64"
> > > 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-build038144482=/tmp/go-build -gno-record-gcc-
> > > switches"
> > > ~ $ unset GOPATH
> > > ~ $ go env
> > > missing $GOPATH
> > > ```
> > > 
> > > Is this expected now?
> > 
> > The problem you are encountering is that /home/user/go is already
> > being used for GOROOT, so it can't be used for GOPATH.  If the
> > default
> > location is unavailable, there is no fallback, so you get "missing
> > $GOPATH".
> > 
> > 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 golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/9e977076b90f6d1f0477f9dbc3ac48dc74bb9e69.camel%40kortschak.io.


Re: [go-nuts] missing $GOPATH

2019-09-26 Thread Dan Kortschak
Yes, that explains it. Perhaps the error could be more informative.

On Thu, 2019-09-26 at 20:19 -0700, Ian Lance Taylor wrote:
> On Thu, Sep 26, 2019 at 7:36 PM Dan Kortschak 
> wrote:
> > 
> > I am looking at some changes we have made to make code generation
> > independent of GOPATH since from the SettingGOPATH page of the wiki
> > says "If no GOPATH is set, it is assumed to be $HOME/go on Unix
> > systems
> > and %USERPROFILE%\go on Windows."
> > 
> > However, when I run `go env` I see `missing $GOPATH` in response.
> > 
> > ```
> > ~ $ go env
> > GO111MODULE="on"
> > GOARCH="amd64"
> > GOBIN="/home/user/bin"
> > GOCACHE="/home/user/.cache/go-build"
> > GOENV="/home/user/.config/go/env"
> > GOEXE=""
> > GOFLAGS=""
> > GOHOSTARCH="amd64"
> > GOHOSTOS="linux"
> > GONOPROXY=""
> > GONOSUMDB=""
> > GOOS="linux"
> > GOPATH="/home/user"
> > GOPRIVATE=""
> > GOPROXY="https://proxy.golang.org,direct;
> > GOROOT="/home/user/go"
> > GOSUMDB="sum.golang.org"
> > GOTMPDIR=""
> > GOTOOLDIR="/home/user/go/pkg/tool/linux_amd64"
> > 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-build038144482=/tmp/go-build -gno-record-gcc-switches"
> > ~ $ unset GOPATH
> > ~ $ go env
> > missing $GOPATH
> > ```
> > 
> > Is this expected now?
> 
> The problem you are encountering is that /home/user/go is already
> being used for GOROOT, so it can't be used for GOPATH.  If the
> default
> location is unavailable, there is no fallback, so you get "missing
> $GOPATH".
> 
> 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 golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/ba564b7a07a05c703cca949c7c807cd9aa0c0bb7.camel%40kortschak.io.


Re: [go-nuts] missing $GOPATH

2019-09-26 Thread Ian Lance Taylor
On Thu, Sep 26, 2019 at 7:36 PM Dan Kortschak  wrote:
>
> I am looking at some changes we have made to make code generation
> independent of GOPATH since from the SettingGOPATH page of the wiki
> says "If no GOPATH is set, it is assumed to be $HOME/go on Unix systems
> and %USERPROFILE%\go on Windows."
>
> However, when I run `go env` I see `missing $GOPATH` in response.
>
> ```
> ~ $ go env
> GO111MODULE="on"
> GOARCH="amd64"
> GOBIN="/home/user/bin"
> GOCACHE="/home/user/.cache/go-build"
> GOENV="/home/user/.config/go/env"
> GOEXE=""
> GOFLAGS=""
> GOHOSTARCH="amd64"
> GOHOSTOS="linux"
> GONOPROXY=""
> GONOSUMDB=""
> GOOS="linux"
> GOPATH="/home/user"
> GOPRIVATE=""
> GOPROXY="https://proxy.golang.org,direct;
> GOROOT="/home/user/go"
> GOSUMDB="sum.golang.org"
> GOTMPDIR=""
> GOTOOLDIR="/home/user/go/pkg/tool/linux_amd64"
> 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-build038144482=/tmp/go-build -gno-record-gcc-switches"
> ~ $ unset GOPATH
> ~ $ go env
> missing $GOPATH
> ```
>
> Is this expected now?

The problem you are encountering is that /home/user/go is already
being used for GOROOT, so it can't be used for GOPATH.  If the default
location is unavailable, there is no fallback, so you get "missing
$GOPATH".

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 golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAOyqgcXj-DG3XwjmvN9s53s7gzxjextQHmW-y4xi7iSTqNATzg%40mail.gmail.com.


[go-nuts] missing $GOPATH

2019-09-26 Thread Dan Kortschak
I am looking at some changes we have made to make code generation
independent of GOPATH since from the SettingGOPATH page of the wiki
says "If no GOPATH is set, it is assumed to be $HOME/go on Unix systems
and %USERPROFILE%\go on Windows."

However, when I run `go env` I see `missing $GOPATH` in response.

```
~ $ go env
GO111MODULE="on"
GOARCH="amd64"
GOBIN="/home/user/bin"
GOCACHE="/home/user/.cache/go-build"
GOENV="/home/user/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/user"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct;
GOROOT="/home/user/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/home/user/go/pkg/tool/linux_amd64"
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-build038144482=/tmp/go-build -gno-record-gcc-switches"
~ $ unset GOPATH
~ $ go env
missing $GOPATH
```

Is this expected now?

-- 
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/7536d03f16ae4e8fbac04aec18c1f9c7bb5d369e.camel%40kortschak.io.