import を全て絶対パスにした

こんな感じに

-       "../completion"
-       "../shell"
+       "github.com/zetamatta/nyagos/completion"
+       "github.com/zetamatta/nyagos/shell"

これにより:

  • ソースを GOPATH 内に置けなかった
  • go get github.com/zetamatta/nyagos で全ソースをダウンロードできなかった。
    git clone http://github.com/zetamatta/nyagos/ は可能)

が解消する。そのかわり

  • ソースの置き場が $GOPATH/src/github.com/zetamatta/nyagos と一意になってしまう。
    • amd64 用のビルド場所はこちら、386 用のビルド場所はこちらと、複数設けることができなくなってしまう。
      (lua53.dll が 64bit 用も 32bit 用も同じ名前なので、同じ場所におけない)

という問題が発生してしまう。

いろいろと検討した結果、とりあえず現行の自分のビルド環境は次のようにすることにした。

  • メインのメンテナンスディレクトリは ~/go/nyagos から ~/go/src/github.com/zetamatta/nyagos に変更 (ここでamd64用ビルドする)
    • 移動が大変なので lnk ~/go/src/github.com/zetamatta/nyagos ~ でショートカットを張る
  • 386 ビルド用ディレクトリは従来どおり ~/go/386-nyagos のまま
    • ただしビルド専用。import の先が ~/go/src/github.com/zetamatta/nyagos になってしまうので、ソースの編集はこちらではできない

でいこうと思う。

将来的には ~/go/src/github.com/zetamatta/nyagos のいたまま amd64 も 386 もビルドできるようにしたい。 そのためには、今 ~/go/src/github.com/zetamatta/nyagos 直下にある lua53.dll を適当なサブフォルダーに移動させなくてはいけない。 でも、lua53.dll って git に登録していないバイナリファイルなので、移動させるとなるとソースからビルドしてくれているユーザにそれをアナウンスしなくちゃ いけないんですよね…むーん。

lua53.dll も git に登録しちうという手もあるが、そうすると git clone とか go get でバイナリファイルがダウンロードされるので、 アンチウィルスにひっかかってしまう可能性が出てきてしまうという…

将来的に $GOPATH 以下でも、相対パスの import ができるようにならないですかね (これ、なぜできないようにしたんでしょうね)

追記

「386 と amd64 で $GOPATH を分ける」という方法を思いついた。いずれやってみよう