23:05:34
icon

とりあえず今日はここまで。多少は進められたかな…

23:05:09
icon

Archだったら新し目のclang入ってるだろうし、これでビルドできるかどうかを判断材料にすれば良いんだろうか?

23:02:43
icon

www2.kobe-u.ac.jp/~lerl2/l_cc_

-fvisibility=defaultもしくはprotectedならOpenDHTのtoolsのビルドは通る。もともとhiddenだった場合、default/protectedのどちらへ置き換えるのが適切なんだろう。見えないシンボルに上書きしようが何しようが問題は無いけど、見えてしまっているシンボルに上書きして意図しない動作を起こされるくらいなら、上書きを禁止してライブラリの動作を守る側に振っておく方が良いのかなという気はする。

22:47:43
icon

ConoHaはOpenBSD使えるのか。とはいえGMO系は避けたいんだよな…他の選択肢を探そう。

22:40:00
icon

OPENDHT_IMPORT __attribute__ ((visibility ("default"), type_visibility ("default")))
OPENDHT_EXPORT __attribute__ ((visibility ("default"), type_visibility ("default")))
OPENDHT_HIDDEN __attribute__ ((visibility ("hidden"), type_visibility("hidden")))

こいつを仕込んだところで改善しないか…それにCではtype_visibility使うなって怒られるし。

22:13:10
icon

attributeのtype_visibilityは今のところclang専用。libcxx.llvm.org/DesignDocs/Vis
問題がこれがいつごろから生えてきたかってことになるんだが…
clang-13.0には無い releases.llvm.org/13.0.0/tools
clang-14.0にも無い
releases.llvm.org/14.0.0/tools
clang-15.0には有る
releases.llvm.org/15.0.0/tools

ってことはclang-13.0と16.0だとビルドによる結果が変わる可能性はあるのかもしれない。

Symbol Visibility Macros — libc++ documentation
Attributes in Clang — Clang 13 documentation
Attributes in Clang — Clang 14.0.0 documentation
Attributes in Clang — Clang 15.0.0 documentation
22:04:08
icon

あれなんなんでしょうかね、何もしてないのにYouTubeが再生速度2倍になってるの。リロードとかすると治るんだけど…いきなりアレを食らうとちょっと焦る。

21:16:32
icon

Symbol Visibility in OpenEXR openexr.com/en/latest/SymbolVi
ん?この表??

21:14:29
icon

Slackware-15.0はclang-13, OpenBSD-current(7.5beta)はclang-16。
どっちも-fvisibility=hiddenは効いていて、Slackwareならopendht/toolsのビルドは通る。

特にこのオプション/attribute絡みのバグって無い気がするんだけど…なんかあるのかなあ。

21:03:54
icon

(でもSlackware-15.0/i686上ではclangでも問題なくビルドできてたような)

21:03:23
icon

OPENDHT_IMPORT __attribute__ ((visibility ("default")))
OPENDHT_EXPORT __attribute__ ((visibility ("default")))
OPENDHT_HIDDEN __attribute__ ((visibility ("hidden")))

このattribute、clangで通るのか?

21:01:04
icon

OpenBSD-ports化したOpenDHT、付属toolsのビルドだけでなくmrefdのビルドでもリンクがうまくいかない(no referenceだかなんだかのエラーが出る)という問題で頭抱えてるんだけど…

openbsd-current-vm# diff configure.ac~ configure.ac
22c22
< [CXXFLAGS="${CXXFLAGS} -O3 -Wno-deprecated -pedantic-errors -fvisibility=hidden"])
---
> [CXXFLAGS="${CXXFLAGS} -O3 -Wno-deprecated -pedantic-errors -fvisibility=default"])
openbsd-current-vm#

この修正でtoolsのビルドが通ってる。fvisibilityの指定、Linuxでも特に変わらないはずだったよな…?

20:23:39
icon

RAM2~4G、ストレージ100GB、CPUコア2~4個、OpenBSDを載せられる\1k以下/月の国内VPSなんてそうそう無いよねえ…

18:01:09
icon

VPSのメモリを増やすのは簡単じゃないけど、swap増やすのはもっと簡単じゃないかも。多分起動時にあれこれ動くのでmrefd殺されてる気がする。OpenBSDもカーネルのリンクし直しが最初に走るし…

14:26:03
icon

^[0-9]?[A-Z]{1,2}[0-9]{1,2}[A-Z]{1,4}(()|(/[A-Z0-9]{1,3}|-[A-Z0-9]))(()|([ ]*[A-Z]))$

^[0-9]?[A-Z]{1,2}[0-9]{1,2}[A-Z]{1,4}(($)|(/[A-Z0-9]{1,3}$|-[A-Z0-9]$)|([ ]*[A-Z]$)|((/[A-Z0-9]{1,3}|-[A-Z0-9])[ ]*[A-Z]$))

…これでいいのかなあ?

14:13:24
icon

分解するとこうなるのか。
^[0-9]?[A-Z]{1,2}[0-9]{1,2}[A-Z]{1,4}
(()|(/[A-Z0-9]{1,3}|-[A-Z0-9]))
(()|([ ]*[A-Z]))
$

で、()の部分が嫌なんだって、POSIX regex。流石にこれは4通りのパターンに展開しないとダメ?

14:04:50
icon

clientRegEx = std::regex("^[0-9]?[A-Z]{1,2}[0-9]{1,2}[A-Z]{1,4}(()|(/[A-Z0-9]{1,3}|-[A-Z0-9]))(()|([ ]*[A-Z]))$", std::regex::extended);
こいつが
libc++abi: terminating with uncaught exception of type std::__1::regex_error: An empty regex is not allowed in the POSIX grammar.
で引っかかるんだけどどう直したもんか…