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
2 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 13:02:49 ] ■関連してるかもしれないスレ Io Language pc11.2ch.net/test/read.cgi/tech/1201100624/ 2 part forth pc11.2ch.net/test/read.cgi/tech/1073673931/ ●●●●TCL/TKなら俺に聞け 2●●●● pc11.2ch.net/test/read.cgi/tech/1177998764/ ECMAScript デス 3 pc11.2ch.net/test/read.cgi/tech/1190160481/ 各種ライブラリ紹介スレ2(ゲ制作) pc11.2ch.net/test/read.cgi/gamedev/1177886529/ 【Perl,PHP】LLバトルロワイヤル【Ruby,Python】 pc11.2ch.net/test/read.cgi/tech/1188997302/ 「コンパイラ・スクリプトエンジン」相談室12 pc11.2ch.net/test/read.cgi/tech/1188688416/ Garbage Collection (GC)について語るスレ pc11.2ch.net/test/read.cgi/tech/1141646850/
3 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 13:03:54 ] ■参考URL ■Lua ttp://www.lua.org/ (本家) ttp://lua-users.org/ (lua-users) ttp://luaforge.net/ (LuaForge) ttp://sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html(5.1マニュアル和訳) Lua言語の紹介 ttp://staff.aist.go.jp/yutaka.ueno/lua/docsjp.html 入門Luaプログラミング ttp://www.amazon.co.jp/dp/4797342722/ ■Squirrel ttp://www.squirrel-lang.org/ (本家) ttp://sourceforge.net/projects/squirrel/ ttp://sourceforge.net/projects/sqplus/ (SqPlus) ttp://sourceforge.net/projects/squirrelsh/ (Squirrel Shell) ttp://wikiwiki.jp/lua/?Squirrel_Lang%2Ftoc(wiki内2.1マニュアル和訳)
4 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 13:05:27 ] ■他、前スレに載ってた言語 The Pawn language(だれも使ってなさそうな、組み込み言語) ttp://www.compuphase.com/pawn/pawn.htm NullLogic Embedded Scripting Language ttp://sourceforge.net/projects/nesla/ Xtal(ゲーム向け。スタックを意識しなくていい?) ttp://d.hatena.ne.jp/xtalco/ ttp://code.google.com/p/xtal-language/ ttp://blog.livedoor.jp/dankogai/archives/50836939.html ※テンプレ以上※
5 名前:デフォルトの名無しさん [2008/03/11(火) 15:59:21 ] 組み込みと言えば、TCLだな
6 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 16:07:26 ] >>1 乙
7 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 16:40:28 ] function L(t,c) return t[1] and (c and "■" or " ") :rep(table.remove(t,1))..L(t,not c) or "\n" end io.write(L{0,1,2,1,4,1,2,4,1}) io.write(L{1,1,2,1,2,2,5,1,1}) io.write(L{2,1,2,1,2,1,3,2,2}) io.write(L{1,1,2,1,3,1,2,1,3,1}) io.write(L{0,1,2,1,3,3,1,5})
8 名前:デフォルトの名無しさん [2008/03/11(火) 17:10:27 ] >>5 なんでTCLなの? 組み込みのIDEとかでよく使われてるけど
9 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 18:47:39 ] >>1 乙
10 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:17:18 ] RubyもPythonも組込めるけどなあ。 Perlはさすがにやったことないが、できないこともないだろう。
11 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 22:39:02 ] RubyにしてもPythonにしても標準ライブラリや言語機能がでかすぎにみえる。 組込みに向いてるってのはコードサイズまたは外部への依存の少なさと 言語機能のバランスが取れてるって意味にではないのかと。
12 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 01:23:20 ] 没になったテンプレ案には書いてあったけど、 そういう比較的大きな言語の組みこみの話も 多少は許容することが前スレで同意されていたはず。 でも一応Luaスレの続きだからその辺は空気読んでねと。
13 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 01:25:10 ] Ruby Perlは$がきらいだ >>1 乙curry
14 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 06:04:56 ] このスレタイにくるまで長かったな
15 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 11:24:25 ] 前スレは実りの多いスレだった 二年前からのスレだから当然かwww
16 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 11:48:00 ] GCのまとめ LuaのGCはマーク&スィープ方式を組み込み言語向けに改良したインクリメンタル方式。 SquirrelのGCは参照カウント方式。 マーク&スィープ方式の欠点: GCの処理に時間がかかるとハングアップした感じになる。その欠点を克服すべく、 少しづつ分割してGCの処理を行う(インクリメンタル方式)、 マルチスレッドで平行してGCの処理を行う、などの進化型が現在の主流。 参照カウント方式の欠点: 参照カウンタの更新処理によるオーベーヘッドにより処理速度が低下する。 循環参照への対処が必要になる。 過去の方式である感は否めない。
17 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 12:41:27 ] むしろ,ここはSqとLのどちらを使うか自分で判断できる人のスレ GCの比較は余計なお世話というのが前スレの結論じゃなかったか?
18 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 12:50:09 ] squirrel [名](複 〜s, 1で((集合的))〜) 1 《動》リス:肉は食用になる. 2 [U]リス類の肉[毛皮]. 3 ((米俗))変なやつ. ━━[動](〜ed, 〜・ing;((英))〜
19 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 13:34:15 ] ____ / \ /\ キリッ . / (ー) (ー)\ / ⌒(__人__)⌒ \ <過去の方式である感は否めない。 | |r┬-| | \ `ー'´ / ノ \ /´ ヽ | l \ ヽ -一''''''"〜〜``'ー--、 -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒)) ____ /_ノ ヽ、_\ ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ だっておwwwwww /⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒) | / / / |r┬-| | (⌒)/ / / // | :::::::::::(⌒) | | | / ゝ :::::::::::/ | ノ | | | \ / ) / ヽ / `ー'´ ヽ / / | | l||l 从人 l||l l||l 从人 l||l バ ヽ -一''''''"〜〜``'ー--、 -一'''''''ー-、 ン ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒)) バ ン
20 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 14:28:03 ] >>18 欧米じゃリスを食うのか…
21 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 15:27:03 ] squirrelちゃん涙目wwwwwwwwwwwwwwww
22 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 19:35:26 ] なんでこんなところに子供が…と思ったら春休みか
23 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 07:50:55 ] 外国だとFreePascalでNintendo DSのソフト作ってる人多いな
24 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 12:59:11 ] Squirrelの正規表現なんですが local text = "ab abcd ab"; re <- regexp("a.*b"); local ret = re.search(text); print("begin, end = " + ret.begin + ", " + ret.end + "\n"); print("ret = " + text.slice(ret.begin,ret.end) + "\n"); > begin, end = 0, 5 > ret = ab ab こうなっちゃうのうちだけでしょうか?
25 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 16:05:19 ] 正規表現通りの結果でてる。Squirrelでなくてもそうなると思う
26 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 17:56:02 ] "a.*b" の * は欲張りだから本来 "ab abcd ab" にまでマッチするはずじゃない? Squirrel書いたことないので見当違いしてたらごめん
27 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 19:55:26 ] a.*?bだよな。
28 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 20:55:19 ] >>25 >>26 さんの言うように最後までマッチするはずなんですよ 秀丸と、Luaで試してみましたが最後までマッチします。 >>25 さんのところでも同じ結果がでますか? うちで何か失敗してるのかなぁ?
29 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 13:54:40 ] うちでもなるから最短マッチな実装なんだと思うよ。 不満なら直すか、他から持ってくるしかないんじゃなかろうか。
30 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:28:25 ] いやいや、最短なら ab で終了だろw
31 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:35:24 ] あ、そうか。間抜けな俺。 * は 0 個もありだよな ってことで、バグ認定でいいんでね?
32 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 22:11:46 ] .が任意の一文字で*がワイルドカードだとすると辻妻あうな
33 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 22:33:32 ] >>29-31 ありがとうございます どうもバグみたいですね 英語苦手だけど、なんとかレポート送っときます
34 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 17:43:40 ] >>33 レポート乙
35 名前:デフォルトの名無しさん [2008/03/31(月) 20:28:40 ] age
36 名前:デフォルトの名無しさん [2008/04/02(水) 00:55:25 ] なんか過疎ってるな。 swig + lua の組み合わせを最近多用している。 luaからswigで公開する型や関数のメタ情報を取得ってできる? 例えば関数の引数や戻り値の型名とか。 構造体のメンバ変数の一覧ならメタテーブル経由で取得できるけど。
37 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 18:28:21 ] >>36 luaは動的言語だから、戻り値や引数の型の分からんでしょう。 型は変数じゃなくて、値にくっついてる。
38 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 02:55:50 ] luaをネットワーク関係のライブラリ(httpを解釈できればいい) 辺りだけ組み込んで、最小構成にするとどれだけ小さくなりますか? 100kByte以下とかできる?(linuxのELFで)
39 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 10:05:33 ] それは質問する前に自分で試せるだろう。
40 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 17:48:01 ] 組み込みの状態でヴィジュアルデバッグができる言語ありませんか?
41 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 01:21:25 ] ヴィジュアルデバッグとか聞いたことなかったけど、そんな単語あるんだなw ICEとかじゃだめなの?言語に依存する内容じゃないように思うけど・・・
42 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 01:41:17 ] サイケデリック ヴァイオレンス & クライム オヴ ヴィジュアル デバッグ!
43 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 02:00:17 ] squirrel は SqDbg と SQDEV っての使うと eclipse からリモートデバッグできるらしいけど使ったことはない。
44 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 08:50:27 ] squirrelはちょっと・・・すみません。
45 名前:40 mailto:sage [2008/04/08(火) 20:26:03 ] >>41 ヴィジュアルデバッグは造語かもしれません。 GDBじゃないVisualStudioのような環境のことを指しています。 あと、「組み込み」は小型機器への組み込みではなく、 C++プログラムに対する組み込みの意味です。 いろいろ、すみません。 >>43 その組み合わせは非常に使えそうなので、ちょっと試してみます。 ありがとうございました。
46 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 23:53:24 ] GUIデバッガとか、ソースレベルデバッガ、って言うと思う。
47 名前:41 mailto:sage [2008/04/09(水) 01:12:39 ] >>45 ヴィジュアルデバッグでググったら多少引っかかったんで個人の造語ってわけじゃないと思うよ。 単純に俺が無知だっただけorz
48 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 22:34:43 ] sqplusでプロパティ(getterとsetterを普通の変数アクセスのようにみせるアレ) は作れますか?
49 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 02:03:48 ] Xtalで char script[] = " \ add: fun(a,b) \ { \ println(a+b); \ } \ sub: fun(a,b) \ { \ println(a-b); \ } \ "; AnyPtr compiled = compile(script); compiled(); こうやってコードをコンパイルする。 そのあと任意のタイミングで add(a,b)やsub(a,b)をCから呼ぶ方法がわかんない。
50 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 01:20:39 ] >>40 scite-debugを使えば、C/Luaプログラムを同じ環境でデバッグできるはず 使ったこと無いけど
51 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 23:22:53 ] xtal結構いいよな。 luaから乗り換えた。 つか作者はドキュメント整備してくれんかのぉ。
52 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 23:24:02 ] >>49 マニュアル嫁
53 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 09:57:04 ] Xtalいいな ネイティブスレッド対応か。
54 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 12:28:27 ] Xtalのページ見てみたけどよくわからん。 ゲーム重視だからパフォーマンス重視なんだろうけれども。 Xtalはお手軽に制御構文が書けてかつパフォーマンス重視ってところがいいのかな?
55 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 21:36:25 ] >>53 ちょまて Xtalってバーチャルマシンがスレッドセーフでできてんのか?
56 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 09:32:44 ] ゲームのスクリプトにlispってどう思います?
57 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 10:52:19 ] やってみたら?
58 名前:56 mailto:sage [2008/04/18(金) 11:05:19 ] そっすね
59 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 20:29:27 ] >>56 たしか、naughty dogがlispなんだよね
60 名前:デフォルトの名無しさん [2008/04/21(月) 03:11:15 ] 誘導されてきました。 現在C++とSquirrelでSTGを作っています。 Sqruirrelスクリプト側からC++の関数を呼ぶためには、 SQInteger func(HSQUIRRELVM v) という形のグローバル関数でなくてはいけないんですが、スクリプト側から特定のオブジェクトを操作したいと考えています。 しかし、上の形だと動的メソッドでもないし、引数にオブジェクトへのポインタが含まれていないため、どうやって呼び出そうか困っています。 HSQUIRRELVMはスタックになっているので、スクリプト側に操作したいオブジェクトのポインタをあらかじめ渡しておいて 必要なときにスタックにぶち込んで引数として利用しようと考え、 /*Squirrelスクリプト*/ function ExeScript(p) /*引数はポインタ*/ { SetVelocity(p, 0, 5, 0); /*引数は操作するオブジェクトのポインタ、x方向の速度、y方向の速度、z方向の速度*/ return 0; } /* HSQUIRRELVMのスタックには 1(top):roottable, 2:p, 3:0 4:5 5:0)となっているはず*/ というようなスクリプト側の関数を作り、ExeScriptをC++側から呼び出す時に 引数に呼び出し側のポインタをぶち込んであげようと思ったんですが上手くいきません。 ちなみにpはスクリプト側ではint型で扱っていて、ExeScriptが呼ばれたときにintにキャストし、 SetVelocityが呼び出されたときにポインタにキャストするようになっています。 何かいい方法はないでしょうか? もしくはセオリーなどを教えていただけませんか?
61 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 03:12:37 ] 申し訳ありません、上げてしまいました
62 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 03:13:14 ] プログラム板では質問は age 推奨
63 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 03:19:01 ] 個人のゲームなんですかねえ
64 名前:デフォルトの名無しさん [2008/04/21(月) 08:12:31 ] まずポインタをデバッガで追ってみりい。 スタック操作で単純にミスしてるだけな気がするよう。
65 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 11:04:50 ] >>60 オブジェクトをIDで管理すればポインタを持たなくても IDでやり取りできるんじゃない?
66 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 19:30:36 ] >>60 そのC++オブジェクトをSquirrelのオブジェクトとして登録してみるのは?
67 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 08:12:10 ] Squirrelあきらめます。ありがとう。
68 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 11:19:04 ] www まあ正直聞いててスクリプトでやるようなことじゃないと思ったわ
69 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:55:42 ] >>64 スタック操作確認して怪しいところ修正したら動きました。 本当にありがとうございました…。 >>65 次改造するときに試してみます。 >66 そんなこと出来るのでしょうか? Squirrelのクラスについてもう少し学んでみようと思います。 >68 たしかにそうかもしれません…。
70 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:57:50 ] >>60 こんなんはどう? SqPlusを使うけど。 /*c++*/ /* c++クラスをsquirrelにexport */ SqPlus::SQClassDefNoConstructor<SomeClass> def(_T("SomeClass")); /* メソッド定義 */ def.func(&SomeClass::SetVelocity, _T("SetVelocity")); SomeClass* object = new SomeClass(); /* Squirrelの関数呼び出し用オブジェクトの取得 */ SqPlus::SquirrelFunction exeScript = SqPlus::SquirrelFunction<int>("ExeScript"); /* 関数実行。型がsquirrel用に変換可能であれば、 内部で変換されSquirrelに渡される。 */ exeScript(object); --- /*squirrel*/ function ExeScript(object) { object.SetVelocity(0,5,0); return 0; }
71 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 19:09:00 ] >>69 ホストのポインタをvm内に格納するばあい userpointer型を使うとかsqclassのインスタンスにsq_setinstanceupするのが適当
72 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 02:39:32 ] luaの関数をCの値として保持しておくことはできるんでしょうか? luaスクリプトからコールバックを登録して、Cから適宜呼び出す、ということをしたいのですが。
73 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 08:27:31 ] >>72 LuaのC APIを使って、Lua VM内のグローバルにある関数を(値として)スタックに積むことはできる スタックに積まれた関数をLuaのC APIから実行することはできる でOK? この手の話題ってC側なのかLua側なのか、表現が難しいな。 上のSquirrelのやつもそうだが
74 名前:72 mailto:sage [2008/04/24(木) 16:15:42 ] >>73 ありがとうございます。Cの値として保持しておくことはできないんですよね。 それだと、Luaから渡された関数を適当なタイミングで呼びだすには、 関数を一旦スタックの深いところに置いておいて、必要な時にインデックスを使って呼び出す、という形になるのかな…。
75 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 17:42:07 ] >>74 LuaからCに関数名を渡せばあとでCのほうから探索できる。 関数を保持しとくのは無理かな、たぶん。
76 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:17:04 ] luaL_ref/unrefを使えっていう話?
77 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 22:39:23 ] >>76 それが一番質問者の期待しているものに近そう。 75に似た方法で呼び出す関数名を決め撃ちするのもあり。
78 名前:72 mailto:sage [2008/04/25(金) 01:33:55 ] >>75-77 ありがとうございます。マニュアル引き引き調べてみます。
79 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 09:10:05 ] コンパイル済みのsquirrelスクリプトを事前に変数かなんかに格納しておいて、後でvmに読み込む場合はどのようにすればいいのでしょうか? リファレンスなどを読んだ感じだとsq_readclosure()辺りを使うのかと思ったのですが資料をあまり見つけることができませんでした。
80 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 15:57:18 ] >資料 ソースを読めばいいじゃない。 そこらのライブラリとかスクリプトのような聞き方をされると違和感をおぼえてしまう。
81 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 08:25:13 ] でたーソース嫁攻撃
82 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 09:27:07 ] そりゃあ出るだろう ソース読むのが妥当な場面だもの
83 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 11:59:05 ] すべての質問は自分で調べろで片付く ある意味最狂
84 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 12:31:55 ] まぁ、極論馬鹿の脳内では今回の話もそこへ繋がるんだろうな、 というのは、容易に推察できることではある。 アホくさいけど。
85 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 13:30:40 ] 昔はハウトゥー本前提での自分で調べろって台詞だったが、 最近は面倒になりそうなのは全部自分で調べろって投げ捨てるよな
86 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 13:44:35 ] ソース嫁馬鹿に極論馬鹿にレッテル馬鹿の三つ巴ですかw
87 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 13:45:52 ] バカばっか
88 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 14:14:23 ] >>86 無理矢理三つ巴と思い込む暇があったら ソースでも読んでた方がいいと思うよ。
89 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 16:55:55 ] ソース読まない馬鹿は死ぬべきだな。
90 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:32:11 ] 春か…
91 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:39:41 ] ソースを読めば素晴らしい回答が在る、というのにお礼も言わずに、 アホなレス繰り返してる馬鹿のレベルが低いんだもの。 まぁ、読めないから回答者に喰いついてるんだろうね。 質問者は社会常識を身につけてから出直しておいで。 自分の立場を弁える常識は必要だよ?学生君。
92 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 18:16:20 ] ソース読んでどうにかなるレベルの奴がここで質問するわけがない
93 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 18:24:36 ] テンプレに追加案 【このスレは”質問スレ”ではありません】 ソースを読めば素晴らしい回答があります。 何時間掛かるかも分りませんが、まずはすべてのソースを読み理解する頃には質問の内容も解決している事でしょう。 また質問者は立場をわきまえ、回答者を崇めること。 このスレは雑談スレか
94 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 19:35:46 ] 79の言ってることがよくわからないんだけど、 あらかじめ変数に読み込んでおいてというのは、 ファイル開いてファイルサイズ分メモリを確保して、そこにreadするということか? それでそのバッファのポインタを渡して読み込ませたいってこと?
95 名前:79 mailto:sage [2008/05/01(木) 02:06:38 ] 忙しくてレスできませんでした。 >>80 とりあえずソース読んで分からなかったらまた尋ねるかもしれません。 >>94 94さんの言うとおりファイルサイズ分メモリを確保しておいて、そこにファイルを読み込ませ、そのメモリからオブジェクトにデータをロードさせようと 思っています(do_fileやload_fileなどを使うといちいちファイルにアクセスして負荷がかかるため)。 現在はchar*にスクリプトを読み込ませておいて、オブジェクト生成時にコンパイルしていたのですが、 コンパイルにかかる負荷がバカに出来ないと考え「コンパイル済」のスクリプトをメモリに保存しておいて運用したかったのでその方法を質問させていただきました。
96 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 03:37:06 ] コンパイルドバッファだったと思う。 ttp://wikiwiki.jp/lua/?Squirrel か もんしょの巣穴っていう個人さんのサイトに解説あった気がする。 違ったらヘッダをcompで検索すれば出てくると思う。 眠いからこれ以上は書けないZzzz
97 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 03:41:20 ] ああ勘違い、コンパイル済みスクリプトをバイナリで保存しておいて読み込みたいのね? 役に立てないZzzz
98 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 11:25:29 ] 本人が言ってるとおりsq_readclosureでいいんじゃないのか
99 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 12:14:36 ] 私はLuaの方の人だから見当違いかもしれないと前置き。 sq_readclosureでよさそうだけど解説があまりないから 断片的な情報とソースから推測するしかないって感じかな。 ソースはsqstdio.cppにあるsqstd_loadfileの実装が参考になりそう。 ところでsqstd_loadfileは関数を評価せずにスタックに 積むだけみたいだから、その参照を保持しておくだけで 用が足りたりしないのかな。
100 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 01:18:42 ] 流れぶった切るけどスマソ。 Lua側の関数に引き渡した0xFFFFFFFFってリテラルが、C側からlua_tonumberで取ってくると0で返却されるのは既知? さらに、0xFF00FFFF -> 0xFF010000なんて取れてきたりする。 どうもVC8だと起こるらしくて、gcc系だと引き渡したリテラルが正しく取れるんだけどなぁ。