[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/17 05:50 / Filesize : 212 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

D言語 Part16



1 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 23:00:35 ]
プログラミング言語 D (D Programming Language) について語るスレッドです。
過去スレは >>2

■本家
ttp://www.digitalmars.com/d/
ttp://www.kmonos.net/alang/d/ (和訳)

■コンパイラ
ttp://www.digitalmars.com/d/dcompiler.html (DMD, 本家)
ttp://dgcc.sourceforge.net/ (GDC, gccフロントエンド)
ttp://gdcmac.sourceforge.net/ (GDCのmac用バイナリ)

■参考URL
ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究)
ttp://dsource.org/ (dsource)
ttp://tinyurl.com/3da5oa (C/C++に疲れた人のD言語)
ttp://www.kmonos.net/alang/wnd/ (わかったつもりになるD言語)
ttp://shinh.skr.jp/d/ (SDL, SDL_*, OpenGL, GLU, glutのポーティングとか)
ttp://shoo.s20.xrea.com/shoo/programing (D言語とTangoの入門講座)

751 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:25:26 ]
>>734 >>742 ちゃんとDescentを入れられるようになったよ

752 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:40:17 ]
eclipse 使ってみたけど動作が不安定な感じだなぁ。
最初、保管機能はきいてるのに何故かセマンティックエラーでまくるし、
デバッグもブレークポイントはきくのにローカル変数が表示されず。
その後、何かの拍子にいきなり正常に動作し始めた。
機能はすごいんだが、eclipse を使い慣れてないせいでめちゃくちゃ使い辛い・・・

753 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:48:42 ]
SDL_rotozoomを使いたいんですがヘッダの部分は
shinh.skr.jp/d/porting.html
で入手して、中身は
www.ferzkopp.net/Software/SDL_rotozoom/
で入手して、MinGWのgccで -c でオブジェクトファイルを吐かせて
ゲームのソースとDMDでリンクしようとしたんだけど
「.o じゃなくて .obj しか対応してないよ!」
みたいに怒られたので困っています。
助けてください。
これが無いとスプライトの拡縮が出来ないんです。

754 名前:746 mailto:sage [2008/02/06(水) 00:49:12 ]
>>750
そそ。そんな感じ。

755 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:52:48 ]
"Hello"と"return"でスペルミス指摘されたのでぶち切れてスペルチェッカー切りました

756 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:03:43 ]
>>751
一個前の入ったね。
VCに慣れた身としてはちょっと戸惑ってるけど問題なさげ。

>>755
すげー高機能だなぁ。。。

757 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:05:13 ]
>>753
dll作るがよろし。
その後implib。

758 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:06:29 ]
Eclipse試してみたら
import std.stdio;
~~~~~~~~~
writefln(
~~~~~~~
とか言われて俺涙目w
時間あるときにひとつずつ設定していかないとダメだな・・・

759 名前:752 mailto:sage [2008/02/06(水) 01:06:38 ]
eclipse を起動しなおしたらまたうまく動作してねーやorz
なんか別の言語のパーサが動いている気がする。他の言語は切った方が良いのかな。

>>755
スペルチェックだけなら良いんですけど、ddoc 表示もできない。
正常動作中は import モジュールの上でF2押すと説明文出たのに、
セマンティックエラーが出てる状態だと
「単語`xxxx` のスペルが正しくありません。」なんてエラーが出る。



760 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:07:23 ]
ずれた
import std.stdio;
    ~~~~~~~~~

761 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:07:47 ]
>>758
ちゃんとコンパイラの設定してるかい

762 名前:753 mailto:sage [2008/02/06(水) 01:08:05 ]
>>757

了解

763 名前:デフォルトの名無しさん [2008/02/06(水) 01:18:11 ]
>>753
gccじゃなくて、Digital Marsのdmc か Borlandのbcc
にオブジェクトファイルを吐かせるといけるとおもわれまる。

764 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:21:56 ]
Linux(ubuntu)でhello world書いてみたらFLOCKがundefined言われた。
ソースみてなんとなくGCC_IOを定義するようにしてみたら行けたけど、これでいいのだろうか。

あとstringでエラーが出る。CompilerVersionちゃんと2.xにしたんだけどなぁ。
alias見てくれないのかなぁ。

765 名前:753 mailto:sage [2008/02/06(水) 01:24:55 ]
>>763

了解。まずそっちをやってからDLLをやります。

766 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:36:42 ]
>>764
D2.0対応はまだ不完全で、invariant()まわりでちょっとバグがあるっぽいこと書いてあった。

767 名前:753 mailto:sage [2008/02/06(水) 01:37:57 ]
tokyo.cool.ne.jp/sdl/sample.html

ここでDLLを落としたら簡単に出来ました。ありがとうございました。

768 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:46:36 ]
>>761
お ありがとう コンパイラの設定ができてなかったんだね
プロジェクト作成時に設定したらうまく行きました

769 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:57:50 ]
>>766
そうなのかー。サンクス。

まさか本当にAutoCompleteが(曲がりなりにも)利用できる日が来るとはな……。
ひとつの到達点だな。いち早くたどり着いてくれたのがdescentで嬉しいEclipseユーザ俺。



770 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 09:49:40 ]
意味のあるaliasと意味の無いaliasの区別がつきません><

771 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 10:18:32 ]
しかしPoseidonがEclipseベースなんだからDescentと共同開発でもしてくれればいいんだけどな
俺のEclipseはDescent専用なのでこれのためだけに100M近く使うのがもったいないというだけだがw

772 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 11:25:29 ]
PoseidonはDWTベースというだけで別にEclipse関係なかったような

773 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 11:45:39 ]
例のBOFって、Dを試しに使い始めました程度の人でも
参加していいもの?
行くと場違いだったりしないかな。


774 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 14:27:54 ]
福岡ならいけたのに(´・ω・`)

775 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 14:39:19 ]
遠いw

776 名前:デフォルトの名無しさん [2008/02/06(水) 17:25:26 ]
ttp://builder.japan.zdnet.com/news/story/0,3800079086,20366701,00.htm
これも「D」言語?

777 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:52:02 ]
マイクロソフトはどうしてかぶらない名前に出来ないのか。

778 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:52:24 ]
MSらしい嫌がらせだよな。
Borlandの次は、をるたんが標的なのかw

779 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:56:23 ]
どーせコードネームだろ。
本リリースではXのつく名前にするに違いない。



780 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 20:12:34 ]
>776
DってDQNの略だよ。

781 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 20:23:56 ]
>>773
そんなの大丈夫だろ

782 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:16:41 ]
MSに目をつけられるほど完成度の高い言語だったのかw

783 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 23:24:24 ]
MSが肩入れすることで、ようやくD言語も日の目を見るな。

784 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 23:56:33 ]
やばいwD言語の検索結果が少しM$に侵食されてるw

785 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:01:49 ]
>>783
おいおい。「D」と名の付く全く別の言語だぞ。
> 「非開発者を対象とした宣言型言語」

ただでさえD言語の情報はWEB検索しづらいのに、
MSのせいで更に困難に・・・

786 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:03:59 ]
SolarisにDスクリプトってのがあったよな

787 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:13:21 ]
何処かにEclipseのわかりやすい使い方無いかな
どこをどうさわっていいやらさっぱりだ

788 名前:デフォルトの名無しさん [2008/02/07(木) 00:13:45 ]
>>776
吹いたw

ところで、
module main;
import tango.io.Stdout;
void main(){
  C c1 = new C();
  c1.Func();
  Stdout.formatln( "&c1 = {:X8}", &c1 );
}

class C{
  void Func(){
    Stdout.formatln( "Func-this = {:X8}", &this );
  }
}
を実行すると
Func-this = 0012FE74
&c1 = 0012FE84
となって、二つが違うアドレスなのはなぜ?
C++で同じようにthis調べると一緒だったけど。

789 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:21:21 ]
>>787
EclipseWiki
ttp://eclipsewiki.net/eclipse/?FrontPage
Eclipse入門
ttp://www.javadrive.jp/eclipse3/index.html



790 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:24:16 ]
>>788
&c1はc1があるスタックを指していて、&thisはthisがあるスタック(thisはアセンブラ的にC.Funcの引数として渡される)を指してる、多分。

791 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:34:22 ]
>>789
ありがたや

792 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:41:46 ]
>>788
Dのクラスは参照型だから、C++でいうとC*に相当する。
だから、cast(void*)c1 == cast(void*)this; になるはず。

793 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:54:54 ]
>>788
Cをstructでやってみれば、C++と同じ結果になると思うよ。

794 名前:788 [2008/02/07(木) 01:18:41 ]
>>792
なるほど。その通りになりました。
参照型。。。あれよく分からないんだよなあ。

795 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 01:25:54 ]
struct内でもthisはポインタだった気がするんだけどまぎらわしいようそうでないような

796 名前:788 [2008/02/07(木) 02:19:19 ]
>>795
試してみたら、構造体ではthisは普通にポインタみたいです。


797 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 04:27:40 ]
synchronized ( Expression ) ScopeStatement

これの存在意義がわからないです・・
どなたか教えていただけますか

798 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 08:28:04 ]
Object lock = new Object;
void foo() {
bar;
synchronized(lock) { hoge; fuga; piyo; }
buz;
}
とかでメソッド全体よりも細かい単位でロック制御できる

799 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 08:42:34 ]
>>798
横レス失礼
それって、Mutexとどこか違うの?
逆に、Tangoのtango.core.sync.Mutexって意味あるの?



800 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 08:47:00 ]
ブロックから出れば勝手にロックが解除される

801 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 08:51:39 ]
>>799
要するにMutexだよ。
tangoのMutexはsynchronized文での自動lock/unlockだけじゃなくて、
手動でもlock/unlock/tryLockが出来る
www.dsource.org/projects/tango/wiki/ChapterThreading#Mutex

802 名前:799 mailto:sage [2008/02/07(木) 09:50:33 ]
なるほど、ありがとう。把握した。
大した違いはないけど、より細かいことがやりたかったら
synchronized ( Expression ) ScopeStatement
だの、Mutexクラスだのを使えってことか。


803 名前:797 mailto:sage [2008/02/07(木) 11:41:03 ]
なるほど、Mutexとして使えばいいのですね
ありがとうございました

804 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 12:04:54 ]
この俺をさらに強固なアンチMSにしてくれたね。
痛い目を見るよ、この結果は。

805 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 12:20:34 ]
でもぶっちゃけお前スライムより弱いべ?

806 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:50:19 ]
かたやMSは絶好調時のムドーより強い

807 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:53:13 ]
Descent 0.5.1

808 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 18:33:18 ]
tangoの日本語ドキュメントは、何処かで公開されてないですかね?

809 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 18:50:21 ]
Descentつかってる方におききしたいんですが、
デバッグ機能としてのbreak-pointや、watchもばっちりなんですか?



810 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 18:51:32 ]
>>808
今のところこの二つしかない
ttp://shoo.s20.xrea.com/shoo/programing/
ttp://f17.aaa.livedoor.jp/~labamba/?tango

811 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 20:51:11 ]
MSにパクられた
ttp://namidame.2ch.net/test/read.cgi/news/1202382434/



812 名前:808 mailto:sage [2008/02/07(木) 20:52:35 ]
>>810
ありがとうございます。
見て来ましたが、ぜんぜん日本語化進んでないって事ですねw
英語ダメダメだから、安物の翻訳ソフトでも買おうかな。

813 名前:デフォルトの名無しさん [2008/02/07(木) 21:15:01 ]
今Dでキーボードフック(グローバル)を書いてみてるんだけど、なぜか上手くいかない。
ちゃんとDLLからSetWindowsHookEx呼んでるし、SetWindowsHookExは成功してるみたいないんだけどな。
Dだとグローバルフックが出来ない理由ってある?(ローカルは出来た)

もうちょっとコード見直してきます。

814 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 21:44:24 ]
そーいやD言語でググってたらSunにもD言語があるのを見つけたっけなぁ。
ウォルタンはSunからは何も言われなかったんだろうけど。
Firebirdほど大きな問題にはならない気がするけど、
やっぱややこしいから変えてほしいところだ。

815 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 21:48:46 ]
Sunのほうが5,6年後でしょ。

816 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 21:55:14 ]
>>813
グローバルフックなら共有データセグメントとかメモリマップトファイルとか使って、
フックハンドルをプロセス間で共有できるようにしないといけないよ。

ローレベルフックを使うのも一つの手。

817 名前:813 [2008/02/07(木) 22:02:14 ]
>>816
今までずっとそう思ってたんですが、WindowsXP/2000ではCallNextHookExの第一引数はNULLでいいらしいです。
第一引数に何か渡しても無視されるそうな。


818 名前:813 [2008/02/07(木) 22:04:11 ]
msdn2.microsoft.com/en-us/library/ms644974.aspx

819 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:06:51 ]
D言語でもお麻衣さんの問題はAPIスレで面倒みてもらったほうがよろしかろ



820 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:11:22 ]
MSがD言語作るらしいぞ
headlines.yahoo.co.jp/hl?a=20080206-00000007-cnet-sci

821 名前:819 [2008/02/07(木) 22:12:07 ]
実はVC++2008で書いたコードでは上手くいっているのでAPIというよりDLLの問題かなと。
そのVCで作ったDLLをDのmainから呼び出した場合上手くいきました。

822 名前:813 [2008/02/07(木) 22:13:18 ]
失礼。↑は813です。

823 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:14:45 ]
>>820
何回同じ話題振ったら気がすむんだよww
同じスレぐらい検索しろ

824 名前:デフォルトの名無しさん [2008/02/07(木) 22:32:00 ]
>>820
別物なんだよ。

825 名前:デフォルトの名無しさん [2008/02/07(木) 22:36:19 ]
ネームぱくられました

826 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:44:43 ]
たぶん、D言語では商標とれないよね。

827 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:06:27 ]
>>813
ソースコード見てみたーい

828 名前:813 [2008/02/07(木) 23:19:49 ]
いろいろしてみたけど結局分からないorz
>>827
というわけで載せるためにソース整形してきます。

829 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:30:07 ]
>>815
あ、ほんとだ。
向こうのnewsでも「"D"も有名になったもんだ =P」なんて皮肉られてる……のかな? 英語ヨクワカラナーイ。



830 名前:813 [2008/02/07(木) 23:50:35 ]
↓DLLのソース
// test_hook.d
module test_hook;
import win32.winbase;
import win32.windows;
static import tango.stdc.stdio;
import tango.stdc.stringz;
import tango.io.Stdout;

pragma( lib, "tango-user-dmd.lib" );

HANDLE g_hModule = cast(HANDLE) null; // DLLのモジュールハンドル
HHOOK g_hHook = cast(HHOOK) null;

extern (C){
 void gc_init(); // GC初期化
 void gc_term(); // GC終了
 void _minit(); // モジュールリスト初期化
 void _moduleCtor(); // モジュールコントラクタ実行
 void runModuleUnitTests(); // 単体テスト実行
}

831 名前:813 [2008/02/07(木) 23:51:14 ]
extern(Windows) BOOL DllMain( HANDLE hModule, ULONG ulReason, LPVOID pvReserved ){
 switch(ulReason){
  case DLL_PROCESS_ATTACH:
   gc_init(); // GC初期化
   _minit(); // モジュールリスト初期化
   _moduleCtor(); // モジュールコンストラクタ実行
   runModuleUnitTests(); // 単体テスト実行
   g_hModule = hModule;
   break;
  case DLL_PROCESS_DETACH:
   gc_term(); // GC終了
   tango.stdc.stdio._fcloseallp = null; // DLLが終了しても標準入出力を閉じないようにする。
  break;
  case DLL_THREAD_ATTACH:
  case DLL_THREAD_DETACH:
   return false;
  }
 return true;
}

export extern(Windows) void HookStart(){
 g_hHook = SetWindowsHookEx( WH_KEYBOARD, cast(HOOKPROC)&KeyboadProc, g_hModule, 0 );
}


832 名前:813 [2008/02/07(木) 23:51:53 ]
export extern(Windows) void HookStop(){
 UnhookWindowsHookEx( g_hHook );
}

extern(Windows) LRESULT KeyboadProc( int code, WPARAM wParam, LPARAM lParam ){
 if( code != HC_NOREMOVE && code >= 0 ){
  MessageBox( cast(HWND)null, toString16z( "Key pushed" ), toString16z( "test_hook" ), cast(UINT)0 );
  return 0; //処理をした。
 }
 return CallNextHookEx( cast(HHOOK)0, code, wParam, lParam );
}


833 名前:813 [2008/02/07(木) 23:53:57 ]
-----------
↓main.exeのソース
// main.d
module main;
import win32.winbase;
import win32.windows;
import tango.stdc.stringz;

pragma( lib, "tango-user-dmd.lib" );

const wchar[] HOOKDLLNAME = "test_hook.dll";
alias extern(Windows)void function() FUNC;
FUNC HookStart, HookStop;

void main(){
auto hMod = LoadLibraryW( toString16z( HOOKDLLNAME ) );
HookStart = cast(FUNC) GetProcAddress( hMod, "HookStart" );
HookStop = cast(FUNC) GetProcAddress( hMod, "HookStop" );

HookStart();
MessageBox( cast(HWND)0, toString16z("フックしています。"), toString16z("main"), cast(UINT)0 );
HookStop();

FreeLibrary( hMod );
}

834 名前:813 [2008/02/07(木) 23:58:15 ]
-----
// test_hook.def
LIBRARY 'TEST_HOOKDLL'
EXETYPE NT
CODE PRELOAD DISCARDABLE
DATA PRELOAD SINGLE
EXPORTS
HookStart @1
HookStop @2
--------
以上です。
環境はtango 0.99.4 ( dmd 1.024 ), Binding Win32API
-Unicodeでコンパイル。

835 名前:813 [2008/02/08(金) 00:03:33 ]
あ、-version=Unicodeのことです;
フック中に他のアプリでキーを押すとMessageBoxを出します。

が、実際は反応してくれません。メモ帳起動->main.exe->メモ帳でキーボードを押す、として反応しませんでした。
さっき気づいたのですが、なぜかほかのコマンドプロンプト上のキーボード操作には反応するみたいです。

836 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:50:18 ]
Dがなんか特殊なことやってんのかもね。
俺もグローバルフックプロシージャ内で try/catch() 文書いたら全プロセスがこけた。
SEHフレームの構築で何かやらかしてんじゃないかと予想してるが。

837 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:00:42 ]
2chにソースはるなボケ

838 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:03:48 ]
罵倒するほどでもないが、読みにくいのは確かだな。

839 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:09:25 ]
【技術】マイクロソフト、新開発言語「D」を開発中[08/02/07]
news24.2ch.net/test/read.cgi/bizplus/1202379742/



840 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:10:40 ]
なんどめだ

841 名前:813 [2008/02/08(金) 01:11:27 ]
すみません、スペース入れようかどうか迷ったのですが結局入れませんでした。
全角スペース挿入だとコンパイルする人が半角に直すのが面倒かと思い、
nbspを入れるのも考えたんですけど、それが一般的なのかわからなかったので、そのまま入れました。
ソースを張るときはどうするのが一般的ですか?

842 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:15:12 ]
1レスに収まりきらないなら、適当にアーカイブ化してどっかのアップローダにでも上げればいいんじゃないかな。
複数ファイルだとビルドするのも面倒だしねえ。

843 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:19:25 ]
>>776
>>811
>>820
>>839

開発開始を宣言しただけなのに大々的に取り上げられすぎだろw

844 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:23:48 ]
>807
stringがエラー扱いにならなくなってるな。ありがたい。

845 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:32:08 ]
おお、Descentがstringをchar[]として認識するようになった。
全体的にautocompletionが賢くなって、aliasの扱いが改善されてるらしいな。
"str".tolower()とかはまだエラーって言われるけど。

846 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:34:21 ]
ttp://blogs.itmedia.co.jp/satohiroshi/2008/02/d-3d55.html
こうやって宣伝に乗っかるわけか。

847 名前:デフォルトの名無しさん [2008/02/08(金) 01:45:45 ]
>>846
ちょw DigitalMars完全否定w

848 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:00:25 ]
tango入れてないので、Phobos用に少し書き換えてやってみたけど、症状ほぼ同じ。
自分とこの環境では、メモ帳が固まったまま応答無くなる。

849 名前:813 [2008/02/08(金) 02:10:22 ]
あ、出来た...
defファイルの
DATA PRELOAD SINGLE

DATA PRELOAD
にすることでちゃんとフック出来ました。
defファイルの書式(メモリ指定あたり)とか調べても見つからなかったからサンプルのまま使ってたけど、ここだったんですね。
C++の方ではdefファイルを書かずに作っていたので普通にフック出来ていたようです。

>>848
試していただいてありがとうございます。

次からは長いコードはアーカイブするなり気をつけますm
あと、defの書式やオプションの解説はどこかにありますか?



850 名前:813 [2008/02/08(金) 02:17:40 ]
勘違い。VC++の方でもdefは書いてたけど、EXETYPE/CODE/DATAの設定が無視されてました。

851 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:25:36 ]
>>849
www.digitalmars.com/ctg/ctgDefFiles.html

852 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 06:06:17 ]
>>846
あれだな、情報操作に一番騙されるのって、「自分の頭で咀嚼する」意欲だけはあるけど、
調べる気があんまり無く、誘導されるままに「自分なりの見解」に辿り着いて満足しちゃうタイプの人間だよな。
この短いブログを書く時間で、D言語が既に存在するかどうかなんて調べられるのに、
「あるかどうか」という事実より、「実はなかったということのようです」という見解をひけらかすほうが大事なわけだ。

まったく思考が発展しない馬鹿のほうが、その点では無害かも。

853 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 07:38:26 ]
製品化してないものは存在しないという考えかもね。
DMDなんて同人サークルが勝手に作った独自言語程度に思われてたらやだな。

854 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 09:26:11 ]
digital marsって会社のポジションがよくわからん。
IT世界的に見たらどれくらいの影響力があるんだろう。

855 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 10:03:49 ]
IT世界とかあやふやすぎるだろ・・・
Cコンパイラ界、ECMAScript界なら 結構いいはずだぜ!

たぶん

856 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 10:37:19 ]
トップページに会社情報がないあたりが何とも。
ウィキペディア(英語のほう)みた感じだと
小規模なベンチャーかな?って思った。

857 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:07:13 ]
digitalmarsは本当にWalterタンの同人サークル程度のもんだが。
コンパイラ界でWalter Brightの名前を知らん人間はいないだろ常識的に考えて、くらいの影響力。

858 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:21:56 ]
それはともかく次スレからはDigitalMars Dって書かないといかんな
めんどくせえ

859 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:39:27 ]
後発がMicrosoft Dって書くもんじゃね?



860 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:53:44 ]
>>859 まったくだプリプリ

861 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 14:38:04 ]
文字コードの変換はこのモジュールを使うしかないんでしょうか。
www.wikiroom.com/sakurai/index.php?DJcode

これを使ってみたんですが、全く同じデータを渡してもたまに末尾にゴミが混じるようで変換時に末尾に〓がついたりします。

862 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 17:53:45 ]
encoding周りをちゃんと実装してるライブラリは見ないね。
iconvとか使ってみるといいかも。

863 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 18:28:57 ]
>>861
キミがそいつのバグを取ってくれたら、38万の日本のDユーザが喜ぶよ

864 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 18:56:45 ]
>>668
ttp://f17.aaa.livedoor.jp/~labamba/?D%B8%C0%B8%ECBOF
>特に仕事に使ったという事例。2chにいたらしい

865 名前:デフォルトの名無しさん [2008/02/08(金) 18:58:46 ]
Eclipse起動しただけでメモリ83MBくってる。。。でかすぎ.
ちなみにVC++2008Expressは28M

866 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 20:15:20 ]
もはやメモリ1G五千円の時代だよ。
28と83なんて大して変わらない。

867 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 20:16:17 ]
誤差だな

868 名前:809 mailto:sage [2008/02/08(金) 20:58:29 ]
>>809
どなたか、よろしくお願いします・・・

869 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:03:13 ]
>865
GoogleDesktopに600Mほど食われたのに比べればどうということはない



870 名前:デフォルトの名無しさん [2008/02/08(金) 21:06:11 ]
>>866
メモリ512MBノート使ってますorz
増設しようかと思ったけど今主流のノートメモリの一つ前のタイプらしい。
新しいノートに変えたときに流用出来ないんで、やめときました。

871 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:12:36 ]
>>866
>メモリ1G五千円

ノートか?
今は樋口一葉で2GB買えるだろw

872 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:14:34 ]
バルクか

873 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:22:32 ]
>>871
そりゃ味を選ばないならいくらでも食えるだろ。

874 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:29:45 ]
>>868
なぜ自分で試さない?
ttp://www.dsource.org/projects/descent/wiki/DebuggingPrograms
ttp://ddbg.mainia.de/doc.html

875 名前:809 mailto:sage [2008/02/08(金) 21:54:48 ]
>>874
うわぁ、すいません m(_ _)m
ありがとうございます!

876 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:07:45 ]
>>873
ノーブランドだったら1GBで英世2枚だよ
メーカー製でも4枚要らない
そのくらいのことも調べずに価格の最新事情を指摘されたくらいで「味を〜」とか騙らないでね

877 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:23:09 ]
何を必死になってるのかさっぱり分からん。

878 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:23:36 ]
言っとくけど俺をあまりナメないほうがいいよ
vipでコテハンやってるしこのスレ潰すくらいの影響力は持ってるから
くだらないことで刺激して後悔しないようにね

879 名前:デフォルトの名無しさん [2008/02/08(金) 22:25:34 ]
>>878
ぺろぺろ



880 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:28:27 ]
この味は! ・・・ウソをついている『味』だぜ・・・

881 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:28:59 ]
じゃあつぶせば?
それとも口だけ?

882 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:30:34 ]
まったくだ

883 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:33:11 ]
>>878




えーと・・・
この場合つっこんだら負けなんだろうな。

884 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:33:28 ]
最近はやってきたコピペだしな

885 名前:デフォルトの名無しさん [2008/02/08(金) 22:34:40 ]
>>884
だよね。さっきSleipnirのスレで同じ文章見かけた。

886 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:35:02 ]
俺もgdi++スレで見たよ

887 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:38:11 ]
他所のスレで見かけたコピペをすぐに使いたくなっちゃう子って可愛いよね。

888 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:41:03 ]
たった3行でここまで哀れみを誘うコピペ作ったやつも凄いな。
俺さっきから得も言われぬ哀れみを感じて表情が微妙なままだ。

889 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:44:51 ]
それマジで言ったん?ソースあんならすぐ出せ
マジなら2ちゃんねら総力を上げて潰すが



890 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:45:30 ]
大漁だなw
お前らコピペだと分かってるならスルーしろよw
それくらいもできないのかこのオタクどもはww

891 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:48:02 ]
この流れは参加しないと勿体ないとおもっちまって。
D言語スレでやるこっちゃないけどな。

892 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:48:38 ]
いまどき、後釣り宣言は流行らねえだろ

893 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:55:02 ]
class Fileを使いforeachで行ごとに処理する場合、
foreachの頭で毎回ディスクにアクセスしてデータを取り出してるんでしょうか?

BufferedFileを使ったら速度が20倍になったんですが。

894 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:59:22 ]
正直釣りや煽りならそういって欲しい派だけどな俺は
釣りも後味良いのと悪いのとがあるんだよな

そういやなんだか2ちゃんねるの中で話されていること(煽りやら学歴厨やネトウヨその他の・・・)を
マジに取ってしまってる人が最近出始めてきてるように思う
こりゃあやばいかもわからんよ10年後は

895 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:01:50 ]
>>893
そうだよ。それも1byteずつReadFileなりreadなりしてるよ。

なんで、ソースついてるのに読まないのか不思議だ。

896 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:03:28 ]
知人の話ではいい年こいた大人が会社で自分はにちゃんねらだのVIPPERだの大喜びで宣伝してるらしい。
年の離れた上司がそんな感じで萎えるとか愚痴られた。10年経たなくとも一部はもう駄目かもしらんね!

897 名前:デフォルトの名無しさん [2008/02/08(金) 23:03:46 ]
Descentでtangoを使う為の設定が分からんorz

898 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:09:49 ]
>>895
そうなんですか。。。
単純な文字列変換なんですがperlより遅くなってしまってどうなってるのかちょっと不思議に思ったので。

ソースは読んでも多分わからないので読まなかったのです。
モジュールの中身を知らなくても動くには動くので今まで気にしたことがなかったのですが。
これからは気にして読んで理解することからはじめようと思います。
どうもです。

899 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:19:08 ]
>>897
TangoのウェブサイトからDMDバンドル落としてきて、
D>Installed Compilersからパスを設定すれば普通に動いたよ。



900 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:27:39 ]
813氏いる?
プログラムを実行してグローバルフックかけた状態で、ファイルのショートカットのプロパティを開いてリンク先を変更すると、エクスプローラがフリーズして電源切るしかなくなるのだが、同じ症状出る?
俺は、これがあるせいでDで作るのをあきらめた過去があって、ほかの人はどうなのかちょっと聞いてみたい。
GDCやVC++だと大丈夫なんだけどな。
ちなみにOSはXP。


901 名前:813 [2008/02/08(金) 23:33:55 ]
>>900
フックの種類は?

902 名前:デフォルトの名無しさん [2008/02/08(金) 23:36:45 ]
>>899
出来ました。設定する前にプロジェクト作って、その後に設定したからエラーのままだったらしい。
設定後に一端プロジェクト消してもう一回作ったらちゃんと動いた。
設定変えたらちゃんとプロジェクトに反映してほしいな。。再起動はさせてたんだけど。

903 名前:900 mailto:sage [2008/02/08(金) 23:40:09 ]
>>901
>>830あたりのコードと同じ、普通のキーボードフック。
tango入れてないから試せないけど、このコードでも同じ症状が出るはずなんだけど。

904 名前:デフォルトの名無しさん [2008/02/08(金) 23:42:23 ]
あげ

905 名前:813 mailto:sage [2008/02/08(金) 23:47:25 ]
>>903
キーボードフック中にリンク先変更で?まさかねーw
と思いつつ試したらフリーズしましたorz|||

906 名前:813 mailto:sage [2008/02/08(金) 23:49:27 ]
しかもタスクマネージャからKILLしても死なないし、CPU使用率0%のまま。
explorer何者だよ...

907 名前:813 mailto:sage [2008/02/09(土) 00:00:01 ]
ちなみにWM_GETMESSAGEフックではならなかった。


908 名前:900 mailto:sage [2008/02/09(土) 00:16:04 ]
仲間がいたw
GDCやVC++だとなんともないから、たぶんリンカが悪いと思うんだけど、モジュール定義ファイルをいくらいじくっても改善しなかったんだよね。

>ちなみにWM_GETMESSAGEフックではならなかった。
WM_GETMESSAGEはすべてのメッセージをピックアップするみたいだから、必要なメッセージを抽出すれば使えるかもしれない。
明日にでも試してみるよ。
ありがとう。

909 名前:813 mailto:sage [2008/02/09(土) 00:30:21 ]
WH_KEYBOARD_LLでも発生しなかった。
代用ならLLかGETMESSAGEだな。

ちょっと調べたことを列挙。
LLはNT/2000だけ、DLLも作成しなくていい。
GETMESSAGEはメッセージの書き換えとかも出来る。もちろんWM_KEY系も来る。
WH_KEYBOARDはWM_KEYUP/WM_KEYDOWNの時に呼ばれるらしい。おそらくGETMESSAGEの場合と同じタイミングのフック。

だからGETMESSAGEで代用は出来ると思います。
でもDLL自体の問題がどうにもならないのは少し気持ち悪いな。



910 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:31:03 ]
自分もやってみた。確かにフリーズ。クリック何回かしたら勝手に終了。
フォルダオプションで、別プロセスでフォルダ開くようにしてるから
メインのエクスプローラには影響なし。

タスクマネージャが起動できるのなら、電源切らんでも、
メニューのファイル→新しいタスクの実行で、
explorerを入力してOK押せば回復するはずだけど。

これ使った、ソースとexe+dll
ttp://a-draw.com/uploader/src/up31499.zip.html

911 名前:813 mailto:sage [2008/02/09(土) 00:34:40 ]
>>910
新しいタスクの実行も試してみたけど反応無しでした。既にexplorerのプロセスがあるから多重起動だと思われたんじゃないかと。
再起動じゃなくてタスクマネージャからログオフして回避した。

912 名前:813 mailto:sage [2008/02/09(土) 00:38:59 ]
>>910
解凍するとup31499って名前のファイルが一つだけ。。。

913 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:45:56 ]
失礼。直リン対策に引っかかるね。
ttp://a-draw.com/uploader/upload.html
up31499.zip

914 名前:900 mailto:sage [2008/02/09(土) 00:48:31 ]
>>909
俺もちょっと過去に調べたことを・・
LLはフックだけならDLL作らなくていいけど、他アプリでの固有の状態、たとえば、キーボードメッセージがきたときにコントロールキーの状態が知りたいというときには、やっぱりDLLを作る必要がある。
GetKeyboardStateはローカルな状態しか取得できないから、他アプリ上でフックしたときの状態はDLLの中のプロシージャから取得するしかない。

だから、GETMESSAGEにはちょっと期待。
>でもDLL自体の問題がどうにもならないのは少し気持ち悪いな。
これには同意。

915 名前:813 mailto:sage [2008/02/09(土) 00:48:48 ]
いえ、zipのDLまではしたんだけど、解凍するとなんか変です;一応二種類の解凍ソフトで試してみましたが。

916 名前:910 mailto:sage [2008/02/09(土) 00:58:23 ]
>>915
中身は、813さんが貼ったソースを、phobosで動くようにしただけの物です。

917 名前:813 mailto:sage [2008/02/09(土) 01:02:50 ]
>>916
えーと、>>912に書いたように、解凍すると中身がup31499というファイル一つになってます;
アップローダが何か変なことしたんじゃないかと思いますが。



918 名前:900 mailto:sage [2008/02/09(土) 01:11:57 ]
>>917
自分は
1.913のアドレスをブラウザで開く。
2.up31499.zipのリンクをクリックする。
3.さらにup31499.zipのリンクをクリックする。
でちゃんと
hook
-bin
--main.exe
--test_hook.dll
-src
--main.d
--test_hook.d
--test_hook.def
という内容のものが出てくるよ。
Noah使用。

919 名前:813 mailto:sage [2008/02/09(土) 01:17:51 ]
一応解凍出来ました。でも動作は変だ。
zipを保存->Lhaforgeで解凍->up31499.zip_extractedというファイルが出来る->それをLhaforgeで解凍->hookフォルダが出来る。
なんだろ、これ、二重圧縮?



920 名前:813 mailto:sage [2008/02/09(土) 01:22:19 ]
ちなみにLhaplusで解凍したら>>912の現象。
zip_extractedでぐぐって見たけど、同じような事例があるだけですね。

921 名前:900 mailto:sage [2008/02/09(土) 01:26:25 ]
>>919
こちらでは、7-zipでも正常だった。
ソフトとの相性?

922 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 02:00:29 ]
ところで、TangoのGCではminimizeができるようになるのかな?
なんかだれかほしがってた気がするけど。

923 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 02:04:17 ]
極窓に投げると.gtzと判別されますよ、っと

924 名前:813 mailto:sage [2008/02/09(土) 02:07:43 ]
gtz...検索しても情報無し。と。

925 名前:813 mailto:sage [2008/02/09(土) 02:21:16 ]
>>923
あ、tgzですね。

926 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 03:24:13 ]
>>859

D++(笑)
D#(笑)

とかw

927 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 04:36:27 ]
でもC++やC#はCから派生したって意味だろうし、これは全く違う言語だからなあw

928 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 05:36:26 ]
Eclipseってもっさりしてるし欲しい機能がどこにあるか分からなくて疲れる。

929 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 07:22:49 ]
おまいら当然Dのリンカが吐くモジュールのOpt.OSVer[0]とOpt.SubSysver[0]って毎回書き換えてるよな?




930 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 07:27:22 ]
>>929
素直にdefファイルなり/exet: /su:なりで指定しろよ…

931 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 09:20:45 ]
-gオプション付きでコンパイルしたものって配布しちゃだめなの?

932 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 11:41:35 ]
>900
確かにフリーズするが、ほっといたら直ったが(一分くらい?)


たしかに、このバグはちょっと困るなぁ……

933 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:19:37 ]
自分用に導入ガイド書いたんだが誰か添削してくれないかなぁ。

導入ガイド。@DMD+Phobos編@Windows@20080209

1,DIGITAL MARSのサイトからDMD.zipとDMC.zipを落としてくる。
--筆者はVer1.015で試している。
--dmd.2.010.zipでも同じ構成と思われる。
--圧縮ファイルは念のためとっておきましょう。
2,両方を解凍。
--DMD.zip->(DMDとDM)
--DMC.zip->(DM)
3,DMD側のDMにDMC側のDMを上書き。同じフォルダにDMDとDMになる。マージするんです〜。
4,任意でPATHを通す。
--c:\dmd\dmd\bin;c:\dmd\dm\bin とか。Pathの区切り文字は ; です。
---場所は貴方が決めます。
--XPの場合:マイコンピュータを右クリック->システムのプロパティ->詳細設定タブ->環境変数ボタン->Path
---開発ユーザのユーザPATHにするのが良いと思います。
5,テストします。
--ソースを用意しましょう。
---文字コードはUTF-8オンリーです。SJISとかEUCとかではだめです。
--お好みでbudやdsssを用意しましょう。
---dsss:www.dsource.org/projects/dsss/
----筆者は使ったこと無いです。
---bud:www.dsource.org/projects/build/
----budはpath上の日本語を許容しません。

934 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:22:05 ]
わなDで十分な気もしないでもない

935 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:43:15 ]
OSを良く吹っ飛ばすので実行ファイル系はいったんなくなっちゃうんです。ウイルス怖いので。
で、手元にまとめて置いておきたかったんです〜。
そういえば、わなD有りましたね。。。
ちょっとのぞいてこよう。


936 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:48:44 ]
改めて読んでみるとわなDで十分なきがしてきた。orz
Descentのことも書いてあるし。
車輪の再発明再び!XP

937 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:57:49 ]
EclipseをDで書き直すって需要ある?

938 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:58:27 ]
質問なんだけど、数学の行列って必ず長方形なり正方形なの?立方体にはならない?

939 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:59:39 ]
>>938
誤爆?

なんとなく言いたいことが不明だが
テンソルのことかな?
行列の添え字が3つ以上あったりするやつ



940 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:03:07 ]
>937
「もっさりしないEclipse」はEclipseユーザの誰もが夢見る代物だと思う。
実現するかはともかく。

941 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:04:48 ]
>>937
D言語で書かれたIDEは、D言語が実用にたえることの証明になると思うよ。
がんばれ

942 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:07:05 ]
>>939
あー、行列って言わないのね。もっと大きな体系があるのか。
勉強になった。Thx!

943 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:07:39 ]
>>938
>>939の追記だけど普通に多次元行列は定義できるよ
んで扱いやすい性質を持ってるのがテンソルと呼ばれてる
大雑把に言えばこんな感じかな?

944 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:13:16 ]
>>943
把握した。・・・多分。
テンソルって言うのは初めて聞いたよ。
調べてみる。俺、文系だけど〜。^^;

945 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 19:25:39 ]
ここ何スレだよwww

XX年後、D言語にテンソル型が実装されることをこのスレの誰も知る由がなかった。

946 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 19:40:05 ]
その前にD言語はMSに乗っ取られてしまいましたとさ。

947 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 19:51:59 ]
しかしなんとMSがDMを買収

めでたしめでたし

948 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 20:11:28 ]
行列用クラスを作りたいけど、テンソルも最初から考えるかどうかは悩むよね。
FORTRANとかMATLAB(GNU Octave)とかがあるから、それに対抗しようとするとさらに悩める

>>944
こういうのがある
ttp://www.oonumerics.org/blitz/

949 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 20:16:43 ]
テンソル使うならやっぱMathematicaじゃね?
計算の速さ考えるなら別だけど



950 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 20:37:18 ]
その中間としてSun Fortressなんかが出てきたりとか。
いろいろありますねえ。

951 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 21:53:06 ]
個人的には線形代数だと三角行列と対角行列が欲しい。
んで、対角化や特異値分解とかやってくれるの。
粗行列と Lanços 対角化もサポートしてくれると最高。

952 名前:デフォルトの名無しさん [2008/02/09(土) 21:54:40 ]
でOcamlも結構よくね?
手続き型と静的なシンボルリストをあわせもつSystem.out.println標準内蔵だしな

953 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:09:35 ]
そういえばD言語に標準の国際化機能ってあるの?C#のサテライトアセンブリみたいな。

ないなら何が一般的かな?

954 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:14:55 ]
>>802
遅レスだけど…。
tangoのmutexがどうゆう仕様かは知らないんだが、
synchronized文はロック・アンロック(ロック変数の処理)をプログラマが
気にしなくていいのが、pthreadとかのmutexと違うところ(良いところ)だと思う。
例外発生時とかのイレギュラーな動作の時もアンロック保証がされてる所。

変数に対してじゃなくて、制御フローに対するatomicの保障を言語レベルで行う
ってのはうれしいことじゃないかな。
(変数に対するatomic保障もできるけど)

スレッドプログラミング超初心者の時に、下みたいなプログラムを書いて泣いた覚えあり。
下は極端な例(&雰囲気)だけど…。
下の例で、ほかにたとえば関数func()内で例外が発生してどっか飛んだ場合のアンロックは…、とか。
まあ、他の人はそんなミスしないのかもしれない…。

int a; // ロックに使用するグローバル変数
int hoge() {
 bool b;
 lock(a); // ロック開始
 b = func();
 if (b){
  return 10; // bがtrueだとロック解除されないで、hoge()を抜けてしまう…
 }
 unlock(a); // ロック解除、falseの時のみ解除される
 return 0;
}

基本、クリティカルセクションは必要最低限で。
そういう意味で、上の例のプログラムはよくないかもね。
(もしfunc()内全体の処理をロックする必要がないなら)

955 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:18:54 ]
スコープガードを使うのも手だね。

lock(a);
scope(exit) unlock(a);

956 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:49:15 ]
結構スコープガードって便利だよなー

957 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:51:48 ]
便利すぎ
あれ無しでは生きていけない体になりました
特に害も無さそうだし

958 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 01:25:14 ]
>>953
マルチリソースっていう感じのはまだなさそう。
文字コード自体はUTF-8採用で国際化という感じになってる。

959 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 01:25:16 ]
行列演算もいいけど、複素数演算ももうちょっと充実してくれないかな。
せっかくネイティブで複素数対応してるんだし。



960 名前:デフォルトの名無しさん [2008/02/10(日) 01:47:55 ]
ぱっと見C言語なんだが。

961 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 01:52:04 ]
いきなりそんなこと言われてもどう返事してあげればいいのか分からない。

962 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 01:54:05 ]
>>960
GC搭載ですよ。
Cライクって事は過去の遺産、コーディングの癖とか使えるって事です。適合してるかは別ですが。

963 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 01:57:12 ]
GCってステキ

964 名前:デフォルトの名無しさん [2008/02/10(日) 02:51:27 ]
なるほど、{ } このトークンは亜種の言語処理系でもよく採用されている。
今更言語Dを勉強するほど若くもないので参考にしておきましょう。

デジタルマースにもこのDコンパイラが確かにあった。

965 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 02:55:28 ]
日本語でおk

966 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 03:10:00 ]
>>864
見落としてた。ありがと
>>668
本人かどうかわからんけど、発表する気があるなら時間配分とか(NDAがらみで録画公開不可とか)あると思うんでスピーカの誰かに連絡くれまいか
当日いきなり「お、そこに○○がきてるじゃないか。お前のほうが詳しいからお前話せ」みたいなのもカッコいいとは思いますが

>>686
漏れだ。ただ今のメンテナは漏れじゃないからサイトやドキュメントは任せてる


967 名前:デフォルトの名無しさん [2008/02/10(日) 08:49:33 ]
GCゲーム向かない
C++だって簡単にGC実装できるんだから
donguri.sakura.ne.jp/~shock8/wisper/gc1.html
リアルタイム性が要求されるものはメモリを手動で管理し、特にその必要がないものにはGCで管理の負担を減らすといった使い分けができる

968 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 08:54:31 ]
>>967
ゲームにもよると思うけどな。
でも、今時のGCで困るほどリアルタイム性が要求されるゲームなんて
そうそうないと思うぞ。

969 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 09:00:18 ]
>>967
DもGC使う/使わないは切り替えられると思う。
GC使う場合でも
www.sun-inet.or.jp/~yaneurao/dlang/Chapter-06.html
あたりを気をつければゲームも問題なく作れる。



970 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 09:31:26 ]
>958
そっか、ってことはまずはそこから作らなきゃならないのか。ありがとう

971 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 09:33:09 ]
向かないつっても実際作って公開してる人はいるし(ABAさんとか)、企業製品でもGC使うゲーム結構多いと思う。
うぉるたんも力説してるけどGCは怖くないよ!

972 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:19:56 ]
ストップザワールドが怖かったら、
その時だけ一時的に GC 止めればいいしな。

973 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:28:30 ]
今時on the flyじゃないGCなんて・・・

974 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:39:12 ]
そういう妄信的な姿勢って薄気味悪ささえ覚える

975 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:46:00 ]
もともとGCは補助であってプログラムのメインじゃないし、シンプルなもので十分だと思う。

976 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:47:21 ]
もっと高度なGCが必要ならプログラマ側で交換すればいいだけ。

977 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:49:39 ]
Dって完全にGC使わないなんてことできるんですか?

無理無理無理無理

978 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:52:42 ]
scope 文で事足りる処理しか書かなければ可能。
実用アプリじゃほぼ無理だろうが。

979 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:56:59 ]
>>977
方法を調べたことは無いけど、
www.kmonos.net/alang/d/2.0/dll.html#Dcode
のDLLのコンパイルの説明で
>dmd mydll.obj \dmd\lib\gcstub.obj mydll.def -g -L/map
>mydll.obj を mydll.dll という名前のDLLへとリンクします。 gcstub.obj は必須ではありませんが、これをリンクすることで、 不要なGCコードを省くことができます。 およそ12Kbの削減になります。
ってあるのが関係あるかも

GCをオフなるようにしてGCコードを省くようにすればGCの機能は消えるんじゃない?



980 名前:979 mailto:sage [2008/02/10(日) 12:59:08 ]
>>977
>>978
あ、機能の消し方じゃなくてGCの要らないコードの書き方の話?

981 名前:977 [2008/02/10(日) 13:34:57 ]
俺が言いたいのは、そんな泥臭い方法でGCを無理に押さえつけなくてもC++なら使いたいときだけGCが使えて便利だねって話



982 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:42:25 ]
何か妄信的なC++厨が迷い込んでるな
そこまで言うならC++でGCを実装してABA GamesのOpenGLゲームやXNAのサンプルゲームと同じクオリティを省メモリで作って上げてくれ
C++なら便利みたいだからD言語やC♯より楽にGCアプリを作れるんだろ?

983 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:43:51 ]
>>981
まあ確かに簡単にオフに出来ないのなら言語仕様変えて欲しいな。(俺は今の言語仕様でGCを完全に切れるかは知らない)
でもDは標準でGC有り、C++は標準でGC無し。どちらも有り無し選択可能ってだけで変わらないんじゃないかな。
C++でGC使うのに外部ライブラリ使う準備する手間と、DでGCを切る手間はどちらも変わらない気がする。

984 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:44:33 ]
C++ で GC って C++/CLI を想定しているのだろうか?

985 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:48:30 ]
BoehmGCじゃないの

986 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:52:43 ]
もうそろそろ次スレ必要じゃね?誰かよろ。俺はホスト制限で弾かれた。

987 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:21:40 ]
>>975 というような事を言う奴にかぎってメモリリークさせるんだよw

988 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:50:03 ]
GCの制御に多少手を取られても、
言語組込みの方がコードは圧倒的に読みやすくなると思う。
それでもC++を使う方がベターな分野は常にあるんだろうけど、
そういう分野はできればこの先減っていって欲しい。

GCをもっと簡単かつ細かに制御できるれば、Dの適用範囲を広げられるかもねぇ。

989 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:53:01 ]
本来GCはOSに組み込まれいているべきで(ry



990 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:10:56 ]
Part17: pc11.2ch.net/test/read.cgi/tech/1202623572/

991 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:15:09 ]
>>990
サンクス

992 名前:975 mailto:sage [2008/02/10(日) 15:16:55 ]
>>987
すまんw 俺高校生の趣味プログラマだから、大規模プロジェクトとか経験無しで言ってるw

993 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:20:16 ]
>>990
乙牌

994 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:29:52 ]
しかし最近流れが速くなってきたな
げいつのせいか

995 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:33:19 ]
Descentのおかげじゃないか

996 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:37:12 ]
だな。どうせMSのは製品になったら名前変えるだろうし、Descentのが気になる。

997 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:41:27 ]
>>994
テンソルのせい

998 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:44:33 ]
BoF、Descent、MS-Dと、話題が集中したからな……

むしろMSには、OSの開発言語を刷新するような
モダンなDリスペクト言語を期待してたのになぁ。

999 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:46:07 ]
Part17: pc11.2ch.net/test/read.cgi/tech/1202623572/



1000 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:46:28 ]
Part17: pc11.2ch.net/test/read.cgi/tech/1202623572/

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<212KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef