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


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

【Lua】組み込み系言語総合【Squirrel】



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系だと引き渡したリテラルが正しく取れるんだけどなぁ。



101 名前:79 mailto:sage [2008/05/02(金) 02:27:06 ]
sqstd_dofileは内部でsqstd_loadfileを呼び出していたため、sqstd_loadfileの中を見てみました。
sqstd_loadfileの中には外部から読み込んだファイルがバイナリであるかテキストであるかを判定する文があり、
バイナリの場合はコンパイルせずにそのままsq_readclosureによってスタックに読み込んでいることが分かりました。
そこで、sqstd_loadfile冒頭のsqstd_fopen(fopenと同じ働き)を削除し、loadfileの引数のファイル名の変わりに(FILE*)型のポインタを
渡してやるようにし、また、(テキストファイルは扱わないため)テキストであった場合の分岐を削除してみました。
これは成功すると思ったのですが(おそらく)こちらのコーディングミスでメモリ関係のエラーが出てしまいました。
こちらを直して正常に動作するようならまた報告したいと思います。

>>99
スタックトップに積むようなので、sq_move(dest, src, -1)といったように設定してやればいいんですかね? 試してみます。
ただ今回の件でSquirrelのスタック周りの操作についてほぼ無知であることが分かったため、もう少し勉強してからトライすることになると思います。

102 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 14:13:56 ]
>>100
Luaは整数を小数として扱ってるからその辺りが関係あるのかなぁ。
あと、高速化のためか整数←→小数の変換には
単なるキャストを使っていたり、アセンブラ命令を直で使っていたりする。

103 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 17:37:50 ]
>>102
luaconf.hの中のlua_number2intの定義の所ね。
_MSC_VERでifdefしてる個所もある@5.1.3
LUA_ANSIをdefineして直ったらここが原因だろう。

104 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 20:16:36 ]
>>100
Direct3D使ってたら浮動小数点演算の精度が24bitになってる可能性あるんで
D3DCREATE_FPU_PRESERVE
を調べるといい。

ただ値の受け渡しだけはできるはずの気がするが。

105 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 16:16:35 ]
lua_xmoveが使える条件に、「同じグローバルステートの異なるスレッド」ってあるんですが
これってどういう事なんですか?
同じlua_Stateから派生したスレッド同士なら良いということですか?

106 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 17:37:37 ]
>>105
それを使ったことはないけども・・・
coroutine作ると新しいlua_Stateが作られるけど、それは元のlua_Stateとグローバル情報を共有してる。
だからxmoveが使えるのは、元のVMから作られたcoroutineを示すlua_State(および元のVM)間だけ、ということかと。

「スレッド」って言うとOSスレッドのように聞こえるから、混乱を招くので敢えて使いたくないんだよね・・・。

107 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 03:48:30 ]
>>101
FILE*つかってんなら load_file を忌避する理由がさっぱりわからんわけだが……。

バイトコード判定は残しておくほうがいいよ。作業中はテキストにしておいて、
リリース時に sq.exe つかって全部バイナリにしてしまえばおk

// データ保持用クラス。ポインタだけだと終端がわからんので必要
static class DataBuffer {
const u_char *data; u_int size; u_int pos;
public:
DataBuffer(const u_char *data, u_int size) : data(data), size(size), pos(0) {};
u_int getLeftSize() {return size - pos;}
void copy(void *buf, u_int size) {memcpy(buf, data+pos, size); pos += size;}
};
// sq_readclosure 用 SQREADFUNC
static SQInteger buffer_read(SQUserPointer file,SQUserPointer buf,SQInteger size) {
DataBuffer *data = (DataBuffer*)file;
u_int dsize = data->getLeftSize();
if (size > dsize) {size = dsize;}
if (size > 0) { data->copy(buf, size); return size; }
return -1;
}
// スクリプトのメモリからの読み込み
SQRESULT readscript(HSQUIRRELVM *v, const u_char *data, u_int size, SQBool printerror) {
unsigned short us = *(unsigned short *)data;
if (us == SQ_BYTECODE_STREAM_TAG) {
DataBuffer buf(data, size);
return sq_readclosure(v, buffer_read, &buf);
} else {
return sq_compilebuffer(v, (const SQChar*)data, size, "memory", printerror);
}
}

108 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 11:17:07 ]
どうにも理解しがたいので、質問させてください。
Lua 5.1.3 @ VS2005Proです。

#include <stdio.h>
#include <lua.hpp>
int main(int argc, char* argv[]){
 lua_State* Lbase = lua_open();
 lua_State* L[10];

 for(int count = 0; count < 10; count++){
  for(int i = 0; i < 10; i++){
   L[i] = lua_newthread(Lbase);

   // 何か実行
   if(luaL_dostring(L[i], "a = 0;")){
    printf("err : %s\n", lua_tostring(L[i], -1));
   }
  }
 }
 return 0;
}

これを実行すると、i = 1の時のlua_newthreadで落ちるんですが
これはどう対処すればいいんでしょうか・・・


109 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 12:06:07 ]
>>108
lua_newthreadはあくまでコルーチンを作る関数だから、
それで作られたlua_Stateはコルーチンの流儀でしか使えないんじゃないかな?
つまり、lua_resumeを使えと。

あとlua_newthreadはスタックにスレッド(コルーチン)オブジェクトを積むので、
使い終わったらpopするとか、グローバルに置くとか、なんとかしてやる必要がありそう。

思うに、Lua側からcoroutine使ったほうが余計なことを考えずに済むような気がするけど。

110 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 16:24:33 ]
>>109
ありがとうございます。
そもそもこんな使い方をするものじゃない、ということですかね。
どうやら根本的に考え方がおかしかったようですね・・・

>>105も私の書き込みです。遅れましたが、>>106さんありがとうございます。




111 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 17:29:29 ]
>>72
lua_tofunctionでググれば出てくるよ

112 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 22:54:29 ]
Python スレに行くべきかとも思ったのですが、一応 Lua の話題なので
こちらで質問させてもらいます。

The Implementation of Lua
(ttp://www.jucs.org/jucs_11_7/the_implementation_of_lua/jucs_11_7_1159_1176_defigueiredo.html)
の5章第3パラグラフの最初に
"Most procedural languages avoid this problem by restricting lexical
scoping (e.g., Python)"
と書いてあるのですが、Python のレキシカル・スコープはどのような点が
制限されているのでしょうか?ご教授いただければと思います。

113 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 12:01:15 ]
クロージャ関係のようだけど...

なんか今そのLuaのドキュメントのあるサイトが落ちてるみたいなので
覚えてたらまた見てみますね。

114 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 16:40:29 ]
5章の最初のところね。そこで言いたいことはわかるんだけど、Pythonに、そこで
言ってるような制限は無いように思うんだな。昔のバージョンではそういう制限が
あったのかもしれないけど。

実際、Figure 3. が意味しているコードはPythonで問題なく書ける。

def add(x):
  def tmp(y):
    return x + y
  return tmp

add2 = add(2)
print add2(5)

その Most procedural ... の前の 2 パラグラフが言いたいことはわかってるよね?

115 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 17:45:25 ]
wikiのsquirrelのAPIリファレンスが行数オーバーとか言われてるけど


116 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 01:46:31 ]
>>114

5章の最初のパラグラフは、add によって返される関数はその内側のスコープにない変数
(レキシカル変数?でいいんですよね)x を参照しているから、add の処理から抜けて
スタックから x の情報がなくなってもその情報も保持してないとまずくて、そのために
必要なのがクロージャですよ、って話ですよね。
僕も >>114 さんのいうように、Python にここでいうような問題点はないように思い、
質問させてもらいました。

今日も少し調べてみました。まず、以下の議論からもわかるのですが
ttp://groups.google.co.jp/group/comp.lang.python/browse_thread/thread/dc4a74fd67f99614/fd1ad89d9b36c633
Python はレキシカル変数は immutable である、という制限(仕様)があるようです。

ひょっとすると、たしかに Python には制限があるものの、Figure 3 で例示されているの
は飽くまでクロージャの必要性を示すためのコードで、Python の制限を示すためのものでは
ない、ということではないでしょうか?

117 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 09:51:37 ]
別のサンプルでmutableに見えたのでうっかりしていたのですが、

def init(x):
  def chg(y):
    x = y
  def get():
    return x
  return (chg, get)

chg, get = init(0)
print get()
chg(1)
print get()

実行すると

0
0

になりますね。そういうことでいいと思います。

118 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 11:26:01 ]
>>117

やはりそういう理解でいいんですかね。
お付き合いいただきありがとうございました。


119 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 02:34:29 ]
You can download Squirrel 2.2.1 stable here

120 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 06:39:16 ]
月とリス



121 名前:デフォルトの名無しさん [2008/05/19(月) 23:52:06 ]
>>108,109さん関連で
同様なことやって、lua_newthread関数を連続で呼び出したら。
60前後スレッドを作った時点でエラーが発生してしまった。
これの対策として、109さんのようにLUA_GLOBALSINDEXに突っ込むのも良いと思うけども
luaL_refでLUA_GLOBALSINDEXに突っ込んでも良いのではと一意見を言ってみます。

ちなみに、この関数でリファレンス化したものを消そうとする場合。
luaL_unref(L,LUA_GLOBALSINDEX,(luaL_refの返り値));
って感じで良いのでしょうか?
使っている人が居ましたらご教授お願いいたします。

122 名前:デフォルトの名無しさん [2008/05/20(火) 04:29:05 ]
北陸先端科学技術大学院大学情報科学研究科組込みシステムコース(博士前期課程、博士後期課程)
ttp://www.jaist.ac.jp/satellite/sate/tokyocampus.htm

東海大学専門職大学院組込み技術研究科組込み技術専攻(専門職学位課程)
ttp://www.u-tokai.ac.jp/kumikomi/

信州大学大学院工学研究科情報工学専攻組込み技術者育成コース(博士前期課程)
ttp://www.cs.shinshu-u.ac.jp/embedded/index.html

123 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 05:43:41 ]
>>122
組み込みの意味違うし

124 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 11:39:43 ]
version5.1.2でluac -lしても定数やらUpvalやらのリストが
出てこないんだけど、なんでかな?



125 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 16:39:11 ]
>>124
騙されたと思って -l 2つつけてみ・・・

バグっぽいけど。

126 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 18:21:46 ]
>>124

ホントだ。man見てもさっぱり理由が分からなかったから
結構まいんってたんだけど・・・。

とにかくありがとう。


127 名前:126 mailto:sage [2008/05/20(火) 18:23:42 ]
安価ミス失礼

>>125ありがとう


128 名前:デフォルトの名無しさん [2008/05/23(金) 13:37:46 ]
DLLなどなしで使えるポータブルな組み込み言語を探していてWSHに行きついたのですが、
WSHの組み込みってありなんでしょうか?

webページを検索してみてもサンプルみたいなものが全然ないのですが、
どこかにないかな・・・

129 名前:デフォルトの名無しさん [2008/05/23(金) 14:01:07 ]
あった・・・

Windows Script
https://www.microsoft.com/japan/msdn/scripting/default.aspx

130 名前:デフォルトの名無しさん [2008/05/24(土) 02:38:46 ]
Squirrel+SqPlus使い始めたんですが。

C++で記述されてるclass AをSqPlusでSquirrel側に公開
  ↓
Squirrel側でAをextendsしてclass Bを定義
  ↓
Class BのインスタンスをSquirrelで作成。

結果としてSquirrelでBのインスタンス、C++でAのインスタンスが出来上がっていて
C++でAのポインタを掴んでるとします。
この状態でC++から呼べるのは、まぁ当然Aのメンバ関数だけなんですが、
Bのメンバを呼ぶ方法って、なんかないでしょうか?




131 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:12:17 ]
>>130
SquirrelFunction<void>(SquirrelVM::GetRootTable().GetValue("instance_of_B"), "member_function_of_B")("argument1", "argument2");


132 名前:デフォルトの名無しさん [2008/05/24(土) 19:40:34 ]
>>131
これだと、RootTable上にinstance_of_Bという名前で生成されているという情報を
C++側がつかんでないと実行できないですよね?

現状の設計だと、
ClassAのコンストラクタでstaticなClassA*のListへ突っ込むという処理を入れとく。

あとでそのリストをぐるっと回してClassAの派生Classのメンバーを呼んでいく

という処理をしたいので、
C++側ではそのインスタンスの名前とか生成されたスコープとかは掴んでないんですよね……。

と、今思いついたんだけど。
GetRootTable().GetValue()が返すのはHSQOBJECTだから、
PostConstructが動いた時点でそいつを掴んどけばいいのか?



133 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:24:40 ]
class B の constructor() 内で A.constructor() を呼び出すのはどう?

134 名前:132 mailto:sage [2008/05/25(日) 00:39:57 ]
int construct_A(list<A * > *, HSQUIRRELVM v){
A *pA = new A(p);
int nRes = SqPlus::PostConstruct<A>(
v, pA,
SqPlus::ReleaseClassPtr<A>::release
);

StackHandler sa(v);
pA->SetHSQOBJECT( sa.GetObjectHandle(1) );
return nRes;
}
こんな感じのconstructorをStaticFuncでぶち込んでやれば
Squirrelで生成したHSQOBJECTをC++のClassAで保持することは可能っぽい。
で、constructorに渡してるlist<A*>経由でBのメンバーを呼ぶことも可能だった。

HSQOBJECTがGCタイミングとかで変化したりとかしなければこれでいけっかな?


135 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 18:06:06 ]
wikiのLuaチュートリアルのサイトでlua_dofileって関数あるけど、
これもうなくなったの?

136 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 19:55:44 ]
luaL_loadfile 名前が変わったとかなんとか。


137 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 20:10:18 ]
luaL_dofile


138 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 23:14:47 ]
DSのLuaはスレチだよね?

139 名前:デフォルトの名無しさん [2008/05/30(金) 11:10:06 ]
>>138
URLplz

140 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 18:20:10 ]
dslua.7mc.org/wiki.cgi?page=Menu

起動できなかったorz..



141 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 20:09:59 ]
そこのページにある
>NDS用のテキストエディタがあれば、NDSだけでプログラミングも可能です
とい文章に質問。NDS用のテキストエディタってどこにあるの?

142 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 20:13:51 ]
ttp://7mc.org/2006/09/tarseditor_1.html

143 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 03:52:48 ]
scriptsフォルダはルートに置けよ。念のため。

144 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 16:12:35 ]
Luaって組み込みに関する日本語の解説ページ少ないよね?
Squirrelの方がまだ多い気がする


145 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 18:08:36 ]
>>144
本家のテキストの和訳が出てないんだからまだこれからじゃないの?
Erlangだって和訳が出てから急激に増えたんだしさ。

146 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 17:27:33 ]
Luaでバイナリ出力ってどうするんですか?

luaL_loadfileでスクリプト読み込んで
lua_dumpで出力でいいんでしょうか?

lua_dumpの解説で関数をバイナリ出力すると書いてあるので、
ファイル丸ごと出力するのはまた別にあるのかと思ったのですが、見当たりませんでした


147 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 19:57:19 ]
>>146
luac.c調べればいいんじゃないかな

148 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:02:47 ]
Luaの内部の挙動理解するの難しい…
SquirrelはVM内のデータのひとつひとつの役割とか挙動とかもわりと簡単に追えたけど
Luaのステートはメンバ変数の意味もよくわからんし、ソースも追いにくい
どうしようこれ。突破口が見えん

149 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:30:15 ]
何となくわかってきたスレ汚しスマソ

150 名前:デフォルトの名無しさん [2008/06/13(金) 13:15:11 ]
C++側で定義したクラスをSquirrelで継承したクラスを作って
SqPlus::CreateConstructNativeClassInstanceでインスタンス作ったんだけど
戻り値のSquirrelObjectからどうやってそのメンバにアクセスすりゃいいんだろう?

SquirrelObject obj
obj = SqPlus::CreateConstructNativeClassInstance(SquirrelVM::GetVMPtr(), _T("hoge") )
ClassA * p = (ClassA *)(obj.GetInstanceUP());
とかでいけるのかと思ったら、そんなメンバねーよ、とVCに言われてしまった。




151 名前:150 mailto:sage [2008/06/13(金) 14:47:05 ]
すみません、私はキチガイでした。
なんでこれでビルド通ったんだ???


152 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 18:36:00 ]
自分で自分を放送禁止用語で貶めなくても。

153 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 21:19:14 ]
Luaってlua_loadfileで読み込んだ特定のファイルのデータだけ解放する方法ってありますか?
例えば自分で作成したテーブルにスクリプトを読み込ませて、それを削除する、とか。


154 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:03:55 ]
グローバルに追加した物を削除してGCかければいいとは思うけど…

方法としては、ロード前にグローバルテーブル入れ替えちゃう方法もいいかも。

155 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 21:43:38 ]
SquirrelのコンパイラがFILE*使ってるのを何とかしたいんだけど、
sqstd_fopen、sqstd_fread、sqstd_fwrite、sqstd_fseek、sqstd_fclose、
sqstd_feof、sqstd_ftell、sqstd_fflush
これ全部書き換えればなんとかなるかな?
誰か実証した人いない?




156 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 08:08:00 ]
>>155
うちは2.2.1でそれで一応動いてるよ。squirrelの全機能の検証まではしてないけど。

157 名前:デフォルトの名無しさん [2008/06/23(月) 01:17:20 ]
>>154
それをやる方法がAPIで見つからなかったんですが…
ひょっとしてlua_Stateのl_gtメンバを
直接書き替えるんですか?

158 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 07:49:48 ]
>>157
>ひょっとしてlua_Stateのl_gtメンバを
>直接書き替えるんですか?

さすがにそんなことを推奨しないよw
setfenv()使えばいいかと。
CでやるならluaB_setfenv()あたり参考に。

ただグローバルそのまま置き換えると元のグローバルにあったAPIとか全部使えなくなるわけだけど、
新しいグローバルのメタテーブルの__indexに元のグローバルでも入れとけば
なんとかなるんじゃないかなぁ。

159 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 23:40:50 ]
ttp://sankei.jp.msn.com/topics/affairs/8181/afr8181-t.htm
職務質問で勝手に手を突っ込んだポシェットの中の、ツールナイフの剥き身の刃を触ったら切れて公務執行妨害だとか
もう警察も秋葉原で事件さえ起これば何でも良いみたいだな

160 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 23:52:37 ]
test



161 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 15:24:10 ]
tolua++ってオワタんですか?
サイトにアクセスできないけど…

162 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 16:13:16 ]
まだ繋がる。

プロキシを使うと接続できるという報告例あり。

163 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 16:29:25 ]
よくわからんけどそれは串のキャッシュを見てるだけなんじゃ…。

164 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 03:29:45 ]
あーやっぱtolua++つながらない人いるんだ。
うちも基本繋がらないんだけど、串とか携帯とかhtmllintゲートウェイとか経由すれば大抵いけるんだよね。
調べた限りではその付近のIP一帯につながらない。どっかでルーティングが狂ってそう。


165 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 12:46:37 ]
LOVEっていうLua用?の 2D Game Engineみつけた
チュートリアルは知りたかったこと扱ってるし簡単そう!

166 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 12:49:28 ]
love.sourceforge.net/

167 名前:デフォルトの名無しさん [2008/06/30(月) 13:21:17 ]
そういや、後輩が持ってたけどLuaの本っていつの間にでたん?

168 名前:デフォルトの名無しさん [2008/06/30(月) 14:13:00 ]
ググレカス

169 名前:デフォルトの名無しさん [2008/07/05(土) 17:30:37 ]
ゲーム向け組み込みJavaScript(まだベータ版)
CRI Script - Trac
criscript.com/trac

・ゲームへの組み込みを念頭に作られた ECMAScript の処理系
・PC と Xbox360 で動作確認
・BSD ライセンスに近い独自ライセンス
・バイトコードにコンパイルして実行 (=実行時オーバーヘッドが少ない)
・マルチスレッドサポート; resume() という言語拡張も。
・C++ との相互利用が簡単
・PowerPC, ARM に向けた最適化
・Eclipse によるデバッガ
・コンポーネントをカスタマイズ可能で、メモリ使用量が小さい
・GC のタイミングをコントロールできる
・Vector とか Matrix とか

参考URL ※箇条書きは書きサイトより引用
ゲーム組み込み用の ECMAScript 処理系 CriScript - Game Scripting Memo
d.hatena.ne.jp/epics/20080506/p2

170 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 18:23:12 ]
なんで60MBもあるんだよ・・・



171 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 20:44:47 ]
boostのライブラリのせいかな? srcのほとんどがboostのヘッダだ。
リリースとデバッグのライブラリで合計400MBもある。

172 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 23:03:55 ]
bisonとか使うなつーの

173 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 00:34:15 ]
後発なんだったらせめてLuaあたりは軽くこえてもらわんと

174 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 01:05:39 ]
Cから使えるJavascriptといえば
spidermonkeyはどうなんだ
yieldも使えるし

175 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 16:52:05 ]
>>172
なんで? 使いたいの使えばいいじゃん。

176 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 17:06:10 ]
やりたいようにやればいいじゃん

177 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 22:34:18 ]
ライセンスは?

178 名前:デフォルトの名無しさん [2008/07/10(木) 13:03:11 ]
セデックでスクワラルのセッションがある

179 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 13:47:56 ]
>>177
ttp://www.gnu.org/licenses/gpl-faq.ja.html#TOCCanIUseGPLToolsForNF


180 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 16:50:30 ]
luaでゲーム作る人ってやっぱりそんないないのか



181 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 22:32:01 ]
小規模なゲームだと使うメリットがあんまりないし
使うほど大きな規模のゲームがそもそも作られない

・・・んじゃないかと思う
あと組み込み言語自体がいまいち一般的じゃないよね

182 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 00:30:14 ]
海外ゲーはMOD改造しやすいように組み込み言語やXMLなどを使っている。
一方、日本は海外のようなMOD文化が弱い。あっても、バイナリ解析によるデータ変更や画像差し替えが主。
日本のゲームは書き換えを許容する文化でないから、汎用言語を使って間口を広げる必然がないのかも。

183 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 00:50:19 ]
homeworldシリーズはluaだったよ

184 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 03:56:17 ]
luaやsquirrel使ってたとしても
あえて公表する理由がない

185 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 15:15:50 ]
>>184
luaはライセンス表記しないとダメだろ

186 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 19:17:01 ]
luaはMIT、Squirrelはzlib

187 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 20:53:24 ]
今気付いたんだが、MITライセンスに関するOSG-JP参考訳とWikipediaの内容が全然違うような?
ttp://sourceforge.jp/projects/opensource/wiki/licenses%2FMIT_license
ttp://ja.wikipedia.org/wiki/MIT_License

188 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 21:57:26 ]
>>181
DSluaおもしろそうだと思ったんだがな・・・

189 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 23:46:37 ]
組み込み系の言語はそもそもゲーム本体作るのに向いてないしな。
アクションゲームの敵の動きや敵の配置とかをスクリプトで記述するのには向いてるけど。

190 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 00:20:11 ]
>>182
XMLってまじっすか



191 名前:デフォルトの名無しさん [2008/07/12(土) 01:13:13 ]
>>190
Rise of Nationsとか思いっきりXMLだったな。
改造し放題。
AoE3も確かそうだった気がする

192 名前:デフォルトの名無しさん [2008/07/12(土) 01:15:06 ]
>>189
embeddedの言語はあくまでDSLだからねえ
Pythonとかのレベルになるとそうでもないんだろうけど

193 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 02:17:26 ]
Pythonはbattery includedだが電池を作るのに向いてるわけじゃないだろ。

194 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 02:37:33 ]
>>187
そう?
言っていることは同じで、Wikipediaは要約しているだけのように見えるけど。

ところで、このライセンスだと、ソースコードを配布しない場合も
ライセンス文を書く必要があるってことだよね?

商用ゲームだと、マニュアルの半ページくらいうはめになりそうだ…

195 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 05:08:02 ]
>>185, >>194
著作権表示および本許諾表示を記載しなければならない、というのはソースコード等の話です(消すな、ということ)。
マニュアル等への表示義務はないです(旧BSDライセンスには宣伝条項があった)。
あとサブライセンスが許可されているから、より権利を制限する方向へのライセンス
(例えばGPLや商用ライセンス)を上からかぶせて適用することには問題がない。

ライセンス表記が必要だと思われてるとはなあ
業界でなかなかオープンソースが使われないわけだ

196 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 05:32:37 ]
↑偉そうなこといって本当にすまんw
zlibと間違ってたみたい

197 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 16:14:21 ]
MITの場合でも、見ようと思えば見れる場所にライセンスファイルなりを置いておけばいいでしょ。
オンラインのCREDIT表記あたりが適切か。

198 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 23:11:24 ]
>>191
それはデータやら何やらの記述だな。

199 名前:デフォルトの名無しさん [2008/07/13(日) 02:48:50 ]
>>198
まさか、CDATAでスクリプトでも埋め込むのか?w

200 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 23:38:11 ]
XMLで書かれたスクリプトってのもどこぞにあった気がする・・・

あんま書きたくないが。



201 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 23:49:03 ]
>>200
XMLで書かれた同人ゲームを一つだけ知ってるが、
解析がえらい面倒だったな

202 名前:デフォルトの名無しさん [2008/07/14(月) 04:31:50 ]
>>200
BulletMLもXMLのDSLだな

203 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 11:28:11 ]
XMLで書いてると最後に統計取れたり
解析が楽だったりするのがメリットか。
ドキュメンテーションも楽だろう。

204 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 12:34:15 ]
S式じゃダメ?

205 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 12:40:29 ]
セックスピー

206 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 21:17:26 ]
Lua workshop2008もうすぐはじまるよ

@ワシントン州で

207 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 18:15:34 ]
xtal更新とまっちまってるなあ

208 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 00:54:26 ]
>>207
C++では行き詰まるという現実に気がついたのでは

209 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 01:00:17 ]
つまりスクリプトをつくるための軽量スクリプト言語を


アレ?

210 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 16:41:45 ]
わらかすなwwwwww



211 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 19:15:16 ]
Lispでいいじゃん

212 名前:デフォルトの名無しさん [2008/07/20(日) 19:41:13 ]
そういや、Ruby の Matz もOOPのスクリプト作るのにOOPはむりぽ
みたいなこと言ってたな

213 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 23:37:57 ]
>>212
なんで?やっぱり速度?

214 名前:デフォルトの名無しさん [2008/07/21(月) 01:53:26 ]
今時、さすがに速度じゃないと思うがw(開発速度?w)

Matz日記の過去ログにあったかもしれん。ちょっと行ってくる

215 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 02:06:29 ]
確か、まつもと氏が混乱するとかいう理由だったような・・・・と思ったら

オブジェクト指向言語でオブジェクト指向言語を実装するというのに、脳がついていけないんだけど。
それって、僕だけ? (笑) C++ で言語作ってる人がいるけど、よくやるなぁ、とか思う。
ベース言語のクラスとか継承とかと、実装言語のクラスや継承がごっちゃになて、訳わかんなくなっちゃう。
設計して、どういう風に作ろうかなと思った時点で、もう、わかんなくなって「もういい、やめた」って。
ttp://jp.rubyist.net/magazine/?0001-Hotlinks

216 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 05:44:25 ]
C++/CLIのことかー

217 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 16:17:08 ]
なんだ…人間の能力の限界の話なのかよ

218 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 16:53:35 ]
PHPもC++でエンジン書いてたが、やばいと気がつき後にむりやりCで
書き直したと聞いたことがある。具体的に何がやばかったのかは知らない。

219 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 17:24:10 ]
俺には全く理解できん
CでいいならそのままC++でもいいじゃんと思うんだが…

220 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 17:36:48 ]
そもそもCよりC++の方が型がこなれているんだから
OO捨ててもCより享受できるものが多いはず。

まあ、でもポータビリティ犠牲にするほどのものでもないかなあ。



221 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 18:47:24 ]
>>219
C++ は、効率重視で、バイナリ互換とるのが極端に難しい実装ばっかりなので、
独立アプリならいいんだけど、ライブラリとして広く長期的に共有されるような
ものの記述には残念ながらあまりむいてない。

Windows はこれを COM という形で一応解決したんだけど、UNIX 系OSではその手のものが
統一的につくられることは結局なかったからね。php のような、他と組み合わせた
運用が求められるものだとこの点はわりと致命的なので、Cでかかざるをえ
なくなったんじゃないかな。

一応 Objective-C という選択はあるけど、こっちは実装が限られてるからねぇ


222 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 19:14:47 ]
勉強になりました

223 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 21:55:19 ]
ABIの問題ってことかな。
C++のライブラリをextern "C"してDLLやsoにしたものを、
Cとかで呼ぶとなんかまずそうなのは想像できるな。
グローバルなコンストラクタとかあったらそれはいつ呼ばれるんだろうって。


224 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 23:31:59 ]
継承かガベージコレクトじゃね?

225 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 00:54:53 ]
>>223
もう一度良く考えてみろ。どうにもならないことはない。単にリンカがどうするかというだけのことだ。
しかし、万人が納得する解法は無いという事も、ここからわかる。

226 名前:デフォルトの名無しさん [2008/07/24(木) 20:18:47 ]
Squirrel3.0alpha1リリースあげ

227 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 08:35:19 ]
イラネ

228 名前:デフォルトの名無しさん [2008/08/02(土) 19:26:37 ]
hoshu

229 名前:デフォルトの名無しさん [2008/08/03(日) 06:02:10 ]
squirrelでsq_compile()を行うとプロシージャが一つ返ってきますが、
このプロシージャは何を表しているのでしょうか?
たえば、コンパイル元のファイルが、

function foo()
{
print("foo");
}

function bar()
{
print("bar");
}

の場合、sq_compile()が返すプロシージャはこの2つの内の一つなんでしょうか?


230 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 09:02:27 ]
squirrel 的には用語は「クロージャ」ってのはさておき、
戻ってくるのは、元のソースを頭から終わりまで実行するクロージャになります。

その例でいくなら、「foo() と bar() をグローバル空間に登録するクロージャ」ということになります。

sq_compile → sq_call してはじめてスクリプトで記述したことが意味を持ちます。
sq_compile したものを sq_writeclosure すると、コンパイルされてバイナリ状態に
なったスクリプトを保存できます。これを sq_readclosure → sq_call するようにすると、
実行時にコンパイルしなくてすみます。

ちなみに sqstdio にふくまれる sqstd_loadfile, sqstd_dofile は、テキスト/バイナリいずれのスクリプトも
同様に扱ってくれるので便利です(ファイルのヘッダをみて、sq_readclosure / sq_compile を切り換えてくれる




231 名前:229 [2008/08/03(日) 13:22:55 ]
>>230
解説ありがとうございました。おかげで理解できたような気がします。
説明をふまえて、マニュアルにあらためて目を通すと、

function ciao(a, b, c)
{
}



this.ciao <- function(a, b, c)
{
}

と等価であるという説明から、「sq_call()が返すのはグローバル空間に登録するクロージャ」ということがより直感的に理解できました。

#コンパイル済みのバイナリについても悩みどころだったので説明感謝です。


232 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 01:40:07 ]
LuaとかSquirrel使ってる人って、存在しない関数・変数の検出や、
引数の数チェックってどうしてます?

実行時にはエラーになりますが、さすがに関数の引数の数間違いで
実行が止まるのは面倒ですし、
エラーが起きるコードが普段はなかなか実行されないところに
あるものだったりするとかなり面倒ですよね。。。

233 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 02:22:21 ]
それは環境によるのでは?
ユーザーにいじらせるようなものでなければ落とした方が間違いに気付きやすくていいと思うけど


234 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 05:15:11 ]
誰か静的型付けの組み込み言語作ってよ

235 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 12:04:09 ]
>>232
型チェックさえしていれば引数の数チェックは必要ない。

Luaは引数の数が違っても変数が未定義でも実行は止まらない。
存在しない変数の値はnilとして続行。
実行が止まるのは、nil以外の型が必要なところにnilが来るのが原因。

236 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 23:42:07 ]
>>233
そうですね、僕は自分しかいじらないので、エラーの時は落とすようにしてます。
ただそうしてると、Cなどであればコンパイル時にわかる型のミスなどが、
Luaだと実行してしばらくしてからでないとわからないので面倒で…

>>235
nilが入ってたまたま動作し、エラーが発見できなかった場合に
デバッグするのが大変ではありませんか?
公開する時には実行が止まらない挙動でないとまずいですが、
作っているときは「想定外の挙動」を検出するために、
型チェックと引数の数チェックは必須だと思っています。

>>234
そ・れ・だ!

237 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 02:19:38 ]
>型チェックと引数の数チェックは必須だと思っています

個人的には厳格な静的チェックが欲しいならCで書けばいいし、
気楽にかけて初心者に教えやすく関数がファーストクラスだったりするのが
スクリプトのメリットだと思ってる

でもまー、スクリプトの用途によって違うかもね

238 名前:デフォルトの名無しさん [2008/08/06(水) 02:27:31 ]
なにげにsquirrelだとC++から関数通すたびに数回は引数の数チェックに
ひっかかるけど実はデバッグのための膨大な時間の浪費を回避できてたのかな

239 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 07:07:49 ]
関数型の組み込み言語あれば面白いかも

240 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 08:30:08 ]
lisp系ならそこそこないか



241 名前:デフォルトの名無しさん [2008/08/07(木) 09:57:22 ]
ゲーム作ってるんですがNPC等のと会話中の選択肢などをスクリプトで書きたいと思ってます。
今のところc++で使いやすそうなのでSqPlusが候補なんですが、
どんな感じにやるものなのかってのいうが全然想像できないです。
例えば下のような感じでc++と行ったり来たりってのはできるんでしょうか?

//////////////////////////////////////////////////////
game::SetMsg("買い物する?");

if(game::ShowWndYesNo())//ゲーム側で選択画面を出し、何らかの方法で入力を待ち結果を取得…
{
 if(game::GetMoney() == 0)
{
game::SetMsg("お客さん金持ってないね!")
}
 else
{
game::SetMsg("何にする?")
game::ShopOpen();//買い物画面出して買い物が終わるのを待つ…
}
}
game::SetMsg("またきてね!");
///////////////////////////////////////////////////////


242 名前:241 mailto:sage [2008/08/07(木) 10:06:29 ]
なんでもないです。無かったことにしてください^^

243 名前:241 [2008/08/07(木) 11:20:04 ]
うーんやっぱ全然分かりません。

>>241みたいな例でいうと、
c++側でgameクラスのインスタンスを生成して、
そのポインタをsqplusに渡して、
sqplus側でSetMsg()だのGetMoney()だのの関数を使う

っていう、そういうことはできないんでしょうか?
なんか根本的に用途間違ってますか?

244 名前:241 mailto:sage [2008/08/07(木) 11:28:49 ]
>sqplus側でSetMsg()だのGetMoney()だのの関数を使う

sqplus側で受け取ったポインタを通して
そのインスタンスのSetMsg()だのGetMoney()等のメンバ関数を使ったり
メンバ変数の操作をしたり、ということをしたい、、、
ということです。

245 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 12:06:33 ]
もう少しマニュアルとサンプルとか見直して出直してきたほうがいいぞー

概念的にはもちろんそういうことができるが、C++ のインスタンスの情報は
squirrel 側は当然知らないので、ポインタを渡しただけでは何もできない。
呼び出し用のラッパーを squirrel の流儀で構築する必要がある。

具体的には、C++ のインスタンスは、ユーザデータ型をつかって保持し、
メソッド呼び出しは、そのインスタンスを使ってメンバ呼び出しをする
Cのラッパー関数を、ネイティブクロージャとして、そのユーザデータ型の
オブジェクトの委譲テーブルに登録することで実現する。

sqplus はこれの記述を簡易化するためのテンプレートライブラリ。
メンバメソッドの引数から自動的にラッパーを組み上げて登録してくれる。

基本的には、登録したクラスを、squirrel 側からインスタンス化して使うのが想定されてて、
C++ 側で生成したインスタンスをはめこむのは原理的にはできるはずだけど、sqplusが
それをサポートしてたかどうかは知らない。

246 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 12:30:15 ]
つまり、C++をはじめとする静的型付言語の問題は型システムの相互運用性でありそれが組み込み言語でユーザデータを扱う際に表面化する、というわけだな。

247 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 13:29:25 ]
>>245
SqPlus の testSqPlus2unit/test_PassByReference.cpp
にその例があるよ

248 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 22:22:37 ]
Squirrelで使えるクラスを作りたいだけならこんな感じだったような

class CGame {
  int GetMoney() { return 100; }
  void ShowWndYesNo() { printf("yes no\n"); }
  void SetMsg(const SQChar* msg) { printf(msg); }
};
DECLARE_INSTANCE_TYPE_NAME(CGame, Game)

void reg_my_class() {
  SQClassDef<CGame> game_class_def(_T("Game)"));
  game_class_def.func(&CGame::GetMoney, _T("GetMoney"));
  game_class_def.func(&CGame::ShowWndYesNo, _T("ShowWndYesNo"));
  game_class_def.func(&CGame::SetMsg, _T("SetMsg"));
}

249 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 01:38:24 ]
>>232
動的言語はその辺は実行しろでFAだったと思いますよ。
動的言語を使用するなら、せめて全経路を走査する単体テストくらいは書けということなのでしょう。

>>245
>基本的には、登録したクラスを、squirrel 側からインスタンス化して使うのが想定されてて、
>C++ 側で生成したインスタンスをはめこむのは原理的にはできるはずだけど、sqplusが
>それをサポートしてたかどうかは知らない。

Squirrelを直に叩いていいならば、
・sq_createinstanceでコンストラクト前のオブジェクトを得る。
・sq_setinstanceupでオブジェクトのポインタをセット
・sq_setreleasehookで後始末関数を設定

で実現できると思いますが、SqPlusには相当する機能は無いんでしょうか。
この機能、無いとFactoryMethodがあるとき困るので、無い事は無いと思うんですが…

250 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 02:42:19 ]
>>215



251 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 03:56:36 ]
どうしても自分のコードで new したポインタを使いたいのかな
これじゃダメなのん?

CreateConstructNativeClassInstance(SquirrelVM::GetVMPtr(), "Game");
SquirrelObject obj = Get(TypeWrapper<SquirrelObject>(), SquirrelVM::GetVMPtr(), -1);
SquirrelVM::Pop(1);
CGame* game = (CGame*)obj.GetInstanceUP(ClassType<CGame>::type());
printf("money = %d\n", game->GetMoney());
obj.Reset();

252 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 18:06:52 ]
お前らちょっと聞いてくれよ Squirrelなんだけどさ、


class Foo
{
val = [];
}

ってプロパティを空配列で初期化したんだけどさ、これ、インスタンス毎に
空配列を作成するんじゃなくて、インスタンス間で同じ空配列を参照するんだね。

わかんなくて3時間くらいはまったよ。なんだよもうOTL


253 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 18:41:53 ]
うむ。みんなが通る道だ。クラス中で定義した値は、インスタンス生成時に
毎回実行されるわけじゃなくて、単にコピーされるんでそういう挙動になるようだ。
ってことで、配列と辞書はコンストラクタで初期化するのが基本。

ちなみに全部同じ空配列を参照するから、クラス変数的に使えたりする。

254 名前:デフォルトの名無しさん [2008/08/17(日) 10:46:09 ]
Luaのgeneric for文って、引数の個数を柔軟に扱うというLuaの特徴を生かしているのだね。

255 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 15:43:02 ]
くわしく

256 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 17:40:24 ]
>A for statement like
>
> for var_1, ・・・, var_n in explist do block end
>
>is equivalent to the code:
>
> do
> local f, s, var = explist
> while true do
> local var_1, ・・・, var_n = f(s, var)
> var = var_1
> if var == nil then break end
> block
> end
> end

io.lines 等を使うときは s や var は考えないわけだが、
f() の代わりに f(s, var) としても間違いじゃないから上のコードで統一できる。

257 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 20:18:21 ]
>>256
なんかやたら抽象的なコードが出てきたと思ったら、
リファレンスマニュアルから引用してるのか。
sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html#2.4.5

258 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:02:49 ]
Programming in Luaにも同じコードがある。日本語訳は無いみたい。
www.lua.org/pil/7.2.html

259 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 23:59:39 ]
何かよく分からないけどCからLuaに何かさせたい人とか向けな超入門用のテンプレ作ってるの見つけた
・Cからluaにグローバル変数を登録する の項だけ絶賛放置プレイされてるけどまあこのスレ見てるなら過去ログに書いてあるし
ttp://www2s.biglobe.ne.jp/~nunokawa/wiki.cgi?page=Lua

260 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 22:49:59 ]
Lua 5.1.4
いつも通り、バグ修正のみ



261 名前:デフォルトの名無しさん [2008/08/25(月) 00:18:07 ]
Luaの質問です
Luaの関数の戻り値をC言語で受け取りたいのですが,どうもうまくいきません.

ameblo.jp/coffeex/theme-10002528966.html

このサイトの Luaのり付け講座2 - C++からLuaの関数を呼ぶ という部分のコードを丸写しして
実行したのですが,実行結果が

可算結果: 5 (5.000000)
減算結果: 1 (1.000000)

ではなく

可算結果: 1 (1.000000)
減算結果: 5 (5.000000)

とひっくり返ってしまってます.もしかして環境によって戻り値の返し方は違うのでしょうか?

262 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 03:08:58 ]
ここの1つめと2つめは逆のような気がするな。
-2のほうが下にあるんだから1個めでは。

double result1 = lua_tonumber(L, -1); //1つめの戻り値(注意:Luaの数値はdouble型!)
double result2 = lua_tonumber(L, -2); //2つめの戻り値

その前に「可算」が気になる・・・

263 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 14:26:16 ]
Squirrelの話なんだけど、スレッド内でエラーが発生すると有用なメッセージ出力しないのは
仕様?

例えば、

local coro = ::newthread(
function()
{

264 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 14:28:53 ]
ゴメン途中送信した、まとめてから書くよOTL


265 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 14:36:09 ]
再送。

Squirrelの話なんだけどさ、スレッド内でエラーが発生すると有用なメッセージ出力しないのは
仕様?

例えば、

local coro = ::newthread(
function()
{
noindex = "";
}
);

coro.call();

ってコードを書くと、[the index doesn't exist]とだけメッセージが出力されて、スタック
トレースもcoro.call()の部分までしか表示してくれない。
実際のコードだと、noindex = "";の部分が原因だって特定するのが時間かかる。
ただのtypoの特定に時間かかってしまうと、コーディングのテンポが悪くて非常に困る。

Luaはそのあたりどうなのかな。コルーチンの内部にまで踏み込んでスタックトレース
表示してくれる?


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 がダメとかおかしいだろ、普通に考えて。

367 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 18:05:36 ]
AngelScriptはC++みたいで個人的に大好きなんだが漠然と遅い気がする。
まぁちょろいテストアプリを作っただけなんで作り込んだらいい線いくかもしれないが。

368 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 18:48:39 ]
何だかんだで速度が気になってLuaに戻って来ちゃうんだよなあ。
PythonとかRubyとかちょっと組み込んでみたいんだけども。

369 名前:363 mailto:sage [2008/10/15(水) 20:32:14 ]
反応薄いな。366の言うとおり実は問題にしてる人少ない?

本当にリサイズが発生するのって配列サイズの増加と
テーブルのハッシュ再計算時と文字列結合ぐらい?
lua自身の配列サイズの増加も倍々方式だし、realloc自体も
同様の最適化されてるので、コピーはそんなに発生しない。

ある程度の大きさのランダムアクセス配列が必要なら、
配列サイズの事前割り当ても可能だし、配列自体の
使いまわしも出来る。

ガベコレはだめだ、参照カウンタがいいってんなら理解できるが。

370 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 21:22:06 ]
そもそもシビアなゲームとかならalloc呼び出す、みたいな設計はしない。



371 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 02:28:44 ]
AngelScriptはホスト側のインターフェイスは好みなんだけどなあ・・

372 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 02:34:17 ]
AngelScriptにはJITみたいなのないの?

373 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 20:54:50 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


374 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 10:50:51 ]

どなたか教えてください。


struct X {
int x;
};


void B(struct X *x) {
printf("%d\n", x->x);
}

void A() {
struct X x;
B(&x);
}

こんな感じで関数Aから関数Bを呼ぶコードがあるとして、
関数BをLuaに書き換えたいのだが、
どうやったらC言語側でメモリ管理している構造体データをLuaの関数に渡せるの?

375 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 11:33:42 ]
>>374
lua_pushlightuserdata()
メンバ変数をLua側に公開するなら他にも色々必要だろうけど

376 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 15:46:17 ]
>>375
ありがとうございます
色々って、たとえばアクセス用の関数を準備するとかですか?
ほかになにか手はありますかね。

377 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 22:31:06 ]
>>376
その関数とデータを一つのテーブルにまとめるとか
メタテーブルを使うとか

メタテーブルの説明はマニュアルにある
何に使うかは自由

378 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 10:50:36 ]
SQDEVでSquirrelの自作スクリプト&プログラムのデバッグをやってるんだが、
SquirrelスクリプトにSJISの文字列リテラルを書いてたら
Eclipseで毎回コンパイルエラーがでるのは俺だけ?

Eclipseの起動前にスクリプトを一時的に削除したりして面倒。
デバッグ用に動かす分には問題ないっぽいんだが。
\

379 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 15:56:12 ]
ヒント:SJIS

380 名前:378 mailto:sage [2008/10/21(火) 18:22:22 ]
>>379
今確認したが、UTF-8でスクリプトを用意して
bin/squでシンタクスチェックをさせるようにしても、
やはり日本語のリテラル部分でEclipseのエラーメッセージが表示される。
(もちろんsqu -c では問題なし)



381 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 07:47:34 ]
ヒント:UTF-8

382 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 12:58:16 ]
Eclipseスレでどうぞ

383 名前:デフォルトの名無しさん [2008/10/22(水) 21:17:49 ]
とりあえず、SQ-DEVでインストールの仕方を教えてくれ、うまくいかない。

384 名前:378 mailto:sage [2008/10/25(土) 14:22:02 ]
>>381
UTF-16LE/BEに変えてみたがやはり変わらず。
それからSquirrelインタプリタsqu.exeはコンパイル時にエラーを吐かないことが結構あることに気づいた。
コンパイルチェックはあまり信用できないんだな。
>>382
説明が悪かった。Eclipseのウィンドウに、「Squirrelスクリプトのコンパイルエラー」と表示されるわけだ。
表示させてるのはSQDEVなので一応まだSquirrelの範囲内。まあしつこいと思われるようだったら黙る。
>>383
俺もつい先週入れたばかりなのでまだ使える情報だと思うが、

1.まずSun Java SEの最新版を入れる。
2.EclipseはC++用じゃなくてJava開発用をインストールすること(CDTは後から入れられる)
3.あとはSQDEVのWikiページの通りでよい

385 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 17:03:25 ]
ヒント:UTF-16LE/BE

386 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 19:14:16 ]
まず、素のSquirrelはマルチバイド考慮してない
本体のコンパイル時にUNICODE対応させるオプションがある。
内部のUNICODE=UTF-16

だけど確か、読み込み時に標準ライブラリを使ってロードする時はいくつかのUNICODEに対応していたはず、
(UTF-8N,UTF-16のLE,BEあたりだったような)
この辺はソース読んでみて、確かめてみて簡単だから

387 名前:378 mailto:sage [2008/10/25(土) 20:10:22 ]
>>386
Squirrelソース本体はまさにその通りですね。どうもありがとう。

ところがSQDEVに関しては、どうやらSQDEV自体でSquirrelスクリプトの構文解析をやってるっぽいんだ。
(pluginのJavaソースコードを入手して眺めてみた)

このJavaで独自に実装された構文解析器で文法チェックしてるのか、
SQDEVのオプションで指定するインタプリタで文法チェックさせてるのかはまだ調べてない。

残念ながら俺はJava界隈はあまり詳しくないので、どう直したらSJIS対応の構文解析器に改造できるのかがわからん。

388 名前:デフォルトの名無しさん [2008/10/25(土) 21:21:47 ]
>>384
syntax checkingもできてないし
デバックできなかった。

suspend
ready
connected
SQDBG error : cannot open the file

389 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 01:12:46 ]
SQDEVって結構謎めいた奴なんだな

390 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 14:34:30 ]
>>388
EclipseでSquirrelパースペクティブを開いているかどうか。
SQDEVの設定は完了しているのかどうか。
プロジェクトのファイルパスがスペースを含まない半角英数字のみで構成されているかどうか。
sqdbglibを含んだインタプリタかどうか。(sqdbg.exe)



391 名前:390 mailto:sage [2008/10/27(月) 15:17:09 ]
補足。
リモートデバッグというのは動いている外部プログラムをSocket越しにモニターするだけのことだから、
デバッグ対象のプログラムが正常に動作するようにする必要がある。
「SQDBG error : cannot open the file」
という言葉通り考えるなら、sqdbg.exe の場合だと
「Default Working Directory」と「Default command line options」の組み合わせが正しくないとか。

392 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 15:28:22 ]
既出かもしれないが、
SqPlusの初期化において、VMをSQSharedStateNodeに渡してアプリケーション終了時にまで
VMの解放を後回しにするコードは丸めてゴミ箱に捨てたほうがいい。回避させたほうが無難。

393 名前:デフォルトの名無しさん [2008/10/27(月) 18:53:29 ]
>>392
「Default command line options」がわかんないよ。
「test.nut」じゃないの
ほかは全部あってると思う。

394 名前:393 [2008/10/27(月) 18:54:05 ]
間違えた。
>>391

395 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 11:16:46 ]
>>393
まあ分からないというなら、ファイル・ディレクトリ構成まで含めてWikiと全く同じにしてごらんよ。
connectedと出ているようだから、sqdbg.exeへのSocket接続は成功しているようだ。

396 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 23:02:00 ]
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >


397 名前:デフォルトの名無しさん mailto:age [2008/11/03(月) 15:03:40 ]
ほっしゅ

398 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 18:31:08 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   



399 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 18:05:01 ]
luaで正規表現は使えますか?

また、文字列処理に関して、pythonやrubyと
比べるとどうですか?かなり劣ってますか?

400 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 19:13:11 ]
>>399
使えます
ある程度は劣っていると思います



401 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 19:27:44 ]
>>399
文字列の簡単なパターンマッチは標準ライブラリでできますが、
例えばバックトラックを必要とするような複雑なパターンは使えません。
マルチバイト文字のサポートもありません。
あえて言うなら、文字列とbyte列を区別するのが嫌いな人向け。

ちなみにLPegというライブラリでparsing expression grammarが使えるそうです。
ttp://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html

402 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 22:30:15 ]
>>400
>>401
レスありがとう。
rubyかpythonの拡張で行こうかと思ってたけど、
組み込みで行くわ。
俄然やる気出てきた。

403 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 23:29:28 ]
>>399,402
文体の変化にやる気というか、テンションの上がりっぷりが伺えて面白いんだがw

404 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 10:49:20 ]
さしあたり、SquirrelにはSJISのテキストを1文字ずつ区切って
配列にぶち込んでくれるAPIが欲しいところだな。

405 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 02:33:13 ]
>>404
自分でネイティブ関数作ればいいじゃないかw

406 名前:デフォルトの名無しさん [2008/11/07(金) 20:21:05 ]
スクリプト言語による効率的ゲーム開発 C/C++へのLua組込み実践

って本に関して、Luaの入門書を先に読んだほうが良いですか?
それともこの本だけで完結しますか?

407 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 21:05:26 ]
開発効率を上げるためにスクリプト言語(Lua)を利用するという趣旨の本で
読むのにLua自体の知識はあまり必要ない

408 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 21:41:36 ]
>406
Luaの構文規則については第4章をまるまる使って解説してる
本に載っている内容だけならこれで十分

自分でなんか作ってみて
わからないところが出てきたら
Webのリファレンスみればいいんじゃない?


409 名前:デフォルトの名無しさん [2008/11/08(土) 04:24:49 ]
ご意見ありがとう御座いました。
大変参考になりました。


410 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 03:47:40 ]
あれこれSquirrel(on SqPlus)でテストしたけど、VCで文字コードをUnicodeにした場合、スクリプトコードの日本語はうまく処理できない。
文字列処理をアプリ側でやれば問題はないんだが、スクリプトコードのデバッグに日本語が使えないな。




411 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 01:04:17 ]
lua5.0で割り算をした時に余りを出す方法はないですか?

412 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 01:27:30 ]
ん、5.0って%ないの?

413 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 06:25:36 ]
あるならそんな質問しないだろ常識的に考えて・・・

414 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 07:39:32 ]
5.0にはないみたいだね。
sugarpot.sakura.ne.jp/yuno/html/lua5_manual_ja.html#2.5.1

5.1にはあるけど。
sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html#2.5.1

5.0でもmath.modはあるみたいだからそれを使えば。
sugarpot.sakura.ne.jp/yuno/html/lua5_manual_ja.html#5.5

415 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 19:49:36 ]
>>411
粘菌に計算してもらえばええよ。
ttp://www.chunichi.co.jp/article/technology/science/CK2008110402000183.html

416 名前:デフォルトの名無しさん [2008/11/12(水) 23:54:16 ]
>>411
つ math.mod

417 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 00:01:26 ]
>>416
>>414

418 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 00:03:58 ]
>>417
すまね、携帯で見てて下切れてたorz

419 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 01:39:50 ]
math = nil

420 名前:411 mailto:sage [2008/11/14(金) 23:41:53 ]
>>414
ありがとうございます。できました



421 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 10:58:34 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   



422 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 10:17:41 ]
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >



423 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 13:06:01 ]
俺のXtalたんはどうなりましたか?

424 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 13:06:52 ]
音信不通です

425 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 18:36:16 ]
Xtalたんは緊張気味です

426 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 20:12:46 ]
返事がない。ただの屍のようだ。

427 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 21:31:57 ]
AngelScripたんなら俺の横で寝てるが

428 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 23:07:10 ]
AngelScript色々いじってみたが、結構使いやすいな。
文法がC++なんで慣れてるってのもあるが。

ただ、AngelScriptとC++プログラムを結びつけるのを簡単に行うツールとかないのが残念。
LuaBindとかみたいなやつね。

429 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 15:01:43 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


430 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 15:32:49 ]
プログラミング言語のソースコード行数
d.hatena.ne.jp/SumiTomohiko/20081114/1226668855



431 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 20:00:00 ]
>>428
バインダがなくてもシームレスに利用できるのがAngelScriptの良いところだと思うのだが。

432 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 23:47:04 ]
>>431
確かに。
Luaはいまいち使いこなせなかったが、AngelScriptはその辺楽でよかった。

ただ、例えば

ASFunc<int(int,int)> f;
f.SetContext(〜);
f.SetFuncID(〜);
int val=f(a,b);

みたいな感じで、普通の関数呼び出しと同じようにAngelScriptの関数呼び出せるのがあれば便利かなーと。

433 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 20:34:35 ]
LuaInterface luaforge.net/projects/luainterface/
で.NETのSystem.Drawing.BitmapとかGraphicsを使って画像を読み込んで弄ったり出来るんだけど、
新規にBitmapを作る方法がわからん。
一旦画像を読み込んでそれのクローンをつくるとかいうやり方ぐらいしかうまくいかない。

434 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 08:49:08 ]
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >



435 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 18:43:30 ]
いいえ、それはKumaです。

436 名前:410 mailto:sage [2008/11/24(月) 14:51:19 ]
アプリ側でsetlocaleすりゃよかったんだな。
UCS2は.NETでしか使ったことなかったので、ロケール失念してた。

437 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 00:12:56 ]
すみません、質問があります。

現在、「スクリプト言語による効率的ゲーム開発」という本を読み、
Visual C++ 2008 EE上で空のプロジェクトを作成し、
以下のソースファイルをビルドしてみたのですが、

// 以下、ソースファイル
#include <lua.hpp>

int
main()
{
lua_State* L = lua_open();
lua_close(L);

return 0;
}

LINK : warning LNK4098: defaultlib 'LIBCMT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。
という警告が出ます。
かといってLIBCMTを無視するライブラリに指定するとビルドが通りません。

LNK4098のメッセージを無視する方法以外で、警告メッセージを消す方法はありますか?

438 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 00:51:29 ]
LuaのライブラリをコンパイルしたときのCRTとそのプロジェクトのCRTが食い違ってるんじゃね。
大体MTとかその辺のオプションで

439 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 09:08:48 ]
>>437
vcppでWin32向けプログラムをビルド際にFAQレベルで発生する問題だ。
Luaに限ったことじゃないのでぐぐればすぐに解決策は出てくる。
ややこしいことにvcppは複数のランタイムライブラリを持っていて、しかも各ライブラリ・プログラム生成時には原則全てあわせる必要がある。

440 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 23:22:38 ]
>>439
推測だがLuaのビルドオプションがMTでアプリ側もMDだとこの警告がでる。
この場合でもアプリのほうでLIBCMTを無視する設定にすれば大概大丈夫なはずなんだが・・・

面倒だったら、両方のランタイムをそろえてしまえばラクだけど



441 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 01:05:16 ]
>> 438
>> 439
>> 440

プロジェクトの
 [構成プロパティ]->[C/C++]->[コード生成]->ランタイムライブラリ
を/MDd(マルチスレッドデバッグ DLL)から/MT(マルチスレッド)に変更することで警告がでなくなりました。

おかげで少しVC++についてわかりました。

ご丁寧な回答、ありがとうございました。


442 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 01:44:50 ]
正しい解決法は、
・LuaのライブラリをCRT毎に6種類全部ビルドする
・#ifdefと#pragma comment(lib,〜)で自動的にそれを選択するヘッダを作る


443 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 15:41:21 ]
スクリプト言語による効率的ゲーム開発の本読んで、
確かに動的リロードはできたら便利だよなと思った。

そこでSquirrelで同じことをしようと思ったんだが、問題にぶつかった。
Squirrelの仕様だと、Classは一度インスタンスを生成すると変更不能になる。
この仕様だとSquirrelのクラスはリロードできないんだよな…

かといってdelegate使うのは、折角クラス機構があるのにどうよ?と思うんだが、
Squirrelで動的リロードを実装した人いる?

444 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 15:44:13 ]
>>442
Makefileで書けば至極簡単だが、(Luaを)プロジェクトファイルで管理したら普通の方法だとものすごく手間がかかりそうだな。
楽にやる方法何かないでしょうか。

445 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 15:45:19 ]
>>443
スクエニの小さな王国とかが動的リロードやってる
CEDEC2008で言ってた


446 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 15:45:24 ]
>>443
おそらく、いったんインタプリタを殺して最初からやり直した方が早いと思う。

447 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 16:02:33 ]
>>444
ヘッダ一発だってばさ

448 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 16:39:01 ]
>>445
やってるのか。詳細が欲しいな。

>>446
今まではまさにその方法でやってた。

色々考えてみたが、ソースに手を加えない方法ではdelegate使うしかないな。

Foo = NewClass( "Foo", SuperClass );

function Foo::foo()
{
// do something
}

のようにクラスを記述しないといけないが…


449 名前:444 mailto:sage [2008/11/27(木) 22:30:07 ]
>>447
意図がうまく伝わらなくてすまん。
Luaを6種類ビルドする方法のことを言ってます。

450 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 08:13:57 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   




451 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 17:02:22 ]
>>449
プロジェクトファイルってVCの話か?
それなら、ビルド方法のリリースやデバッグに追加して
「DLL リリース」とか「DLL デバッグ」とか作ればええよ

452 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:31:01 ]
なんか0xff表記使うとfloatっぽい丸め誤差が発生するんだが。
色マクロに使おうとしてた俺涙目とか思ってたら>>100で既出な上、
さらに>>104で解決策が示されていた件

ありがとう>>104

453 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 10:20:36 ]
Xtalで書いたスクリプトをSquirrelに移植したら
微妙に遅くなって涙目。

デバッガとかついててSquirrel便利だけど、
どっちにしようかなぁ……。

454 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 11:35:49 ]
”微妙に”遅くなるだけなら問題ないと思うんだが・・・
実行に差し障りがあるレベルなら微妙とはいわなくね?

455 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 22:27:47 ]
たしかに、スクリプトの速度が1/2になるのとFPSが1/2になるのとでは全く意味が違うからな。
FPSが明らかに低下したらならXtalのままにしたほうがいいと思う。

456 名前:453 mailto:sage [2008/12/03(水) 01:14:18 ]
60FPSでキャッシュせずに全張替えしてる仮実装の状態だが、
Xtalだとぎりぎりで60FPS出せる。CPU使用率は1個換算で96〜98%くらい。
これがSquirrelだと52〜54FPSになって少しカクカクしてくる。

速度ならXtalということになるが、これ以上作りこむとどうせ足りなくなるのは同じで、
描画処理の枝刈りをすればSquirrelでもいけるかも……というところ。
蛇足でスマソ。

457 名前:453 mailto:sage [2008/12/03(水) 01:28:54 ]
ところで、みんなSqPlusのところ悪いが(ほんとか?)
jkBindってどうよ?
なんかフォーラムにパッチ上がってるみたいだけど。

458 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 19:37:58 ]
なんかtolua++の挙動怪しかったん、手てグルーコードを書くのを補助する
ライブラリ自作しちまったい。

やっぱり自前で書いたほうが細かく制御できていいね。

459 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 23:46:18 ]
AngelScriptのShiftJIS対応版とか需要あるんだろうか…

460 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:31:03 ]
俺はSquirrel3のパフォーマンスチューニングに期待してSquirrelで行くぜ!
まぁ、枝刈りも大切だと思う。

あとはココのJITとかどうかね
ttp://muffin.cias.osakafu-u.ac.jp/~matumoto/

バージョンがちょい古いけど…



461 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 01:26:17 ]
>>460
ちょうど今、vcpp向けの改修を行っているところ。
作者のスクリプト、デフォルト引数などは既に対応した。
まだメタメソッドや複数段階のクロージャの呼び出しがイマイチ不安定なので改善を図ってるところ。
近々フォーラムに発表予定。

462 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 13:44:50 ]
>>461
元にある問題点とかはそのままなの?

463 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 22:05:06 ]
wktk

464 名前:461 mailto:sage [2008/12/19(金) 20:46:12 ]
とりあえず、手元のスクリプトがほぼ一通り動くようになったのでフォーラムで公開してみる。
協力者求む。
動かないスクリプトの例などがあるとうれしい。

465 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 00:09:14 ]
乙!


466 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 09:07:13 ]
>>464
乙カレー

LuaはC++だとlua_call失敗時に例外投げるんだな。ちゃんと書いてくれよOTL

てっきりデストラクタ呼ばれないと思って、そういうコードを書いてたせいで
謎の挙動に悩まされたよ。


467 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 15:57:40 ]
>>466
リファレンスマニュアルの3.6にそれらしいことが書いてあるよ
Cでsetjmp/longjmp使っててもC++のデストラクタが呼ばれる処理系もあるけどね

468 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 18:03:42 ]
>>467
ほんとだ見落としてた
俺の3時間を返せorz

469 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 08:14:31 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


470 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 09:22:22 ]
toLuaでC++とLuaをバインディングしてるんだけど、
yieldをC++側で呼ぼうとしたとき、
toLuaの生成したラッパーの中じゃ、
lua_yieldを呼べないようなんだが、
どうしてる?




471 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 18:53:35 ]
>>470
lua が yeild をどうやって実装しているか、ソースを追っかけてごらん。


472 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 14:38:55 ]
IGDAでこういったイベント新年にやるみたいだから、参加するのもよいかも

ttp://www.igda.jp/modules/eguide/event.php?eid=58

CRIScriptの人が来るのはちょっと驚いた。
アメリカからはるばる・・・

473 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 15:41:56 ]
>>472
浜中さんの本すでに持ってる人にはあまり新しい情報は出ない気がする…


474 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 05:08:14 ]
日本製のゲーム用スクリプトで最もオープン、かつ、つかわれまくってるものを
開発した W.Dee 氏をパネリストでよぶべきだろう、とちょっと思ったけど、
よくよく考えてみればあの人はゲームは本業じゃないか……

475 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 10:57:23 ]
うん。Nスクの人だと食指は動かないが、Deeたんなら是非行く。
というか、組込み言語の話だからじゃないかな(Nスクの人がいるけど)。

476 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 09:34:59 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   



477 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 19:43:21 ]
Nスクリプトは、組み込み言語?というよりDSLでは?
ゲームとか簡易GUIが簡単に作れるHSPみたいなイメージ

478 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 19:43:56 ]
ごめん、 W.Dee ってきりきりの人かスアソ

479 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 16:45:20 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ O sol e a Lua!!, parabens!!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


480 名前: 【大吉】 【1340円】 mailto:sage [2009/01/01(木) 17:04:11 ]
ぅあけおめー



481 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 18:49:32 ]
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ


482 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 18:59:39 ]
あ、ぅあたんいんしたお!

483 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 23:35:21 ]
ところでLuaとかでyieldでスクリプトの処理を一時停止させて、
その状態をファイルとかに保存して、そのファイルを読み込んで復元、ってできる?

484 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 23:47:11 ]
使ったこと無いけどPluto使えばできるかも
日本語のドキュメントがないけど
ttp://luaforge.net/projects/pluto/

485 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 00:54:41 ]
>>484
d
ちょっと調べてみる。
しかし日本語マニュアルがないのは地味にきついな…
普段使ってるAngelScriptも英文マニュアルしかないし。

486 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 01:02:51 ]
Xtalたん結婚おめ!

487 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 01:31:47 ]
地味にきついな、といいながら日本ではマイナーもいいところなAngelScirptを普段使っているところに男を感じるw

488 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 19:28:38 ]
Xtalってソースコードに他言語との比較ベンチコードが
のってるけど、実際はやいの?

489 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 19:39:39 ]
>>486
おめでと〜w

490 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 23:22:03 ]
>>487
日本語マニュアルはないけど、サンプルがたくさん付いてて分かりやすいのよ。
あと、LuaやSquirrelのスタック介したやり取りじゃなくて直接的にC++とやり取りできるんで便利。
ただデフォでShiftJISに対応してないけど…



491 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 08:32:24 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


492 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 09:33:55 ]
Xtalなんて誰も使ってないから
気楽にやりなー

493 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 10:50:27 ]
>>488
上にSquirrelよりはやいって書いてあるよ

494 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 11:00:31 ]
Squirrelも、JIT対応版を使えばLuaやXtalよりはやくなるけどね。

495 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 13:24:56 ]
Luaも、JIT対応版を使えばSquirrelやXtalよりはやくなるけどね。

Xtalも、JIT対応版を作ればLuaやSquirrelよりはやくなるけどね。

496 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 14:05:36 ]
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ



497 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 20:18:26 ]
つまりLuaSquirrelXtal-JITを作れば、LuaやSquirrelやXtalよりもはやいLuaSquirrelXtalが出来るということだね。

498 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 20:58:34 ]
a

499 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 21:55:53 ]
C++のインスタンスをLuaからLuaのインスタンスかのようにアクセスしたいのですがやり方が判らず悩んでいます。
インスタンスメソッドを直接lua_registerできないですよね、いったいどうしたら良いものやら。。

ご存知のかたいらっしゃいましたら是非お教えください。

500 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 07:44:04 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   




501 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 12:13:07 ]
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ  まピョーん☆
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ


502 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 05:46:16 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ まピョーん☆
 彡、   |∪|  /
/ __  ヽノ /
(___)   

503 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 08:14:31 ]
      _,..-- 、
       ,'     ヽ     まピョーん☆
     /<┃> <┃ >l  _
  _ l  、,,--イ   | /Mヽ
  /M l l  ` ̄   Lノ/
   i `ー       l ̄
     ̄ヽ      /
       \     {
        ヽ   `ー-'ノ
         `ー----''"




504 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 14:25:26 ]
すでにLua関係ねえw
ひかえてくれw

505 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 18:04:39 ]
>>499
メンバ関数呼び出しは、関数に対応した整数値とthisポインタを登録して
__call内部でswitchで対応する関数を呼び出すような実装ならしたことあるな。
もっとスマートな方法があると思うけど。

506 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 21:11:50 ]
>>499
toLuaとかluabind使うのがええよ。
自前でやるなら、テーブルなどを使うべし。

507 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 23:47:31 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua まピョーん☆
 彡、   |∪|  /
/ __  ヽノ /
(___)   

508 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 19:50:53 ]
AngelScriptで改行コードがCR+LFだとスクリプトがビルドできない
Windows+MinGWでやってるんだけどこれって仕様なのかな
unexpected tokenとか出るから最初何かと思ったわ

509 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 00:02:51 ]
>>508
自分の所では普通にビルドして実行できてるな。
ちなみにWindows+VisualStudio2005。

あと、全角文字使ってない?

510 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 09:10:32 ]
>>509
半角英文字しか使ってないよー
void main() {
  return;
}
これでエラー出たんだぜw

普通に実行できるということはライブラリ自体のビルドに問題があったのかな
なんでだろう、Linux環境と誤認してるのか?



511 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 10:02:50 ]
別にLinuxでもSolarisでも改行コードのせいでビルド失敗することないけどな。

512 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 10:30:55 ]
スクリプトをUnicode(UTF-16)で保存してないか?
現バージョンだとUTF-16のスクリプト読めないみたい。

513 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 11:16:26 ]
>>511
ライブラリがLinux環境(LF)を期待しているのに、Windows環境(CR+LF)を食わせるから
エラーが出るのだと思ったんだが…
Linux環境でCR+LFを食わせてもエラーが出ないなら、他に原因があることになるな

>>512
一応いくつかのエディタで開いてUTF-8Nだということは確認した
けれども、文字コード自体は最初から変えてないよ

エラーがいつもファイルの末尾で出てたから、
試しに void main() { return; } ってのをやってみたら
ビルドが通ることを発見して、改行コードに目をつけた

よく考えたら改行コードに問題があるなら、全ての行でエラーが出るはずだよな…
ファイルの末尾でだけエラーが出てたにも関わらず、なぜ改行コードを変えるとビルド出来るんだろう

514 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 11:51:16 ]
MinGW の stdio のバグじゃないかな。
EOF判定がおかしくて、最後の文字(または行)が読めてないか、
あるいは逆にごみを読み込んでしまってるかのどちらかじゃないかと思う。

515 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 13:20:53 ]
スクリプトを丸ごと読み込んでそのまま使った場合に、
EOFが無くてスクリプトを読み込んだ領域の後ろの部分まで
解析しようとしてエラー起こしたことがあったな。

516 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 13:29:59 ]
最後に空行かコメント行入れてみるとわかるかも?

517 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 23:11:29 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


518 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 00:40:38 ]
まず最初にエラーの出るファイルをバイナリダンプすべきじゃね?

519 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 08:39:12 ]
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ  Lua まピョーん☆
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ


520 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 10:53:07 ]
原因が分かった
freadでファイルを読み込んでたんだけど、そこでCR+LFが勝手にLFに変換されてた
そのせいでファイルの長さと文字列の長さでズレが生じて、
スクリプト読み込み時にその差分だけ余計な領域まで踏み込んでた
"r"じゃなくて"rb"で読み込むようにしたらエラー出なくなったよ

サンプルのユーティリティ関数をそのまま使ったのが悪かったのかもしれん



521 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 11:14:18 ]
        ∧∧
       ヽ(・ω・)/   ズコー
      \(.\ ノ
    、ハ,,、  ̄
     ̄

まあよくあることだなw

Rubyのライブラリでも何か読み込みの挙動がおかしいと思ったら、
ライブラリ側でWindows考慮してなくて、バイナリモードになってなかったり。

522 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 13:27:29 ]
テキストモードって何のために存在するの?

523 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 13:40:23 ]
fprintf(f, "Hello World\n");

ってコードの、\n を出力時に \r\n にむりやり変換するのと、fclose したときに
EOF をむりやりつけるために存在する。DOSの遺産。

524 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 13:41:08 ]
歴史的な経緯
タイプライターやTTY、CP/Mの歴史たどるといいかも。

525 名前:デフォルトの名無しさん [2009/02/05(木) 17:09:16 ]
ttp://luaforge.net/projects/lualangpack/
これ使ってる人いない?

526 名前:デフォルトの名無しさん [2009/02/05(木) 17:18:06 ]
岡山オワタ
www.geocities.jp/popaihoge/index.html

527 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 19:56:41 ]
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ



528 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:23:10 ]
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ  Lua まピョーん☆
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ

529 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:31:04 ]
Luaのクマーさん


530 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 11:43:23 ]
>>525
まずお前が試して、ダメ出しした方がいいんじゃない?

俺は、ずっと秀丸で済ましてるな。
LuaEditも使える様にインストールはしたけど、
本当にテンパった時の保険として残してる感じ。



531 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 18:18:29 ]
>>530
今のところの感じでは、
・色分けされて便利
・文字入力するたびに候補でもない単語が出てくるのがウザイ
・プロジェクトの設定が分からない
 ググッて見たけど何処にも解説ないし、Raedmeが欲しかった。

環境を揃える所から入る性質で、
「コレはいいな」って思ったのにプロジェクトの設定が分からないから聞きたかったんだ。
(プロジェクトの設定できたらデバッグとか出来るのかと思うんだけどなぁ)
やっぱサクラエディタとか秀丸とかSciTEとか使った方がいいのかな・・・・。
取り合えずはLuaLanguagePackで勉強進めてみる。

532 名前:名無しさん [2009/02/07(土) 21:08:45 ]
./lua
>
の状態で、Ctrl-C以外で終了する方法はありますか?
exit とか quit とかやってみましたがダメでした

533 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 21:32:09 ]
そこは Ctrl+Zだと思う。
標準入力を終了しない事には終われないのが正常なのでは?

534 名前:名無しさん [2009/02/07(土) 21:36:59 ]
>>533
どうも
Linuxなので、 Ctrl-D でぬけられました。

535 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 07:53:47 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


536 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 13:00:58 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua まピョーん☆
 彡、   |∪|  /
/ __  ヽノ /
(___)   

537 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:19:59 ]
wiki.alliedmods.net/Introduction_to_SourcePawn

Pawnでこう、いい日本語のサイトありますかねぇ。

538 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 08:44:59 ]
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ



539 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 13:54:50 ]
いまさらながらLua本買ってみた。スクリプト言語による〜〜ってやつ
アマチュア個人でゲーム作っててスクリプトはSquirrelでの実装を考えてたんだけど、Luaに気持ちが揺れる揺れる
嗚呼どうしよう!

540 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 14:21:12 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   




541 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 14:30:54 ]
おれは速度と軽さを求めないならSquirrelかな
それにLua本に書いてある考え方ってほとんどSquirrelにも応用できるんじゃない?

542 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 15:12:47 ]
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ



543 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 15:16:25 ]
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ  Lua まピョーん☆
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ

544 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 20:34:36 ]
>>539
ホントのオススメは、自分で何か実装してみてから選ぶことだけどな。
Lisp とか Forth ライクなものなら結構簡単だし、BASIC やアセンブラのような LL1 で行指向のものなら更に簡単だ。

545 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 00:21:33 ]
>>539
AngelScriptが使って欲しそうな目で見ている。

546 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 00:55:33 ]
AngelScript試してみたけどここのサンプルが動作しない
plaza.rakuten.co.jp/OldStyleFactory/diary/200902030000/
関数の取得までは出来ているぽいんだけどasPrintが呼び出されない

547 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 08:45:40 ]
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >



548 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 09:36:17 ]
>>546
自分の所では普通に動いたなー。
環境はXPSP2、VisualStudio2005SP1、AngelScript2.15.1。

549 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 11:43:06 ]
Squirrelって重いんですか?
Luaにくらべてコードがシンプルそうだから、組み込んだ後のデバッグも楽だと思って、LuaじゃなくてSquirrelを採用しようかと思っていたのですが。

ちなみに、Squirrelって何であんなに不要なbreakやcontinueがあるんですかね?

550 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 11:53:07 ]
不要じゃないだろ。常識的に考えて。



551 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 12:07:10 ]
ボケは分かりやすくね

552 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 12:36:48 ]
>>549

298 名前:デフォルトの名無しさん[sage] 投稿日:2008/09/20(土) 02:25:07
速さと軽さならLua
基本的な演算とsuspendを行う処理を一億回ループさせたらLuaはSquirrelの1/3の時間ですんだ


553 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 13:14:33 ]
イメージとしてはLuaの方が早いって意外だよね
Luaもがんばってるな〜

554 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 13:23:16 ]
>>553
>イメージとしてはLuaの方が早いって意外だよね

お前だけな

555 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:05:24 ]
俺だけだったか
Luaは実際には使ったことないんで知らないんでイメージでしか語れんかったわ
すまん

556 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:05:51 ]
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >



557 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 20:02:42 ]
JITでC++と同等の速度が出る組み込み言語
誰か作ってよ

558 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 20:18:31 ]
>>552
Squirrelでsuspendを使うということは、マイクロスレッドを切り替える処理があるということなんだが。
それが軽いはず無いだろう。

ただし、基本的な演算処理でSquirrelがLuaの半分くらいの速度しか出ないのは本当。
速さだけ求めるならXtalも有力。

559 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:15:34 ]
>>557
C++が速い理由には、言語仕様の差以上に、コンパイラに投入された労力が膨大なものだからというのもある。
LuaでもSquirrelでも、人月をかければC++以上に速くする事は可能だと思う。
逆に言うと、言語仕様だけではどうにもならない。

>>558
マイクロスレッドに関してはLuaも全く同じ。
Luaではコルーチンって呼ぶけどね。
298もそれはわかった上で比較してると思うよ。

560 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:47:50 ]
          ____
       / \  /\ キリッ
.     / (ー)  (ー)\    <C++が速い理由には、言語仕様の差以上に、コンパイラに投入された労力が膨大なものだからというのもある。
    /   ⌒(__人__)⌒ \ LuaでもSquirrelでも、人月をかければC++以上に速くする事は可能だと思う。
    |      |r┬-|    | 逆に言うと、言語仕様だけではどうにもならない。
     \     `ー’´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一””””~~``’ー?、   -一”””’ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ   <だっておwww
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)   
| / / /     |r┬-|    | (⌒)/ / / //       
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/      
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー’´      ヽ /    /
 |    |   l||l 从人 l||l      l||l 从人 l||l  バンバン
 ヽ    -一””””~~``’ー?、   -一”””’ー-、
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))




561 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 00:22:41 ]
その通りのことにそのAA使ってもな

562 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 00:37:35 ]
残念ながら経験10年のおそらく天才プログラマーが作ったJavaScriptが
学生が演習で作ったCのサブセット以下の速度なのよ

563 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 00:49:05 ]
>>562
CとJavaScriptで速度差が出るとしたらプロパティアクセス時の
ハッシュ計算だと思うんだけど、その差はJITすれば消せる。
JavaScriptはV8で比較した?

564 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 01:26:05 ]
そんなんで消せたら
誰も苦労しないだろw

565 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 02:18:11 ]
しかし、SquirrelにもLuaみたいなスクリプトのライブラリを置くリポジトリサイトが欲しいよな。
ネタは色々あるんだが。

566 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 03:17:30 ]
>>562
ベンチマークに使ったコードは、どんな内容だったのでしょうか?
興味があります。

567 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 03:21:07 ]
>>559
squirrel でも普通コルーチン。マニュアルの表記は「協調スレッド(コルーチン)」

「マイクロスレッド」だと、システムよりの機能を使ってるような誤解を招くから、
間違いじゃないけどふさわしくないと思う

568 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 04:38:29 ]
lucille.atso-net.jp/aobench/
誰かこれやってみて

569 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 08:52:18 ]
機械語に近い言語体系じゃないと、C並に早くならんだろうな

570 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 08:59:47 ]
559はJITが機械語を生成すると思ってんのかな?



571 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 11:14:15 ]
C++より速くできるって…夢でも見てたんだろうね

572 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 12:05:33 ]
          ____
       / \  /\ キリッ
.     / (ー)  (ー)\    <その通りのことにそのAA使ってもな
    /   ⌒(__人__)⌒ \
    |      |r┬-|    |
     \     `ー’´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一””””~~``’ー?、   -一”””’ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ   <だっておwww
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)   
| / / /     |r┬-|    | (⌒)/ / / //       
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/      
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー’´      ヽ /    /
 |    |   l||l 从人 l||l      l||l 从人 l||l  バンバン
 ヽ    -一””””~~``’ー?、   -一”””’ー-、
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


573 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 12:09:18 ]
559はバイトコードと機械語を同じだと思っている、に一票。

574 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 13:38:25 ]
>>570に聞きたい。
じゃあ何を吐くんだ?

575 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 13:43:00 ]
>>564
V8では新たなプロパティが追加されるたびに
プロパティに対して定数時間でアクセスできるような
アセンブラコードが生成されるよ。
だからV8は速い。

576 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 13:45:06 ]
>>573
突然そんなことを言われても意味がわからない。
その根拠はいったい何さ?

577 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 14:32:58 ]
>>567
昔StacklessPythonの記事で、言語仕様上で実装したマイクロスレッドとOS側で実装されるネイティブスレッドの
使い勝手の違いの話があって、それで覚えてしまっていた。
確かにこの場合はコルーチンと呼ぶべきだね。勉強になった。

各種言語処理系の仮想マシンが一種の機械語をサポートする場合、
その機械語、もしくはソースコードからコンパイルして作られた(仮想マシン用の)機械語を一般的にバイトコードと呼ぶ。
これに変換してから実行する形態をバイトコード処理系、もしくはバイトコードインタプリタと呼ぶ。
一方、CPUが直接実行する機械語を生成するのがJITコンパイラだ。

ただし欧米人でもたまに間違えてたりするので記事読む時に注意がいる……。

578 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 14:58:00 ]
          ____
       / \  /\ キリッ
.     / (ー)  (ー)\    <一方、CPUが直接実行する機械語を生成するのがJITコンパイラだ。
    /   ⌒(__人__)⌒ \
    |      |r┬-|    |
     \     `ー’´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一””””~~``’ー?、   -一”””’ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ   <だっておwww
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)   
| / / /     |r┬-|    | (⌒)/ / / //       
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/      
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー’´      ヽ /    /
 |    |   l||l 从人 l||l      l||l 从人 l||l  バンバン
 ヽ    -一””””~~``’ー?、   -一”””’ー-、
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


579 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 15:02:17 ]
で、人月をかければJITがC++に勝てるの?

580 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 15:04:19 ]
単に比較したって意味がないだろう



581 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 15:13:24 ]
C++も負けないようにJITにするんだ!

582 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 15:13:52 ]
茶化してるだけの人とマジな人と、マジにわかってない人と、いろいろいるな

583 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 15:17:30 ]
>581
LLVMとか

584 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 17:12:36 ]
>>575
プロパティに定数時間でアクセス出来るのと
JIT使っているっていうのは関係ないだろ

585 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 17:41:53 ]
JIT使ってもC/C++より早くなるわけねぇじゃん
現代のCコンパイラがどれぐらいの労力をかけて最適化コード吐くのか考えてみたことある?

586 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 17:49:38 ]
C++より速くなる病患者が
Javascriptにまでw

587 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 17:52:39 ]
コーディングにかかる時間は考慮しないんだな

588 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 17:53:08 ]
結局JITは怖くて使わないです。えぇハイ

589 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 17:54:00 ]
>>584
JavaScriptだとプロパティの追加や削除を実行時に
しなきゃならんことがある。
なので、普通はそれをプロパティに対するハッシュで実装するわけだけれど、
Googleはプロパティの変化ごとにJITコンパイルする道を選んだ。

V8 JavaScript Engine
code.google.com/apis/v8/design.html

> JavaScript is a dynamic programming language: properties can be added to, and deleted from,
> objects on the fly. This means an object's properties are likely to change.

> V8 compiles JavaScript source code directly into machine code when it is first executed.
> There are no intermediate byte codes, no interpreter. Property access is handled by inline cache
> code that may be patched with other machine instructions as V8 executes.

590 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 17:57:25 ]
機械語を生成できたところで、コンパイラの性能差が大きすぎるでしょ



591 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 18:19:21 ]
プロパティの変化ごとにJITコンパイルするとか
意味不明

592 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 18:37:03 ]
現代のCコンパイラがgccの事であるなら
労力だけかけても間違った結果しか出てこないもんなんだなー とは考えてみた事がある
主にループ抜けなくなるとか

593 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 18:45:52 ]
gccについては、あの…その……うんゴメン

594 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 18:48:15 ]
>主にループ抜けなくなるとか

wwwww

595 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 18:50:37 ]
Squirrelを使おうとしているんだが、
バインダ(SqPlus)の更新が半年前から止まっていて、使おうかどうか躊躇してる。
みんなはバインダに頼らず直接実装した?

596 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 18:57:43 ]
優れたJIT技術者がいるとして
そいつが何の仕事を選ぶかだな

597 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 20:01:23 ]
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ



598 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 20:19:26 ]
散々JITについて盛り上がっておいて、ここまでLuaJITに言及なし

599 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 20:30:57 ]
JIT使ったことねぇからわからねぇ が大半だと思います

600 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 21:12:32 ]
>>595
俺はjkBindに乗り換えようかと考えている。
既に作者とは連絡を取った。
Squirrel-2.2.2-stable向けのパッチがフォーラムにあがってる。



601 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 21:22:04 ]
jkBindについてkwsk

602 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 21:31:40 ]
>>600
ありがとう。jkBindも選択肢としてありなのか。なるほど。
ちょっと調べてみますね

603 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 21:44:37 ]
結局Luaなんて誰も使ってなくて
へんなクマが冷やかしに来るスレ?

604 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 22:31:10 ]
バリバリLua使ってるような人が中々来ないスレ
現在は使ってないけど「今後使ってみようかな」とか興味ある人が情報収集しにくるスレ
あとはクマスレ

605 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 22:35:26 ]
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ  Lua まピョーん☆
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ

606 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 23:01:53 ]
//
/ / パカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ AngelScript!!
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ


607 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 00:38:30 ]
ほっそいなAngelwwwww

Luaは使ってないけどXtalはバリバリ使ってるよ!

608 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 00:40:39 ]
AngelScriptをメインで使ってるのは俺だけですかそうですか。

609 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 01:16:03 ]
AngelScriptは不遇だよね〜
もうちょっとがんばれば2強に肩を並べるぐらいになってたかもしれないのに

610 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 01:41:28 ]
JITコンパイラが付いてC++並の速度で動くようになれば
AngelScriptも流行るよ



611 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 02:15:47 ]
なんかJITが好きな奴がいるけど、ゲームとかに組み込んで使用する
用途での言語処理系でJITなんて危なくて使えないだろw

612 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 02:38:34 ]
JIT の実装が進んでるシステムは、事前コンパイルできる場合があるので、
開発中は作業効率がいい動的スクリプト言語として使って、完成したら
コンパイルしてネイティブコード化するという方法もある。

613 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 06:44:51 ]
Pascalでいいやん

614 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 06:57:19 ]
CriScriptはベンチを見る限り割と良さそうなんだがなぜか話題にも上がらない

615 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 09:24:13 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


616 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 09:24:39 ]
先月の IGDA の奴を聴きにいって以来、オレの中で CriScript 株は急上昇中。


617 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 10:33:51 ]
実際使ってみたなら感想よろ

618 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 10:47:00 ]
スクリプトって多々あるけど、
今後の展望を含め、どれか一派に絞らなけりゃならないのは賭けだよね
・言語仕様
・ライセンス
・動作環境
・速度
・メモリ量やGC問題
・安定性
・将来性
・国内外でのコミュニティの活性度
など複雑な素因が絡んでくるもんね。
自分はSquirrelを選んだが、将来残っているか不安っちゃ不安だわ。
磐石なスクリプトが存在するか、せめて機械的なコード置換があればいいんだがなぁ。

619 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 11:05:29 ]
コミュニティや作者のサポートが必要とはあまり思わないな
ソースコードが何百万行もあるソフトとは違う

620 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 11:30:48 ]
問題ってのは起ってほしくないときに起るもんだ
そのときに同じように余裕ぶっこいていられるかな?




621 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 11:35:30 ]
バグが見つかったら、自分の書いたソースだろうが利用しているオープンソースだろうが自力で直す。
直す手段が用意されているところがオープンソースの処理系のいいところじゃないか。

622 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 11:50:11 ]
お金とってサポートしてくれるところがあるといいなーと思う場合は無きにしもあらず

623 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 11:50:42 ]
Squirrelは辛うじて読めたが、Luaは読めなかった俺
今のところ自力で直す場面に出くわした事は無いが、これを直すとなると骨折れるだろうな…

624 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 12:05:00 ]
>>601
jkBindだが、SqPlusと比較してみる。

いいところ:
・ソースコードが遥かにきれいで簡潔
・グローバルスコープで余計なことをしない(main関数抜けるまで握ってるオブジェクト解放しないってなんだそれ>SqPlus)

わるいところ:
・テストコードが整備されていない
・マニュアルがない(簡単なサンプルコードのみ)
・Squirrel言語仕様への対応が古い(公式のはコンストラクタの登録に対応してない。要パッチ)
・DirectXのラッパーライブラリがない?(全然使わんよこんなもの)
・せめてソースコードにコメントくらいは書いてください

バインダとしての使い勝手はそう変わらないと思う。
どちらもtemplateを用いるし。

625 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 15:14:24 ]
plusd.itmedia.co.jp/pcuser/articles/0902/17/news046.html

キーカスタマイズ機能でLuaを使ってるそうな。

626 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:15:03 ]
Lua の言語仕様が好きって人いる?
JavaScript から prototype をなくしたような感じで、
しかも stackless。
なんかすごく気に入ったんだけど、そういう人いないかしら?

627 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:34:28 ]
pascalっぽいところが好き

628 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 21:08:40 ]
俺は pascal っぽいところが嫌いw

629 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:28:38 ]
end だけかYO!

630 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:55:36 ]
どうやっても--はコメントではなくて、デクリメントと認識してしまっている



631 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:26:57 ]
AngelScriptはなぜ広まらないんだろう。
かなり使いやすいと思うんだが、やっぱり日本語資料が少ないのがネックなんだろうか。

632 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 01:57:11 ]
  . ∩___∩ ;
  ; | ノ|||||||  ヽ `
 , / ●   ● |   
 ;, | \( _●_) / ミ  AngelScript…
; 彡、 | |∪|  |、\ ,
./    ヽノ/´> ) :
(_ニニ>  / (/ ;
; |     | ;
' \ ヽ/ / :
, / /\\ .  
; し’ ' `| | ;

633 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 04:01:51 ]
>>631
コルーチンが無いからスルーした記憶がある
「このサンプルは AngelScript でどうやったらコルーチンが実装できるか示してる」
って状態だとさっぱり嬉しくない

634 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 08:03:15 ]
ぅあ!

635 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 08:54:02 ]
過去スレを見たら、Lua で Yコンビネータを書いてる人とかいたけど、今は
いないのかな。
言語オタクの興味の対象から、実用フェーズに移ったということなのかなあ。

「スクリプト」で差がついた日米ゲーム開発の生産性 GDCを読む(2) デジタル家電&エンタメ-最新ニュース:IT-PLUS
it.nikkei.co.jp/digital/news/index.aspx?n=MMITew000006022009

636 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 12:01:19 ]
>>633
C++のバイナリ仕様に合わせて設計されてるわけだから、C++にできないことを実装するのは難しいのかもな。
ただJITコードですら中断可能なコルーチン化は実現できるので、やりようはあると思う。

637 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 12:08:11 ]
ほう

638 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 12:12:47 ]
>>633
普通にSuspendじゃだめなん?
lua_yieldと同じことはできるよ。
引数渡せないが。

639 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 12:31:17 ]
>>638
マニュアル眺めてまともに記述されてないってことでスルーしただけなのでつっこまれると困る。すまん
できるのならどんな記述でできるのかぐらい書いておいてほしい



640 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 12:31:25 ]
むしろ引数なんか要らないっていう



641 名前:デフォルトの名無しさん [2009/02/18(水) 13:37:22 ]
>>639
void Suspend()
{
asIScriptContext *lpContext=asGetActiveContext();
if(lpContext!=NULL)
{
lpContext->Suspend();
}
}
こんな感じの関数をC++の方に記述して、このSuspend関数をasIScriptEngineインスタンスにRegisterGlobalFunctionで登録すればOK。

Luaだと、
int yield(lua_State *l)
{
return(lua_yield(l, 0));
}
こんな感じかな?

642 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 19:10:41 ]
Squirrelのバインド操作が意味わからん……。
バインダ使わずその辺を自前で実装したいんだが、SqPlusのコードを読んでてTemplateの嵐だったので投げた。
次はjkBind読むしかないのか……。
SquirrelのC/C++への組み込み方法について、何か参考になるページありませんか?

643 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 19:26:30 ]
tolua++とか

644 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 19:28:19 ]
補足です。一般的なsqstd_dofileやsq_compileなどからsq_callすることは出来ております。
スタック操作については若干曖昧ですが、C++側からSquirrel内の関数を呼ぶことは出来ました。
特にBind操作(LuaからC++関数の呼び出しや定数/変数のBind)について、
グルーコードの自動化のような処理を探しています。(Luaで言うところのtolua++に相当する実装)

645 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 19:34:35 ]
>>642
>>644
それを処理するのに、C++ではtemplateが一番適しているわけだが?
SqPlusにはマクロ版も一応ある。お勧めはしないが。

646 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 19:42:05 ]
ttp://muffin.cias.osakafu-u.ac.jp/~matumoto/cgi-bin/xt.cgi?prog/squirrel

ここを全部読んで理解するべし。

C++ のクラスを squirrel のクラスとして登録する方法は
「C++オブジェクトでのメタメソッド使用」から先で解説されてる。
ポイントになるのは sq_newclass と、sq_setinstanceup/sq_getinstanceup

テンプレートはラッパー関数群の自動生成を行ってるだけで本質じゃないよ

647 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 21:37:31 ]
>>646
645だが、642は自前でバインド作業をやろうとしてたのか。
2行目の前半を読み飛ばしてた。スマン。

……まあ、そのページ読めば分かるだろう。
ClassオブジェクトをSquirrel中にこさえるのと、それをroottableに登録するのと、
Classオブジェクトにメソッドやらプロパティやらの諸情報を埋め込むのと大まかに3つに分かれる。

648 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 02:18:49 ]
そろそろ Squirrel の読み方考えようぜ!

649 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 02:40:42 ]
発音記号に照らせば スクァラル が近いが、俺はスクワールと呼ぶことにしている。
ちょうどそんな名前の喫茶店があるので。

650 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 06:40:56 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   




651 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 07:08:30 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua まピョーん☆
 彡、   |∪|  /
/ __  ヽノ /
(___)   


652 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 09:42:21 ]
ちくしょうクマが可愛くなってきたw

653 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 11:38:00 ]
luaやsquirrelよりもgauche, ypsilon, moshのような国産schemeの方が速いらしいぜ
これからの組み込みスクリプト言語はschemeの時代かもしれない

654 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 12:18:31 ]
はいはい

655 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 12:22:24 ]
それは無い。残念ながら。
ありうるならもう来てないとおかしい>schemeの時代

656 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 12:30:18 ]
schemeの処理系がいくら性能がよくて、柔軟な性質を持っていても、
普通のスクリプタは括弧の嵐を見ただけでげんなりするからな
lisp系がメジャーになることは永遠にないだろう

657 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 12:37:12 ]
かなりいい線まで行って、おいしいところを非lisp系に取られるんだよなぁ

658 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 13:20:30 ]
それがLispの矜持でさぁ

659 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 13:35:58 ]
・・・・・・隠れlisp使い多い?w

660 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 15:24:06 ]
どっちでもいいよ。

組み込み言語の利点は、ただ1つ「コンパイルなしで改変、実行できる」
言ってしまうとこれだけだし。

デザイナが弄るなら、弄るデータなんてほとんどデータだし、
括弧が多少多くてもプロなら入力してくれる。

ロジックはどうせ、プログラマの仕事だから、schemeだろうが何だろうが、かまわん





661 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 15:27:55 ]
まあ、止めはしない。がんばれ。

662 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 17:06:57 ]
jkBindってどこにあるの?

663 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 17:59:28 ]
釣りか? ググれ。

664 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 18:08:12 ]
>>645-647
ありがとうございます。
教えてもらったサイトを見て実装してみました。大変助かりました。

665 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 18:14:53 ]
jk-pro.info/en/projects/jkbind/

2006年で更新止まっているけど
ここでいいのかな?

666 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 20:35:55 ]
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >



667 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 21:12:25 ]
>luaやsquirrelよりもgauche, ypsilon, moshのような国産schemeの方が速いらしいぜ
「らしい」とかウゼェから死ねよ、クズ。
各言語のベンチマークに使ったコードを書き込んでから話せや。

668 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 21:19:59 ]
仮にそうだとしても
schemeなんか速くたってどうしようもないじゃないか

669 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 22:16:56 ]
Schemeは処理系を作るのは容易だが、それでプログラミングするのを
嫌うプログラマがかなり多い。非プログラマにも好まない言語だ。
昔を懐かしみ知識を得るだけしか役にたたないというのが常識。

その常識を無視して新規プロジェクトに導入しようとするのは無能マネー
ジャで、他にも間違いを多く侵してる。

学生が自分の勉強用に自作するにはとても良い言語とは思うが。

670 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 22:22:00 ]
Schemeは学生のとき
やらされたっきりだな



671 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 22:35:22 ]
Emacs使ってた時にelisp触ってたぐらいだなぁ。
この前エディタスレに行ってみたら、
「○○という機能があるエディタありませんか?」
「emacsなら出来る。Lispで自分で作ればいいよ」

と言う流れを未だにやっていて笑った。

672 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 23:03:25 ]
良い言語だと思うけど、学ぶのにコストがかかるから導入しにくい。

673 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:20:44 ]
>>618
いくつか齧ってたらなんとでもなるよ。 似てる概念や要素が多いから。


674 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:44:48 ]
|Д`)<AngelScriptも忘れないであげてください
|ミサッ

675 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:47:10 ]
//
/ / パカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ AngelScript!!
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ

676 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 02:44:06 ]
スクリプト言語による効率的ゲーム開発 C/C++へのLua組込み実践という書籍の
P.43,44にあるスタンドアロンのLuaを実行してテキストファイル(hello.lua)に
書いたスクリプトを実行する(中身はprint("This is hello.lua"))部分を試しているのですが
Windowsのコマンドプロンプト上でhello.luaと同じディレクトリに移動し「lua5.1 hello.lua」と入力する部分がうまくいきません
コマンドプロンプト上でhello.luaと同じディレクトリに移動という意味が理解できず
勝手にただ単にパスを指定して実行すると解釈したのですが(C:\------\lua5.1 hello.lua)
stdin:1: '<name>' expected near '\'と出てきて実行できませんでした
stdin:1: '<name>' expected near '\'のキーワードで検索しても期待した内容が出てきませんでした
無知な私にご教授いただければ幸いです

677 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 02:47:02 ]
www.google.co.jp/search?q=%83R%83}%83%93%83h%83v%83%8D%83%93%83v%83g+%83f%83B%83%8C%83N%83g%83%8A+%88%DA%93%AE
無知な上に努力不足です

678 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 02:53:10 ]
もはやDOSコマンドも知らないプログラマが存在する時代なんだな
そんなんでよくプログラム書けるな

679 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 02:58:19 ]
教えて頂きありがとうございました
「コマンドプロンプト 同じディレクトリ」では検索したのですが検索方法も悪かったようです

680 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 03:00:12 ]
前の職場にC++,JavaがめちゃくちゃできるのにDOSコマンド知らん人がいたわ
使う機会ないと覚えないもんだなと思った



681 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 03:05:24 ]
DOSコマンド知っているけど
使う機会が無くなったな

682 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 03:25:52 ]
ディレクトリの移動はできるようになったのですがLua起動後にhello.luaを実行しようとするとまた
stdin:1: '<name>' expected near '\'と表示されます
「stdin:1: '<name>' expected near '\'」はどのような意味を表しているのでしょうか?

683 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 03:28:44 ]
だから言ってるだろ無知な上に努力不足だって
お前はそうやって完成するまでずっと人に聞きつづけるのかっつーの
本でわからない事があるなら著者に聞けよ

684 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 03:36:52 ]
著者に聞いたら完成するまで人に聞き続けるだろwwww
試しに俺もそのワードでぐぐってみたが多分わからんと思う
わざわざここに書き込んでるのは反応が早いからって理由だろうに
まあ俺はドSだから教えないけどな

685 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 03:37:17 ]
不快にさせてすみません
著者にわざわざ連絡を取って聞くほどの問題ではないのだろうかと思い書き込みました

686 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 03:51:25 ]
Hello,World!が出来ないのを切り捨てるのは性格の悪さがうかがえるな
stdin〜はようわからんが俺も同じ内容で引っかかったから教えると
lua5.1を起動させずに(重要).exeと.luaを同じディレクトリに置いてlua5.1 hello.luaでいける
これは初歩の初歩からやってんのに重要な事書かない筆者が悪いわ
これさえわかりゃ後はスムーズに進むぜ

687 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 03:54:13 ]
ていうか
>Windowsのコマンドプロンプト上でhello.luaと同じディレクトリに移動し「lua5.1 hello.lua」と入力する部分がうまくいきません
って自分で書いてるのに
>Lua起動後にhello.luaを実行しようとすると
やってること違うじゃんよ。これぐらいさすがに気付いて欲しいよ

688 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 03:58:08 ]
DOSコマンド使った事ないならそんなもんだ
.lua形式のファイル開くんだからlua起動してないとって思ったんじゃね

689 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 04:51:55 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


690 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 05:12:51 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua まピョーん☆
 彡、   |∪|  /
/ __  ヽノ /
(___)   




691 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 05:18:32 ]
>>685
たぶんもう少し読んだら出てくるtolua++の解説箇所あたりでも
困ることになる予感がする。
でも苦労したり嫌な思いして覚えたことほど忘れにくいのでがんがれ。

ただその本にはWikiにサポート用のForumあるので、質問とかは
あちらに書いた方がいい気はする。

692 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 07:47:20 ]
まあ、ypsilon作った会社は社員一人しかいないからなw

693 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 17:21:06 ]
コマンドラインなんて使わないな。
バッチファイル作るのに少し教えて貰ったけど全然使う機会無いわ。
便利な世の中になったお陰で考える事が減って美味しいです^q^

694 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 17:30:42 ]
>>693
こういう奴がHDD全消去するようなインストーラー作るんだろうな

695 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 18:06:17 ]
ぎすぎすした流れをぶった切って申し訳ないが、
luaのイテレータを使用したfor文に渡す引数は
イマイチなじめない。
C++/STLのbegin/endになれた身としては最初に渡した
"_var"がfor内ブロックに渡されず、_f(_s,_var)の戻り値が
渡される所とか違和感を感じる。
他の言語のイテレータになれた人だとそうでもない?



696 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 19:02:00 ]
じゃあC++使ってればいいじゃん

697 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 21:08:32 ]
今時、コマンドラインも使わなきゃLINUX鯖も立てられない奴には仕事は来ないわなw

698 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 21:35:39 ]
はいはい挑発伝説挑発伝説

699 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:27:30 ]
俺なんか家も学校もUNIXだったし会社はいるまでWindows触ったこともなかったからなぁ。
DOS窓?ぷwなにそれ、って言ったら白い目で見られたよ。
Windowsが全てと思ってる奴もいるし世の中間違ってる。

700 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:43:01 ]
PowerShellはどうよ?



701 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:44:34 ]
>>695
Luaのことはほとんど知らないんだけど、w
組み込みでは、
・iteratorインスタンスをいちいち生成したくない。
・クロージャやジェネレータを扱いたくない。
という意図があると思う。
特に_s。クロージャ、ジェネレータ相当のことを自前で実装しろと。
単純なイタレータばかりなら、_varだけでいいけど。
そのトレードオフが_f(_s,_var)だと思う。


702 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:13:50 ]
先週toLua++更新されてるね。

703 名前:695 mailto:sage [2009/02/22(日) 23:21:55 ]
>>701
ごめん。理解できないで詳しくお願い。

ちなみに、私が求めていたのはこんな感じ
do
 local _f, _s, var_1,...,var_n = explist
 while var_1 do
  block
  var_1, ... , var_n = _f(_s, var_1)
 end
end

たとえばluaのtableでリンクリスト(nil終端)を操作する
iteratorを作るとき、上のだと、
 _f=function(_s,_var) return _var.next end
 _s=nil
 var_1,...,var_n = top , ....
でいけると思うけど、オリジナルのLua版だと
 _f=function(_s,_var) if _var then return _var.next,... else return _s,... end
 _s=top
 _var=nil
とかいまいちすっきりしない。(特に_varの位置付け)
リンクリストなら無理してforを使用しなくても出来るけどね。

for文がああなったのはLuaの文法との整合性の問題?


704 名前:695 mailto:sage [2009/02/22(日) 23:23:50 ]
luabindも0.8にあがってる。

705 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:58:15 ]
C++しか知らんからそうなる
このイテレータの形は関数型言語やれば自然と判るよ

706 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 01:57:47 ]
なんでLua以外の言語人気ないんだろう?

707 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 02:16:24 ]
Squirrelの時代が来る!
…と信じている……

708 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 08:13:23 ]
スクエニが使った実績もあるしな!
俺も今度スクリプト使うときはSquirrelでいくぜ!



何か作る…暇さえあればな…

709 名前:デフォルトの名無しさん [2009/02/23(月) 08:46:39 ]
www.ferzkopp.net/~aschiffler/Personal/FunStuff/Pictures/Squirrel.html

710 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 09:32:18 ]
luaforge.net/
squirrelforge.com/



711 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 11:36:53 ]
というか、普通にPC向け商用ゲームで採用予定なんだが>Squirrel
……って、他に居ないのか。居ないのか!

712 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 12:06:37 ]
ここにいるよ


713 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 13:13:11 ]
ここにもいるよ。

PSPの案件でもテスト開始してる。スクエニ様々だね。

714 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 14:18:10 ]
よかった…。Squirrelが一躍有名になって。
スクエニのFFCCのプログラマーはGJです。

715 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 17:25:16 ]
DQ9はSquirrel採用?

716 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 17:55:06 ]
もし知っている人が居ても絶対教えてくれないと思いますよ

717 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 18:14:38 ]
いや、9は無理でしょ。DSだよ?
メモリ4Mくらいじゃなかったか?


718 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:57:49 ]
>>713
スクエニでPSP・・・・・パラsうわ何をするやめ(ry

719 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:15:59 ]
おいおいwネタなのか本当なのか知らんが笑ってしまったw
自分も案件提案して採択されそうだ。というわけでSquirrelは水面下で絶賛展開中だ

720 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:50:06 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ 勝手に使えばいいだろw
 彡、   |∪|  / 日本人が発音できない言語lolololololol
/ __  ヽノ /
(___)   




721 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:03:49 ]
ロリロリロリロリ

722 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:34:12 ]
Luaにはクマが居るのに、SquirrelにはAAすらない。可哀相

723 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:39:56 ]
Xtal のインタプリンタとかデバッガーとかIDEとかってまだない系?

724 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 01:16:53 ]
>>723
以前(半年ぐらい前)ちょっと調べてたけど見つからなかったよ。
Xtalの中の人はかなりがんばっていると思うんだけど、いかんせん外野からの支援が無いよね。

725 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 01:17:30 ]
あれは何処の国の人が盛り上げるんだろうね

726 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 01:34:28 ]
Xtalは応援してやりたいが、sourceにほとんどコメントが無くて読めなかった。C++コーディングここに極まりって感じ。
言語仕様も定まってきているわけだし、ここいらで一旦仕様拡張を止めて、
導入方法について詳しく記述し、間口を広くすれば流行りそうな予感はしている。
欲を言えば作者自ら本出してほしい。そんな暇無いだろうけど。

727 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 01:38:50 ]
>>722
クマなんぞただの目障り。

728 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 01:41:11 ]
//
/ / パカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ AngelScript!!
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ


729 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 01:42:06 ]
>>726
Squirrelより実行速度速いしな。おまけに使いやすいC++バインダも内蔵ときた。
ちょっと構文が変な感じするけど、
オープン界のPHPとRubyみたいな関係で、
互いに刺激を受けてcoolな発展してくれることを望むぜ。

730 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 01:43:59 ]
実行速度は後からなんとかなるけど
構文が変なのは致命的だなあ



731 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 01:51:08 ]
他のスクリプト言語とほぼ相互置換できるのなら無問題なんだけど、実際のところどうなんだろ?
Xtalを触りだけじゃなく、実際に使ってる人って居ないんかいねぇ?

732 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 01:51:13 ]
Luaの本は結構出てるんだけど
Squirrelの本って洋書でもまだ出てない?


733 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 01:57:42 ]
GDC2008 FFCCのSquirrel採用の件
game.watch.impress.co.jp/docs/20080224/ffcc.htm
たった1行だけ。

734 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 02:07:27 ]
洋書でもいいからSquirrel本ほしいよな
まとまって目ぼしい情報があるのが公式wikiぐらいだ

735 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 09:48:36 ]
SquirrelはAngelScriptよりはまだマシじゃないか。
AngelScript使ってるのは日本で自分含めて数名しかいないんじゃないかとすら思える。

736 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 10:14:14 ]
スクエニがFFCCで色々やった結果をSquirrel公式に提供してくれればなぁ

737 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 10:18:45 ]
>>735
詳しく調べたわけではないが、C++の制約をそのまま受けてしまう仕様ではなぁ……。

738 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 11:14:45 ]
>>700
> PowerShellはどうよ?
UNICODE文字だけなので普段使いにはムリがあった


739 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 14:48:35 ]
>>736
んだな。SquirrelにLuaにあるような動的リロードをどう実装したのかが知りたい。
おそらくdelegateじゃないんだよな。

740 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 16:56:00 ]
>731
ノシ使ってるよ





741 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 18:44:09 ]
せめてインタプリンタやデバッガやIDEがあればなあ・・・>Xtal
Pythonからの移行を考えてる今日この頃
LuaやSquirrelも考慮してみるか・・・

742 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 20:41:59 ]
>>741
Python止めようと思ってる理由は?

743 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 21:01:21 ]
止める気はないよ、機能も手軽さも文句ないし
ただちょっと飽きてきたとかそんな理由


744 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 21:50:51 ]
あーしいて言うなら処理速度だな
あと、ゲームを作る用に作った言語ってのも
まだ、完成してないし詳しく知らんwスマソ

745 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 04:30:52 ]
>>739
どうなんだろねー。delegate はあまり凝ったことできないし、ユーザデータかテーブルでしか
使えないので別の方法だろうとは思う。

思いついた方法その1 メタメソッドを使ってプロトタイプもどきを実装

・「クラス名」は文字列で保持しておく
・_get/_set のメタメソッドを使って、「クラスのメソッドテーブル」を毎回「クラス名」を使って
 引いてきてメソッドはそこから引き出して使うようにする
・「クラスのメソッドテーブル」の中身を書き換えると、同種のオブジェクトのメソッドを一斉にさしかえたことになる

思いついた方法その2 弱参照でインスタンスを全部おぼえておく

・クラスはメソッドを別のテーブルとして持つ(クラスは一度インスタンス化すると書き換えできないため)
・コンストラクタでそのメソッドテーブルの内容をインスタンスに自力でコピーする
・クラスはインスタンスリストも持つ。コンストラクタでインスタンスの弱参照をリストに追加する
・メソッドを書き換えるときは、新規オブジェクト用にメソッドテーブルの中身を置き換えると同時に、
 インスタンスリストに登録されてる全インスタンスの該当メソッドも置き換えてしまう
・インスタンスリストは適当なタイミングで掃除

こんなとこじゃないかなー


746 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 08:54:06 ]
>>706
Luaがユーザー多くなった→情報を増える→ユーザー増える→(以下繰り返し)

日本でユーザー増やすなら、>>708みたいな実績増やして、
スクエニが導入の手引きみたいなリソースを公開してくれたら
祭りになるかもしれんが(公開は)多分ない

やっぱり情報を一杯出さないとな



747 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 09:39:42 ]
Squirrelを動的リロードできるようにソース改造したとか。
zlib/libpngライセンスだから問題ないだろうし。
他のスクリプトのShiftJIS対応版みたいな感じで。

748 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 09:49:42 ]
Squirrelの動的リロードは、ソースファイルを読み直すだけでそのままできるんだが?
ファーストクラスオブジェクトというのはそういうものだ。
シリアライズ・デシリアライズ機構を用意するだけ。

749 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 09:50:54 ]
      nn
  _ γ・ ̄\
 γΞミvヽ _r・
 ( r-、i (゚Д゚)
  ヽノ (ノ ミ)  ミ Squirrel!!
  ヾ_(つノノつ

750 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 10:38:57 ]
>>748
「ソースファイルを読み直すだけ」じゃないじゃん



751 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 14:43:12 ]
BSDやMIT等の重要な部分に記載しろというのが嫌い
でもzlib系は書かなくてもいいのに記載します
なのでSquirrel使い

752 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 14:57:07 ]
>ソフトウェアのすべての複製または重要な部分に記載するものとします。
MITのこれって、全体もしくは部分的な複製に記載しろという意味じゃなかったっけ?

753 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 15:09:09 ]
>>750
シリアライズ機構を、インスタンスの再構築を行うソースファイルを生成するように設計すればいい。
フォーラムに例が挙がってる。

754 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 16:03:26 ]
Xtalはよさげなんだが食指が動かんな。何故だろう?個人がせっせとやってるからかなー。

2月24日の日記によるとよりC++らしい記法が出来るようになるみたいだが、
やっぱりC++チックな記法が世の中的には好まれるんだろうか?

755 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 16:06:48 ]
おそらくね。
endはメンドクサイんで嫌いだ

756 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 16:17:04 ]
元々xtalはC++ライクな軽量言語ってのをウリにしてるからな

757 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 17:32:44 ]
zlibライセンスでC++チックな記法といえばAngelScriptだな。
MITならCINTってのもあるが。

758 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 17:39:51 ]
ちょっとしたゲーム製作にSquirrelを使いたかったが、挫折した。
日曜プログラマには無理だった。
もっと勉強してからにします。

759 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 17:56:28 ]
Squirrel内の関数をCから呼び出すときに可変長引数で引き渡したいが、上手くいかないです。
bool CallSquirrelFunction(const TCHAR* pFuncName, ...)
{
SQInteger top = sq_gettop(m_vm);
sq_pushroottable(m_vm);
sq_pushstring(m_vm,pFuncName,-1);
if(SQ_SUCCEEDED(sq_get(m_vm,-2)))
{
sq_pushroottable(m_vm);
int nArgCount = 1;
//TODO ここに可変長引数でsq_pushしたい(integer,float,string)
sq_call(m_vm,nArgCount,false,false);
sq_settop(m_vm,top);
return true;
}
sq_settop(m_vm,top);
return false;
}
va_***系マクロ使えば行けるかなと思ったが、無理なのかな。
"%d%f%s"のような型指定リストを渡すのはスマートじゃないけど、これ以外に方法は無いのかな……。
あんまりSquirrelと関係なくてすいません。助言をください。

760 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 18:07:11 ]
>>759
わかってるんじゃん。Cは言語仕様的に引数の型情報を取得する手段がないので、
型指定情報をなんらかの形で渡すか、全部 Variant な型を使うようにするかのどちらかしか無理。

型指定は別に printf みたく文字列にする必然性はないよ。

func("funcName", TYPE_INT, a, TYPE_FLOAT, b, TYPE_STR, c, TYPE_END)

とかこんなかんじで順次型情報とあわせて渡すとかでいいんじゃね?




761 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 18:32:27 ]
>>760
すばやい返信ありがとうございます。うーん。Cの仕様上どうしようもないんですね。
型情報も合わせて引数に送ることで、対処しようと思います。
ありがとうござました。

762 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 21:07:44 ]
ま、そもそもC言語で今更、自前の可変長引数関数を
(ログ出力等以外の目的で)で整備する利点は薄いので、
正直に他の方法による実装を考えた方がいいと思うけどな。

763 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 21:28:52 ]
C++にしてboost::tupleとか使えばうまく書けるかもしれない

764 名前:デフォルトの名無しさん [2009/02/26(木) 09:55:45 ]
C++だと、boost::functionみたいに、

template<typename _tR,>sq_function0(HSQUIRRELVM &vm);
template<typename _tR,typename _t0> sq_function1(HSQUIRRELVM &vm,_t0 t0);
template<typename _tR,typename _t0,typename _t1> sq_function2(HSQUIRRELVM &vm,_t0 t0,_t1 t1);
template<typename _tR,typename _t0,typename _t1,typename _t2> sq_function3(HSQUIRRELVM &vm,_t0 t0,_t1 t1,_t2 t2);


といった感じで、引数の個数にあわせたtemplateファンクタを用意して、これらをsq_functionというtemplateに置き換える仕組み用意したらいいんじゃね?
そういう仕組みの具体的な実装はboost::function参照。

Squirrelじゃないけど、自分はこういうtemplate用意してスクリプト内の関数呼び出す仕組み用意した。
結構便利。

765 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 22:53:47 ]
Squirrel3.0の安定版っていつ出るのさ


766 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:02:24 ]
>>765
そもそも3.0というほどの変更箇所があるように見えないんだが、
ずっと黙って2.2.2-stableを使ってるな。

767 名前:デフォルトの名無しさん [2009/03/01(日) 18:51:08 ]
剰余の計算をするとエラーが出るのですが、どうしてでしょうか?

x = 10 y = 3
print("余りは" .. x % y .. "です")

これを実行すると、
stdin:1: `)' expected near `%'
と表示されてしまいます。

768 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 19:03:51 ]
何語で書いてるのか書け。まずはそれからだ。

769 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 19:08:52 ]
演算子の優先順位の問題じゃね?

770 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 19:21:57 ]
Lua5.1.4で再現無いことだけ確認したw



771 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 19:33:50 ]
Lua使ってないからしらんが、
括弧付ければ無問題だと予想

772 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:16:06 ]
>>767
使ってるLuaが5.0系(%演算子が無い)なんだろう。
5.1にするか、math.modを使うかしろ。
ただしmath.modと%演算子は、負数のときの挙動が違うので注意。

773 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 08:05:29 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


774 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 18:06:00 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  / <●> <●>|  /
  |    ( _●_)  ミ/ Lua?
 彡、   |∪|  /
/ __  ヽノ /
(___)   

775 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 21:35:40 ]
いいえKumaです。

776 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 22:31:36 ]
Luaってもしかして、++iとか--iとかない?

777 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 22:51:12 ]
忘れたけど、基本floatだからないんじゃないの?


778 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 23:16:53 ]
-- はコメントだしなあ

779 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:17:05 ]
>>777,778
ないのか、残念
レスありがとう

780 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 21:09:28 ]
i += 1 もないお



781 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 21:18:53 ]
//は何なの

782 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 01:20:44 ]
>>781
「**」がべき乗として使われる言語がたまにあるけど、
// はその除算版。
つまり、a // b = a ** -b = pow(a, -b)

783 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 08:14:31 ]
冪根ことか累乗根とかだっけ

784 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 14:01:59 ]
& と && の関係みたいなもんか

785 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 20:35:46 ]
全然違わないか? それ

786 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 21:46:34 ]
いや、=と==みたいなもんだろ

787 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:34:53 ]
*hoge と**hogeよりは違わないだろう

788 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 10:43:16 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


789 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:40:40 ]
Squirrelでルートテーブルに対しての、定数のバインドってどうやってやるか分かりますか?
sq_pushroottable(m_vm);
sq_pushstring(m_vm,"CONST_VALUE",-1);
sq_pushinteger(m_vm,255);
sq_newslot(m_vm,-3,true);
sq_pop(m_vm, 1);
これでもCONST_VALUE=255となりますが、定数ではなく変数(書き換え可能)なんですよね……。

スクリプト記述で言うところの、
const CONST_VALUE = 255;
となるよううなコーディングを実装したいです。
やっぱ、定数はコンパイル時決定だから無理なのかな?


790 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:56:03 ]
自己解決しました。
sq_pushconsttableとsq_setconsttableで上手くいきました。
仕様に目を通してないことが丸分かりで恥ずかしい……。

これでやっと
・定数・変数・クラスのバインド
・C++⇒Squirrel関数の呼び出し
・Squirrel⇒C++関数の呼び出し
まで完成しました。
あとは、デバッガと動的リロードだ。先が長いぞ。



791 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 10:35:48 ]
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >



792 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 13:37:15 ]
>>782
Lua だとそーいう演算子ないみたいだけど、それってどの言語で使えるの?
c++系統だとコメントだし、Python3.0とかだと余りを切り捨てる除算に使うしあんまり一般的じゃない気がする



793 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:20:20 ]
// でググってみれば?
俺はどうでもいいからやらないけど。

794 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:46:26 ]
>>793
あほか、ぐぐってみろw


795 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:59:28 ]
double slash operator

796 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 09:03:27 ]
組み込み言語Pawn
The Pawn language
www.compuphase.com/pawn/pawn.htm

Pythonバインディングあった。(組み込みにも使うPythonから使う利点は不明w)
craftware pypawn 1.05
hp.vector.co.jp/authors/VA012411/pypawn/doc/


797 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 09:04:01 ]
>>793-794
だめぽ。見つかりませんでした
// - Google 検索
www.google.com/search?hl=ja&safe=off&num=50&q=%2F%2F&btnG=%E6%A4%9C%E7%B4%A2&lr=


798 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 09:13:14 ]
LuaInterface 2.0.3
code.google.com/p/luainterface/
Luaから.NETの機能を使ったり、.NETな言語からLuaを利用したりできるやつ。

LuaInterface Debugger
code.google.com/p/luainterface-debugger/
ステップ実行とかできるLuaのデバッガ。非GUI

799 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 10:59:05 ]
>>798
これ何がやりたいのかわからん
Luaはネーティブなんだから、只のラッパーに徹するか、
既存のLuaでも使える、.NETをラップしたモジュールにしてくれれば良かったのに

自分はC++/CLIに馴染みが無いから、只のラッパーを自作する参考に
コードを読む程度の利用しかしてね

800 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 11:26:37 ]
は?



801 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 15:46:24 ]
ひ?

802 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:45:18 ]


803 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:54:28 ]


804 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:57:40 ]


805 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 22:01:58 ]
ハルビンの親戚か?

806 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 00:19:44 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


807 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 10:34:54 ]
ちょw

808 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 11:09:28 ]


809 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 13:16:17 ]
次スレはいらないな・・

810 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 16:32:12 ]
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >





811 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 11:37:16 ]
>>800-806
AVで本当にあって吹いた

TMA 涼宮ハヒルの憂鬱 レビュー | 丁dai Blog
tyodai.blog47.fc2.com/blog-entry-65.html


812 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 12:59:07 ]
そりゃ、あるから書いてるんだろう

813 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 20:05:17 ]
Luaを実装したプログラムのソースコードください。

814 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 20:12:32 ]
>>813
ttp://www.lua.org/ftp/

815 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 08:32:52 ]
乳揉みてぇ

816 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 01:43:27 ]
>>815
ttp://www.milknosato.com/enjoy/cowy.php

817 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 12:59:13 ]
LuaのテーブルをXMLに保存する
homepage3.nifty.com/akaho/program/lua/xml.html

見つけたので、貼っとく。

818 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 17:09:25 ]
じゃあ俺はSquirrelのテーブルをJSONに保存する

819 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 18:09:36 ]
YAMLじゃなくて?

820 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 06:14:06 ]
S式で



821 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 17:56:26 ]
根性です

822 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:38:00 ]
ttp://haxe.org/

NekoVM 用として使えば組み込み系もいけるかも?
でも Nekoランタイムは LGPLかー



823 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 17:56:07 ]
haxeでlua出せないかなぁ


824 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 15:37:52 ]
NekoVM LGPLが痛い

825 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 07:59:07 ]
他の言語処理系にコンパイルしてから使うという割り切った仕様が興味深いな。
同じような仕様のコンパイラは今まで何回か書いてきたが、
このようにたくさんのライブラリが公開されるというのはさすがオープンソースだな、と思う。

826 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 11:18:30 ]
>>824
L付きだからいいじゃん

827 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 12:11:16 ]
このスレ的にはかなり痛いだろw LだろうがGPL系は

828 名前:デフォルトの名無しさん mailto:sageee [2009/03/29(日) 12:16:15 ]
LGPLならライセンスは問題せずに
目的に合った方、実績のある方選ぶ。
GPLは社内ルール上駄目。

829 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 12:26:55 ]
PCで使うならLGPLで全然問題ないんだけどねぇ

830 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 12:36:49 ]
PCで使う・・・?



831 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 12:46:02 ]
趣味のプログラマーでも、実装の下手さの為に
バックドア的な穴を開けたようなソースを公開したくないな

ライブラリに変更を要する時に格好いい理由とかないだろ

832 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 13:26:55 ]
PCでもLGPLは面倒

833 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 13:33:57 ]
>>831
LGPLなら公開しなくていいじゃん

834 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 15:12:21 ]
>>831は公開しなきゃいけない場合、ライブラリその物を変更した時の話だよ

835 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 15:15:22 ]
修正BSDとかMITならなあ・・・・

836 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 15:21:39 ]
>>834
うまくライブラリと分離すりゃいいだけでしょ?

837 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 15:44:09 ]
自分のプログラムと静的リンクした場合は、全体を公開しないといけない。
wikipediaを読めば大雑把だが把握できる。

838 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 17:19:27 ]
会話も危うい奴が自分は何でも出来る様な事を書くとか


春だな

839 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 17:20:22 ]
LGPLだとパッカー系(アーカイブ形式で配布するタイプ)、コンシューマ系が封じられるんだよな。
結構痛い。

840 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 17:25:45 ]
>>839
パッカー系ってzipやlzh?それともexe?



841 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 20:30:38 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ○   ○ |  /
  |    ( _●_)  ミ/ <……
 彡、   |∪|  /
/ __  ヽノ /
(___)   

842 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 20:33:48 ]
zip同梱でソース開示義務が及ぶなんて聞いたことないな。

843 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 07:38:40 ]
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >



844 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 09:25:06 ]
俺もGPLもLGPLも敬遠してるわ。LGPLは839の理由で。

845 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 09:33:45 ]
だからなんで?
同梱するだけのものにはソース開示は及ばないのに。

846 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 09:37:51 ]
LGPLライセンスで配布されたライブラリAについて、

* ライブラリAにリンクしたプログラムBを配布する場合、Bのライセンスにリバースエンジニアリングを禁止する条項を含めてはならない。(LGPLv2-6、LGPLv3-4)
* ライブラリAに静的リンクしたプログラムBを配布する場合、Bのソースコードまたはオブジェクトコードの配布を拒否してはならない。(LGPLv2-6a、LGPLv3-4d0)
* ライブラリAを改変して作成されたライブラリA'を配布する場合、A'のライセンスはLGPLまたはGPLである必要がある。



847 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 13:43:43 ]
Lがついてようとやっぱり汚染は免れないんだな

848 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 20:01:34 ]
ほんとGPLはゴミだな

849 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 20:16:53 ]
ようは静的リンク=直接実行できるexeにしなけりゃいいっとこか。
じゃあパッカー系は大丈夫だな。ほっとした。
.jarも.airも影響受けず大丈夫なのね…

850 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 20:18:09 ]
exeでも、rubyscript2exeとか中身は実質パッカー系だから大丈夫だよな?




851 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 20:22:32 ]
俺なら黒に近いグレーと判断する>>850

要するに「入手した人がライブラリだけさしかえて再構築できるか」
がライセンスの想定なので、一般的にばらす手段が認知されて
ないようなものは基本的にダメだと思う

852 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 20:26:10 ]
そうしたら、.jar .airはバラせるからOKで、rubyscript2exeは駄目ぽだな

853 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 21:34:29 ]
>* ライブラリAにリンクしたプログラムBを配布する場合、Bのライセンスにリバースエンジニアリングを禁止する条項を含めてはならない。(LGPLv2-6、LGPLv3-4)
コンシューマだとサードパーティライセンスの関係でこれをクリアできないってことか


854 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 23:48:29 ]
ライセンスネタは大抵荒れてスレを浪費してしまうからそろそろ次スレの話も。

>4はXtal以外全く話がないからXtal関係を>3に移して4を削除してよくね?

このスレでは幸いにして問題にならなかったけど>10-12も配慮お願い。

関連スレの中で移行済のもの。 LLスレは流れが速いからスレ立て時に確認お願い。

「コンパイラ・スクリプトエンジン」相談室13
pc12.2ch.net/test/read.cgi/tech/1233143342/

855 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 07:20:26 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


856 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 08:35:50 ]
         \   l´⌒\⌒\ \\ \
           \ ヽ   )  )   \\ \\   
              (   \ \∩___∩ \\ 
           \   \  ⌒⌒| ノ      ヽ  \\      
              \ \   /  ●   ● ト、\ \\\ 
               \  Y |    ( _●_)  ミ\  \\\  
               \ / 彡、_  |∪| ノ   \  \\\
                 (____)―ヽノ' ヽ      ̄ ̄ ヽ\\
                                \,  j  l l .l }
                         Lua!   l (_ノノノノ



857 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 08:41:41 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Luaまピョーん☆
 彡、   |∪|  /
/ __  ヽノ /
(___)   


858 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:22:42 ]
IGDA Japan chapter - ニュース
www.igda.jp/modules/news/article.php?storyid=1622
13:10 - 14:00
「ごく簡単な並列処理スクリプトシステムの設計と実装」
□講師
小久保啓三(HAL東京)
(株)スクウェアでの代表作「ロマンシング・サガ」「FF5」「クロノトリガー」「FF7」。クロノトリガーとFF7では、スクリプトシステムの設計と実装に携わる。

14:00 - 14:50
「『サクラ大戦X』でのスクリプト運用事例」
□講師
秋葉晴樹(セガ)
株式会社セガ 第三CS研究開発部 リードプログラマ。
代表作は、サクラ大戦シリーズ、のび太の新魔界大冒険、ブレイザードライブ。
サクラ大戦シリーズは3から参加、主にADVパートのプログラムを担当。

15:20 - 16:10
「汎用スクリプト言語Xtal 設計と実装」
□講師
石橋立宣(バンダイナムコゲームス)
NBGI プログラマ。
PSP塊魂のエンディングミニゲームやシステム周り担当。
PSP太鼓のADV部分やシステム周り担当。
趣味で、C++組み込み用スクリプト「Xtal」を開発。

16:10 - 17:00
「Squirrelスクリプトを使った実装と活用」
□講師
神尾隆司(スクウェア・エニックス)
Wiiウェア 小さな王様と約束の国 ファイナルファンタジー・クリスタルクロニクル の開発に関わる。
北出智(スクウェア・エニックス)
PS2 聖剣伝説4、Wiiウェア 小さな王様と約束の国 ファイナルファンタジー・クリスタルクロニクル 等の開発に関わる。

859 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:13:42 ]
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ



860 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 17:16:30 ]
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Luaまピョーん☆
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ





861 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 20:33:21 ]
そうか。Xtalの作者は現役のゲームプログラマだったのか。
仕様、ソースのできもなかなかいいし、
今後日本ではやって行く可能性もあるなぁ……。

862 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 20:40:29 ]
schemeが流行るよりは可能性高いと思う

863 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 20:47:29 ]
誰が流行らすのかという問題がな……。
LuaとSquirrelの2強を打破してくれることを祈る。

864 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 21:05:22 ]
>>851
> 要するに「入手した人がライブラリだけさしかえて再構築できるか」
> がライセンスの想定なので、

都合のいい風に読み替えるなよw


865 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 21:12:56 ]
>>863
Squirrelは2強というほど普及もしてないぞ。

いろいろ話聞いた感じでは、Luaが圧倒的に強くてPAWN、Squirrel、StacklessPythonがポストLuaな感じ。
XtalやCRIScriptはまだ産声あげたぐらいだしなぁ・・・もう数年必要かな。

866 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 22:24:28 ]
Xtalタンには頑張って欲しいね
俺では有効活用できないんだけどね…

867 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 23:41:09 ]
>>864
どのへんが間違えてるか解説きぼん
ソース公開 / リンク用OBJの公開 / ダイナミックリンク から選べる、
ってのは平たくいえばそういうことだという認識なんだが。


868 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 23:51:54 ]
>>865
スレ違い。

『GPL/LGPL等ライセンスとゲーム製作_2』
pc11.2ch.net/test/read.cgi/gamedev/1036512390/

869 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 23:53:27 ]
865 -> 867 ね。スマン。

870 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 17:58:59 ]
LuaInterfaceって使っている人あまりいないのかな?



871 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 18:33:33 ]
これから使おうと調べてるところだ

872 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 09:40:18 ]
SexlessPythonのゲームの組み込み向け解説ってどこかにない?

873 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 09:41:46 ]
ごめん、オナ禁してたから間違えた Stackless Pythonね

874 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 12:40:48 ]
ちょセックスレスってw


875 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 12:46:55 ]
>>873
GameDeveloperの2009年2月号にちょっと特集されてるよ

876 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 16:31:11 ]
>>875
おお、これか。ちょっくら読んでみるぜ

> Snakes on a Seamless Living World
> By David Hawes
> As a scripting language, Stackless Python is meant to serve the needs of
> multi-threaded environments, namely each of the current gen home consoles
> and PCs. Here, author David Hawes details how to get the language working
> in-engine on consoles.

Game Developer Magazine
www.gdmag.com/archive/feb09.htm


877 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 18:18:08 ]
         \   l´⌒\⌒\ \\ \
           \ ヽ   )  )   \\ \\   
              (   \ \∩___∩ \\ 
           \   \  ⌒⌒| ノ      ヽ  \\      
              \ \   /  ●   ● ト、\ \\\ 
               \  Y |    ( _●_)  ミ\  \\\  
               \ / 彡、_  |∪| ノ   \  \\\
                 (____)―ヽノ' ヽ      ̄ ̄ ヽ\\
                                \,  j  l l .l }
                         Lua!   l (_ノノノノ



878 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 18:29:28 ]
OBAMA思ったより強気だw

879 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 18:30:50 ]
すまん誤爆した

880 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 14:34:48 ]
SIG-GTでのCriScriptの講演資料(2009年1月17日)がおいてあった
www.cri-mw.co.jp/event/2009/sig-gt-12.html



881 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 09:21:56 ]
>>865
俺の大好きなAngelScriptはダメですかそうですか。

882 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 10:22:16 ]
これってgta4のアレ?

883 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 16:04:28 ]
>>881
いや、悪くはないと思うよ。
ただ情報が本当に少ないので、布教も兼ねてCEDECとかもっと小さいセミナーでもなんでも講演してくれる人がいると、
使い手も増える思うんだよなぁ・・・
そういった草の根的な活動を担ってくれる人がいないと組み込みスクリプトはなかなか盛り上がらないと思う。

884 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 01:46:45 ]
Xtalは作ってる人が飽きてきてるかんじなんだよな



885 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 07:42:04 ]
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >



886 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 14:22:19 ]
RubyとかJavaじゃないけど、10年は開発続ける気じゃないと広まらないよ。
Luaは言語仕様がどうとか言われているけど、よく続けたナーって幹事。

887 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 05:31:36 ]
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ



888 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 07:48:17 ]
>>886
たしかに言語ってだいたい10年ぐらいしてから普及しはじめるからなー
javaもいじってた頃はまだまだ普及しそうになかったし

889 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 09:56:11 ]
Javaは登場当初から流行る雰囲気に満ち満ちてましたよ。

890 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 10:01:26 ]
Javaは、その当時使ってた環境がSolarisかWindowsかLinuxかで、
印象がだいぶ違うと思う。



891 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 10:54:49 ]
それは関係ないんじゃないかな。

892 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 11:05:46 ]
当時使ってた環境が98か286かで、印象がだいぶ違うと思う

893 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 11:07:58 ]
Javaはアップレットをプッシュしていた頃は正直ただのオモチャに見えたな
が、流行るのに10年はかかってないっしょ

894 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 11:17:15 ]
あの薄い灰色の背景がなんかダサかった

895 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 11:55:55 ]
昔はオモチャに見えたといえばJavaScriptの方だろ。

896 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 13:54:14 ]
Windowsだったからか、JavaもFlashもwebで重いサイトに使われているくらいにしか思ってなくて
(WindowsでJava=Java appletの時代w)
こんなの流行るわけないだろ!と思ってたら、このありさまだよ!

まあ、Windowsでは今でもJavaは、金融関係(証券会社とかトレード関係とか)しかみない気がするけどさ


897 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 21:49:47 ]
昔:Javaって(動作が)重いよな
今:Javaって(言語仕様が)重いよな

898 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 22:02:59 ]
言語仕様はそんなに膨れてないだろ。

もしかしてGenericsに挫折しちゃった人?

899 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 22:44:23 ]
>>896
どんだけ見る目ないんだw

900 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 16:29:46 ]
Java Applicationは携帯ゲームで花開いたな。今は使い物にならないJavaFXもそのうち化けるかな?



901 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 02:30:32 ]
どちらかっちゅうと、考えるべきはAIRやAndroidじゃね?
まあ、そろそろスレ違いかもしれんが。

902 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 06:25:14 ]
翻訳 - Python製のソーシャルブックマークエンジンRedditはなぜLispをやめてPythonを使うようになったのか ? TRIVIAL TECHNOLOGIES 2.0
coreblog.org/ats/japanese-translation-why-reddit-uses-python

> Pythonを使い続ける最も大きな理由... そうだなあ,大きな理由が2つあるよ。
> ひとつめの理由はライブラリ。Pythonには全部のライブラリがそろっている。
> 僕たちは開発を進めてきた課程で,たくさんの技術や,たくさんのアーキテクチャを学んできた。
> たとえば,僕がコネクションプールについて理解していなかったとしても,
> 僕はただ単にライブラリを探してきて使うことができる。それからコネクションプールについて理解して,
> 自分たちでライブラリを書けばいい。Webフレームワークについても理解する必要はない。
> 自分たちのフレームワークを作る時が来るまで,他の人が作ったフレームワークを使うだけだ。
> その他の多くの技術を使う前に学ぶ必要はないんだ。
> だってPythonにはほとんど全ての種類のライブラリが備わっているのだから。
> これからも,僕たちはもっと多くの技術を学び続ける。
> そして自分たちの手でライブラリを作る。技術を自分たち流に変えるためにね。
> このような手法を使うことで,自分流に変換する作業をとってもとっても簡単にすることができるんだ。
>
>
> もうひとつ,僕たちをPythonにつなぎ止めておく理由は,これは最も大きな理由なんだけど,
> Pythonのコードが読みやすく書きやすい,ということなんだ。
> たとえば僕たちが新しい技術者を雇うとき。Pythonが書ける技術者を雇うことはまずないわけだけど。
> 僕はただ「ぜんぶPythonで書いてね」と言うだけだ。
> そう言うだけで,彼らの書いたコードを僕は読むことができる。
> これはすごいことなんだけど,僕は部屋越しにコードが良いか悪いかを見分けることができるんだ。
> というのは,良質なPythonのコードはとても明確な構造を持っているから。
> これが僕の仕事をより楽にしてくれるんだ。Pythonのコードはとんでもなく表情豊かで,
> とんでもなく読みやすく,そしてとんでもなく書きやすい。
> だから僕は仕事をスムーズに運べるというわけさ。

903 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 06:46:47 ]
便利なツールとしてのスクリプト・・・あるいはWeb用スクリプトとして言語を選択するのと、
組み込み用スクリプトとして言語を選択するのは視点が若干違うと思うな。

もちろん、手馴れた言語でスクリプトが記述できるのであれば大きなプラスポイントだとは思うけど、
実行速度やメモリ使用量、組み込みやすさ、本体とのやりとりの容易さ、デバッガetc...
と単独で実行するときとは事情がけっこう変わってくるので、そのスクリプト言語の仕様が素晴らしいからといって、
採用するかどうかは考えどころだったりするね。

904 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 07:26:48 ]
Squirrelで基本的な部分に詰まっちゃて、知ってる人いたら教えてもらえませんか?
C言語と同じようにnut側にmain関数を書いておいて、それを呼び出すようにしたいんですが

if(SQ_SUCCEEDED(sqstd_loadfile(v,filename,SQTrue))) {
 SQInteger top = sq_gettop(v);
 sq_pushroottable(v);
 sq_pushstring(v, _SC("main"), -1);
 if(SQ_SUCCEEDED(sq_get(v, -2))){
  sq_call(v, 1, SQFalse, SQTrue);
  sq_settop(v, top);
 }
}

と書いたんですが、sq_getで失敗してしまいます。
printなどの組み込み関数だと成功するんですが・・。
nut側は
function main()
{
}

しか書いてないんですが、nut側の書き方が悪いんでしょうかね?

905 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 08:20:55 ]
> そして自分たちの手でライブラリを作る。技術を自分たち流に変えるためにね。

906 名前:902 mailto:sage [2009/04/12(日) 08:59:48 ]
誤爆・・・・まじスマソ

907 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 09:27:52 ]
ここはクマスレじゃないぞ

908 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 10:55:13 ]
>>902
キニスルナ

プログラム作るのに何の言語を使うかは絶対的なものではなく相対的なものでしかないわけで、
日ごろ使わない他の言語の良さを語ってくれるテキストは参考になる。
それが実績のある開発者の言葉ならなおさらのことだ。

909 名前:902 mailto:sage [2009/04/12(日) 10:57:22 ]
Pythonは組み込み言語につかわれているし、趣旨の1つにライブラリたくさんある言語いいよねー
って話だから、あながちネタフリとしてはスレ違いでもないかw

910 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 13:08:55 ]
>>904
sqstd_loadfile はスクリプトをロードしてスタックの先頭にのせるだけ。
その中身の function main() を登録するにはまずそれ自体を sq_call する必要がある。

sqstd_dofile にすれば思い通り動くと思われ。



911 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 14:30:01 ]
まあ、同封されたSquirrelインタプリタの挙動を真似することからはじめることだな。

912 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 15:09:46 ]
>組み込みやすさ、本体とのやりとりの容易さ
この2点に関してはAngelScriptが一番だと思うんだがどうだろう。

913 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 15:13:08 ]
COM用のスマートポインタがそのまま使えたのにはびっくりした

914 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 15:25:51 ]
>>912
C/C++とイディオム的に同じことしかできないんじゃなぁ。
無名クロージャーとかコルーチンとかのサポートはあるんだろうか。

915 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 15:33:59 ]
>>914
コルーチンは言語的にはサポートされておらず、C++側でそれのための仕組み作ってやらないとダメ。
簡単にできるけど。

916 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 17:10:01 ]
じゃあ駄目じゃん

917 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 23:38:07 ]
本屋で「はじめてのLuaプログラミング」って本見かけたんだけど、全然話題になってないね。
もしかして地雷?


918 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 23:48:15 ]
ところで914の言うコルーチンは、Luaでいうところの、
・スクリプト側でcoroutine.createで作るやつ
・C++側でlua_yield呼び出して止めるやつ
のどっち指してるんだろう。


919 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 23:48:25 ]
スクリプト言語による効率的なんたらの方を買って読んだ。
そっちの薄いのは言語仕様を書いてあったな。入門用っぽかった。地雷ではないだろう。

920 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 01:55:58 ]
個人的には、
・はじめてのLuaプログラミング は地雷
・入門Luaプログラミング は良書
・スクリプト言語による、効率的ゲーム開発C/C++へのLua組み込み実践 は
 地雷ともまでは行かないが、そう受け取れる。
 パン食い競争でぶら下げられてるフランスパンって感じ。
 一部の実装の例に一貫性がない。しかも大事なところ。
 ゲーム作りを謳ってるのに、徐々に作りながらじゃないくて、
 「こういう時は、こんな感じでいいでしょう」みたいに書かれていて、
 実際に積み重ねてく訳じゃないから使いたい時に使えない。
 自分で考えて実装しろって事なんだろうけど、全体的に動かないもの見せられてる感は個人的には困り所。
 だけど、Cへ実装の例に関しては一番詳しいのも事実。
 入門Luaプログラミングと合わせて使うといい感じに分からない所同士を補ってくれたりするような関係。



921 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 03:58:47 ]
>>920
>スクリプト言語による
そっかなー。動作するゲームのソースコードは入手できるわけだし。
コラムなんかを見てもなかなか参考になることが書いてあるように思える。
動くか動かないかはソースコードを読めばいいわけで、必ずしも本で全体を解説する必要はないんじゃないかしら。
別に作者の回し者ではないが、一通り目を通したものとして。


922 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 07:44:16 ]
ちと質問
Luaってgotoある?
スコープ違うとwhileやifで逃げるのは面倒なんだよな〜

>スクリプト言語による
これの不満点はLuaで全部やる必要ないじゃんというところ

toluaはクラスのポインタを渡してやってLua側で制御するために使ってて
管理そのものはC側でやった方がいろいろと楽だと思うんだよね
俺は一部のメンバ関数をLuaで書き換えるみたいな使い方してる

923 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 09:20:20 ]
調べてすぐに分かることは、人に聞くほうが時間の無駄だと思うんだが。

924 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 23:21:45 ]
スルー推奨

925 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 11:36:10 ]
Squirrel on Flash Player

ttp://ruriko.denpa.org/200904b.html#2001

926 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 06:04:10 ]
>>925
Adobe AlchemyでSquirrelがFlash上でうごくのかー。すげえw

927 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 02:45:52 ]
ちょっと詳しい人教えて欲しいんだけど
Luaを組み込んだコンシューマゲームの製作の際に、
Luaのライセンス(MIT License)ってどういう風に処理したらいいのかな?

ソースのどっかにライセンス表記するのでいいのか、
それとも取説とかに明記する必要がある?

928 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 02:54:01 ]
>>927
ソースだけじゃダメ。取説の類に記載が必要。っていうかライセンス嫁。

929 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 06:52:41 ]
>>928
    ∧__∧
    (´・ω・)   いやどす
    ハ∨/^ヽ
   ノ::[三ノ :.、
   i)、_;|*く;  ノ
     |!: ::.".T~
     ハ、___|
"""~""""""~"""~"""~"


930 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 08:48:53 ]
>>928
ありがとう
調べはしたんだけど、ヘッダにでも書いときゃOKとか
言ってるサイトもあって混乱してたわ



931 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 08:54:16 ]
>>930
それはソース配布の場合の条件

バイナリ配布時は取説か、あるいは実行ファイルそのものでユーザが参照できる状態にしておく必要がある。


932 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 10:40:36 ]
バイナリを入手したユーザーが参照できるってのがポイントだよな
ユーザーが見られるなら、CD内にreadme.txtでも置いてインストーラーでリンクはっておけばいいのかも試練が、
家庭用なら誰も見ないし(or 見れないし)、鳥説が自然でしょう

933 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 10:41:42 ]
と書いて、思ったけど、中古だとどうなるん?
あとダウンロード販売は。

・中古は無視
・ダウンロード販売は、ゲーム内クレジットをつくってそこに記述
って感じでしょうか

934 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 20:19:56 ]
Xtalがもうすぐ1.0か

935 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 22:22:00 ]
洋ゲーとかでタイトルロゴの下にいっぱいコピーライトが羅列してあるじゃん
あれみたいにしたら

936 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 22:47:51 ]
洋ゲー風にするなら、クレジット表示をメニューの中に入れてしまう手もあるな。
選択するとスタッフロールとかが流れるようにしておく。

937 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 23:11:47 ]
へーそれいいね

938 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 03:14:16 ]
それって、取説に載せずにゲーム中に表示してしまうってこと?
そんなんでもいいのか

939 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 12:14:35 ]
ゲーム起動時のデモで、Luaのサイトにある、青い丸に「Lua」って書かれた画像を出すのはOKなんだろうか。

940 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 12:27:51 ]
ライセンスのページには必須じゃないけどいれてくれるとうれしいな的なかんじでかかれてるね>ロゴ



941 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 17:08:17 ]
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >



942 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 11:17:04 ]
今組み込み言語を制作中で、Cから言語へのインターフェイスを考えてるところなんだけど、
どういうのがいいのか悩んでる。
二つ案があって、ひとつはLuaと同じくスタックを介する方法。
もうひとつは、オブジェクトハンドルを経由してアクセスする方法で、

Handle globalhash, funcobj, symbol;
globalhash = getglobal( state );
symbol = intern( state, "globalfunc" );
funcobj = getfield( globalhash, symbol );

arg_pushinteger( funcobj, 10 );
call( funcobj );

handle_drop( funcobj );
handle_drop( symbol );
handle_drop( globalhash );

という感じになる。ちょっと長いけど、グローバルハッシュから特定シンボ
ルの値を得るというのはありそうな処理なので、実際には専用のAPIを用意する。
ただこちらのほうはスタックに比べて、
・ハンドル開放処理を忘れるとメモリリーク
・遅い
という問題がある。

前者はスタック操作でも同じ(スタックトップを戻し忘れるのがそれにあたる)だけど、
後者は頻繁に行う処理な分、結構致命的。

ただ後者の方法のほうがスタックの状態を覚えなくてよい分、直感的といえば直感的
なんだよな。
両方用意したほうがいいかな?


943 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 11:31:29 ]
とおもったけど関数呼び出しをハンドルに対して行うのは非常に無駄が多いな…
やっぱりスタック操作かOTL

944 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 22:13:00 ]
ごめん、何がいいたいかサッパリだわw

自前で実装するんだった、luabindとかxtalみたいにバインダがあると直感的で楽だと思うけど。
C++じゃなくて純粋なC言語でインターフェース作りたいの?

945 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 22:47:39 ]
>>942
LuaではluaL_refとluaL_unrefでハンドルを使えるよ

946 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 14:25:22 ]
>>945
ああ、そういやそうだった。やっぱり両方用意するのが得策か。
Pythonではハンドルしか扱えないようだったから、どうかなーと思ったんだけど。
ありがd

947 名前:デフォルトの名無しさん [2009/05/06(水) 17:02:58 ]
Luaって非OOの動的型付言語ですけど、
AWKやBASICと何が違うんですか?

なんか、単なる先祖帰りのような・・・

Cとの連携が楽とか、
そういう違いは分かるんですけど。
AWKやBASICを拡張しただけでも代わり映えしないんじゃないですか?

948 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 17:11:36 ]
>>947
ttp://www.lua.org/about.html

ここに全部書いてあるから読んでこい。納得しなければそれはそれで

949 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 21:01:08 ]
>>947
>Luaって非OOの動的型付言語ですけど、
Luaはオブジェクト指向言語として十分な機能は備えてる。

言語のパワーなんて口で説明するよりも実際に触ったほうが理解がはやいと思う。
もし触った上での疑問なら、もうちょっと詳細に違和感を説明したほうがいいんじゃないかな。

自分がLuaを使ってるのは単純明快、

Luaでドメインを書くコスト+C++でその他を書くコスト < C++ですべて書くコスト

という不等式が(自分の場合)成り立つから。
お前さんもAWKやBASICがC++より生産性が高いと思ってて、かつそれが組み込み可能
ならば、それを使えばいいんじゃないの?

950 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 23:26:00 ]
|Д゚)ジー
|Д゚)ノ<AngelScriptもよろしく!
|ミサッ



951 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 23:46:11 ]
単なる先祖返りなわけないだろ

ちゃんと計算されてる。アングルとか

952 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 00:47:42 ]
最近、Squirrelはポロポロと新しいバインダが出回るな。

953 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 01:49:18 ]
>>952
そうなん?みてみたいからポインタよろ

954 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 02:11:32 ]
>>953
事件は2ちゃんねるで起こってるんじゃない。公式フォーラムで起こってるんだ!

955 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 03:14:51 ]
ttp://squirrel-lang.org/forums/thread/3198.aspx

これか。コードが整理されてて sqplus よりはるかにわかりやすいですな
getter/setter の実装がちょっとトリッキーなのが要注意なかんじ。

956 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 03:17:58 ]
ttp://squirrel-lang.org/forums/thread/3129.aspx

すぐ下にもう一つあった^^; なるほどぽろぽろだな

957 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 23:57:59 ]
scratイイ!luaから乗り換えようかな

958 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 09:14:24 ]

           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


959 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 12:32:10 ]
lua_tointeger の unsgined int バージョンが欲しいんだけど、
strtoul(lua_tostring(L, -1), NULL, 0) みたいにするしかないの?

960 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 12:36:11 ]
(unsigned int)lua_tonumber(L,-1) じゃだめなん?




961 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 17:20:34 ]
C/C++とバインドするときの話なら別の論となるが、
スクリプト上のプログラミングならunsigned整数など考えないで済むコードを書いた方が楽だぞ。

962 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 21:01:47 ]
色コードが書いてあるテキストファイルを読み込みたいんだけど、
"0xAARRGGBB" の形式で書いてあるから lua_tointeger だと読めないんだよね

そうか lua_tonumber は double だから 32ビット符号なしでもちゃんと変換できるのかな?
試してみます

963 名前:962 mailto:sage [2009/05/20(水) 21:34:17 ]
テキストファイルというか lua でかいた設定ファイルという感じね


964 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 07:26:38 ]
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ



965 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 07:42:45 ]
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Luaまピョーん☆
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ


966 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 13:39:45 ]
Luaのコメントが//か#だったら最高だったんだが...
-- だと構文ハイライトされないエディタで見たときにコードに埋もれてよく見えん。

967 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 14:21:38 ]
そういう人は squirrel にうつると精神衛生的には楽になるよ!

968 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 15:29:42 ]
Luaの向上心のなさは最低レベルだから
宗教論争の火種になりそうな「改良」は、いくら提案してもむだだと思う。

969 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 22:07:43 ]
-- は伝統的な構文だからもっと賢いエディタを使えばよろし

970 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 23:01:14 ]
>>968
向上心のなさ、というか後方互換性が最大限に考慮されている気がする。
だから、商用プロダクトにも安心して採用できるんだろうけど。

最近、web周りでRubyとかRailsとかも使っているんだが
バージョン上がると全然違う挙動とか、書き方換わったりするのがザラだったりするんだが、これが結構キツイ
書籍が出ても、すぐ陳腐化しちゃったり…書籍の日本語訳が出たころには、次のかなり変わったバージョンがなんて
(Ruby 1.8はいいんだけど、Railsは本当にヒドイw
しかも次期バージョンで他のフレームワークと統合されるのが決定しててちょオマ…)



971 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 23:49:52 ]
//でコメントか。
AngelScriptの出番だな!

972 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 23:57:55 ]
いやさ、エディタにあわせてライブラリ諸々変更なんて
誰も本気で言わないから

973 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 00:29:20 ]
つーかそんな程度もカスタマイズできないエディタを持っていることと
そんな程度も我慢できない根性でLuaを選んだ自分の浅はかさを呪うがいい

974 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 09:56:26 ]
我慢しないで、カスタマイズができる「普通の」テキストエディタを使ってください

975 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 12:52:22 ]
自分は普通にエディタ使うけど、客が使ってくれるとは限らないじゃない。
メモ帳で開けないから、設定ファイルの拡張子は xml じゃなくて txt にしてくれと言われたのに。

976 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 12:58:22 ]
メモ帳で開くような設定ファイルを XML にする時点で仕様バグといってもいい。まじで。

977 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 13:02:46 ]
それは拡張子xmlをメモ帳に関連付けるだけで良かったんじゃないか

978 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 13:33:11 ]
細かく設定したいから、可能な限り設定項目多くしてくれといわれたので、
ini形式よりもxmlのほうが楽だったんだよね。

メモ帳に関連付けるだけで終わりだし、そもそもxmlエディタいれればそれで終わりなのに。

979 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 14:35:22 ]
xmlなんかは1行目に文字コードセットが定義されているから、
下手にメモ帳で開いて保存すると、文字コード変わっちゃうしメンドクサイことになりますよね
あと、xmlはMSからエディタ出てるけど微妙に使いづらいのが難点

個人的に、スクリプト言語で使うオススメの設定フォーマットはJSONだと思う

980 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 14:37:08 ]
素人さんにさわらせる場合は CSV 以上のものは使っちゃダメだってのが経験則



981 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 14:41:20 ]
>>980
同感ですな
xmlは素人には無理
フォーマット決めうちなtxtか、ini程度でokな気がする

982 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 16:29:30 ]
質問。
C からlua の関数を呼ぶ -> 呼ばれた関数は、lua 内の別の関数 A そのものを返す -> C 側でそれを保持して、必要なときに A を呼びだす

てことをやりたいんだけど、どうすればいいですか?
lua の関数オブジェクトやみたいなのをスタックから取得する関数が見当たらないのですが。

lua_getglobal(L, "getfunc");
lua_call(L, 0, 1);
myfunc = スタック[-1]からlua関数を取得

... しばらくたってから ...

myfunc をスタックにpush
lua_call(...)

ということがやりたいです。



983 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 17:09:08 ]
>>982
Lua はオブジェクトを直接C側で参照する機構を持たない。よって単純には出来ない。

一般的には luaL_ref を使ってオブジェクトのリファレンス(絶対重ならないint値)をとって、
それをつかってレジストリテーブルにつっこんでおいて、必要になったらそのリファレンスを
つかってレジストリテーブルから引っ張り出してくる、という手法がとられる。

そんなややこしいのはいやじゃって人は、リファレンスを C側で保持できる squirrel オススメ

984 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 17:58:18 ]
いまのプロジェクトにはC縛りがあるのでC++なsqurrelはダメなんです。
luaL_ref が一番素直そうなのでそれでやってみます。どうもありがとう。

985 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 00:58:12 ]
SquirrelってC++だっけ?
bindは確かにC++だが、直叩きだったらCの範疇でいけたような・・・

986 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 01:07:48 ]
squirrel のソース自体は c++ だよ。
class でなくて struct なのは趣味かね。

ただ、インターフェース的には全部C合わせなので、普通にリンクして使える。
例外とかも全く使ってないから問題になるところはどこにもない。
プロジェクトが C縛りってのがいまどきだと意味不明だねぇ






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

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

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