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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
LuaやSquirrelやAngelScriptなどアプリケーションへの組み込み用途で
使われるプログラミング言語についてのスレッドです
まとめwiki(なにか質問する前に必ずみること!)
http://wikiwiki.jp/lua/

その他の参考URLは>2から

■前スレ
【Lua】組み込み系言語総合【Squirrel】
http://pc12.2ch.net/test/read.cgi/tech/1205208141/
【Lua】組み込み系言語総合 その2【Squirrel】
http://pc12.2ch.net/test/read.cgi/tech/1243210301/

■過去スレ
その3 http://pc11.2ch.net/test/read.cgi/tech/1160799232/
その2 http://pc8.2ch.net/test/read.cgi/tech/1063711237/
その1 http://pc5.2ch.net/tech/kako/1034/10341/1034182349.html
2デフォルトの名無しさん:2010/05/01(土) 01:04:34
■関連してるかもしれないスレ
Io Language
http://pc11.2ch.net/test/read.cgi/tech/1201100624/
2 part forth
http://pc11.2ch.net/test/read.cgi/tech/1073673931/
●●●●TCL/TKなら俺に聞け 2●●●●
http://pc11.2ch.net/test/read.cgi/tech/1177998764/
ECMAScript デス 3
http://pc11.2ch.net/test/read.cgi/tech/1190160481/
各種ライブラリ紹介スレ2(ゲ制作)
http://pc11.2ch.net/test/read.cgi/gamedev/1177886529/
【Perl,PHP】LLバトルロワイヤル5【Ruby,Python】
http://pc12.2ch.net/test/read.cgi/tech/1238720336/
「コンパイラ・スクリプトエンジン」相談室14
http://pc12.2ch.net/test/read.cgi/tech/1258431145/
Garbage Collection (GC)について語るスレ
http://pc11.2ch.net/test/read.cgi/tech/1141646850/
3デフォルトの名無しさん:2010/05/01(土) 01:05:17
4デフォルトの名無しさん:2010/05/01(土) 01:05:29
■よく分からないので前スレからコピペ

10 名前:デフォルトの名無しさん[sage] 投稿日:2008/03/11(火) 21:17:18
RubyもPythonも組込めるけどなあ。
Perlはさすがにやったことないが、できないこともないだろう。

11 名前:デフォルトの名無しさん[sage] 投稿日:2008/03/11(火) 22:39:02
RubyにしてもPythonにしても標準ライブラリや言語機能がでかすぎにみえる。
組込みに向いてるってのはコードサイズまたは外部への依存の少なさと
言語機能のバランスが取れてるって意味にではないのかと。


12 名前:デフォルトの名無しさん[sage] 投稿日:2008/03/12(水) 01:23:20
没になったテンプレ案には書いてあったけど、
そういう比較的大きな言語の組みこみの話も
多少は許容することが前スレで同意されていたはず。

でも一応Luaスレの続きだからその辺は空気読んでねと。

■没テンプレ
The Pawn language(だれも使ってなさそうな、組み込み言語)
ttp://www.compuphase.com/pawn/pawn.htm
NullLogic Embedded Scripting Language
ttp://sourceforge.net/projects/nesla/

※テンプレ以上※
5デフォルトの名無しさん:2010/05/01(土) 01:08:48
□elastiC
ttp://www.elasticworld.org/

□Lua as an Effect File Format for OpenGL
ttp://prideout.net/blog/?p=1
6デフォルトの名無しさん:2010/05/01(土) 10:30:46
>>1
7デフォルトの名無しさん:2010/05/04(火) 16:12:06
落ちてたから立てたけど需要無かったみたいだな。
8デフォルトの名無しさん:2010/05/04(火) 16:13:34
しかし、最近はSquirrel実装のゲームも珍しくなくなってきたな。
9デフォルトの名無しさん:2010/05/04(火) 23:28:44
AngelScript使っているのだけど、現在の状態をファイルに保存して復帰させたりできない?
asIScriptContextには変数を取得するためのメソッドはあるようだけどデバッグ用みたいだ。
せめてクラスのプロパティでも保存出来れば
10デフォルトの名無しさん:2010/05/04(火) 23:36:31
>>9
スクリプトのバイトコードを参照するのが配列の生ポインタなんで、ちょっと厳しいかも。
ライセンスzlibだし自分でいじってもいいんだろうけど、新しいバージョン出るたびにいじるのは泣けてくる。
119:2010/05/05(水) 00:04:12
>>10
ソース読むのもつらそうだし、要望するとか、毎回変更点をマージするのもなぁ・・
仕方ないから、状態を保存したい全クラスにプロパティの保存/読み込み用のメソッド用意させよう
12デフォルトの名無しさん:2010/05/06(木) 10:52:45
LuaJIT 2.0.0-beta4 ? 2010-03-28
・tuning for x64
・a new optimization: array bounds check elimination

LuaJIT、ループや算術演算のパフォーマンスがずいぶん上がってるなー
Googleがスポンサーになったりで、LuaJITはLAMPツールの埋め込みが増えてんのかな。
ttp://luajit.org/performance.html
13デフォルトの名無しさん:2010/05/06(木) 18:50:23
googleで思い出したけどGo言語はどうなったの?
14デフォルトの名無しさん:2010/05/06(木) 19:08:26
終わりがないのが終わり。
15デフォルトの名無しさん:2010/05/08(土) 22:52:14
Squirrelをちょっと触ってみたんですが適当にhello.nut(500Byteぐらい)を書いてsq -c hello.nutで作ったout.cnutのサイズが元の倍ぐらいあるんですけどSquirrelのバイトコードはこんなに大きいんでしょうか?
16デフォルトの名無しさん:2010/05/08(土) 23:18:02
>>15
そういう実装だから。
バイトコードのニーモニックのサイズは通常あまり重視されないので、
この程度なら許容範囲だろう。
これが例えばモバイル用途も考慮されてるJavaなどのバイトコードはかなりコンパクトになってるな。
17デフォルトの名無しさん:2010/05/09(日) 00:11:58
なるほど〜
こんなもんなんですね
ありがとうございます
18デフォルトの名無しさん:2010/05/09(日) 11:37:13
> バイトコードのニーモニックのサイズ

mnemonic の事と思うけど、その使い方非常に違和感ある。
19デフォルトの名無しさん:2010/05/09(日) 13:34:22
>>18
そうか……。ニーモニックというのは機械語コードのテキスト表現(≒アセンブラコード)なんだね。
この場合、単に「バイトコードのサイズ」というべきだったか。
どうもありがとう。
20デフォルトの名無しさん:2010/05/10(月) 01:16:39
>>11
AngelScript公式サイトのWorkInProgressのページに「Persistent script states」ってのがあるんだけど、
そこを見ると「難しいけど、スクリプトの状態をセーブ/ロードできるようにしたい」みたいな事が書かれてるんで、
将来そういう機能が追加されるかもしれないよ。
21デフォルトの名無しさん:2010/05/15(土) 09:49:32
22デフォルトの名無しさん:2010/05/15(土) 12:17:32
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >

23デフォルトの名無しさん:2010/05/15(土) 16:01:56
リリース告知メールにパッチ内容のリンク
ttp://www.lua.org/bugs.html#5.1.4
24デフォルトの名無しさん:2010/05/16(日) 23:05:03
LuaってC++の例外のことをあまり考慮されてないと思うんですが、
Luaに登録する関数は例外安全にしてエラーコードを返すようにラップしたほうがいいですかね?
25デフォルトの名無しさん:2010/05/17(月) 21:29:08
tolua++ をVisualStudioでビルドする方法について、日本語で手順記載しているページとかご存じ無いでしょうか?
どうにも色々調べて試してるのだけども、うまく行ってくれない……
(Lua本体はビルドすることに成功)
26デフォルトの名無しさん:2010/05/17(月) 23:58:50
>>24
C++でコンパイルかければ例外も問題ないはず。
そのモードならlua_errorあたりはthrowで、

lua_pcallはtry~catchにて実装される。
27デフォルトの名無しさん:2010/05/18(火) 10:12:20
>>24
ttp://www.lua.org/manual/5.1/manual.html#3.6
Lua はデフォルトでは longjmp でエラーハンドリングするけど、
設定すれば例外を使うようにもできるみたい。
2824:2010/05/18(火) 16:16:29
>>26,27
thxです
なるほどC++でコンパイルすると勝手に例外になるんですね
pcallで例外を捉えてきちんとオブジェクトを掃除してくれるなら今書いてるコードもいくらかすっきりしそうです
29デフォルトの名無しさん:2010/05/19(水) 06:14:57
Lua 5.2.0 (work3)
ttp://www.lua.org/work/
30デフォルトの名無しさん:2010/05/19(水) 19:38:31
C++にLuaっておかしい気がするのでSquirrelを使っていきましょうよ
31デフォルトの名無しさん:2010/05/19(水) 19:53:33
なんでおかしいの?
具体例を挙げてくれ
32デフォルトの名無しさん:2010/05/19(水) 22:15:20
ガベコレじゃなくて明示的にとかスコープ閉じた時に自動でとかでメモリ解放させることはできる?
33デフォルトの名無しさん:2010/05/19(水) 22:39:59
>>30
    ∧__∧
    (´・ω・)   いやどす
    ハ∨/^ヽ
   ノ::[三ノ :.、
   i)、_;|*く;  ノ
     |!: ::.".T~
     ハ、___|
"""~""""""~"""~"""~"
34デフォルトの名無しさん:2010/05/19(水) 23:55:23
AngelScript|Д`)<よーしここで俺たちの出番だな! 
GameMonkey|Д`)<おうよ!
CRIScript|

AngelScript|Д`)<あれ? 
GameMonkey|Д`)<あれ?
CRIScript|
35デフォルトの名無しさん:2010/05/19(水) 23:58:55
>>34
おもしろいなー
はらがいたい
36デフォルトの名無しさん:2010/05/22(土) 02:35:54
CRIScriptはもう終わったという認識でええの?
37デフォルトの名無しさん:2010/05/22(土) 02:42:21
今後は動的言語もJITベースが主流になる予感。
38デフォルトの名無しさん:2010/05/22(土) 03:22:30
動的言語はもう腹いっぱい
39デフォルトの名無しさん:2010/05/22(土) 07:47:33
>>38
それじゃあこのスレ全否定じゃねーか
40デフォルトの名無しさん:2010/05/22(土) 08:30:16
//
/ / パカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ AngelScript!!
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄
41デフォルトの名無しさん:2010/05/23(日) 19:17:24
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   
42デフォルトの名無しさん:2010/05/26(水) 00:26:22
最近AngelScriptを自分仕様に改変するのが楽しくなってきた

アドオンを追加してごにょごにょすれば日本語もコルーチンも使えるし
43デフォルトの名無しさん:2010/05/26(水) 00:53:51
AngelScriptはScriptBuilder使えばincludeとかも使えるしな。

しかも文法がほぼC++なんで、Cのプリプロセッサとかも使えるし。
まあスクリプトの意味があんまり無くなるんでアレだが。
44デフォルトの名無しさん:2010/05/28(金) 23:07:06
どうしてこのスレは盛り上がらないんだと思う?
45デフォルトの名無しさん:2010/05/29(土) 09:00:40
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >

46デフォルトの名無しさん:2010/05/29(土) 13:53:07
>>44
既に国内でもLuaやSquirrelを採用した商用ゲーがいくつも出ているけど、
分からないことが特になくなれば質問しなくなるだろう。

中にはオープンソースになってるものもあるので、入手して眺めると勉強になるかも。
47デフォルトの名無しさん:2010/05/29(土) 16:17:10
Civ5がLua採用でLua使いの俺は少し嬉しいw
48デフォルトの名無しさん:2010/05/30(日) 05:19:18
>>47 へー。Civ4はPythonだったと思うけど、乗り換えたんだね。
49デフォルトの名無しさん:2010/05/30(日) 07:50:46
         \   l´⌒\⌒\ \\ \
           \ ヽ   )  )   \\ \\   
              (   \ \∩___∩ \\ 
           \   \  ⌒⌒| ノ      ヽ  \\      
              \ \   /  ●   ● ト、\ \\\ 
               \  Y |    ( _●_)  ミ\  \\\  
               \ / 彡、_  |∪| ノ   \  \\\
                 (____)―ヽノ' ヽ      ̄ ̄ ヽ\\
                                \,  j  l l .l }
                         Lua!   l (_ノノノノ

50デフォルトの名無しさん:2010/05/30(日) 17:07:26
         \   l´ \\ \\ \
           \ ヽ  ) )   \\ \\   
              ( \ \   ∩_∩ \\ 
           \   \  ⌒⌒|     ヽ  \\      
              \ \   / ● ● ト、\ \\\ 
               \  Y |  ( _●_) ミ \\\  
               \ / 彡、.. |∪|ノ \ \\\
                 (____)―ヽノ' ヽ   ̄ ̄ ヽ\\
                                \,  j l l .l }
                    Angel Script!   l (ノノノノ
51デフォルトの名無しさん:2010/05/31(月) 22:49:42
V8をゲームプログラムに組み込む事に関する質問はここでいいですか?
52デフォルトの名無しさん:2010/05/31(月) 23:26:09
スレの趣旨には反してないけど回答者がいるかは知らん
53デフォルトの名無しさん:2010/06/01(火) 00:24:12
>>51
V8というものについて詳しいサイト教えてくれないか。
54デフォルトの名無しさん:2010/06/01(火) 01:22:38
55デフォルトの名無しさん:2010/06/01(火) 23:13:31
1 :名無しさん@どっと混む:2009/12/14(月) 20:45:15 ID:unnBMLw10
高根社長のSM趣味サイトMaskRと
副業のSMクラブ銀座プレジス・動画配信専門リアルミストレスばかり語られるが
高根社長の本業コムラッドについても語ろう

銀座プレジス
http://www.prezis.jp/top.htm

MaskR
http://maskr.com/

プレジスを語ろう
http://set.bbspink.com/test/read.cgi/sm/1246009466/

動画配信専門リアルミストレスってどうよ?
http://set.bbspink.com/test/read.cgi/sm/1249183350/

9 :名無しさん@どっと混む:2010/01/03(日) 18:27:00 ID:RSEbBiG0O
高値はもう大麻やめたの?

10 :名無しさん@どっと混む:2010/01/04(月) 05:15:29 ID:A3l1qdv+O
タカネ社長ってどうやってばれないように脱税してんだろ?
億単位で脱税して億ション暮らしなんて凄いよな
監査役の奥さんもグルなのか?

12 :名無しさん@どっと混む:2010/01/05(火) 01:47:06 ID:KAHwqMrBO
株式会社Comrade株式会社コムラッド株式会社Comrade株式会社コムラッド株式会社Comrade株式会社コムラッド株式会社Comrade株式会社コムラッド株式会社Comrade
株式会社Comrade株式会社コムラッド株式会社Comrade株式会社コムラッド株式会社Comrade株式会社コムラッド株式会社Comrade株式会社コムラッド株式会社Comrade

13 :名無しさん@どっと混む:2010/01/05(火) 01:47:47 ID:KAHwqMrBO
高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉
56デフォルトの名無しさん:2010/06/01(火) 23:14:20
18 :名無しさん@どっと混む:2010/01/07(木) 09:26:06 ID:5NL2jyJpO
高根はMASKRでレイプ仲間募集するのやめたんだね
mixiで募集中か

21 :名無しさん@どっと混む:2010/01/10(日) 19:36:45 ID:FdRwgXUTO
風俗店やってるってことは高根社長は暴力団と繋がってるんだね
どこの組にいくらみかじめ料払ってるんだかw

23 :名無しさん@どっと混む:2010/01/23(土) 03:43:12 ID:Pdcv8aq0O
タカネ社長未成年に酒飲ませてレイプ

24 :名無しさん@どっと混む:2010/01/29(金) 18:16:06 ID:zMwtdkIsO
高根社長のレイプ趣味は病気だから治らない

25 :名無しさん@どっと混む:2010/02/01(月) 01:39:32 ID:uaH5mo2nO
前科者

26 :名無しさん@どっと混む:2010/02/09(火) 00:52:46 ID:JwGmN2cG0
>>25
容疑はレイプ?買春?管理売春?公然猥褻?薬物?脱税?詐欺?傷害?

28 :名無しさん@どっと混む:2010/02/14(日) 22:56:30 ID:lykq8x1VO
どこかのスレで人を死に追いやったと書いてあった

33 :名無しさん@どっと混む:2010/03/04(木) 12:49:19 ID:J8YxaRGO0
金がないって脱税がばれて追徴課税でも来たか?
せっかく脱税の隠れ蓑にプレジス営業してるのに残念だったなw

38 :名無しさん@どっと混む:2010/03/12(金) 21:09:53 ID:L0W4+sivO
首吊り首絞めプレイ大好き高根英哉
57デフォルトの名無しさん:2010/06/01(火) 23:15:05
53 :名無しさん@どっと混む:2010/05/17(月) 13:14:06 ID:E/7OZVtz0
>>18
高根英哉blogでレイプ仲間募集中

私とともにマスクの女どもを弄ぶ仲間を募集する
急に思いついたら連絡をして、集まれるような仲間だ
だから、複数名募集するし、いついつという日時があるわけでもない
条件は以下のとおりだ
    ・SMを実践している、または興味がある
    ・マスクを用意できる
    ・都内でイベント参加できる
    ・イベント内容およびこの仲間を通じて知りえた情報を口外しない
    ・成人男子である
    ・携帯電話および携帯メールアドレスを私に公開できる
    ・酒が好きである
希望者は私宛にメールを送ってほしい
全員が参加できるわけでもないので、こちらの選択に任せてもらう
なるべく想いを書いてもらうほうがわかりやすいし
経験や顔写真も歓迎。
[email protected]
[email protected]
[email protected]
58デフォルトの名無しさん:2010/06/02(水) 00:14:11
>>51
javascriptは楽でいいよね
前スレによると速度は LuaJIT >>> v8 >= Lua 
らしいので、v8は結構速い。しかもv8は修正BSDだし。
59デフォルトの名無しさん:2010/06/02(水) 01:23:35
V8ってのは、組み込み用のjavascriptなのかな?
どっかに組み込み方の説明サイトとかないか?
60デフォルトの名無しさん:2010/06/02(水) 01:32:03
>>59
そもそも本来からして、JavaScriptはブラウザとHTML用の「組み込み」用なわけだが。
61デフォルトの名無しさん:2010/06/02(水) 01:38:13
>>59
Google製のjavascript処理系。Chromeに組み込まれてる奴。

これを見ればなんとかなる
ttp://sites.google.com/site/bibourokdesu/

解説したblogも何件かあった気がする
62デフォルトの名無しさん:2010/06/02(水) 07:30:31
ちょうどいい大きさだし、組み込み以外の用途にも使えるからV8にしようと思ってるのだが、複数のスレッドで同じコードから組み込み関数に渡したオブジェクト内のメソッドにアクセス出来るかどうかが心配。
そもそもオブジェクト内のメソッドをC++から実行出来るかも知らないし。

そこんところを日本語で解説してるサイトが余りにも少ない…
63デフォルトの名無しさん:2010/06/02(水) 07:31:22
「ちょうどいい大きさだし、組み込み以外の用途にも使えるから」はJavaScriptの言語のことね。
64デフォルトの名無しさん:2010/06/02(水) 13:21:01
>組み込み以外の用途にも使えるから
いや、javascriptは組込み以外は使えない
何せファイル入出力はおろかprint関数も無い、当然ネットワーク機能なんぞ一切無い。
こういう機能をホスト側で用意してこその言語
65デフォルトの名無しさん:2010/06/02(水) 16:16:19
DOM込みでjavascriptだと思い込んでる人多いしね

そういえばV8が発表された直後にあちこちのサイトで
ソースの解析がやたらと盛り上がってた覚えがあるけど
もうやってるところはないんだろうか
66デフォルトの名無しさん:2010/06/02(水) 21:20:32
V8試してみた。
最初はやり方わからなかったけど、わかればものすごく簡単に組み込めた。
AngelScript並みの簡単さ。
C++とのバインドも簡単。

ただ、謎のメモリリークが発生しているようだ…
67デフォルトの名無しさん:2010/06/06(日) 17:33:50
>>66
JITが走る処理系なんだからそりゃあメモリは増えるっしょ。
68デフォルトの名無しさん:2010/06/09(水) 00:41:27
>>67
となるとあまり気にしなくてもいいのかな。

VS2008で必要なライブラリをリンクするように設定して、

int main(int argc, char *argv[])
{
    _CrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF | _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG)); 
    v8::V8::Dispose();
    return 0;
}

こんな感じのソースをビルド&実行すると、メモリリーク検出されちゃうんだ。
ちなみに、
v8::V8::Dispose();
をコメントアウトすると検出されない。
69デフォルトの名無しさん:2010/06/09(水) 07:30:02
そんな関数どこで呼び出すんだろ

そこらに転がってるサンプルコードにはそんなの書いてないから必要ないんじゃない?
70デフォルトの名無しさん:2010/06/10(木) 02:05:27
>>69
V8のサンプル、shell.ccのmain関数で呼び出されてる。

int main(int argc, char* argv[]) {
  int result = RunMain(argc, argv);
  v8::V8::Dispose();
  return result;
}

こんな感じで。

なお、このソースにメモリリーク検出用のコードをつけて実行すると、やはり検出されてしまう模様。
あと、main関数をメモリリーク検出用のコード+return 0;だけにしてもなぜか検出されてる。
71デフォルトの名無しさん:2010/06/10(木) 05:41:32
実物を見たわけじゃないけど、
V8 が使っている static な変数のコンストラクタの中でメモリを確保して、
デストラクタでちゃんと開放してないとかじゃないのかな?
じわじわとメモリ使用量が増える傾向があるとかじゃなければ、
気にしなくていい気もするけど。
72デフォルトの名無しさん:2010/06/11(金) 00:15:42
言語処理系なんてのはグローバル変数にnewしたインスタンスを
入れ捨てたりする実装とかザラにあるけどな。
(ああ! SqPlusとかな!)

V8がそうだとは言わないけど。
その辺興味があるなら原因を追っかけてみたら?

会社を背負って立ってるブラウザで使われてるJavascript処理系が
あまり甘い実装になってるとは思えないんだけど。
73デフォルトの名無しさん:2010/06/11(金) 00:44:24
というわけで誰かV8詳しい人、よろしく!
74デフォルトの名無しさん:2010/06/11(金) 07:22:26
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ

75デフォルトの名無しさん:2010/06/11(金) 07:34:48
//
/ / パカッ
//)∩_∩
/.| .| ノ  ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ AngelScript!!
/ | ヽ |∪| /_
// │ ヽノ \
" ̄ ̄ ̄ ̄ ̄ ̄ ̄
76デフォルトの名無しさん:2010/06/11(金) 20:48:21
AngelScript じゃなくて AngelCode って言った方がいいんじゃない?
77デフォルトの名無しさん:2010/06/11(金) 20:52:38
なぜ?
78デフォルトの名無しさん:2010/06/12(土) 13:03:00
36 名前:名称未設定[sage] 投稿日:2010/06/12(土) 08:23:43 ID:RcVNhlGt0
Appleから事前承認を得れば、インタプリタが使えるようになったらしいね。
http://www.macnn.com/articles/10/06/11/developers.must.get.approval.in.writing/
79デフォルトの名無しさん:2010/06/12(土) 14:21:14
.NetならIronPythonとIronRubyどっちがおすすめ?
それともLuaとか他のスクリプト言語がいいかな?
80デフォルトの名無しさん:2010/06/12(土) 16:21:45
>>79
規模による。
スクリプト部分が200kbを超えててしかも一気に読み込まないといけないようなら
現状ではDLRのスクリプト言語はやめた方がいい。
.NET Frameworkは言語を色々選べてしかも組み合わせ自由であることが多いので考え方次第だな。
最近のお気に入りはBoo。
81デフォルトの名無しさん:2010/06/12(土) 17:09:10
>>80
Booはどんなとこが気に入った?
Pythonっぽい静的型付けのマイナーな言語ってことしか知らないわ。


82デフォルトの名無しさん:2010/06/12(土) 17:58:28
>>81
・静的型付け言語で事前にコンパイルする形式なので基本的にC#と同じ速度で動く。
・でもインタプリタも持ってる
・JSONが素で読める
・DLRじゃないので初期化が重くならない(これもC#と同程度)
・マクロで言語を拡張可能(コンパイラに機能が追加される)
この特徴を持ってDSL向きだと言っている人もいるね。
83デフォルトの名無しさん:2010/06/12(土) 18:56:09
>>82
おもしろそうだけど、Booって検索しづらい単語だよな
84デフォルトの名無しさん:2010/06/12(土) 19:11:01
>>82
C#とのバインドどんな感じ?
DLL読み込むだけでいい?
85デフォルトの名無しさん:2010/06/12(土) 20:10:00
>>84
VSやSharpDevelopで普通にプロジェクト作って
組んでいくのでその辺はC#と何ら変わらん。
片方が定義したクラスをもう片方で利用したりは自由にできる。
Booでアプリ本体を書くことすらできるが、とりあえずオレはBooでプラグインを書いて
C#のプログラムから動的に読み込んで使ってる。
この辺はリフレクションを使う。C#同士と全く同じ。
86デフォルトの名無しさん:2010/06/13(日) 12:16:05
日本語の資料って少ないよね。

オフィシャルサイト http://boo.codehaus.org/
入門 http://boo.codehaus.org/Boo+Primer
特徴 http://boo.codehaus.org/Language+Features
言語構造 http://boo.codehaus.org/Language+Guide

DSLs in Boo: Domain-Specific Languages in .NET
http://www.manning.com/rahien/

記事(日本語)
http://www.infoq.com/jp/Boo
http://msdn.microsoft.com/ja-jp/magazine/ee291514.aspx
87デフォルトの名無しさん:2010/06/13(日) 19:31:28
(゚∞゚)クニヤブレテ ペーチュンチュン
88名無しさん@そうだ選挙に行こう:2010/07/11(日) 19:56:40
Luaの魅力は拡張モジュールの豊富さですな。
グレイト
89デフォルトの名無しさん:2010/07/23(金) 00:25:40
sqplusもXtalも最近更新ないな。
マイナー言語ってこんなもんなのか。
90デフォルトの名無しさん:2010/07/23(金) 00:41:19
どっちも実質一人だしなあ
91デフォルトの名無しさん:2010/07/23(金) 00:44:19
xtalはすかいきゅんが頑張ってるよ
92デフォルトの名無しさん:2010/07/23(金) 00:47:14
ご結婚おめでとうございます
93デフォルトの名無しさん:2010/07/23(金) 01:04:51
ioは、メッセージパッシングで、luaっぽく使えるように作ったけど、回りに開発者が増えないな。
http://github.com/stevedekorte/io

luaの広がりはやっぱりすごいな。
94デフォルトの名無しさん:2010/07/23(金) 01:17:42
>>89
Xtalは1週間くらい前に開発版が久々に(3ヶ月半くらい)更新されたよ。
以前は一年くらい更新なかった時期もあったから、まだまだ活発な方だね。
95デフォルトの名無しさん:2010/07/23(金) 06:20:38
lua の拡張性は半端ない
96デフォルトの名無しさん:2010/07/23(金) 07:04:38
>>94
更新されてたの見落としてた。
ありがとう。

Blogの更新はされないんだろうか...
97デフォルトの名無しさん:2010/07/23(金) 20:30:09
本職がゲーム開発だから時間とれないのかもね
98デフォルトの名無しさん:2010/07/23(金) 21:47:08
他の言語と比べると、AngelScriptの更新ペースは異常だな。
99デフォルトの名無しさん:2010/07/23(金) 22:49:53
merdあたりが組み込み用だったりすると面白かったんだけどな
100デフォルトの名無しさん:2010/07/23(金) 23:37:20
//
/ / パカッ
//)∩_∩
/.| .| ノ  ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ AngelScript!!
/ | ヽ |∪| /_
// │ ヽノ \
" ̄ ̄ ̄ ̄ ̄ ̄ ̄
101デフォルトの名無しさん:2010/07/24(土) 00:16:39
Boo が Unity のスクリプトに採用されてたわ。
102デフォルトの名無しさん:2010/07/24(土) 00:26:31
Monoだし、そうなるかー
103デフォルトの名無しさん:2010/07/25(日) 16:25:07
バンナムの「デッドストームパイレーツ」というゲームにXtalが使われてるらしい。
作者が前に会社で採用されたって言ってたのはこれのことか。
ttp://cedec.cesa.or.jp/2010/program/PG/C10_P0320.html
104デフォルトの名無しさん:2010/07/25(日) 16:33:03
GameMonkeyScriptの方は分からないけど、Xtalの初の大手商用ゲーム採用か?
105デフォルトの名無しさん:2010/07/25(日) 16:34:56
しかもバンナム。社内にも広めるとはやるじゃないか。
106デフォルトの名無しさん:2010/07/27(火) 00:11:11
Xtalってプロダクトに使えるレベルの完成度だったのかすげえな
作者がバンナムのゲームのデベロッパということだったりするんかな
107デフォルトの名無しさん:2010/07/27(火) 00:12:26
>>103
> Xtal:パイレーツではGameMonkeyScriptのほかにXtalという組込スクリプト言語を利用しました。
> Xtalはオープンソースで開発されており、社内に開発者がおります。
> XtalはC++と親和性が高く、プログラマが用いるのに向いています。
> 採用・開発者との情報交換の背景や実際の活用例を紹介します。

ちょw
社内の人だったのかw
108デフォルトの名無しさん:2010/07/27(火) 09:10:47
バンナム(笑)とか言われたらイメージ悪いな
109デフォルトの名無しさん:2010/07/27(火) 21:04:01
AngelScript|Д`)ノ<日本での大手採用おめでとうー
                            ありがとー >ヽ(´Д|GameMonkey 
CRIScript|

AngelScript|Д`)<何か寂しいなー

CRIScript|
110デフォルトの名無しさん:2010/07/27(火) 21:23:49
>>109
詳細キボン
111デフォルトの名無しさん:2010/07/27(火) 22:12:08
>>110
ちょっと上に出てる
> Xtal:パイレーツではGameMonkeyScriptのほかにXtalという組込スクリプト言語を利用しました。 
の事ね。

AngelScriptは海外では使われてるみたいなんだけどなぁ…
112デフォルトの名無しさん:2010/07/27(火) 22:25:19
なるほどー。
今後はJIT等の高速化対応と複数ネイティブスレッド対応、
それから協調的なマルチスレッドの自動生成(Erlangなど)などが
ポイントになってくるだろうな。
ブラウザ対応でチューンされまくりなECMAScriptの処理系なんかも旬かもしれない。
113デフォルトの名無しさん:2010/07/28(水) 00:18:40
AngelScriptは更新ハイペース、ドキュメント(英語だが)親切、そこそこ高速、バインダ付き
と揃ってるのに目立たないのはやっぱ静的な型のおかげで関数型言語のようなことできんからかね
俺もあんまりそっち方面詳しくないけど。Programming In Lua でちょっと触れてたの見てああこれは静的
だとできんわと思ったが。C++だとテンプレートでできてしまうけど・・・あれ?AngelScriptってテンプレート使えたっけ

しかしLuaは資産が多いのと、ちゃんと本体も迷走してないから強いな。翻訳された書籍まであるし(まだまだ踏み込むと英語だけど)
というかLuaJITの速度どういうことなの・・・

Erlangは関数型+マルチスレッドで色々期待されてるね
114デフォルトの名無しさん:2010/07/28(水) 00:21:19
Erlang遅いズラ
115デフォルトの名無しさん:2010/07/28(水) 00:43:32
Luaはいろいろ好きじゃないとこ多いけど、
最初に広まっちゃったからなあ
116デフォルトの名無しさん:2010/07/28(水) 00:47:55
AngelScriptでもJITで実行させるのはできるみたいだが、今のところやり方は不明(フォーラムにネタは出てるらしい)。
マニュアルにも「JIT compilation」ってあるし。

>AngelScriptってテンプレート使えたっけ
一応可能だけど、C++に比べるとかなり機能は貧弱。
サンプルもAngelScriptのサンプル群の中ではショボい部類に入るし。

117デフォルトの名無しさん:2010/07/28(水) 01:37:48
ioェ・・・
118デフォルトの名無しさん:2010/07/28(水) 10:53:56
>>113
Luaは関数型言語というより動的言語(スクリプト)じゃないのかな

動的言語よろしく、実行時にメソッドあるかどうか決まる(スペルミスは通ったときにやっとわかる)タイプじゃなかったけ?
詳しい人よろ
119デフォルトの名無しさん:2010/07/28(水) 15:26:33
そうだよ
120デフォルトの名無しさん:2010/07/28(水) 17:29:53
型付けが動的であることと関数型であることとスクリプトであることは全然関係ない
121デフォルトの名無しさん:2010/07/28(水) 23:38:58
関数型 : 関数が組み込み型のように扱える(ファーストタイプ)
動的言語 : 型が実行時に決まる
スクリプト : 俺には定義がわからん

まぁそれぞれ関連はあんまりないな

function hoge(arg)
{
122デフォルトの名無しさん:2010/07/28(水) 23:40:30
みすった・・・下の2行は忘れてくれ
123デフォルトの名無しさん:2010/07/28(水) 23:52:07
}
124デフォルトの名無しさん:2010/07/29(木) 00:04:48
stdin:121: '}' expected near '{'.
125デフォルトの名無しさん:2010/07/29(木) 00:18:29
>>121
型が実行時に決まるのは「動的言語」じゃなくて「動的型付け」で別概念。
多くの動的言語は動的型付けだけどね。

例えば Objective-C は動的言語だけど、型付けは静的と動的のハイブリッド
126デフォルトの名無しさん:2010/07/29(木) 00:51:39
動的片づけ言語ってもうこれ以上進歩しないだろ
127デフォルトの名無しさん:2010/07/29(木) 00:53:58
why's that??
128デフォルトの名無しさん:2010/07/29(木) 01:08:15
>>126
なにについてそう言ってるのかで話が変わってくるな。
まあ釣りだとは思うが。

速度面でいうならJITコンパイラを内蔵してるかどうかで変わってくるだろう。
あとはその規模、それによる範囲や最適化の度合いだな。
129デフォルトの名無しさん:2010/07/29(木) 01:13:08
多動言語
「JITしてなさい」
130デフォルトの名無しさん:2010/07/29(木) 01:14:33
これからの進歩の話しているのに
なんでJITコンパイラ内蔵うんぬん言ってるの?
131デフォルトの名無しさん:2010/07/29(木) 05:31:26
なんでム板ID出ないんだろうなあと思う。
132デフォルトの名無しさん:2010/07/29(木) 21:39:44
会社から書き込んでる奴が多いから
133デフォルトの名無しさん:2010/07/29(木) 22:05:58
>>132
会社とIDって関係あるの?
134デフォルトの名無しさん:2010/07/30(金) 00:40:12
出口が一か所なら同IDに成るね。
135デフォルトの名無しさん:2010/07/30(金) 02:50:52
複数スレにまたがってID検索したら業務内容および会社も特定出来得るしな
136デフォルトの名無しさん:2010/07/30(金) 20:38:07
ああ、なるほど。
137デフォルトの名無しさん:2010/07/31(土) 09:24:04
あるあるw
138118:2010/07/31(土) 14:30:40
おお、お前ら詳しいな。
それぞれ直行する概念なのね

動的言語と動的型付けはどうみても俺の勘違いでした。教えていただいてありがとうございました。

Luaはどれに当てはまるんだ?
・動的言語
・動的型
・関数型をめざしてはいない
139118:2010/07/31(土) 14:38:01
ちょっと誤解を生むな
どれをというかこの要素があるというのでいいのか?ということを聞きたい


ちょっと話ずれるけど、知り合いにはデバッグ環境はあるけどLuaは動的型付け(でいいよな)なんで
結構大変と聞いたけど実際どうなん?

webアプリとかでさ、動的型言語使ってもテストとかガバレッジなんたらとかやるじゃん?
ゲームで使っている人とか、そういうのどこまでやってるのかしりたい

以前ゲーム作ってたときはそもそも数値計算とかのライブラリ以外は
テストの自動化とか全然やってなかった。
webアプリでもGUIのテストとか調べてると他のテストと比べてまともにやってない感じだし、
ゲームみたいにグラフィカルな場合なおさらだよね?

メインに使う静的型付言語だったらテストおろそかにしていい、というわけでもないし、
組み込み言語あまり関係ない気もしてきたな
140デフォルトの名無しさん:2010/07/31(土) 14:42:29
LuaのUnitTest向けフレームワーク自体はいくつかあるんだな
lua-users wiki: Unit Testing
http://lua-users.org/wiki/UnitTesting

BDD用のluaspecあたりキモくていいですね
http://github.com/mirven/luaspec/blob/master/example/stack_spec.lua
141デフォルトの名無しさん:2010/07/31(土) 21:27:58
LLTigerというイベントのLightning TalkでLuaのセッションあったらしい

ハワイのゲームプログラマさんだと

LL Tiger ≫ LTの虎
http://ll.jus.or.jp/2010/program/lt
LLTiger LT: Lua でわくわくゲーム開発(続き)‐ニコニコ動画(9)
http://www.nicovideo.jp/watch/sm11580483

最近ゲーム関係のイベントだとLuaのセッションチラホラみかける気がするね
142デフォルトの名無しさん:2010/07/31(土) 21:30:34
>>141
前半ねーじゃん

Luaタグで検索したら前半発見した。

LLTiger LT: Lua でわくわくゲーム開発(前半)‐ニコニコ動画(9)
http://www.nicovideo.jp/watch/sm11581150
143デフォルトの名無しさん:2010/08/01(日) 19:18:35
angelScriptで、テンプレートクラスを戻り値にしたクラスのメソッドを
つくろうとしたらコンパイルエラーになるのって自分だけ?
引数とかプロパティには出来るんだが
144デフォルトの名無しさん:2010/08/01(日) 22:27:15
C++側でMyTmplってtemplate用クラスを定義しておいて、

class Test
{
    Test()
    {
    }

    ~Test()
    {
    }

    MyTmpl<float>   object;

    MyTmpl<float> &GetTemplate()//※
    {
        return  object;
    }
};

ってやったら自分の所でも※の行でエラーが出た。バージョンは2.19.0。
templateはまだ未完成な部分が多いのかな?
145デフォルトの名無しさん:2010/08/02(月) 07:09:33
         \   l´⌒\⌒\ \\ \
           \ ヽ   )  )   \\ \\   
              (   \ \∩___∩ \\ 
           \   \  ⌒⌒| ノ      ヽ  \\      
              \ \   /  ●   ● ト、\ \\\ 
               \  Y |    ( _●_)  ミ\  \\\  
               \ / 彡、_  |∪| ノ   \  \\\
                 (____)―ヽノ' ヽ      ̄ ̄ ヽ\\
                                \,  j  l l .l }
                         Lua!   l (_ノノノノ

146デフォルトの名無しさん:2010/08/02(月) 21:36:08
>>145
Lua 5.2 work4 キテタ━━━━(゚∀゚)━━━━ !!!!!
147デフォルトの名無しさん:2010/08/02(月) 23:06:12
     _人人人人人人人人人人人人人人人_
     >     わりとどうでもいい      <
      ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^^Y^ ̄

               ヘ(^o^)ヘ 
                  |∧   
                 /
148143:2010/08/03(火) 16:09:08
>>144
やっぱりコンパイルエラー出るのか・・・
trunkの最新版でも出るようなら報告してみるか
149デフォルトの名無しさん:2010/08/03(火) 20:10:31
今からLua勉強してPS3のFF14の発売までに間に合うでしょうか
150デフォルトの名無しさん:2010/08/03(火) 20:45:15
なんのことやらと思ったら

ttp://www.square-enix.com/jp/recruit/career/job/game/pg_ui.html

これか。
別にユーザに開放されるってわけじゃないよね。これ。
151デフォルトの名無しさん:2010/08/03(火) 21:29:04
うん。全然関係ないね。
152144:2010/08/03(火) 23:22:23
って俺参照返してるな…
AngelScriptは参照返すのはアウトみたいだから、上のソースはミスだわ。
まあ&はずしてもエラーなのは変わりないんだけど。
153デフォルトの名無しさん:2010/08/04(水) 07:55:23
       //
     /  /  パカッ
    //⌒)∩∩
  /.| .| ノ    ヽ
    / | |  ● ● |     
  /  | 彡 ( _●_) ミ AngelScript!!
  /  | ヽ |∪|  /_
  // │  ヽノ \/
  " ̄ ̄ ̄ ̄ ̄ ̄(..ノ

154デフォルトの名無しさん:2010/08/04(水) 08:40:29
太ったな
155デフォルトの名無しさん:2010/08/04(水) 23:15:56
>>150 これか

69 名前:仕様書無しさん[] 投稿日:2010/08/02(月) 22:07:17
あのスクウェア・エニックスが期待の新作、FFオンラインゲームのUIプログラマーを急募(10人以上)

https://www.ecareerfa.jp/disco-career/job_d/?_OFF_SEQ=10711659&_P=CB001&_SEQ=W1

応募資格:下記条件全てに該当する方
・専門卒以上
・社会人経験2年以上8年未満
・転職回数0〜2回まで
・PCゲーム/コンシューマーゲーム作成経験2年以上
・C++/C#経験2年以上

仕事内容:
■ゲーム製作環境整備
・リソースを扱うツール群の整備と改良。
アートデータやゲームパラメータなど各種リソースのイテレーション環境の改善と構築(フロー改善と構築)を行って頂きます。

■ゲームUI作成
Luaスクリプト/C++を使いゲーム要件を満たすメニューの量産実装になります

雇用形態:契約社員

年収:300万円 〜 400万円まで

156デフォルトの名無しさん:2010/08/04(水) 23:55:06
以前は芝のテクスチャと思ったら今度はメニューの量産かよ・・・。
俺同人屋だけどもう本職の人全然怖くねーわ
157デフォルトの名無しさん:2010/08/05(木) 01:55:13
>>156
山崎パンで例えると、
こっち
http://www.yamazakipan.co.jp/recruit/universities/index.html
じゃなくて
こっち
http://www.yamazakipan.co.jp/recruit/high_school/index.html
を見て勝利宣言してるみたいなもんだぞw
現実から目を逸らすのやめろよw
158デフォルトの名無しさん:2010/08/05(木) 10:00:09
テスト
159デフォルトの名無しさん:2010/08/05(木) 13:05:24
AngelScript、C++Builderでも簡単に使えるようになったな
160デフォルトの名無しさん:2010/08/05(木) 13:06:59
     _人人人人人人人人人人人人人人人_
     >     わりとどうでもいい      <
      ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^^Y^ ̄

               ヘ(^o^)ヘ 
                  |∧   
                 /
161デフォルトの名無しさん:2010/08/05(木) 13:24:57
>雇用形態:契約社員
使い捨てですねw
162デフォルトの名無しさん:2010/08/05(木) 13:34:12
・社会人経験2年以上8年未満
・転職回数0〜2回まで

ずいぶんピンポイントでの募集だな
163デフォルトの名無しさん:2010/08/06(金) 00:33:01
・専門卒以上
・社会人経験2年以上8年未満
・転職回数0〜2回まで
・PCゲーム/コンシューマーゲーム作成経験2年以上
・C++/C#経験2年以上
・Luaスクリプト経験
・オンラインゲーム作成経験
・データリソースマネジメント経験

見事に全て当てはまるけど契約社員は嫌だな
164デフォルトの名無しさん:2010/08/06(金) 12:33:53
>>155
Luaはマジで薄給スクリプターの需要上げて、プログラマーの需要下げてますね!!!!11

461 :既にその名前は使われています [] :2010/08/02(月) 17:23:42 ID:ar/yeCZe
ワロタ
マジでスクエニ大丈夫か?

794 :既にその名前は使われています:2010/08/02(月) 17:22:47 ID:RCV2ArOV
今からUIやり直すの?
http://www.square-enix.com/jp/recruit/career/job/game/pg_ui.html


463 :既にその名前は使われています [] :2010/08/02(月) 17:27:53 ID:EQ7R1xkx
雇用形態
契約社員

UIをなめてんのか?


472 :既にその名前は使われています [] :2010/08/02(月) 18:43:20 ID:OzNODjsB
>>463
これはプログラマ、デザイナー激怒していいレベルだわ
UI舐めてるっていうか、ゲームの基幹とかもっと大きく言えば
現状ソフトで運用されてるIT家電製品全体を軽視してるだろ。

ユーザインターフェイスが即ちその企業の開発力、強いては
ブランドを維持する信頼の元だって、全然わかってない。

165デフォルトの名無しさん:2010/08/06(金) 12:40:43
UIを設計する人と実装する人は別だろ
166デフォルトの名無しさん:2010/08/06(金) 12:42:03
うちは lua じゃなくて squirrel つかってるけど、コルーチン持ちの言語使うと UI 用の作業工数が激減するのは確かではある
167デフォルトの名無しさん:2010/08/06(金) 12:46:23
10人も募集してんなら十分UIに力いれてるんじゃん。
C++とかでやってたら「一応動いてるからもう良いでしょ?」ってなところが
スクリプト化してあれば限界までいじれる。

まあ、給料水準はちょっと何だが・・・。
168デフォルトの名無しさん:2010/08/06(金) 13:56:38
今どきLuaはねえよなあ
169デフォルトの名無しさん:2010/08/06(金) 14:33:43
>>167
もういじらなくて良いところと、まだいじりたいところを切り分けて、
もう良いでしょって部分を増やしていかないと収束しないじゃん。
そもそも、まだいじりたいけど自分ではいじりたくないから人に頼むってのがおかしい。
170デフォルトの名無しさん:2010/08/06(金) 20:05:45
>>169
>そもそも、まだいじりたいけど自分ではいじりたくないから人に頼むってのがおかしい。
分業ってそういうもんじゃない?
スクリプト化すれば、プログラマーとしては一丁上がりみたいなもんだから、先へ進める。
171デフォルトの名無しさん:2010/08/06(金) 23:37:34
よしじゃあみんなAngelScriptを使おうじゃないか。
172デフォルトの名無しさん:2010/08/07(土) 00:00:38
Xtal使おうぜ
173デフォルトの名無しさん:2010/08/07(土) 00:30:44
Lua&luabindで特に不満が無い
174デフォルトの名無しさん:2010/08/07(土) 09:32:07
>>171,172
    ∧__∧
    (´・ω・)   いやどす
    ハ∨/^ヽ
   ノ::[三ノ :.、
Lua i)、_;|*く;  ノ
     |!: ::.".T~
     ハ、___|
"""~""""""~"""~"""~"
175デフォルトの名無しさん:2010/08/07(土) 11:12:34
やややや嫌嫌嫌
176デフォルトの名無しさん:2010/08/07(土) 13:29:58
VimのプラグインがLuaで書けると聞いて飛んできました
177デフォルトの名無しさん:2010/08/13(金) 09:50:57
//
/ / パカッ
//)∩_∩
/.| .| ノ  ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ AngelScript!! 2.19.1
/ | ヽ |∪| /_
// │ ヽノ \
" ̄ ̄ ̄ ̄ ̄ ̄ ̄
178デフォルトの名無しさん:2010/08/14(土) 23:34:04
Lua Programming Gemsを買うときが来たか
まぁ英語の勉強にもな・・・るんだろうか
179デフォルトの名無しさん:2010/08/14(土) 23:34:48
というか、相変わらずAngelScript更新ハイペースだな
180デフォルトの名無しさん:2010/08/15(日) 01:29:02
AngelScript、作者いつ寝てんだみたいなペースだよな…
フォーラムの反応もメチャクチャ早いみたいだし。
181デフォルトの名無しさん:2010/08/15(日) 01:32:08
ユーザーの反応が気になって夜しか眠れないんだろう
182デフォルトの名無しさん:2010/08/19(木) 23:16:54
パカッ
183デフォルトの名無しさん:2010/08/20(金) 00:47:53
xtal(クソタルってよむのか?)なかなか良さそうだな。
ただ「function」がfuncでもなく「fun」という表記なのと「finalize」とするべきものを「uninitialize」としている華麗なる独自仕様にはまいった。
184デフォルトの名無しさん:2010/08/20(金) 01:14:08
エクタールって読んでたが中2ファンタジーっぽい
185デフォルトの名無しさん:2010/08/20(金) 04:04:55
クリスタル だよ
まぁ、作者が開き直って エックスタル でもいいとか言ってるが
186デフォルトの名無しさん:2010/08/20(金) 04:05:13
下げ忘れた
187デフォルトの名無しさん:2010/08/20(金) 07:15:42
>>183
製作者の英語力中学生以下だな
188デフォルトの名無しさん:2010/08/20(金) 07:39:44
>>187
テッキーじゃないとXtalの読み方なんか人それぞれだと思うぞ
水晶振動子の素子名とかふつうしらんだろ
189デフォルトの名無しさん:2010/08/20(金) 21:28:57
perl , ruby と宝石名が続いたから似たような名前にしたと言ってたな
190デフォルトの名無しさん:2010/08/21(土) 14:37:03
uninitialize ということは、未初期化状態にするの? メモリにランダムな値を書き込むとか。
191デフォルトの名無しさん:2010/08/21(土) 15:06:47
XtalじゃなくてX'talならすんなり読めたかもしれない。

X'masって書いたりするからな。
192デフォルトの名無しさん:2010/08/21(土) 15:44:57
X'masって表記をするのはアジアだけだよ
少なくとも現代の英語圏ではそんなアポストロフィの使い方はしない
普通にXmasと書く
193デフォルトの名無しさん:2010/08/21(土) 17:51:03
axeのOSを知らんのか(普通は知りません)
194デフォルトの名無しさん:2010/08/21(土) 18:28:28
L'ua とかフランス語っぽくてかっこいいよな
195デフォルトの名無しさん:2010/08/21(土) 21:07:16
XMLとかは、exの略で、Xを使ってるんだな。
発音からだけど、そういう略は多いよな。
196デフォルトの名無しさん:2010/08/21(土) 21:54:48
S'ph't
197デフォルトの名無しさん:2010/08/22(日) 01:21:05
ポルトガル語でおk
198デフォルトの名無しさん:2010/08/22(日) 04:24:21
俺の知ってるポルトガル語はセレソンとジュイスぐらい
199デフォルトの名無しさん:2010/08/22(日) 08:07:47
カステーラ
200デフォルトの名無しさん:2010/08/22(日) 09:16:18
ボランチ
201デフォルトの名無しさん:2010/08/22(日) 09:48:01
eXtreame Programing略してXPだもんな
202デフォルトの名無しさん:2010/08/22(日) 16:34:36
>>198
スレタイ
203デフォルトの名無しさん:2010/08/22(日) 18:39:31
Luaはポルトガル語で月
Squirrelは英語でリス
Xtalは日本語で
204デフォルトの名無しさん:2010/08/22(日) 19:15:22
Xtal=クロス・タル=タルタル=タルタルソース
205デフォルトの名無しさん:2010/08/23(月) 05:20:22
>>202
>>198はたぶんアニオタ的に突っ込んでほしかったんだと思われる
206デフォルトの名無しさん:2010/08/24(火) 07:48:42
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >

207デフォルトの名無しさん:2010/08/25(水) 01:51:10
いつのまにかSquirrel 3.0 beta 2.1出てた。まだ元気だったんだな
208デフォルトの名無しさん:2010/08/26(木) 08:12:46
マイナーすぎるな
209デフォルトの名無しさん:2010/08/26(木) 08:24:25
Squirrelは日本における商業での採用実績はスクエニのやつだけなのか?
もしかしてSquareとスペル似てるから使ってみたってだけだったのかな
210デフォルトの名無しさん:2010/08/26(木) 10:31:44
使ってるのを公言してるのはスクエニくらいだな
こっそり使ってるところはそこそこ多いと思うけど
211デフォルトの名無しさん:2010/08/26(木) 12:40:17
zlibライセンスはつかってること表記しなくていいからね
212デフォルトの名無しさん:2010/08/26(木) 21:40:07
AngelScript|Д`)ノ<zlibライセンスと聞いて飛んできました
213デフォルトの名無しさん:2010/08/29(日) 03:41:28
LuaはMITのどっかに書いといてねの効果で実績が広まりやすいんだろうか?
だとしたら割りといい考えかもしれない。 ・・・だがGPL。てめぇは駄目だ
214デフォルトの名無しさん:2010/08/29(日) 07:12:12
いや、旧BSDLみたいに、どこかに書いてねライセンスはGPL非互換だし。

そういうことだったらMITライセンスはGPL非互換になっちゃう。
215デフォルトの名無しさん:2010/08/29(日) 10:57:38
Cygwinみたいに、GPL非互換のレイヤーの上にGPL互換のレイヤーを乗せたらどうなるの?
216デフォルトの名無しさん:2010/08/29(日) 11:18:04
Squirrel3 beta2.1用にメモリアロケータパッチを作ってみたーよ。
sq_openで自前のメモリアロケータを指定できます。
著作権は放棄しますんで煮るなり焼くなりご自由に。
とりあえず動いてるっぽいけどあまりテストしてないので問題があれば教えて欲しいデス
http://uploadr.net/file/833445f4bc
217216:2010/08/29(日) 12:01:53
>>216
( ´ω`) <パッチを眺めてたらバグを見つけてしまいました
コッチを使ってください。

http://uploadr.net/file/b62475d8c1
218デフォルトの名無しさん:2010/08/29(日) 12:13:26
>>214
いや、どっかに書いといてねはGPL互換だよ。
そうでないと MIT も新BSDもダメになる

GPL非互換なのは、旧BSDの「作者のの名前を広告の類にのせてはだめ」っていう「宣伝条項」

>>215
OSないしは標準インターフェースはGPL除外。よって cygwin は問題ない。
219デフォルトの名無しさん:2010/08/29(日) 12:34:54
>>218
宣伝条項ちょっと違う。
>初期のBSDライセンスには、派生物の広告に初期開発者を表示することが条件として盛り込まれていた

http://ja.wikipedia.org/wiki/BSD%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9
220デフォルトの名無しさん:2010/08/29(日) 12:53:58
>>219
第4項とまざってたすまん。今の*BSDは結局第4項もはずしてるよね
221デフォルトの名無しさん:2010/08/29(日) 14:11:00
Squirrel2.2.4(現行安定版)用のメモリアロケータパッチも作ってみました。
sampleスクリプトの出力結果がオリジナルと一致することは確認済みです。
こりらも扱いはご自由にどうぞ

http://uploadr.net/file/5df5be55f8
222デフォルトの名無しさん:2010/08/29(日) 14:59:13
squirrel の VM って基本1個つくればことたりるから(他はスレッドだし)、sv_vm_malloc 他の実装さしかえれば終了じゃ?
223デフォルトの名無しさん:2010/08/29(日) 15:25:21
>>220
2条項BSDLはまだそんなに多くないんじゃないか?
3条項BSDLが大半だと思うけど。
224デフォルトの名無しさん:2010/08/29(日) 15:27:05
>>222
VM毎に異なるヒープを使いたい場合を想定しています。
PCのように潤沢なメモリがある環境なら不要なものですね。
225デフォルトの名無しさん:2010/08/29(日) 21:09:45
VM複数つくるとかえってじゃまくさくない?
226デフォルトの名無しさん:2010/08/30(月) 00:57:44
フラグメント化の影響を抑えるためにヒープを目的別に別けて運用する場合に
VM毎にヒープが使えると便利ナノデス。
あと、
C++でnamespaceを使うように、敢えてVMを隔離したい場合もある。

luaはVMのopen時にメモリアロケータを個別に設定できたけど、
squirrelでは出来なかったのが不満だったのでパッチを作ってみた次第。
227デフォルトの名無しさん:2010/09/03(金) 16:57:03
lua!!
228デフォルトの名無しさん:2010/09/03(金) 19:17:58
229デフォルトの名無しさん:2010/09/03(金) 21:00:56
         \   l´⌒\⌒\ \\ \
           \ ヽ   )  )   \\ \\   
              (   \ \∩___∩ \\ 
           \   \  ⌒⌒| ノ      ヽ  \\      
              \ \   / # +◇iiiillllii◇ト、\ \\\ 
               \  Y |  ソ(_ ●_) ミ\  \\\  
               \ / 彡、_ |∨WV|ノ   \  \\\
                 (____)|∧MΛヽ      ̄ ̄ ヽ\\
                                \,  j  l l .l }
                        Golua!   l (_ノノノノ
230デフォルトの名無しさん:2010/09/06(月) 09:11:59
//
/ / パカッ
//)∩_∩
/.| .| ノ  ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ AngelScript!! 2.19.2
/ | ヽ |∪| /_
// │ ヽノ \
" ̄ ̄ ̄ ̄ ̄ ̄ ̄
231デフォルトの名無しさん:2010/09/08(水) 16:20:14
スタック操作むずい…
232デフォルトの名無しさん:2010/09/08(水) 18:12:50
どうすればいんだー
233デフォルトの名無しさん:2010/09/08(水) 18:34:52
ばいんだー使えばいいんじゃ
234デフォルトの名無しさん:2010/09/08(水) 19:00:31
h2xsですねわかります
235デフォルトの名無しさん:2010/09/08(水) 21:27:59
AngelScript|Д`)<スタック操作が面倒くさいと聞いて飛んできました 
236デフォルトの名無しさん:2010/09/08(水) 21:36:13
Luaさいこー
237デフォルトの名無しさん:2010/09/08(水) 23:02:30
>>233
せっかくだから、ばいんだー使えばいんだーくらい言おうよ。
238デフォルトの名無しさん:2010/09/09(木) 16:41:05
なんでお前らが宣伝してるんだよ
239デフォルトの名無しさん:2010/09/11(土) 13:51:50
Luaでlua_yieldを使うと"attempt to yield across metamethod/C-call boundary"というエラーが出ます
whileループ内でlua_yieldとlua_resumeを毎フレーム繰り返すような使い方を想定してるのですが
何か注意すべき点とかありますか?
240デフォルトの名無しさん:2010/09/11(土) 13:55:19
というよりLuaがどうやってそのエラーを検出してるのかが気になった
再入時にCスタックをトレースしてるんだろうか
241239:2010/09/11(土) 15:11:52
よくわかりませんがlua_dostringをlua_loadstringに変更したらエラーは出ずに動作しました
242デフォルトの名無しさん:2010/09/15(水) 07:16:10
>>241
lua_dostring の中から yield か resume をしているとか?
243デフォルトの名無しさん:2010/09/16(木) 02:09:27
lua_replace( L, LUA_ENVIRONINDEX );
この関数を呼ぶと PANIC: unprotected error in call to Lua API とエラーが出ます。
LUA_ENVIRONINDEXを操作する方法を知ってる人がいたら教えてください。
244デフォルトの名無しさん:2010/09/16(木) 12:34:58
マニュアルよくよめ。replaceはスタック操作するAPIだ
245デフォルトの名無しさん:2010/09/16(木) 17:42:45
replaceで擬似インデックスの環境テーブルを使うと本に書いてあったんですけど、間違ってるのかな・・・
他に環境テーブルを操作する方法ってあるんですか?
246デフォルトの名無しさん:2010/09/16(木) 18:27:53
その関数を呼んでみたけど、エラーが出ません。
エラーを出す方法を教えてください。
247デフォルトの名無しさん:2010/09/19(日) 00:46:40
ルアー最高!
魚が釣れるよ!
248デフォルトの名無しさん:2010/09/19(日) 21:15:23
Lua以外、本が出てないし使えなさそう
249デフォルトの名無しさん:2010/09/19(日) 21:37:58
本が出てるかどうかで使える使えないを判断してるの?
250デフォルトの名無しさん:2010/09/19(日) 22:00:59
ああ、ネットで小出しのバラバラな情報で使うのはオレには無理だからな
251デフォルトの名無しさん:2010/09/19(日) 22:04:56
最低でも作者が死ねば消えそうなのはだめだな
252デフォルトの名無しさん:2010/09/19(日) 22:23:42
個人で作ってる奴は抵抗あるねえ。
253デフォルトの名無しさん:2010/09/19(日) 22:41:51
オープンソースのプロダクトの大半は個人開発から始まってるし、
それらの中には我々が普通に使ってるライブラリだってあるわけだが、
そういったものを否定する気なのか?
254デフォルトの名無しさん:2010/09/19(日) 22:46:42
それで判断するのはどうかって思うけど外人の作ってるプロジェクトの
ウェブサイトはやたら豪華だったりするよな。で、Googleのホスティングで
済ませてるようなところはすぐぽしゃるイメージw
255デフォルトの名無しさん:2010/09/19(日) 22:48:28
イメージで語られても。

必要な機能が実装されていて、
枯れているか、枯れてなくてもちゃんとメンテされていればそれでいい。
256デフォルトの名無しさん:2010/09/19(日) 23:25:53
じゃあもうAngelScript使おうぜ。
257デフォルトの名無しさん:2010/09/20(月) 01:10:12
俺が死んだら日本のゲーム業界は大混乱に陥る
258デフォルトの名無しさん:2010/09/20(月) 01:25:51
特定しますた
259デフォルトの名無しさん:2010/09/20(月) 01:31:14
>>251
これはあるな
俺もそういうのネットのすべてのコンテンツで気になるわ
260デフォルトの名無しさん:2010/09/20(月) 07:19:40
ある程度ネットで露出してる人は遺書用意しといてほしいね。
どこでも遺書
261デフォルトの名無しさん:2010/09/20(月) 16:58:27
既出かもしれないけど、Apache2.3からmod_luaが標準搭載されるらしいね。
262デフォルトの名無しさん:2010/09/21(火) 08:44:27
アドベンチャーゲームのテキストに使おうと思ったんだけど
なんか違うねこれ
263デフォルトの名無しさん:2010/09/21(火) 09:37:54
いや違わないと思うぞ
264デフォルトの名無しさん:2010/09/21(火) 11:03:54
luaをADV用のシナリオ記述用のスクリプトとして使うのはとても間違ってるだろう。エンジン記述用ならともかく。
265デフォルトの名無しさん:2010/09/21(火) 11:26:41
どーだろ。
素のLuaに近い書き方でAdvのスクリプトが打てるようになる、
というのはそんなに悪くない設計だと思うけど。

ただしプレーンなシナリオとは文法に乖離があるから、
シナリオテキストからAdvスクリプトを生成するコンバーターが欲しいところだけど。
266デフォルトの名無しさん:2010/09/21(火) 11:52:03
いや、最悪の設計です。作業効率だだ下がりな上にバグ頻発。

コンバート方式ならかろうじてありですが、コンバート後のスクリプトをいじると同じことなので、
ことADVのスクリプトにおいては専用記述スタイルのスクリプトのみってのが無難です。
lua で命令を拡張可能、とかならあり。
267デフォルトの名無しさん:2010/09/21(火) 13:00:27
君の頭の設計も悪いみたいね
268デフォルトの名無しさん:2010/09/21(火) 13:01:48
つーかpythonとかluaとかrubyとか組み込んでるゲームエンジンはみんなその形しか取ってないよね。
269デフォルトの名無しさん:2010/09/21(火) 13:22:13
その形ってどの形?
270デフォルトの名無しさん:2010/09/21(火) 17:28:36
アドベンチャー用のシナリオテキストは一種のDSLだろうしシナリオはシナリオでいいと思うけどな。
CやC#とかLuaでプラグイン書けるくらいでいいだろ

ADVエンジンの吉里吉里だって、独自のスクリプトの上にラッパーでシナリオ型のDSL用意してるだろ?
パッと見の構造の複雑さは増すが、ライターや初心者はラッパーだけ触ればいいし、
手が込んだものを作りたかったらスクリプトの層を触ればいいと考えると
よく考えられてると思うけどな
271デフォルトの名無しさん:2010/09/21(火) 18:02:20
>>270
よく考えなくても普通にそこにたどり着くもんだ。
272デフォルトの名無しさん:2010/09/21(火) 18:09:39
スクリプト仕事してるとたどりついてないシステムをたまに見かける
273デフォルトの名無しさん:2010/09/21(火) 18:17:20
オレオレフレームワークぐらい作ってみたらいかがか。
274デフォルトの名無しさん:2010/09/21(火) 18:35:36
コンバート後さわらないって前提で、直接言語にしてしまうってのはわりとおもしろいとは思うんだけど、セーブロード処理がなー
275デフォルトの名無しさん:2010/09/21(火) 18:46:13
実作業では修正してリロードを繰り返すんだろうから
コンバーターより専用スクリプトの方が楽だろうな
276デフォルトの名無しさん:2010/09/21(火) 23:37:19
うちはLuaをスクリプトに使ってて、コンバート方式でやってる。
そのままだと>>275の言うとおりに面倒なので、まず拡張子を独自のものにして
その拡張子に関連付けでコンバートプログラムが動作するようにする。
これでExplorerからダブルクリックで変換できる。
さらにエディタのマクロを使って、スクリプトの編集保存時にコンバーターを呼び出して
自動変換するようにしている。
コンバート時にluaのエラーチェックも行ってる。

>>274の言うとおり、デフォルトだとセーブロード処理が難しかったので
Luaの内部にも手を入れてる。
277デフォルトの名無しさん:2010/09/21(火) 23:58:24
メインのシナリオ記述はXML、
ちょっと高度なことをするときはスクリプトという風にしようとしたんだけど

XMLだけならセーブは簡単に出来そうだけど、
スクリプトのセーブが困難そうで困った
278デフォルトの名無しさん:2010/09/22(水) 00:19:22
あんまり細かく書くと同僚にバレそうだが、うちではシナリオスクリプトにCプリプロセッサ+俺様スクリプト、
演出などにAngelScript使ってるな。
AngelScriptの場合、スクリプトの途中でSuspendして一時停止させた状態を保存する方法がないので、
とりあえずセーブしなきゃならない部分は以前から使ってた俺様スクリプト使ってる。
279デフォルトの名無しさん:2010/09/22(水) 11:22:44
>>277
そんな使い方ならLispを組み込めばいいのに。
280デフォルトの名無しさん:2010/09/23(木) 05:55:37
ラチェット&クランクですかね。地獄だと聞いてますが
281デフォルトの名無しさん:2010/09/23(木) 15:57:13
>>279-280
GOALだっけ

これ?
Game Oriented Assembly Lisp - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp
Naughty Dog が PS2 時代に使っていた Lisp は命令型スタイルの機械語変換 - minahitoの鯉日記
http://d.hatena.ne.jp/minahito_carp/20100523/1274589658

> Naughty Dog が PS2 時代に使っていた Lisp は命令型スタイルの機械語変換
>
>  Naughty Dog の Lisp 好きは有名な話ですが、 Playstation 2 に用いられていた Lisp は、今日僕らが想像するような VM の組み込みなどとは多少事情が異なるようです。 Wikipedia に Game Oriented Assembly Lisp として情報がまとまっていました。
>
> * ゲーム指向アセンブリLisp(またはGOAL)は、Naughty Dog のアンディ・ギャビン*1とジャック&ダクスターの開発チームによって開発された
> * ジャック&ダクスターシリーズ全般の開発に使用された
> * GOAL の構文自体は Scheme にそっくり
> * GOAL は副作用を許容し、イベントの系列を記述させるなど、命令型プログラミングスタイルを奨励していた
> * GOAL はインタプリタを持たず直接 Playstation 2 のマシン語に変換していた
> * 限定的ではあるがガベージコレクションあり
> * インラインアセンブリをサポートしていた
> * GOAL コンパイラは Allegro Common Lisp で実装されていた。
> * GOAL を組み込まれたゲームプログラムは、(仮想機械実装ではないにも関わらず)GOAL コードのエディット&コンティニューをサポートしていた
> * 前身にやはり Andy Gavin が開発した GOOL という言語があった。こちらはクラッシュバンディクーに使用された
> * 現在の Naughty Dog では GOAL の開発を継続していない*2
>
> *1:Naughty Dog の創業者の一人
> *2:が、Lispは継続してます
>
282デフォルトの名無しさん:2010/09/29(水) 05:29:47
>>101 Windowsの .net向けNVLゲームエンジンで、
3月の時点でIronPythonを組み込んでた(速度上ngenでネイティブコンパイル必須)ものが、
7月にはBooになってネイティブコンパイル不要になっててビビった。ようやるわ。

ファイルリスト(Boo[左側]とIronPython[右側])

                     myngen.exe (ngen確認用)
System.Data.SQLite.DLL      System.Data.SQLite.DLL
Igs.dll                  Igs.dll
Igs.DirectShow.dll           Igs.DirectShow.dll
Igs.FileFormat.dll
                     Igs.OggVorbis.dll
Igs.Options.dll             Igs.Options.dll
Igs.Plugin.dll
Igs.Scripting.dll            Igs.Scripting.dll
Igs.SlimDX.dll             Igs.SlimDX.dll

Boo.Lang.dll               Microsoft.Dynamic.dll
Boo.Lang.Compiler.dll        Microsoft.Scripting.dll
Boo.Lang.Interpreter.dll       Microsoft.Scripting.Core.dll
Boo.Lang.Parser.dll          Microsoft.Scripting.Debugging.dll
Boo.Lang.PatternMatching.dll     Microsoft.Scripting.ExtensionAttribute.dll
Boo.Lang.Useful.dll
                     IronPython.dll
                     IronPython.Modules.dll
                     Python.Mio.dll
                     Python.Stdlib.dll
283デフォルトの名無しさん:2010/09/29(水) 09:27:41
よっぽど苦情多かったんだろうなw
284デフォルトの名無しさん:2010/09/29(水) 09:31:48
BooをBooで返したわけだな
285デフォルトの名無しさん:2010/09/29(水) 10:41:40
>>282-284
既にC/C++のゲームエンジンより速い場合あるしな。
ソースは色に出でにけりわが恋はと
オンボロPCで定常状態のCPU使用率を比較した場合。
286デフォルトの名無しさん:2010/09/29(水) 10:44:26
それは VRAM が少なすぎて足ひっぱってるんじゃね? たぶん同程度の画像素材を同程度使えば負けるとオモ
287デフォルトの名無しさん:2010/09/29(水) 12:42:01
Javaでも数値演算などではC++に勝る時もあるらしい。
メモリ使用量ではJavaも>>282もボロ負けだろうな。
288デフォルトの名無しさん:2010/09/29(水) 12:52:58
>>287
ゲーム開始していくらか進めてみたけど、Vistaで60-80MB。
別に多くもないし少なくもないな。

オンメモリでどんだけの素材を持たせてるかによるんじゃね?
タユタマだったら300MB、バルダーシリーズだったら700MB位食うし。
289デフォルトの名無しさん:2010/09/29(水) 13:42:25
>>282
ぐぐってもでてこないんだけど、NVLって正式名称どういうエンジン名?
290デフォルトの名無しさん:2010/09/29(水) 13:52:23
>>289
NoVeLじゃね
291デフォルトの名無しさん:2010/09/29(水) 18:10:45
>>282
ファイル一覧を見ただけでゲーム名がわかるぜ
292デフォルトの名無しさん:2010/09/29(水) 18:11:47
Boo って .NET Framework 4.0 でも使えるん?
293デフォルトの名無しさん:2010/09/29(水) 18:12:45
Boo!!つかえません。
294デフォルトの名無しさん:2010/09/30(木) 01:54:37
.NETのDLRはアドベンチャーゲームの組み込み言語としてすら使えないほどおそいのかよマジか
実際は実行速度は問題なくて、ngenだけ遅いという話ではないよな。必要だからngenかけてるんだろうし

295デフォルトの名無しさん:2010/09/30(木) 01:58:40
Igs把握w

結局当初の製品はパフォーマンスの問題で別のエンジンに移植してリリースしたのね
大変だな
296デフォルトの名無しさん:2010/09/30(木) 02:06:56
Igsのシステム開発者のブログ見て
昨年、IronPythonマンセーの人が常駐しててぱったりこなくなったのを見ると
>>282 の事情があったの何か重なるものが、、、と思った(´;ω;`)
297デフォルトの名無しさん:2010/09/30(木) 02:13:46
>>294
定常状態なら許容範囲なんだけど、
初期化があまりに遅すぎる。
KAGレベルの開発環境を構築すると……。
298デフォルトの名無しさん:2010/09/30(木) 02:36:03
なんだかJavaのVM起動遅いから、JavaVMで動くスクリプト言語は使いにくいみたいな話を思い出した
サーバーサイドだとあまり問題ないだろうけどね

前スレでもでてたけど、最初の実行が遅いというやつか

.NETのユーティリティソフトがGUIもっさりと起動遅いというので避けられる現象があるな
299デフォルトの名無しさん:2010/09/30(木) 07:42:46
さっと起動させて、ちょっと使って終了。また後でさっと起動〜
みたいな使い方には向かないわな。
ゲームなどには意外と良いのかもだけど。
300デフォルトの名無しさん:2010/09/30(木) 08:50:30
PCスペックの進化でだいぶ気にならなくなってきたな
メモ帳や電卓みたいなソフトでは許容できないが
301デフォルトの名無しさん:2010/10/05(火) 12:40:53
Luaなんですけど
C++のオブジェクト一つにつき一つの独立したLua実行環境をもたせたいんですがstateを複数生成するほかにやり方は在りますか?

302デフォルトの名無しさん:2010/10/05(火) 13:31:16
コルーチンを含めてlua_Stateの生成が嫌ということか?
303デフォルトの名無しさん:2010/10/05(火) 14:54:00
>>301
日本語でおk
304デフォルトの名無しさん:2010/10/06(水) 00:52:32
質問がわからない
305デフォルトの名無しさん:2010/10/06(水) 07:41:32
>>301
生成すればいいやん
306デフォルトの名無しさん:2010/10/06(水) 09:35:08
なんていうかグローバルな名前を汚されたくないんです
307デフォルトの名無しさん:2010/10/06(水) 11:16:37
ローカルに生成する
namespaceでくくる
メンバにして確保する
308デフォルトの名無しさん:2010/10/06(水) 11:35:12
Luaにnamespaceなんて無いでしょ
309デフォルトの名無しさん:2010/10/06(水) 12:15:12
いや、>>306がLuaの名前空間のことだったらState複数生成したほうが汚れないだろ。
C++側のことだと解釈しても意味はわからんが。
オブジェクト毎に生成するってことは元々なんかのメンバになってるだろうし。グローバルには持ってこないだろどう考えても。
310デフォルトの名無しさん:2010/10/06(水) 12:39:01
class Obj
{
lua_State * s;
public:
Obj(void) : s(lua_open()) {}
~Obj(void) { lua_close(s); }
};
寿命短いクラスだとパフォーマンスが残念
Luaのグローバルテーブルにオブジェクト専用のテーブルを用意するのが良い
C++オブジェクト生成時にオブジェクトのアドレスをキーにしてテーブルを登録
C++オブジェクト破棄時にテーブルを削除
311デフォルトの名無しさん:2010/10/06(水) 14:47:45
namespace無いとか業務使用不可なレベルだな
312デフォルトの名無しさん:2010/10/06(水) 14:52:11
JavaScriptディスってんのか
313デフォルトの名無しさん:2010/10/06(水) 14:53:16
はい
314デフォルトの名無しさん:2010/10/06(水) 15:00:00
v8ってマルチスレッドできるようなことが書いてあったけど無理なのか
ということはマルチスレッド対応してるのはluaだけ?
315デフォルトの名無しさん:2010/10/06(水) 15:07:40
>>312
JSはネームスペースを擬似的につくれるだろ。
316デフォルトの名無しさん:2010/10/06(水) 15:17:30
>>314

マルチスレッドってのが協調スレッド(コルーチン)のことなら squirrel も対応してる。
v8 はサポートしてないが、サポートしようとしているプロジェクトはある模様(js-coroutine)
どの程度完成してるのかは知らない

マルチスレッド環境で安全に実行可能か、ということだと、lua も squirrel も v8 もスレッドセーフに
書かれてないので全部アウト。複数スレッドから呼ぶと簡単にふっとぶ。

コルーチン機能があって、スレッドセーフってのだと、Javascript だと SpiderMonkey がそうじゃないかな。
あと、AngelScriptとか
317デフォルトの名無しさん:2010/10/06(水) 16:13:53
>>314
たしかXtalも対応してたんじゃないかな。
318デフォルトの名無しさん:2010/10/06(水) 16:16:27
>>315
擬似的にならLuaでもいくらでもできますがな
319デフォルトの名無しさん:2010/10/06(水) 20:20:20
マルチスレッド環境で使うという意味なら、
Lua自体はスレッドセーフではないが、State同士は独立しているので各スレッドにStateを持たせる。
などで対処できると ぷろぐらみんぐ いん るあ にも書いてある
squirrelに関しては深く調べてない。
というかVMの持ってる状態(スタックとか)にマルチスレッドからアクセスしたら大抵まずいと思う。

ネイティブスレッドを使えるかという意味なら
Xtal,GameMonkeyが確か使えたと思う。スレッドに関してはGameMonkeyが強いそうな。どこかで聞いただけだけど。

以上うろ覚え。
AngelScriptがどうだったか思い出せない。コルーチンみたいなことはAddOnに入ってる。
これもContextに複数スレッドからアクセスしなければいけるんかな。
320デフォルトの名無しさん:2010/10/07(木) 01:21:23
単に、重い処理を実行したときに、ウィンドウが固まるのを防ぐのが目的なら
コルーチンで十分ってことですか?
321デフォルトの名無しさん:2010/10/07(木) 01:32:47
そういう時は自主的に資源を解放する必要があるコルーチンはほとんど役に立たない
322デフォルトの名無しさん:2010/10/07(木) 11:42:07
Lua内から別なLua_Stateを立ち上げられるようにすればいいよ
323デフォルトの名無しさん:2010/10/08(金) 09:44:51

エスパーの集まりだな
324デフォルトの名無しさん:2010/10/08(金) 10:54:52
ぅあこわい
325デフォルトの名無しさん:2010/10/10(日) 18:37:12
今LuaでOAuth認証とかやろうと思ったんだが、どこかにLuaのOAuthライブラリないかな・・?
なければつくるんだけど・・・
326デフォルトの名無しさん:2010/10/10(日) 18:41:28
今LuaでOAuth認証とかやろうと思ったんだが、どこかにLuaのOAuthライブラリないかな・・?
なければつくるんだけど・・・
327デフォルトの名無しさん:2010/10/10(日) 18:42:15
あれ・・・連投になってしまった。すまん
328デフォルトの名無しさん:2010/10/10(日) 23:34:48
329デフォルトの名無しさん:2010/10/11(月) 10:18:32
ぅあおあうth
330デフォルトの名無しさん:2010/10/12(火) 03:38:34
LuaLの「L」って何ですか?
331デフォルトの名無しさん:2010/10/12(火) 03:51:06
ライブラリ
332デフォルトの名無しさん:2010/10/12(火) 04:01:01
とは限らない
333330:2010/10/12(火) 22:20:16
ありがとうございました。
334デフォルトの名無しさん:2010/10/13(水) 00:05:01
>>328 お、センキューですw
335デフォルトの名無しさん:2010/10/13(水) 13:12:41
これはLuaがない環境でも動かせるようにexe化することって出来ませんか?
336デフォルトの名無しさん:2010/10/13(水) 13:30:58
できますよ
337デフォルトの名無しさん:2010/10/13(水) 13:40:52
むしろ exe 化する以外にどう使うのかと
338デフォルトの名無しさん:2010/10/13(水) 14:20:31
ttp://karetta.jp/book-node/lua/227700

print "\a"

Beep音がなりません
これで合ってます?
339デフォルトの名無しさん:2010/10/13(水) 14:28:01
端末が 0x07 で Beep 音が鳴る設定になってる?
340デフォルトの名無しさん:2010/10/13(水) 14:37:27
なんですか0x07っていう謎のコードは
OSはWindows Vista 使ってます
何か設定しろってことですかね?
341デフォルトの名無しさん:2010/10/13(水) 14:47:38
cmd.exe から実行すればWinでも鳴るはず
342デフォルトの名無しさん:2010/10/13(水) 14:50:08
>>340
BELLコードも知らずにやってるのか?
343デフォルトの名無しさん:2010/10/13(水) 14:50:17
>>341大先生、あなたは神様です
鳴りました
344デフォルトの名無しさん:2010/10/13(水) 14:54:10
すまん、ちがった。
Winの場合、サブシステムがコンソールになってないとそもそも標準入出力がコンソールと接続しないのでならない。

サブシステム:Windows でも自力でコンソール開いて標準入出力と接続すれば鳴ると思われ。余分に窓でるけど。
345デフォルトの名無しさん:2010/10/13(水) 14:57:03
折角の新入りさんだ
丁重に扱え
346デフォルトの名無しさん:2010/10/13(水) 16:09:02
'\a' == 0x07 ってことを言ってるだけでしょ
347デフォルトの名無しさん:2010/10/13(水) 23:41:19
C/C++ & Lua & LuaBind & SDL_ttfでの質問です。
// hoge.h
#pragma one
typedef struct _Hoge Hoge;
Hoge *OpenHoge();
void CloseHoge();
// hoge.cpp
struct _Hoge{ ... };
Hoge *OpenHoge(){ return new Hoge; }
void CloseHoge(Hoge* hoge){ delete hoge; }
上記のように構造体定義がソースファイルに書かれている場合は
どのようにバインドしたらいいのでしょうか?

// main.cpp
module(L)[
class_<Hoge>("Hoge"),
def("OpenHoge",&OpenHoge),
def("CloseHoge",&CloseHoge)
];
でコンパイルは通りますが、スクリプト実行時に
std::runtime_error: `Trying to use unregistered class`
がでます。
元ソースに手を加える事は避けたいので
int l_OpenHoge(lua_Stage* L){
lua_pushlightuserdata(L,(void*)OpenHoge());
return 1;
}
などとラップすると動くには動くのですが数が多いので大変ですし何より不恰好です。
extern struct _Hoge{ ... };
のような事がやれればいいのですが・・・
348デフォルトの名無しさん:2010/10/14(木) 00:25:09
どうしてもソースさわりたくないなら、バインドしてるソースで #include "hoge.cpp" すればいいんじゃね?
349デフォルトの名無しさん:2010/10/14(木) 00:52:14
>>348
それはもっと不恰好ですよね・・・
350デフォルトの名無しさん:2010/10/14(木) 00:56:32
それなら素直にソースなおしなされ。

hoge.h はパブリックヘッダで hoge.cpp でプライベートに構造体を定義してあるんだろうけど、その構造体定義だけ hogeprivate.h とかわけて、
hoge.cpp と バインダ定義してるとこで include するよろし
351デフォルトの名無しさん:2010/10/14(木) 01:37:40
>>350
えーと

ソースに手を加える
Hoge型を必要とするもの全て個別にラップする

この二つ以外に方法があればと質問した次第であります。
352デフォルトの名無しさん:2010/10/14(木) 02:26:45
むちゃゆーな
353デフォルトの名無しさん:2010/10/14(木) 02:32:23
ああ、Hoge をラップするクラスを main.cpp でつくればいいんじゃね?
354デフォルトの名無しさん:2010/10/14(木) 02:36:57
実際、言語によってはLuaのようなものに組み込むことが前提になっていない場合、
組み込みにくいんだよな。

LuaBindみたいなのが用意されていても、そのバインダの結局想定範疇を超えると細かい調整がいる。

ラッパーは手動ではやっとれん。
ラッパー自動生成する仕組みはあったとは思うが。
SWIGだっけ
355デフォルトの名無しさん:2010/10/14(木) 02:52:02
>>352
自分でもそうは思うのですが
自分の頭が足りていないだけで
実は他に何か楽な方法があるのではないかと思い質問してみました。

>>353
Hoge型とはこんな造りですよ
と教える手段が無いまま挑んでも
lightuserdataを使うハメになるので
行き着くところは同じなんじゃ・・・
356デフォルトの名無しさん:2010/10/14(木) 02:55:22
>>355
実施個別に関数全部手でかくのと同程度の労力にはなるだろうけど、
ラッパークラスを作ってそれをバインダーで登録したほうがソースの見た目は奇麗だろうね、ってことで。

バインダはコンパイラの機能をつかって記述を減らすテクニックであって、コンパイラに
検知できないことはどうしようもない。人が書き起こすしかないべ。

357デフォルトの名無しさん:2010/10/14(木) 02:58:59
名言すなあ
358デフォルトの名無しさん:2010/10/14(木) 03:16:22
その例だと、こんなかんじのラッパークラスつくって、
a = HogeWrap(); a:open() とかして使うのが楽かと。

class HogeWrap {
public:
HogeWrap() : data(NULL) {};
~HogeWrap() { close(); };
void open() { close(); data = OpenHoge(); }
void close() { if (data) { CloseHoge(data); data=NULL;} }
... 他いろいろ必要なメソッド if(data) を忘れずに
private:
Hoge *data;
};
359デフォルトの名無しさん:2010/10/14(木) 04:08:26
>>356
趣旨がw

>>358
クラスでラップしちゃう方法やら
ネームスペースで囲って必要なものだけフィルタする方法もありますが
そういったやり方はどうも不恰好に見えたので質問した次第であります。

何故Hoge型をスクリプト側に認識させたいかといいますと
出来る限りオリジナルに近い形で公開したいのです。
そうすればクラスリファレンス不要ですから迷うことはありませんしね。

オリジナルのソースを尊重しソース改変などの2度手間を避け
#include "xxx.c/cpp" などのライブラリの意味を根本から覆す事のない
ナイスなアイデアがあるのではと。

とりあえず、結論としては
c/cppソース内に隠蔽された構造体、クラスをバインドする方法はない
という事ですかね?

何か抜け道があると思うんだけどなぁぁぁ
360デフォルトの名無しさん:2010/10/14(木) 09:51:33
抜け道もなにも・・・

えーと、たとえば操作メソッドが必ず第一引数に構造体のポインタもってるとか
構造に規則はあるんでしょ?じゃあ、それを前提にしたバインダを自前で書けば良いだけ。

クラスにラッピング〜ってのは、luabind をはじめとする多くのバインダはクラス(構造体)構造を
前提にしたバインダだから、それを使うのならそれにあわせないとダメだよってだけの話。
361デフォルトの名無しさん:2010/10/14(木) 20:54:11
ぶっちゃけLuaってC++と相性あんまし良くないよね
みんなもっと天使スクリプト使えばいいのに
362デフォルトの名無しさん:2010/10/14(木) 20:58:29
テンシチャンマジテンシチャン
363デフォルトの名無しさん:2010/10/14(木) 23:29:15
オサルサンマジオサルサン
364デフォルトの名無しさん:2010/10/15(金) 01:09:09
Luaってなんであんな風にしたんだろね
365デフォルトの名無しさん:2010/10/15(金) 01:51:08
むしろC++が特殊すぎて、他のあらゆる言語と相性が悪いんじゃないかと思う。
C++のくびきから離れると、楽だぜー。
366デフォルトの名無しさん:2010/10/15(金) 07:46:50
LuaをC/C++以外のどこで使うんだろ。
疑問である。
367デフォルトの名無しさん:2010/10/15(金) 09:23:52
>>361
> ぶっちゃけLuaってC++と相性あんまし良くないよね
具体的にどのあたりが?

これだけ簡単に組み込めて
高速で柔軟性もあり
コンパクト(シンプル)で習得も容易なのに
相性が悪いとは到底思えないんだけど
368デフォルトの名無しさん:2010/10/15(金) 09:32:59
SWIG の C++ 対応は良くできてると思うけどなぁ。
Box2D のバインダを作ってみたけどすごく簡単だった。
369デフォルトの名無しさん:2010/10/15(金) 09:46:53
例外の対処もめんどうだし
ガベコレってリソースの寿命把握しにくいし
テンプレート使えないし
C++じゃなくてCで使ったほうがいいよ
370デフォルトの名無しさん:2010/10/15(金) 11:23:25
lua や squirrel と接続する機能を C で書くとか考えたくないな
371デフォルトの名無しさん:2010/10/15(金) 11:31:14
>>370
逆にそう言うのはCで書いたほうがいい。
Squirrelは処理系自体はC++で実装されてるけど
外部APIはC言語準拠になってるわけだし。
372デフォルトの名無しさん:2010/10/15(金) 11:34:17
squirrel 側の内部概念がクラスもってるのに、それに接続するオブジェクトを C で書くとか手間が増えるだけだぜ……
373デフォルトの名無しさん:2010/10/15(金) 11:37:52
>>372
仮想スタックに対する操作というレベルで考えれば、
LuaもSquirrelもほとんど差はないんだぜ?
374デフォルトの名無しさん:2010/10/15(金) 11:44:02
lua でも squirrel でも普通バインダ使うだろ
どうしてもスタックさわる必要がある場合でも、そのスタック処理自体を隠蔽したC++のクラスをまず作るだろう。
375デフォルトの名無しさん:2010/10/15(金) 11:46:26
そしてスルーされる天使ちゃん。

あれはあれでC++すぎて使う意義がぴんとこないんだ
376デフォルトの名無しさん:2010/10/15(金) 12:56:47
残酷な天使のテーゼ
少年よ神話になれ
377デフォルトの名無しさん:2010/10/15(金) 17:52:39
バインダってTMPとかでカオス状態になったクラスでも正確にLuaに公開してくれんの?
378デフォルトの名無しさん:2010/10/15(金) 18:04:23
カオスな定義さえ書けばいけるんじゃね
379デフォルトの名無しさん:2010/10/15(金) 18:08:20
テンプレートを使えない時点でお察し下さい
380デフォルトの名無しさん:2010/10/15(金) 21:20:01
>>375
他のスクリプト言語と同じで外部に記述できるのがでかいと思うよ。
C/C++とほとんど文法変わらないから、C/C++側で定義している列挙子(enum)やら定数やらほとんどそのまま持っていける。
Luaとかと違ってデフォルトでコルーチンないけど、作るの簡単だし。
381デフォルトの名無しさん:2010/10/15(金) 22:02:59
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ

382デフォルトの名無しさん:2010/10/15(金) 22:04:59
                           __,,:::========:::,,__
                        ...‐''゙ .  ` ´ ´、 ゝ   ''‐...
                      ..‐´      ゙          `‐..
                    /                   \
        .................;;;;;;;;;;;;;;;;;;;;;;::´                      ヽ.:;;;;;;;;;;;;;;;;;;;;;;.................
   .......;;;;;;;;;;゙゙゙゙゙゙゙゙゙゙゙゙゙      .'                            ヽ      ゙゙゙゙゙゙゙゙゙゙゙゙゙;;;;;;;;;;......
  ;;;;;;゙゙゙゙゙            /                           ゙:               ゙゙゙゙゙;;;;;;
  ゙゙゙゙゙;;;;;;;;............        ;゙                             ゙;       .............;;;;;;;;゙゙゙゙゙
      ゙゙゙゙゙゙゙゙゙;;;;;;;;;;;;;;;;;.......;.............................     >>381      ................................;.......;;;;;;;;;;;;;;;;;゙゙゙゙゙゙゙゙゙
                ゙゙゙゙i;゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙;l゙゙゙゙゙
              ノi|lli; i . .;, 、    .,,            ` ; 、  .; ´ ;,il||iγ
                 /゙||lii|li||,;,.il|i;, ; . ., ,li   ' ;   .` .;    il,.;;.:||i .i| :;il|l||;(゙
                `;;i|l|li||lll|||il;i:ii,..,.i||l´i,,.;,.. .il `,  ,i|;.,l;;:`ii||iil||il||il||l||i|lii゙ゝ
                 ゙゙´`´゙-;il||||il|||li||i||iiii;ilii;lili;||i;;;,,|i;,:,i|liil||ill|||ilill|||ii||lli゙/`゙
                    ´゙`゙⌒ゞ;iill|||lli|llii:;゙i|||||l||ilil||i|llii;|;_゙ι´゚゙´
383デフォルトの名無しさん:2010/10/16(土) 01:05:43
LuaがC++に組み込むのが簡単と言っている奴は相当訓練されてるプログラマ
384デフォルトの名無しさん:2010/10/16(土) 01:08:15
.netでゲームエンジン作ってIronPython重い、DLRシネ、Booでようやく・・・という状況を
鼻で笑えるくらいに訓練されているとC++くらい使えるしLuaの組み込みくらいは余裕だろ
385デフォルトの名無しさん:2010/10/16(土) 03:50:06
luabindっつーライブラリがすでにあってだな。
386デフォルトの名無しさん:2010/10/16(土) 08:15:07
struct Hoge
{
};
class Fuga
{
class Piyo {};
public:
shared_ptr<Piyo> f(vector<Hoge> hv, Piyo const & p, optional<iostream &> ios);
};

バインダって使ったこと無いんだけど
こう言うクラスも簡単にバインドできるの?
387デフォルトの名無しさん:2010/10/16(土) 10:06:00
おまえわかってて書いてるだろw

388デフォルトの名無しさん:2010/10/16(土) 10:10:40
class Fuga
{
public:
shared_ptr<Piyo> f(vector<Hoge> hv, Piyo const & p, optional<iostream &> ios);
};

コレの意味がまったく理解できない俺に誰か解説お願い
389デフォルトの名無しさん:2010/10/16(土) 10:16:53
std::vector
boost::shared_ptr
boost::optional

あとはぐぐって自分で調べれ
390デフォルトの名無しさん:2010/10/16(土) 10:31:34
shared_ptr<Piyo> p;

optional<> f(){}
という使い方ぐらいなら分かるけど
クラスメンバで
shared_ptr<Piyo> p(...);
という使い方は見たこと無かったので。

と思ったら今分かった

shared_ptr<Piyo> f(vector<Hoge> hv, Piyo const & p, optional<iostream &> ios){}
これか。
391デフォルトの名無しさん:2010/10/16(土) 11:57:52
SWIG は STL のコンテナクラスはいくつか対応してるみたいだけど、Boost はさすがにだめかな。
でも typemap かけば、まぁ、可能といえば可能。簡単かどうかは知らん。

ただ、ゲームなどにスクリプトエンジンを組み込むときは、将来の変更のことも考えれば、
できるだけホスト言語とスクリプト言語のインターフェイスはシンプルししておいたほうがいいと思うんだ。
392デフォルトの名無しさん:2010/10/16(土) 12:02:50
変態テンプレートテクニックが使えなくなっちゃC++である意味なんて殆ど無いよね
393デフォルトの名無しさん:2010/10/16(土) 13:24:58
stlだろうがboostだろうが、そこに型があれば、それぞれ全部登録していけばバインドはできる。
ただ、いまあるバインダはテンプレート型意識してつくられてるのはあまりないから、
それぞれ全部メソッドを手で指定するはめになる。よく使うものは、バインダ側を拡張して、
テンプレート型ごとの自動登録処理を書いてしまうのが妥当だね。

shared_ptr は、スクリプト側のリファレンス管理とかぶるから意味が薄いな。
ただ、データの管理用の構造を組むのは簡単な部類だから、C++とのソース共用の意味では
バインダ側で汎用処理できるリリーサをはめるテンプレート一つ足しておくのは悪く無い選択。
わりと簡単に書けると思う。

vector はなー。vector そのものを型としてエントリするのは簡単だけど、
スクリプト側の配列系とうまくやりとりできたほうが嬉しいだろうからなぁ。
スクリプトの配列から全部つめなおし処理をしてくれるような型変換コードをかくか、あるいは、
lua はよく知らんが、squirrel は配列とかの参照のメタメソッド登録ってのができるので、
スクリプトの array と見た目的には同じようにアクセスできるような細工をしたクラスにするか。
スクリプト側の配列は型が汎用だけど、これはいれれるものは限定されるから、そのあたりは
入れようとした時点で例外で対処、とかかな。map も連想配列とうまくバインドできると便利そうだよね。

optional は、うーん、これはあれかなスクリプト側で void とか null とか渡されたときと、
目的の型をわたされたときとでうまく詰め替えて処理するような型変換処理を書くのがいいかな。

そんなわけで、この程度なら、テンプレート使いなら特に問題なくバインダを拡張することで対応可能だと思われる。
なかなか良いお題なので、自分のバインドコードにはそれぞれあとで考えて足してみることにするよw
394デフォルトの名無しさん:2010/10/16(土) 17:41:47
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   
395デフォルトの名無しさん:2010/10/16(土) 17:49:04
いいかげんGameMonkeyのAAをくれよ
396デフォルトの名無しさん:2010/10/16(土) 19:16:01
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ GameMonkey!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   
397デフォルトの名無しさん:2010/10/16(土) 20:17:00
このスレッドは天才チンパンジー「GameMonkeyちゃん」が
単体テストのために立てたものです。

GameMonkeyと開発者とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                         組み込み言語研究所
398デフォルトの名無しさん:2010/10/16(土) 20:25:02
そろそろ新しいクールな組み込み言語でねぇかな。既存のはそろそろ飽きてきた
399デフォルトの名無しさん:2010/10/16(土) 20:40:16
>>398
てめぇが作れ
400デフォルトの名無しさん:2010/10/16(土) 20:43:10
>>398Scheme以上にクールな組み込みスクリプト環境はねえぞ。
401デフォルトの名無しさん:2010/10/16(土) 21:14:24
Lispの一族はVB的なイージーさが致命的に欠けている
402デフォルトの名無しさん:2010/10/16(土) 21:46:07
ならJavaScriptでドヤ?
つかLISP族はプログラマー以外にスクリプトを欠かせる場合になかなかよいぞ。

専用命令を手続きとしてつくっておいてやれば、
HTMLのようにマークアップしてくれでOK。

細かい制御が必要な場合だけ共同作業。
403デフォルトの名無しさん:2010/10/16(土) 22:01:55
非プログラマにLISPを書かせる勇気がない
404デフォルトの名無しさん:2010/10/16(土) 22:38:51
非プログラマを想定する場合内部DSLは向いてないってレベルじゃない
405デフォルトの名無しさん:2010/10/16(土) 23:55:11
AngelScriptは組み込むのも簡単だよ!
ShiftJIS対応版とかも簡単だよ!
406デフォルトの名無しさん:2010/10/16(土) 23:59:48
シフトJISかよwww
407デフォルトの名無しさん:2010/10/17(日) 03:07:49
>>404
特定用途のシーケンスをだらだら書かせたりするのは割りとらくなんだけどなあ。
DSLって行ってもSQLや正規表現みたいに勉強が必要なものは作らないよ。
408デフォルトの名無しさん:2010/10/17(日) 03:11:02
lisp は括弧の関係で素人につかわせたらダメだろう。一番外の括弧なしでコマンド記述していくだけ、みたいに1段かませるならまあなんとか
409デフォルトの名無しさん:2010/10/17(日) 03:18:18
>>408
インデントのやり方をXMLやHTML風にしてあげるだけで、
ずいぶん初心者にもわかりやすくなるよ。

()のチェックや想定以外の手続き名のチェックとか、
そこらへんは自前のプログラムかけて検出するしね。
410デフォルトの名無しさん:2010/10/17(日) 22:32:59
LispってDSLが簡単に作ることができる、とよく言われてたけどあれって内部DSLのことだったのか
RubyのDSLが簡単に並みの詐欺じゃないのか
411デフォルトの名無しさん:2010/10/17(日) 22:35:21
内部DSLの利点って、
DSLつくってもけっきょくはへんすうやすうしきうめこんだりぷりぷろせっさつくるのもめんどうだよねー
というときのプログラマー向けの用途だと思ってた。
412デフォルトの名無しさん:2010/10/17(日) 22:43:28
readしてevalすれば外部DSLも簡単に!
413デフォルトの名無しさん:2010/10/17(日) 22:44:04
         \   l´⌒\⌒\ \\ \
           \ ヽ   )  )   \\ \\   
              (   \ \∩___∩ \\ 
           \   \  ⌒⌒| ノ      ヽ  \\      
              \ \   /  ●   ● ト、\ \\\ 
               \  Y |    ( _●_)  ミ\  \\\  
               \ / 彡、_  |∪| ノ   \  \\\
                 (____)―ヽノ' ヽ      ̄ ̄ ヽ\\
                                \,  j  l l .l }
                         Lua!   l (_ノノノノ

414デフォルトの名無しさん:2010/10/17(日) 22:48:12
Lispで書いたらどんな感じになる?
415デフォルトの名無しさん:2010/10/17(日) 22:52:33
このスレを見ていたらLua使いが厨房に見えるのはなぜだろうな
416デフォルトの名無しさん:2010/10/17(日) 22:59:24
>>415
そりゃあ、既にトレンドはマルチコアの活用に移りつつあるのに、
その一つ手前の軽量スクリプトで柔軟な開発をしよう、に留まってるからだ。
Luaを始めとしてほとんどの軽量スクリプトの処理系は、マルチスレッド化に対応できない。
417デフォルトの名無しさん:2010/10/17(日) 23:01:26
ならマルチコアを活用できる言語を作ればいいじゃない
418デフォルトの名無しさん:2010/10/17(日) 23:02:32
スクリプト処理系をマルチスレッド化してうれしいことがいまいち思いつかない
419デフォルトの名無しさん:2010/10/17(日) 23:46:57
やっぱりAngelScriptだな。
420デフォルトの名無しさん:2010/10/18(月) 00:15:15
だな
421デフォルトの名無しさん:2010/10/18(月) 01:59:05
>>416
頭固いな
スクリプト側で完結しようとせずに
並列化したい処理は組み込み先の言語にやらせたらいいじゃない
422デフォルトの名無しさん:2010/10/18(月) 07:03:20
>>418
複数のスクリプトを同時に走らせたい場合って無い?
結構あると思うんだけど
423デフォルトの名無しさん:2010/10/18(月) 08:27:38
>>422
走らせたきゃ走らせたら?
それが出来ない縛りでもあるの?
424デフォルトの名無しさん:2010/10/18(月) 11:11:03
>>422
んー、全部スクリプトで作ってるのならあるだろうけど、
C/C++にくみ入れてる状況ならスレッドが必要な処理は C側に持つよ。俺なら。
スクリプト側はコルーチンで十分。
425デフォルトの名無しさん:2010/10/18(月) 12:14:51
luaって静的スコープ?
クロージャーでもできる?
426デフォルトの名無しさん:2010/10/18(月) 12:57:03
>>425
localの有無
できる

427デフォルトの名無しさん:2010/10/18(月) 13:03:09
どれだけ時間がかかるか判らない処理とか、
明らかに時間がかかる処理とか、そういうのが入ってきたらどうするのよ。

コルーチン中で処理を小出しにするテクニックはあるけど万能じゃないし、
コルーチンにだけ頼ってたらすぐに破綻すると思うんだが?
428デフォルトの名無しさん:2010/10/18(月) 14:35:15
>>427
> どれだけ時間がかかるか判らない処理とか、
> 明らかに時間がかかる処理とか、そういうのが入ってきたらどうするのよ。
喩えのレベルが低すぎ。

> コルーチン中で処理を小出しにするテクニックはあるけど万能じゃないし、
> コルーチンにだけ頼ってたらすぐに破綻すると思うんだが?
スレッド使いなよ
少し前に同じ内容のレスが何度もあるんだから少しは目を通しなよ
連携が容易なんだから得意なほうに処理をまかせちゃいなよ
429デフォルトの名無しさん:2010/10/18(月) 15:01:12
>>427
そういうのはC側におくよ、と言ってるわけなんだが……。
コルーチンにたよるのはむろんそれで問題が無い範囲のみだ。

マルチスレッドのスクリプトを否定するわけじゃないよ。PC用にアプリ書く必要があるときは、
スクリプト使うならスレッドが扱えるものを選ぶ。画面固まるのイヤだし。

現状では、lua とか squirrel を選んでるジャンルでは、重たい処理は
Cで書かれたエンジン側でスレッド使ってまわすってのが暗黙の前提で
あると思う。そこに文句つけるのは微妙に筋違い。

今のPCレベルのマシンパワーがおりてくれば、コンソール機や他の組み込み用途でも
全部スクリプトで〜ってなってくる可能性はあるけどまだちょっと早いやね。
430デフォルトの名無しさん:2010/10/18(月) 21:17:58
LuaJITのインストールしたいんだけど、詳しく説明してるページありませんか?
431デフォルトの名無しさん:2010/10/18(月) 21:51:16
>>416
何故組み込みスクリプトとマルチスレッドが同時に使えない話になっているのか
コレガワカラナイ

PS3/XBOX360/PCに採用されている以上、マルチスレッド環境でも使われているということだろう
LuaならGame Programming Gems にいくつか載ってた気がするぞ
Stateをスレッド数分作成して、関数定義等は共有化する方法とかあったが、スレッド間で共有することになるから
(でなければスレッド数分複製することになる)並列処理中は定義の上書きはしない、同期処理部分で行う。
とかするのか?とか色々考えることはあるけど
432デフォルトの名無しさん:2010/10/18(月) 23:23:49
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   
433デフォルトの名無しさん:2010/10/19(火) 00:26:46
>そういうのはC側におくよ

勿論そうなんだけど、Lua側からスレッドの制御できるようにしたり、
データの同期取れるように関数拡張しない?
434デフォルトの名無しさん:2010/10/19(火) 00:32:26
>>430
./doc/install.html
435デフォルトの名無しさん:2010/10/19(火) 02:03:56
>>433
すればいいじゃん

スレッドを生成してもいいが同期を取ってはいけない
という家訓でもあんの?
436デフォルトの名無しさん:2010/10/19(火) 03:36:27
>>433
当然するにきまってるだろう。というかしないと制御できないじゃないか。

コルーチンのドライブ部分に待ち制御をしこんで、スレッド待ち中はスクリプトを起動させない形で待ち合わせするか、
あるいは、非同期動作するオブジェクトに動作確認メソッドをしこんで、スクリプトから随時ポーリングして待ち合わせするか、
は設計次第ってことで

437デフォルトの名無しさん:2010/10/19(火) 05:45:54
なんか話が微妙にかみ合ってないな。

だからそういう拡張がLuaをマルチスレッドに対応させるってことなんじゃないの?
発端は
>Luaを始めとしてほとんどの軽量スクリプトの処理系は、マルチスレッド化に対応できない。
なんだろ?
438デフォルトの名無しさん:2010/10/19(火) 08:06:04
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ

439デフォルトの名無しさん:2010/10/19(火) 08:16:24
というか、スレッド使う理由を挙げてる人間が二人いて、
・時代はマルチコアだよ!
っていってるヤツと
・コルーチンだけ使うよりスレッド使ったほうが便利だよ!
っていってるヤツがいるように見える。

>>418は前者に対するレスだと思うけど、それに対して後者で返してるんじゃねえのかなあ。
440デフォルトの名無しさん:2010/10/19(火) 08:51:36
なんだかLuaという言語の評判がいいらしい
使ってみる
CUIつまらんGUIでもやるか
wxなど使ってみる
重い処理を入れた、固まる
調べてみる、スレッド?排他?よく分からん
簡単な方法はないか、2chで聞いてみる(>>301)
コルーチンで対処出来るらしい(>>320)
マルチコアを生かしていないことにふと気づく
結論:マルチコア非対応のLuaはゴミ(>>416)

それに対する反論は一律していて
C/C++で書けよw
という内容なのだが
本人はLuaの軽量で高速、移植性があり柔軟で容易という思想はおろか
スレッド?排他?よく分からん
というレベルなので話が通じない

と俺予測してみた
441デフォルトの名無しさん:2010/10/19(火) 10:21:37
>>437
いいだしっぺの意図は、

「スクリプトのマルチスレッド実行」だろ?

反論してるやつらは皆そうみなした上での回答、
(「マルチスレッドはC側でするから別にスクリプトそのものをそうする必要はない」的な内容)
だぜ
442デフォルトの名無しさん:2010/10/19(火) 11:03:23
スクリプトそのものをそうする必要はない

これがよく意味が分からんな
443デフォルトの名無しさん:2010/10/19(火) 11:04:48
ttp://www.lua.org/about.html
>all platforms that have an ANSI/ISO C compiler
「マルチコアを生かす」プラットフォームに対応するわけがない。

Makefile には -ldl とか -lreadline とか書いてあるが、これでも御節介なレベル
444441ではないが:2010/10/19(火) 11:57:54
>>442
主観で翻訳すると

luaThread> lualibs[]の末席にでも加えてーな
一同> 無理、2軍(Lua Binaries)で実績作って来い

こんな感じかな
445デフォルトの名無しさん:2010/10/19(火) 12:25:19
>>442
python の thread モジュールとかみたいなのは無くても困らないだろ、ってことじゃね?

まあ、python(cpython) のは GIL なのでどっちにしてもマルチコア的には全然うれしくないわけだが。
仮に lua や squirre lをマルチスレッド化するとしても、ステートごと分離する以外だと、結局 GIL にするしか手はないよね。

スクリプト言語系でうまくマルチコアに対応した実行ができてるのは Haskell とかそっち系か、
あるいは、JPython とか JRuby のような、JavaVM 上でうごくやつらぐらい?

Xtal はよくわからん。詳しい人よろ。
446デフォルトの名無しさん:2010/10/19(火) 22:51:14
>無くても困らない
というか「プリエンプション」と「共有メモリ」の両方が有ると困るんだそうだ

だから「プリエンプション」がないコルーチン
または「共有メモリ」のないクラウド(笑)が流行る
447デフォルトの名無しさん:2010/10/20(水) 07:55:07
Cでマルチスレッドむつかしくてよくわかんねー -> Lua で簡単にできるようにして!
レベルでしょ。
448デフォルトの名無しさん:2010/10/20(水) 11:21:16
・プログラミング言語Lua公式解説書
・入門Luaプログラミング

入門用として一冊買うならどっちがいい?
449デフォルトの名無しさん:2010/10/20(水) 11:29:53
公式解説書のほうが1024倍ぐらい良い。下はゴミ
450デフォルトの名無しさん:2010/10/20(水) 11:53:45
即レスとか神やわ。上を速攻ポチッてきました。下は見向きもしなかった。
451デフォルトの名無しさん:2010/10/20(水) 11:55:32
お前が買うなら俺も買うぜ!
452デフォルトの名無しさん:2010/10/20(水) 12:21:11
ちっっくしょぉぉぉー・゜・(ノД`)・゜・
453デフォルトの名無しさん:2010/10/20(水) 21:33:44
組み込み言語に組み込みやすいと言われるPython選ばない時点でLuaでやりたいことっていったらたかが知れているわけでして
スクレイピングを楽にするためにRubyを組み込んだアプリはあったな。
ようは用途次第だと思うが。
454デフォルトの名無しさん:2010/10/20(水) 21:36:02
組み込みの意味が違うでしょ
ユーザーによる拡張を考えるならLuaはありえない
455デフォルトの名無しさん:2010/10/20(水) 22:23:27
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >

456デフォルトの名無しさん:2010/10/20(水) 22:39:14
auL
457デフォルトの名無しさん:2010/10/20(水) 23:01:15
スクリプト言語による効率的ゲーム開発 の改訂版が出てたんで何が変わってるのかチラッと見て知ったんだが
次のLuaのバージョンで世代別GCが実装されるらしい(C#が採用してるやつ)。胸が熱くなるな
458デフォルトの名無しさん:2010/10/20(水) 23:57:57
世代別GCかー。インクリメンタルよりもGC時間を制御しやすいから
個人的には歓迎だけど、あれフットプリント大きくなりがちなせいで
組み込み系ではあんま採用されてないような。

なんとなくLuaには似合わない気がするなー。
459デフォルトの名無しさん:2010/10/21(木) 00:23:00
>>454
このスレの「組み込み」ってアプリケーションに組み込むスクリプト言語のことと思ってた
もしかして、マイコンの組み込みのような意味合いだったの?
460デフォルトの名無しさん:2010/10/21(木) 00:32:23
どっちもだろ

実際には lua 組み込んでるアプリけっこうあるけどね。ありえないってことはない
461デフォルトの名無しさん:2010/10/21(木) 04:30:29
乗り遅れたけど、Luaでマルチコア活用だとこういうのもあるYO
http://luaforge.net/projects/lanes/

動的に複数LuaState作ってその間の通信しましょって感じのもの。
462デフォルトの名無しさん:2010/10/21(木) 04:32:45
http://kotisivu.dnainternet.net/askok/bin/lanes/comparison.html
これの Sample: のとこのコード見ると把握しやすいかも。
463デフォルトの名無しさん:2010/10/21(木) 04:39:20
Luaからスレッドの生成、停止、終了、Mutexの生成、操作できるように
したのあるけど、需要あるんかな?
バインドとboost_threadとか使い慣れてれば半日〜1日でできるような代物だし
>461 みたいなのもすでにあるだしで、要らない気はするが。
464デフォルトの名無しさん:2010/10/21(木) 09:05:51
ぜんぜん要りません
465デフォルトの名無しさん:2010/10/21(木) 10:03:06
LuaってC言語と連携してるのが多いですよね
C言語知らないとLua覚えるのは無駄ですか?
466デフォルトの名無しさん:2010/10/21(木) 10:25:28
>>465
基本的には無駄ですが
決して無駄にはしない、と言ってくれる人が現れたらその人の気分次第で変わります
467デフォルトの名無しさん:2010/10/21(木) 11:59:40
Apache でも mod_lua が標準に入ったりしてるらしいし、使い処はそこそこあるんじゃないかしら
468デフォルトの名無しさん:2010/10/21(木) 19:35:18
業務用のソフトでもLua使ってるところは普通にある。
469デフォルトの名無しさん:2010/10/21(木) 20:17:26
>>465
価値観は一様でなければ不変でもないので無駄かどうか分かる人なんていませんよ。
これでは実も蓋もありませんので
個人的な意見をつらづらと書き連ねてみる。

・素で使う(lua実行ファイルのみ)
 初心者ならば基礎的な概念は学べるので無駄にはならない
 が、あえて選ぶメリットはない。

・ありものを使う
 ・lua実行ファイル+拡張モジュールを汎用言語として使う
   汎用言語ではないので、あえて選ぶメリットはない。
 ・組み込み済みアプリをスクリプターの立場として使う。
   リファレンスを理解する事が大部分なので、必要に迫られてから腰を上げても遅くない。

・Cに組み込む(拡張する)
 いい意味で枯れてるので面白みは無いかもしれないけど無難なところ。
 ・C++も理解
   してないと面倒。

・C以外に組み込む
 組み込めますがC組み込み前提の言語なので、旨みは薄れる。
 Cに組み込む以上の知識と労力が必要。
470デフォルトの名無しさん:2010/10/23(土) 22:40:49
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ

471デフォルトの名無しさん:2010/10/24(日) 02:08:53
KVSやDBでも、組み込まれてるね。最後はJSだけど。

Memcachedを話せる永続KVSのTokyoTyrantやKyotoTycoon: Luaで拡張
http://alpha.mixi.co.jp/blog/?p=236
http://fallabs.com/mikio/tech/promenade.cgi?id=100

MySQL Proxy: Luaで拡張
http://d.hatena.ne.jp/sakaik/20080805/p3

MongoDB:JavaScriptで検索
http://www.mongodb.org/pages/viewpage.action?pageId=5079135
472デフォルトの名無しさん:2010/10/24(日) 02:19:24
LLを、並列実行の組み込み側じゃなくて一番外にあるホストにしたいなら、erlangに行ったらいいんじゃないかな。
まだ流行ってるし、並列処理向けだし。普通にPythonやRubyでもいいとおもうけど。
473デフォルトの名無しさん:2010/10/24(日) 11:09:47
Luaで拡張に行き着く当たりが「ちっ、Cで拡張モジュール書きたくねえんだよ」という声が聞こえてきてよろしい
474デフォルトの名無しさん:2010/10/25(月) 07:56:58
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   
475デフォルトの名無しさん:2010/10/25(月) 08:29:40
むしろCで書いたものをスクリプトからガンガン使いたいからのLuaだと思ってた
476デフォルトの名無しさん:2010/10/25(月) 19:45:26
それはPythonとか使うだろ
組み込み系言語といえば普通逆だわ
477デフォルトの名無しさん:2010/10/25(月) 20:46:49
関係ないがPythonの参照カウンタめんどくさい。
478デフォルトの名無しさん:2010/10/26(火) 01:27:18
C/C++との連携と言えばAngelScript。
マジ簡単
479デフォルトの名無しさん:2010/10/26(火) 07:48:46
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   
480デフォルトの名無しさん:2010/10/26(火) 20:28:39
>>478
少し前に試してみたが、組み込みやすいとは思わなかったな
Luaは別格としてもsquirrel,python,xtal以下
Rubyレベルじゃないかな?
というか、C/C++へ組み込みやすいかどうかという以前に
C/C++との相性は良くないよね
481デフォルトの名無しさん:2010/10/27(水) 08:59:34
>>478
そのうち地獄を見るよw
482デフォルトの名無しさん:2010/10/27(水) 09:18:54
pythonはスタティックリンクのやり方がわからん
483デフォルトの名無しさん:2010/10/27(水) 09:27:23
ゲームでパイソンって国内での有名タイトルあるの?
484デフォルトの名無しさん:2010/10/27(水) 11:53:54
Cは使えないのでLuaクリアしました
短い間でしたがお世話になりました
485デフォルトの名無しさん:2010/10/27(水) 22:35:43
>>480
C/C++側に値を渡すのにいちいちスタックごちゃごちゃいじったりしなくていいから、相当楽だと思うけど。
486デフォルトの名無しさん:2010/10/28(木) 01:39:38
C++でビルドすると例外有効になるって話なんだけど
これC++でビルドするにはどーすればいいんよ
プリプロセスで__cplusplus定義したらエラーでまくり
487デフォルトの名無しさん:2010/10/28(木) 08:04:09
>>485
スタックなんて情報処理の基礎中の基礎じゃん
488デフォルトの名無しさん:2010/10/28(木) 08:14:22
そういう意味じゃないと思うんだが
489デフォルトの名無しさん:2010/10/28(木) 08:37:43
スタック操作メンドクサイ
バインダ使えよ
C/C++は使えないのでクリアしました

ループの予感w
490デフォルトの名無しさん:2010/10/28(木) 13:33:46
っていうかスタックってバインダ使わなくても別にそんなに面倒じゃなくね。
普通に使っても引数の渡し方としては直感的(>>487はそういう意味かな)だと思うし、
自分でラッパ書くのもそんなに辛くない。
491デフォルトの名無しさん:2010/10/28(木) 13:36:19
>>486
何の話をしてるのか書かれてないので一般論としてだが……

普通はコンパイラオプションに C++ としてコンパイルする指定がある。マニュアルかヘルプ読め。
あるいは、たいていのコンパイラは拡張子を cpp とか cc とかにしておくと C++ としてコンパイルしてくれる。

__cplusplus はコンパイラが自動的に定義するものでユーザが指定するものではない。
492デフォルトの名無しさん:2010/10/28(木) 14:02:11
C++の構文解析してバインドしてくれるツールってあるの?
あのtemplate使った気持ち悪い感じのやつじゃなくて
493デフォルトの名無しさん:2010/10/28(木) 14:09:20
>>492
SWIG
494デフォルトの名無しさん:2010/10/28(木) 22:11:13
>>480
使ったことある人の言葉とは思えない
495デフォルトの名無しさん:2010/10/28(木) 23:30:55
というか、AngelScriptってC++との親和性が設計目標の一つだったと思うが
使ったことはあるが、大体、最初からバインダが同梱されている感覚かな
ただLuaのバインダとかと違ってテンプレートじゃなく文字列でバインドするから
その違和感かもしれんけど
テンプレート気持ち悪いって人は触ってみてもいいかもしれん
496デフォルトの名無しさん:2010/10/29(金) 00:16:39
>>490
AngelScriptだと何もしなくても関数の引数取得できて、返り値も渡せるよ。
例えばC++側にこんな関数があったら、

int FuncA(int n)
{
return n+3;
}

C++側でこうすれば

lpEngine->RegisterGlobalFunction("int FuncA(int)", asFUNCTION(FuncA), asCALL_CDECL);

スクリプト側でFuncAそのまま使えるしね。
497デフォルトの名無しさん:2010/10/29(金) 00:23:51
>>496
クールだよね
498デフォルトの名無しさん:2010/10/29(金) 00:27:21
それだと実行時パースだよね。ちとうれしくない。
499デフォルトの名無しさん:2010/10/29(金) 01:15:15
動的言語を組み込みで使おうとしているのに、かたくなだなw
コンパイル時に検出できた方が楽と考えるのはこのスレらしい
500デフォルトの名無しさん:2010/10/29(金) 01:17:28
静的は正義
501デフォルトの名無しさん:2010/10/29(金) 01:28:48
PC用なら別にいいんだけどねぇ
502デフォルトの名無しさん:2010/10/29(金) 01:43:23
Lua側でC++の構造体を読み書きしようと思ったら、バインダーを
使わないとダメでしょうか。
503デフォルトの名無しさん:2010/10/29(金) 01:46:15
構造体を読み書きする関数つくってそれを登録すれば別にバインダーでなくてもかまわないんじゃ
504デフォルトの名無しさん:2010/10/29(金) 01:47:00
AngelScriptの利点は構文とGCに口出しできるとこだと思う
バインドが楽なのは嬉しいけどオマケな気が
505デフォルトの名無しさん:2010/10/29(金) 03:14:13
ASのメリットの大部分は静的タイピングと内臓バインダ
デメリットは静的タイピングと独自バインダと実績が無くマイナーなところと
継承が面倒なところと連想配列がない(まだないのかな?)というところと・・・

>>502
ダメじゃないけど冗長になるよ
テンプレートベースのバインダはどれも似たようなもんだから
Lua以外のバインダを使ったときにも生かせるよ
C++を使っていてテンプレートを避けるメリットなんて無いんだから
いいきっかけだと思って触れてみるべきだと思う

>>503
生成破棄を繰り返すようなものだと
deleteを隠蔽のために
スクリプト側でさらに1枚噛ませるハメになるよ
506デフォルトの名無しさん:2010/10/29(金) 11:56:02
Lua側でC++のオブジェクトを操作するならバインダを使う
C++側でLuaのオブジェクトを操作するならスタックを使う
Luaのオブジェクトは数種類しかないからスタックは簡単
C++のオブジェクトは多種多様だからバインダはむずかしい

という認識で合ってるかな?
507デフォルトの名無しさん:2010/10/29(金) 12:25:46
それは言葉遊び。

lua のAPIがスタック操作ベースだから、バインダは中でばりばりスタック使ってるし、
lua のオブジェクトをC++側から操作する場合もラッピングしてしまえば別にスタック意識することはないし、
lua から C++ のオブジェクト操作も、記述ルールを限定すればバインダ自体もシンプルなもので十分だし。
508デフォルトの名無しさん:2010/10/29(金) 12:46:47
「難しい仕事を簡単に」ってことにしたいのだろうけど
難しさと簡単さの両方を同時にアピールする必要があるからなあ・・・

難しいというと敬遠されるし
簡単だというと、じゃあ別にツール使わなくても簡単じゃね?という印象になる
509デフォルトの名無しさん:2010/10/29(金) 14:29:38
Luaなんか使ってると時代に取り残される
生産性で他社に差を付けられとんでもない浪費プロジェクトになる
510デフォルトの名無しさん:2010/10/29(金) 14:33:59
具体的なことが何も指摘できないFUDだな
511デフォルトの名無しさん:2010/10/29(金) 14:46:46
>>509
どんな時代だよw
512デフォルトの名無しさん:2010/10/29(金) 14:52:29
たぶんこの程度もわからないのかとバカにされたんだろうよ。そっとしておいてやろうぜ
513デフォルトの名無しさん:2010/10/29(金) 15:34:39
>>506
>>508
'簡単'という便利で曖昧な表現はやめよう

手間は掛かるが難易度は低い(LUAAPIのみ)
難易度は上がるが手間は省ける(バインダあり)

どちらも'簡単'と言えるでしょ
514デフォルトの名無しさん:2010/10/29(金) 17:48:52
例えば「TCPのみで通信すると手間が掛かる」みたいな話なのか?
手間というのはSOAPのようなものを実装する手間のことだろ
515デフォルトの名無しさん:2010/10/30(土) 09:50:21
JITって最適化が弱いけどコンパイルが高速なネイティブコンパイラーみたいな認識でいいんですか?
516デフォルトの名無しさん:2010/10/30(土) 11:56:35
>>515
その場で実行時にマシン語にコンパイルするという話では?

普通はスクリプトエンジンがソースをスクリプトを動かすVMが解釈できる形式にあらかじめコンパイルしておいたり、
もしくはソースのまま渡してその場でVMが解釈できる形式にしてから実行する

でもマシン語じゃないのを逐一解釈して実行すると「C言語より遅いじゃん?プギャー」厨がうるさいので、
それに対向するために、実行時にマシン語にして早くしようという試み

考慮されていれば、プロセッサ毎に最適化できるだろうけど詳しくは知らん

.netやJavaはJITついてるはず
517デフォルトの名無しさん:2010/10/30(土) 12:49:49
>>515
VMがインタプリタ的に解釈・実行するのと全く同じ実行結果を得られる
機械語表現を自動生成させて代わりに実行させる形態のこと。
ネイティブより速いか遅いかは結果論であって全然重要じゃない。

ちゃんと学びたいなら、このスレのレスを期待するより自分で勉強したほうが早いよ。
518デフォルトの名無しさん:2010/10/30(土) 13:14:51
動的言語のJITって本当にそんなに効果あんの?
恣意的なベンチマークには強いだろうけどメンバアクセスが増えると変わらなくなりそう
519デフォルトの名無しさん:2010/10/30(土) 13:24:39
そのメンバアクセス部までJIT化するとすごい効果、ってのが LuaJIT の特徴だったような
520デフォルトの名無しさん:2010/10/30(土) 14:32:11
いわゆるメンバアクセスのインラインキャッシュってやつ?
あれJIT直接関係なくね
521デフォルトの名無しさん:2010/10/30(土) 14:41:41
JITじゃないとキャッシュできないのだから関係はあるだろう
522デフォルトの名無しさん:2010/10/30(土) 14:59:02
インラインキャッシュって呼出し箇所ごとにキャッシュを持つからそう呼ばれるだけで
ほんとに呼び出し元のコード内に展開する必要はないよ。
インタプリタでも普通に実装できる手法。
523デフォルトの名無しさん:2010/10/30(土) 15:03:59
JITの場合はその呼び出しコードごとキャッシュされるんじゃないの
524デフォルトの名無しさん:2010/10/31(日) 19:27:55
GCの話は無視されるんだな…バレーでも見よう。
525デフォルトの名無しさん:2010/11/01(月) 22:37:35
はじめる! Squirrel ykanda
って本はまだ出てないのかこれ?
電子書籍?
526デフォルトの名無しさん:2010/11/02(火) 05:12:36
work5きたこれ
527デフォルトの名無しさん:2010/11/04(木) 23:17:47
AngelScript2.20.0記念カキコ
528デフォルトの名無しさん:2010/11/06(土) 22:23:08
このスレで良く話題出てたIronPython死亡したのね
OPC Diary ≫ Blog Archive ≫ MicrosoftのIronPython, IronRubyプロジェクトはMSのプロジェクトではなくなり、コミュニティのプロジェクトとなるようです。
http://opcdiary.net/?p=4466

IronRubyも死亡、、、


死亡と言ってもコミュニティに丸投げするみたいだが
529デフォルトの名無しさん:2010/11/06(土) 22:51:36
>>528
IronPythonプロジェクト内で開発されてたDLRが
.NET4.0で正式採用されたから、
分離されただけでしょ。
530デフォルトの名無しさん:2010/11/06(土) 23:47:29
おーいみんな、祝福のときが来たぞー。

玄人むけ小規模オフィスルーターを製造するYAMAHAがLuaを組み込んだよ。
各種動作をLuaで仕込んでおけるってさ。

これはちょっとうれしいね。

オフィスで使うもよし、自分の家で楽しんでもよし。
やっは小規模LANのルーターはYAMAHAだな!
531デフォルトの名無しさん:2010/11/07(日) 03:09:55
どの程度制御できるのか気になるな
532デフォルトの名無しさん:2010/11/07(日) 03:10:28
>>529
 ○  >>Jim Hugunin 乙 もうお前に用はない 
 く|)へ     
  〉   ヽ○ノ
 ̄ ̄7  ヘ/
  /   ノ
  |
 /
 |


DLR完成したからもうようなしなのかw

>>530
YAMAHAのルーターの公式ページ見たら素人に売る気無くてウケルww
http://www.rtpro.yamaha.co.jp/
533デフォルトの名無しさん:2010/11/07(日) 03:17:17
ttp://www.rtpro.yamaha.co.jp/RT/docs/lua/rt_api.html

ブザー鳴らしたりLED光らせたり、わりとどうでもいい所までしっかり制御できるのねw
534デフォルトの名無しさん:2010/11/07(日) 03:25:41
任意のコードを実行される危険性というものがですね
535デフォルトの名無しさん:2010/11/07(日) 08:21:34
>>533
ニコニコあたりで”演奏してみた”とか出るのが容易に想像できるな
536デフォルトの名無しさん:2010/11/07(日) 23:45:59
>>535
やってみようと思ったが、ルータ高すぎて手がだせねえww
537デフォルトの名無しさん:2010/11/08(月) 00:00:26
ttp://www.rtpro.yamaha.co.jp/RT/docs/lua/tutorial/index.html
$Date: 2009/11/19 10:29:48 $

なんで今更話題になってるの?

Luaを使ってる日本人で
ttp://www.rtpro.yamaha.co.jp/RT/docs/lua/tutorial/library.html
このページを開いたことが無い人なんているのかね
538デフォルトの名無しさん:2010/11/08(月) 02:25:30
>標準のLua言語にあってもヤマハルーターでは利用できない関数は、ここに掲載していません

こんなの大した参考にならんだろ。
標準docのチュートリアル以下じゃん。
539デフォルトの名無しさん:2010/11/08(月) 08:26:58
Luaは拡張ライブラリ数が半端じゃないな。
天使とか永久に追いつけそうもないなこりゃ。
540デフォルトの名無しさん:2010/11/08(月) 08:31:40
なぜこんな識別子のセンスが最悪な言語が流行るのだろうか
541デフォルトの名無しさん:2010/11/08(月) 08:39:45
始めに革命を起こした者が勝者だ
542デフォルトの名無しさん:2010/11/08(月) 09:51:45
Schemeのほうが先だが、Schemeはモジュールシステムのセンスが最悪だった
543デフォルトの名無しさん:2010/11/08(月) 09:54:04
むしろ識別子のセンスが流行り廃りに影響するという意見を初めて聞いた
544デフォルトの名無しさん:2010/11/08(月) 09:56:04
名前重要。

SchemeのモジュールシステムってR6RSの?
545デフォルトの名無しさん:2010/11/08(月) 10:20:56
>>543
Perlの実装で使われてる短記法なんて今じゃ誰も使う人は居ないし、
Windowsプログラミングのはやりの頃に出回ったハンガリアン記法も、
今じゃせいぜいAPI周りだけだろ。

今はJava記法かな? C#もほぼ同様の記法だけど。
546デフォルトの名無しさん:2010/11/08(月) 11:14:39
>>545
先頭が大文字か小文字かの違いしかわからんw>Java推奨とC#推奨の記法w

個人的には・・・

・定型的、定数的なものは全て大文字で_区切り。
・変数は小文字スタート
・メソッド、プロパティーは大文字スタート
・引数には_末尾につける。
・ローカル変数は_を先頭につける。

こんなんが好きかなねえ。
547デフォルトの名無しさん:2010/11/08(月) 11:18:11
OOは名前の重要度が高いかもしれないが、LuaはOOを直接提供せず丸投げするだろ。
名前のセンスも丸投げなんだよ。

しかし、コードを一行も書かずに丸投げするわけではないから、信用がある。
548デフォルトの名無しさん:2010/11/08(月) 14:18:17
Javaや.NETで命名規則が重視されてるのは、
それ自体フレームワーク色が強いのとIDEサポートが重要だからだろ。
スクリプト言語では書くのが楽ならどうでもいい
549デフォルトの名無しさん:2010/11/08(月) 15:02:47
>>548
命名規則でIDE連携なんてクソJavaくらいだろ。
550デフォルトの名無しさん:2010/11/08(月) 16:26:45
>>540
どの辺が最悪なの?具体的に頼む
551デフォルトの名無しさん:2010/11/08(月) 21:12:58
Luaはスタックが・・・
 C++出来ないんですね
Luaは命名規則が・・・
 Cすら出来ないんですね

こんなところだろ?
552デフォルトの名無しさん:2010/11/08(月) 23:30:50
スタック操作面倒くさいじゃん。
可変引数とかするときには便利だけど、引数固定のときはわざわざスタック使うのは面倒くさい。
553デフォルトの名無しさん:2010/11/09(火) 00:20:12
JavaScriptよりも古い言語に何を
554デフォルトの名無しさん:2010/11/09(火) 00:28:33
1993年1.0リリースなら、Perl4やPython初期リリースよりも後じゃね?

年表 http://www.levenez.com/lang/
555デフォルトの名無しさん:2010/11/09(火) 00:32:42
>>554
だからどうしたかね。
マイナー言語の割りには十分すぎるくらいの
ライブラリサポートがあると思うが。
556デフォルトの名無しさん:2010/11/09(火) 03:00:08
スタックが面倒ならバインダを使えばいいじゃない
557デフォルトの名無しさん:2010/11/09(火) 03:16:02
何度目のループ話題だw
558デフォルトの名無しさん:2010/11/09(火) 07:37:52
>>540
識別子って何を指してしるの?
標準で提供している関数名か?
それとも、forとかtableとか予約語のことか?
559デフォルトの名無しさん:2010/11/09(火) 08:32:14
キーワードを識別子とは言わないぞ
560デフォルトの名無しさん:2010/11/09(火) 20:22:53
ルアでアロケーターの扱いがよくわからない
猫でもわかるように親切に解説してる日本語サイトって無いですか?
561デフォルトの名無しさん:2010/11/09(火) 20:31:57
tableの要素削除したいんだけど

t["a"]=1
t[10]=50


t[10]=nil
とかやると要素削除してくれ処理系があるんだ
でもこれって正規の方法なのかな
562デフォルトの名無しさん:2010/11/09(火) 21:32:22
nil入れるとガベコレ対象になるんだから合ってるんでね? よくしらんけど
563デフォルトの名無しさん:2010/11/09(火) 22:22:26
>>560
何が分からないのかが分からないが
http://sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html
内部的な実装が知りたいのならソースを眺めるのが一番だよ

>>561
要素削除してくれ処理系って何ですか?
日本語でお願い
564デフォルトの名無しさん:2010/11/09(火) 23:12:47
void * alloc(void * u, void * p, size_t o, size_t n);
u(?)
nがゼロなら開放する
oがゼロだとmalloc的に新たにnだけ確保して返す
oがゼロじゃなければrealloc的にそのまま再利用したり、足りなければ再確保して値をコピーして返す

uって何に使うの?
565デフォルトの名無しさん:2010/11/10(水) 00:12:33
>>564
allocという関数を作った本人に聞いたら?
566デフォルトの名無しさん:2010/11/10(水) 00:24:29
エルなんとか先生に?メールポルトガル語じゃないとだめかな?
567デフォルトの名無しさん:2010/11/10(水) 01:10:48
もしかして、allocじゃなくてl_allocの事を言いたいのかな?
それならlua_newstateを参照すると良いよ
タグジャンプやGrep、コピペのやり方ぐらいは先に覚えておくべきだと思うがね
568デフォルトの名無しさん:2010/11/10(水) 11:46:56
luaって未整理すぎる
c++のSTLに相当するような標準処理関数群ぐらい用意してくれよ
569デフォルトの名無しさん:2010/11/10(水) 11:55:53
>>568
本末転倒。
そういうのはベースとなるアプリ側で整備すべき。

だけどSquirrelだと辛うじてファイル入出力や
浮動小数点演算ができる程度の標準ライブラリをオプションで用意してるわけで、
整備されてるに越したことはないわな。
570デフォルトの名無しさん:2010/11/10(水) 12:41:41
「C++のSTLに相当」程度じゃ、LL系なら言語そのものに含まれているようなもんでしょ

むしろLuaは以前みたいに標準ライブラリは専用の別モジュールに分かれていて欲しいくらいだ
571デフォルトの名無しさん:2010/11/10(水) 14:06:08
>>568
テンプレートは動的なポリモをなくすためだけの存在。
整理も何もない。高速化するだけ。
572デフォルトの名無しさん:2010/11/10(水) 14:07:22
高速化するだけで十分じゃないか
573デフォルトの名無しさん:2010/11/10(水) 14:13:07
>>572
そもそもLuaは型を持たない動的言語なわけだが?
574デフォルトの名無しさん:2010/11/10(水) 14:26:05
動的でも型を持ったっていいじゃない
最適化しやすいだろ
575デフォルトの名無しさん:2010/11/10(水) 14:29:07
おまえは何をいってるんだ?
576デフォルトの名無しさん:2010/11/10(水) 14:48:51
>>571の時点で、テンプレートに整理の機能があるなんて>>568はいってないと思うが。
どういう話の広がり方だw
577デフォルトの名無しさん:2010/11/10(水) 16:28:22
>>576
揚げ足を取るようだが、568自身が「未整理」と言ってるわけだ。
それを前提にスレを読み直せば、わかるな?
578デフォルトの名無しさん:2010/11/10(水) 18:55:31
スタック操作がめんどくさい
識別子のセンスが最悪
未整理すぎる
型が無い

いちゃもん化してきてるぞ
ASer頑張れ
579デフォルトの名無しさん:2010/11/10(水) 23:55:07
>>577
>>568はテンプレートが欲しいわけじゃないだろ
580デフォルトの名無しさん:2010/11/11(木) 00:06:05
>スタック操作がめんどくさい 
まあこれは事実なんでしょうがない。

>型が無い 
個人的には通常の型+何でも入るboost::anyみたいなオブジェクト、って組み合わせが好き。
581デフォルトの名無しさん:2010/11/11(木) 08:20:42
Squirrel 3.0 beta 3
でてますね。
Squirrel 3.0 でどなたか本出してください。
582デフォルトの名無しさん:2010/11/11(木) 09:51:50
安定板しか眼中にないよ
583デフォルトの名無しさん:2010/11/11(木) 09:57:46
つまり未成年には興味がないと?
584デフォルトの名無しさん:2010/11/11(木) 11:33:18
No.
585デフォルトの名無しさん:2010/11/11(木) 15:04:14
luaにはc++のboost見たいなきっちり決まった名前つけルールはないのか?
586デフォルトの名無しさん:2010/11/11(木) 18:02:49
普通のCスタイルでしょ
非公式なライブラリも基本的にはCスタイル
そうでないのはラッパーで名前を踏襲してるだけ
ってのが殆どじゃないかな
587デフォルトの名無しさん:2010/11/11(木) 23:16:41
>>580
> >スタック操作がめんどくさい
> まあこれは事実なんでしょうがない。
どんな環境を想定してるの?

> >型が無い
> 個人的には通常の型+何でも入るboost::anyみたいなオブジェクト、って組み合わせが好き。
それがまさにコンパイラ言語とLLとの組み合わせなんだけどね
588デフォルトの名無しさん:2010/11/12(金) 00:56:52
どうでもいいけど、コンシューマのゲームみたいに止まったら下手したら回収騒ぎにもなるような場合にも
Luaみたいな動的言語使うんだね。

Webアプリやネトゲやアップデート可能な機種ならアップデートリリースすればいいんだろうけど。
589デフォルトの名無しさん:2010/11/12(金) 01:00:46
いや、止まるのに動的も静的もないし
590デフォルトの名無しさん:2010/11/12(金) 01:02:30
有るだろ
確率が全然違う
591デフォルトの名無しさん:2010/11/12(金) 01:07:43
>>587
>どんな環境を想定してるの? 
LuaからC++側の関数呼び出す時と、その関数からLuaへ値を返す時。
592デフォルトの名無しさん:2010/11/12(金) 01:13:37
えっ
593デフォルトの名無しさん:2010/11/12(金) 01:18:11
GCで止まる可能性ってことかとも思ったけどそうは解釈しにくい文面だなー。
失笑の予感。
594デフォルトの名無しさん:2010/11/12(金) 01:25:41
>>588
平気で使うよ
C/C++に静的言語を埋め込んで誰得ってなもんだ

>>591
びびった
595デフォルトの名無しさん:2010/11/13(土) 14:10:07
>>588
別にゲームだったらハングしても大した問題じゃないし、新しい技術に極端に消極的な方が問題。
596デフォルトの名無しさん:2010/11/13(土) 14:12:52
クレームの粘着はオタクの方がきついからゲームこそ慎重になるべき
597デフォルトの名無しさん:2010/11/13(土) 14:14:35
オタクは客に非ず、クレーマー予備軍というのが、今の業界の定説。
598デフォルトの名無しさん:2010/11/13(土) 14:18:42
んなこと言ってるから割られるんだよwww
599デフォルトの名無しさん:2010/11/13(土) 15:14:17
>>595
      |
      |
      |
      |              /  ̄   ̄ \
     (=)           /、          ヽ
     J >>595       |・ |―-、       |
                   q -´ 二 ヽ      |
                 ノ_ ー  |     |
                 \. ̄`  |      /
                   O===== |
                  /          |
                   /    /      |
600デフォルトの名無しさん:2010/11/13(土) 22:40:18
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   
601デフォルトの名無しさん:2010/11/19(金) 21:36:07
http://luaforge.net/forum/forum.php?forum_id=2382
lua-CoatPersistent is an Object-Relational Mapping for lua-Coat.
It is built over the modules LuaSQL and Dado. It could support all database engine which has a driver in LuaSQL.

luajitなら軽いのかな。
シンプルだけど遅い実装ってluaには不似合いな気がする。
602デフォルトの名無しさん:2010/11/26(金) 18:58:00
いつのまにか5.2がalphaになっとる
603デフォルトの名無しさん:2010/11/28(日) 03:26:24
http://www.square-enix.com/jp/recruit/career/job/game/pg_gamesystem.html
>スクリプト言語(Lua)とC++を利用して構築する業務が中心です

スクエニもSquirrel止めたのかしら
604デフォルトの名無しさん:2010/11/28(日) 03:48:52
いつかここにも貼られると思ってたが
別の部分で相当話題になってるよねそれ
605デフォルトの名無しさん:2010/11/28(日) 04:41:53
Lua使った結果がFF14の惨状なんだろうか
606デフォルトの名無しさん:2010/11/28(日) 08:23:38
Luaはクソってことか
607デフォルトの名無しさん:2010/11/28(日) 09:41:25
状況的には外注だしたら Lua 使ってたけど使い方わかる人が社内にいない、ってかんじじゃないかね。
608デフォルトの名無しさん:2010/11/28(日) 09:49:48
>>603
そもそも内製の言語を使っててSquirrelが例外って感じだったような
まぁ、ラインごとにツールが違うとかいうのはよくあること。
609デフォルトの名無しさん:2010/11/28(日) 13:09:13
そもそもLuaってそんなに使いやすいか?
610デフォルトの名無しさん:2010/11/28(日) 13:19:05
正直速くなければ使ってないぐらいには使いにくい
611デフォルトの名無しさん:2010/11/28(日) 17:01:05
速度必要ならC++で書くべきじゃない?
612デフォルトの名無しさん:2010/11/28(日) 17:36:58
LuaJITが他と比べて笑っちゃうくらい速いからな。
Lua自身の採用実績と合わせ技で「多少使いにくくても……」と思わせられる。

あと最近慣れた。
613デフォルトの名無しさん:2010/11/28(日) 18:30:49
単なる条件分岐ありC++呼び出し記述と考えると意外とすぐ慣れる
614デフォルトの名無しさん:2010/11/28(日) 21:58:26
スクリプティングは生産性を上げるよう、より便利になるようにするために使うのに、
その不便さに慣れる、というのは本末転倒のような気がするな。
615デフォルトの名無しさん:2010/11/28(日) 22:02:31
気がするだけだ。まあ、わかってていってるんだろうが。
616デフォルトの名無しさん:2010/11/28(日) 22:02:54
コンパイル時間の節約と拡張性が目的だから多少臭い文法でも気にしてはいけない
617デフォルトの名無しさん:2010/11/28(日) 22:25:04
ユーザーに拡張書いてもらう時も「JavaScriptみたいなもんです」
と言えばWeb系の方々にも馬鹿ウケ

しかしビット演算は組み込みにしてくれ5.2ェ…
618デフォルトの名無しさん:2010/11/29(月) 06:10:50
たしかにWeb系から見たらJavaScripみたいなもんだなw
619デフォルトの名無しさん:2010/11/29(月) 08:13:01
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >

620デフォルトの名無しさん:2010/11/29(月) 11:36:59
というか、Javascriptとの違いが逆にあまりないんじゃね?
621デフォルトの名無しさん:2010/12/02(木) 01:25:43
>>166
>うちは lua じゃなくて squirrel つかってるけど、コルーチン持ちの言語使うと UI 用の作業工数が激減するのは確かではある

これ詳しく知りたいです。なんで?
622デフォルトの名無しさん:2010/12/02(木) 02:39:22
>>621
エンジン側で、コルーチンの中断のタイミングで画面更新するように
しておけば、画面遷移用の処理を言語のステートメントつかって直線的に書ける。

パーツのフェードインアウトの類は for で必要なフレーム数でまわせばいい。
入力待ちとかは while とかつかってキー入力をポーリングすればいいし、
画面を分ける必要があるなら普通に if や switchで分岐すればいい。
画面更新したいタイミングで適宜コルーチン中断用の命令をはさむだけ。

遷移用のステートマシンかかなくてすむってだけで大幅に工数さがるし、
なにより修正が楽。たとえばボタンと画面遷移を追加して、とか頼まれたとき、
ステートマシンだと、ステート数ふやしたりで頭ひねるはめになるけど、
コルーチンだと、画面の処理をコピペしてきて間に挟んだらそれで完了
623デフォルトの名無しさん:2010/12/02(木) 02:47:04
> 遷移用のステートマシンかかなくてすむってだけで大幅に工数さがるし、

そうそう、設定ファイルをスクリプトで書きたいとかそれよりも
もうこれが全てなんじゃないかとw
624デフォルトの名無しさん:2010/12/02(木) 03:33:49
調子にのって、ゲーム中のオブジェクトの状態管理も……とかやりはじめると、物によっては永続化問題でドはまりするので注意なw

UI系とか、アニメ動作とか、単発で使い捨てするステートとの相性は笑っちゃうぐらい良い>コルーチン
625デフォルトの名無しさん:2010/12/02(木) 16:25:02
>>622-624
ゲームって何げにUIのコード量が多いんだよな。
行数で見たらゲームエンジン全体の4割くらい占めてる。

オブジェクト.メソッド+UIスタックという形で普通に実装してたんだが、
コルーチンを使うと楽になるのか。試してみるわ。
626デフォルトの名無しさん:2010/12/05(日) 00:25:04
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >

627デフォルトの名無しさん:2010/12/05(日) 12:00:41
たくさんのスレットが走るゲームに、イベント・NPCキャラ制御の目的でLuaを積みたいんですが、
スレットの同期にLuaをあわせることって、簡単ですか?
あと、Lua上でのキャラクターの識別などは、どうするのがスタンダードでしょうか?
教えていただけると、幸いです。
628デフォルトの名無しさん:2010/12/05(日) 12:09:32
たくさんのスレットが走るとかMafiaかよ
629627:2010/12/05(日) 12:12:58
おっと、ゲームの細かい仕様を言うのを忘れてました。

このゲームはMMORPGで、現在はアバターチャットと呼べる程度までできています。
土台の部分は、C++で書かれています。

キャタクターやNPCは、データ制御用の関数を持ったオブジェクトになっています。
それとは別に、キャラクター制御の関数を持ったオブジェクトを用意しています。
キャラクター制御用オブジェクトは、いくつかのスレッド用の関数を持ち、
スレッドから呼び出される関数により、役割が変わります。

こういう実装でLuaを載せる場合、どうするのがいいでしょうか?
630デフォルトの名無しさん:2010/12/05(日) 12:13:51
スレットってなんだよってのはさておき、

lua 自体はスレッドはなにも配慮してないので、C側で同期とって、それで同期とれたタイミングで呼び出す、とか
そういった構造が必要。現状 C側で同期がとれてるポイントがあるのならそこから呼び出す分には何の問題もないかと

キャラクターの識別ってのも意味不明だが、C側のオブジェクトに合わせればいいんでは?
631デフォルトの名無しさん:2010/12/05(日) 12:17:47
そのオブジェクト自体が、複数のスレッドから呼ばれても大丈夫なように同期がとれてるなら、
lua を動かすことになる制御スレッドから自由にメソッド呼ぶだけでいいんでは
632627:2010/12/05(日) 12:56:43
共有用のデータは、データ制御用オブジェクトの配列でやりとりしています。
このサーバーは、データ制御用オブジェクトのリングバッファおかげで、
データの整合性が取れていて、スレッド同士の間では同期を必要としないです。

キャラクター制御用のオブジェクトも配列化されていて、
そのオブジェクトの関数をスレッド化する限りは、メソッドからのスレッドの識別は容易です。

ただ、Luaの仕様の半分も分かっていない状態なので、
処理の途中での割り込み方法や、スクリプトの並列実行は可能かどうか、
スクリプトの強制中断は可能かどうか、C側へのメソッドでの文字列の受け渡しなど、
その他色々な細かいことが知りたいです。
633デフォルトの名無しさん:2010/12/05(日) 13:41:27
ああ、うん。もっと勉強して実際つかってみて行き詰まってからおいで。
そんな難しくないから。

・lua のvmはスレッドセーフではない。単独VMを複数スレッドから扱う場合はGIL処理が必要
・lua は単独のスレッドで駆動させるだけで使うのがおそらく主流。他のスレッドから呼び出したい場合はスレッド間通信で依頼を出して結果を待つ、とかする
・lua のスクリプトの実行系は複数持てる(luaではこれをスレッドと呼んでいる。用語の混乱に注意)
・それぞれのluaスレッドの実行を途中で(例えば別のCスレッドから)強制中断する機構はない。
必ず呼び出し終わるまで待つ必要がある。
・luaスレッドの実行をスクリプト側から自発的に一時中断することは可能でこれを「コルーチン」と呼ぶ。コルーチンで中断されたスクリプトはつづきから再開できる
・型は汎用型でその中に文字列がある。普通のC文字列なのでCにはそのままわたせる
634627:2010/12/05(日) 14:14:52
>>633
あ、ありがとうございます。
VMは、スレッド間で共有しない予定なので、スレッドセーフがなくても大丈夫です。
色々気になることがわかりました。とりあえず、テストしてみようかと思います。

あと、もう一つ質問なのですが、C++のクラスの配列で、メンバーの関数内から、
別のメンバー関数をLuaに登録したとして、正しく呼び出せますでしょうか?
635デフォルトの名無しさん:2010/12/06(月) 19:39:32
すみません、LuaをLinux上で動くCで組み込みしようとしたのですが、
ヘッダーは読めるのですが、関数が見つからないといって、コンパイルできません。
コマンドラインでは、動いてくれるのですが、何が悪いのでしょうか?
636デフォルトの名無しさん:2010/12/06(月) 19:49:53
>>635
Linuxerのくせに要領を得ない質問すんな。


ライブラリのリンクが出来てないんじゃね。
ライブラリのファイル名は分からないけど、例えばliblua.so とかかな。
637デフォルトの名無しさん:2010/12/06(月) 21:00:58
>>636
調べて色々試してみたら、コンパイル時のオプションが1つ足りなかったみたいだ。
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../liblua.a(loslib.o): In function `os_tmpname':
warning: the use of `tmpnam' is dangerous, better use `mkstemp'
という警告が一個だけ出たけど、無事コンパイルできて、動いたよ。お騒がせしました。
638デフォルトの名無しさん:2010/12/08(水) 11:53:40
みなさんLuaでコルーチンを使ったステートレスですっき(ry なwebアプリも書ける時代ですよ

Tir Web Framework: Tir Web Framework
http://tir.mongrel2.org/home
639デフォルトの名無しさん:2010/12/08(水) 19:01:21
LuaやSquirrelなどのコルーチンを使用可能なスクリプト言語で
yieldによる実行の中断を活用したUIのサンプルコードは
どこかで入手できませんでしょうか。
640デフォルトの名無しさん:2010/12/08(水) 22:56:20
UIの処理をコルーチンでやるというよりは、ボタンを押した後のアニメーションとかを
コルーチンがあるスクリプトで書くと楽になるって感じじゃないのかね。
641デフォルトの名無しさん:2010/12/10(金) 09:18:27
Squirrel 3.0 クリスマスリリースすんのかな。
RCだすのかなぁ
642デフォルトの名無しさん:2010/12/10(金) 15:51:03
squirrel 3.0 は全然おいかけてないんだけど、どのへんがうれしいポイントなのか誰かおしえてくれ
643デフォルトの名無しさん:2010/12/11(土) 02:18:48
In the next release(3.0 beta2):

api impovements
performance tuning
additional documentation

公式のトップにはこう書いてあるけどざっくりしすぎだねこれじゃ

細かいのはフォーラムみてるといろいろあると思う
テーブルをJSON互換の記述形式で書けるようになるとかあったと思う
644デフォルトの名無しさん:2010/12/11(土) 03:15:16
一応調べてみた

・delegate キーワードがなくなってオブジェクトの組み込み機能 getdelegate() / setdelegate() に
・parent (仮想スロット) がなくなってオブジェクトの組み込み機能 getbase() に
・新キーワード base (いわゆる super ですな)
・新演算子 <=> 要するに sq_cmp 相当
・lamda式、といってるけど単に function のシンタックスシュガー
・local 関数定義のシンタックスシュガー
・array にビルトインメソッドをいろいろ追加
・vargc, vargv(仮想配列) を廃止して、vargv が実配列化
・instanceof がオブジェクト以外をスルーする
・自由変数の記述廃止 (javascript 同様レキシカルスコープ処理が自動で行われる)
・エラー表示用関数が一般の printfunc と分離。関連して組み込みメソッド error() 追加
・ネイティブなデバッグフック
・実数の double 対応 < これは squirrel2 にもはいってたような
・wakeupvm 時に例外をなげられるようになった
・クラスのメンバ参照がハンドルベースで可能に(高速化に使えるとおもわれ)
・クラスのメソッドがインスタンス生成後もたせるようになった
・JSON互換のテーブル記述

ローカル変数はいいかも

しかし,一番大きい変更は、3.0beta2 からライセンスが MITになったことだだ。
lua のように名前が出ないのが悲しかったんだろうか^^;
645デフォルトの名無しさん:2010/12/11(土) 03:53:19
>クラスのメソッドがインスタンス生成後もたせるようになった

これ、地味に重要な仕様変更だね。
squirrel はインスタンスのメソッドはクラスのそれを実行時に直接
呼び出ししてるので、インスタンス生成後にもメソッドを交換できることに
646644:2010/12/11(土) 03:58:47
書き間違い

ローカル変数はいいかも>自由変数のレキシカルスコープ化はいいかも
647デフォルトの名無しさん:2010/12/12(日) 23:27:13
AngelScript 2.20.1記念カキコ
648デフォルトの名無しさん:2010/12/13(月) 11:50:37
>>276

>>274の言うとおり、デフォルトだとセーブロード処理が難しかったので
>Luaの内部にも手を入れてる。

どういう風に手を加えたのかずっと気になっている・・・

それと、パッチ当てても同じセーブデータを使えるようにするのはやはり不可能だろうか
VisualStudioでエディットコンティニューって言うのがあるけど、あれと同じように出来ない?
649デフォルトの名無しさん:2010/12/13(月) 18:32:12
ここの住民もゲームPGが多いの?
650デフォルトの名無しさん:2010/12/13(月) 20:28:57
我々のような科学技術計算を生業とするものが集うスレにそんな底辺PGがいるわけなかろう
651デフォルトの名無しさん:2010/12/13(月) 21:44:51
>>650
YAMAHAのルーター屋さんはどうすんの?
652デフォルトの名無しさん:2010/12/13(月) 21:45:31
このスレでまともな回答返してる人は軒並みゲームPGっぽい空気だな
653デフォルトの名無しさん:2010/12/13(月) 22:43:05
■の社員も居るね。まちがいなく。
654デフォルトの名無しさん:2010/12/13(月) 22:46:18
ばれたか
655デフォルトの名無しさん:2010/12/15(水) 06:32:41
>>653
(
656デフォルトの名無しさん:2010/12/15(水) 06:35:34
>>639-640
UIの処理書くのは無名関数やメソッドがオブジェクトとして取り回せる言語なら
それだけでもイベントドリブンのコードが書きやすいから恩恵受けられるけど、
yieldバリバリなの書き方は気になるな

アニメーション部分か?
657デフォルトの名無しさん:2010/12/15(水) 23:00:07
アニメーションとコルーチンの相性のよさは異常。
658デフォルトの名無しさん:2010/12/16(木) 00:17:07
で、コルーチンの使い道はそれだけなんですか?
659デフォルトの名無しさん:2010/12/16(木) 09:17:41
状態遷移を楽に書けるってメリットはアニメーションに使うだけに留まるもんじゃないと思うけど……。
なんでそんな圧迫面接みたいな。
660デフォルトの名無しさん:2010/12/16(木) 11:13:52
アニメーションなどの中断したい逐次処理を記述すること自体は
コルーチンで楽になるんだけど、
中断した状態自体を別のオブジェクトで管理しないといけないから
結局あまり楽になった感じがしないんだよね。

コルーチン内で呼び出した別の処理中で中断したりというのは出来ないわけだし。
(それができるのはStackless Pythonのマイクロスレッドとか)
661デフォルトの名無しさん:2010/12/16(木) 16:56:34
ビジター的な実装で作ってしまったものを手っ取り早くイテレーターにしたいなーって時に使う
662デフォルトの名無しさん:2010/12/16(木) 18:12:35
>コルーチン内で呼び出した別の処理中で中断

Luaのはできたんじゃねえの?
それができないのは無印Pythonのジェネレータだった気がするが
663デフォルトの名無しさん:2010/12/16(木) 19:19:53
Luaのリファレンスが暫く前から404なんだけど、移転か何か?
664デフォルトの名無しさん:2010/12/16(木) 20:36:02
>>660
どういう状況だろう。
詳しく頼む。
665デフォルトの名無しさん:2010/12/17(金) 10:14:40
例えば、セーブやロードの時だろう
今までならデータドリブンやちょっとしたDSL(独自言語)でやってたら、
そのデータの構造体の中の位置やデータそのものを保存しとくわけだろ

Luaのときはコルーチンで書くとルーチンの途中でセーブが起きる。
ロード時はルーチンの途中から始めないといけない。
VMの状態を保存して途中から始められることができるのがスクリプトの機能としても要求される。
もちろん、プログラム側もそれを考慮した書き方しないといけないよな
666デフォルトの名無しさん:2010/12/17(金) 10:17:22
書いてみて思ったが、Luaのコルーチンだって切りのいいところで呼び出し側に戻しているわけだし、
上の例のDSLと変わらんか・・・

ネイティブスレッドでの動作だったり仮想マシンの中断、復元とはまた違うな
667デフォルトの名無しさん:2010/12/17(金) 18:45:03
1命令ごとにコルーチンから抜けてちょうどいいところで別の処理をすればいいんだよ
668デフォルトの名無しさん:2010/12/18(土) 10:33:34
ロードしたら音声だの文字表示だのが途中から始まるゲームは
なんでこんなことやってのか不思議だったんだが、VMの状態を
保存してるのかな。フラグは分離しとかないバグ取りで死ねそう
なもんだけど。
669デフォルトの名無しさん:2010/12/19(日) 08:32:33
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   
670デフォルトの名無しさん:2010/12/19(日) 09:19:13
LuaでVM保存して再開てどうやるの?
671デフォルトの名無しさん:2010/12/19(日) 11:20:17
基本的に無理です
672デフォルトの名無しさん:2010/12/19(日) 23:00:51
Squirrel 3.0 RC1
673デフォルトの名無しさん:2010/12/19(日) 23:46:30
3.0出たら業界で広めるか
674デフォルトの名無しさん:2010/12/19(日) 23:57:31
ライセンスかわったからちと扱いづらくなったね。うち的には問題ないけど相手の説得がちと面倒。lua と同じになっただけではあるけど
675デフォルトの名無しさん:2010/12/20(月) 11:07:16
>>671
MIT License自体が面倒ってこと?
著作権表示や本許諾表示に抵抗があるってことかな。
676デフォルトの名無しさん:2010/12/20(月) 11:14:15
そそ。頭の固い御仁はまだまだまだいるので。

ミドルウェアとかで金はらえる先ならOKなのにフリー(無償、の意)だと難色を示される不思議
677デフォルトの名無しさん:2010/12/20(月) 12:30:47
675は>>674の間違いでした。ごめん。
>>676
最近ライセンス表示画面を持つコンシューマゲームが増えてきたと思ってたんだけど、
所によっては難しいのかもね。
678デフォルトの名無しさん:2010/12/20(月) 14:15:22
>>677
じゃあたくさん人に使ってもらうためには
いろんなライセンス形態用意しとくのが良いのかな?
679デフォルトの名無しさん:2010/12/20(月) 17:46:32
>>664
>>665
もっと単純で、中断したコルーチン自体の管理の話。
セーブ/ロードについてはセーブできる箇所(通常クリック待ち)に到達した時点で
遷移状態を含めてそのままシリアライズしてるからさほど難しくはない。
(動作中のコルーチンではなくその初期化パラメータを保持したオブジェクトを用意しておく)

コルーチンはなるほどひとつの関数内の処理を中断できるけど、
各Widgetごとにイベントハンドラを定義するならその数だけ増えてしまうし
それらが複合的にアニメーションしたり状態変化したりするのって
そんな単純化出来る話かねえ、と。
680デフォルトの名無しさん:2010/12/20(月) 18:03:06
当初から、UIでの遷移とかの、「保存する必要がない部分」なら便利、って話じゃね?

保存の必要性がある時点で、VMのステートごと保存しないといけないから急に大がかりになる。
681デフォルトの名無しさん:2010/12/20(月) 18:29:17
>>680
うまく伝わらなかったようだ。ごめん。
セーブ/ロードで出入りする情報の話と、
UI遷移の話は別個に考えてほしい。

UIの遷移はオレもひょっとするとコルーチンで書くと楽なんじゃないかとは思ってるんだけど、
コルーチンって結局中断中の状態を変数として外側で持っておかないといけないよね。
じゃないと復帰できないから。

で、コルーチンがひとつしかないならそれでいいんだけど、
実際にはウィジェットの数だけ発生しうるのにどうするんだろう、というわけですよ。
682デフォルトの名無しさん:2010/12/20(月) 18:55:20
コルーチンじゃなくて「トランザクション」って名前にすれば途中で中断しないのか?

どんな名前だろうと、途中で中断しないように作れば、中断する必要はないと思うが。
683デフォルトの名無しさん:2010/12/20(月) 19:18:23
>>681
「そういうところにはコルーチンは別に役に立たないから使わない」、で終了なのではないかと……

「中断中の状態を外側でもっておく必要が無い」ところでだけ使って、それが便利、って話なのに、
その前提条件をはずれた状態で「どうするんだろう」と言われても、その、なんだ、こまる

なお、lua だと ttp://luaforge.net/projects/pluto とかVMまるごと保存してくれるライブラリあるけど、
実際使ったことないのでどのくらい使えるものかは知らない。
保存されるデータサイズ不定だから、それが許容される用途でないと使うのは難しいんではないかと。
684デフォルトの名無しさん:2010/12/20(月) 19:52:50
今話に出ているコルーチンは、スクリプト内部でコルーチンオブジェクトを持たせて実行するやつなのか、
それともスクリプト自体をコルーチンと見て実行するやつなのかどっちなんだろう。

Luaで言うと、前者がcoroutineで作るやつ、後者がグルー関数内でlua_yield呼び出して止めるやつ。
685デフォルトの名無しさん:2010/12/20(月) 20:48:18
どちらでも同じだろ。前者は単にスクリプト側で制御するために口をはやしてるだけ。
たとえば coroutine.yield は中で lua_yield 呼んでるだけ。

スクリプトだけでコルーチン制御するのは、エラーで止まったときの対応とかめんどくさいから俺はやらない。
複数のコルーチンを順次実行できるような処理をシステム(ゲームエンジンとか)側に内包したほうが良いと思う
686デフォルトの名無しさん:2010/12/21(火) 11:00:51
Squirrel 3.0 はクリスマスリリース?

エロイ人出版よろしくお願いします。PDFだとなお嬉しいです。
687デフォルトの名無しさん:2010/12/21(火) 11:06:26
>>683
コルーチンって初期化した段階で別の変数に入れるだろ?
その話をしてるだけなんだけど。
それって中断中の状態を外側で持っているわけだよね。
688デフォルトの名無しさん:2010/12/21(火) 12:00:51
>>687
理解した。根本的なとこで話がずれてた。
確かに個々のコルーチンをそれぞれの場所で実行しようとしたら数が増えると管理しきれなくなるね

対応策としては以下のようなものがあるかと

1. いわゆる「タスクシステム」的な組み方をする

・基底になるオブジェクトに共通的にコルーチンのスレッド変数を持たせる
・それらのオブジェクトを総なめしてコルーチン部を実行するような機構を作る

ゲームなりウィジェット的な処理なりなら、オブジェクトを総なめするような処理は
たいていどこかに一ヶ所はあるはずなので、そこで統一的に実行するようにする。

2. 専用のスレッド実行部に集約させる

コルーチンスレッドを保持した変数は、生成/破棄部で集約して、常に一つのリストに保持させる。
そのスレッドリストをなめて全部のスレッドを1段階だけ実行するような処理を作っておいて、
それを定期的に呼び出すようにする

こうしておくと、スクリプト的には、スレッドは勝手に動いてくれるように見えるので特に処理を気にすることはない。
この処理部分でいわゆる sleep() と、スレッド間の待ち合わせとかも実装できるので、かなり自由度があがる
個別のスクリプトからは完全独立するので、処理は全部Cで書いてエンジン側にうめておくこともできる。

squirrel での実装例としては以下のようなものがある。

・sqrat に sleep 機能を含むスレッド実行集約の例がある。これは登録自体は手動
ttp://ruriko.denpa.org/201011a.html#0401 が thread実行機構をエンジン内に持つように実装してる。
関数を渡して Thread クラスのインスタンスを生成するだけであとは勝手に動く
689デフォルトの名無しさん:2010/12/21(火) 14:19:03
>>668
詳しい解説ありがとう。
2つに分けて質問してくれてるが、これはほぼ同じ概念を2つの段階で説明してるようなものだな。

ようするにネイティブスレッドがOS側で管理されるように、
コルーチンの実行制御を専用のサブシステムに委託することで
マイクロスレッド的な運用により近づけるということだよね。

うーん。元々各種サブシステムの更新制御をタスクシステム化してるので、
どうやって組み合わせるべきか悩みどころだなぁ。
毎フレーム subsytem.update()が呼び出される仕組み。
タスクは単なるリストではなくて固定の整数値を登録時に運用側が制限する形なので
こういった暗黙的な運用とはやや相性が悪い。

とはいえ、少し改良すればマージして両方扱えるようにすることも可能なような気がしてきたよ。
どうもありがとう。
690デフォルトの名無しさん:2010/12/21(火) 14:20:54
運用側が制限 → 運用側が宣言
691デフォルトの名無しさん:2010/12/21(火) 14:52:49
>>689
最終的にやることは同じなんだけど、処理部を個々の「タスク」に分配するか、一つグローバルにもつか、の差で分けたつもり。一応。

ある案件で、既存の「タスクシステム」に squirrel をつっこんだときは、
グローバルスタイルの squirrelスレッド処理一式を、そのシステムでの
一つの「タスク」としてくみ入れる形で既存の他のタスクとの整合をとった。

個別のタスクと関連した部品部から呼び出すスクリプト群は暗黙に動作することになるけど、
概念的には、「実行中のスクリプトの :suspend() までが、今のフレームで動作する」
となるので、特に他と混乱を起こすことはなかった。

タスクの処理順番を念頭においておく必要があるくらいかな。中途ではさむと混乱するから、
squirrel タスクの実行は先頭、または、最後尾にしておいて、スクリプトはそのタイミングで
動作する、ってのを周知しておく必要はある。
692デフォルトの名無しさん:2010/12/21(火) 15:39:48
>>687
関数でも、オブジェクトでも、コルーチンでも、
変数に入れて管理すれば、全部同じことなのになぁ。

そもそも、
関数はクラスに入れる、関数は変数には入れない
というOOPがキチガイじみている。
693デフォルトの名無しさん:2010/12/24(金) 18:39:32
コルーチンってゲームループ書くのも楽だね
どんどんLuaでやることが増えてもうC++でやることが
描画と衝突判定とファイル解凍ぐらいなんだけどそんなもん?
694デフォルトの名無しさん:2010/12/25(土) 14:58:29
>>693
そんなもんじゃね?(描画と衝突判定とファイル解凍だけになるかはゲームによりけりだと思うが)

速度的にクリティカルな部分やOSとの細かいやり取りは低水準言語で、
楽に書けて実行できる部分はスクリプトでなんていうのは
ゲーム以外でも見かけるよ
695デフォルトの名無しさん:2010/12/25(土) 14:59:40
>>694
そもそもLL系の言語とそのライブラリがそんな感じじゃねーかw
696デフォルトの名無しさん:2010/12/27(月) 04:03:40
自分の開発したC++のプログラムに、プラグイン機能を取り入れる予定でいます。
プラグインはpluginディレクトリにLuaファイルを置いてもらうような形式で、
それで、読み込んだLuaコードに制約を持たせたいと思っています。
指定したファイル以外はファイルアクセス禁止にさせたいんです。できますでしょうか?
例えば、Luaのファイルアクセス系関数を全部無効にして、C++側で用意した独自ファイル操作関数を経由する形はできますか?
697696:2010/12/27(月) 04:07:51
あとLuaよくわかってないんですが、
他言語でいうeval()やsystem()なんていう関数も無効にしたいです。。。
698デフォルトの名無しさん:2010/12/27(月) 04:08:42
簡単に出来るよ
699696:2010/12/27(月) 05:20:49
どんな感じにやるんでしょうか?
700デフォルトの名無しさん:2010/12/27(月) 05:53:03
nilを代入するだけだよ
print関数を例にすると

lua_State *L=luaL_newstate(L);
//luaL_dostring(L,"print('hello')"); //ng
luaL_openlibs(L);
luaL_dostring(L,"print('hello')"); //ok
luaL_dostring(L,"print=nil");
//luaL_dostring(L,"print('hello')"); //ng
lua_close(L);
701デフォルトの名無しさん:2010/12/27(月) 10:19:37
そんな遠回りな。
lua でも squirrel でもそういった機能はコア機能ではなくライブラリなので、
それらの関数を登録しているところを探して改造したりつぶしたりするだけだろうて。
702699:2010/12/27(月) 23:59:04
>>701
Luaソースに手を加えるって事が言いたいのかな?
それやると保守性・拡張性が下がるよ。
703デフォルトの名無しさん:2010/12/28(火) 00:24:21
別にコア機能じゃあるまいし、登録してる部分をコメントアウトするぐらいで保守性さがるってこたーなかろう。
#ifdef にしとけば svn でのマージもまず失敗しないよ。

わざわざ起動時に無駄な登録処理+削除処理がはさまるほうがいやだってほうが多数派だと思う。ここだと。
704デフォルトの名無しさん:2010/12/28(火) 01:29:47
よく分かってない人向けなら>>700の方が簡単そうだな
705699:2010/12/28(火) 01:54:02
>>703
コア機能ではなくとも標準ライブラリなんだからそのまま使おうよ
printf関数を潰すのにstdio.hに手を加えたり
oreorestdio.hを用意する人はいないでしょ?

潰したい機能が明確で後々変更することも無いならそれでもいいけど
そうでない場合は、ちょっとした修正のたびにリビルド必須になるよ?
plugin以外の目的でスクリプトを利用したくなったりしたらどうするの?
グローバルなフラグを用意するの?排他も必要になるよ?

pluginという利用特性上
初期化済みのVMをpoolしておけるので
ローディング時のコストなんて気にするものじゃないでしょ
スクリプト言語の利点を生かそうぜ
706デフォルトの名無しさん:2010/12/28(火) 02:50:29
や、lua が組み込み言語でなければ俺もそう思うんだけど・・・
まるごとメモリ上で無駄になるライブラリって気にならない?

>例えば、Luaのファイルアクセス系関数を全部無効にして、C++側で用意した独自ファイル操作関数を経由する形はできますか?

こういう標準ライブラリ使いたくないんだけど的要望に対してはもっとも適切な回答だと思います。はい。
707デフォルトの名無しさん:2010/12/28(火) 04:33:13
>>706
ならないな。
生産性とかパレートの法則って聞いた事ない?
そういったネガティブな理由による削る作業は最終手段だよ。
てか、運用前の段階で標準ライブラリを削るほどカツカツな状況を想定するなら
色々規制しなければ信用ならんようなプラグイン作者に間口を用意する事すらしないよね?
708デフォルトの名無しさん:2010/12/28(火) 09:40:53
まぁメモリが2MBしかない環境とかだったら削りたくなるかもだがな
709デフォルトの名無しさん:2010/12/28(火) 09:41:03
まあ、考え方の違いだねってことで。

俺はこの手の言語の「標準ライブラリ」はサンプルでしかないと思ってるので以下略。
710デフォルトの名無しさん:2010/12/28(火) 10:22:34
まあ、実際ソース見て判断してちょ。

あ、一応。ファイル系のライブラリ(io/file)は、もともと実装側で切り離し可能にはなってる。
system とか相当は load, loadfile, loadstring あたりになるけど、これはベースライブラリの一部なので、
削るか口を起動後つぶすかが必要。
711デフォルトの名無しさん:2010/12/28(火) 11:50:22
ファイルアクセスはダメ
evalもダメ
systemもダメ
もちろんpackageもダメ
その理由がプアな環境だとすると
反復もダメ
テーブルもダメ
stringもダメ
となるが、Luaを選ぶ意味はあるのだろうか?
712デフォルトの名無しさん:2010/12/28(火) 13:22:37
>>711
誰もそんな話はしていない
713デフォルトの名無しさん:2010/12/28(火) 18:41:44
ゲームだと、圧縮&連結したアーカイブファイルから読み込んだりするから、
デフォルトのファイル操作関数が使えなかったりするな。
714デフォルトの名無しさん:2010/12/29(水) 21:50:21
Luaはそもそもその辺りの組み換えを考慮しているような気がするが…
715デフォルトの名無しさん:2010/12/29(水) 21:53:14
>>711
それらが必要に応じて取捨選択できるってことでしょ。

そうでないと組み込み用途とはいえ、こんなにライブラリが貧弱なスクリプト言語使おうと思わないよ
標準のライブラリやオプソのライブラリ組み込んで楽したいなら、組み込みも考慮されてるPythonなり使えばいい

でもLuaを選ぶということは制限された環境だったりあえて制限したいわけだよ
今時ガラケーでさえJava VMが制限されて乗ってんだぞ
716デフォルトの名無しさん:2010/12/30(木) 02:20:18
>>715
701さん登場以降のやり取りは
カッツカツな環境という(質問主は一言も言っていないが)
条件付けがあってのものだよ
717デフォルトの名無しさん:2010/12/30(木) 06:19:53
ゲームに限らないとは思うが、ゲームの組み込み環境だとfopen系列が使えない環境は多い
これに関してはインターフェイスを合わせられるならLua標準ライブラリの関数を上書きしていけると思う
合わせられないなら標準ライブラリを使わず自前関数を使ったり、そもそもスクリプトに直接ファイルアクセスを許さず
実装が管理して、それにアクセスさせたり、とかか。>>713の通り、自前でファイル読み込みを最適化するのがほとんどだろうし。
ただ、Luaがエラー処理に普通にfopen系を使ってたりするんでここらへん頭痛い。これどうにかならんかな。

あとsetjumpも環境によって駄目だったりする。これのほうが頭痛いかもしれん。
718デフォルトの名無しさん:2010/12/30(木) 06:39:54
エラー時に割り込めるのがあったと思った
719デフォルトの名無しさん:2010/12/30(木) 07:22:31
>>717
>fopen系列が使えない環境は多い
ANSI-Cにすら準拠していない環境なのにLuaを組み込むの?
"使えない環境"ではなく"使える立場にない"ってだけじゃない?
720デフォルトの名無しさん:2010/12/30(木) 08:58:46
組込みの環境にはファイルシステムなんてない、ことも多い、
ということすら想像できないの? 馬鹿なの? 死ぬの?
721デフォルトの名無しさん:2010/12/30(木) 11:08:59
>>720
ANSI-Cにすら準拠していない環境だがLuaを組み込んでいる
という実装実績例を出してもらえない?
自分の足りない頭ではペイすると思えないので妄想の域を出ないんだ
722デフォルトの名無しさん:2010/12/30(木) 11:34:52
ゲームコンソールのゲームでLua使ってる例とかあるんだが、
そういう環境で普通にfopenとか使うのが普通とは思えないんだけど。

必死にANSIANSI言ってるけど、言語が標準準拠してるかどうかということと、
ライブラリが全機能フルに使えるかというのは普通分けて考えると思うんだけど。
723デフォルトの名無しさん:2010/12/30(木) 11:36:50
おまえら自分の最初の主張を正しいと言い張るために
曖昧だった前提条件を各人の都合のいいように狭めて議論するのやめなさい
724デフォルトの名無しさん:2010/12/30(木) 13:02:55
>>720
fopenが使えない=非ANSI準拠という前提自体が間違ってるわけだが
725デフォルトの名無しさん:2010/12/30(木) 13:24:11
糞どうでもいい
726デフォルトの名無しさん:2010/12/30(木) 13:52:38
>>722-723
あぁ、やっと理解できたわ。

696の質問内容を前提だと
プラグインによる拡張はOKよ、でも'標準'ライブラリに手を加え下手すりゃバイト単位で削る厳しい環境だよ
プラグインはpluginディレクトリにLuaファイルを置いてもらうような形式、でもfopenは使えないよ
で意味不明だが

前提条件も無く単発で
'標準'ライブラリに手を加え数KB、下手すりゃバイト単位で削る厳しい環境もあるよ
fopenが使えない環境もあるよ
という事なら普通に同意できるな
727デフォルトの名無しさん:2010/12/30(木) 14:00:10
fopenが使えないゲーム機が多いと言うけど、PSP, PS3, xbox ではfopenをサポートしているぞ。
Wii, DSは知らんが、Wiiはサポートしてんじゃないの。
728デフォルトの名無しさん:2010/12/30(木) 14:30:54
>>727
両方サポートしてるよ、ついでにGBAも。
729デフォルトの名無しさん:2010/12/30(木) 14:46:13
初代PSの頃はないようだ。
一応stdio.hとかはついてるみたいだが。
730デフォルトの名無しさん:2010/12/30(木) 16:19:49
・fopenが(標準ライブラリになく)使えない環境
・fopenが(自社のアーカイブライブラリを通す必要があるため)使えない環境
・fopenが(標準ライブラリにはあるけど大人の事情により)使えない環境

おいお前らどれ前提に話しとるんや
731デフォルトの名無しさん:2010/12/30(木) 16:47:30
>>730

ゲームコンソールについてだから、

>・fopenが(標準ライブラリになく)使えない環境

についてだよ。
732デフォルトの名無しさん:2010/12/30(木) 17:50:55
最近のコンソールは全部

ライブラリとしては存在するけどアプリ内部での使用には耐えない(ほぼデバッグ表示用専用)

だな。
733デフォルトの名無しさん:2010/12/30(木) 18:13:26
まず非同期ファイルロード機構からつくるよね
734713:2010/12/30(木) 19:54:40
>・fopenが(自社のアーカイブライブラリを通す必要があるため)使えない環境 
俺が言ってるのはこれだな。

あと、スクリプトそのものの読み込みや#includeに相当するものでファイルを読み込む際にも、
ライブラリ側でfopen使ってたりするとちょっと困る。
735デフォルトの名無しさん:2010/12/30(木) 21:00:20
無料RPG製作ツール「ロープレジェネレーター」
http://sekisekki.net/index.htm

直感的操作で簡単なゲームが作れます。 簡単に配布可能な状態に出力することができます。
(HSP製のソースコード付きで、スクリプトの知識があれば自由度の非常に高いカスタマイズ
ができます)
他にも仲間預かり機能(100人も)や、仲間の状態/状態異常を細かく設定できたり、
乗り物が作れたり、ゲーム中に画像を差し込んだり、回転やフラッシュなどのエフェクト
なんかも簡単に作れる様です。
移動は矢印キーの他に、キャラがマウスを追っかけたりするとのこと。
戦闘はデフォだとドラクエ系。
他にはオートアクションというのがあってオリジナルシステムの製作に役に立つかも
しれない機能です。これは、マップエディタで設定することで、「マップに入った時・
出た時・一歩歩いた時・戦闘開始前」に自動的に実行されるアクションを設定できる
機能です。
■他にもいろいろ進化中。要望は掲示板へどうぞ。

どんなゲームが作れるかはこれを見れくれ。HSPのカスタマイズはしてないとの事。
「眠られぬ獅子〜序章〜」
http://www.freem.ne.jp/game/win/g02773.html
736デフォルトの名無しさん:2010/12/31(金) 08:16:20
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   
737デフォルトの名無しさん:2010/12/31(金) 20:08:57
あるぇ、DSってfopen使えたっけ。PSPとかは使えるの知ってるけど

>>696 を見るに
・fopenが(自社のアーカイブライブラリを通す必要があるため)使えない環境
を作りたいからfopenを禁止したいのではないか。理由は
> ライブラリとしては存在するけどアプリ内部での使用には耐えない(ほぼデバッグ表示用専用)
かな?
まぁ上で言われてるLuaのファイルアクセス関連上書きするとかに行き着くけど。
Lua内部で使ってるのは、書き換えるか、お勧めしないが上書きするかとかか・・・できたかうろ覚えだが

しかしこの板ID出ないからめんどくせぇw
738デフォルトの名無しさん:2010/12/31(金) 20:37:34
そもそもLuaって分離できないようなところでfopen使ってたっけ?
grepしてみたけど標準ライブラリとluaL_loadfileくらいでしか使ってなくね?
739デフォルトの名無しさん:2010/12/31(金) 20:50:17
やっぱり、 >>700 の方法がスマートという事でファイナルアンサー。
740737:2010/12/31(金) 23:37:06
>>738
おお、なら大丈夫そうかな。間違ったか古い知識ですまない
741デフォルトの名無しさん:2011/01/01(土) 05:51:15
潰すのではなく差し替える例はこんな感じ
--begincode.lua
local _loadfile = loadfile
local permreadlist = {"1.lua","3.lua"}
local canread = function(fname)
  for i=1,#permreadlist do
    if permreadlist[i]==fname then return true end
  end
  return false
end
function loadfile(fname)
  if canread(fname)==true then
    return _loadfile(fname)
  else
    return nil,"No such file or directory"
  end
end

仕様が固まり最終的にはホスト側に落とし込むものだとしても
開発効率は上がるんじゃないかな
packageとか便利だし
742デフォルトの名無しさん:2011/01/01(土) 10:26:36
仮にもLLなんだしソースレベルで潰すのもいいけど
アドホックに言語の機能、上書き差し替えでもいいね
743デフォルトの名無しさん:2011/01/01(土) 18:47:44
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ

744 【だん吉】 【1294円】 :2011/01/01(土) 20:38:07
あけおめ!
745デフォルトの名無しさん:2011/01/01(土) 21:01:53
サンドボックス化すれ。
746デフォルトの名無しさん:2011/01/05(水) 18:58:49
サンドボックス、略してサンボッ
747デフォルトの名無しさん:2011/01/07(金) 22:15:49
AngelScriptでアプリケーション側からインタフェースをRegisterInterfaceで登録して、
スクリプトでそれを実装したクラスを書いたんだけど、
どうやればこれをC++のクラスと同じように使える?
748747:2011/01/08(土) 00:04:24
AngelScriptのクラスをあたかもC++クラスのように使うのは難しそうだ
プロパティを取得するのは簡単にできるみたいだけど。
コンテキストを作成して、オブジェクトとメソッドIDを指定して実行するのは出来るけどあまり賢い方法とは思えない。
GetMethodIdByDeclでメソッドID取得するとオーバーヘッドも心配
何かもっといい方法ない?
749747:2011/01/08(土) 00:21:11
タイトル画面とか、オプション画面とか各ステートをスクリプトのクラスでやろうとしたんだけど
AngelScriptでクラスのメソッド呼ぶのは結構難しそうなので諦めた

クラスをスクリプトで記述する代わりに、
XMLに呼び出す関数名とスクリプトのコードそのものを入れる、という方法をフォーラムで見つけた
これでやってみるか
750デフォルトの名無しさん:2011/01/08(土) 01:02:39
>>747
メソッドIDはスクリプト読み込んでコンパイルした直後にでも取得して保存してても大丈夫のはず。
あと、1つのスクリプトファイルを1つのクラスと見て、そのスクリプトの関数を呼び出すメソッドを持つC++のクラスを用意する方法はダメかな?
751デフォルトの名無しさん:2011/01/08(土) 02:02:05
燃料投下?

マイナーだがPicoC
ttp://code.google.com/p/picoc/

Cのサブセットで4000行程度だそうな。修正BSDライセンス。
なんかおもしろそう。
752デフォルトの名無しさん:2011/01/08(土) 02:07:55
パイコック
753デフォルトの名無しさん:2011/01/08(土) 13:34:27
tcc(http://bellard.org/tcc/)と違って多様なCPUに対応してるし
組み込み想定してるから動的生成については用途広そう
754デフォルトの名無しさん:2011/01/08(土) 13:36:24
って、インタプリタなのかー
755747:2011/01/08(土) 23:27:42
>>750
メソッドIDはインタフェースのが使えるみたい
ただ、その場合は実行時に線形探索で実装されたメソッドを探すみたいだが。

速度はとりあえず度外視でいいか・・・。
コンテキストはオブジェクトごとに作ることにしよう
756デフォルトの名無しさん:2011/01/09(日) 17:28:16
Luaもインタプリタだろうが
757デフォルトの名無しさん:2011/01/09(日) 21:02:51
lua はコンパイラだべ。動的言語ではあるけど。
758デフォルトの名無しさん:2011/01/09(日) 23:01:44
Pythonもコンパイラと言い出しそうだなおい
759デフォルトの名無しさん:2011/01/09(日) 23:02:49
仮想コードにコンパイルして逐一実行しようががコンパイラはコンパイラ
お前の定義だとJavaやC#もインタプリタになるだろうが
760デフォルトの名無しさん:2011/01/09(日) 23:07:50
構文解析の結果のASTをそのまま実行するのがインタプリタなの?
じゃあASTを少し実行しやすい形に変換してから実行するのはどっち?
どこまで変換したらインタプリタからコンパイラになるの?w
無意味な議論ですよ
761デフォルトの名無しさん:2011/01/09(日) 23:10:54
cint http://root.cern.ch/drupal/content/cint
これもC++のインタプリタだな
古いしデカいし重いが
762デフォルトの名無しさん:2011/01/10(月) 00:01:40
lua はバイトコードをファイル出力してそれを読み込んで実行できるからわりがっつりコンパイラじゃね?
コンパイラ部切り離してつかえるし
763デフォルトの名無しさん:2011/01/10(月) 12:39:08
luaとかJavaはコンパイラとインタプリタの併用だよな?
764デフォルトの名無しさん:2011/01/10(月) 13:59:30
というか、中間言語でなく
純コンパイル言語なスクリプト言語って、
それこそDS位のチープな環境じゃないと役に立たないんじゃね?
765デフォルトの名無しさん:2011/01/10(月) 15:28:06
>>764
JavaScriptの実装はJIT可が流行りだし、luaも欲しいぞ。
766デフォルトの名無しさん:2011/01/10(月) 16:47:43
luaJITはあるだろ?
767デフォルトの名無しさん:2011/01/11(火) 01:10:11
http://angelscript.pbworks.com/w/page/13041782/ExternalResources
ここにあるAngelWingって誰か持ってない?
AngelScriptのバイトコードを出力するmakeのようなツールらしいが
リンク切れになっている
768デフォルトの名無しさん:2011/01/11(火) 01:11:12
>>755
呼び出し毎にPrepareメソッドとSetObjectメソッドを使って設定を行えば、一応asIScriptContext1個を使いまわせるよ。
ただ、Suspendでスクリプトの一時停止ができないとか、制限もあるけど。
769デフォルトの名無しさん:2011/01/11(火) 22:31:58
>>767
> AngelScriptのバイトコードを出力するmakeのようなツールらしいが
AngelScriptのバイトコードを出力するasc(仮)をさっくり書いて
makeを使えばよくね?
770デフォルトの名無しさん:2011/01/12(水) 00:24:46
>>765
動作環境的にJavaScriptよりLua動かすような場面のほうがロースペックだろうに、
開発者リソースかけられるJavaScriptの方が進んでるよな

V8(Google) vs SquirrelFish Extreme(Apple Safari/Webkit) vs SpiderMonkey,TraceMonkey,JagerMonkey(Mozilla Foundation)

こいつらはそれぞれのWebブラウザの高速化のためにお互いパクりあってしのぎを削ってるからな

ゲーム業界もお互いしのぎ削れや
771デフォルトの名無しさん:2011/01/12(水) 00:35:54
Javascript は富豪プログラミングすぎるのじゃよ……
772デフォルトの名無しさん:2011/01/12(水) 05:11:49
JavaScriptとLuaはセマンティック的にはかなりにてると思うが、どこが富豪的なんだろうか?
773デフォルトの名無しさん:2011/01/12(水) 08:50:14
組み込みにはV8もjsで書かせられる点で面白そうだね
それでもluajitが互角以上の速度ってのが、なんというかブレねえど
774デフォルトの名無しさん:2011/01/12(水) 10:00:38
>>770
しのぎを削るためにはLuaの実装が複数ないとダメなような気がする。
JavaScriptで複数の実装が出始めたのもJavaScript自体が本格的に使われ始めてからだろうから、
まずはLua自体の普及からってことかもしれない。
それとも現状のLuaの実装で満足してるのかな。
775デフォルトの名無しさん:2011/01/12(水) 10:39:47
>>772
ああ、すまんすまん。既存の実装が富豪。
776デフォルトの名無しさん:2011/01/12(水) 10:57:08
>>774
敵を増やさないとダメだというのも
まずは味方を増やすことからだと言うのも
自分では満足なのか不満なのか判断できないやつが悪あがきしてるだけに見える
777デフォルトの名無しさん:2011/01/12(水) 12:57:25
Javascript はセマンティックこそ簡単に見えるけど歴史的経緯含めて複雑な仕様がいろいろあって全部実装すると必然的に富豪的になる罠
778デフォルトの名無しさん:2011/01/12(水) 15:58:11
> セマンティック
誤用して無い?
理解できん
779デフォルトの名無しさん:2011/01/12(水) 16:10:58
うむ。シンタックスだな
780デフォルトの名無しさん:2011/01/12(水) 23:06:32
セマンティック誤用じゃないだろ。意味は十分通じる。
その上で主張に肯くかは別だが。
781デフォルトの名無しさん:2011/01/13(木) 00:27:18
>>769
AngelScriptの場合、asIScriptModuleにあるSaveByteCodeとLoadByteCode使って、コンパイル済みのバイナリを入出力するのがいいかも。
782デフォルトの名無しさん:2011/01/13(木) 14:59:10
AngelScriptで使えるバインダってあります?
今はバインダなしで地道にやってるけど
バインダなしのJS系並に冗長だわ
それでいて独特だわ、一々面倒だわでいい加減辛くなってきた・・・
783デフォルトの名無しさん:2011/01/13(木) 15:22:32
AngelScript って実装自体にC++のバインド機構があるのでは
784デフォルトの名無しさん:2011/01/13(木) 15:36:01
>>783
そのバインダの出来が
>バインダなしのJS系並に冗長だわ
>それでいて独特だわ、一々面倒だわでいい加減辛くなってきた・・・
なのであります
785デフォルトの名無しさん:2011/01/13(木) 15:38:33
それはご愁傷様としか……

なにがめんどいのかしらないけど、ラッパ関数の類の準備がめんどいとかなら、テンプレートでちょちょいと書いてしまうとか。
なれればわりと簡単よ。
786デフォルトの名無しさん:2011/01/13(木) 15:45:47
難易度的には易しくともそれなりの手間は掛かるし
SwigやBoostなど標準的なものが既にあるなら
そっちを使った方がいいよね
って事で劣化車輪を作る前に質問した次第です
787デフォルトの名無しさん:2011/01/13(木) 18:22:17
複数の言語を連携させるんだから複数の車輪を作ってしまう確率は高いよな
Cは最低限の機能しかないから重複しないが
機能が多いC++では逆に難しくなる
788デフォルトの名無しさん:2011/01/13(木) 22:32:04
正直Lua以外は糞
789デフォルトの名無しさん:2011/01/14(金) 02:52:51
正直Luaのような旧式でめんどくさい言語は使う気にならん。
790デフォルトの名無しさん:2011/01/14(金) 11:26:36
旧式ってなにがだろう
791デフォルトの名無しさん:2011/01/14(金) 11:39:52
つかLuaそのものでアプリケーション書くとかしなければよいとおもうんだけど。
対象分野のフレームワークで頻出パターン部分にDSLとしてLuaを使うのが俺のおすすめ。
792デフォルトの名無しさん:2011/01/14(金) 19:14:21
ゲームのメインループの部分をほとんどスクリプトで書いて、必要最低限のグルー関数と描画処理とかをC++で書く、
ってやり方ならLuaは向いてると思う。
ただ、C++側と頻繁にやり取りしたり、ゲームのオブジェクトの動きをスクリプトで記述したい場合はLuaはあんまり向いてないような…
793デフォルトの名無しさん:2011/01/14(金) 19:56:45
>>792
前後で矛盾してないか?
どちらにしても、そういうのはLuaの得意分野だよ
794デフォルトの名無しさん:2011/01/14(金) 20:33:13
>>793
後者はメインループがC++で、敵の動きだけLuaって感じね。
個人的にはC++とLuaでLuaの比率が高いほど楽ってイメージ持ってる。
795デフォルトの名無しさん:2011/01/14(金) 21:02:25
>>794
ちょっとイメージ掴めない
敵の座標やらモデルやらの各種パラメーターはC++側に保持するけど
動きはLuaでやるって事?
796デフォルトの名無しさん:2011/01/14(金) 21:29:37
>敵の座標やらモデルやらの各種パラメーターはC++側に保持するけど 
>動きはLuaでやるって事? 
まさにそんな感じ。
スクリプト側では、「速度を設定」とか「〜フレーム待機」とか、そういう関数を呼び出すだけにする。
797デフォルトの名無しさん:2011/01/14(金) 22:42:24
最終的にはハードコーディングする予定のプロトタイピング部分なのかな
特に問題があるようには思えないけど・・・
798デフォルトの名無しさん:2011/01/15(土) 17:50:00
Perlの代わりにちょっとしたツールとしてLua使おうかと思うんだけど
文字列処理はC++のRegexで済ませられるが、ネット周りの手間の
かからないライブラリなんかない?
799デフォルトの名無しさん:2011/01/15(土) 17:52:37
C++のRegex、ってboostの?
800デフォルトの名無しさん:2011/01/15(土) 18:09:23
>>798
ネット周りとか抽象的過ぎて答えようが無い

てか、Perl使えばいいんじゃないの?
Perlだってちょっとしたツールじゃないか
801デフォルトの名無しさん:2011/01/15(土) 18:24:02
>>799
自分はboostの使ってるが、最近だとVC2010にもあるね。

>>800
httpやftpが簡略化されてるのがあるといいんだけど。
802デフォルトの名無しさん:2011/01/15(土) 18:34:05
curlでもwgetでも呼び出せばいいんじゃないかと
803デフォルトの名無しさん:2011/01/15(土) 19:33:00
スペック関係ない、ちょっとしたツールならPythonやPerlを使えばいい気がするが、
ネット関係なら何かLuaForgeあたりにあった気がする
804デフォルトの名無しさん:2011/01/15(土) 19:50:59
> httpやftpが簡略化
ごめん、意味がわかんない
805デフォルトの名無しさん:2011/01/15(土) 20:15:26
>>804
オレは798,801が言いたいことがよくわかるぞ。
C/C++でゼロから実装するのが面倒な部分を
スクリプトでどうこうしたいってことだよな。

なにか積極的な理由がない限りは、Luaはおすすめしないな。
大雑把に、C/C++にスクリプト言語を組み合わせて
楽をしたいってだけならPythonがおすすめ。

最近はPython+Qtで全体を作って、必要な部分だけC/C++で
実装するのが最強じゃないかと思いつつあり。
806デフォルトの名無しさん:2011/01/15(土) 20:29:33
>>797
問題はないんだけど、アプリ作る際にどこまでC++でやってどこまでスクリプトに処理させるか?の違いかな。
Luaの場合、スクリプトの比率が多い方が楽なイメージがある。
807デフォルトの名無しさん:2011/01/15(土) 21:45:06
>>805
ごめん、やっぱり意味わかんない

httpやftpはプロトコルだよ?
そのプロトコルを利用したなんちゃらな処理を簡略化したいとか
Perlで言うなんちゃら相当なものが欲しい
という事なら分かるけど
プロトコルを簡略化したいと言われても
答えようがないと思うのだが。
808デフォルトの名無しさん:2011/01/15(土) 21:49:58
>プロトコルを利用したなんちゃらな処理を簡略化したい

ライブラリって言ってるんだからそのなんちゃらが色々詰まってるのが無いかって話だろう
809デフォルトの名無しさん:2011/01/15(土) 21:57:05
色々詰まっていて簡略化か
禅問答だな
810デフォルトの名無しさん:2011/01/15(土) 23:01:51
日常会話を除けば、禅問答か美辞麗句しか言えないのが普通だと思う
どちらかというと禅問答の方がましだ
811デフォルトの名無しさん:2011/01/15(土) 23:17:04
>>807
798が文字列処理をRegexで済ませられると言ってるんだから、
ネット周り、特にhttp/ftpの問題を解決するのに何を必要としてるかなんて
いちいち確認しなくったってわかると思うんだが。
そんなに察しが悪いのか?

プロトコルを実装したいんじゃなくて、
それを道具として何かやりたいことがあるってことだろ。
そんな事言い出したらRegexは正規表現の実装の一つであって
「文字列処理」ライブラリじゃない。

ひょっとすると、スクリプト言語でのプログラミングを
日常的にやってないと分からないものなのかもね。
812デフォルトの名無しさん:2011/01/15(土) 23:21:40
>>811
> プロトコルを実装したいんじゃなくて、
> それを道具として何かやりたいことがあるってことだろ。
そのプロトコルを利用したなんちゃらな処理を〜
って言ってるでしょ
大丈夫?
813デフォルトの名無しさん:2011/01/15(土) 23:26:57
>>801のは要するにhttpやftpを簡単に扱うための(面倒なおまじないなどが必要でない)ライブラリってことでしょうに
日本語として引っかかることは否定しないけどわざわざ分からない振りをして曲解するようなことでもないだろう
814デフォルトの名無しさん:2011/01/15(土) 23:28:57
わからないフリじゃなくて本当に分からない病気の奴なんじゃね?
815デフォルトの名無しさん:2011/01/15(土) 23:32:47
>>813
だから
サーバー、ブラウザ、ダウンローダー、メーラー、その他もろもろ
HTTPプロトコルを利用したものは色々あるでしょ?
それを聞いてるの。

それら全ての機能を備えて、なおかつ簡略化されたという物があるんですか?

816デフォルトの名無しさん:2011/01/15(土) 23:33:47
とりあえず定番は libcurl かね。
C++ にラッピングした cURLpp ってのもある。
817デフォルトの名無しさん:2011/01/15(土) 23:34:37
だれもサーバとかブラウザとかは言ってないよな。そんなレベルの話じゃないことぐらいわかるだろうて
818デフォルトの名無しさん:2011/01/15(土) 23:35:20
HTTPなんてOS(Windowsなど)によってはふつーにopenすればふつーにreadできるが
819デフォルトの名無しさん:2011/01/15(土) 23:42:04
>>818
いかにもC言語屋な考え方だなぁ。
煽るつもりはないんだが、どうしてもそう思ってしまったので。
スクリプト屋なら、1行で指定したURLのファイルを拾ってくるコード書けないかな、とか考えるよ。
820デフォルトの名無しさん:2011/01/15(土) 23:45:37
やってる事は大差ないのにね
馬鹿だよね
821デフォルトの名無しさん:2011/01/15(土) 23:46:10
スクリプト屋(笑)
822デフォルトの名無しさん:2011/01/16(日) 08:31:18
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >

823デフォルトの名無しさん:2011/01/16(日) 09:08:32
node.lua
824デフォルトの名無しさん:2011/01/16(日) 17:42:38
じゃ処理の実例として、特定のサイトのリンクから得ろ画像を効率よくかき集められそうなのをお願い。
DLする為にはパス入力が必要な場合もあるという条件で。
825デフォルトの名無しさん:2011/01/16(日) 17:53:06
>>824
スレ違いw
826デフォルトの名無しさん:2011/01/16(日) 17:56:44
一体何が始まるんです?
827デフォルトの名無しさん:2011/01/16(日) 18:24:04
スレタイ読めずスクリプト屋さんが迷い込んで涙目
という状況がちらほら見えるので
スクリプト言語総合とか適当な隔離スレを経てて
そっちへ追いやればおしまい
828デフォルトの名無しさん:2011/01/16(日) 18:34:54
LLバトロワスレにでも誘導しときゃいいだろ
829デフォルトの名無しさん:2011/01/17(月) 07:36:11
スタック方式が嫌って、PCの仕組みを知って
る普通のエンジニアならありえないだろ・・・
830デフォルトの名無しさん:2011/01/17(月) 11:13:47
ひとまずここで書かねばなるまい。
「アセンブラを知らない子供たち」と!
831801:2011/01/17(月) 19:45:45
>>816
こういうのを探してました。ありがとうございます。
832デフォルトの名無しさん:2011/01/18(火) 01:23:04
>>829
だって面倒くさいじゃん。
直感的じゃないし。
833デフォルトの名無しさん:2011/01/18(火) 11:20:59
そんなんじゃListやTreeも理解できないねえ。
単純なFIFOやFILOもわかるまい。
834デフォルトの名無しさん:2011/01/18(火) 14:30:22
ラッパ書くなりバインダ使うなりして
抽象レベルを上げてやれば済む話だろ
何回ループしてるんだよ
835デフォルトの名無しさん:2011/01/18(火) 14:32:18
スレ読んだりできないからな。
代わりにFIFOが理解できます。
836デフォルトの名無しさん:2011/01/18(火) 14:56:18
>>831
このスレのいいところは話そらす人がいる一方で適切な回答くれる人がいるところだよなw
837デフォルトの名無しさん:2011/01/18(火) 22:50:50
スクリプト屋はLLスレに帰れよ

>>818
まあたしかにOS(Windowsなど)によってはふつーにopenしてreadでできるが…

$ ruby -ropen-uri -e "p open('http://hibari.2ch.net/test/read.cgi/tech/1272643397/818').read"

厳密に書くなら
$ ruby -U -ropen-uri -rnokogiri -e "p Nokogiri(open('http://hibari.2ch.net/test/read.cgi/tech/1272643397/818', 'r:Shift_JIS').read.encode).css('.thread dd').text"
" HTTPなんてOS(Windowsなど)によってはふつーにopenすればふつーにreadできるが "

>>819
こういうことでしょ?w
838デフォルトの名無しさん:2011/01/18(火) 22:55:19
言いたいことは分かるぞ
>>824も煽りで言ってるんじゃなくてクッキーの処理のようなhttpクライアントの機能をいちいち再実装する奴はバカだろってことだろ
それこそlibcurlでいいわな
839デフォルトの名無しさん:2011/01/19(水) 02:44:09
Luaに興味を持って調べてるんだけど、ちょっと教えてほしい。

.NET Framework上で動作するlua言語実装した生きてるライブラリってないかな?
IronPythonみたいなの。

ただのラッパーじゃなくて、.NET FrameworkやMono上でまともにネイティブで動くようなのがあるとうれしい。
一応探してみたんだが・・・。ほとんど終わってるっぽい?
誰かそれぞれの詳細わかる人教えて(;w;

・LuaDotNet(2003年。古いな
http://www.codeproject.com/KB/mcpp/luanetwrapper.aspx

・IronLua(2008年で開発止まってる?
http://code.google.com/p/ironlua/

・Nua(2007年で開発止まってる?
http://nua.codeplex.com/

・Lua.NET(2008年で開発止まってる?
http://luaforge.net/projects/luanet/

・Lua.NET for Yanesdk(YaneuraoGameSDK.NETでパッチ版公開してる。やっぱり2007年で開発停止?
http://yanesdkdotnet.sourceforge.jp/

・netsuki(ラッパー?2009年で開発止まってる?
http://code.google.com/p/netsuki/

・LuaInterface(ラッパー?最終2010年っぽい
http://code.google.com/p/luainterface/

みんないったい何があったんだ?
840デフォルトの名無しさん:2011/01/19(水) 02:48:51
>>839
言語処理系よりどり見取りな.NET Framework上で、なぜにLuaにこだわる?
IronPythonが最右翼に上がるし、NemerleやらF#やら、
もっと面白い言語が色いろあるでしょ。
CのLuaとは処理系自体が違うんだから、Luaの高速性とかは関係ないんだよ。
文法が同じなだけ。
841デフォルトの名無しさん:2011/01/19(水) 02:49:20
>ただのラッパーじゃなくて、.NET FrameworkやMono上でまともにネイティブで動くようなのがあるとうれしい。
CLRか?ネイティブか?
勉強して出直して来い
842デフォルトの名無しさん:2011/01/19(水) 03:48:24
IronPytyhonのようにDLRじゃなくて、Booのように.NET Runtimeでそのまま動くという意味と推測
843デフォルトの名無しさん:2011/01/19(水) 18:54:34
事前にコンパイルするならC#で書くのと比べてメリット無いし
動的にコンパイルするならDLRと同じだし
844デフォルトの名無しさん:2011/01/19(水) 20:43:26
大部分をCで書いて、C++/CLIを少しだけ書くといい
845デフォルトの名無しさん:2011/01/19(水) 20:55:35
C書くならC++/CLI使う意味ねーよ
普通のネイティブコードのdllにして.NETから呼び出したほうが遥かに扱いやすい
846デフォルトの名無しさん:2011/01/19(水) 21:52:53
マーシャルってP/Invokeでいい?
苦労してC++/CLIで書いて得な事ある
847デフォルトの名無しさん:2011/01/19(水) 22:01:19
>C++/CLI
正直言って、各種形式をSystem.IO.Streamで
読み込めるようにする時にくらいしか使わないな。
プログラムはほとんどC#で書くことになる。

ただしゲームごとに違う部分は別の言語にする。
何を選ぶかはプログラマによって変わってくると思うけど。
848デフォルトの名無しさん:2011/01/19(水) 22:07:22
たしか、dllは関数しか見えないんじゃないか
構造体とかマクロが見える方が得だ
849デフォルトの名無しさん:2011/01/19(水) 22:38:29
C++/CLIでCの関数をラップしたからって
それをC#から使おうと思ったら構造体やマクロもラップして公開しなきゃいけないからそんなに楽にはならん
C++/CLIはネイティブC++のクラスをラップするときには役に立つけど、C向けライブラリのラップには必要ない
850デフォルトの名無しさん:2011/01/20(木) 00:13:48
>>841
libluaのラッパーじゃなくて、ilasmになってるLuaCLRの実装ってことでは。
851デフォルトの名無しさん:2011/01/20(木) 00:15:12
だからそんなもん何の意味があるんだよ
852デフォルトの名無しさん:2011/01/20(木) 00:19:40
そのまま移植したいか、
デザイナーに、そのまま同じ構文使わせたいんじゃないの
853デフォルトの名無しさん:2011/01/20(木) 00:24:04
JVMやCLRみたいな大規模なVM系で、起動時に動的な言語呼び出して使うと物凄く遅くなるイメージがあるな
854デフォルトの名無しさん:2011/01/20(木) 00:52:10
大規模系……汎用のAPIをそのまま全部公開する。面倒くさい。

組み込み系……汎用のAPIではなく特定のアプリケーションの機能だけ公開する。
855839:2011/01/20(木) 12:19:24
>>840
Luaそのものや、速度、実装方法などは、特にこだわっては無いです。
Luaが.NETで使えるのかどうかを調べてただけです。

具体的には、CodeDomProviderで実行できるものを探してた。

>>841
突っ込みありがとう。眠たかったせいか、すっかり言葉を間違えて使ってた。
言いたかったのは、「マネージド」です。(まったく逆だなw

まあ、なんていうか、.NETでLua使うぐらいなら、C#で書けよって話なのかな。
856デフォルトの名無しさん:2011/01/20(木) 12:31:32
>>855
.NET Frameworkの場合、C#自体の生産性が高すぎて、
あまり積極的なスクリプティングを活用するメリットがないんだよね。

だから、ビルド後のプログラムを外側からカスタマイズ、
運用するスクリプティングという用途に限ったほうがいいと思うよ。
857デフォルトの名無しさん:2011/01/20(木) 17:52:35
積極的なスクリプティングって、疎結合なモジュールっていうのと矛盾してるよな
858839:2011/01/20(木) 18:13:40
>>856
うんうん、その用途です。
自分はAPIを公開して、スクリプトで使ってもらう側です。

スクリプトを作るのは、利用者側なので、
「簡単に対応できそうなら、いくつか言語を使えるようにしたほうが親切だろう」
・・・ってところです。

C#やVB.NET、Ruby、Pythonあたりは知らないけど、
Luaなら組めるっていう人がどれだけいるかにもよりますが・・・。
859デフォルトの名無しさん:2011/01/20(木) 19:37:13
>>858
C#、VB.NET、Ruby、Pythonよりも、
Luaのプログラミング人口のほうがずっと少ないよ。
860デフォルトの名無しさん:2011/01/20(木) 20:11:43
>>858
だったら普通にマネージAPI公開するだけでいいじゃん
それを何の言語から使うかは利用者の勝手
861839:2011/01/20(木) 20:39:07
>>859
ですよねぇ。
ゲーム関連でLuaが使われることが多いと聞いて、「対応できたらいいな」と思ったんですけどね。

>>860
いや、えーと、スクリプトの実行タイミングはアプリケーションがキックするものを想定してます。
「アプリケーション内で動くスクリプト」って言えばわかってもらえるのかな。

「それを何の言語から使うかは、利用者の勝手」なんだけど、
アプリケーション側が対応してないと使えないでしょ。

MayaやBlender上でPythonを動かすのと一緒。
もっと身近だと、テキストエディタのマクロ機能みたいな。
862デフォルトの名無しさん:2011/01/20(木) 21:00:20
>>861
具体的なスクリプトではなく
抽象クラスのオブジェクトをキックするものを想定すれば
アプリケーション側がいちいち派生クラスに対応してなくても使える。

Formを継承するのと一緒。
863デフォルトの名無しさん:2011/01/20(木) 21:01:15
それならプラグインとして.NETのdllを読み込んで実行するようにしたいところ
C#やVBで書くならプラグインを直接実装すればいいし、
IronPythonをホストするプラグインを用意すればPythonも使える
自分でそのプラグインを用意するかは別にして、アプリケーションからスクリプトは直接意識したくないな
>>862と被ったけど
864デフォルトの名無しさん:2011/01/20(木) 22:46:47
>>862
む?なんか勘違いされてそう。

>>863
うん、863さんのほうがわかってもらえてる。
複数言語対応するなら、プラグイン実装が確かに理想ですね。

まあ、そこまで分離する必要があるかは、ちょっと考えないとだけど。
865デフォルトの名無しさん:2011/01/20(木) 23:26:19
>>864
勘違いではない
まず、メソッドのオーバーライドを理解しろ
そのメソッドはC#で実装しても良いし、C++/CLIでも良いし、
メソッドの中でスクリプトを呼び出しても良い
866デフォルトの名無しさん:2011/01/21(金) 01:55:18
>>865
いや、えーと、やっぱり根本を勘違いされてると思う。
そもそも作り方の話をしてるんじゃないって事です。

きっと「C#での実装方法は詳しく知らないけど、C++/CLIを深く理解している」
という知識で、答えてくれてるんだと思う。(感謝
まあ、ちょっと質問の仕方がまずかったね・・・。勘違いさせてごめん。

あと、たぶん、 >>862 で言ってる「抽象クラス」ってCodeDomProviderそのものじゃないかな。
http://msdn.microsoft.com/ja-jp/library/system.codedom.compiler.codedomprovider.aspx

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.CodeDom.Compiler.CodeDomProvider
        Microsoft.CSharp.CSharpCodeProvider ← C#
        Microsoft.JScript.JScriptCodeProvider ← JScript
        Microsoft.VisualBasic.VBCodeProvider ← VB.NET

CodeDomProviderを実装したクラスがあれば、いくつ言語があろうと、
CodeDomProviderクラスで同じように扱える。
だから「Lua用のCodeDomProviderクラスを実装したライブラリが存在して、
それがまともに使えるか」の情報を求めてた。
実際に使ったことのある人の意見を聞いてみたかった。
そんな感じです。

そして、今調べて知ったけど、DLRだとapp.configファイルを定義すれば、
ScriptRuntimeクラスだけでいけるんだな・・・。
867デフォルトの名無しさん:2011/01/21(金) 19:44:39
CodeDOMは開発者ツール作ったりするための仕組みで、スクリプトとしては非常に使いづらい
構造上必ずメモリリークするので、気軽にeval的に使えないのが終わってる
いちいちAppDomainを分離する必要がある
868デフォルトの名無しさん:2011/01/21(金) 20:51:49
.NETだと、プラグインの動作モデルを定義したインターフェイスだけ公開しておけば、
プラグイン自体は何で実装してても
実行時に必要なモジュールを自動的に解決してくれるよ。
つまり、プラグイン的な動作をさせるときにCodeDomを自分で扱う必要はない。

もちろん、言語処理系で必要なモジュールが別にあるなら、検索できる位置に置いておく必要はあるが。
869デフォルトの名無しさん:2011/01/23(日) 10:05:45
>>853
おっとJRubyの悪口はここまでだ
870デフォルトの名無しさん:2011/01/23(日) 10:08:40
CodeDomはいらない子だったのか・・・
871デフォルトの名無しさん:2011/01/23(日) 10:20:41
標準ライブラリのシリアライザとかで使われる動的コード生成も
昔はCodeDOMでC#のコードを生成してコンパイルしてたけど
問題が多いので後のバージョンで新しく追加されたものは軒並みDLRと同じようにLCGでILを吐くようになってる
872デフォルトの名無しさん:2011/01/25(火) 11:28:02
Luaで定数を扱うときに省メモリな方法って
どうすればいい?
できればCと共有したい
873デフォルトの名無しさん:2011/01/25(火) 12:55:56
>>872
定数の配列を返すC関数を用意すればいいんじゃね?
874デフォルトの名無しさん:2011/01/25(火) 13:55:43
>>872
使わない定義をコメントアウトする
875デフォルトの名無しさん:2011/01/25(火) 14:58:49
Lua側に持つなら
http://www.gammon.com.au/forum/bbshowpost.php?bbsubject_id=8028
こんな感じに代入不可にして
C側からはlua_getglobal,lua_getfield,lua_to...などを使って参照する
luabindを使うと
object_cast<T>(globals(L)["..."]["..."])
みたいにスクリプト内で参照するのとほぼ変わらない構文で1行で書ける
876デフォルトの名無しさん:2011/01/31(月) 12:53:34
sqratでC++の特定インスタンスのメンバ関数をsquirrelのテーブルにバインドするにはどうすればいいんですか?
MYCLASS myinstance;
int (MYCLASS::*pMyFunc)(void) = &MYCLASS::MyFunc;
RootTable().Bind(_SC("MyTable"),Table()
.Func(_SC("MyFunc"),&(myinstance.*pBeginScene)())
);
これだと文法エラー、&とるとVC++2010が落ちます。
877876:2011/01/31(月) 12:55:50
間違えました。試したのはこうです。
.Func(_SC("MyFunc"),&(myinstance.*pMyFunc))
878デフォルトの名無しさん:2011/01/31(月) 13:58:44
>>877
BindInstance
879876:2011/01/31(月) 14:11:23
つまんないことですが、>>876の&とるとってのは2つめの&です。

>>878
ありがとうございます。
ただ、インスタンス自体はバインドしたくないんです(squirrel側に触られたくない)
メンバ関数だけテーブルにバインドする方法はないですか?
880デフォルトの名無しさん:2011/01/31(月) 15:05:16
C++ の原理を知ってたら、メンバ関数だけを登録ってのは原理的に出来ないってのはわかりそうなもんだが……

目的とすることは、まあ、以下の手順でできると思われ。

1. とりあえずインスタンスとしてバインドしてそれをスタックにつむ
2. sq_pushstring(v, "メソッド名"); sq_get(v, -2); // 目的のメソッドを取得してスタックにのせる
3. 格納先のテーブルをスタックにつむ
4. sq_pushstring(v, "登録名"); // テーブルに格納する名前
5. sq_push(v, -4); // インスタンスを再度スタックにつむ
6. sq_bindnenv(v, -3); // メソッドにインスタンスをバインドしたものを積む
7. sq_createslot(v, -3, SQFalse): // バインドされたメソッドをテーブルに格納
8. sq_pop(v, 3); // テーブル., メソッド, インスタンスを解放

これで table["登録名"] = instance.メソッド名.bindenv(instance); と同じ意味になる
squirrel のメソッドは標準状態ではインスタンスへのバインドをもってないから、
テーブルとかにいれてコンテキストを維持したままとりまわしたい場合は bindenv 処理が必要なのに注意。

sqrat にあわせるなら、バインド済みメソッドを取得するよーな処理をインスタンスのメンバとして
書き足せばいいやろね。それは自分でなんとかがんばれ。
881876:2011/02/01(火) 00:57:43
>>880
ありがとうございます。
理解するのに時間かかりましたが、確かにそれならできそうですね。
けど、sqratに標準で用意されてないってことは普通はやらないってことなんでしょうか?
C++側に大量のグローバル関数用意したりするものなんですかね?
いまいち標準的な構成が分かりません。
882デフォルトの名無しさん:2011/02/01(火) 01:26:03
普通はクラス登録して、squirrel 側から生成して使うんじゃないかと……

正直、メソッドだけ渡す理由がよくわからんです
883デフォルトの名無しさん:2011/02/01(火) 01:38:22
普通は避けるね、設計が良くない。
やるならSingleton限定での実装だね。
どうしてもやるならラッパーだね。
884デフォルトの名無しさん:2011/02/01(火) 02:46:40
アプリケーションがクラスになってるってのなら、そのシングルトンを取得する口を一つグローバルにつくるだけだよね。
squirrel に見せるコンストラクタでは例外出すようにしておけば勝手に new して使われることもないし、
アクセスされると困るメソッドはクラス定義時に登録しなければいいだけの話だし。
885デフォルトの名無しさん:2011/02/02(水) 07:59:52
V8とかを組み込みスクリプトに使う話はここでOK?
886デフォルトの名無しさん:2011/02/02(水) 09:23:17
Squirrelでインスタンスの配列の作り方を教えてください。
887デフォルトの名無しさん:2011/02/02(水) 10:29:40
>>886
リストのインスタンスを作って入れたいクラスを初期化品がリストに入れていく。
これをクロージャ使って直交にしたら?
888デフォルトの名無しさん:2011/02/02(水) 10:30:43
>リストのインスタンスを作って入れたいクラスを初期化品がリストに入れていく。
リストのインスタンスを作って、
作成したいクラスを初期化しながらそのリストに入れていく
889デフォルトの名無しさん:2011/02/02(水) 10:43:55
>>886
数値配列の作り方と特に変わらないわけだが……・。もっと具体的になにが目的で何がわからないのか説明しないと回答は得られないと思われ
890デフォルトの名無しさん:2011/02/02(水) 14:58:40
使い終わったコルーチンって、自動的にガベージコレクションしてくれるの?
891デフォルトの名無しさん:2011/02/02(水) 16:57:07
はい
892デフォルトの名無しさん:2011/02/02(水) 22:14:56
>>885
Okだと思うよ。
ものすごく詳しいV8erがいるかは保障できないけど…
893876:2011/02/03(木) 07:25:24
>>882-884
書き込んでいただいた情報を参考にさらに調べてみたら某所でクラスをバインドする時にアロケータに
NoConstructorを指定できるとあったので、
C++側のシングルトンクラスをNoConstructorでバインドして、次にシングルトンインスタンスをSetInstanceでバインドする、
という方法でまだよく動作確認してませんが希望通りのことができそうです。
BindInstanceはコンパイルエラーになったのでSetInstanceにしましたが違いがよくわかりませんが……
ありがとうございました。
894876:2011/02/03(木) 07:36:04
Squirrel側で動作確認してみたら、新しくインスタンス作ろうとしてもエラーにはならず、
既存のバインド済みのインスタンスを返すっぽい動作してるような気がします。
NoConstructorにしろこの動作にしろドキュメントじゃなくてソース読まないと載ってない機能が結構ある物なんですね。
895886:2011/02/03(木) 09:15:24
>>887-888
すみません、よく意味が分かりません。

>>889
local myinstancearray = array(3);
foreach (i, v in myinstancearray) {myinstancearray[i]=myclass();}
これをもっと綺麗にやりたいです。
896デフォルトの名無しさん:2011/02/03(木) 11:43:03
>>895
それで基本的に合ってるしそれ以外ってのは特にないような……。俺ならただの for にするけど。

そういう記述が沢山書くのがいやなら、クラスとサイズを引数で渡してそれをする関数つくってたばねるくらいじゃね?
該当処理を C++ で書くも良し。
897デフォルトの名無しさん:2011/02/03(木) 11:54:24
それこそ、こんなのでいいんじゃね?
function gen_instances(n, gen) {
local arr = array(n);
foreach (i, v in arr) {arr[i]=gen();}
return arr;
}

arr_inst = gen_instances(3, myclass);
でもいいし、
arr_inst = gen_instances(3, function () {return myclass(123)});
でもいいだろう。(こっちはカリー化)
898デフォルトの名無しさん:2011/02/03(木) 12:03:17
>>894

sqrat はあれは、各自が自分のアロケータを作るという設計。標準ではいってるのは参考用。
で、標準に入ってる NoConstructor ってアロケータは、中身みると「何もしてない」ものなので、新しいインスタンス自体は
作れてしまって、でも何もバインドされずに動作するような形になってる。基本おかしい。スタティックメソッドなら動くかな?

コンストラクタを適切に封印するなら、

template <class C>
class NOConstructor : public DefaultConstructor<C> {
public:
static SQRESULT New(HSQUIRRELVM v) {
return sq_throwerror(v, "can't create instance");
}
};
899デフォルトの名無しさん:2011/02/03(木) 12:08:36
すまん、途中でかきこんでもーた。

こんなかんじに、デフォルトの代わりに New だけ封じたアロケータを作ってそれを指定してクラスを作るようにする。
DefaultConstructor → sqrat::DefaultAllocator とよみかえてね。うちは普通のコンストラクタもいじってるからそれの名前になってた……




900デフォルトの名無しさん:2011/02/03(木) 12:39:08
あー、ごめんなさい、DefaultAllocator 継承すると、C++で参照を push したときにコピーされる。
Sqrat::NoConstructor を継承してください。

ポインタを渡してる場合は、アロケータの処理は使わずに sq_setinstanceup() してるだけなので、
シングルトンをC++側からポインタで設定する分には NoConstructor で問題ありませんでした。
ただ New 防止は一切機能してないのでそれだけ足す形で使うのが妥当です

なお、BindInstance() はオブジェクトの protected 関数なので内部からよぶためのものです。外部から直接読んだらそりゃコンパイルエラーです。
SetInstance() はテーブル用の public 関数で、中身はBindInstance を非static指定で呼び出してるだけです。

テンプレートは基本、全部ソースを読んでからつかうものですよ。
sqrat は、そのままだと C++ 側からポインタ渡す場合のテンプレートに解放処理が一切入ってないので、
シングルトンならいいんですが、それ以外だとあっさりメモリリークします。
あと、インスタンスの型処理が全く行われてないとかいろいろ実装がおかしい部分があるので、
そのあたり全部直してからでないと使うの危険なのでご注意を。
901894:2011/02/03(木) 12:59:05
>>898
なるほど、すごくためになります。
インスタンスのユニークを保ちたいならCopyも消すべきってことでいいんでしょうか?
902894:2011/02/03(木) 13:08:39
>>900
失礼、>>900読んでませんでした。
おっしゃるとおりNoConstructorから継承することにします。
というかもう本体いじることにします。
BindInstance、確かにprotectedでした。よく見るべきでした。
ソースしっかり読むことにします。
(それにしても、Squirrelはバインダがどれも微妙な感じがして、入門には結構厳しい感じです)
とてもためになりました。ありがとうございました。
903デフォルトの名無しさん:2011/02/03(木) 13:23:43
とりあえず sqrat は

ttp://ruriko.denpa.org/201011a.html#0401

でいじられてる程度の対応はしてから使った方がよいです。
特に型処理を全くしてないのはわりと致命的なので……

オブジェクトを引数にとってる場合、sqrat そのままだと、引数に別の型のオブジェクトを渡すと一発で死亡です。
適切に squirrel の APIを使って処理するようにすれば、NULL が来るのでオブジェクト違いの検知ができるようになります。
(そのままつかってるとぬるぽなことに代わりはないですが)

sqplus はごちゃごちゃすぎてさすがに触る気にならないですな
904デフォルトの名無しさん:2011/02/04(金) 16:16:30
すみません、Luaでlua_closeを呼び出す際、全てのスレッドが終了している必要があるでしょうか?
とりあえずハング等起きなさそうであることは確認したのですが。
905デフォルトの名無しさん:2011/02/04(金) 21:38:54
>>904
必要ない
906デフォルトの名無しさん:2011/02/06(日) 10:18:29
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ

907デフォルトの名無しさん:2011/02/06(日) 22:23:23
AngelScriptのコルーチンのアドオンって、1回のExecuteScriptsの呼び出しで
スレッドにつき、1個のコンテキストしか実行してないみたいだけど
コルーチンって、スレッドみたいに複数同時に処理を行わせられる機能じゃないの?

1フレームに1回だけExecuteScriptsを呼び出せば、全部実行されると思ってた・・・orz
908886:2011/02/06(日) 22:27:49
>>896-897
そうしてみます。
ありがとうございました。
909デフォルトの名無しさん:2011/02/06(日) 22:58:31
>>907
スレッド

コルーチン=マイクロスレッド=ファイバ=協調型スレッド=擬似スレッド
は別物です
910デフォルトの名無しさん:2011/02/07(月) 00:10:02
>>907
コルーチンは「任意のタイミングで任意の処理を途中まで実行させる事が出来る仕組み」だから、
呼び出しは自分でやらないとダメだよ。

Coroutine c;
c.SetFunction(〜);

c.Execute();//コルーチンを呼び出す

みたいな感じで、どっかで呼び出し処理をする必要がある。
ただ、そのおかげで複数の処理の同期が取りやすいって利点もあるよ。
911904:2011/02/07(月) 14:55:56
>>905
遅くなってスミマセン。回答ありがとうございました。
912デフォルトの名無しさん:2011/02/07(月) 15:12:44
今月のInterfaceは、.NET Micro Frameworkの特集だな
実際、このスレ的にはどうなの?
913デフォルトの名無しさん:2011/02/07(月) 15:57:41
へえ、 apache license になってたんだ > .NET Micro
しらなんだ
914デフォルトの名無しさん:2011/02/07(月) 16:48:04
すげーなMSと契約せずに組み込めるのか
Javaなんかより遥かに使いやすいじゃん
915デフォルトの名無しさん:2011/02/09(水) 02:46:45
mono組み込んでエンジン作ってた人涙目じゃねーかよ
Microなのが気になるが実際使えるの?どうなん?
916デフォルトの名無しさん:2011/02/09(水) 10:30:40
microでなくていい環境ならCLRやSilverlightをホストすればいいだろ
組み込みといってもハードへの組み込み用
917デフォルトの名無しさん:2011/02/09(水) 14:08:49
こりゃmicroつかわなあかんで!
918デフォルトの名無しさん:2011/02/09(水) 15:34:33
■最小セットの場合、64KバイトRAM、256KバイトFlash ROM、MMUなしで動作可能
■ARMやX86、SHなど、さまざまなCPUアーキテクチャで動作
■リアルタイムOSやOSなしのファームウェア上にポーティング可能
■UIやネットワーク、ファイルシステム、ローレベルのハードウェアインターフェイスにアクセスするライブラリを提供
http://monoist.atmarkit.co.jp/fembedded/articles/netmicro/netmicro_01a.html

日曜プログラマの入門用には良いな
919デフォルトの名無しさん:2011/02/09(水) 15:55:09
最近は日曜プログラマがiPhone/Andoroid以外の
組み込み機器でプログラミングするのか?
920デフォルトの名無しさん:2011/02/10(木) 02:32:05
ハードじゃなくてアプリに組み込んでる例とかどっかに無いかな
921デフォルトの名無しさん:2011/02/10(木) 02:35:04
>>920
それって、そのまんま流用出来ると思うけど・・・w
922デフォルトの名無しさん:2011/02/10(木) 02:40:21
いや、これ、組み込み部はかかんとだめじゃん?
具体的にくみ入れてるサンプルあるのかなとおもって記事みると、エミュレータそのものコードもあるのか。
じゃあそれベースにしたらアプリへのくみ入れもわりとさっくりできたりするかな
923デフォルトの名無しさん:2011/02/10(木) 14:51:52
エミュレータはC++/CLIで書かれてるみたいなので使えない(意味がない)
Porting Kit入れて触ってみてるけどなかなかビルドが通らない…
924デフォルトの名無しさん:2011/02/10(木) 15:28:49
がんばれ。Win32ベースでなんかシンプルにまとまったのを一つ組んで公開すればたぶんヒーローだ(一部で)
925デフォルトの名無しさん:2011/02/10(木) 21:23:21
>>919
iPhoneはともかく、DIYで日曜プログラミングの組み込み開発はAndroidに持ってかれちゃったな
2年前くらいはいろいろあったのに
926デフォルトの名無しさん:2011/02/11(金) 14:12:50
>>925
色々って何があったけ?
927デフォルトの名無しさん:2011/02/12(土) 06:25:34
■LuaJIT 2.0.0-beta6 リリース 2/11
PPC/e500 に移植した (ただし、FPUが特殊なので他のPPCでは動かない)
LuaJIT FFI ライブラリ(初版)の追加した

■LuaJIT ロードマップ 2011
しばらくは、Lua 5.2完全対応せず、Lua5.1ベースのまま
64bitFPと32bit整数 の両対応 VM (ARM向けの変更)
ソフトFP対応してARM移植
LuaJIT 2.1では、メモリーアロケータとGCを統合する

■スケジュール
  Q1 2011 - 2.0.0-beta7 (b6の安定化)
Q1-2 2011 - ARM移植
Q1-3 2011 - ベータもう少し
  Q3 2011 - リリース候補
Q3-4 2011 - リリース
Q4 2011 - 2.1 作業開始


928デフォルトの名無しさん:2011/02/12(土) 13:28:36
AngelScriptJITはまだか。
フォーラムではもう実験してたみたいだが…
929デフォルトの名無しさん:2011/02/12(土) 19:01:55
luaに比べてインタプリタでもluajitも、1〜4倍の処理速度らしい。
930デフォルトの名無しさん:2011/02/12(土) 19:04:36
>>929
その文章では、何と何を比較しての何倍なのかが分からん。
日本語でおk
931デフォルトの名無しさん:2011/02/12(土) 21:36:42
>>930
LuaJITによる高速化は、単純にLuaのVMを(JIT関係なく)最適化した点と、
JITによる高速化とに分けられる。
たぶん >>929 は前者のことを言いたいんじゃないかと。
932デフォルトの名無しさん:2011/02/14(月) 03:47:25
JITだけじゃなくて、VM自体が違うのか。
933デフォルトの名無しさん:2011/02/14(月) 03:54:54
>>931,932
なるほど。
オレも動的言語のVMのJIT化を実装したことあるから
そこのところよくわかる。
JIT化って基本的には既存のVMの内部APIを直接並べるようなコードを
生成するから、最終的には内部API自体の速度が問われるんだよね。

動的言語は変数同士の型の組み合わせが演算でマッチングさせるまで
分からないから、毎回動的分岐するこの部分邪魔だわー、とか思ったり。
934デフォルトの名無しさん:2011/02/16(水) 22:11:48
LuaはPythonより速い?
935デフォルトの名無しさん:2011/02/16(水) 22:33:43
>>934
だいぶ速いんじゃね?
936デフォルトの名無しさん:2011/02/16(水) 22:39:49
>>933
演算を多重定義しないなら、動的型の分岐は一回で終わるし
分岐は仮想関数より速いんじゃないか
937デフォルトの名無しさん:2011/02/16(水) 23:06:36
わかったじゃあるあやる
938デフォルトの名無しさん:2011/02/17(木) 03:07:17
http://www.lua.inf.puc-rio.br/~francisco/rsp/
luaにもとうとうわけ分からん級のwebサーバーとフレームワークまで登場したか。
939デフォルトの名無しさん:2011/02/19(土) 00:09:21
AngelScript更新。主にバグフィックスだそうな
940デフォルトの名無しさん:2011/02/19(土) 11:17:12
        (´\r-、     ┼         +     /`/`)    +
     ┼   (\. \!              *     // ,/)  *
  +     * (ヽ、   \ +  *          /   /)   +
      ⊂ニ      )        *   +  (     ニ⊃
  *  +  ⊂、     (   ∩___∩   ノ     ⊃   +  *
         (/(/   ヽ  | ノ     ヽ /    、)ヽ)  ┼
    +        (/     ∨  ●   ●レ /⌒) 、)ヽ)
     *       (/'   |   ( _●_) ミ'  /、)、)´       +
         +    (/'ヽ 彡、   |∪| ノ /     AngelScript!!
     +            / __ヽノ  /  *      +
       ┼        (___) /      +
941デフォルトの名無しさん:2011/02/19(土) 11:17:41
微修正
        (´\r-、     ┼         +     /`/`)    +
     ┼   (\. \!              *     // ,/)  *
  +     * (ヽ、   \ +  *          /   /)   +
      ⊂ニ      )        *   +  (     ニ⊃
  *  +  ⊂、     (   ∩___∩   ノ     ⊃   +  *
         (/(/   ヽ  | ノ     ヽ /    、)ヽ)  ┼
    +        (/     ∨  ●   ●レ /⌒) 、)ヽ)
     *       (/'   |   ( _●_) ミ'  /、)、)´       +
         +    (/'ヽ 彡、   |∪| ノ /     AngelScript!!
     +            / __ヽノ  /  *      +
       ┼        (___) /      +
942デフォルトの名無しさん:2011/02/22(火) 12:58:51.32
見比べてるがどこが微調整されたのかまったくわからない
943デフォルトの名無しさん:2011/02/22(火) 13:19:43.40
右肘がずれてるのが直ってる? のかな。
944デフォルトの名無しさん:2011/02/22(火) 23:26:09.46
>>943
ホントだ
945デフォルトの名無しさん:2011/02/23(水) 00:57:43.35
Luaすげー
946デフォルトの名無しさん:2011/03/05(土) 00:31:39.91
NGP

●LUAによるスクリプティングをサポート
 AIの制御などにも使われる。

http://www.4gamer.net/games/032/G003263/20110304075/
947デフォルトの名無しさん:2011/03/07(月) 11:30:28.77
前スレかこのスレか忘れましたがLuaを引退した初心者です
Luaはスクリプト言語で一番早いと聞きました
これは真実ですか?
このメリットのためにまた勉強したいのですが真実ですか?
948デフォルトの名無しさん:2011/03/07(月) 12:18:38.39
>>947
引退したなら関係ないんじゃね?
949デフォルトの名無しさん:2011/03/07(月) 13:43:21.13
日本語読めないなら黙っていた方がいい
950デフォルトの名無しさん:2011/03/07(月) 13:55:18.87
日本語読めないなら黙っていた方がいい(キリッ
951デフォルトの名無しさん:2011/03/07(月) 14:03:50.94
>>947
このスレで引退宣言でもしたの?
952デフォルトの名無しさん:2011/03/07(月) 14:25:06.04
>>947
Lua JITならダントツで速いみたい
ttp://anlyznews.blogspot.com/2011/02/objective-c.html
953デフォルトの名無しさん:2011/03/07(月) 16:02:18.77
Luaを勉強してたらいつの間にか同名ファイルに拡張子outのファイルが存在してました
この拡張子outのファイルは何なんでしょうか?
954デフォルトの名無しさん:2011/03/07(月) 17:29:35.23
>>953
lua 同名ファイル.out
を実行し
lua 同名ファイル.lua
と同様に動くなら
コンパイル済みのバイトコード

ホスト側の仕様やIDEやエディタの設定がそうなってるんじゃないかな
955デフォルトの名無しさん:2011/03/08(火) 00:08:30.83
わかりました
また復帰したいと思います
お世話になります
956デフォルトの名無しさん:2011/03/09(水) 07:17:25.80
PC用ならもうAngelScriptでいいや
ちょこちょこバグがあるけど開発活発だ…し
957デフォルトの名無しさん:2011/03/17(木) 09:37:39.53
squirrel 3.0 リリースされてました。
エロイ人pdfでもいいので入門書お願いします。
958デフォルトの名無しさん:2011/03/17(木) 12:18:04.47
入門書を電子書籍で書いて売ってくれたら買うよ。
959デフォルトの名無しさん:2011/03/22(火) 23:55:19.49
psp上で動作する物をLuaで開発したいんだが、参考になるサイトあったら教えて。
Wikiとか一通り見たけど資料が少ないので力貸してください
960デフォルトの名無しさん:2011/03/23(水) 00:13:09.74
お前には無理
961デフォルトの名無しさん:2011/03/23(水) 00:20:03.17
知らんなら知らんて言うてや
962デフォルトの名無しさん:2011/03/23(水) 00:22:52.64
そりゃ「自分で調べたり考えたりする気は一切ありません。全部教えてください」なんて言われりゃ
誰だって知らないって言うわ
963デフォルトの名無しさん:2011/03/23(水) 00:31:58.00
Lua勉強した時その通りに組んでもpsp上ぢゃ動作しないねん…
そんで何で動かんか調べたんやけど全く分からんかった

せやから聞いたのに駄目なのか?
964デフォルトの名無しさん:2011/03/23(水) 00:33:45.42
駄目やでんがなまんがな
965デフォルトの名無しさん:2011/03/23(水) 00:39:25.14
すまん、ならもっかいググってくる
966デフォルトの名無しさん:2011/03/24(木) 11:42:33.87
普通、付属リファレンス読んで作業するだけでたいていの環境で動くものなので、
どうやったら動かなかったのか書かないとたぶん誰にもわからない。低レベルすぎて。
967デフォルトの名無しさん:2011/03/25(金) 18:07:23.47
>>958
3.0系列には対応してないが、pdfで読めるSquirrelの言語入門書
みたいなのはあるよ

あと普通の本(紙で出来た本)も出るっぽいね
968デフォルトの名無しさん:2011/03/27(日) 02:01:24.56
>>967
これかニッチすぎてすごいなw
はじめる! Squirrel - 達人出版会
http://tatsu-zine.com/books/squirrel
969デフォルトの名無しさん:2011/03/27(日) 09:41:33.03
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ

970デフォルトの名無しさん:2011/03/27(日) 11:39:48.05
ちょっと前にLuaの勉強を再復帰した初心者です
何かLuaで何が出来るのか見えないため引退します
971デフォルトの名無しさん:2011/03/27(日) 13:25:30.95
スクリプト言語は、TCP/IPがわかると俄然面白くなる
オブジェクト指向やマルチスレッドに煩わされなくなるから
972デフォルトの名無しさん:2011/03/27(日) 13:45:04.72
(;´Д`)?
973デフォルトの名無しさん:2011/03/27(日) 20:09:06.44
[;´Д`]
974デフォルトの名無しさん:2011/03/27(日) 20:53:52.82
一文一文もわからんし前後の繋がりもまったくわからん……
975デフォルトの名無しさん:2011/03/27(日) 22:05:19.69
オブジェクトの通信や、スレッド間の通信が煩わしい。
わかると面白いと言ってるんだから、わからないなら仕方ないだろ。
976デフォルトの名無しさん:2011/03/27(日) 22:06:41.86
日本語でたのむ
977デフォルトの名無しさん:2011/03/27(日) 22:14:25.81
(;´Д`)?
978デフォルトの名無しさん:2011/03/27(日) 22:15:45.40
顔文字は日本語に入りますか?
979デフォルトの名無しさん:2011/03/27(日) 22:21:08.13
ぅあ?
980デフォルトの名無しさん:2011/03/27(日) 23:27:13.60
理由も何もなくて直感だけで「これは日本語じゃない」って確信する感覚って
理解できないんだが
どういう感覚なんだ?
981デフォルトの名無しさん:2011/03/27(日) 23:33:37.51
この流れで「理由も何もなくて直感だけだ」って確信する感覚って
理解できないんだが
どういう感覚なんだ?
982デフォルトの名無しさん:2011/03/28(月) 01:46:28.00
>>981
直感だからといって批判するつもりはない。
むしろ批判するべきではない。
直感をうまく説明できなくても、日本語として問題があるとは思わない。
983デフォルトの名無しさん:2011/03/28(月) 03:07:12.62
[;´Д`]
984デフォルトの名無しさん:2011/03/28(月) 07:31:31.26
英訳すれば謎が解けるよ
985デフォルトの名無しさん:2011/03/28(月) 11:18:23.44
uwscみたいにマウスカーソルを指定した座標に移動するっていうのはLuaは簡単にできるのでしょうか?
986デフォルトの名無しさん:2011/03/28(月) 11:27:30.79
ホストプログラム次第じゃね
987デフォルトの名無しさん:2011/03/28(月) 13:51:15.75
Squirrel 2.x と 3 の差異ってどういう感じでしょうか。

あまりないのなら >>968 で照会されているの買ってみようかな。
988デフォルトの名無しさん:2011/03/28(月) 14:07:03.13
>>987==>968
989デフォルトの名無しさん:2011/03/28(月) 15:32:50.64
990987:2011/03/28(月) 17:21:23.50
>>988
>>989
ちょっと初心者が手をだすには差が大きいような気がしました。
急ぎではないので Squirrel 3 の入門書を待ってみたいと思います。

ありがとうございました。
991デフォルトの名無しさん:2011/03/28(月) 21:02:50.33
>>990
>>968 の著者のサイトに、2.xから3.0 RCまでの違いを
主に文法とか言語の機能についてまとめたっぽいページがあるよ、参考までに
992デフォルトの名無しさん:2011/03/28(月) 23:10:27.36
だれか 次スレ たのむ
993天ぷらのみ:2011/03/29(火) 13:44:24.50
【Lua】組み込み系言語総合 その4【Squirrel】

LuaやSquirrelやAngelScriptなどアプリケーションへの組み込み用途で
使われるプログラミング言語についてのスレッドです
まとめwiki(なにか質問する前に必ずみること!)
http://wikiwiki.jp/lua/

その他の参考URLは>2から

■前スレ
【Lua】組み込み系言語総合 その3【Squirrel】
http://hibari.2ch.net/test/read.cgi/tech/1272643397/

■過去スレ
その2 http://pc12.2ch.net/test/read.cgi/tech/1243210301/
その1 http://pc12.2ch.net/test/read.cgi/tech/1205208141/

プログラミング言語 Lua
その3 http://pc11.2ch.net/test/read.cgi/tech/1160799232/
その2 http://pc8.2ch.net/test/read.cgi/tech/1063711237/
その1 http://pc5.2ch.net/tech/kako/1034/10341/1034182349.html
994天ぷらのみ:2011/03/29(火) 13:47:21.12
■関連してるかもしれないスレ
Io Language
http://pc11.2ch.net/test/read.cgi/tech/1201100624/
2 part forth
http://pc11.2ch.net/test/read.cgi/tech/1073673931/
●●●●TCL/TKなら俺に聞け 2●●●●
http://pc11.2ch.net/test/read.cgi/tech/1177998764/
ECMAScript デス 3
http://pc11.2ch.net/test/read.cgi/tech/1190160481/
各種ライブラリ紹介スレ2(ゲ制作)
http://pc11.2ch.net/test/read.cgi/gamedev/1177886529/
Eclipse統合M31【Java/C++/Ruby/Python/Perl】
http://hibari.2ch.net/test/read.cgi/tech/1295886572/
「コンパイラ・スクリプトエンジン」相談室15
http://hibari.2ch.net/test/read.cgi/tech/1296214398/
Garbage Collection (GC)について語るスレ
http://pc11.2ch.net/test/read.cgi/tech/1141646850/

※リンク先確認済み
995天ぷらのみ:2011/03/29(火) 13:49:37.65
■参考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/

□Lua as an Effect File Format for OpenGL
ttp://prideout.net/blog/?p=1

□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マニュアル和訳)

□AngelScript
ttp://www.angelcode.com/angelscript/

□Xtal(ゲーム向け。スタックを意識しなくていい?)
ttp://d.hatena.ne.jp/xtalco/
ttp://code.google.com/p/xtal-language/
ttp://blog.livedoor.jp/dankogai/archives/50836939.html

□elastiC
ttp://www.elasticworld.org/
996天ぷらのみ:2011/03/29(火) 13:51:39.67
俺も無理だった。よかったら使ってくれ。(落ちた場合は専ブラの人よろしコ)
997デフォルトの名無しさん:2011/03/30(水) 01:03:18.33
次スレ立てました
天ぷら屋はGJ

【Lua】組み込み系言語総合 その4【Squirrel】
http://hibari.2ch.net/test/read.cgi/tech/1301414458/
998デフォルトの名無しさん:2011/03/30(水) 02:22:23.57
天ぷらの人も立てた人もgj
999天ぷらのみ:2011/03/30(水) 05:43:21.48
立てた人乙。埋めます。

次スレ
【Lua】組み込み系言語総合 その4【Squirrel】
http://hibari.2ch.net/test/read.cgi/tech/1301414458/
1000デフォルトの名無しさん:2011/03/30(水) 05:45:23.27
次スレ
【Lua】組み込み系言語総合 その4【Squirrel】
http://hibari.2ch.net/test/read.cgi/tech/1301414458/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。