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


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

プログラミング言語 Lua  その3



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

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の実装も
マジックナンバーばっかで何を根拠に調整してんのか
よくわからんしなぁ。






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

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

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