ひとモノBLOG

04 « 2017 / 05 » 06
Sun Mon Tue Wed Thu Fri Sat
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
profile
SHOO
  • SHOO
  • 機械系の学生。の割にプログラミングとかのほうが得意だったり。
  • RSS
links
BLOG内検索
Adds by DTI Blog

DWTとOpenGLで…
2009/03/12(木) [01:02:00]

お久しぶりです。SHOOです。

最近リリースされたdmd 1.041では-libでstatic thisが実行されなかったりしたバグが改善されたとか、コンパイル遅かったのが速くなったとかいろいろとおいしい更新があったようです。
2.0系ではコンパイラのソースがコンパイルできる状態で公開されたそうです。(それでもちょっと手を加えないといけないみたいですが…)

この更新で、DWLを使ったアプリケーションのコンパイルが速く実行できるようになったので、久しぶりにDWLを使ったプログラミングをしてみました。
DWL+OpenGLでためしに何か作ってみよう、と。

詳細は以下から…



続きを読む



| ホーム |

Tangoがすごい更新を…!
2008/12/18(木) [01:29:28]

Tangoのリポジトリが面白いことになっています。
http://www.dsource.org/projects/tango/changeset/4179
IO関係の大がかりな名前の変更があったようです。
いままでなんとかConduitとかなんとかStreamとなっていたモジュール名が、ほとんど変わっています。
モジュール名ではなく、パッケージ名でConduitとStreamを明確に分離する作戦のようです。
TangoのIOはConduitとStreamの組み合わせで行うので、ちょうどいいのではないかと思います。
機能がなくなったりしたわけではないので、移行もそれなりに難しくはないと思います。

そういえばdmd2.022とかもリリースされたっぽいけど今回のはなんか地雷っぽいのでスルー…というか様子見の方向で。
なんでもpureとかnothrowとかが実装されたけど、再帰的なimportがあったりすると非常にコンパイルが遅くなるという問題があるようです。template関連のバグフィックスの際に発生した問題のようですが…これでdmdのコンパイルが爆速という大きな特徴を犠牲にするのは痛すぎる…
dmd1.038も同様の問題があるのに加え、interfaceを継承した際にオーバーライドする関数にfinal overrideを付けるとコンパイルエラーが生じるとか…エンバグでしょうか。
何はともあれ、dmd1.038ではTangoも使えなくなるので、今回はアップデートを見送るのが賢明そうです。


| ホーム |

メンバ関数ポロロッカ
2008/12/11(木) [01:23:49]

D言語で遊んでみました。
気色の悪いハックをしようと思ったらC++並みに面白いことができますね。

今回のテーマは、「メンバ関数ポロロッカ」
メンバ関数を逆流させるというあほなことをやってみました。
普通、オーバーライドした関数からオーバーライドされた関数を呼び出すことは簡単に可能です
super.overridedFunc();
みたいなことをすれば呼べます
逆に、

オーバーライドされた関数からオーバーロードした関数を呼び出す…ということは可能でしょうか?

・クラス1のメンバ関数の処理
・・クラス2のメンバ関数の処理
・・・クラス3のメンバ関数の処理
・・・クラス3のメンバ関数の終了処理
・・クラス2のメンバ関数の終了処理
・クラス1のメンバ関数の終了処理

このような感じに逆順に呼び出していく…それが「メンバ関数ポロロッカ」
名前は適当にさっき考えた。他に呼び方あるかもしれないけど知らない。

import std.stdio;

class Super
{
    void func()
    {
        writef("<1");
        writef("1>");
    }
}
class D2: Super
{
    override void func()
    {
        writef("<2");
        super.func();
        writef("2>");
    }
}
class D3: D2
{
    override void func()
    {
        writef("<3");
        super.func();
        writef("3>");
    }
}
void main()
{
    auto d3 = new D3;
    d3.func;
    writefln("");
}

<3<2<11>2>3> この逆をやります。
つまり、何とかして
<1<2<33>2>1> この結果を得ようという試みです。できるだけスマートに。

続きは以下から。 腕に覚えのある人は試してみてください。

続きを読む



| ホーム |

Tango、UnicodeBomを更新
2008/12/06(土) [22:24:19]

Tangoのtango.text.convert.UnicodeBomが、r4148で更新されました。


ちがうっ!
致命的なのはそこじゃない!

続きを読む



| ホーム |

D2.021でTango
2008/11/28(金) [01:04:28]

D2.021がリリースされました。
ので、懲りもせずにまたTangoをコンパイルできるようにしました。

http://www1.axfc.net/uploader/File/so/14364.zip

DFLもちょっとしたソースコードの改編でコンパイル可能に。
あぁ、早く公式的に使えるようにならないもんか…


| ホーム |
| HOME |