[表示 : 全て 最新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

807 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 16:30:29 ]
「最近編集された項目」なくて「最近の10件」だった

808 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 20:47:20 ]
ゲーム開発言語は「Lua」を採用
www.watch.impress.co.jp/game/docs/20080223/gdc_home.htm

809 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 22:57:40 ]
>>808
Luaハジマタ\('o`)/

810 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:06:41 ]
Luaはいろんなゲームに採用されてるんだから、今さらってかんじ

811 名前:797 mailto:sage [2008/02/23(土) 23:20:59 ]
最新の2.2stableに、ビッグエンディアンで出力できるよう、
やっつけのパッチ当てたけど、需要ある?


812 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:48:06 ]
あるある
というか本家にフィードバックしようぜ

813 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 03:09:28 ]
>>808
うぉ、日本メーカーでLua使用って公開したところはほとんど記憶にないから、
結構インパクトあるねぇ

そういや今GDCの季節かぁ

814 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 08:58:56 ]
Lua最高!

815 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:30:51 ]
>>811
改変したソースも公開してくれよ



816 名前:767 mailto:sage [2008/02/24(日) 14:51:34 ]
ttp://wikiwiki.jp/lua/?plugin=attach&pcmd=upload&page=Squirrel

WikiのSquirrelのページに添付させてもらいました。
SQ_BIGENDIANを定義しておくと、出力が強制的にBEになるです。

やっつけなので、これを基に、ちゃんとした対応をしてくれると嬉しいなあ。
ちなみに、出力したバイトコードが、ビッグエンディアンな環境で動作することは確認済み。

でも、SQ64と_UNICODEは知らん。
_UNICODEはこれからやるかも。




最後に、スレ住人&Wikiの管理人さんアリガトー(゚∀゚)

817 名前:797 mailto:sage [2008/02/24(日) 14:52:30 ]
>>816
自分のハンドル間違えた('A`)

818 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:24:11 ]
www.watch.impress.co.jp/game/docs/20080224/ffcc.htm
>Squirrelについては、「メモリの消費量は増してしまうが、それだけの価値がある」という白石氏。
>プログラムの7割はSquirrelを使用しているという。

ですって。

819 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:28:30 ]
うは、Squirrelきたか・・・
つかこのスレに書いてる人いそうだなw

820 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:22:53 ]
スクエニの人もこのスレ見てるんだろうなあ。書き込みもしてるかもね
スクエニが使っているという情報はでかい
Squirrelを採用する企業もこれからかなり増えるんじゃないか
いい感じ

821 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:17:18 ]
製品レベルのゲームコードの大半がメモリマネージド言語で書かれる時代が来たということか。
開発効率に対する姿勢が比較的アメリカ型なスクエニがこういう方法をとったことは不思議ではない。
C/C++(&内製の半端なスクリプト言語)一辺倒から離れられないプログラマや企業はいよいよ
ついていけなくなるかもね。

822 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:26:54 ]
歴史的なしがらみが無いなら移行は簡単だと思うけど。
基本的にスクリプト言語の方が習得難度が低いからね。
まぁその歴史的なしがらみが大きな障壁になるのかもしれないけどさ。
1言語しか扱えないニセグラマとか猿スクリプタとか。

823 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:40:34 ]
>>822
プロでそんな人はいなさそう
むしろ、メモリの動的確保が信じられないとか、そっちの方が使わない理由だろう

824 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:33:21 ]
SCEはLua(C)で、NintendoはSquirrel(C++)か。
オレはそれならSCE派だな。Nintendoは趣味じゃねー。

825 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:37:01 ]
C++の方が開発元に権限が集中しやすいので、それが狙いというのはあるかもね。
そこまで考えれたらいっぱしのマネージャークラス?



826 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 07:39:05 ]
んでまたちょっとするとカリカリにチューニングした爆速ゲームがもてはやされると。ループですな。

827 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 07:56:22 ]
DOS版DOOMみたいな、全てのコードがカリカリでないと爆速はむりぽ、
という時代じゃないし

828 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 14:24:07 ]
>>824
別に任天堂本体が使ってる訳じゃあんめえ
スクエニでしょ

829 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 15:59:46 ]
Squirrelと心中

830 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 19:35:14 ]
>>828
DSの開発言語の標準がC++らしいので、Nintendo自体もSquirrelに
まんざらではない可能性も。

831 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:29:10 ]
>>830
WiiはともかくDSにSquirrelはない。メモリ的に

832 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:36:22 ]
>>824
スクエニつーかリードプログラマの趣味じゃね?>Squirrel
カリカリチューンとかいってもLuaとかSquirrelで全部やろうとしたらそら重いけども。
単なるイベントハンドラとして使うだけならどっちでも大して変わらんでしょ。

LuaPlayerでゲーム作るノリでゲーム中の全オブジェクトの管理・更新をLuaとかSquirrelとかで書いちゃう人って結構多いの?

833 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:20:35 ]
大手企業はただ使うだけじゃなく
積極的に開発にフィードバックしてくれたら良いけどな
ただ日本企業にそこまで期待できるか実際のところ何ともいえないけど

834 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:23:49 ]
新・業界標準

835 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:35:58 ]
急に賑わってきたね
ちょっと前まで過疎スレだったのに



836 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:37:43 ]
まあCEDECあったしな

837 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:38:17 ]
GDCだったw

838 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 00:21:49 ]
Squirrel面白そうだな
うちでも採用検討しようかな

839 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 01:34:26 ]
つかSquirrel更新来てたのか
>>811さりげなさ過ぎて気付かなかったw

>>616のバグもめでたく正式に修正されたみたいね
-fixed a coroutine bug

840 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 21:37:58 ]
>>806 すいません、今修正しました。
あと、上のほうでSquirrelでJITみたいな話がありましたが、
ちょっと前にJITをつけたものを公開してます。
速度的にはあまり早くなりませんし、コードも汚いですがよろしければどうぞ。
ttp://muffin.cias.osakafu-u.ac.jp/~matumoto/cgi-bin/xt.cgi?prog/sqjit

841 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:14:17 ]
>>840
神乙
きっとスクエニの人もあなたの翻訳は見ているでしょう

842 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:31:53 ]
zenzen nai
koukai sitakerya koukai sitemo iiyo
oreha iranai kedo ne

843 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 15:54:40 ]
>>840
ちょwwww
SquirrelJITってwすげえw
速くならないのは残念ですね。いま時はVM実行でもプロセサが速いから吸収しちゃうのかね

844 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 21:40:38 ]
まじか

845 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 08:20:37 ]
>>824
>SCEはLua(C)で、NintendoはSquirrel(C++)か。

LuaがC++対応じゃないみたいに見えるからやめれ。
LuaのC++との相性はSquirrelと同程度だろう



846 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 12:08:01 ]
言語からC++側のクラスを扱う上では大差ないけど、逆が squirrel のが圧倒的に楽(変数への参照がそのままもてる)
から、相性が同程度ってのは疑問だなぁ。Lua ってそのあたりなんか最近変わった?


847 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 19:12:32 ]
>squirrel のが圧倒的に楽(変数への参照がそのままもてる)

ここんとこ、少し解説してくれまいか?

848 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 22:08:06 ]
>>373-378

849 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 23:28:01 ]
>>847
マニュアルの「C言語のAPIからSquirrelの値への強参照の維持」のところ以降を参照

以下使い方の例の一つ:複数のsquirrelのクロージャをC側で保持して任意に呼び分け

前準備
1. スクリプトをコンパイル
2. スタック上のクロージャを、sq_getstackobject でHSQOBJECT として参照保持
3. スタック上のはとりあえず必要ないので sq_pop で解放
4. 必要な分だけこれを繰り返す

使う場合

1. スタックに HSQOBJECT として参照してるクロージャを sq_pushobject で積む
2. sq_call でそのクロージャを呼びだす

LUA でおなじようなことをしようとすると、なにかしら名前をつけてグローバルのテーブルか
レジストリにいれとくとかして、それをいちいちスタック上で取り出すような処理が必要なはず。
squirrel だと、任意のオブジェクトに対する参照をC側でもてるので、
(強参照なので、参照されてる限り消えない)、使うときだけまたスタックに積む、という使い方ができる。
値を set するにはスタック介さないとダメだけど、get だけならAPIで直接ぬくこともできる。

制御の本体を C 側でおこなってる場合でも、この機構があるおかげで、Squirrel 側のオブジェクトの
とりまわしがすごい楽にできる。
sqplus を使うと、このあたり関連の処理が SquirrelObject としてラッピングしてあって、
値の代入から配列/辞書としての操作まで、全部 Cからのメソッド呼び出しで
簡単にできるようになってる。

850 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 00:09:18 ]
>>849
>LUA でおなじようなことをしようとすると、なにかしら名前をつけてグローバルのテーブルか
>レジストリにいれとくとかして、それをいちいちスタック上で取り出すような処理が必要なはず。
ここ以外はLuaと機能の差がないという解釈でOK?
Luaでもちょっとした(数行の)関数かけば解決しちゃうような。
もちろんその手間はかかるけど。

>強参照なので、参照されてる限り消えない
Luaでもレジストリに保存されている限り消えない。

>get だけならAPIで直接ぬくこともできる。
もうちょっと詳しく書いていただけると助かります。

>SquirrelObject としてラッピングしてあって
luabind::objectでも同様にしている。


851 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 00:22:14 ]
luaL_ref() とやってることはあんまり変わっていないような。

852 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 00:54:33 ]
>>851
なんだって! そんな便利なものがあったのかよ!


853 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 01:27:20 ]
>>850
まあラッピングすればねー。
SqurrelObject は例示としてはよくなかったね。

Cの名前空間との関連を管理するコードを自前で書かないと
いけないってのはちょっとうれしくないぁと。
それをしなくて良い分親和性が高いってのは納得いただけるかと。

>getだけなら
sq_objbool とかそのへん

あと、話はそれるけど、言語文法もかねw>C言語との親和性
begin/end がどうしても慣れなかった……

854 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 04:54:19 ]
SquirrelもLuaも使ってみておもったけど、もう少し簡単に組み込めるようにはならんのかな?
スタック操作とか、参照カウンタとか頭こんがらがってくる
C++じゃなかったからtemplate library 使ってないせいもあるんだろうけどさ。
みんなやっぱりその辺のbinding使ってるの?**Plusとかみたいなの

>>849
強参照ってそんなときに使うのか・・・

855 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 07:57:01 ]
Lua最高!



856 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 12:13:32 ]
↑うるせーよダボがすっこんでLua!

857 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 14:34:16 ]
>>856
うまいこといったつもりか!

858 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 15:42:34 ]
>>854
スタックはややこしいよね……。
テンプレートは使ったり使わなかったりかな。単純な関数呼び出しぐらい
なら、普通に書いたほうがわかりやすいので。

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/






[ 続きを読む ] / [ 携帯版 ]

前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