遅めに帰着。
32bit MinGW-gdc調査。普通の関数呼び出しとクラスのメソッド呼び出しの
gimpleを見比べたり。
以下のようなコードをコンパイラオプション「-g -fdump-tree-all -O0 -frelease」
でコンパイルしてみました。
1: void main() 2: { 3: Foo f = new Foo() ; 4: 5: size_t function(in void*) tF=&testFunc; 6: size_t delegate() dg_footestfunc = &f.FootestFunc ; 7: 8: tF(cast(void*)f) ; 9: testFunc(cast(void*)f) ; 10: f.FootestFunc() ; 11: dg_footestfunc() ; 12: }
1:D main () 2:{ 3: struct Object & D.5360; 4: int (*<T6e>) () * D.5361; 5: uint Foo::<T8e3> (struct Foo *) * D.5362; 6: int (*<T6e>) () * D.5363; 7: uint Foo::<T8e3> (struct Foo *) * D.5364; 8: uint void::<T952> (void *) * D.5365; 9: void * D.5366; 10: int D.5367; 11: struct uint delegate() dg_footestfunc; 12: uint (*<T950>) (const void * const) tF; 13: struct Foo & f; 14: 15: try 16: { 17: D.5360 = _d_newclass (&mingwgdcfailed_test3.Foo.__Class); 18: f = __ctor (D.5360); 19: tF = testFunc; 20: D.5361 = f->__vptr; 21: D.5362 = MEM[(uint Foo::<T8e3> (struct Foo *) *)D.5361 + 20B]; 22: dg_footestfunc.object = f; 23: dg_footestfunc.func = D.5362; 24: tF (f); 25: testFunc (f); 26: D.5363 = f->__vptr; 27: D.5364 = MEM[(uint Foo::<T8e3> (struct Foo *) *)D.5363 + 20B]; 28: D.5364 (f); 29: D.5365 = dg_footestfunc.func; 30: D.5366 = dg_footestfunc.object; 31: D.5365 (D.5366); 32: D.5367 = 0; 33: return D.5367; 34: } 35: finally 36: { 37: dg_footestfunc = {CLOBBER}; 38: } 39:}
004013b6 <__Dmain>: 4013b6: 55 push %ebp 4013b7: 89 e5 mov %esp,%ebp 4013b9: 83 ec 28 sub $0x28,%esp 4013bc: c7 04 24 00 00 49 00 movl $0x490000,(%esp) 4013c3: e8 68 89 01 00 call 419d30 <__d_newclass> 4013c8: 89 c1 mov %eax,%ecx 4013ca: e8 ac ff ff ff call 40137b <__D20mingwgdcfailed_test33Foo6__ctorMFZC20mingwgdcfailed_test33Foo> 4013cf: 89 45 f4 mov %eax,-0xc(%ebp) 4013d2: c7 45 f0 4a 13 40 00 movl $0x40134a,-0x10(%ebp) 4013d9: 8b 45 f4 mov -0xc(%ebp),%eax 4013dc: 8b 00 mov (%eax),%eax 4013de: 8b 40 14 mov 0x14(%eax),%eax 4013e1: 8b 55 f4 mov -0xc(%ebp),%edx 4013e4: 89 55 e8 mov %edx,-0x18(%ebp) 4013e7: 89 45 ec mov %eax,-0x14(%ebp) 4013ea: 8b 45 f4 mov -0xc(%ebp),%eax 4013ed: 89 04 24 mov %eax,(%esp) 4013f0: 8b 45 f0 mov -0x10(%ebp),%eax 4013f3: ff d0 call *%eax # tF (f) 4013f5: 8b 45 f4 mov -0xc(%ebp),%eax 4013f8: 89 04 24 mov %eax,(%esp) 4013fb: e8 4a ff ff ff call 40134a <__D20mingwgdcfailed_test38testFuncFxPvZk> # testFunc (f) 401400: 8b 45 f4 mov -0xc(%ebp),%eax 401403: 8b 00 mov (%eax),%eax 401405: 8b 40 14 mov 0x14(%eax),%eax 401408: 8b 55 f4 mov -0xc(%ebp),%edx 40140b: 89 d1 mov %edx,%ecx 40140d: ff d0 call *%eax # D.5364 (f) 40140f: 8b 45 ec mov -0x14(%ebp),%eax 401412: 8b 55 e8 mov -0x18(%ebp),%edx 401415: 89 d1 mov %edx,%ecx 401417: ff d0 call *%eax # D.5365 (D.5366) 401419: b8 00 00 00 00 mov $0x0,%eax 40141e: c9 leave 40141f: c3 ret
昼前起床。
すっかりほっぽらかしにしていたi686 MinGW-gdcのコンパイルバグ調査を
ちょろっと再開してみたり。
で、今の所の最小コードでも、GIMPLEとかにするとまぁまぁなサイズになる
為、もっと小さくできないかと考えたり。
問題となっているのは、libdruntime/object_.d内の関数呼び出しの
部分(下の981行目)なのですが、xtoHashの中身をどこで設定しているのかが
判らなかったり。
963 class TypeInfo_Struct : TypeInfo 964 { : 976 override size_t getHash(in void* p) @safe pure nothrow const 977 { 978 assert(p); 979 if (xtoHash) 980 { 981 return (*xtoHash)(p); 982 } 983 else 984 { 985 return hashOf(p, init().length); 986 } 987 } : 1063 @safe pure nothrow 1064 { 1065 size_t function(in void*) xtoHash; : 1075 }
1 import std.stdio; 2 3 size_t testFunc(in void* p){ 4 writef("Here is testFunc %08x %08x",&p,p) ; 5 return(0) ; 6 } 7 8 class Foo{ 9 size_t function(in void*) tF; 10 11 this(){ 12 tF = &testFunc ; 13 } 14 15 size_t testfunc(in void* p){ 16 return( tF(p) ) ; 17 } 18 } 19 20 void main() 21 { 22 Foo f = new Foo() ; 23 int *p ; 24 25 f.testfunc(p) ; 26 }
遅めに帰着。
Cygwinの2.0.0-1が来ている模様。アプリアップデートがかかると思うので
落ち着くまで様子見。
遅めに帰着。
DMDの2.067.1がリリースされているようです。変更量が少ないなぁ?
と思ったのですが、2.067.0から1ヶ月しか経っていない
からこんなもんか。
昼前起床。
Cygwinで x86_64 MinGWクロスgdcをビルドしてみたり。ソースはi686 MinGWクロスで
使用したものと同じなのですが、libphobosのビルドでエラー。
ICE(Internal Compiler Error)なのでどうしたもんか。
/home/TANE/develop/dlang/gcc/gdc031_20661_510/GDC-ab7ac60cadc9d6e71a114d1c2948f64b9d0deaa1/build_x86_64mingwcross/./gcc/gdc -B/home/TANE/develop/dlang/gcc/gdc031_20661_510/GDC-ab7ac60cadc9d6e71a114d1c2948f64b9d0deaa1/build_x86_64mingwcross/./gcc/ -L/usr/local/gdc031_20661_510_mingwcross/x86_64-w64-mingw32/lib -L/usr/local/gdc031_20661_510_mingwcross/mingw/lib -isystem /usr/local/gdc031_20661_510_mingwcross/x86_64-w64-mingw32/include -isystem /usr/local/gdc031_20661_510_mingwcross/mingw/include -B/usr/local/gdc031_20661_510_mingwcross/x86_64-w64-mingw32/bin/ -B/usr/local/gdc031_20661_510_mingwcross/x86_64-w64-mingw32/lib/ -isystem /usr/local/gdc031_20661_510_mingwcross/x86_64-w64-mingw32/include -isystem /usr/local/gdc031_20661_510_mingwcross/x86_64-w64-mingw32/sys-include -o std/math.o -Wall -Werror -g -frelease -O2 -nostdinc -pipe -Wno-deprecated -I../../../../gcc-5.1.0/libphobos/src -I../../../../gcc-5.1.0/libphobos/src/../libdruntime -I./libdruntime/x86_64-w64-mingw32 -c ../../../../gcc-5.1.0/libphobos/src/std/math.d ../../../../gcc-5.1.0/libphobos/src/std/math.d: In function 'copysign': ../../../../gcc-5.1.0/libphobos/src/std/math.d:4738:5: internal compiler error: in declare_return_variable, at tree-inline.c:3373 return copysign(cast(R)to, from); ^ ../../../../gcc-5.1.0/libphobos/src/std/math.d:4738:5: internal compiler error: Aborted gdc: internal compiler error: Aborted (program cc1d) Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. Makefile:511: ターゲット 'std/math.o' のレシピで失敗しました
$ cat iam.d import std.stdio; import std.string ; int main() { version( GNU ) writef("I am GNU\n" ) ; version( Unix ) writef("I am Unix\n" ) ; version( linux ) writef("I am linux\n" ) ; version( Windows ) writef("I am Windows\n") ; version( MinGW ) writef("I am MinGW\n" ) ; version( MinGW32 ) writef("I am MinGW32\n") ; version( MinGW64 ) writef("I am MinGW64\n") ; version( cygwin ) writef("I am cygwin\n" ) ; version( Win32 ) writef("I am Win32\n" ) ; version( Win64 ) writef("I am Win64\n" ) ; version( Posix ) writef("I am Posix\n" ) ; version( X86 ) writef("I am X86\n" ) ; version( X86_64 ) writef("I am X86_64\n" ) ; version( ARM_SoftFloat ) writef("I am ARM_SoftFloat\n" ) ; version( ARM ) writef("I am ARM\n" ) ; version( PPC ) writef("I am PPC\n" ) ; version( PPC64 ) writef("I am PPC64\n" ) ; version( PPC_SoftFloat ) writef("I am PPC_SoftFloat\n" ) ; version( PPC_HardFloat ) writef("I am PPC_HardFloat\n" ) ; return(0) ; } $ x86_64-w64-mingw32-gdc -O0 iam.d $ ./a.exe I am GNU I am Windows I am MinGW I am Win64 I am X86_64 $ x86_64-w64-mingw32-gdc -v Using built-in specs. COLLECT_GCC=x86_64-w64-mingw32-gdc COLLECT_LTO_WRAPPER=/usr/local/gdc031_20661_510_mingwcross/libexec/gcc/x86_64-w64-mingw32/5.1.0/lto-wrapper.exe Target: x86_64-w64-mingw32 Configured with: ../gcc-5.1.0/configure --with-pkgversion='gdc-5 ab7ac60cad' --build=i686-pc-cygwin --host=i686-pc-cygwin --target=x86_64-w64-mingw32 --enable-languages=d --prefix=/usr/local/gdc031_20661_510_mingwcross --with-sysroot=/usr/x86_64-w64-mingw32/sys-root --enable-threads --disable-nls --enable-sjlj-exceptions --disable-bootstrap --disable-shared --disable-multilib Thread model: win32 gcc version 5.1.0 (gdc-5 ab7ac60cad)
AM中に起床。
Emacsのdiredのソート機能を拡張する
こちらのブログエントリ(1)
の設定を利用していました。それとは別に、ディレクトリを先に表示するのに
(setq dired-listing-switches "-al --group-directories-first")
てな感じの設定を加えれば良いのを知り試したのですが、ソート拡張がうまく
動かなくなりました。ソート機能拡張ELISPでは、lsのオプション文字列を
モディファイする感じに書かれていたのですが、オプションをいくつも指定する
とか、ロングオプション指定時のモディファイがうまくできていないのが原因
だと判ったり。しかし、正規表現を ちょっと弄るレベルではうまく対応できませんでした。
で、もっと単純な方法として
こちらのブログエントリ(2)
のようなのを知ったり。でもこちらも微妙にうまくいかないコードのようだったので、
二つを合わせた感じにしてみました。
(setq dired-listing-switches "-la --group-directories-first") ; ディレクトリを先頭に (defvar dired-various-sort-type '(("t" . "date") ("S" . "size") ("X" . "extension") ("v" . "version") ("" . "name"))) (defvar dired-current-sort-keypos 0) (make-variable-buffer-local 'dired-current-sort-keypos) (defun dired-various-sort-change (sort-type-alist &optional prior-pair) (when (eq major-mode 'dired-mode) (let* ((opt-desc-pair (nth dired-current-sort-keypos dired-various-sort-type))) (setq dired-actual-switches (concat dired-listing-switches " -l" (car opt-desc-pair))) (setq mode-name (concat "Dired by " (cdr opt-desc-pair))) (force-mode-line-update) (revert-buffer) (setq dired-current-sort-keypos (% (1+ dired-current-sort-keypos) (length dired-various-sort-type))) ))) (defun dired-various-sort-change-or-edit (&optional arg) (interactive "P") (when dired-sort-inhibit (error "Cannot sort this dired buffer")) (if arg (dired-sort-other (read-string "ls switches (must contain -l): " dired-actual-switches)) (dired-various-sort-change dired-various-sort-type))) (define-key dired-mode-map "s" 'dired-various-sort-change-or-edit)
$ ls 0.txt 1.txt 2.txt 3.txt
/bin/mv 0.txt 1.txt /bin/mv 1.txt 2.txt /bin/mv 2.txt 3.txt /bin/mv 3.txt 4.txt
$ cat iam.d import std.stdio; import std.string ; int main() { version( GNU ) writef("I am GNU\n" ) ; version( Unix ) writef("I am Unix\n" ) ; version( linux ) writef("I am linux\n" ) ; version( Windows ) writef("I am Windows\n") ; version( MinGW ) writef("I am MinGW\n" ) ; version( MinGW32 ) writef("I am MinGW32\n") ; version( MinGW64 ) writef("I am MinGW64\n") ; version( cygwin ) writef("I am cygwin\n" ) ; version( Win32 ) writef("I am Win32\n" ) ; version( Win64 ) writef("I am Win64\n" ) ; version( Posix ) writef("I am Posix\n" ) ; version( X86 ) writef("I am X86\n" ) ; version( X86_64 ) writef("I am X86_64\n" ) ; version( ARM_SoftFloat ) writef("I am ARM_SoftFloat\n" ) ; version( ARM ) writef("I am ARM\n" ) ; version( PPC ) writef("I am PPC\n" ) ; version( PPC64 ) writef("I am PPC64\n" ) ; version( PPC_SoftFloat ) writef("I am PPC_SoftFloat\n" ) ; version( PPC_HardFloat ) writef("I am PPC_HardFloat\n" ) ; return(0) ; } $ i686-pc-mingw32-gdc.exe -O2 iam.d $ ./a.exe I am GNU I am Windows I am MinGW I am Win32 I am X86 $ i686-pc-mingw32-gdc.exe -v Using built-in specs. COLLECT_GCC=i686-pc-mingw32-gdc COLLECT_LTO_WRAPPER=/usr/local/gdc031_20661_510_mingwcross/libexec/gcc/i686-pc-mingw32/5.1.0/lto-wrapper.exe Target: i686-pc-mingw32 Configured with: ../gcc-5.1.0/configure --with-pkgversion='gdc-5 ab7ac60cad' --build=i686-pc-cygwin --host=i686-pc-cygwin --target=i686-pc-mingw32 --enable-languages=d --prefix=/usr/local/gdc031_20661_510_mingwcross --with-sysroot=/usr/i686-pc-mingw32/sys-root --enable-threads --disable-nls --enable-sjlj-exceptions --disable-bootstrap Thread model: win32 gcc version 5.1.0 (gdc-5 ab7ac60cad)
$ cat mingwgdcfailed_test2.d import std.stdio; import std.typecons; import std.string; void main() { struct Foo{ string s ; } string dic[Tuple!(Foo,int)] ; Foo x = {s:"foo"} ; dic[tuple(x,0)] = "foo:0" ; } $ i686-pc-mingw32-gdc.exe -O2 mingwgdcfailed_test2.d $ ./a.exe Segmentation fault $ gdb -q ./a.exe Reading symbols from ./a.exe...done. (gdb) run Starting program: /home/TANE/develop/dlang/test/dmd2065gcc490/a.exe [New Thread 15136.0x25b0] Program received signal SIGSEGV, Segmentation fault. 0x0040416b in rt.typeinfo.ti_Ag.TypeInfo_Aa.getHash(const(void*)) (this=..., p=0x4ec9e0 <TypeInfo_S3std8typecons47__T5TupleTS20mingwgdcfailed_test24mainFZ3FooTiZ5Tuple.init$>) at ../../../../gcc-5.1.0/libphobos/libdruntime/rt/typeinfo/ti_Ag.d:129 129 hash = hash * 11 + c; (gdb) where #0 0x0040416b in rt.typeinfo.ti_Ag.TypeInfo_Aa.getHash(const(void*)) (this=..., p=0x4ec9e0 <TypeInfo_S3std8typecons47__T5TupleTS20mingwgdcfailed_test24mainFZ3FooTiZ5Tuple.init$>) at ../../../../gcc-5.1.0/libphobos/libdruntime/rt/typeinfo/ti_Ag.d:129 #1 0x00401337 in mingwgdcfailed_test2.main().Foo.__xtoHash(ref const(mingwgdcfailed_test2.main().Foo)) () #2 0x004ec9e0 in TypeInfo_S4core3sys7windows9threadaux10thread_aux26_SYSTEM_THREAD_INFORMATION.init$ () #3 0x00000000 in ?? () (gdb)
遅めに帰着。
調べ事。うまくいきそうでいかず。
気持ち遅めに帰着。
SAI2の新しいのが出ているのに今気づきました(汗;
いくつかの機能追加とバグ修正が行われたようです。
自動選択の機能はまだ付いていないようです。
遅めに帰着。
ちょろり調べ事。
少し遅めに帰着。
pdf-toolsですが、
Cygwin32と64とで共通のディレクトリパスにインストールしたため、
epdfinfoという実行バイナリは名前を変えるなどして、32と64の両方を
用意しなくてはダメだという事に気づいたり。ひとまずバージョン文字列で
切り替えるようにしてみたものの、rebaseが必要になった時に
ハマリそうだなぁ?と思ったりも。
早めに帰着。ちょうど雨が止んでいる期間に到着できてラッキー。
ちょろり調べ事。
そういやここ最近gdcの
更新頻度が高い気がしたり。2.067.0対応しているという訳ではないのですが、
バグを修正しているもよう。そういや32bitのMinGWでの問題は、その後とくに音沙汰無し。
DConf2015。今年は5月末に
行われるらしい。そういや、DConf2013の時はスライドとビデオが
タイムスケジュール表に
後で整理されて良い感じに公開されたのですが、DConf2014のはYouTubeのどこかに
整理されずに置かれてて、結局 ちゃんと見られませんでした
(一応ここ
にまとまっているようですがスライド単品公開は無いもよう)。
今年はDConf2013のように整理して(後でいちいち探さなくて済むように)
公開される事を期待したいです。
AM中に起床。
掃除したりWeb巡回したり。
昼過ぎ起床。
この前知った「PFUのキーボードコレクション」
の中に、LISP machineのキーボードというのがあるのを知ったり。
Webを散策していると、EmacsのバインドはLISPマシンのキーボード配列に
関係があるような話をちらっと見つけたのですが、本当かなぁ?
と思ったりも。
LISPマシン実機のキーボード写真
を見てみると、Emacsを使う観点からはCtrlキーが正気ではない位置に
あると思います。また、Gosling Emacsも初期のGNU EmacsもUNIX上で動作したの
ですから、少なくともLISPマシンではなく、PDP-11以降のマシンの
キーボード配列に由来しているんじゃないかと思う訳です。
個人的には、年代とMetaキーの存在、UNIXという環境から、
「Sun Type2 keyboard」および「Sun Type3 keyboard」あたりの
キー配列に関係しているんじゃないかと推測します。
因みに「Sun Type1 keyboard」にはMetaキーが存在していないので、
これをベースにキーバインドを割り当てたとは考えにくいと思います。
ESCを押す事でMetaの代わりにしたのは、vt100端末由来
による所だと思うのですが、ELISPの構文的に「M-」は
18.59くらいには既にあったようなので、Metaキーを使うよりも ESCで代替した方が
後という気がします。
以上の推測を踏まえて、Emacsを使う観点から見て 101/106キーボードの
Ctrlキーの位置が「無いわー」は思うのは、そもそもそれに合わせた
物理キー配置でバインドを割り当てた訳ではないからだと考えます。
Emacsを使わない人から見ると「Ctrlキーの位置がそんなに重要なのか?」
と思われるかも知れませんが、車で言うと「アクセルとブレーキの位置が逆」、
ゲームコントローラで言うと「十字キーとボタンが右手左手で逆」、ピアノで言うと
「音階が右から左に向かって高くなる」くらいの感じです。
最初からそうならばどうという事は無いでしょう。でも、途中から変えるのはムリです。
しかしながら、キーボードの場合、前述の例とは違ってソフト的にキー位置を
変更できるのは不幸中の幸いだったのかも知れません。
そういや、viの人は 101/106キーボードの ESCキーの位置に納得
できているのだろうか?と思う事はありますがどうなんだろう?
「C-[」を使う? えー? それって今度はCtrlキーの位置に納得できる?
Emacsのキーボードマクロ実行を範囲指定した領域に適用する
apply-macro-to-region-lines(C-x C-k r)というコマンドがあるのを知ったり。
行毎に同じ処理をするような場合で、対象行数が数千行とかある場合に
便利そうです。
プロ遊の下のEmacsの雑記を
更新してみたり。御参考まで。
そういや一番最初に広く頒布されたとされる GNU-Emacs 15.34のソースアーカイブを
探してみたのですが見つけられず。
気持ち早めに帰着。
Emacs上からGoogle翻訳ができなくなっていた件。
google-translateの方は
対応済みになっていて、elpaのパッケージもアップデート版に
なってました。
text-translator
の方は特に動きは無く。そんな訳で、text-translatorの方は
Excite翻訳をプライマリ
サイトにして、text-translatorとgoogle-translateの両方を
使う感じにしました。
gcc-5がそろそろリリースされそうな予感。でも何故か 5.1としてリリース
されるようです。開発版はgcc-6になっているようで、gdcのmasterブランチも
gcc-6をベースバージョンに切り替えたようです。年1回のリリースで
バージョン番号x.y.z のyをインクリメントするのを辞めて、xを
インクリメントする事にしたのかしら?定期更新にすると、
メジャーバージョンがすぐに上がりすぎるように思ったりも。
早くも無く遅くも無く。
WindowsUpdateでリブートしたついでにCygwinパッケージアップデート
を行ってemacs-w32を24.5化してみたり。とは言え、即、
自前IMEパッチ&野良ビルド版に差し替え。ひとまず乗り換え作業終了。
Cygwin64の方も24.5に差し替え。こちらは
rzl24ozi氏のパッチと
少々の改造を加えてビルド。ひとまず大丈夫そう。
Cygwin64自体を本格的に使っていないので、32の方で問題があったとき
のバックアップという感じで。
早めに帰着。
Web巡回してたらあまりの眠さに急速停止。
気持ち早めに帰着。
先日のgdcバイナリの件。その後、同様の報告が挙げられたようですが、
すぐに直せないという事で一旦保留状態。でも、問題がある事は
認識されたので、修正されるのを期待しよう。
気持ち早めに帰着。
先日のgdcバイナリの件。リンカ呼び出しでエラーする話は
「
why no ld.exe in 2.066.1 Windows builds?」というスレッドに
挙げられてたようです。調べてアップデートする模様。
32bitはまだその先に一山あるのですが、まだそこまでは到達していない模様。
「Windows版を誰か試してくれないだろうか?」的なニュアンス
の書き込みがある辺り、本格的に使っている人は居ないような
雰囲気があります。GNUのツールチェーンはライブラリのリンクとか
楽だと思うのですけどね。
とか書いていたらアップデート版が置かれた模様。早速試してみた所、
リンカの問題は解決されたのですが、やはり次の山にぶつかってみたり。
てか、Windowsで全く試さずに置いているようですね(^^;
$ cat iam.d import std.stdio; import std.string ; int main() { version( GNU ) writef("I am GNU\n" ) ; version( Unix ) writef("I am Unix\n" ) ; version( linux ) writef("I am linux\n" ) ; version( Windows ) writef("I am Windows\n") ; version( MinGW ) writef("I am MinGW\n" ) ; version( MinGW32 ) writef("I am MinGW32\n") ; version( MinGW64 ) writef("I am MinGW64\n") ; version( cygwin ) writef("I am cygwin\n" ) ; version( Win32 ) writef("I am Win32\n" ) ; version( Win64 ) writef("I am Win64\n" ) ; version( Posix ) writef("I am Posix\n" ) ; version( X86 ) writef("I am X86\n" ) ; version( X86_64 ) writef("I am X86_64\n" ) ; version( ARM_SoftFloat ) writef("I am ARM_SoftFloat\n" ) ; version( ARM ) writef("I am ARM\n" ) ; version( PPC ) writef("I am PPC\n" ) ; version( PPC64 ) writef("I am PPC64\n" ) ; version( PPC_SoftFloat ) writef("I am PPC_SoftFloat\n" ) ; version( PPC_HardFloat ) writef("I am PPC_HardFloat\n" ) ; return(0) ; } $ gdc -v Using built-in specs. COLLECT_GCC=C:\MinGW\i686-gdc-2.066.1_gcc4.9.2\i686-w64-mingw32\bin\gdc.exe COLLECT_LTO_WRAPPER=c:/mingw/i686-gdc-2.066.1_gcc4.9.2/i686-w64-mingw32/bin/../libexec/gcc/i686-w64-mingw32/4.9.2/lto-wrapper.exe Target: i686-w64-mingw32 Configured with: /home/build/tmp/build/.build/src/gcc-4.9.2/configure --build=x86_64-build_unknown-linux-gnu --host=i686-w64-mingw32 --target=i686-w64-mingw32 --prefix=/home/build/tmp/install/i686-w64-mingw32 --with-sysroot=/home/build/tmp/install/i686-w64-mingw32/i686-w64-mingw32/sysroot --with-local-prefix=/home/build/tmp/install/i686-w64-mingw32/i686-w64-mingw32/sysroot --enable-languages=c,c++,d --with-arch=i686 --disable-shared --with-pkgversion='crosstool-NG 1.20.0 - 20150413-2.066.1-f378f9ab41' --with-bugurl=http://bugzilla.gdcproject.org --enable-__cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libsanitizer --with-gmp=/home/build/tmp/build/.build/i686-w64-mingw32/buildtools/complibs-host --with-mpfr=/home/build/tmp/build/.build/i686-w64-mingw32/buildtools/complibs-host --with-mpc=/home/build/tmp/build/.build/i686-w64-mingw32/buildtools/complibs-host --with-isl=/home/build/tmp/build/.build/i686-w64-mingw32/buildtools/complibs-host --with-cloog=/home/build/tmp/build/.build/i686-w64-mingw32/buildtools/complibs-host --with-libelf=/home/build/tmp/build/.build/i686-w64-mingw32/buildtools/complibs-host --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --enable-threads=win32 --disable-win32-registry --enable-target-optspace --disable-nls --disable-multilib --enable-c99 --enable-long-long Thread model: win32 gcc version 4.9.2 (crosstool-NG 1.20.0 - 20150413-2.066.1-f378f9ab41) $ gdc iam.d c:/mingw/i686-gdc-2.066.1_gcc4.9.2/i686-w64-mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../lib/libgphobos2.a(thread.o): In function `_lambda3': /home/build/tmp/build/.build/src/gcc-4.9.2/libphobos/libdruntime/core/thread.d:1983: undefined reference to `D2rt5tlsgc4initFZPv' c:/mingw/i686-gdc-2.066.1_gcc4.9.2/i686-w64-mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../lib/libgphobos2.a(thread.o): In function `D4core6thread6Thread6__dtorMFZv': /home/build/tmp/build/.build/src/gcc-4.9.2/libphobos/libdruntime/core/thread.d:633: undefined reference to `D2rt5tlsgc7destroyFPvZv' c:/mingw/i686-gdc-2.066.1_gcc4.9.2/i686-w64-mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../lib/libgphobos2.a(thread.o): In function `thread_entryPoint@4': /home/build/tmp/build/.build/src/gcc-4.9.2/libphobos/libdruntime/core/thread.d:193: undefined reference to `D2rt5tlsgc4initFZPv' c:/mingw/i686-gdc-2.066.1_gcc4.9.2/i686-w64-mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../lib/libgphobos2.a(thread.o): In function `thread_attachThis': /home/build/tmp/build/.build/src/gcc-4.9.2/libphobos/libdruntime/core/thread.d:1903: undefined reference to `D2rt5tlsgc4initFZPv' c:/mingw/i686-gdc-2.066.1_gcc4.9.2/i686-w64-mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../lib/libgphobos2.a(thread.o): In function `thread_attachByAddrB': /home/build/tmp/build/.build/src/gcc-4.9.2/libphobos/libdruntime/core/thread.d:1968: undefined reference to `D2rt5tlsgc4initFZPv' c:/mingw/i686-gdc-2.066.1_gcc4.9.2/i686-w64-mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../lib/libgphobos2.a(thread.o): In function `D4core6thread15scanAllTypeImplFNbMDFNbE4core6thread8ScanTypePvPvZvPvZv': /home/build/tmp/build/.build/src/gcc-4.9.2/libphobos/libdruntime/core/thread.d:2666: undefined reference to `D2rt5tlsgc4scanFNbPvMDFNbPvPvZvZv' c:/mingw/i686-gdc-2.066.1_gcc4.9.2/i686-w64-mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../lib/libgphobos2.a(thread.o): In function `thread_processGCMarks': /home/build/tmp/build/.build/src/gcc-4.9.2/libphobos/libdruntime/core/thread.d:2896: undefined reference to `D2rt5tlsgc14processGCMarksFNbPvMDFNbPvZiZv' collect2.exe: error: ld returned 1 exit status
昼頃起床。
掃除したり。
そういや少し前に、gdcの
実行アーカイブ置き場に新しいバージョンのを置いてくれないかなぁ?と
書いたのですが、先週 2.066.1+gcc4.9.2ベース のバイナリが置かれていた
ようです。でも、リンカをうまく起動できず。うーむ。
因みに、gdc -v で表示されるconfigureオプションを見る限り、
linuxでクロスビルドしているようです。
binutilsをバイナリに合わせてビルドしたり。ひとまずリンカは動く
ようになったものの、いくつかシンボルが見つからなくて結局
リンクに失敗。うーむ。このバイナリが使える事は確認されている
のだろうか?
$ gdc iam.d c:/mingw/i686-gdc-2.066.1_gcc4.9.2/i686-w64-mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../lib/libgphobos2.a(thread.o): In function `_lambda3': /home/build/tmp/build/.build/src/gcc-4.9.2/libphobos/libdruntime/core/thread.d:1983: undefined reference to `D2rt5tlsgc4initFZPv' c:/mingw/i686-gdc-2.066.1_gcc4.9.2/i686-w64-mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../lib/libgphobos2.a(thread.o): In function `D4core6thread6Thread6__dtorMFZv': /home/build/tmp/build/.build/src/gcc-4.9.2/libphobos/libdruntime/core/thread.d:633: undefined reference to `D2rt5tlsgc7destroyFPvZv' c:/mingw/i686-gdc-2.066.1_gcc4.9.2/i686-w64-mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../lib/libgphobos2.a(thread.o): In function `thread_entryPoint@4': /home/build/tmp/build/.build/src/gcc-4.9.2/libphobos/libdruntime/core/thread.d:193: undefined reference to `D2rt5tlsgc4initFZPv' c:/mingw/i686-gdc-2.066.1_gcc4.9.2/i686-w64-mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../lib/libgphobos2.a(thread.o): In function `thread_attachThis': /home/build/tmp/build/.build/src/gcc-4.9.2/libphobos/libdruntime/core/thread.d:1903: undefined reference to `D2rt5tlsgc4initFZPv' c:/mingw/i686-gdc-2.066.1_gcc4.9.2/i686-w64-mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../lib/libgphobos2.a(thread.o): In function `thread_attachByAddrB': /home/build/tmp/build/.build/src/gcc-4.9.2/libphobos/libdruntime/core/thread.d:1968: undefined reference to `D2rt5tlsgc4initFZPv' c:/mingw/i686-gdc-2.066.1_gcc4.9.2/i686-w64-mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../lib/libgphobos2.a(thread.o): In function `D4core6thread15scanAllTypeImplFNbMDFNbE4core6thread8ScanTypePvPvZvPvZv': /home/build/tmp/build/.build/src/gcc-4.9.2/libphobos/libdruntime/core/thread.d:2666: undefined reference to `D2rt5tlsgc4scanFNbPvMDFNbPvPvZvZv' c:/mingw/i686-gdc-2.066.1_gcc4.9.2/i686-w64-mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../lib/libgphobos2.a(thread.o): In function `thread_processGCMarks': /home/build/tmp/build/.build/src/gcc-4.9.2/libphobos/libdruntime/core/thread.d:2896: undefined reference to `D2rt5tlsgc14processGCMarksFNbPvMDFNbPvZiZv' collect2.exe: error: ld returned 1 exit status
*** libphobos/libdruntime/core/internal/traits.d.orig 2015-03-15 19:37:17.000000000 +0900 --- libphobos/libdruntime/core/internal/traits.d 2015-03-25 00:15:25.736178900 +0900 *************** *** 65,71 **** s ~= " " ~ attr; return s ~ ";"; }(); ! pragma(mangle, mangleFunc!T(fqn)) mixin(decl); alias externDFunc = bug13050; } else --- 65,79 ---- s ~= " " ~ attr; return s ~ ";"; }(); ! version (MinGW){ ! version (X86_64){ ! pragma(mangle, mangleFunc!T(fqn)) mixin(decl); ! }else{ ! pragma(mangle, "_" ~ mangleFunc!T(fqn)) mixin(decl); ! } ! }else{ ! pragma(mangle, mangleFunc!T(fqn)) mixin(decl); ! } alias externDFunc = bug13050; } else
昼前に起床。
Emacs-24.5がリリースされたようです。バグフィックスリリースと
いう位置付けのようです。Cygwinパッケージがアップデートされる
ようなら追従する方向で。
と書いた数時間後に、もうCygwin Emacsパッケージのアップデートが来てた。
パッチを整理しないといけないなぁ。
Emacs-24.5のCygwinビルド。自前IMEパッチ版はとりあえずビルド成功。
ちょろっと使った感じでは特に問題無さげ(いきなり死んだりはしないと
いうレベル)。
また、rzl24ozi氏の24.5対応パッチも既に
来ていました。
32bit-Cygwinでemacs-24.5-w32-ime.diffだけを試してみた
のですが、ビルドも実行も特に問題無さげ。
そういえばgitやブログなどで、更新された日時ではなく現在時刻
からどれくらい前という表示になっている場合があります。
以前は絶対日時の方が判り易いんだけどなぁ?と思う事があった
のですが、相対時刻でも良いかもと思うようになったり。というのは、
タイムゾーンがどこに設定されているかで、例えば日本とアメリカの
西海岸とでは時差がかなりあるので、日時だけだと結構勘違いして
しまう事があります。相対時刻であれば、タイムゾーンによらない
ので、最近か否かだけを知りたいだけなら判り易いと思うように
なりました。
CygwinのMailingListに、Cygwin 2.0.0-1のTESTリリースアナウンス
が上がっていたり。いつ頃、正式にリリースされるかは不明。
気持ち早めに帰着。
emacs-zlcが最近
アップデートされているのを知ったり。ディレクトリを選択したとき、
'/'を押すとそのディレクトリに潜れるというもの。
以前、外付けでそれに
近いことをやっていたのですが、それがzlc本体に実装されたと
いう感じでしょうか。ただ、
zlc-select-next-verticalやzlc-select-previous-verticalを実行した
後に'/'を押しても何故かディレクトリを潜ってくれなかったので、
都合の良いようにちょろっと直してみたり。
*** zlc.el.orig 2015-03-22 12:28:11.000000000 +0900 --- zlc.el 2015-04-10 23:39:48.774960600 +0900 *************** *** 205,211 **** (interactive) (if (and (equal (string (char-before)) "/") (eq (point) (field-end))) ! (zlc-minibuffer-complete) (progn (insert "/") (setq minibuffer-scroll-window nil)))) --- 205,213 ---- (interactive) (if (and (equal (string (char-before)) "/") (eq (point) (field-end))) ! (progn ! (setq last-command nil) ! (zlc-minibuffer-complete)) (progn (insert "/") (setq minibuffer-scroll-window nil))))
気持ち早めに帰着。
調べ事をして終了。
早くも無く遅くも無く。
あまりの眠さに急速停止。
気持ち早めに帰着。
先日の
コミックボンボンのWikipedia
を眺めていて、そういやこんな漫画もあったなぁと思ったり。
その中の一つに「おれのサーキット」
というポケットバイク(ポケバイ)のレースをテーマにした作品が
ありました。作者の山口博史氏はその後どんな作品を描いていた
のだろうと調べてみると、成人向け漫画を描いていたようです。
てか、作品としてはそういう感じの方が多い気が(^^;
そして、息子さん(?)(額縁あいこ)も漫画描いたり同人誌作ったり
しているようです(ミツメ書房)。
プロかどうかは良くわかりませんでした。
ここ数日、gdcがちょこちょこアップデートされてたり。DMD2.067の
マージか?と思ったのですがそうでは無いみたい。
本日休業。
「ONEPIECE(77)」。今巻はエピソードが山盛り過ぎて読むのに
時間がかかりました(^^; この展開でドフラミンゴと他との関係が
どう着地するのか気になります。
そういや唐突に「The かぼちゃワイン」って漫画/アニメがあったなぁ?と
思い出したり。漫画はとても精細な筆致だった記憶があったので
画像検索してみたのですが、意外と解像度の高い絵が出てこなくて残念。
The かぼちゃワインのWikipedia
によると2000年以降にも連載があったようです。
そういやコミックボンボンでも三浦みつる氏の連載漫画があったなぁ?
と思い少し調べてみたところ、
コミックボンボンのWikipediaから、「星のピートン」
だという事まで思い出せたのですが、連載が半年ちょっと
の為か単行本にはなっていない模様。こちらも
他の連載漫画に比べて遥かに線が細かったのが印象に
残っています。連載期間は1981/11〜1982/6とありますが、
もっと絵の分別が付く時に読んだ気がするんだけどなぁ?
因みにピートンの方はWeb検索しても全く画像が出てきませんでした。残念。
メガデモイベントのRevision2015 の結果がpouetに
上がっていたり。
120hzデモといういわゆる120fpsデモが新しく設けられたようです。
でも、普通のディスプレイ&動画ファイルでは 伝わらないだろうなぁ?と
思ったりも。実際も 120Hzのディスプレイを特別なブースに用意して
観る感じになっていたようです。
プチ帰省から帰着。
あまりの眠さに急速停止。
AM中に起床。
プチ帰省。
気持ち早めに帰着。
あまりの眠さに急速停止。
気持ち早めに帰着。
最後のhomeは人が沢山で全盛期のような賑わいでした。
なにやらhome運営の人(いわゆる中の人)が普通に交わってて
驚きました(^^;
PlayStationHomeのWikipedia
の歴史の項目を見ていると、2011年から急激にイベントが
減っているように思います。震災による節電等の影響や、PSNサイバー攻撃
による一時サービス停止の影響などが、少なからずあったのかも知れません。
2012年はTANE自身、本物お仕事が忙しすぎて全然ゲームで遊べなかった
のですが、何故かPS-Homeの歴史とリンクしてて不思議な気がします。
2012年はPS-homeに限らず全体的に下降気味だったようにも思いますが。
最終日の混雑具合を見ていると、以前にも書きましたが
コミュニケーションアプリとしては成功していると改めて感じます。
ユーザー対応など、運営も大変だったんじゃなかろうかと思います。
GDCとかで舞台裏を色々とぶっちゃけてくれると面白そうかもと思ったりも。
ともあれ、長い期間の運営おつかれさま&ありがとう。
そういや最後にフレンドのパーソナルスペースに招待してもらうの
トロフィーをゲットして、ぎりぎりでコンプリート成功しました(^^)v
気持ち早めに帰着。
あまりの眠さに急速停止。