- 1 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 13:13:52 ]
- だれか サポ−ト 頼む。
前々スレ pc5.2ch.net/tech/kako/1034/10341/1034182349.html 前スレ pc8.2ch.net/test/read.cgi/tech/1063711237/ 本家 www.lua.org/ lua-users lua-users.org/ LuaForge luaforge.net/ Lua 5.1 リファレンスマニュアル(日本語訳) sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html
- 859 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 18:37:04 ]
- Lua用のラッパーライブラリ自作したけど、
結局スタック操作から逃れられなかったなあ。 操作をできるだけ簡略化しようとして変態的になっていく不思議。 スタックの取得とかはこんなん。 lua_Var var = Lua.peek(-1); ↑Luaが扱うオブジェクトなら何でも入る共有体クラス 関数呼び出しはこんなん。 ( Lua.global()["object"]["setPosition"] << 1.0 << 12.3 << 0.4 )(3, 0);
- 860 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 00:10:39 ]
- luabindが二年放置(最終更新2006-01-24)の状況なのが厳しいですね。
luaのバージョンも進んでいるうえ、VS2008も販売された今では、 サポート放置されたライブラリには手が出しにくいです。
- 861 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 00:29:40 ]
- sqplus使おうぜ
- 862 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 00:44:46 ]
- スタック操作が煩雑になってきたら、ラッパー使って誤魔化すよりも
最小限の関数だけエクスポートして積極的にLua側に ロジック追い出すように練り直した方が良いと思うけど。
- 863 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 00:46:58 ]
- >>860 svn版使おうぜ
code.rasterbar.com/luabind/wiki
- 864 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 08:56:59 ]
- きちんと高専とかで勉強したやつらはスタック型好き多いからね
- 865 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 09:32:40 ]
- >>859
変態っぽいw でも関数呼び出し面白い >>864 スタックは仕組みがわかってても、日常のプログラミングでつかわないから疲れる で、Squirrelは基本ライブラリですらスタック周りのバグがあったりして、 ソースみながら理解しようとしても信用できずに不安(もちろんパッチなげたけどさ)
- 866 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 09:33:45 ]
- DMonkey、Wolfyによる更新キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
DMonkeyもスレ違いじゃないよね?
- 867 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:09:03 ]
- >>859
<< 1.0 << 12.3 << 0.4ってのは何を渡してるの?(3,0)は関数呼び出しって分かるけど。 >>865 バグについてkwsk 確かにスタック操作は煩雑だよね。特に開放。忘れたらリソース食いつぶすって点で new-deleteに通じるものがある。 Squirrel使う予定なんだけど、やっぱりスタック操作の理解を深めるためにバインダは 自作したほうがいいかな。
- 868 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:22:28 ]
- スタック操作の理解を深めるためには
情報処理試験の勉強をするのがよいとおもう。
- 869 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:43:45 ]
- > バインダは
> 自作したほうがいいかな。 Squirrel Wikiのバインディングを一通り試してみてからでも遅くはないと思う。 wiki.squirrel-lang.org/ どっちにしろ、1から書くには大変だと思うので。 >>867 バグkwsk覚えてない。SqPlusのバグだったかも。 >>867も言うような pop忘れだったと思う。 俺が見た時は、安定版にパッチが取り込まれてなかった。 大分前、去年の話だけどね。 他にも似たようなところがあるかもしれない。
- 870 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:48:13 ]
- そういう意味じゃないって('A`)
まぁ車輪の再発明もいいところだが、バインダ作るよ。できたら公開するぽ
- 871 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:51:39 ]
- あ、>>870は>>868に対して。
>>869 とりあえずSqPlusのソースを読み始めたところ。SqPlusと似たインターフェイスになりそう。 名前空間何にしよう。とりあえずsqbindでいいか。
- 872 名前:859 mailto:sage [2008/03/01(土) 12:34:57 ]
- >>867
ストリームみたいな感じで引数3つスタックに積んでる。 あくまで例なんで、数値に意味は無い。
- 873 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 13:13:31 ]
- >>872
ストリームみたいにしたいなら gcall<<"object"<<"setPosition"<<arg<<1.0<<3.0<<-2.0<<end; みたいにマニュピレータつかった方が見やすいと思うけど
- 874 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 14:17:15 ]
- もといマニピュレータです
- 875 名前:859 mailto:sage [2008/03/01(土) 14:20:12 ]
- ああ、元々ストリームを意識して作ったわけじゃないから
その辺は考えてなかった。
- 876 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 14:59:38 ]
- C++のストリーム演算子?はよく知らんだが、
a << 1.0 の戻り値はどんなオブジェクトになっとるの? a と同じオブジェクトを返しているのですかね。 ということは、メソッドチェーンみたいなのでも可能か・・・ a.push(1.0).push(12.3).push(0.4).call(3, 0) みたいな
- 877 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 15:59:30 ]
- バインダの名前sqppに決定。
SqPlusを読んで勉強中。 SquirrelObjectのコピーコンストラクタだけど、以前保持していたオブジェクトへのハンドル はsq_releaseしなくて平気なんだろうか。 operator=ではちゃんとsq_releaseしてるし、バグだよなぁ・・・やっぱり。
- 878 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 17:21:12 ]
- って何を血迷ってるんだコピーコンストラクタにreleaseいるわけ無いじゃんOTL
アホス つってきまつ
- 879 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 02:02:22 ]
- binderなんていらないね
なんでもいいけど一行でcallできるのと 一行でnative closure登録できるようにしとけば 他はほとんどつかわんよ
- 880 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 06:28:46 ]
- >>879
それを人はバインダと呼ぶ
- 881 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 11:54:53 ]
- Lua5.1.3のlstrlibのSJIS化してみたので置いときます
ttp://colon.nsf.jp/lua/ MSVC用なんで需要なさそうだけど^^
- 882 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 12:48:58 ]
- >>881
ソースコードのほうはいいけど、test.luaのほうの文字コードがぶっ壊れてるように見えるんですが。 str = "\\5爐!Eェ殉\\}柔檻5\"xさぜ\"ェ殉柔爐さ檻Exぜ!}" pat = "[^檻]*" testf( 1, str, pat, "xさぜ\"ェ殉柔爐さ" ) これってテスト用だからわざとだったりします? でも、SJISじゃないって警告が8箇所出てたりもします。
- 883 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 13:13:04 ]
- すいません。わざとです。
漢字コードの境界部分を多く含むようにしてあるので フォントによっては表示すらできません
- 884 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 14:01:30 ]
- SquirrelのGCは参照カウンタ型か・・・
GCの負荷を分散するわけだからどうしても重くなるよね。 やっぱLuaかな・・・
- 885 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 14:17:15 ]
- >>884
つ ベンチマーク って、ゲームとかの組み込みだろうから、単純計算しても参考にならんわな。 実際の簡単なゲームの比較ベンチマークでもあれば、いんだろうけどね。
- 886 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 14:35:37 ]
- なんでマイノリティの参照カウンタ型採用しちゃったんだろ?
当然参照カウンタ型のデメリットも把握してたはずだが・・・ 一般的なLua型にもデメリットはあるが今現在 決定的なアルゴリズムはないのだからとりあえず一般的な型(Lua型) にしときゃよかったのに。
- 887 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 15:14:03 ]
- んー。確か、Squirrelを作った理由に、LuaのGCの挙動にブチギレたってのも合ったはず。
どっかに記事なかったかな。
- 888 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 15:17:21 ]
- ゲーム用途に組み込む人は解放のタイミングが確実な参照カウンタのほうを好む気がする
- 889 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 15:28:28 ]
- マシンはどんどこリッチになるしな
特にPCは 専用機(コンソール)だと各世代の寿命と段差が大きいが
- 890 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 16:46:14 ]
- 大体Squirrelはマーク&スィープGC積んでるんだから、それでもあえて
リファレンスカウントを選んだのはちゃんと理由はある。 wiki.squirrel-lang.org/default.aspx/SquirrelWiki/LuaComparedToSquirrel.html 俺がSquirrelを使ってる理由はリファレンスカウントだから。理由は>>888。 巨大なリソースを組み込みスクリプト側で扱う設計にしてるなら、リファレンスカウント のありがたみが分かるはず。 折角GCつき言語採用してるのに、リソース開放のためにdispose()とかダサいよ。
- 891 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 16:55:03 ]
- luaにネイティブ整数型がないのはときどき困る。
- 892 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 20:00:03 ]
- チラシの裏。
Squirrelバインダ製作中。とりあえずC++からSquirrel呼び出しは、 SquirrelVM vm; int value = sq_cast<int>( vm.getRootTable()[ "foo" ] ); vm.getRootTable()[ "bar" ] = "BarString"; vm.getRootTable()[ "setPosition" ]( 1.0f, 2.0f ); vm.beginCall( vm.getRootTable[ "setPosition" ] ) .param( 1.0f ) .param( 1.0f ) .endCall(); みたいな感じに。 SquirrelからC++呼び出しが面倒くさい。Sqplusみたいにテンプレートを駆使した バインダにするか、それともネイティブクロージャを楽に登録できるようにするだけに するか、悩みどころ。
- 893 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 07:50:12 ]
- >>890
まあ「俺の好みだからほっとけ!」いわれればもうなにもいうことないけど リファレンスカウント型には毎度のカウンタ操作による負担が重いという弱点があり そこを嫌われてマイノリティなのは事実だから仕方ないよ。
- 894 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 08:58:58 ]
- >>893
マイノリティか?海外で大人気のPythonは参照カウント&GC式だぞ。Squirrelと同じ。 Pythonのスタックレス版はどっかのネトゲのサーバーに使われてたはず。 >毎度のカウンタ操作による負担が重いという弱点 これそのままメリットなんだよね。マーク&スイープGCは回収している間プログラムが とまるって事実は忘れちゃいけない。参照カウントはGCのコストをちょっとずつ払って いるから、止まることは無い。 一般的に嫌われてるってのはただ単に>>893の個人的な感想じゃないか? 両者のメリット・デメリットを把握して運用するのが重要だと思う。
- 895 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 09:44:53 ]
- >>894
PHPとかIoもやね。あとObjective-Cも。
- 896 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 11:17:30 ]
- ちょうどそんな話題がPythonスレに出てたよ
ttp://pc11.2ch.net/test/read.cgi/tech/1203611273/182
- 897 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 14:32:21 ]
- >>896
凄くみにくい言い争いに発展してるんだがwww
- 898 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 19:00:16 ]
- >>896
参照カウントにも利点があることが分かったよ。なんとなく。 あと、英語が読めないと開き直ることに、利点がないのも分かった。はっきりと。
- 899 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 20:15:59 ]
- チラシの裏。
Squirrelバインダ製作中。ただ、作ってるうちにSqPlusへの理解が深まったせいで、SqPlus 使えばいいんじゃね?みたいな雰囲気に。もうだめぽ とりあえず DefineClass< SampleClass >( "SampleClass", vm ) .constructor() .method( "testFunction", &SampleClass::testFunction ) .method( "testFunction2", &SampleClass::testFunction2 ); のようにバインドできるようにしたけど、これから作りこんでいくかどうか悩んでる。 メンバ関数ポインタの配列をsq_get/settypetagを使って設定してるけど、 使い方間違ってるぽ\(^o^)/オワタ
- 900 名前:デフォルトの名無しさん mailto:881 [2008/03/04(火) 00:46:02 ]
- 日本語変数名つかえるようにしたのと入れ替えました
さらに需要ないんだろうなあ
- 901 名前:881 mailto:sage [2008/03/04(火) 00:50:25 ]
- すいません。間違えてあげちゃいました。
メール欄に881ってw
- 902 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 07:56:42 ]
- >>894
うーん、この辺が入門としてはお勧めかな。 ttp://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-13308-7 割と大きい図書館ならおいてあるよ。 マーク&すいーぷの欠点はそのとおり。
- 903 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 08:42:52 ]
- Squirrelのバインダなんだが、C++からエクスポートするときのインターフェイスに悩んでる。
どっちがいいかな?とアンケート。 1. void foo( cpp_ptr<TestClass> arg ) {
- 904 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 08:45:23 ]
- xtal使いやすいよ。
- 905 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 08:55:51 ]
- うわ途中で送信しちまったい。
1. void foo( cpp_ptr<TestClass> arg ) { /*なにか処理*/ } 2. void foo( TestClass* arg ) { /*何か処理*/ } //ヘッダファイルのどこか SQPP_DECLARE_CLASS( TestClass ); 2はSqPlusと同じ方法。1は代替案って感じ。 基本型以外は全部C++のクラスと仮定してエクスポートしてもいいんだけど… (そうしたらSQPP_DECLARE_CLASSいらない)
- 906 名前:デフォルトの名無しさん [2008/03/04(火) 13:18:02 ]
- 参照カウント式が特段優れたものではないということは確か。
というか逃げられない(GCしないという選択肢がない)分、有害ですらありうるな。
- 907 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 13:31:54 ]
- 話が盛りあがっているところ申し訳無いのですが
GC一般の話題は専用スレがあります。 過疎スレですからそちらを使って頂けないでしょうか。 Garbage Collection (GC)について語るスレ pc11.2ch.net/test/read.cgi/tech/1141646850/
- 908 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 13:47:30 ]
- >>905
1
- 909 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 14:15:57 ]
- >>906
GC使わないようなコード書くなら、組み込み言語使う意味が大幅に薄れるような。 そんな涙ぐましい努力をするくらいなら最初からC/C++で書くよ。 俺も参照カウントが優れた方法だとは思わないが、こと組み込み向けならば メリットがあると個人的には思うよ。
- 910 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 01:08:52 ]
- LuaのインクリメンタルMark&Sweepの実装も
マジックナンバーばっかで何を根拠に調整してんのか よくわからんしなぁ。
|

|