nakameguro_feature.cpp vol.15参加
filesystem周りは正直自分でラッパークラス作って使う方が楽だよなと思ってしまう(OSの差が大きくて最小必要な部分しか共通化したくない).
nakameguro_feature.cpp vol.15参加
filesystem周りは正直自分でラッパークラス作って使う方が楽だよなと思ってしまう(OSの差が大きくて最小必要な部分しか共通化したくない).
issue
なんか最近いろいろ立つので対応しんどい.
CからGoを呼ぶ
cgoのcallback関数にGoの関数を登録するやりかたをようやく理解できた. かなり面倒だがとりあえず動くようになった. あとでまとめる.
Goのfull slice expressions
// a[low : high : max] a := [5]int{1, 2, 3, 4, 5} t := a[1:3:5]
[:size:size]が何かと思ったらこんなのがあったんだ. へぇ.
奈良の実家に泊まっていてSCISのため京都に行こうとしたら近鉄特急が運休していて焦った. 信号故障らしい. 結局京都駅まで2時間半ぐらい掛かった.
SCAIS 2019初参加
今までなんとなく存在は知っていたけど, どうやって申し込んだらよいのか分からなかった(あとSCISの前なので余計に宿泊が必要なのも気後れしてた).
今回は発表側で参加なので気が楽(準備は大変). 発表資料は「Spectre/Meltdownとその派生」. とりあえず速度命なものにとっては嫌な話だな.
string_viewの話. 以前, 規格が確定する前に少し調べていたのだった(string_view).
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>;
これを使えばやりたいことが出来るかな. 試してみよう.
面白かった. 雨やちりから来る窒素と森林が循環させて排出する窒素とどのように見分けるのか. NとOのそれぞれの同位体を組み合わせるらしい.
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のバグなんじゃなかろうか(後でもう一度調べる).
畝傍山
久しぶりに登る. 朝の6時頃なのでこけたりしないよう慎重に.
準備
実家はインターネットにつながってないのでSCISの資料作りなど手元でできることをちょっとずつ.
実家で散歩
流石にまた怪我するのはごめんなので明け方でも道がわかるところを散歩.