憂鬱な午後のひととき

1月31日_

nakameguro_feature.cpp vol.15参加

filesystem周りは正直自分でラッパークラス作って使う方が楽だよなと思ってしまう(OSの差が大きくて最小必要な部分しか共通化したくない).

1月30日_

issue

なんか最近いろいろ立つので対応しんどい.

1月27日_

CからGoを呼ぶ

cgoのcallback関数にGoの関数を登録するやりかたをようやく理解できた. かなり面倒だがとりあえず動くようになった. あとでまとめる.

1月22日_

Goのfull slice expressions

Slice expressions

// a[low : high : max]
a := [5]int{1, 2, 3, 4, 5}
t := a[1:3:5]

[:size:size]が何かと思ったらこんなのがあったんだ. へぇ.

奈良の実家に泊まっていてSCISのため京都に行こうとしたら近鉄特急が運休していて焦った. 信号故障らしい. 結局京都駅まで2時間半ぐらい掛かった.

1月21日_

SCAIS 2019初参加

今までなんとなく存在は知っていたけど, どうやって申し込んだらよいのか分からなかった(あとSCISの前なので余計に宿泊が必要なのも気後れしてた).

今回は発表側で参加なので気が楽(準備は大変). 発表資料は「Spectre/Meltdownとその派生」. とりあえず速度命なものにとっては嫌な話だな.

1月17日_

C++17勉強会

string_viewの話. 以前, 規格が確定する前に少し調べていたのだった(string_view).

1月13日_

Re: templateクラスのstatic変数のexport

わかった. templateクラス本体に手を入れるのではなく 明示的templateクラスの生成時(explicit template instantiation)に__declspecをつけるのだった(var.hpp).

#ifdef DLL_EXPORT
    #define DLL_API __declspec(dllexport)
#else
    #define DLL_API __declspec(dllimport)
#endif
template struct DLL_API X<int>;

これを使えばやりたいことが出来るかな. 試してみよう.

1月11日_

生態系を巡る窒素:足りないのか余っているのか

面白かった. 雨やちりから来る窒素と森林が循環させて排出する窒素とどのように見分けるのか. NとOのそれぞれの同位体を組み合わせるらしい.

1月5日_

cgo on Linux/mingw/Mac

いろいろ微妙に異なっていてはまった.

LinuxのLD_LIBRARY_PATHはMacではDYLD_LIBRARY_PATHを使う.

相対パス指定で共有ライブラリをリンクしたexeをPythonから呼び出すとMacでライブラリが見つからず実行時エラー.

otool -L <実行ファイル>

でlib/libmcl.dylibとなっていた. これはinstall_name_toolで

install_name_tool bin/bls_smpl.exe -change lib/libmcl.dylib $(MCL_DIR)/lib/libmcl.dylib

と絶対パスに変更したらうまくいった(そもそもリンク時に絶対パスにすればよさそうだがよく分からなかった).

CGO_CFLAGSはかなりはまった. Linuxでは相対パスでよいのにmingwでは絶対パスでないといけないようだ.

加えて一番悩んだのはcgoから呼び出すヘッダがさらに別のヘッダを呼び出しているとき, その絶対パスは/c/pathではだめでc:/pathの形でないといけない模様(cgoが直接呼ぶヘッダは/c/pathでもOK).

pwdで取得したパスをsedで置換することにした. これはcgoのバグなんじゃなかろうか(後でもう一度調べる).

1月4日_

畝傍山

久しぶりに登る. 朝の6時頃なのでこけたりしないよう慎重に.

1月3日_

準備

実家はインターネットにつながってないのでSCISの資料作りなど手元でできることをちょっとずつ.

1月2日_

実家で散歩

流石にまた怪我するのはごめんなので明け方でも道がわかるところを散歩.


御意見は光成滋生<herumi@nifty.com>までお願いします