D言語

dmd 1.00

予定より少し遅れてましたが、今日、ようやくdmd1.00がリリースされました。 これを、きっかけにD言語ライブラリの開発がもっと進むといいんですが。 少なくともPhobosは、もう少しまともになってほしい。

VS2005のデバッガ

VS2005でD言語アプリのデバッグがうまくいかない。関数ブレークは使えるので、エディタ側でブレークポイント設定する部分がおかしいんだと思うけど、設定の仕方が見当たらない。 VS SDKにDebugging SDKってのが含まれてるので、カスタムデバッガ作るべきなん…

std.gc.minimize

http://d.hatena.ne.jp/ultraist/20060108/p2 を見て、GCの動作が気になったので少し調べてみたけど、GCのminimize、実装が空になってますね…昔からこうだったっけ?明示的にfullCollectとか呼び出しても、メモリはGC内部にキャッシュされたままで、OSには返…

VS2005用D言語pluginは年内に公開します。Intellisense周りが非常に適当ですが。ローカル変数補完と、簡単なメンバ補完しかできてません。使えるかどうかはまだ微妙。Phoenix RDK、少しだけ触ってみた。Dのfrontendが既にAST作る作業はやってくれてるので、…

VC++ Express Editionを使ったD言語のビルド

Winkを使って適当に作ったデモFlash。http://reverie.xrea.jp/files/VCExpress.htm 基本的にカスタムビルドステップ使ってMSBuildを呼び出してるだけ。後はD用にプロジェクトテンプレートを追加。D言語アイコンはid:lpszMarimo_11さんのを使わせていただきま…

Elephant IDEは公開されてから順調にver upされているようでこっちも早く追いつかないとなぁと思いつつも、VS2005 beta2が出ないことにはやる気がいまいち。Elephant はver0.12から日本語もちゃんと表示できるようになってる。ただUTF-16のファイル開いて再…

DIDEの後継として開発されていたIDE、"Elephant"が公開されてる。http://www.thecodebase.com/elephant.htmlIDEとしての機能は一通り揃ってる。ただ、2、3日前に仮公開されてたのと違ってSolution Explorerとかツールバーが表示されないのは何故。補完は一応…

warningやpragmaによるlib指定がDの仕様に追加…そろそろver1.0に向けてバグFixモードに入ってるのかと思ってたけど、前のver辺りから新機能が次々追加されてる。それも予告なしで。 walter氏はwarningは嫌い、って言ってた気がするけど、何故今になって実装…

http://reverie.xrea.jp/files/DevIL_D.zip一週間くらい前に作り直したDevILポーティング。テクスチャの上下が逆になったり、座標を逆に取るためのilOriginFuncが動かなかったりで、結局使ってなかったんだけどhttp://sourceforge.net/forum/forum.php?threa…

http://reverie.xrea.jp/files/VSpluginD.zip.dprojにコンパイラ設定等を保存するようにした。自分で使ってて、毎回設定するのはやっぱり面倒だったので。 インストーラは相変わらずどこかおかしい。インストール時にファイルが上書きされないので、既存のフ…

D言語の仕様、特にDbCの辺りをいろいろと試してみた。元々better C++程度にしか使ってなかったので、よく理解してない所がいろいろと。事前条件・事後条件なんかは使いこなせば役に立ちそうだけど一々書いてると、コードの可読性が落ちそうでなんか嫌。通常…

コンパイラ、ってかリンカの出力場所を指定する方法がみつからない。Debugディレクトリに出力したい場合は dmd Debug/test.exe test.dでいいけど.exe以外を出力する場合はどうするんだ、ってことで。.dllとか.libだと蹴られる。そもそも明示的に指定したくな…

ちょっと実験。intとuintに対する比較 int a= -5; uint b= 5; if(a > b) printf("a > b"); 同じサイズのsignedとunsignedの比較した場合、compile errorがでるかと思ったんだけど普通にコンパイルできますね…確かに一々cast演算子つけるのも面倒か。けどD言…

2chのD言語スレで「Dコンパイラにコード解析データを返す機能が欲しい」って言ってる人がいるの見て、そんなのコンパイラがやる仕事じゃないだろう、と思ってたんだけど、VCのコンパイラにはそういった機能があるようで。設定してやるとビルド時に.sbrとか.b…

COM。他言語間でやり取りする場合、インターフェースとGUIDの宣言を.dで書く必要があって、なんか面倒そうだな、と思った。VC,VB,Delphiなんかはタイプライブラリ.tlbをそのまま読み込んで使える機能があるらしい。VCの場合#import"a.tlb"とか。dmdのコンパ…

今さらながら、ソースをShift-JISで書いた場合、日本語文字列がコンパイラ通らなくなってる事に気づく。dmd0.96からだったらしい。r""文字列使えばいいらしいけど、UTF-8で書いてる場合はどうするんだろう。 D言語スレに出てたこの本 D言語パーフェクトガイ…

なんか定期的に『dide 0.995a』で検索してくる方がいらっしゃるので。公式では公開が停止されてるけど、ファイル自体はdide_empty.zipとして残ってるようです。 どういう経緯で公開停止にしているのか知らないので、使っていいのかはわかりません。これ、最…

dmd0.99が来たけど、本当にこのままver1.0が出るんだろうか…別に趣味で使う分には現状で不満な点はそれほどないけど、何かまだ1.0には早い気が。C++にあるような引数のconstを代替する機能がDに欲しいんだけど、調べてみるとそもそもサポートする気がないみ…

書き忘れてたけど、dll側の関数呼び出す時、引数の文字列はchar*なので注意を。間違ってDの文字列型char渡すと暗黙的にchar*に変換されて、\0終端じゃないのでおかしくなる可能性が。引数に文字列char渡す場合はtoStrinz関数使って\0付きのchar*に変換してか…

http://d.hatena.ne.jp/Ozy/Ozyさんが昨日の所のフォローを書いてくれてます。 状況を整理して書いてみると、implib使えば.dllから.libができるので、それリンクして一応動いたので、できたーと思ってた問題。stdcallで呼び出すようにして解決。 もう一つの…

昨日のコメントの所でk.ahiruさんが書いてくれてるように.def書いてそこから.libに変換したらちゃんと動作することを確認した。やっぱり__stdcallで呼べてなかったのが原因らしい。 関数の数はそれほど多くないので手作業でやった。微妙に間違えてそうで怖い…

前、使ったDevIL http://www.imagelib.org/のDポーティングを引っ張り出してきて簡単なプログラムを書いてみた。ilutGLLoadImage(filename)だけでテクスチャ読み込んでOpenGLにセットしてくれるんで結構便利。 ただ、なんか動作が怪しいのでちょっと中断。以…

とりあえず毎日何か更新するようにしよう。ってことでOpenGLのプログラムでも書いてみようと思う。明日から。ちゃんと続けば、OpenGLのチュートリアルっぽくなるのかも。というかGLの赤本に載ってる以外の関数ってあんま使ったことないんで、自分の勉強も兼…

DIDEに不具合が。#define文が入ったファイルをプロジェクトに入れると、次プロジェクト開いた時にエラーで落ちる。ただ、Dで#defineなんて書くことなんてないけどね。ヘッダのポーティングしてるときは起こらなかったはずだから、これもver0.995になってから…

DIDE。公式に何も出てないけど、ver0.995から発生してた問題は修正されて新しいファイルがアップロードされてた模様。

DIDE、調べてみた感じではリソース書き換え系のエディタ使って比較的簡単にメニューとかの日本語化パッチ作れそうな感じが。作者の方に許可もらう必要があるだろうし、作ってもあまり意味はないだろうから、やらないけど。dmdもだけど、DIDEのバージョンも0.…

Scintilla http://scintilla.sourceforge.net/DIDEのエディタ部分ってこれ使ってるのか。特に書かれてなかったので知らなかった。 このドキュメント見るとやっぱ日本語入力対応にするためにOnFileOpen.luaにs:SetCodePage(1)って書くのは間違ってなかったら…

ここ2、3日、DIDE以外で使えそうなIDE探してみたけど特によさげな物はなさそう。Visual Studioが使えそうな感じではあるけれど・・・ DCoder http://dsource.org/Visual Studioに Extensibility APIとthe Babel SDKってのを使ってD用の拡張をしてるみたい…

DIDE、ver 0.995が出てます。 最初emptyの方インストールしたんだけどエラー出て起動せず。で、fullを再インストールしたら以前の設定が引き継がれず初期設定に戻ってしまった。再度emptyの方、インストールしたら問題なく起動したので設定ファイル周りの問…

下のglee.dってhttp://www.elf-stone.com/ここのGLeeのポーティングなのか・・・今年の1月にはもう出来てたみたいだ。気づかなかったけど、Dの公式リンクの所にもちゃんと載ってたし。 一応作業する前に、ちゃんとググったんだけどなぁ・・・再度試してみた…