昔の最近の出来事(2018.07)

2018/07/31

遅めに帰着。

調べ事。あまりの眠さに急速停止。

2018/07/30

遅めに帰着。

調べ事して終了。

2018/07/29

AM中に起床。

そういやゲゲゲの鬼太郎の裏番組で放送されている 「魔法×戦士マジマジョピュアーズ!」。いつの間にか一人増えてる。

ちょろりお出かけ。先週めぼしを付けておいた整理箱を購入。 デッドスペースが無くなったのと、箱に入る事で ほこりが 付かなくて掃除が簡単になるのとで目論み通り。

調べ事。

2018/07/28

AM中に起床。

掃除したり。

そういやGoogleで画像検索をする際、時間の指定が何故か 1週間以内の選択しかなくて、通常検索のように1カ月以内や1年以内 を指定するには期間指定するしかありませんでした。で、 何気に時間指定に1カ月以内と1年以内が追加されてるのに 気付いたり。むしろ今まで無かった方が何故?という感じですが。

夕方頃に少し強めの雨が降ってましたが、その後はそれほどでも無さげ な感じに。

物理演算エンジンの Bulletをビルドして、コマンドラインの コンパイラで使う方法を試したり。コマンドラインシェルはCygwin のbashを使うのに、環境変数やPATHをどう設定すれば判らなかった のですが、VS2017のコマンドラインプロンプトを開く方法を知った ので、そこから環境変数を調べたり。ひとまずVCのコンパイラである (と思われる) cl.exe を使って、Bulletのexampleコードである HelloWorld.cppのコンパイルに成功。

2018/07/27

遅めに帰着。

バケモノの子を観たあと、あまりの眠さに急速停止。

2018/07/26

遅めに帰着。

あまりの眠さに急速停止。

2018/07/25

遅めに帰着。

あまりの眠さに急速停止。

2018/07/24

遅めに帰着。

そういやVCのコンパイラをコマンドラインシェルから使おうと思った のですが、どこに何があるのかさっぱりわからない感じだったり。 Webで調べてみても、探し方が悪いのか正解に辿り着けず。

2018/07/23

遅めに帰着。

Web巡回して終了。

2018/07/22

AM中に起床。

掃除したり洗濯したり。

昨日仕入れてた「ヤコとポコ(4)」。オート家出システム、 発動したら犯罪という設定も気になる。他にも色々繋がってて まだまだ続きそうです。

何気に見つけたGradius V の プレイ動画。 動画の内容よりもなんかレンダリングの解像度が高いような気がする のはなんでだ?という事の方が気になったりも。

2018/07/21

AM中に起床。

日が陰った頃にちょろりお出かけ。整理箱を物色していたところ 丁度よさげなのがあったのですが、高さのバリエーションに対して どれが良さそうかを覚えていなかったので、今日の所は見ただけ。

調べ事。

2018/07/20

早めに帰着。

そういや、はやぶさ2が目的地のリュウグウに到着してたらしい。 地球を出発したのいつだっけ?と思い Wikipedia で確認したら、2014年12月3日だったのですが、そんなに前だったっけ? Wikipediaに今後の予定が示されていたのですが、1年半滞在して 2020年に地球帰還予定て事は、2019年末か2020年の早い時期に リュウグウを出発して1年で帰り着けるという事らしい。 帰りの速度が速いのはなんでだ?と思ったのですが、地球を発つ 方向は重力を振り切るのに時間がかかるからか?とは思ったりも。

2018/07/19

遅めに帰着。

あまりの眠さに急速停止。

2018/07/18

遅めに帰着。

dmd対応。ひとまず一通りの手持ちコード対応完了。

2018/07/17

遅めに帰着。

dmd対応。もうあと少し。

2018/07/16

AM中に起床。

掃除したり洗濯したり。

日が暮れてから食料調達に出かけたのですが、驚くほど暑かったり。

dmd対応。手持ちコード対応もあとちょっと。

CC2を特に何かする訳でもなく立ち上げていると 「Antimalware Service Executable」がやたら動いていたり。 以前、デスクトップPCの方でも何やらしばらく動いてたのですが、 それと同じか?しばらく様子見。

2018/07/15

AM中に起床。

エアコンの温度設定。設定表示上は29℃にしているのですが、 卓上の温度計では27.5℃前後になります。これだとちょっと寒い ので、設定を30℃にすると 卓上温度計では29℃になり微妙に 暑い感じになります。この間にならないものだろうか?

GDC。このまえDMD2.081.1対応対応 されているブランチをビルドしたのですが、どうやらそれと同じものが マスターブランチにマージされてる模様。logを遡ってみると、 丁度1カ月ほど前にC++のフロントエンド(DMD2.076相当)から Dのフロントエンドへの完全な切り替えが行われていたようなので、 そこからは最新のDMDに即追従可能な感じになってるみたい。

日が暮れてからちょっこりお出かけ。

CC2用のBluetoothキーボードですが、あんま使っていない割には 電池の減りが早くて、電池を買い置いておくのも面倒臭いなぁ? と思い、充電池を買ってみる事にしたり。充電池って充電した後 使わないと自然放電して用事のある時に使えないものかと思って いたのですが、簡単には放電しない感じになっているらしいと いうのを知って、それなら良いかもと思った次第です。 で、店頭でeneloopとEVOLTAの二種類があり、違いを事前に 調べていなかったので、どっちにしようか迷ったのですが、 売り場面積的にEVOLTAの方が占めていたのと充電器は 両対応になっているようだったので、EVOLTAの方にしてみました。 EVOLTAのWikipedia によると、何気に発売されてから10年くらい経っているのか と思ったりも。今はeneloopもPanasonicブランドになってる ので、eneloopとEVOLTAの違いって何?って感じになった訳ですが、 eneloopは元々三洋電機のブランドだったのが、再編で Panasonicブランドになり今に至るという事みたい (参考:eneloopのWikipedia)。 eneloopもEVOLTAもそれぞれ特長があるようなので、用途に よって使い分けるのが良いみたいです。

8ポートのLANハブをついでに購入。気付くといつの間にか5ポート のハブが埋まってる状態だったので。今回購入したのは100Mbpsか 1Gbpsのどちらでリンクアップしているか判るタイプなので、 接続機器がGbit対応か調べるのに使えます。

2018/07/14

AM中に起床。

そういや何週間か前から、NHK総合で進撃の巨人のアニメ映画が放送 されてて、なんでだ?と思いつつ思っただけでスルーしていた のですが、シーズン3がNHK総合で放送されるというのを知ったり。 意外。

手持ちコードのdmd対応。gmp/mpfrを使うのに、VisualStudoでビルド する方法を探っていたのですが、 こちら のWebサイトでVSでビルド済のmpir/mpfrが置いてあるのを見つけたり。 サイトのページにあるようにmpirはgmpのforkで、ライブラリの APIは互換があるそうです。ただ、mpir/mpfrをビルドする為のVS プロジェクトが含まれている感じでは無さそうです。ちょっと残念。
で、マンデルブロ集合を描くD言語コードをdmd対応。 mpfrを使用するモードも問題無く動きました。これでひとまず 外部ライブラリに依存している手持ちコードは全てdmd対応 可能になった感じ。

マンデルブロ集合を描くコードはldcでもビルド可能になったのですが、 mpfrを使わないモードで初期位置の絵を描くのに、

コンパイラ(いずれも-m64を指定)最適化使用論理CPU数実行時間
dmd 2.080.0-O82.508秒
dmd 2.080.0-O114.712秒
ldc2-1.10.0-beta2-O280.118秒
ldc2-1.10.0-beta2-O210.578秒
x86_64-w64-mingw32-gdc (dmd2.068;gcc-6.2.0)-O280.436秒
x86_64-w64-mingw32-gdc (dmd2.068;gcc-6.2.0)-O211.861秒

てな実行時間となりました。てかdmd、遅すぎない?

2018/07/13

遅めに帰着。

あまりの眠さに急速停止。

2018/07/12

遅めに帰着。

GDC。MinGWターゲットでビルドしたgdcでは、リンクに失敗するコンパイラ になってて解決できないままになってます (参考)。 で、先日の新しいGDCだと変わってたりするのかしら?と思い 調べてみたのですが、ソースコードを見る限りは変わっていなさげ。 ELFを使うUNIXクローン系OSでは問題無さそうですが、 その他のターゲット(osxとかsorarisとか)もダメだと思うのだけど そうではないのかしら?

2018/07/11

遅めに帰着。

FreeDOSで256byteデモも見られるかも?と思い、 有名所の 「tube」と 「Puls」を 見てみたり。どちらも問題無く実行できました。 どんな感じなのかは動画で見て知っていても、実際に動いているのを 見ると変な声が出てしまいます。

GDC。 masterブランチではありませんが、DMD2.081.1対応されているブランチが あるようなので、試しにビルドしてみる事に。D言語で書かれたコンパイラ になる訳ですが、ついにビルドの為に(ビルド済の)GDCが必要になってました。 そんな訳で、何も無い所からGDCをビルドするのは結構大変になるかも 知れません(GDCを使った事無い人が試しに使う為にソースからビルド しようとすると、大分困る事になるかも)。また、MinGWのように今時点で ターゲットを外れたシステムに移植するのも困難になると思われます。

エラー無くビルドに成功。 make installしてhello worldレベルのコードをコンパイル&実行。

$ gdc -v
Using built-in specs.
COLLECT_GCC=gdc
COLLECT_LTO_WRAPPER=/usr/local/gdc_20811_900/libexec/gcc/x86_64-pc-linux-gnu/9.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-9-20180708/configure --with-pkgversion='gdc-9 c7eaf36d82(DMD2.081.1)' --enable-languages=c,c++,d --prefix=/usr/local/gdc_20811_900 --disable-bootstrap --disable-nls --with-bugurl=http://bugzilla.gdcproject.org --enable-checking=yes --disable-libgomp --disable-libmudflap --disable-libsanitizer
Thread model: posix
gcc version 9.0.0 20180708 (experimental) (gdc-9 c7eaf36d82(DMD2.081.1))

$ gdc -m64 -O2 iam.d

$ ./a.out
GNU D gnu 2.081 (D2)
I am GNU
I am linux
I am Posix
I am X86_64

$ cat iam.d
import std.stdio;
import std.string ;
import std.compiler;

int main()
{
  writef("%s %s %s.%03d (D%s)\n",name,vendor,version_major,version_minor,D_major) ;
  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) ;
}

問題無さげ。コンパイラのバージョンも2.081と表示されています。 マンデルブロ集合を描く手持ちコードも動いたので、ちょっとした事 をするには問題無いレベルのように思えます。

2018/07/10

遅めに帰着。

gmp/mpfrをVisualStudioでビルドする方法をWebで探してみている のですが、良い感じのに行き当たらず。

2018/07/09

早くも無く遅くも無く。

Pouetで最近のパーティの エントリを眺めていたら Projektbeschreibung という作品を知ったり。256B作品かと思ってよく見てみると 32byte作品ってなってて、はぁ??? と思ったり。 ダウンロードしてみると確かに32バイトの.COMファイルと アセンブラのソースが添付されていたのですが、にわかに信じられない と思いながら、付属のreadme.txtを読んでみるとFreeDOSで実行可能という事で、 思わずVMwareにFreeDOSを インストールして確かめてみたり。ホンマや.....すげぇ......

Projektbeschreibung_screenshot

思いもよらず FreeDOSを動かせる様になってみたのですが、 何気にDOSの256Byte作品とかを見る環境が出来てしまったかも(^^; 因みに、DISKイメージへの書き込みは DiskExplorer を利用させていただきました。

2018/07/08

AM中に起床。

手持ちコードのdmd対応。そういやD言語では 言語の組み込み機能で 「x"89" ~ "PNG"」てな感じの書き方ができました。 これは 0x89 の1バイト文字と文字列"PNG"を連結 した文字列となります。ところがdmd2.080.1では非奨励になってるようです。 代わりにstd.convにある hexString テンプレートを使う必要があるのですが、 2.068の頃には無かった テンプレートなので、ソースコード の後方互換が保てない感じになります。

2018/07/07

昼過ぎ起床。寝すぎ。

手持ちコードのdmd対応。2Dベクターグラフィックスライブラリの cairoを使った D言語コードをビルドする為にcairoをVisualStudioでビルドしてみたり。 と言っても、cairo自身はVSでのビルドがサポートされていないようなので、 Cairo-VSと いうプロジェクトを利用してみました。微妙なハマリどころは いくつかあったものの、x64ターゲットでのビルドに成功。 そして手持ちコードのビルドも成功。

2018/07/06

早めに帰着。

久しぶりにGTS。耐久レースはシルバーまでは取れるものの、 ゴールドは全くメドが付かず。1位のCPUカーは速すぎです。

2018/07/05

早くも無く遅くも無く。

手持ちコードのDMD対応。特に問題無し。

2018/07/04

遅めに帰着。

dmd 2.081.0がリリースされた模様。

あまりの眠さに急速停止。

2018/07/03

早くも無く遅くも無く。

手持ちコードのDMD対応。特に新しい事件は無く進んでみたり。

2018/07/02

早くも無く遅くも無く。

あまりの眠さに急速停止。

2018/07/01

昼頃起床。

掃除したり洗濯したり。

OpenGLを使用するD言語コードをDMD対応。一通り直してひとまず動く ようなのですが、少し動かしているとそのうち動かなくなったり。 CPUを使いっぱなしになっている訳でも、ウインドウが 「応答なし」になっている訳でも無い為、どうなってんだ?という状態。 GCをdisableにしても現象変わらず。毎回同じ所で止まる(ように見える)ので コード上の問題か?
その後、コードを潰しながら調べていると、乱数の生成を何度か実行 した所で止まるらしい事が判ったり。どうやら以下の書き方がマズかった 模様。

NGコード
    y = mt[atomicOp!"+="(mti,1)];

OKコード
    y = mt[mti];
    atomicOp!"+="(mti,1) ;

変数mtiはshared static int型なのですが、shared変数の更新は 「mt[mti++]」となっているコードに対して「atomicOpを使え」 というエラーになったので、そのまま書き換えました。 でもなんか意味が違っていた模様。 毎度の事なのですが、atomicOpの説明書は あるのですが、イマイチD言語のテンプレートを使う例は、説明書の 読み方が良く判りません。一応、戻り値は「The result of the operation.」 となっているので、「mt[mti++]」のつもりが「mt[++mti]」に なっていたという事なのかも。

そういやインターステラテクノロジズのロケット。 どれくらいの予算でやっているのかは判りませんが、すんなり とはいかないものなのだなぁ?とは思ったり。そう考えると SpaceXのロケットが随分先をいっているのが判るように思えます。


TOP PREV