1 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 13:02:21 ] LuaやSquirrelなどアプリケーションへの組み込み用途で 使われるプログラミング言語についてのスレッドです まとめwiki(なにか質問する前に必ずみること!) wikiwiki.jp/lua/ その他の参考URLは>2から ■過去スレ その3 pc11.2ch.net/test/read.cgi/tech/1160799232/ (前スレ) その2 pc8.2ch.net/test/read.cgi/tech/1063711237/ その1 pc5.2ch.net/tech/kako/1034/10341/1034182349.html
266 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 15:50:15 ] おk自己解決した。 これ実際にコーディングする上では結構致命的だと思うんだが… フォーラムに載ってた。 squirrel-lang.org/forums/thread/2269.aspx 2行書き換えるだけで、ちゃんとコールスタック表示してくれる。
267 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 15:57:35 ] sq_notifyallexceptions に SQTrue 指定するだけででない?
268 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 16:30:21 ] >>267 お、ほんとだ出るね。サンクス。 でもこれ指定するとtry/catchでくるんでるのにエラーハンドラ呼ばれるんだよね? 状況によっては困る気もする。
269 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 19:22:28 ] デフォルトのエラーハンドラはトレース表示するだけで catch の先自体はちゃんと動いてた と思うから、あんま困ったことはなかったような記憶、だけどどうだっけか
270 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 20:02:35 ] >>269 例えばエラーハンドラが呼ばれたときはキャッチ失敗したということだから、深刻なエラーとして ログ出力して終了する、という運用スタイルの時困る気がする。 運用方法変えたら良いだけかもしれないけど… 本当は小細工しなくても、コールスタックちゃんと表示してくれるのが一番 なんだけどね。
271 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 10:05:48 ] SqPlusでヘンな挙動発見。 VM内で初期化してないアドレスを参照してたから、最初はSquirrelのがおかしいのかと思って 必死こいてソース読んでたけど、どうもトレースしているとSqPlusがおかしいみたいで。 SqPlusでバインディングした変数を参照するとgetInstanceVarFuncが起動するわけ だけど、これが内部でSquirrelVM::Init(v)を呼び出してる。 普段は渡されるVMは変化しないから問題ないんだけど、これがスレッド内で呼び出されると話が 変わる。 スレッドごとにフレンドVMで実行されるから、getInstanceVarFuncの引数として渡されるVMは、メインVM じゃなくてフレンドVMなわけで。 だからSquirrelVM::Init(v)でSquirrelVMがフレンドVMで初期化されてしまう。 その後SquirrelVM::RunScript()なり何なりVMを対象にするメソッドを呼び出すと、フレンドVMを対象に 行われるから、おかしなことになってしまう。 自分の場合、SquirrelVM::RunScript()の内部でthread.resume()を呼び出してたから、本来サスペンドされていた はずのフレンドVMをsq_call()で不正にたたき起こした挙句、さらにthread.resume()で起こそうとしたから、 問題が発生したみたい(クラッシュした)。 でも他の状況だと問題は発生しないかもしれない。よくわからん。 とりあえずworkaroundとして、getInstanceVarFuncを使わない(__getメタメソッドを使わない)ことにした。 レポート送ったほうがいいのかな。 でもこれ英語で書く自信ないよ…OTL
272 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 20:55:02 ] てきとうな英語と実証コードを送れば分かってくれるんじゃね?
273 名前:sage [2008/09/01(月) 23:43:31 ] Squirrelでスレッド使うときって、 自分でVM切替えしてるの?
274 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 07:20:43 ] >>272 公式フォーラムでいいのかな?暇ができたらレポートすることにする。 >>273 自分が何を指すのかわからないけど、フレンドVMを使っていることを普通意識する必要はないよ。
275 名前:デフォルトの名無しさん [2008/09/03(水) 15:08:48 ] SqPlusはいくつか変なところあるよ。 フォーラムに報告もたまにしてたけど、最近のリリースがけっこう前のものならとりこまれていないのかも。
276 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 01:33:04 ] スクエニの小さな王国はSqPlus使ってるってさ
277 名前:デフォルトの名無しさん [2008/09/10(水) 21:12:07 ] >>276 これ? Wiiウェアで始まった、スクエニの“小規模開発への挑戦”。「小さな王様と約束の国 FFCC」の開発事例 www.watch.impress.co.jp/game/docs/20080224/ffcc.htm
278 名前:デフォルトの名無しさん [2008/09/10(水) 22:51:52 ] Squirrelに関して質問させてください。 LuaからSquirrelに移行しようかと、いろいろ試しているのですが SquirrelにはLuaでいう require/module のような機能はないのでしょうか? 自前で用意すればできるのはわかるのですが、 Squirrelの作法として、 スクリプトファイルを機能ごとに複数に分けて管理したい場合は 通常どうするのが正しいのでしょうか? よろしくお願いします。
279 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 00:50:24 ] 特定のテーブルにロードすれば出来るのでは? squirrelってsqstd_dofileとかでファイル読み込む直前でルートテーブルをプッシュしてるけど、 それをルートテーブルではなく、任意のテーブルを指定する そうするとその任意のテーブルにデータが読み込まれる ただし、使うときはtable.func();みたいな使い方をしなければならなくなる…のかな? 他にもデリゲートテーブルを使う方法もあるけど、これはファイルごとと言うわけにはいかないかな というかLuaってrequire/moduleで機能ごとに分けて管理できるんだ… そっち知らなかった…
280 名前:デフォルトの名無しさん [2008/09/11(木) 21:52:26 ] >>279 返答ありがとうございます。 やはり、自前で用意する必要があるようですね。 とりあえず Lua と同じような形で ルートテーブルに登録する形で実装してみようかと思います。 ありがとうございました。
281 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 22:27:49 ] >>279 >SquirrelにはLuaでいう require/module のような機能はないのでしょうか? >スクリプトファイルを機能ごとに複数に分けて管理したい場合は 個別に管理、ということは requireを使えば、いらなくなったスクリプトファイルとかを個別に解放できたりするんですか?
282 名前:281 mailto:sage [2008/09/11(木) 22:29:06 ] >>279 じゃなくて>>278 でした
283 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 13:33:06 ] >>281 解放ですか… Lua の require/module は結局グローバルにテーブルとして追加しているだけなので _G.xxx.foo = nil みたいにしてしまえば解放もできそうな気はしますが…。 (require("xxx.foo"),module("xxx.foo")と仮定) やったことはないです。 私が言っていたのは単純にファイルの管理についてです。 Character.lua : キャラクタークラス定義 Stage1.lua : ステージ1 Stage2.lua : ステージ2 とした場合、 Stage1.lua, Stage2.lua それぞれの先頭で require("Character.lua"); とするような。 すべて1ファイルに記述するわけにはいきませんから。
284 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 15:05:58 ] そのぐらいなら、手動で適当に読み込めばいいんじゃないかと。 例としてはたとえば以下のような関数をつくっておいて、 function require(name, cond) { if (!cond in ::getroottable()) { dofile(name); } } Character.nut の冒頭 CHARACTER_DEFINE <- true; Stage1.nut や Stage2.nut の冒頭 require("Character.nut", "CHARACTER_DEFINE"); 判定に使うのはグローバルに定義するものなら なんでもいいですが、ルールきめておけばあとでみたときわかりやすいと思います。
285 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 12:10:26 ] 「スクリプト言語による効率的ゲーム開発 C/C++へのLua組込み実践」 ってのがでるらしい。 出版社のページみつかんなかったのであまぞん ttp://www.amazon.co.jp/dp/4797348550
286 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 12:44:58 ] あと二週間くらい? 発売日になったらとりあえず買ってこようと思う。
287 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 13:06:02 ] こういうのが何十冊も出ると買う気なくすが、Luaはまだまったりしていてよいです
288 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 13:17:53 ] 赤坂じゃなくてよかったw
289 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 15:54:56 ] これか・・・ Amazon.co.jp: スクリプト言語による効率的ゲーム開発 C/C++へのLua組込み実践: 浜中 誠: 本 www.amazon.co.jp/dp/4797348550 images-jp.amazon.com/images/P/4797348550.09.MZZZZZZZZZ.jpg
290 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 23:06:46 ] CEDECでスクエニがSquirrel使ってるの話してたねー。
291 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 03:33:58 ] >>290 kwsk どっかに資料とかあがってないの?
292 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 06:01:40 ] 今さら知ったのかよ
293 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 23:15:44 ] SquirrelとLuaってどっちがつおいの?
294 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 01:08:36 ] Luaの方がこなれてるだろう
295 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 01:38:03 ] 強さで言うとSquirrelのが強い。 悟空とべジータくらい違う。
296 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 01:48:54 ] Squirrelはバグだらけ。 自力で直せる環境にいないと使えない
297 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 02:09:42 ] LuaとCをいったりきたりすると演算子とか間違えるから Squirrelのほうがやわらかい
298 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 02:25:07 ] 速さと軽さならLua 基本的な演算とsuspendを行う処理を一億回ループさせたらLuaはSquirrelの1/3の時間ですんだ
299 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 02:26:59 ] てゆうかこのスレ張ってる奴けっこう多いんだな 散々過疎ってたのに燃料来たとたんこれかよ
300 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 09:58:58 ] Luaの方が愛されてる感はある
301 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 10:11:15 ] >>285 この辺がなんか不安、サンプルやらソースやら見れば解ることが山ほど載ってそう >〜人気スクリプト言語Lua(ルア)とC/C++のバインディング実例を詳細に解説。
302 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 10:30:39 ] サンプルやソース見てわかる人は買わなきゃいいだけだろw
303 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 10:46:06 ] サンプルの種類が増えるのは良い。延べ数ばかり増えるのは困る。
304 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 14:11:14 ] LuaとC/C++との連携では、Swigはあまり使わないものなんですか?
305 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 00:53:52 ] >>304 Lua本体に入ってない LuaがC/C++との連携を単なるオプション扱いすることはない ゆえに、Swigはあまり使わない
306 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 02:11:53 ] >>291 一応、CEDECのサイトで講演に使ったパワポがpdfでアップされてたんだけど、 これ会員以外に流すとなんかやばそうな・・・ まぁいろいろ言ってたよ。 コード全体の7割はSquirrelとかallocが多いのでメモリまわりの工夫をしたとか。 実際このゲームプレイしたけど、Wii環境であれだけ動いていれば、まぁ実践レベルには十分達しているといえるだろうね
307 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 02:15:41 ] つか、スクエニの開発スタッフ、このスレたまにはチェックしてると思う。 2chにここしかSquirrelのスレないんだもん。 クレっていったら資料くれそうな気もする
308 名前:304 mailto:sage [2008/09/21(日) 22:00:07 ] >>305 なるほど、サンクスです。「入門Luaプログラミング」を読んだんですが、 C++との連携方法がいまいち良く分からなかったので(SquirrelだとSqPlus?)、 >>285 の本を見て勉強することにしてみます。
309 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 22:29:12 ] 今週末か。レビューよろ
310 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 23:13:07 ] 既出の質問かも知れませんが…。 CからLua関数をコールするときは、関数名、引数をスタックに積んで行うと思います。 これを以下のようにコールするのって、副作用とか問題点って何かありますか? (実行速度とか) sprintf( strCmd, "return add( %f, %f )", a, b ); luaL_dostring( L, strCmd );
311 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 23:34:49 ] 速度なら試して比較すりゃいいんでないの?
312 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 14:16:38 ] ものすごくループする所で使うんじゃなければそんなに問題ないよ。 スタック積むのめんどくさい時はたまにやってしまう。
313 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 20:28:26 ] 310です。 速度低下と実数が桁落ちするデメリットはすぐに分かるのですが、 マニュアルにある"tail call"形式にする影響が少々心配でした。 アドバイスありがとうございました。
314 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 15:53:01 ] Luaってバインダの決定版っぽいのが無い感じだけど(Activeじゃないのが多い気がする)、 皆なに使ってる?自作してるのかな?
315 名前:デフォルトの名無しさん [2008/09/24(水) 22:18:38 ] Squirrel 2.2.2 stable - September 24, 2008 -fixed some behaviour inconsistencies in thread.call() and thread.wakeup() (thx Mr.Accident) -fixed coroutine error propagation -fixed lingering return value from native function (thx Tom Leonard) -fixed a bug if array.sort() is given a bad sort function (thx Tom Leonard) -fixed some minor api bug -added sq_arrayremove() and sq_arrayinsert()
316 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 08:49:30 ] >>314 漏れはバインダなんてイラン派
317 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 09:20:05 ] >>285 って誰か買った? どっかで見てから買いたかったんだけど売ってない。 よさげor誰も買ってないならamazonで買おうかと。誰か買ってたら感想よろ
318 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 10:06:28 ] >>317 >ご注文いただいた商品の配送予定日がまだ確定しておりません。 <中略> >継続して商品の調達に努めてまいりますが、調達不能な場合または入荷数の関係上キャンセルをさせていただくこともございます。 報告するようじゃないけど、初めてkonozamaメール貰った。\(^o^)/
319 名前:317 mailto:sage [2008/09/30(火) 15:07:52 ] konozama食らうくらいなら探すべ、と思ったらヨドにあったんで買った。 結構いろいろ書いてあるっぽいんで楽しみ。
320 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 15:48:15 ] おれもさっきこうてきた 大学の書店に普通においてあったよ
321 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 17:11:38 ] 参考Webサイトにこのスレがwww
322 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 17:23:42 ] 記念ぱぴこ オール・ハイル・ぅあ!
323 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 19:18:24 ] bccで使う方法がようわからんのだけど
324 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 23:25:37 ] bcc用のlib付属してないんだっけ。 bccについてるimplibでdllからlibファイル吐かせてリンクすればいけんじゃね? 何がわからんのだかわからんから適当言ってるが、的外れなこと言ってたらスマン
325 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 02:25:52 ] つーかBCBならともかくbccなんざ捨てろ
326 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 09:14:48 ] そしてIDEだけ残ると
327 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 16:14:35 ] vcのexpressあるからなあ。 無料で使えるってことで以前は定番だったけども。
328 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 09:11:38 ] 無職なのに、欲望に負けて>>285 の本を買ってしまった…orz。 C/C++とのバインディングは、パッと見でtolua++とかいうのを使っているみたい。
329 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 23:03:56 ] 今のうちにgoluaを登録商標にしとかないと
330 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 11:09:33 ] 自作のLuaラッパにApolloって名づけようとしたけど RubyのDelphiバインディングに使われていた
331 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 11:36:59 ] 「バインダ」てyaccと同じにおいがする 使うと勝ち組になれるような気がするぜ
332 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 14:04:24 ] amazonからやっと本が届いた tolua++便利だな まだ使っても無いけど
333 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 18:27:26 ] またLua入門売り切れてる www.amazon.co.jp/dp/4797342722
334 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:41:43 ] lua最高!
335 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 01:25:06 ] luaはAlgol系schemeのうまくいった例という感じがする
336 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 08:29:45 ] DSのLuaってどうよ?
337 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 11:28:58 ] >>285 の本のサンプルダウンロードサイトって落ちてるのかな? tolua++のソースとかSDLとかSConsとかダウンロードしたいやつが結構ある。 できればCD-ROM付きの方が良かったかも…。
338 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 14:05:06 ] 落ちてるっぽいな。 まあCD-ROMは邪魔だわ更新されないわで嫌いだから気長に待つが。
339 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 20:23:00 ] lua5_1_3_Win32_mbenc.zip にコンパイル済みの lua5.1.lib が入ってないと 81ページ付近で少し困るような気がする。 ついでに59ページ。counry
340 名前:337 mailto:sage [2008/10/06(月) 22:52:20 ] なんかサイトがダウンしてたみたいで、いろいろダウンロードできた。 4章まで読んだところでは、4.10のLuaの文法:クラスのところが、Lua入門の方で よく分からなかったとこなんで役に立ったかも。 5章から手動かしながら読んでくべ。
341 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 23:26:54 ] Lua最高!
342 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 02:24:17 ] Lua melhor!
343 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 09:13:45 ] ∩_ 〈〈〈 ヽ 〈⊃ } ∩___∩ | | | ノ ヽ ! ! / ● ● | / | ( _●_) ミ/ Lua!! 彡、 |∪| / / __ ヽノ / (___)
344 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 18:21:28 ] クマでもわかるLuaプログラミング 第5版
345 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 19:09:26 ] スクリプト言語 Kuma
346 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 19:20:07 ] Kumaで書かれた>>343 のスクリプトを実行すると「(_●_)Lua!!」と表示されます
347 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 20:00:24 ] ぅぁあああ!
348 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 20:52:59 ] インタプリタ書いてみた io.open(arg[1]):read("*a"):gsub(([[ ∩_ 〈〈〈 ヽ 〈⊃ } ∩___∩ | | | ノ ヽ ! ! / ● ● | / | ( _●_) ミ/ KUMA 彡、 |∪| / / __ ヽノ / (___)]]):gsub("[^%a]","%%%1"):gsub("KUMA","(.-)"), function(s)io.write("(_●_)",s,"\n")end)
349 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 08:47:37 ] ∩_ 〈〈〈 ヽ 〈⊃ } ∩___∩ | | | ノ ヽ ! ! / ● ● | / | ( _●_) ミ/ Lua!! 彡、 |∪| / / __ ヽノ / (___)
350 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 11:17:47 ] なんだクマスレか
351 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 14:08:31 ] ∩_ 〈〈〈 ヽ 〈⊃ } ∩___∩ | | | ノ ヽ ! ! / ● ● | / | ( _●_) ミ/ Lua!! 彡、 |∪| / / _ヽ ヽノ ノ/ (___)\/ Urso de lua 「和名: ゥアノワグマ」
352 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 15:11:20 ] さすがにうざいだろこれは…
353 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 15:53:21 ] 他に話題も無いしなあ
354 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 18:57:56 ] つ翻訳
355 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 19:16:01 ] ∩_ 〈〈〈 ヽ 〈⊃ } ∩___∩ | | | ノ ヽ ! ! / ● ● | / | ( _●_) ミ/ Lua!! 彡、 |∪| / / __ ヽノ / (___)
356 名前:デフォルトの名無しさん [2008/10/13(月) 20:58:57 ] Lua 5.2とか機能追加候補とか。 ttp://lua-users.org/wiki/LuaFiveTwo ttp://lua-users.org/wiki/FeatureProposals 個人的にはHash計算しない文字列(バッファ目的)とか 標準にほしいような。LuaSocketとかでそれなりのサイズの 通信行うと、ゴミがたまるので精神衛生上良くない。
357 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 21:50:07 ] そういう部分は後で少しずつCで書き直すわけにはいかないのかな CとLuaの比率をなめらかに変化させるのが理想的だと思う
358 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 23:07:14 ] ところでここはAngelScriptやGameMonkeyの話題はOKなの?
359 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 23:24:21 ] 組み込み系言語総合だからおk
360 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 00:36:47 ] やたら懐かしい名前が出てきたなw
361 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 01:44:37 ] AngelScript使っているひといないの? 結構良さそうなんだけど
362 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 01:53:26 ] (´\r-、 ┼ + /`/`) + ┼ (\. \! * // ,/) * + * (ヽ、 \ + * / /) + ⊂ニ ) * + ( ニ⊃ * + ⊂、 ( ∩___∩ ノ ⊃ + * (/(/ ヽ | ノ ヽ / 、)ヽ) ┼ + (/ (⌒ヽ. ∨ ● ●レ /⌒) 、)ヽ) * (/'\ \| ( _●_) ミ' /、)、)´ + + `ヽ彡、 |∪| ノ / Lua!! + 〉 ヽノ / * + ┼ / / + + / /\ \ * + + * / / ┼ ) ) + / / + ( \ * * + (_/ * \_丿 ┼
363 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 02:56:46 ] 流れぶった切るが ゲーム系で問題になるluaのreallocの問題って 1) OSのreallocは排他等高コスト 2) 拡張時のコピーが高くつく 3) メモリ断片化 のどれだろう。また、その代替案として以下は正しい? 1) 2) =>インタフェース変えずにカスタムlua_Alloc作成だけでOK? 3) =>stl::vector ->stl::dequeみたいに配列サイズ追加しても allocが呼ばれない配列管理に変更
364 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 03:07:13 ] >>361 あー、おれも興味あるんだ 文体C++風味で型の扱いが静的というところに魅かれる
365 名前:363 mailto:sage [2008/10/15(水) 03:08:37 ] ちょい修正 1) =>インタフェース変えずにカスタムlua_Alloc作成だけでOK? 2) 3) => 配列サイズ増加時にallocは呼ぶが、stl::deque のような再配置をなくした配列管理にし、また、追加される メモリブロックは固定長に出来るので固定長メモリアロケーター で済む。故にメモリ断片化が防げる。
366 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 05:05:38 ] >>363 ここで聞くほど問題が見当たらないなら 4) そもそも実は問題ない という結論にならないかね? malloc/free が OK で realloc がダメとかおかしいだろ、普通に考えて。