【Lua】組み込み系言語総合 その3【Squirrel】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/05/01(土) 01:03:17使われるプログラミング言語についてのスレッドです
まとめ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
0002デフォルトの名無しさん
2010/05/01(土) 01:04:34Io 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/
0003デフォルトの名無しさん
2010/05/01(土) 01:05:17□Lua
ttp://www.lua.org/ (本家)
ttp://lua-users.org/ (lua-users)
ttp://luaforge.net/ (LuaForge)
ttp://sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html(5.1マニュアル和訳)
Lua言語の紹介
ttp://staff.aist.go.jp/yutaka.ueno/lua/docsjp.html
入門Luaプログラミング
ttp://www.amazon.co.jp/dp/4797342722/
□Squirrel
ttp://www.squirrel-lang.org/ (本家)
ttp://sourceforge.net/projects/squirrel/
ttp://sourceforge.net/projects/sqplus/ (SqPlus)
ttp://sourceforge.net/projects/squirrelsh/ (Squirrel Shell)
ttp://wikiwiki.jp/lua/?Squirrel_Lang%2Ftoc(wiki内2.1マニュアル和訳)
□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
0004デフォルトの名無しさん
2010/05/01(土) 01:05:2910 名前:デフォルトの名無しさん[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/
※テンプレ以上※
0005デフォルトの名無しさん
2010/05/01(土) 01:08:48ttp://www.elasticworld.org/
□Lua as an Effect File Format for OpenGL
ttp://prideout.net/blog/?p=1
0006デフォルトの名無しさん
2010/05/01(土) 10:30:46乙
0007デフォルトの名無しさん
2010/05/04(火) 16:12:060008デフォルトの名無しさん
2010/05/04(火) 16:13:340009デフォルトの名無しさん
2010/05/04(火) 23:28:44asIScriptContextには変数を取得するためのメソッドはあるようだけどデバッグ用みたいだ。
せめてクラスのプロパティでも保存出来れば
0010デフォルトの名無しさん
2010/05/04(火) 23:36:31スクリプトのバイトコードを参照するのが配列の生ポインタなんで、ちょっと厳しいかも。
ライセンスzlibだし自分でいじってもいいんだろうけど、新しいバージョン出るたびにいじるのは泣けてくる。
00119
2010/05/05(水) 00:04:12ソース読むのもつらそうだし、要望するとか、毎回変更点をマージするのもなぁ・・
仕方ないから、状態を保存したい全クラスにプロパティの保存/読み込み用のメソッド用意させよう
0012デフォルトの名無しさん
2010/05/06(木) 10:52:45・tuning for x64
・a new optimization: array bounds check elimination
LuaJIT、ループや算術演算のパフォーマンスがずいぶん上がってるなー
Googleがスポンサーになったりで、LuaJITはLAMPツールの埋め込みが増えてんのかな。
ttp://luajit.org/performance.html
0013デフォルトの名無しさん
2010/05/06(木) 18:50:230014デフォルトの名無しさん
2010/05/06(木) 19:08:260015デフォルトの名無しさん
2010/05/08(土) 22:52:140016デフォルトの名無しさん
2010/05/08(土) 23:18:02そういう実装だから。
バイトコードのニーモニックのサイズは通常あまり重視されないので、
この程度なら許容範囲だろう。
これが例えばモバイル用途も考慮されてるJavaなどのバイトコードはかなりコンパクトになってるな。
0017デフォルトの名無しさん
2010/05/09(日) 00:11:58こんなもんなんですね
ありがとうございます
0018デフォルトの名無しさん
2010/05/09(日) 11:37:13mnemonic の事と思うけど、その使い方非常に違和感ある。
0019デフォルトの名無しさん
2010/05/09(日) 13:34:22そうか……。ニーモニックというのは機械語コードのテキスト表現(≒アセンブラコード)なんだね。
この場合、単に「バイトコードのサイズ」というべきだったか。
どうもありがとう。
0020デフォルトの名無しさん
2010/05/10(月) 01:16:39AngelScript公式サイトのWorkInProgressのページに「Persistent script states」ってのがあるんだけど、
そこを見ると「難しいけど、スクリプトの状態をセーブ/ロードできるようにしたい」みたいな事が書かれてるんで、
将来そういう機能が追加されるかもしれないよ。
0021デフォルトの名無しさん
2010/05/15(土) 09:49:32http://www.lua.org/ftp/patch-lua-5.1.4-1
http://comments.gmane.org/gmane.comp.lang.lua.general/65600
0022デフォルトの名無しさん
2010/05/15(土) 12:17:32( ・∀・) < Lua!!
⊂/ 9) \____
q( /
> >
0023デフォルトの名無しさん
2010/05/15(土) 16:01:56ttp://www.lua.org/bugs.html#5.1.4
0024デフォルトの名無しさん
2010/05/16(日) 23:05:03Luaに登録する関数は例外安全にしてエラーコードを返すようにラップしたほうがいいですかね?
0025デフォルトの名無しさん
2010/05/17(月) 21:29:08どうにも色々調べて試してるのだけども、うまく行ってくれない……
(Lua本体はビルドすることに成功)
0026デフォルトの名無しさん
2010/05/17(月) 23:58:50C++でコンパイルかければ例外も問題ないはず。
そのモードならlua_errorあたりはthrowで、
lua_pcallはtry~catchにて実装される。
0027デフォルトの名無しさん
2010/05/18(火) 10:12:20ttp://www.lua.org/manual/5.1/manual.html#3.6
Lua はデフォルトでは longjmp でエラーハンドリングするけど、
設定すれば例外を使うようにもできるみたい。
002824
2010/05/18(火) 16:16:29thxです
なるほどC++でコンパイルすると勝手に例外になるんですね
pcallで例外を捉えてきちんとオブジェクトを掃除してくれるなら今書いてるコードもいくらかすっきりしそうです
0029デフォルトの名無しさん
2010/05/19(水) 06:14:57ttp://www.lua.org/work/
0030デフォルトの名無しさん
2010/05/19(水) 19:38:310031デフォルトの名無しさん
2010/05/19(水) 19:53:33具体例を挙げてくれ
0032デフォルトの名無しさん
2010/05/19(水) 22:15:200033デフォルトの名無しさん
2010/05/19(水) 22:39:59∧__∧
(´・ω・) いやどす
ハ∨/^ヽ
ノ::[三ノ :.、
i)、_;|*く; ノ
|!: ::.".T~
ハ、___|
"""~""""""~"""~"""~"
0034デフォルトの名無しさん
2010/05/19(水) 23:55:23GameMonkey|Д`)<おうよ!
CRIScript|
AngelScript|Д`)<あれ?
GameMonkey|Д`)<あれ?
CRIScript|
0035デフォルトの名無しさん
2010/05/19(水) 23:58:55おもしろいなー
はらがいたい
0036デフォルトの名無しさん
2010/05/22(土) 02:35:540037デフォルトの名無しさん
2010/05/22(土) 02:42:210038デフォルトの名無しさん
2010/05/22(土) 03:22:300039デフォルトの名無しさん
2010/05/22(土) 07:47:33それじゃあこのスレ全否定じゃねーか
0040デフォルトの名無しさん
2010/05/22(土) 08:30:16/ / パカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ AngelScript!!
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄
0041デフォルトの名無しさん
2010/05/23(日) 19:17:24〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ Lua!!
彡、 |∪| /
/ __ ヽノ /
(___)
0042デフォルトの名無しさん
2010/05/26(水) 00:26:22アドオンを追加してごにょごにょすれば日本語もコルーチンも使えるし
0043デフォルトの名無しさん
2010/05/26(水) 00:53:51しかも文法がほぼC++なんで、Cのプリプロセッサとかも使えるし。
まあスクリプトの意味があんまり無くなるんでアレだが。
0044デフォルトの名無しさん
2010/05/28(金) 23:07:060045デフォルトの名無しさん
2010/05/29(土) 09:00:40( ・∀・) < Lua!!
⊂/ 9) \____
q( /
> >
0046デフォルトの名無しさん
2010/05/29(土) 13:53:07既に国内でもLuaやSquirrelを採用した商用ゲーがいくつも出ているけど、
分からないことが特になくなれば質問しなくなるだろう。
中にはオープンソースになってるものもあるので、入手して眺めると勉強になるかも。
0047デフォルトの名無しさん
2010/05/29(土) 16:17:100048デフォルトの名無しさん
2010/05/30(日) 05:19:180049デフォルトの名無しさん
2010/05/30(日) 07:50:46\ ヽ ) ) \\ \\
( \ \∩___∩ \\
\ \ ⌒⌒| ノ ヽ \\
\ \ / ● ● ト、\ \\\
\ Y | ( _●_) ミ\ \\\
\ / 彡、_ |∪| ノ \ \\\
(____)―ヽノ' ヽ  ̄ ̄ ヽ\\
\, j l l .l }
Lua! l (_ノノノノ
0050デフォルトの名無しさん
2010/05/30(日) 17:07:26\ ヽ ) ) \\ \\
( \ \ ∩_∩ \\
\ \ ⌒⌒| ヽ \\
\ \ / ● ● ト、\ \\\
\ Y | ( _●_) ミ \\\
\ / 彡、.. |∪|ノ \ \\\
(____)―ヽノ' ヽ  ̄ ̄ ヽ\\
\, j l l .l }
Angel Script! l (ノノノノ
0051デフォルトの名無しさん
2010/05/31(月) 22:49:420052デフォルトの名無しさん
2010/05/31(月) 23:26:090053デフォルトの名無しさん
2010/06/01(火) 00:24:12V8というものについて詳しいサイト教えてくれないか。
0054デフォルトの名無しさん
2010/06/01(火) 01:22:38http://code.google.com/p/v8/
0055デフォルトの名無しさん
2010/06/01(火) 23:13:31高根社長の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
高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉
0056デフォルトの名無しさん
2010/06/01(火) 23:14:20高根は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
首吊り首絞めプレイ大好き高根英哉
0057デフォルトの名無しさん
2010/06/01(火) 23:15:05>>18
高根英哉blogでレイプ仲間募集中
私とともにマスクの女どもを弄ぶ仲間を募集する
急に思いついたら連絡をして、集まれるような仲間だ
だから、複数名募集するし、いついつという日時があるわけでもない
条件は以下のとおりだ
・SMを実践している、または興味がある
・マスクを用意できる
・都内でイベント参加できる
・イベント内容およびこの仲間を通じて知りえた情報を口外しない
・成人男子である
・携帯電話および携帯メールアドレスを私に公開できる
・酒が好きである
希望者は私宛にメールを送ってほしい
全員が参加できるわけでもないので、こちらの選択に任せてもらう
なるべく想いを書いてもらうほうがわかりやすいし
経験や顔写真も歓迎。
r[email protected]
[email protected]
[email protected]
0058デフォルトの名無しさん
2010/06/02(水) 00:14:11javascriptは楽でいいよね
前スレによると速度は LuaJIT >>> v8 >= Lua
らしいので、v8は結構速い。しかもv8は修正BSDだし。
0059デフォルトの名無しさん
2010/06/02(水) 01:23:35どっかに組み込み方の説明サイトとかないか?
0060デフォルトの名無しさん
2010/06/02(水) 01:32:03そもそも本来からして、JavaScriptはブラウザとHTML用の「組み込み」用なわけだが。
0061デフォルトの名無しさん
2010/06/02(水) 01:38:13Google製のjavascript処理系。Chromeに組み込まれてる奴。
これを見ればなんとかなる
ttp://sites.google.com/site/bibourokdesu/
解説したblogも何件かあった気がする
0062デフォルトの名無しさん
2010/06/02(水) 07:30:31そもそもオブジェクト内のメソッドをC++から実行出来るかも知らないし。
そこんところを日本語で解説してるサイトが余りにも少ない…
0063デフォルトの名無しさん
2010/06/02(水) 07:31:220064デフォルトの名無しさん
2010/06/02(水) 13:21:01いや、javascriptは組込み以外は使えない
何せファイル入出力はおろかprint関数も無い、当然ネットワーク機能なんぞ一切無い。
こういう機能をホスト側で用意してこその言語
0065デフォルトの名無しさん
2010/06/02(水) 16:16:19そういえばV8が発表された直後にあちこちのサイトで
ソースの解析がやたらと盛り上がってた覚えがあるけど
もうやってるところはないんだろうか
0066デフォルトの名無しさん
2010/06/02(水) 21:20:32最初はやり方わからなかったけど、わかればものすごく簡単に組み込めた。
AngelScript並みの簡単さ。
C++とのバインドも簡単。
ただ、謎のメモリリークが発生しているようだ…
0067デフォルトの名無しさん
2010/06/06(日) 17:33:50JITが走る処理系なんだからそりゃあメモリは増えるっしょ。
0068デフォルトの名無しさん
2010/06/09(水) 00:41:27となるとあまり気にしなくてもいいのかな。
VS2008で必要なライブラリをリンクするように設定して、
int main(int argc, char *argv[])
{
_CrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF | _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG));
v8::V8::Dispose();
return 0;
}
こんな感じのソースをビルド&実行すると、メモリリーク検出されちゃうんだ。
ちなみに、
v8::V8::Dispose();
をコメントアウトすると検出されない。
0069デフォルトの名無しさん
2010/06/09(水) 07:30:02そこらに転がってるサンプルコードにはそんなの書いてないから必要ないんじゃない?
0070デフォルトの名無しさん
2010/06/10(木) 02:05:27V8のサンプル、shell.ccのmain関数で呼び出されてる。
int main(int argc, char* argv[]) {
int result = RunMain(argc, argv);
v8::V8::Dispose();
return result;
}
こんな感じで。
なお、このソースにメモリリーク検出用のコードをつけて実行すると、やはり検出されてしまう模様。
あと、main関数をメモリリーク検出用のコード+return 0;だけにしてもなぜか検出されてる。
0071デフォルトの名無しさん
2010/06/10(木) 05:41:32V8 が使っている static な変数のコンストラクタの中でメモリを確保して、
デストラクタでちゃんと開放してないとかじゃないのかな?
じわじわとメモリ使用量が増える傾向があるとかじゃなければ、
気にしなくていい気もするけど。
0072デフォルトの名無しさん
2010/06/11(金) 00:15:42入れ捨てたりする実装とかザラにあるけどな。
(ああ! SqPlusとかな!)
V8がそうだとは言わないけど。
その辺興味があるなら原因を追っかけてみたら?
会社を背負って立ってるブラウザで使われてるJavascript処理系が
あまり甘い実装になってるとは思えないんだけど。
0073デフォルトの名無しさん
2010/06/11(金) 00:44:240074デフォルトの名無しさん
2010/06/11(金) 07:22:26/ / パカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ Lua!!
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
0075デフォルトの名無しさん
2010/06/11(金) 07:34:48/ / パカッ
//)∩_∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ AngelScript!!
/ | ヽ |∪| /_
// │ ヽノ \
" ̄ ̄ ̄ ̄ ̄ ̄ ̄
0076デフォルトの名無しさん
2010/06/11(金) 20:48:210077デフォルトの名無しさん
2010/06/11(金) 20:52:380078デフォルトの名無しさん
2010/06/12(土) 13:03:00Appleから事前承認を得れば、インタプリタが使えるようになったらしいね。
http://www.macnn.com/articles/10/06/11/developers.must.get.approval.in.writing/
0079デフォルトの名無しさん
2010/06/12(土) 14:21:14それともLuaとか他のスクリプト言語がいいかな?
0080デフォルトの名無しさん
2010/06/12(土) 16:21:45規模による。
スクリプト部分が200kbを超えててしかも一気に読み込まないといけないようなら
現状ではDLRのスクリプト言語はやめた方がいい。
.NET Frameworkは言語を色々選べてしかも組み合わせ自由であることが多いので考え方次第だな。
最近のお気に入りはBoo。
0081デフォルトの名無しさん
2010/06/12(土) 17:09:10Booはどんなとこが気に入った?
Pythonっぽい静的型付けのマイナーな言語ってことしか知らないわ。
0082デフォルトの名無しさん
2010/06/12(土) 17:58:28・静的型付け言語で事前にコンパイルする形式なので基本的にC#と同じ速度で動く。
・でもインタプリタも持ってる
・JSONが素で読める
・DLRじゃないので初期化が重くならない(これもC#と同程度)
・マクロで言語を拡張可能(コンパイラに機能が追加される)
この特徴を持ってDSL向きだと言っている人もいるね。
0083デフォルトの名無しさん
2010/06/12(土) 18:56:09おもしろそうだけど、Booって検索しづらい単語だよな
0084デフォルトの名無しさん
2010/06/12(土) 19:11:01C#とのバインドどんな感じ?
DLL読み込むだけでいい?
0085デフォルトの名無しさん
2010/06/12(土) 20:10:00VSやSharpDevelopで普通にプロジェクト作って
組んでいくのでその辺はC#と何ら変わらん。
片方が定義したクラスをもう片方で利用したりは自由にできる。
Booでアプリ本体を書くことすらできるが、とりあえずオレはBooでプラグインを書いて
C#のプログラムから動的に読み込んで使ってる。
この辺はリフレクションを使う。C#同士と全く同じ。
0086デフォルトの名無しさん
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
0087デフォルトの名無しさん
2010/06/13(日) 19:31:280088名無しさん@そうだ選挙に行こう
2010/07/11(日) 19:56:40グレイト
0089デフォルトの名無しさん
2010/07/23(金) 00:25:40マイナー言語ってこんなもんなのか。
0090デフォルトの名無しさん
2010/07/23(金) 00:41:190091デフォルトの名無しさん
2010/07/23(金) 00:44:190092デフォルトの名無しさん
2010/07/23(金) 00:47:140093デフォルトの名無しさん
2010/07/23(金) 01:04:51http://github.com/stevedekorte/io
luaの広がりはやっぱりすごいな。
0094デフォルトの名無しさん
2010/07/23(金) 01:17:42Xtalは1週間くらい前に開発版が久々に(3ヶ月半くらい)更新されたよ。
以前は一年くらい更新なかった時期もあったから、まだまだ活発な方だね。
0095デフォルトの名無しさん
2010/07/23(金) 06:20:380096デフォルトの名無しさん
2010/07/23(金) 07:04:38更新されてたの見落としてた。
ありがとう。
Blogの更新はされないんだろうか...
0097デフォルトの名無しさん
2010/07/23(金) 20:30:090098デフォルトの名無しさん
2010/07/23(金) 21:47:080099デフォルトの名無しさん
2010/07/23(金) 22:49:530100デフォルトの名無しさん
2010/07/23(金) 23:37:20/ / パカッ
//)∩_∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ AngelScript!!
/ | ヽ |∪| /_
// │ ヽノ \
" ̄ ̄ ̄ ̄ ̄ ̄ ̄
0101デフォルトの名無しさん
2010/07/24(土) 00:16:390102デフォルトの名無しさん
2010/07/24(土) 00:26:310103デフォルトの名無しさん
2010/07/25(日) 16:25:07作者が前に会社で採用されたって言ってたのはこれのことか。
ttp://cedec.cesa.or.jp/2010/program/PG/C10_P0320.html
0104デフォルトの名無しさん
2010/07/25(日) 16:33:030105デフォルトの名無しさん
2010/07/25(日) 16:34:560106デフォルトの名無しさん
2010/07/27(火) 00:11:11作者がバンナムのゲームのデベロッパということだったりするんかな
0107デフォルトの名無しさん
2010/07/27(火) 00:12:26> Xtal:パイレーツではGameMonkeyScriptのほかにXtalという組込スクリプト言語を利用しました。
> Xtalはオープンソースで開発されており、社内に開発者がおります。
> XtalはC++と親和性が高く、プログラマが用いるのに向いています。
> 採用・開発者との情報交換の背景や実際の活用例を紹介します。
ちょw
社内の人だったのかw
0108デフォルトの名無しさん
2010/07/27(火) 09:10:470109デフォルトの名無しさん
2010/07/27(火) 21:04:01ありがとー >ヽ(´Д|GameMonkey
CRIScript|
AngelScript|Д`)<何か寂しいなー
CRIScript|
0110デフォルトの名無しさん
2010/07/27(火) 21:23:49詳細キボン
0111デフォルトの名無しさん
2010/07/27(火) 22:12:08ちょっと上に出てる
> Xtal:パイレーツではGameMonkeyScriptのほかにXtalという組込スクリプト言語を利用しました。
の事ね。
AngelScriptは海外では使われてるみたいなんだけどなぁ…
0112デフォルトの名無しさん
2010/07/27(火) 22:25:19今後はJIT等の高速化対応と複数ネイティブスレッド対応、
それから協調的なマルチスレッドの自動生成(Erlangなど)などが
ポイントになってくるだろうな。
ブラウザ対応でチューンされまくりなECMAScriptの処理系なんかも旬かもしれない。
0113デフォルトの名無しさん
2010/07/28(水) 00:18:40と揃ってるのに目立たないのはやっぱ静的な型のおかげで関数型言語のようなことできんからかね
俺もあんまりそっち方面詳しくないけど。Programming In Lua でちょっと触れてたの見てああこれは静的
だとできんわと思ったが。C++だとテンプレートでできてしまうけど・・・あれ?AngelScriptってテンプレート使えたっけ
しかしLuaは資産が多いのと、ちゃんと本体も迷走してないから強いな。翻訳された書籍まであるし(まだまだ踏み込むと英語だけど)
というかLuaJITの速度どういうことなの・・・
Erlangは関数型+マルチスレッドで色々期待されてるね
0114デフォルトの名無しさん
2010/07/28(水) 00:21:190115デフォルトの名無しさん
2010/07/28(水) 00:43:32最初に広まっちゃったからなあ
0116デフォルトの名無しさん
2010/07/28(水) 00:47:55マニュアルにも「JIT compilation」ってあるし。
>AngelScriptってテンプレート使えたっけ
一応可能だけど、C++に比べるとかなり機能は貧弱。
サンプルもAngelScriptのサンプル群の中ではショボい部類に入るし。
0117デフォルトの名無しさん
2010/07/28(水) 01:37:480118デフォルトの名無しさん
2010/07/28(水) 10:53:56Luaは関数型言語というより動的言語(スクリプト)じゃないのかな
動的言語よろしく、実行時にメソッドあるかどうか決まる(スペルミスは通ったときにやっとわかる)タイプじゃなかったけ?
詳しい人よろ
0119デフォルトの名無しさん
2010/07/28(水) 15:26:330120デフォルトの名無しさん
2010/07/28(水) 17:29:530121デフォルトの名無しさん
2010/07/28(水) 23:38:58動的言語 : 型が実行時に決まる
スクリプト : 俺には定義がわからん
まぁそれぞれ関連はあんまりないな
function hoge(arg)
{
0122デフォルトの名無しさん
2010/07/28(水) 23:40:300123デフォルトの名無しさん
2010/07/28(水) 23:52:070124デフォルトの名無しさん
2010/07/29(木) 00:04:480125デフォルトの名無しさん
2010/07/29(木) 00:18:29型が実行時に決まるのは「動的言語」じゃなくて「動的型付け」で別概念。
多くの動的言語は動的型付けだけどね。
例えば Objective-C は動的言語だけど、型付けは静的と動的のハイブリッド
0126デフォルトの名無しさん
2010/07/29(木) 00:51:390127デフォルトの名無しさん
2010/07/29(木) 00:53:580128デフォルトの名無しさん
2010/07/29(木) 01:08:15なにについてそう言ってるのかで話が変わってくるな。
まあ釣りだとは思うが。
速度面でいうならJITコンパイラを内蔵してるかどうかで変わってくるだろう。
あとはその規模、それによる範囲や最適化の度合いだな。
0129デフォルトの名無しさん
2010/07/29(木) 01:13:08「JITしてなさい」
0130デフォルトの名無しさん
2010/07/29(木) 01:14:33なんでJITコンパイラ内蔵うんぬん言ってるの?
0131デフォルトの名無しさん
2010/07/29(木) 05:31:260132デフォルトの名無しさん
2010/07/29(木) 21:39:440133デフォルトの名無しさん
2010/07/29(木) 22:05:58会社とIDって関係あるの?
0134デフォルトの名無しさん
2010/07/30(金) 00:40:120135デフォルトの名無しさん
2010/07/30(金) 02:50:520136デフォルトの名無しさん
2010/07/30(金) 20:38:070137デフォルトの名無しさん
2010/07/31(土) 09:24:040138118
2010/07/31(土) 14:30:40それぞれ直行する概念なのね
動的言語と動的型付けはどうみても俺の勘違いでした。教えていただいてありがとうございました。
Luaはどれに当てはまるんだ?
・動的言語
・動的型
・関数型をめざしてはいない
0139118
2010/07/31(土) 14:38:01どれをというかこの要素があるというのでいいのか?ということを聞きたい
ちょっと話ずれるけど、知り合いにはデバッグ環境はあるけどLuaは動的型付け(でいいよな)なんで
結構大変と聞いたけど実際どうなん?
webアプリとかでさ、動的型言語使ってもテストとかガバレッジなんたらとかやるじゃん?
ゲームで使っている人とか、そういうのどこまでやってるのかしりたい
以前ゲーム作ってたときはそもそも数値計算とかのライブラリ以外は
テストの自動化とか全然やってなかった。
webアプリでもGUIのテストとか調べてると他のテストと比べてまともにやってない感じだし、
ゲームみたいにグラフィカルな場合なおさらだよね?
メインに使う静的型付言語だったらテストおろそかにしていい、というわけでもないし、
組み込み言語あまり関係ない気もしてきたな
0140デフォルトの名無しさん
2010/07/31(土) 14:42:29lua-users wiki: Unit Testing
http://lua-users.org/wiki/UnitTesting
BDD用のluaspecあたりキモくていいですね
http://github.com/mirven/luaspec/blob/master/example/stack_spec.lua
0141デフォルトの名無しさん
2010/07/31(土) 21:27:58ハワイのゲームプログラマさんだと
LL Tiger ≫ LTの虎
http://ll.jus.or.jp/2010/program/lt
LLTiger LT: Lua でわくわくゲーム開発(続き)‐ニコニコ動画(9)
http://www.nicovideo.jp/watch/sm11580483
最近ゲーム関係のイベントだとLuaのセッションチラホラみかける気がするね
0142デフォルトの名無しさん
2010/07/31(土) 21:30:34前半ねーじゃん
Luaタグで検索したら前半発見した。
LLTiger LT: Lua でわくわくゲーム開発(前半)‐ニコニコ動画(9)
http://www.nicovideo.jp/watch/sm11581150
0143デフォルトの名無しさん
2010/08/01(日) 19:18:35つくろうとしたらコンパイルエラーになるのって自分だけ?
引数とかプロパティには出来るんだが
0144デフォルトの名無しさん
2010/08/01(日) 22:27:15class Test
{
Test()
{
}
~Test()
{
}
MyTmpl<float> object;
MyTmpl<float> &GetTemplate()//※
{
return object;
}
};
ってやったら自分の所でも※の行でエラーが出た。バージョンは2.19.0。
templateはまだ未完成な部分が多いのかな?
0145デフォルトの名無しさん
2010/08/02(月) 07:09:33\ ヽ ) ) \\ \\
( \ \∩___∩ \\
\ \ ⌒⌒| ノ ヽ \\
\ \ / ● ● ト、\ \\\
\ Y | ( _●_) ミ\ \\\
\ / 彡、_ |∪| ノ \ \\\
(____)―ヽノ' ヽ  ̄ ̄ ヽ\\
\, j l l .l }
Lua! l (_ノノノノ
0146デフォルトの名無しさん
2010/08/02(月) 21:36:08Lua 5.2 work4 キテタ━━━━(゚∀゚)━━━━ !!!!!
0147デフォルトの名無しさん
2010/08/02(月) 23:06:12> わりとどうでもいい <
 ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^^Y^ ̄
ヘ(^o^)ヘ
|∧
/
0149デフォルトの名無しさん
2010/08/03(火) 20:10:310150デフォルトの名無しさん
2010/08/03(火) 20:45:15ttp://www.square-enix.com/jp/recruit/career/job/game/pg_ui.html
これか。
別にユーザに開放されるってわけじゃないよね。これ。
0151デフォルトの名無しさん
2010/08/03(火) 21:29:040152144
2010/08/03(火) 23:22:23AngelScriptは参照返すのはアウトみたいだから、上のソースはミスだわ。
まあ&はずしてもエラーなのは変わりないんだけど。
0153デフォルトの名無しさん
2010/08/04(水) 07:55:23/ / パカッ
//⌒)∩∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ AngelScript!!
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄(..ノ
0154デフォルトの名無しさん
2010/08/04(水) 08:40:290155デフォルトの名無しさん
2010/08/04(水) 23:15:5669 名前:仕様書無しさん[] 投稿日: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万円まで
0156デフォルトの名無しさん
2010/08/04(水) 23:55:06俺同人屋だけどもう本職の人全然怖くねーわ
0157デフォルトの名無しさん
2010/08/05(木) 01:55:13山崎パンで例えると、
こっち
http://www.yamazakipan.co.jp/recruit/universities/index.html
じゃなくて
こっち
http://www.yamazakipan.co.jp/recruit/high_school/index.html
を見て勝利宣言してるみたいなもんだぞw
現実から目を逸らすのやめろよw
0158デフォルトの名無しさん
2010/08/05(木) 10:00:090159デフォルトの名無しさん
2010/08/05(木) 13:05:240160デフォルトの名無しさん
2010/08/05(木) 13:06:59> わりとどうでもいい <
 ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^^Y^ ̄
ヘ(^o^)ヘ
|∧
/
0161デフォルトの名無しさん
2010/08/05(木) 13:24:57使い捨てですねw
0162デフォルトの名無しさん
2010/08/05(木) 13:34:12・転職回数0〜2回まで
ずいぶんピンポイントでの募集だな
0163デフォルトの名無しさん
2010/08/06(金) 00:33:01・社会人経験2年以上8年未満
・転職回数0〜2回まで
・PCゲーム/コンシューマーゲーム作成経験2年以上
・C++/C#経験2年以上
・Luaスクリプト経験
・オンラインゲーム作成経験
・データリソースマネジメント経験
見事に全て当てはまるけど契約社員は嫌だな
0164デフォルトの名無しさん
2010/08/06(金) 12:33:53Luaはマジで薄給スクリプターの需要上げて、プログラマーの需要下げてますね!!!!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家電製品全体を軽視してるだろ。
ユーザインターフェイスが即ちその企業の開発力、強いては
ブランドを維持する信頼の元だって、全然わかってない。
0165デフォルトの名無しさん
2010/08/06(金) 12:40:430166デフォルトの名無しさん
2010/08/06(金) 12:42:030167デフォルトの名無しさん
2010/08/06(金) 12:46:23C++とかでやってたら「一応動いてるからもう良いでしょ?」ってなところが
スクリプト化してあれば限界までいじれる。
まあ、給料水準はちょっと何だが・・・。
0168デフォルトの名無しさん
2010/08/06(金) 13:56:380169デフォルトの名無しさん
2010/08/06(金) 14:33:43もういじらなくて良いところと、まだいじりたいところを切り分けて、
もう良いでしょって部分を増やしていかないと収束しないじゃん。
そもそも、まだいじりたいけど自分ではいじりたくないから人に頼むってのがおかしい。
0170デフォルトの名無しさん
2010/08/06(金) 20:05:45>そもそも、まだいじりたいけど自分ではいじりたくないから人に頼むってのがおかしい。
分業ってそういうもんじゃない?
スクリプト化すれば、プログラマーとしては一丁上がりみたいなもんだから、先へ進める。
0171デフォルトの名無しさん
2010/08/06(金) 23:37:340172デフォルトの名無しさん
2010/08/07(土) 00:00:380173デフォルトの名無しさん
2010/08/07(土) 00:30:440174デフォルトの名無しさん
2010/08/07(土) 09:32:07∧__∧
(´・ω・) いやどす
ハ∨/^ヽ
ノ::[三ノ :.、
Lua i)、_;|*く; ノ
|!: ::.".T~
ハ、___|
"""~""""""~"""~"""~"
0175デフォルトの名無しさん
2010/08/07(土) 11:12:340176デフォルトの名無しさん
2010/08/07(土) 13:29:580177デフォルトの名無しさん
2010/08/13(金) 09:50:57/ / パカッ
//)∩_∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ AngelScript!! 2.19.1
/ | ヽ |∪| /_
// │ ヽノ \
" ̄ ̄ ̄ ̄ ̄ ̄ ̄
0178デフォルトの名無しさん
2010/08/14(土) 23:34:04まぁ英語の勉強にもな・・・るんだろうか
0179デフォルトの名無しさん
2010/08/14(土) 23:34:480180デフォルトの名無しさん
2010/08/15(日) 01:29:02フォーラムの反応もメチャクチャ早いみたいだし。
0181デフォルトの名無しさん
2010/08/15(日) 01:32:080182デフォルトの名無しさん
2010/08/19(木) 23:16:540183デフォルトの名無しさん
2010/08/20(金) 00:47:53ただ「function」がfuncでもなく「fun」という表記なのと「finalize」とするべきものを「uninitialize」としている華麗なる独自仕様にはまいった。
0184デフォルトの名無しさん
2010/08/20(金) 01:14:080185デフォルトの名無しさん
2010/08/20(金) 04:04:55まぁ、作者が開き直って エックスタル でもいいとか言ってるが
0186デフォルトの名無しさん
2010/08/20(金) 04:05:130187デフォルトの名無しさん
2010/08/20(金) 07:15:42製作者の英語力中学生以下だな
0188デフォルトの名無しさん
2010/08/20(金) 07:39:44テッキーじゃないとXtalの読み方なんか人それぞれだと思うぞ
水晶振動子の素子名とかふつうしらんだろ
0189デフォルトの名無しさん
2010/08/20(金) 21:28:570190デフォルトの名無しさん
2010/08/21(土) 14:37:030191デフォルトの名無しさん
2010/08/21(土) 15:06:47X'masって書いたりするからな。
0192デフォルトの名無しさん
2010/08/21(土) 15:44:57少なくとも現代の英語圏ではそんなアポストロフィの使い方はしない
普通にXmasと書く
0193デフォルトの名無しさん
2010/08/21(土) 17:51:030194デフォルトの名無しさん
2010/08/21(土) 18:28:280195デフォルトの名無しさん
2010/08/21(土) 21:07:16発音からだけど、そういう略は多いよな。
0196デフォルトの名無しさん
2010/08/21(土) 21:54:480197デフォルトの名無しさん
2010/08/22(日) 01:21:050198デフォルトの名無しさん
2010/08/22(日) 04:24:210199デフォルトの名無しさん
2010/08/22(日) 08:07:470200デフォルトの名無しさん
2010/08/22(日) 09:16:180201デフォルトの名無しさん
2010/08/22(日) 09:48:010202デフォルトの名無しさん
2010/08/22(日) 16:34:36スレタイ
0203デフォルトの名無しさん
2010/08/22(日) 18:39:31Squirrelは英語でリス
Xtalは日本語で
0204デフォルトの名無しさん
2010/08/22(日) 19:15:220205デフォルトの名無しさん
2010/08/23(月) 05:20:22>>198はたぶんアニオタ的に突っ込んでほしかったんだと思われる
0206デフォルトの名無しさん
2010/08/24(火) 07:48:42( ・∀・) < Lua!!
⊂/ 9) \____
q( /
> >
0207デフォルトの名無しさん
2010/08/25(水) 01:51:100208デフォルトの名無しさん
2010/08/26(木) 08:12:460209デフォルトの名無しさん
2010/08/26(木) 08:24:25もしかしてSquareとスペル似てるから使ってみたってだけだったのかな
0210デフォルトの名無しさん
2010/08/26(木) 10:31:44こっそり使ってるところはそこそこ多いと思うけど
0211デフォルトの名無しさん
2010/08/26(木) 12:40:170212デフォルトの名無しさん
2010/08/26(木) 21:40:070213デフォルトの名無しさん
2010/08/29(日) 03:41:28だとしたら割りといい考えかもしれない。 ・・・だがGPL。てめぇは駄目だ
0214デフォルトの名無しさん
2010/08/29(日) 07:12:12そういうことだったらMITライセンスはGPL非互換になっちゃう。
0215デフォルトの名無しさん
2010/08/29(日) 10:57:380216デフォルトの名無しさん
2010/08/29(日) 11:18:04sq_openで自前のメモリアロケータを指定できます。
著作権は放棄しますんで煮るなり焼くなりご自由に。
とりあえず動いてるっぽいけどあまりテストしてないので問題があれば教えて欲しいデス
http://uploadr.net/file/833445f4bc
0217216
2010/08/29(日) 12:01:53( ´ω`) <パッチを眺めてたらバグを見つけてしまいました
コッチを使ってください。
↓
http://uploadr.net/file/b62475d8c1
0218デフォルトの名無しさん
2010/08/29(日) 12:13:26いや、どっかに書いといてねはGPL互換だよ。
そうでないと MIT も新BSDもダメになる
GPL非互換なのは、旧BSDの「作者のの名前を広告の類にのせてはだめ」っていう「宣伝条項」
>>215
OSないしは標準インターフェースはGPL除外。よって cygwin は問題ない。
0219デフォルトの名無しさん
2010/08/29(日) 12:34:54宣伝条項ちょっと違う。
>初期のBSDライセンスには、派生物の広告に初期開発者を表示することが条件として盛り込まれていた
http://ja.wikipedia.org/wiki/BSD%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9
0220デフォルトの名無しさん
2010/08/29(日) 12:53:58第4項とまざってたすまん。今の*BSDは結局第4項もはずしてるよね
0221デフォルトの名無しさん
2010/08/29(日) 14:11:00sampleスクリプトの出力結果がオリジナルと一致することは確認済みです。
こりらも扱いはご自由にどうぞ
http://uploadr.net/file/5df5be55f8
0222デフォルトの名無しさん
2010/08/29(日) 14:59:130223デフォルトの名無しさん
2010/08/29(日) 15:25:212条項BSDLはまだそんなに多くないんじゃないか?
3条項BSDLが大半だと思うけど。
0224デフォルトの名無しさん
2010/08/29(日) 15:27:05VM毎に異なるヒープを使いたい場合を想定しています。
PCのように潤沢なメモリがある環境なら不要なものですね。
0225デフォルトの名無しさん
2010/08/29(日) 21:09:450226デフォルトの名無しさん
2010/08/30(月) 00:57:44VM毎にヒープが使えると便利ナノデス。
あと、
C++でnamespaceを使うように、敢えてVMを隔離したい場合もある。
luaはVMのopen時にメモリアロケータを個別に設定できたけど、
squirrelでは出来なかったのが不満だったのでパッチを作ってみた次第。
0227デフォルトの名無しさん
2010/09/03(金) 16:57:030228デフォルトの名無しさん
2010/09/03(金) 19:17:58http://code.google.com/p/golua/
0229デフォルトの名無しさん
2010/09/03(金) 21:00:56\ ヽ ) ) \\ \\
( \ \∩___∩ \\
\ \ ⌒⌒| ノ ヽ \\
\ \ / # +◇iiiillllii◇ト、\ \\\
\ Y | ソ(_ ●_) ミ\ \\\
\ / 彡、_ |∨WV|ノ \ \\\
(____)|∧MΛヽ  ̄ ̄ ヽ\\
\, j l l .l }
Golua! l (_ノノノノ
0230デフォルトの名無しさん
2010/09/06(月) 09:11:59/ / パカッ
//)∩_∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ AngelScript!! 2.19.2
/ | ヽ |∪| /_
// │ ヽノ \
" ̄ ̄ ̄ ̄ ̄ ̄ ̄
0231デフォルトの名無しさん
2010/09/08(水) 16:20:140232デフォルトの名無しさん
2010/09/08(水) 18:12:500233デフォルトの名無しさん
2010/09/08(水) 18:34:520234デフォルトの名無しさん
2010/09/08(水) 19:00:310235デフォルトの名無しさん
2010/09/08(水) 21:27:590236デフォルトの名無しさん
2010/09/08(水) 21:36:130237デフォルトの名無しさん
2010/09/08(水) 23:02:30せっかくだから、ばいんだー使えばいんだーくらい言おうよ。
0238デフォルトの名無しさん
2010/09/09(木) 16:41:050239デフォルトの名無しさん
2010/09/11(土) 13:51:50whileループ内でlua_yieldとlua_resumeを毎フレーム繰り返すような使い方を想定してるのですが
何か注意すべき点とかありますか?
0240デフォルトの名無しさん
2010/09/11(土) 13:55:19再入時にCスタックをトレースしてるんだろうか
0241239
2010/09/11(土) 15:11:520242デフォルトの名無しさん
2010/09/15(水) 07:16:10lua_dostring の中から yield か resume をしているとか?
0243デフォルトの名無しさん
2010/09/16(木) 02:09:27この関数を呼ぶと PANIC: unprotected error in call to Lua API とエラーが出ます。
LUA_ENVIRONINDEXを操作する方法を知ってる人がいたら教えてください。
0244デフォルトの名無しさん
2010/09/16(木) 12:34:580245デフォルトの名無しさん
2010/09/16(木) 17:42:45他に環境テーブルを操作する方法ってあるんですか?
0246デフォルトの名無しさん
2010/09/16(木) 18:27:53エラーを出す方法を教えてください。
0247デフォルトの名無しさん
2010/09/19(日) 00:46:40魚が釣れるよ!
0248デフォルトの名無しさん
2010/09/19(日) 21:15:230249デフォルトの名無しさん
2010/09/19(日) 21:37:580250デフォルトの名無しさん
2010/09/19(日) 22:00:590251デフォルトの名無しさん
2010/09/19(日) 22:04:560252デフォルトの名無しさん
2010/09/19(日) 22:23:420253デフォルトの名無しさん
2010/09/19(日) 22:41:51それらの中には我々が普通に使ってるライブラリだってあるわけだが、
そういったものを否定する気なのか?
0254デフォルトの名無しさん
2010/09/19(日) 22:46:42ウェブサイトはやたら豪華だったりするよな。で、Googleのホスティングで
済ませてるようなところはすぐぽしゃるイメージw
0255デフォルトの名無しさん
2010/09/19(日) 22:48:28必要な機能が実装されていて、
枯れているか、枯れてなくてもちゃんとメンテされていればそれでいい。
0256デフォルトの名無しさん
2010/09/19(日) 23:25:530257デフォルトの名無しさん
2010/09/20(月) 01:10:120258デフォルトの名無しさん
2010/09/20(月) 01:25:510259デフォルトの名無しさん
2010/09/20(月) 01:31:14これはあるな
俺もそういうのネットのすべてのコンテンツで気になるわ
0260デフォルトの名無しさん
2010/09/20(月) 07:19:40どこでも遺書
0261デフォルトの名無しさん
2010/09/20(月) 16:58:270262デフォルトの名無しさん
2010/09/21(火) 08:44:27なんか違うねこれ
0263デフォルトの名無しさん
2010/09/21(火) 09:37:540264デフォルトの名無しさん
2010/09/21(火) 11:03:540265デフォルトの名無しさん
2010/09/21(火) 11:26:41素のLuaに近い書き方でAdvのスクリプトが打てるようになる、
というのはそんなに悪くない設計だと思うけど。
ただしプレーンなシナリオとは文法に乖離があるから、
シナリオテキストからAdvスクリプトを生成するコンバーターが欲しいところだけど。
0266デフォルトの名無しさん
2010/09/21(火) 11:52:03コンバート方式ならかろうじてありですが、コンバート後のスクリプトをいじると同じことなので、
ことADVのスクリプトにおいては専用記述スタイルのスクリプトのみってのが無難です。
lua で命令を拡張可能、とかならあり。
0267デフォルトの名無しさん
2010/09/21(火) 13:00:270268デフォルトの名無しさん
2010/09/21(火) 13:01:480269デフォルトの名無しさん
2010/09/21(火) 13:22:130270デフォルトの名無しさん
2010/09/21(火) 17:28:36CやC#とかLuaでプラグイン書けるくらいでいいだろ
ADVエンジンの吉里吉里だって、独自のスクリプトの上にラッパーでシナリオ型のDSL用意してるだろ?
パッと見の構造の複雑さは増すが、ライターや初心者はラッパーだけ触ればいいし、
手が込んだものを作りたかったらスクリプトの層を触ればいいと考えると
よく考えられてると思うけどな
0271デフォルトの名無しさん
2010/09/21(火) 18:02:20よく考えなくても普通にそこにたどり着くもんだ。
0272デフォルトの名無しさん
2010/09/21(火) 18:09:390273デフォルトの名無しさん
2010/09/21(火) 18:17:200274デフォルトの名無しさん
2010/09/21(火) 18:35:360275デフォルトの名無しさん
2010/09/21(火) 18:46:13コンバーターより専用スクリプトの方が楽だろうな
0276デフォルトの名無しさん
2010/09/21(火) 23:37:19そのままだと>>275の言うとおりに面倒なので、まず拡張子を独自のものにして
その拡張子に関連付けでコンバートプログラムが動作するようにする。
これでExplorerからダブルクリックで変換できる。
さらにエディタのマクロを使って、スクリプトの編集保存時にコンバーターを呼び出して
自動変換するようにしている。
コンバート時にluaのエラーチェックも行ってる。
>>274の言うとおり、デフォルトだとセーブロード処理が難しかったので
Luaの内部にも手を入れてる。
0277デフォルトの名無しさん
2010/09/21(火) 23:58:24ちょっと高度なことをするときはスクリプトという風にしようとしたんだけど
XMLだけならセーブは簡単に出来そうだけど、
スクリプトのセーブが困難そうで困った
0278デフォルトの名無しさん
2010/09/22(水) 00:19:22演出などにAngelScript使ってるな。
AngelScriptの場合、スクリプトの途中でSuspendして一時停止させた状態を保存する方法がないので、
とりあえずセーブしなきゃならない部分は以前から使ってた俺様スクリプト使ってる。
0279デフォルトの名無しさん
2010/09/22(水) 11:22:44そんな使い方ならLispを組み込めばいいのに。
0280デフォルトの名無しさん
2010/09/23(木) 05:55:370281デフォルトの名無しさん
2010/09/23(木) 15:57:13GOALだっけ
これ?
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は継続してます
>
0282デフォルトの名無しさん
2010/09/29(水) 05:29:473月の時点で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
0283デフォルトの名無しさん
2010/09/29(水) 09:27:410284デフォルトの名無しさん
2010/09/29(水) 09:31:480285デフォルトの名無しさん
2010/09/29(水) 10:41:40既にC/C++のゲームエンジンより速い場合あるしな。
ソースは色に出でにけりわが恋はと
オンボロPCで定常状態のCPU使用率を比較した場合。
0286デフォルトの名無しさん
2010/09/29(水) 10:44:260287デフォルトの名無しさん
2010/09/29(水) 12:42:01メモリ使用量ではJavaも>>282もボロ負けだろうな。
0288デフォルトの名無しさん
2010/09/29(水) 12:52:58ゲーム開始していくらか進めてみたけど、Vistaで60-80MB。
別に多くもないし少なくもないな。
オンメモリでどんだけの素材を持たせてるかによるんじゃね?
タユタマだったら300MB、バルダーシリーズだったら700MB位食うし。
0289デフォルトの名無しさん
2010/09/29(水) 13:42:25ぐぐってもでてこないんだけど、NVLって正式名称どういうエンジン名?
0290デフォルトの名無しさん
2010/09/29(水) 13:52:23NoVeLじゃね
0291デフォルトの名無しさん
2010/09/29(水) 18:10:45ファイル一覧を見ただけでゲーム名がわかるぜ
0292デフォルトの名無しさん
2010/09/29(水) 18:11:470293デフォルトの名無しさん
2010/09/29(水) 18:12:450294デフォルトの名無しさん
2010/09/30(木) 01:54:37実際は実行速度は問題なくて、ngenだけ遅いという話ではないよな。必要だからngenかけてるんだろうし
0295デフォルトの名無しさん
2010/09/30(木) 01:58:40結局当初の製品はパフォーマンスの問題で別のエンジンに移植してリリースしたのね
大変だな
0296デフォルトの名無しさん
2010/09/30(木) 02:06:56昨年、IronPythonマンセーの人が常駐しててぱったりこなくなったのを見ると
>>282 の事情があったの何か重なるものが、、、と思った(´;ω;`)
0297デフォルトの名無しさん
2010/09/30(木) 02:13:46定常状態なら許容範囲なんだけど、
初期化があまりに遅すぎる。
KAGレベルの開発環境を構築すると……。
0298デフォルトの名無しさん
2010/09/30(木) 02:36:03サーバーサイドだとあまり問題ないだろうけどね
前スレでもでてたけど、最初の実行が遅いというやつか
.NETのユーティリティソフトがGUIもっさりと起動遅いというので避けられる現象があるな
0299デフォルトの名無しさん
2010/09/30(木) 07:42:46みたいな使い方には向かないわな。
ゲームなどには意外と良いのかもだけど。
0300デフォルトの名無しさん
2010/09/30(木) 08:50:30メモ帳や電卓みたいなソフトでは許容できないが
0301デフォルトの名無しさん
2010/10/05(火) 12:40:53C++のオブジェクト一つにつき一つの独立したLua実行環境をもたせたいんですがstateを複数生成するほかにやり方は在りますか?
0302デフォルトの名無しさん
2010/10/05(火) 13:31:160303デフォルトの名無しさん
2010/10/05(火) 14:54:00日本語でおk
0304デフォルトの名無しさん
2010/10/06(水) 00:52:320305デフォルトの名無しさん
2010/10/06(水) 07:41:32生成すればいいやん
0306デフォルトの名無しさん
2010/10/06(水) 09:35:080307デフォルトの名無しさん
2010/10/06(水) 11:16:37namespaceでくくる
メンバにして確保する
0308デフォルトの名無しさん
2010/10/06(水) 11:35:120309デフォルトの名無しさん
2010/10/06(水) 12:15:12C++側のことだと解釈しても意味はわからんが。
オブジェクト毎に生成するってことは元々なんかのメンバになってるだろうし。グローバルには持ってこないだろどう考えても。
0310デフォルトの名無しさん
2010/10/06(水) 12:39:01{
lua_State * s;
public:
Obj(void) : s(lua_open()) {}
~Obj(void) { lua_close(s); }
};
寿命短いクラスだとパフォーマンスが残念
Luaのグローバルテーブルにオブジェクト専用のテーブルを用意するのが良い
C++オブジェクト生成時にオブジェクトのアドレスをキーにしてテーブルを登録
C++オブジェクト破棄時にテーブルを削除
0311デフォルトの名無しさん
2010/10/06(水) 14:47:450312デフォルトの名無しさん
2010/10/06(水) 14:52:110313デフォルトの名無しさん
2010/10/06(水) 14:53:160314デフォルトの名無しさん
2010/10/06(水) 15:00:00ということはマルチスレッド対応してるのはluaだけ?
0315デフォルトの名無しさん
2010/10/06(水) 15:07:40JSはネームスペースを擬似的につくれるだろ。
0316デフォルトの名無しさん
2010/10/06(水) 15:17:30マルチスレッドってのが協調スレッド(コルーチン)のことなら squirrel も対応してる。
v8 はサポートしてないが、サポートしようとしているプロジェクトはある模様(js-coroutine)
どの程度完成してるのかは知らない
マルチスレッド環境で安全に実行可能か、ということだと、lua も squirrel も v8 もスレッドセーフに
書かれてないので全部アウト。複数スレッドから呼ぶと簡単にふっとぶ。
コルーチン機能があって、スレッドセーフってのだと、Javascript だと SpiderMonkey がそうじゃないかな。
あと、AngelScriptとか
0317デフォルトの名無しさん
2010/10/06(水) 16:13:53たしかXtalも対応してたんじゃないかな。
0318デフォルトの名無しさん
2010/10/06(水) 16:16:27擬似的にならLuaでもいくらでもできますがな
0319デフォルトの名無しさん
2010/10/06(水) 20:20:20Lua自体はスレッドセーフではないが、State同士は独立しているので各スレッドにStateを持たせる。
などで対処できると ぷろぐらみんぐ いん るあ にも書いてある
squirrelに関しては深く調べてない。
というかVMの持ってる状態(スタックとか)にマルチスレッドからアクセスしたら大抵まずいと思う。
ネイティブスレッドを使えるかという意味なら
Xtal,GameMonkeyが確か使えたと思う。スレッドに関してはGameMonkeyが強いそうな。どこかで聞いただけだけど。
以上うろ覚え。
AngelScriptがどうだったか思い出せない。コルーチンみたいなことはAddOnに入ってる。
これもContextに複数スレッドからアクセスしなければいけるんかな。
0320デフォルトの名無しさん
2010/10/07(木) 01:21:23コルーチンで十分ってことですか?
0321デフォルトの名無しさん
2010/10/07(木) 01:32:470322デフォルトの名無しさん
2010/10/07(木) 11:42:070323デフォルトの名無しさん
2010/10/08(金) 09:44:51エスパーの集まりだな
0324デフォルトの名無しさん
2010/10/08(金) 10:54:520325デフォルトの名無しさん
2010/10/10(日) 18:37:12なければつくるんだけど・・・
0326デフォルトの名無しさん
2010/10/10(日) 18:41:28なければつくるんだけど・・・
0327デフォルトの名無しさん
2010/10/10(日) 18:42:150328デフォルトの名無しさん
2010/10/10(日) 23:34:48http://www.google.com/search?sclient=psy&hl=en&site=&source=hp&q=luaOAuth&btnG=Google+Search
0329デフォルトの名無しさん
2010/10/11(月) 10:18:320330デフォルトの名無しさん
2010/10/12(火) 03:38:340331デフォルトの名無しさん
2010/10/12(火) 03:51:060332デフォルトの名無しさん
2010/10/12(火) 04:01:010333330
2010/10/12(火) 22:20:160334デフォルトの名無しさん
2010/10/13(水) 00:05:010335デフォルトの名無しさん
2010/10/13(水) 13:12:410336デフォルトの名無しさん
2010/10/13(水) 13:30:580337デフォルトの名無しさん
2010/10/13(水) 13:40:520338デフォルトの名無しさん
2010/10/13(水) 14:20:31print "\a"
Beep音がなりません
これで合ってます?
0339デフォルトの名無しさん
2010/10/13(水) 14:28:010340デフォルトの名無しさん
2010/10/13(水) 14:37:27OSはWindows Vista 使ってます
何か設定しろってことですかね?
0341デフォルトの名無しさん
2010/10/13(水) 14:47:380342デフォルトの名無しさん
2010/10/13(水) 14:50:08BELLコードも知らずにやってるのか?
0343デフォルトの名無しさん
2010/10/13(水) 14:50:17鳴りました
0344デフォルトの名無しさん
2010/10/13(水) 14:54:10Winの場合、サブシステムがコンソールになってないとそもそも標準入出力がコンソールと接続しないのでならない。
サブシステム:Windows でも自力でコンソール開いて標準入出力と接続すれば鳴ると思われ。余分に窓でるけど。
0345デフォルトの名無しさん
2010/10/13(水) 14:57:03丁重に扱え
0346デフォルトの名無しさん
2010/10/13(水) 16:09:020347デフォルトの名無しさん
2010/10/13(水) 23:41:19// 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{ ... };
のような事がやれればいいのですが・・・
0348デフォルトの名無しさん
2010/10/14(木) 00:25:090349デフォルトの名無しさん
2010/10/14(木) 00:52:14それはもっと不恰好ですよね・・・
0350デフォルトの名無しさん
2010/10/14(木) 00:56:32hoge.h はパブリックヘッダで hoge.cpp でプライベートに構造体を定義してあるんだろうけど、その構造体定義だけ hogeprivate.h とかわけて、
hoge.cpp と バインダ定義してるとこで include するよろし
0351デフォルトの名無しさん
2010/10/14(木) 01:37:40えーと
ソースに手を加える
Hoge型を必要とするもの全て個別にラップする
この二つ以外に方法があればと質問した次第であります。
0352デフォルトの名無しさん
2010/10/14(木) 02:26:450353デフォルトの名無しさん
2010/10/14(木) 02:32:230354デフォルトの名無しさん
2010/10/14(木) 02:36:57組み込みにくいんだよな。
LuaBindみたいなのが用意されていても、そのバインダの結局想定範疇を超えると細かい調整がいる。
ラッパーは手動ではやっとれん。
ラッパー自動生成する仕組みはあったとは思うが。
SWIGだっけ
0355デフォルトの名無しさん
2010/10/14(木) 02:52:02自分でもそうは思うのですが
自分の頭が足りていないだけで
実は他に何か楽な方法があるのではないかと思い質問してみました。
>>353
Hoge型とはこんな造りですよ
と教える手段が無いまま挑んでも
lightuserdataを使うハメになるので
行き着くところは同じなんじゃ・・・
0356デフォルトの名無しさん
2010/10/14(木) 02:55:22実施個別に関数全部手でかくのと同程度の労力にはなるだろうけど、
ラッパークラスを作ってそれをバインダーで登録したほうがソースの見た目は奇麗だろうね、ってことで。
バインダはコンパイラの機能をつかって記述を減らすテクニックであって、コンパイラに
検知できないことはどうしようもない。人が書き起こすしかないべ。
0357デフォルトの名無しさん
2010/10/14(木) 02:58:590358デフォルトの名無しさん
2010/10/14(木) 03:16:22a = 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;
};
0359デフォルトの名無しさん
2010/10/14(木) 04:08:26趣旨がw
>>358
クラスでラップしちゃう方法やら
ネームスペースで囲って必要なものだけフィルタする方法もありますが
そういったやり方はどうも不恰好に見えたので質問した次第であります。
何故Hoge型をスクリプト側に認識させたいかといいますと
出来る限りオリジナルに近い形で公開したいのです。
そうすればクラスリファレンス不要ですから迷うことはありませんしね。
オリジナルのソースを尊重しソース改変などの2度手間を避け
#include "xxx.c/cpp" などのライブラリの意味を根本から覆す事のない
ナイスなアイデアがあるのではと。
とりあえず、結論としては
c/cppソース内に隠蔽された構造体、クラスをバインドする方法はない
という事ですかね?
何か抜け道があると思うんだけどなぁぁぁ
0360デフォルトの名無しさん
2010/10/14(木) 09:51:33えーと、たとえば操作メソッドが必ず第一引数に構造体のポインタもってるとか
構造に規則はあるんでしょ?じゃあ、それを前提にしたバインダを自前で書けば良いだけ。
クラスにラッピング〜ってのは、luabind をはじめとする多くのバインダはクラス(構造体)構造を
前提にしたバインダだから、それを使うのならそれにあわせないとダメだよってだけの話。
0361デフォルトの名無しさん
2010/10/14(木) 20:54:11みんなもっと天使スクリプト使えばいいのに
0362デフォルトの名無しさん
2010/10/14(木) 20:58:290363デフォルトの名無しさん
2010/10/14(木) 23:29:150364デフォルトの名無しさん
2010/10/15(金) 01:09:090365デフォルトの名無しさん
2010/10/15(金) 01:51:08C++のくびきから離れると、楽だぜー。
0366デフォルトの名無しさん
2010/10/15(金) 07:46:50疑問である。
0367デフォルトの名無しさん
2010/10/15(金) 09:23:52> ぶっちゃけLuaってC++と相性あんまし良くないよね
具体的にどのあたりが?
これだけ簡単に組み込めて
高速で柔軟性もあり
コンパクト(シンプル)で習得も容易なのに
相性が悪いとは到底思えないんだけど
0368デフォルトの名無しさん
2010/10/15(金) 09:32:59Box2D のバインダを作ってみたけどすごく簡単だった。
0369デフォルトの名無しさん
2010/10/15(金) 09:46:53ガベコレってリソースの寿命把握しにくいし
テンプレート使えないし
C++じゃなくてCで使ったほうがいいよ
0370デフォルトの名無しさん
2010/10/15(金) 11:23:250371デフォルトの名無しさん
2010/10/15(金) 11:31:14逆にそう言うのはCで書いたほうがいい。
Squirrelは処理系自体はC++で実装されてるけど
外部APIはC言語準拠になってるわけだし。
0372デフォルトの名無しさん
2010/10/15(金) 11:34:170373デフォルトの名無しさん
2010/10/15(金) 11:37:52仮想スタックに対する操作というレベルで考えれば、
LuaもSquirrelもほとんど差はないんだぜ?
0374デフォルトの名無しさん
2010/10/15(金) 11:44:02どうしてもスタックさわる必要がある場合でも、そのスタック処理自体を隠蔽したC++のクラスをまず作るだろう。
0375デフォルトの名無しさん
2010/10/15(金) 11:46:26あれはあれでC++すぎて使う意義がぴんとこないんだ
0376デフォルトの名無しさん
2010/10/15(金) 12:56:47少年よ神話になれ
0377デフォルトの名無しさん
2010/10/15(金) 17:52:390378デフォルトの名無しさん
2010/10/15(金) 18:04:230379デフォルトの名無しさん
2010/10/15(金) 18:08:200380デフォルトの名無しさん
2010/10/15(金) 21:20:01他のスクリプト言語と同じで外部に記述できるのがでかいと思うよ。
C/C++とほとんど文法変わらないから、C/C++側で定義している列挙子(enum)やら定数やらほとんどそのまま持っていける。
Luaとかと違ってデフォルトでコルーチンないけど、作るの簡単だし。
0381デフォルトの名無しさん
2010/10/15(金) 22:02:59/ / パカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ Lua!!
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
0382デフォルトの名無しさん
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;|;_゙ι´゚゙´
0383デフォルトの名無しさん
2010/10/16(土) 01:05:430384デフォルトの名無しさん
2010/10/16(土) 01:08:15鼻で笑えるくらいに訓練されているとC++くらい使えるしLuaの組み込みくらいは余裕だろ
0385デフォルトの名無しさん
2010/10/16(土) 03:50:060386デフォルトの名無しさん
2010/10/16(土) 08:15:07{
};
class Fuga
{
class Piyo {};
public:
shared_ptr<Piyo> f(vector<Hoge> hv, Piyo const & p, optional<iostream &> ios);
};
バインダって使ったこと無いんだけど
こう言うクラスも簡単にバインドできるの?
0387デフォルトの名無しさん
2010/10/16(土) 10:06:000388デフォルトの名無しさん
2010/10/16(土) 10:10:40{
public:
shared_ptr<Piyo> f(vector<Hoge> hv, Piyo const & p, optional<iostream &> ios);
};
コレの意味がまったく理解できない俺に誰か解説お願い
0389デフォルトの名無しさん
2010/10/16(土) 10:16:53boost::shared_ptr
boost::optional
あとはぐぐって自分で調べれ
0390デフォルトの名無しさん
2010/10/16(土) 10:31:34や
optional<> f(){}
という使い方ぐらいなら分かるけど
クラスメンバで
shared_ptr<Piyo> p(...);
という使い方は見たこと無かったので。
と思ったら今分かった
shared_ptr<Piyo> f(vector<Hoge> hv, Piyo const & p, optional<iostream &> ios){}
これか。
0391デフォルトの名無しさん
2010/10/16(土) 11:57:52でも typemap かけば、まぁ、可能といえば可能。簡単かどうかは知らん。
ただ、ゲームなどにスクリプトエンジンを組み込むときは、将来の変更のことも考えれば、
できるだけホスト言語とスクリプト言語のインターフェイスはシンプルししておいたほうがいいと思うんだ。
0392デフォルトの名無しさん
2010/10/16(土) 12:02:500393デフォルトの名無しさん
2010/10/16(土) 13:24:58ただ、いまあるバインダはテンプレート型意識してつくられてるのはあまりないから、
それぞれ全部メソッドを手で指定するはめになる。よく使うものは、バインダ側を拡張して、
テンプレート型ごとの自動登録処理を書いてしまうのが妥当だね。
shared_ptr は、スクリプト側のリファレンス管理とかぶるから意味が薄いな。
ただ、データの管理用の構造を組むのは簡単な部類だから、C++とのソース共用の意味では
バインダ側で汎用処理できるリリーサをはめるテンプレート一つ足しておくのは悪く無い選択。
わりと簡単に書けると思う。
vector はなー。vector そのものを型としてエントリするのは簡単だけど、
スクリプト側の配列系とうまくやりとりできたほうが嬉しいだろうからなぁ。
スクリプトの配列から全部つめなおし処理をしてくれるような型変換コードをかくか、あるいは、
lua はよく知らんが、squirrel は配列とかの参照のメタメソッド登録ってのができるので、
スクリプトの array と見た目的には同じようにアクセスできるような細工をしたクラスにするか。
スクリプト側の配列は型が汎用だけど、これはいれれるものは限定されるから、そのあたりは
入れようとした時点で例外で対処、とかかな。map も連想配列とうまくバインドできると便利そうだよね。
optional は、うーん、これはあれかなスクリプト側で void とか null とか渡されたときと、
目的の型をわたされたときとでうまく詰め替えて処理するような型変換処理を書くのがいいかな。
そんなわけで、この程度なら、テンプレート使いなら特に問題なくバインダを拡張することで対応可能だと思われる。
なかなか良いお題なので、自分のバインドコードにはそれぞれあとで考えて足してみることにするよw
0394デフォルトの名無しさん
2010/10/16(土) 17:41:47〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ Lua!!
彡、 |∪| /
/ __ ヽノ /
(___)
0395デフォルトの名無しさん
2010/10/16(土) 17:49:040396デフォルトの名無しさん
2010/10/16(土) 19:16:01〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ GameMonkey!!
彡、 |∪| /
/ __ ヽノ /
(___)
0397デフォルトの名無しさん
2010/10/16(土) 20:17:00単体テストのために立てたものです。
GameMonkeyと開発者とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
組み込み言語研究所
0398デフォルトの名無しさん
2010/10/16(土) 20:25:020399デフォルトの名無しさん
2010/10/16(土) 20:40:16てめぇが作れ
0400デフォルトの名無しさん
2010/10/16(土) 20:43:100401デフォルトの名無しさん
2010/10/16(土) 21:14:240402デフォルトの名無しさん
2010/10/16(土) 21:46:07つかLISP族はプログラマー以外にスクリプトを欠かせる場合になかなかよいぞ。
専用命令を手続きとしてつくっておいてやれば、
HTMLのようにマークアップしてくれでOK。
細かい制御が必要な場合だけ共同作業。
0403デフォルトの名無しさん
2010/10/16(土) 22:01:550404デフォルトの名無しさん
2010/10/16(土) 22:38:510405デフォルトの名無しさん
2010/10/16(土) 23:55:11ShiftJIS対応版とかも簡単だよ!
0406デフォルトの名無しさん
2010/10/16(土) 23:59:480407デフォルトの名無しさん
2010/10/17(日) 03:07:49特定用途のシーケンスをだらだら書かせたりするのは割りとらくなんだけどなあ。
DSLって行ってもSQLや正規表現みたいに勉強が必要なものは作らないよ。
0408デフォルトの名無しさん
2010/10/17(日) 03:11:020409デフォルトの名無しさん
2010/10/17(日) 03:18:18インデントのやり方をXMLやHTML風にしてあげるだけで、
ずいぶん初心者にもわかりやすくなるよ。
()のチェックや想定以外の手続き名のチェックとか、
そこらへんは自前のプログラムかけて検出するしね。
0410デフォルトの名無しさん
2010/10/17(日) 22:32:59RubyのDSLが簡単に並みの詐欺じゃないのか
0411デフォルトの名無しさん
2010/10/17(日) 22:35:21DSLつくってもけっきょくはへんすうやすうしきうめこんだりぷりぷろせっさつくるのもめんどうだよねー
というときのプログラマー向けの用途だと思ってた。
0412デフォルトの名無しさん
2010/10/17(日) 22:43:280413デフォルトの名無しさん
2010/10/17(日) 22:44:04\ ヽ ) ) \\ \\
( \ \∩___∩ \\
\ \ ⌒⌒| ノ ヽ \\
\ \ / ● ● ト、\ \\\
\ Y | ( _●_) ミ\ \\\
\ / 彡、_ |∪| ノ \ \\\
(____)―ヽノ' ヽ  ̄ ̄ ヽ\\
\, j l l .l }
Lua! l (_ノノノノ
0414デフォルトの名無しさん
2010/10/17(日) 22:48:120415デフォルトの名無しさん
2010/10/17(日) 22:52:330416デフォルトの名無しさん
2010/10/17(日) 22:59:24そりゃあ、既にトレンドはマルチコアの活用に移りつつあるのに、
その一つ手前の軽量スクリプトで柔軟な開発をしよう、に留まってるからだ。
Luaを始めとしてほとんどの軽量スクリプトの処理系は、マルチスレッド化に対応できない。
0417デフォルトの名無しさん
2010/10/17(日) 23:01:260418デフォルトの名無しさん
2010/10/17(日) 23:02:320419デフォルトの名無しさん
2010/10/17(日) 23:46:570420デフォルトの名無しさん
2010/10/18(月) 00:15:150421デフォルトの名無しさん
2010/10/18(月) 01:59:05頭固いな
スクリプト側で完結しようとせずに
並列化したい処理は組み込み先の言語にやらせたらいいじゃない
0422デフォルトの名無しさん
2010/10/18(月) 07:03:20複数のスクリプトを同時に走らせたい場合って無い?
結構あると思うんだけど
0423デフォルトの名無しさん
2010/10/18(月) 08:27:38走らせたきゃ走らせたら?
それが出来ない縛りでもあるの?
0424デフォルトの名無しさん
2010/10/18(月) 11:11:03んー、全部スクリプトで作ってるのならあるだろうけど、
C/C++にくみ入れてる状況ならスレッドが必要な処理は C側に持つよ。俺なら。
スクリプト側はコルーチンで十分。
0425デフォルトの名無しさん
2010/10/18(月) 12:14:51クロージャーでもできる?
0426デフォルトの名無しさん
2010/10/18(月) 12:57:03localの有無
できる
0427デフォルトの名無しさん
2010/10/18(月) 13:03:09明らかに時間がかかる処理とか、そういうのが入ってきたらどうするのよ。
コルーチン中で処理を小出しにするテクニックはあるけど万能じゃないし、
コルーチンにだけ頼ってたらすぐに破綻すると思うんだが?
0428デフォルトの名無しさん
2010/10/18(月) 14:35:15> どれだけ時間がかかるか判らない処理とか、
> 明らかに時間がかかる処理とか、そういうのが入ってきたらどうするのよ。
喩えのレベルが低すぎ。
> コルーチン中で処理を小出しにするテクニックはあるけど万能じゃないし、
> コルーチンにだけ頼ってたらすぐに破綻すると思うんだが?
スレッド使いなよ
少し前に同じ内容のレスが何度もあるんだから少しは目を通しなよ
連携が容易なんだから得意なほうに処理をまかせちゃいなよ
0429デフォルトの名無しさん
2010/10/18(月) 15:01:12そういうのはC側におくよ、と言ってるわけなんだが……。
コルーチンにたよるのはむろんそれで問題が無い範囲のみだ。
マルチスレッドのスクリプトを否定するわけじゃないよ。PC用にアプリ書く必要があるときは、
スクリプト使うならスレッドが扱えるものを選ぶ。画面固まるのイヤだし。
現状では、lua とか squirrel を選んでるジャンルでは、重たい処理は
Cで書かれたエンジン側でスレッド使ってまわすってのが暗黙の前提で
あると思う。そこに文句つけるのは微妙に筋違い。
今のPCレベルのマシンパワーがおりてくれば、コンソール機や他の組み込み用途でも
全部スクリプトで〜ってなってくる可能性はあるけどまだちょっと早いやね。
0430デフォルトの名無しさん
2010/10/18(月) 21:17:580431デフォルトの名無しさん
2010/10/18(月) 21:51:16何故組み込みスクリプトとマルチスレッドが同時に使えない話になっているのか
コレガワカラナイ
PS3/XBOX360/PCに採用されている以上、マルチスレッド環境でも使われているということだろう
LuaならGame Programming Gems にいくつか載ってた気がするぞ
Stateをスレッド数分作成して、関数定義等は共有化する方法とかあったが、スレッド間で共有することになるから
(でなければスレッド数分複製することになる)並列処理中は定義の上書きはしない、同期処理部分で行う。
とかするのか?とか色々考えることはあるけど
0432デフォルトの名無しさん
2010/10/18(月) 23:23:49〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ Lua!!
彡、 |∪| /
/ __ ヽノ /
(___)
0433デフォルトの名無しさん
2010/10/19(火) 00:26:46勿論そうなんだけど、Lua側からスレッドの制御できるようにしたり、
データの同期取れるように関数拡張しない?
0434デフォルトの名無しさん
2010/10/19(火) 00:32:26./doc/install.html
0435デフォルトの名無しさん
2010/10/19(火) 02:03:56すればいいじゃん
スレッドを生成してもいいが同期を取ってはいけない
という家訓でもあんの?
0436デフォルトの名無しさん
2010/10/19(火) 03:36:27当然するにきまってるだろう。というかしないと制御できないじゃないか。
コルーチンのドライブ部分に待ち制御をしこんで、スレッド待ち中はスクリプトを起動させない形で待ち合わせするか、
あるいは、非同期動作するオブジェクトに動作確認メソッドをしこんで、スクリプトから随時ポーリングして待ち合わせするか、
は設計次第ってことで
0437デフォルトの名無しさん
2010/10/19(火) 05:45:54だからそういう拡張がLuaをマルチスレッドに対応させるってことなんじゃないの?
発端は
>Luaを始めとしてほとんどの軽量スクリプトの処理系は、マルチスレッド化に対応できない。
なんだろ?
0438デフォルトの名無しさん
2010/10/19(火) 08:06:04/ / パカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ Lua!!
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
0439デフォルトの名無しさん
2010/10/19(火) 08:16:24・時代はマルチコアだよ!
っていってるヤツと
・コルーチンだけ使うよりスレッド使ったほうが便利だよ!
っていってるヤツがいるように見える。
>>418は前者に対するレスだと思うけど、それに対して後者で返してるんじゃねえのかなあ。
0440デフォルトの名無しさん
2010/10/19(火) 08:51:36使ってみる
CUIつまらんGUIでもやるか
wxなど使ってみる
重い処理を入れた、固まる
調べてみる、スレッド?排他?よく分からん
簡単な方法はないか、2chで聞いてみる(>>301)
コルーチンで対処出来るらしい(>>320)
マルチコアを生かしていないことにふと気づく
結論:マルチコア非対応のLuaはゴミ(>>416)
それに対する反論は一律していて
C/C++で書けよw
という内容なのだが
本人はLuaの軽量で高速、移植性があり柔軟で容易という思想はおろか
スレッド?排他?よく分からん
というレベルなので話が通じない
と俺予測してみた
0441デフォルトの名無しさん
2010/10/19(火) 10:21:37いいだしっぺの意図は、
「スクリプトのマルチスレッド実行」だろ?
反論してるやつらは皆そうみなした上での回答、
(「マルチスレッドはC側でするから別にスクリプトそのものをそうする必要はない」的な内容)
だぜ
0442デフォルトの名無しさん
2010/10/19(火) 11:03:23これがよく意味が分からんな
0443デフォルトの名無しさん
2010/10/19(火) 11:04:48>all platforms that have an ANSI/ISO C compiler
「マルチコアを生かす」プラットフォームに対応するわけがない。
Makefile には -ldl とか -lreadline とか書いてあるが、これでも御節介なレベル
0444441ではないが
2010/10/19(火) 11:57:54主観で翻訳すると
luaThread> lualibs[]の末席にでも加えてーな
一同> 無理、2軍(Lua Binaries)で実績作って来い
こんな感じかな
0445デフォルトの名無しさん
2010/10/19(火) 12:25:19python の thread モジュールとかみたいなのは無くても困らないだろ、ってことじゃね?
まあ、python(cpython) のは GIL なのでどっちにしてもマルチコア的には全然うれしくないわけだが。
仮に lua や squirre lをマルチスレッド化するとしても、ステートごと分離する以外だと、結局 GIL にするしか手はないよね。
スクリプト言語系でうまくマルチコアに対応した実行ができてるのは Haskell とかそっち系か、
あるいは、JPython とか JRuby のような、JavaVM 上でうごくやつらぐらい?
Xtal はよくわからん。詳しい人よろ。
0446デフォルトの名無しさん
2010/10/19(火) 22:51:14というか「プリエンプション」と「共有メモリ」の両方が有ると困るんだそうだ
だから「プリエンプション」がないコルーチン
または「共有メモリ」のないクラウド(笑)が流行る
0447デフォルトの名無しさん
2010/10/20(水) 07:55:07レベルでしょ。
0448デフォルトの名無しさん
2010/10/20(水) 11:21:16・入門Luaプログラミング
入門用として一冊買うならどっちがいい?
0449デフォルトの名無しさん
2010/10/20(水) 11:29:530450デフォルトの名無しさん
2010/10/20(水) 11:53:450451デフォルトの名無しさん
2010/10/20(水) 11:55:320452デフォルトの名無しさん
2010/10/20(水) 12:21:110453デフォルトの名無しさん
2010/10/20(水) 21:33:44スクレイピングを楽にするためにRubyを組み込んだアプリはあったな。
ようは用途次第だと思うが。
0454デフォルトの名無しさん
2010/10/20(水) 21:36:02ユーザーによる拡張を考えるならLuaはありえない
0455デフォルトの名無しさん
2010/10/20(水) 22:23:27( ・∀・) < Lua!!
⊂/ 9) \____
q( /
> >
0456デフォルトの名無しさん
2010/10/20(水) 22:39:140457デフォルトの名無しさん
2010/10/20(水) 23:01:15次のLuaのバージョンで世代別GCが実装されるらしい(C#が採用してるやつ)。胸が熱くなるな
0458デフォルトの名無しさん
2010/10/20(水) 23:57:57個人的には歓迎だけど、あれフットプリント大きくなりがちなせいで
組み込み系ではあんま採用されてないような。
なんとなくLuaには似合わない気がするなー。
0459デフォルトの名無しさん
2010/10/21(木) 00:23:00このスレの「組み込み」ってアプリケーションに組み込むスクリプト言語のことと思ってた
もしかして、マイコンの組み込みのような意味合いだったの?
0460デフォルトの名無しさん
2010/10/21(木) 00:32:23実際には lua 組み込んでるアプリけっこうあるけどね。ありえないってことはない
0461デフォルトの名無しさん
2010/10/21(木) 04:30:29http://luaforge.net/projects/lanes/
動的に複数LuaState作ってその間の通信しましょって感じのもの。
0462デフォルトの名無しさん
2010/10/21(木) 04:32:45これの Sample: のとこのコード見ると把握しやすいかも。
0463デフォルトの名無しさん
2010/10/21(木) 04:39:20したのあるけど、需要あるんかな?
バインドとboost_threadとか使い慣れてれば半日〜1日でできるような代物だし
>461 みたいなのもすでにあるだしで、要らない気はするが。
0464デフォルトの名無しさん
2010/10/21(木) 09:05:510465デフォルトの名無しさん
2010/10/21(木) 10:03:06C言語知らないとLua覚えるのは無駄ですか?
0466デフォルトの名無しさん
2010/10/21(木) 10:25:28基本的には無駄ですが
決して無駄にはしない、と言ってくれる人が現れたらその人の気分次第で変わります
0467デフォルトの名無しさん
2010/10/21(木) 11:59:400468デフォルトの名無しさん
2010/10/21(木) 19:35:180469デフォルトの名無しさん
2010/10/21(木) 20:17:26価値観は一様でなければ不変でもないので無駄かどうか分かる人なんていませんよ。
これでは実も蓋もありませんので
個人的な意見をつらづらと書き連ねてみる。
・素で使う(lua実行ファイルのみ)
初心者ならば基礎的な概念は学べるので無駄にはならない
が、あえて選ぶメリットはない。
・ありものを使う
・lua実行ファイル+拡張モジュールを汎用言語として使う
汎用言語ではないので、あえて選ぶメリットはない。
・組み込み済みアプリをスクリプターの立場として使う。
リファレンスを理解する事が大部分なので、必要に迫られてから腰を上げても遅くない。
・Cに組み込む(拡張する)
いい意味で枯れてるので面白みは無いかもしれないけど無難なところ。
・C++も理解
してないと面倒。
・C以外に組み込む
組み込めますがC組み込み前提の言語なので、旨みは薄れる。
Cに組み込む以上の知識と労力が必要。
0470デフォルトの名無しさん
2010/10/23(土) 22:40:49/ / パカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ Lua!!
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
0471デフォルトの名無しさん
2010/10/24(日) 02:08:53Memcachedを話せる永続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
0472デフォルトの名無しさん
2010/10/24(日) 02:19:24まだ流行ってるし、並列処理向けだし。普通にPythonやRubyでもいいとおもうけど。
0473デフォルトの名無しさん
2010/10/24(日) 11:09:470474デフォルトの名無しさん
2010/10/25(月) 07:56:58〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ Lua!!
彡、 |∪| /
/ __ ヽノ /
(___)
0475デフォルトの名無しさん
2010/10/25(月) 08:29:400476デフォルトの名無しさん
2010/10/25(月) 19:45:26組み込み系言語といえば普通逆だわ
0477デフォルトの名無しさん
2010/10/25(月) 20:46:490478デフォルトの名無しさん
2010/10/26(火) 01:27:18マジ簡単
0479デフォルトの名無しさん
2010/10/26(火) 07:48:46〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ Lua!!
彡、 |∪| /
/ __ ヽノ /
(___)
0480デフォルトの名無しさん
2010/10/26(火) 20:28:39少し前に試してみたが、組み込みやすいとは思わなかったな
Luaは別格としてもsquirrel,python,xtal以下
Rubyレベルじゃないかな?
というか、C/C++へ組み込みやすいかどうかという以前に
C/C++との相性は良くないよね
0481デフォルトの名無しさん
2010/10/27(水) 08:59:34そのうち地獄を見るよw
0482デフォルトの名無しさん
2010/10/27(水) 09:18:540483デフォルトの名無しさん
2010/10/27(水) 09:27:230484デフォルトの名無しさん
2010/10/27(水) 11:53:54短い間でしたがお世話になりました
0485デフォルトの名無しさん
2010/10/27(水) 22:35:43C/C++側に値を渡すのにいちいちスタックごちゃごちゃいじったりしなくていいから、相当楽だと思うけど。
0486デフォルトの名無しさん
2010/10/28(木) 01:39:38これC++でビルドするにはどーすればいいんよ
プリプロセスで__cplusplus定義したらエラーでまくり
0487デフォルトの名無しさん
2010/10/28(木) 08:04:09スタックなんて情報処理の基礎中の基礎じゃん
0488デフォルトの名無しさん
2010/10/28(木) 08:14:220489デフォルトの名無しさん
2010/10/28(木) 08:37:43バインダ使えよ
C/C++は使えないのでクリアしました
ループの予感w
0490デフォルトの名無しさん
2010/10/28(木) 13:33:46普通に使っても引数の渡し方としては直感的(>>487はそういう意味かな)だと思うし、
自分でラッパ書くのもそんなに辛くない。
0491デフォルトの名無しさん
2010/10/28(木) 13:36:19何の話をしてるのか書かれてないので一般論としてだが……
普通はコンパイラオプションに C++ としてコンパイルする指定がある。マニュアルかヘルプ読め。
あるいは、たいていのコンパイラは拡張子を cpp とか cc とかにしておくと C++ としてコンパイルしてくれる。
__cplusplus はコンパイラが自動的に定義するものでユーザが指定するものではない。
0492デフォルトの名無しさん
2010/10/28(木) 14:02:11あのtemplate使った気持ち悪い感じのやつじゃなくて
0493デフォルトの名無しさん
2010/10/28(木) 14:09:20SWIG
0494デフォルトの名無しさん
2010/10/28(木) 22:11:13使ったことある人の言葉とは思えない
0495デフォルトの名無しさん
2010/10/28(木) 23:30:55使ったことはあるが、大体、最初からバインダが同梱されている感覚かな
ただLuaのバインダとかと違ってテンプレートじゃなく文字列でバインドするから
その違和感かもしれんけど
テンプレート気持ち悪いって人は触ってみてもいいかもしれん
0496デフォルトの名無しさん
2010/10/29(金) 00:16:39AngelScriptだと何もしなくても関数の引数取得できて、返り値も渡せるよ。
例えばC++側にこんな関数があったら、
int FuncA(int n)
{
return n+3;
}
C++側でこうすれば
lpEngine->RegisterGlobalFunction("int FuncA(int)", asFUNCTION(FuncA), asCALL_CDECL);
スクリプト側でFuncAそのまま使えるしね。
0497デフォルトの名無しさん
2010/10/29(金) 00:23:51クールだよね
0498デフォルトの名無しさん
2010/10/29(金) 00:27:210499デフォルトの名無しさん
2010/10/29(金) 01:15:15コンパイル時に検出できた方が楽と考えるのはこのスレらしい
0500デフォルトの名無しさん
2010/10/29(金) 01:17:280501デフォルトの名無しさん
2010/10/29(金) 01:28:480502デフォルトの名無しさん
2010/10/29(金) 01:43:23使わないとダメでしょうか。
0503デフォルトの名無しさん
2010/10/29(金) 01:46:150504デフォルトの名無しさん
2010/10/29(金) 01:47:00バインドが楽なのは嬉しいけどオマケな気が
0505デフォルトの名無しさん
2010/10/29(金) 03:14:13デメリットは静的タイピングと独自バインダと実績が無くマイナーなところと
継承が面倒なところと連想配列がない(まだないのかな?)というところと・・・
>>502
ダメじゃないけど冗長になるよ
テンプレートベースのバインダはどれも似たようなもんだから
Lua以外のバインダを使ったときにも生かせるよ
C++を使っていてテンプレートを避けるメリットなんて無いんだから
いいきっかけだと思って触れてみるべきだと思う
>>503
生成破棄を繰り返すようなものだと
deleteを隠蔽のために
スクリプト側でさらに1枚噛ませるハメになるよ
0506デフォルトの名無しさん
2010/10/29(金) 11:56:02C++側でLuaのオブジェクトを操作するならスタックを使う
Luaのオブジェクトは数種類しかないからスタックは簡単
C++のオブジェクトは多種多様だからバインダはむずかしい
という認識で合ってるかな?
0507デフォルトの名無しさん
2010/10/29(金) 12:25:46lua のAPIがスタック操作ベースだから、バインダは中でばりばりスタック使ってるし、
lua のオブジェクトをC++側から操作する場合もラッピングしてしまえば別にスタック意識することはないし、
lua から C++ のオブジェクト操作も、記述ルールを限定すればバインダ自体もシンプルなもので十分だし。
0508デフォルトの名無しさん
2010/10/29(金) 12:46:47難しさと簡単さの両方を同時にアピールする必要があるからなあ・・・
難しいというと敬遠されるし
簡単だというと、じゃあ別にツール使わなくても簡単じゃね?という印象になる
0509デフォルトの名無しさん
2010/10/29(金) 14:29:38生産性で他社に差を付けられとんでもない浪費プロジェクトになる
0510デフォルトの名無しさん
2010/10/29(金) 14:33:590511デフォルトの名無しさん
2010/10/29(金) 14:46:46どんな時代だよw
0512デフォルトの名無しさん
2010/10/29(金) 14:52:290513デフォルトの名無しさん
2010/10/29(金) 15:34:39>>508
'簡単'という便利で曖昧な表現はやめよう
手間は掛かるが難易度は低い(LUAAPIのみ)
難易度は上がるが手間は省ける(バインダあり)
どちらも'簡単'と言えるでしょ
0514デフォルトの名無しさん
2010/10/29(金) 17:48:52手間というのはSOAPのようなものを実装する手間のことだろ
0515デフォルトの名無しさん
2010/10/30(土) 09:50:210516デフォルトの名無しさん
2010/10/30(土) 11:56:35その場で実行時にマシン語にコンパイルするという話では?
普通はスクリプトエンジンがソースをスクリプトを動かすVMが解釈できる形式にあらかじめコンパイルしておいたり、
もしくはソースのまま渡してその場でVMが解釈できる形式にしてから実行する
でもマシン語じゃないのを逐一解釈して実行すると「C言語より遅いじゃん?プギャー」厨がうるさいので、
それに対向するために、実行時にマシン語にして早くしようという試み
考慮されていれば、プロセッサ毎に最適化できるだろうけど詳しくは知らん
.netやJavaはJITついてるはず
0517デフォルトの名無しさん
2010/10/30(土) 12:49:49VMがインタプリタ的に解釈・実行するのと全く同じ実行結果を得られる
機械語表現を自動生成させて代わりに実行させる形態のこと。
ネイティブより速いか遅いかは結果論であって全然重要じゃない。
ちゃんと学びたいなら、このスレのレスを期待するより自分で勉強したほうが早いよ。
0518デフォルトの名無しさん
2010/10/30(土) 13:14:51恣意的なベンチマークには強いだろうけどメンバアクセスが増えると変わらなくなりそう
0519デフォルトの名無しさん
2010/10/30(土) 13:24:390520デフォルトの名無しさん
2010/10/30(土) 14:32:11あれJIT直接関係なくね
0521デフォルトの名無しさん
2010/10/30(土) 14:41:410522デフォルトの名無しさん
2010/10/30(土) 14:59:02ほんとに呼び出し元のコード内に展開する必要はないよ。
インタプリタでも普通に実装できる手法。
0523デフォルトの名無しさん
2010/10/30(土) 15:03:590524デフォルトの名無しさん
2010/10/31(日) 19:27:550525デフォルトの名無しさん
2010/11/01(月) 22:37:35って本はまだ出てないのかこれ?
電子書籍?
0526デフォルトの名無しさん
2010/11/02(火) 05:12:360527デフォルトの名無しさん
2010/11/04(木) 23:17:470528デフォルトの名無しさん
2010/11/06(土) 22:23:08OPC Diary ≫ Blog Archive ≫ MicrosoftのIronPython, IronRubyプロジェクトはMSのプロジェクトではなくなり、コミュニティのプロジェクトとなるようです。
http://opcdiary.net/?p=4466
IronRubyも死亡、、、
死亡と言ってもコミュニティに丸投げするみたいだが
0529デフォルトの名無しさん
2010/11/06(土) 22:51:36IronPythonプロジェクト内で開発されてたDLRが
.NET4.0で正式採用されたから、
分離されただけでしょ。
0530デフォルトの名無しさん
2010/11/06(土) 23:47:29玄人むけ小規模オフィスルーターを製造するYAMAHAがLuaを組み込んだよ。
各種動作をLuaで仕込んでおけるってさ。
これはちょっとうれしいね。
オフィスで使うもよし、自分の家で楽しんでもよし。
やっは小規模LANのルーターはYAMAHAだな!
0531デフォルトの名無しさん
2010/11/07(日) 03:09:550532デフォルトの名無しさん
2010/11/07(日) 03:10:28○ >>Jim Hugunin 乙 もうお前に用はない
く|)へ
〉 ヽ○ノ
 ̄ ̄7 ヘ/
/ ノ
|
/
|
/
DLR完成したからもうようなしなのかw
>>530
YAMAHAのルーターの公式ページ見たら素人に売る気無くてウケルww
http://www.rtpro.yamaha.co.jp/
0533デフォルトの名無しさん
2010/11/07(日) 03:17:17ブザー鳴らしたりLED光らせたり、わりとどうでもいい所までしっかり制御できるのねw
0534デフォルトの名無しさん
2010/11/07(日) 03:25:410535デフォルトの名無しさん
2010/11/07(日) 08:21:34ニコニコあたりで”演奏してみた”とか出るのが容易に想像できるな
0536デフォルトの名無しさん
2010/11/07(日) 23:45:59やってみようと思ったが、ルータ高すぎて手がだせねえww
0537デフォルトの名無しさん
2010/11/08(月) 00:00:26$Date: 2009/11/19 10:29:48 $
なんで今更話題になってるの?
Luaを使ってる日本人で
ttp://www.rtpro.yamaha.co.jp/RT/docs/lua/tutorial/library.html
このページを開いたことが無い人なんているのかね
0538デフォルトの名無しさん
2010/11/08(月) 02:25:30こんなの大した参考にならんだろ。
標準docのチュートリアル以下じゃん。
0539デフォルトの名無しさん
2010/11/08(月) 08:26:58天使とか永久に追いつけそうもないなこりゃ。
0540デフォルトの名無しさん
2010/11/08(月) 08:31:400541デフォルトの名無しさん
2010/11/08(月) 08:39:450542デフォルトの名無しさん
2010/11/08(月) 09:51:450543デフォルトの名無しさん
2010/11/08(月) 09:54:040544デフォルトの名無しさん
2010/11/08(月) 09:56:04SchemeのモジュールシステムってR6RSの?
0545デフォルトの名無しさん
2010/11/08(月) 10:20:56Perlの実装で使われてる短記法なんて今じゃ誰も使う人は居ないし、
Windowsプログラミングのはやりの頃に出回ったハンガリアン記法も、
今じゃせいぜいAPI周りだけだろ。
今はJava記法かな? C#もほぼ同様の記法だけど。
0546デフォルトの名無しさん
2010/11/08(月) 11:14:39先頭が大文字か小文字かの違いしかわからんw>Java推奨とC#推奨の記法w
個人的には・・・
・定型的、定数的なものは全て大文字で_区切り。
・変数は小文字スタート
・メソッド、プロパティーは大文字スタート
・引数には_末尾につける。
・ローカル変数は_を先頭につける。
こんなんが好きかなねえ。
0547デフォルトの名無しさん
2010/11/08(月) 11:18:11名前のセンスも丸投げなんだよ。
しかし、コードを一行も書かずに丸投げするわけではないから、信用がある。
0548デフォルトの名無しさん
2010/11/08(月) 14:18:17それ自体フレームワーク色が強いのとIDEサポートが重要だからだろ。
スクリプト言語では書くのが楽ならどうでもいい
0549デフォルトの名無しさん
2010/11/08(月) 15:02:47命名規則でIDE連携なんてクソJavaくらいだろ。
0550デフォルトの名無しさん
2010/11/08(月) 16:26:45どの辺が最悪なの?具体的に頼む
0551デフォルトの名無しさん
2010/11/08(月) 21:12:58C++出来ないんですね
Luaは命名規則が・・・
Cすら出来ないんですね
こんなところだろ?
0552デフォルトの名無しさん
2010/11/08(月) 23:30:50可変引数とかするときには便利だけど、引数固定のときはわざわざスタック使うのは面倒くさい。
0553デフォルトの名無しさん
2010/11/09(火) 00:20:120554デフォルトの名無しさん
2010/11/09(火) 00:28:33年表 http://www.levenez.com/lang/
0555デフォルトの名無しさん
2010/11/09(火) 00:32:42だからどうしたかね。
マイナー言語の割りには十分すぎるくらいの
ライブラリサポートがあると思うが。
0556デフォルトの名無しさん
2010/11/09(火) 03:00:080557デフォルトの名無しさん
2010/11/09(火) 03:16:020558デフォルトの名無しさん
2010/11/09(火) 07:37:52識別子って何を指してしるの?
標準で提供している関数名か?
それとも、forとかtableとか予約語のことか?
0559デフォルトの名無しさん
2010/11/09(火) 08:32:140560デフォルトの名無しさん
2010/11/09(火) 20:22:53猫でもわかるように親切に解説してる日本語サイトって無いですか?
0561デフォルトの名無しさん
2010/11/09(火) 20:31:57t["a"]=1
t[10]=50
で
t[10]=nil
とかやると要素削除してくれ処理系があるんだ
でもこれって正規の方法なのかな
0562デフォルトの名無しさん
2010/11/09(火) 21:32:220563デフォルトの名無しさん
2010/11/09(火) 22:22:26何が分からないのかが分からないが
http://sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html
内部的な実装が知りたいのならソースを眺めるのが一番だよ
>>561
要素削除してくれ処理系って何ですか?
日本語でお願い
0564デフォルトの名無しさん
2010/11/09(火) 23:12:47u(?)
nがゼロなら開放する
oがゼロだとmalloc的に新たにnだけ確保して返す
oがゼロじゃなければrealloc的にそのまま再利用したり、足りなければ再確保して値をコピーして返す
uって何に使うの?
0565デフォルトの名無しさん
2010/11/10(水) 00:12:33allocという関数を作った本人に聞いたら?
0566デフォルトの名無しさん
2010/11/10(水) 00:24:290567デフォルトの名無しさん
2010/11/10(水) 01:10:48それならlua_newstateを参照すると良いよ
タグジャンプやGrep、コピペのやり方ぐらいは先に覚えておくべきだと思うがね
0568デフォルトの名無しさん
2010/11/10(水) 11:46:56c++のSTLに相当するような標準処理関数群ぐらい用意してくれよ
0569デフォルトの名無しさん
2010/11/10(水) 11:55:53本末転倒。
そういうのはベースとなるアプリ側で整備すべき。
だけどSquirrelだと辛うじてファイル入出力や
浮動小数点演算ができる程度の標準ライブラリをオプションで用意してるわけで、
整備されてるに越したことはないわな。
0570デフォルトの名無しさん
2010/11/10(水) 12:41:41むしろLuaは以前みたいに標準ライブラリは専用の別モジュールに分かれていて欲しいくらいだ
0571デフォルトの名無しさん
2010/11/10(水) 14:06:08テンプレートは動的なポリモをなくすためだけの存在。
整理も何もない。高速化するだけ。
0572デフォルトの名無しさん
2010/11/10(水) 14:07:220573デフォルトの名無しさん
2010/11/10(水) 14:13:07そもそもLuaは型を持たない動的言語なわけだが?
0574デフォルトの名無しさん
2010/11/10(水) 14:26:05最適化しやすいだろ
0575デフォルトの名無しさん
2010/11/10(水) 14:29:070576デフォルトの名無しさん
2010/11/10(水) 14:48:51どういう話の広がり方だw
0577デフォルトの名無しさん
2010/11/10(水) 16:28:22揚げ足を取るようだが、568自身が「未整理」と言ってるわけだ。
それを前提にスレを読み直せば、わかるな?
0578デフォルトの名無しさん
2010/11/10(水) 18:55:31識別子のセンスが最悪
未整理すぎる
型が無い
いちゃもん化してきてるぞ
ASer頑張れ
0579デフォルトの名無しさん
2010/11/10(水) 23:55:07>>568はテンプレートが欲しいわけじゃないだろ
0580デフォルトの名無しさん
2010/11/11(木) 00:06:05まあこれは事実なんでしょうがない。
>型が無い
個人的には通常の型+何でも入るboost::anyみたいなオブジェクト、って組み合わせが好き。
0581デフォルトの名無しさん
2010/11/11(木) 08:20:42でてますね。
Squirrel 3.0 でどなたか本出してください。
0582デフォルトの名無しさん
2010/11/11(木) 09:51:500583デフォルトの名無しさん
2010/11/11(木) 09:57:460584デフォルトの名無しさん
2010/11/11(木) 11:33:180585デフォルトの名無しさん
2010/11/11(木) 15:04:140586デフォルトの名無しさん
2010/11/11(木) 18:02:49非公式なライブラリも基本的にはCスタイル
そうでないのはラッパーで名前を踏襲してるだけ
ってのが殆どじゃないかな
0587デフォルトの名無しさん
2010/11/11(木) 23:16:41> >スタック操作がめんどくさい
> まあこれは事実なんでしょうがない。
どんな環境を想定してるの?
> >型が無い
> 個人的には通常の型+何でも入るboost::anyみたいなオブジェクト、って組み合わせが好き。
それがまさにコンパイラ言語とLLとの組み合わせなんだけどね
0588デフォルトの名無しさん
2010/11/12(金) 00:56:52Luaみたいな動的言語使うんだね。
Webアプリやネトゲやアップデート可能な機種ならアップデートリリースすればいいんだろうけど。
0589デフォルトの名無しさん
2010/11/12(金) 01:00:460590デフォルトの名無しさん
2010/11/12(金) 01:02:30確率が全然違う
0591デフォルトの名無しさん
2010/11/12(金) 01:07:43>どんな環境を想定してるの?
LuaからC++側の関数呼び出す時と、その関数からLuaへ値を返す時。
0592デフォルトの名無しさん
2010/11/12(金) 01:13:370593デフォルトの名無しさん
2010/11/12(金) 01:18:11失笑の予感。
0594デフォルトの名無しさん
2010/11/12(金) 01:25:41平気で使うよ
C/C++に静的言語を埋め込んで誰得ってなもんだ
>>591
びびった
0595デフォルトの名無しさん
2010/11/13(土) 14:10:07別にゲームだったらハングしても大した問題じゃないし、新しい技術に極端に消極的な方が問題。
0596デフォルトの名無しさん
2010/11/13(土) 14:12:520597デフォルトの名無しさん
2010/11/13(土) 14:14:350598デフォルトの名無しさん
2010/11/13(土) 14:18:420599デフォルトの名無しさん
2010/11/13(土) 15:14:17|
|
|
| /  ̄  ̄ \
(=) /、 ヽ
J >>595 |・ |―-、 |
q -´ 二 ヽ |
ノ_ ー | |
\. ̄` | /
O===== |
/ |
/ / |
0600デフォルトの名無しさん
2010/11/13(土) 22:40:18〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ Lua!!
彡、 |∪| /
/ __ ヽノ /
(___)
0601デフォルトの名無しさん
2010/11/19(金) 21:36:07lua-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には不似合いな気がする。
0602デフォルトの名無しさん
2010/11/26(金) 18:58:000603デフォルトの名無しさん
2010/11/28(日) 03:26:24>スクリプト言語(Lua)とC++を利用して構築する業務が中心です
スクエニもSquirrel止めたのかしら
0604デフォルトの名無しさん
2010/11/28(日) 03:48:52別の部分で相当話題になってるよねそれ
0605デフォルトの名無しさん
2010/11/28(日) 04:41:530606デフォルトの名無しさん
2010/11/28(日) 08:23:380607デフォルトの名無しさん
2010/11/28(日) 09:41:250608デフォルトの名無しさん
2010/11/28(日) 09:49:48そもそも内製の言語を使っててSquirrelが例外って感じだったような
まぁ、ラインごとにツールが違うとかいうのはよくあること。
0609デフォルトの名無しさん
2010/11/28(日) 13:09:130610デフォルトの名無しさん
2010/11/28(日) 13:19:050611デフォルトの名無しさん
2010/11/28(日) 17:01:050612デフォルトの名無しさん
2010/11/28(日) 17:36:58Lua自身の採用実績と合わせ技で「多少使いにくくても……」と思わせられる。
あと最近慣れた。
0613デフォルトの名無しさん
2010/11/28(日) 18:30:490614デフォルトの名無しさん
2010/11/28(日) 21:58:26その不便さに慣れる、というのは本末転倒のような気がするな。
0615デフォルトの名無しさん
2010/11/28(日) 22:02:310616デフォルトの名無しさん
2010/11/28(日) 22:02:540617デフォルトの名無しさん
2010/11/28(日) 22:25:04と言えばWeb系の方々にも馬鹿ウケ
しかしビット演算は組み込みにしてくれ5.2ェ…
0618デフォルトの名無しさん
2010/11/29(月) 06:10:500619デフォルトの名無しさん
2010/11/29(月) 08:13:01( ・∀・) < Lua!!
⊂/ 9) \____
q( /
> >
0620デフォルトの名無しさん
2010/11/29(月) 11:36:590621デフォルトの名無しさん
2010/12/02(木) 01:25:43>うちは lua じゃなくて squirrel つかってるけど、コルーチン持ちの言語使うと UI 用の作業工数が激減するのは確かではある
これ詳しく知りたいです。なんで?
0622デフォルトの名無しさん
2010/12/02(木) 02:39:22エンジン側で、コルーチンの中断のタイミングで画面更新するように
しておけば、画面遷移用の処理を言語のステートメントつかって直線的に書ける。
パーツのフェードインアウトの類は for で必要なフレーム数でまわせばいい。
入力待ちとかは while とかつかってキー入力をポーリングすればいいし、
画面を分ける必要があるなら普通に if や switchで分岐すればいい。
画面更新したいタイミングで適宜コルーチン中断用の命令をはさむだけ。
遷移用のステートマシンかかなくてすむってだけで大幅に工数さがるし、
なにより修正が楽。たとえばボタンと画面遷移を追加して、とか頼まれたとき、
ステートマシンだと、ステート数ふやしたりで頭ひねるはめになるけど、
コルーチンだと、画面の処理をコピペしてきて間に挟んだらそれで完了
0623デフォルトの名無しさん
2010/12/02(木) 02:47:04そうそう、設定ファイルをスクリプトで書きたいとかそれよりも
もうこれが全てなんじゃないかとw
0624デフォルトの名無しさん
2010/12/02(木) 03:33:49UI系とか、アニメ動作とか、単発で使い捨てするステートとの相性は笑っちゃうぐらい良い>コルーチン
0625デフォルトの名無しさん
2010/12/02(木) 16:25:02ゲームって何げにUIのコード量が多いんだよな。
行数で見たらゲームエンジン全体の4割くらい占めてる。
オブジェクト.メソッド+UIスタックという形で普通に実装してたんだが、
コルーチンを使うと楽になるのか。試してみるわ。
0626デフォルトの名無しさん
2010/12/05(日) 00:25:04( ・∀・) < Lua!!
⊂/ 9) \____
q( /
> >
0627デフォルトの名無しさん
2010/12/05(日) 12:00:41スレットの同期にLuaをあわせることって、簡単ですか?
あと、Lua上でのキャラクターの識別などは、どうするのがスタンダードでしょうか?
教えていただけると、幸いです。
0628デフォルトの名無しさん
2010/12/05(日) 12:09:320629627
2010/12/05(日) 12:12:58このゲームはMMORPGで、現在はアバターチャットと呼べる程度までできています。
土台の部分は、C++で書かれています。
キャタクターやNPCは、データ制御用の関数を持ったオブジェクトになっています。
それとは別に、キャラクター制御の関数を持ったオブジェクトを用意しています。
キャラクター制御用オブジェクトは、いくつかのスレッド用の関数を持ち、
スレッドから呼び出される関数により、役割が変わります。
こういう実装でLuaを載せる場合、どうするのがいいでしょうか?
0630デフォルトの名無しさん
2010/12/05(日) 12:13:51lua 自体はスレッドはなにも配慮してないので、C側で同期とって、それで同期とれたタイミングで呼び出す、とか
そういった構造が必要。現状 C側で同期がとれてるポイントがあるのならそこから呼び出す分には何の問題もないかと
キャラクターの識別ってのも意味不明だが、C側のオブジェクトに合わせればいいんでは?
0631デフォルトの名無しさん
2010/12/05(日) 12:17:47lua を動かすことになる制御スレッドから自由にメソッド呼ぶだけでいいんでは
0632627
2010/12/05(日) 12:56:43このサーバーは、データ制御用オブジェクトのリングバッファおかげで、
データの整合性が取れていて、スレッド同士の間では同期を必要としないです。
キャラクター制御用のオブジェクトも配列化されていて、
そのオブジェクトの関数をスレッド化する限りは、メソッドからのスレッドの識別は容易です。
ただ、Luaの仕様の半分も分かっていない状態なので、
処理の途中での割り込み方法や、スクリプトの並列実行は可能かどうか、
スクリプトの強制中断は可能かどうか、C側へのメソッドでの文字列の受け渡しなど、
その他色々な細かいことが知りたいです。
0633デフォルトの名無しさん
2010/12/05(日) 13:41:27そんな難しくないから。
・lua のvmはスレッドセーフではない。単独VMを複数スレッドから扱う場合はGIL処理が必要
・lua は単独のスレッドで駆動させるだけで使うのがおそらく主流。他のスレッドから呼び出したい場合はスレッド間通信で依頼を出して結果を待つ、とかする
・lua のスクリプトの実行系は複数持てる(luaではこれをスレッドと呼んでいる。用語の混乱に注意)
・それぞれのluaスレッドの実行を途中で(例えば別のCスレッドから)強制中断する機構はない。
必ず呼び出し終わるまで待つ必要がある。
・luaスレッドの実行をスクリプト側から自発的に一時中断することは可能でこれを「コルーチン」と呼ぶ。コルーチンで中断されたスクリプトはつづきから再開できる
・型は汎用型でその中に文字列がある。普通のC文字列なのでCにはそのままわたせる
0634627
2010/12/05(日) 14:14:52あ、ありがとうございます。
VMは、スレッド間で共有しない予定なので、スレッドセーフがなくても大丈夫です。
色々気になることがわかりました。とりあえず、テストしてみようかと思います。
あと、もう一つ質問なのですが、C++のクラスの配列で、メンバーの関数内から、
別のメンバー関数をLuaに登録したとして、正しく呼び出せますでしょうか?
0635デフォルトの名無しさん
2010/12/06(月) 19:39:32ヘッダーは読めるのですが、関数が見つからないといって、コンパイルできません。
コマンドラインでは、動いてくれるのですが、何が悪いのでしょうか?
0636デフォルトの名無しさん
2010/12/06(月) 19:49:53Linuxerのくせに要領を得ない質問すんな。
ライブラリのリンクが出来てないんじゃね。
ライブラリのファイル名は分からないけど、例えばliblua.so とかかな。
0637デフォルトの名無しさん
2010/12/06(月) 21:00:58調べて色々試してみたら、コンパイル時のオプションが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'
という警告が一個だけ出たけど、無事コンパイルできて、動いたよ。お騒がせしました。
0638デフォルトの名無しさん
2010/12/08(水) 11:53:40Tir Web Framework: Tir Web Framework
http://tir.mongrel2.org/home
0639デフォルトの名無しさん
2010/12/08(水) 19:01:21yieldによる実行の中断を活用したUIのサンプルコードは
どこかで入手できませんでしょうか。
0640デフォルトの名無しさん
2010/12/08(水) 22:56:20コルーチンがあるスクリプトで書くと楽になるって感じじゃないのかね。
0641デフォルトの名無しさん
2010/12/10(金) 09:18:27RCだすのかなぁ
0642デフォルトの名無しさん
2010/12/10(金) 15:51:030643デフォルトの名無しさん
2010/12/11(土) 02:18:48api impovements
performance tuning
additional documentation
公式のトップにはこう書いてあるけどざっくりしすぎだねこれじゃ
細かいのはフォーラムみてるといろいろあると思う
テーブルをJSON互換の記述形式で書けるようになるとかあったと思う
0644デフォルトの名無しさん
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 のように名前が出ないのが悲しかったんだろうか^^;
0645デフォルトの名無しさん
2010/12/11(土) 03:53:19これ、地味に重要な仕様変更だね。
squirrel はインスタンスのメソッドはクラスのそれを実行時に直接
呼び出ししてるので、インスタンス生成後にもメソッドを交換できることに
0646644
2010/12/11(土) 03:58:47ローカル変数はいいかも>自由変数のレキシカルスコープ化はいいかも
0647デフォルトの名無しさん
2010/12/12(日) 23:27:130648デフォルトの名無しさん
2010/12/13(月) 11:50:37>>>274の言うとおり、デフォルトだとセーブロード処理が難しかったので
>Luaの内部にも手を入れてる。
どういう風に手を加えたのかずっと気になっている・・・
それと、パッチ当てても同じセーブデータを使えるようにするのはやはり不可能だろうか
VisualStudioでエディットコンティニューって言うのがあるけど、あれと同じように出来ない?
0649デフォルトの名無しさん
2010/12/13(月) 18:32:120650デフォルトの名無しさん
2010/12/13(月) 20:28:570651デフォルトの名無しさん
2010/12/13(月) 21:44:51YAMAHAのルーター屋さんはどうすんの?
0652デフォルトの名無しさん
2010/12/13(月) 21:45:310653デフォルトの名無しさん
2010/12/13(月) 22:43:050654デフォルトの名無しさん
2010/12/13(月) 22:46:180655デフォルトの名無しさん
2010/12/15(水) 06:32:41(
0656デフォルトの名無しさん
2010/12/15(水) 06:35:34UIの処理書くのは無名関数やメソッドがオブジェクトとして取り回せる言語なら
それだけでもイベントドリブンのコードが書きやすいから恩恵受けられるけど、
yieldバリバリなの書き方は気になるな
アニメーション部分か?
0657デフォルトの名無しさん
2010/12/15(水) 23:00:070658デフォルトの名無しさん
2010/12/16(木) 00:17:070659デフォルトの名無しさん
2010/12/16(木) 09:17:41なんでそんな圧迫面接みたいな。
0660デフォルトの名無しさん
2010/12/16(木) 11:13:52コルーチンで楽になるんだけど、
中断した状態自体を別のオブジェクトで管理しないといけないから
結局あまり楽になった感じがしないんだよね。
コルーチン内で呼び出した別の処理中で中断したりというのは出来ないわけだし。
(それができるのはStackless Pythonのマイクロスレッドとか)
0661デフォルトの名無しさん
2010/12/16(木) 16:56:340662デフォルトの名無しさん
2010/12/16(木) 18:12:35Luaのはできたんじゃねえの?
それができないのは無印Pythonのジェネレータだった気がするが
0663デフォルトの名無しさん
2010/12/16(木) 19:19:530664デフォルトの名無しさん
2010/12/16(木) 20:36:02どういう状況だろう。
詳しく頼む。
0665デフォルトの名無しさん
2010/12/17(金) 10:14:40今までならデータドリブンやちょっとしたDSL(独自言語)でやってたら、
そのデータの構造体の中の位置やデータそのものを保存しとくわけだろ
Luaのときはコルーチンで書くとルーチンの途中でセーブが起きる。
ロード時はルーチンの途中から始めないといけない。
VMの状態を保存して途中から始められることができるのがスクリプトの機能としても要求される。
もちろん、プログラム側もそれを考慮した書き方しないといけないよな
0666デフォルトの名無しさん
2010/12/17(金) 10:17:22上の例のDSLと変わらんか・・・
ネイティブスレッドでの動作だったり仮想マシンの中断、復元とはまた違うな
0667デフォルトの名無しさん
2010/12/17(金) 18:45:030668デフォルトの名無しさん
2010/12/18(土) 10:33:34なんでこんなことやってのか不思議だったんだが、VMの状態を
保存してるのかな。フラグは分離しとかないバグ取りで死ねそう
なもんだけど。
0669デフォルトの名無しさん
2010/12/19(日) 08:32:33〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ Lua!!
彡、 |∪| /
/ __ ヽノ /
(___)
0670デフォルトの名無しさん
2010/12/19(日) 09:19:130671デフォルトの名無しさん
2010/12/19(日) 11:20:170672デフォルトの名無しさん
2010/12/19(日) 23:00:510673デフォルトの名無しさん
2010/12/19(日) 23:46:300674デフォルトの名無しさん
2010/12/19(日) 23:57:310675デフォルトの名無しさん
2010/12/20(月) 11:07:16MIT License自体が面倒ってこと?
著作権表示や本許諾表示に抵抗があるってことかな。
0676デフォルトの名無しさん
2010/12/20(月) 11:14:15ミドルウェアとかで金はらえる先ならOKなのにフリー(無償、の意)だと難色を示される不思議
0677デフォルトの名無しさん
2010/12/20(月) 12:30:47>>676
最近ライセンス表示画面を持つコンシューマゲームが増えてきたと思ってたんだけど、
所によっては難しいのかもね。
0678デフォルトの名無しさん
2010/12/20(月) 14:15:22じゃあたくさん人に使ってもらうためには
いろんなライセンス形態用意しとくのが良いのかな?
0679デフォルトの名無しさん
2010/12/20(月) 17:46:32>>665
もっと単純で、中断したコルーチン自体の管理の話。
セーブ/ロードについてはセーブできる箇所(通常クリック待ち)に到達した時点で
遷移状態を含めてそのままシリアライズしてるからさほど難しくはない。
(動作中のコルーチンではなくその初期化パラメータを保持したオブジェクトを用意しておく)
コルーチンはなるほどひとつの関数内の処理を中断できるけど、
各Widgetごとにイベントハンドラを定義するならその数だけ増えてしまうし
それらが複合的にアニメーションしたり状態変化したりするのって
そんな単純化出来る話かねえ、と。
0680デフォルトの名無しさん
2010/12/20(月) 18:03:06保存の必要性がある時点で、VMのステートごと保存しないといけないから急に大がかりになる。
0681デフォルトの名無しさん
2010/12/20(月) 18:29:17うまく伝わらなかったようだ。ごめん。
セーブ/ロードで出入りする情報の話と、
UI遷移の話は別個に考えてほしい。
UIの遷移はオレもひょっとするとコルーチンで書くと楽なんじゃないかとは思ってるんだけど、
コルーチンって結局中断中の状態を変数として外側で持っておかないといけないよね。
じゃないと復帰できないから。
で、コルーチンがひとつしかないならそれでいいんだけど、
実際にはウィジェットの数だけ発生しうるのにどうするんだろう、というわけですよ。
0682デフォルトの名無しさん
2010/12/20(月) 18:55:20どんな名前だろうと、途中で中断しないように作れば、中断する必要はないと思うが。
0683デフォルトの名無しさん
2010/12/20(月) 19:18:23「そういうところにはコルーチンは別に役に立たないから使わない」、で終了なのではないかと……
「中断中の状態を外側でもっておく必要が無い」ところでだけ使って、それが便利、って話なのに、
その前提条件をはずれた状態で「どうするんだろう」と言われても、その、なんだ、こまる
なお、lua だと ttp://luaforge.net/projects/pluto とかVMまるごと保存してくれるライブラリあるけど、
実際使ったことないのでどのくらい使えるものかは知らない。
保存されるデータサイズ不定だから、それが許容される用途でないと使うのは難しいんではないかと。
0684デフォルトの名無しさん
2010/12/20(月) 19:52:50それともスクリプト自体をコルーチンと見て実行するやつなのかどっちなんだろう。
Luaで言うと、前者がcoroutineで作るやつ、後者がグルー関数内でlua_yield呼び出して止めるやつ。
0685デフォルトの名無しさん
2010/12/20(月) 20:48:18たとえば coroutine.yield は中で lua_yield 呼んでるだけ。
スクリプトだけでコルーチン制御するのは、エラーで止まったときの対応とかめんどくさいから俺はやらない。
複数のコルーチンを順次実行できるような処理をシステム(ゲームエンジンとか)側に内包したほうが良いと思う
0686デフォルトの名無しさん
2010/12/21(火) 11:00:51エロイ人出版よろしくお願いします。PDFだとなお嬉しいです。
0687デフォルトの名無しさん
2010/12/21(火) 11:06:26コルーチンって初期化した段階で別の変数に入れるだろ?
その話をしてるだけなんだけど。
それって中断中の状態を外側で持っているわけだよね。
0688デフォルトの名無しさん
2010/12/21(火) 12:00:51理解した。根本的なとこで話がずれてた。
確かに個々のコルーチンをそれぞれの場所で実行しようとしたら数が増えると管理しきれなくなるね
対応策としては以下のようなものがあるかと
1. いわゆる「タスクシステム」的な組み方をする
・基底になるオブジェクトに共通的にコルーチンのスレッド変数を持たせる
・それらのオブジェクトを総なめしてコルーチン部を実行するような機構を作る
ゲームなりウィジェット的な処理なりなら、オブジェクトを総なめするような処理は
たいていどこかに一ヶ所はあるはずなので、そこで統一的に実行するようにする。
2. 専用のスレッド実行部に集約させる
コルーチンスレッドを保持した変数は、生成/破棄部で集約して、常に一つのリストに保持させる。
そのスレッドリストをなめて全部のスレッドを1段階だけ実行するような処理を作っておいて、
それを定期的に呼び出すようにする
こうしておくと、スクリプト的には、スレッドは勝手に動いてくれるように見えるので特に処理を気にすることはない。
この処理部分でいわゆる sleep() と、スレッド間の待ち合わせとかも実装できるので、かなり自由度があがる
個別のスクリプトからは完全独立するので、処理は全部Cで書いてエンジン側にうめておくこともできる。
squirrel での実装例としては以下のようなものがある。
・sqrat に sleep 機能を含むスレッド実行集約の例がある。これは登録自体は手動
・ttp://ruriko.denpa.org/201011a.html#0401 が thread実行機構をエンジン内に持つように実装してる。
関数を渡して Thread クラスのインスタンスを生成するだけであとは勝手に動く
0689デフォルトの名無しさん
2010/12/21(火) 14:19:03詳しい解説ありがとう。
2つに分けて質問してくれてるが、これはほぼ同じ概念を2つの段階で説明してるようなものだな。
ようするにネイティブスレッドがOS側で管理されるように、
コルーチンの実行制御を専用のサブシステムに委託することで
マイクロスレッド的な運用により近づけるということだよね。
うーん。元々各種サブシステムの更新制御をタスクシステム化してるので、
どうやって組み合わせるべきか悩みどころだなぁ。
毎フレーム subsytem.update()が呼び出される仕組み。
タスクは単なるリストではなくて固定の整数値を登録時に運用側が制限する形なので
こういった暗黙的な運用とはやや相性が悪い。
とはいえ、少し改良すればマージして両方扱えるようにすることも可能なような気がしてきたよ。
どうもありがとう。
0690デフォルトの名無しさん
2010/12/21(火) 14:20:540691デフォルトの名無しさん
2010/12/21(火) 14:52:49最終的にやることは同じなんだけど、処理部を個々の「タスク」に分配するか、一つグローバルにもつか、の差で分けたつもり。一応。
ある案件で、既存の「タスクシステム」に squirrel をつっこんだときは、
グローバルスタイルの squirrelスレッド処理一式を、そのシステムでの
一つの「タスク」としてくみ入れる形で既存の他のタスクとの整合をとった。
個別のタスクと関連した部品部から呼び出すスクリプト群は暗黙に動作することになるけど、
概念的には、「実行中のスクリプトの :suspend() までが、今のフレームで動作する」
となるので、特に他と混乱を起こすことはなかった。
タスクの処理順番を念頭においておく必要があるくらいかな。中途ではさむと混乱するから、
squirrel タスクの実行は先頭、または、最後尾にしておいて、スクリプトはそのタイミングで
動作する、ってのを周知しておく必要はある。
0692デフォルトの名無しさん
2010/12/21(火) 15:39:48関数でも、オブジェクトでも、コルーチンでも、
変数に入れて管理すれば、全部同じことなのになぁ。
そもそも、
関数はクラスに入れる、関数は変数には入れない
というOOPがキチガイじみている。
0693デフォルトの名無しさん
2010/12/24(金) 18:39:32どんどんLuaでやることが増えてもうC++でやることが
描画と衝突判定とファイル解凍ぐらいなんだけどそんなもん?
0694デフォルトの名無しさん
2010/12/25(土) 14:58:29そんなもんじゃね?(描画と衝突判定とファイル解凍だけになるかはゲームによりけりだと思うが)
速度的にクリティカルな部分やOSとの細かいやり取りは低水準言語で、
楽に書けて実行できる部分はスクリプトでなんていうのは
ゲーム以外でも見かけるよ
0695デフォルトの名無しさん
2010/12/25(土) 14:59:40そもそもLL系の言語とそのライブラリがそんな感じじゃねーかw
0696デフォルトの名無しさん
2010/12/27(月) 04:03:40プラグインはpluginディレクトリにLuaファイルを置いてもらうような形式で、
それで、読み込んだLuaコードに制約を持たせたいと思っています。
指定したファイル以外はファイルアクセス禁止にさせたいんです。できますでしょうか?
例えば、Luaのファイルアクセス系関数を全部無効にして、C++側で用意した独自ファイル操作関数を経由する形はできますか?
0697696
2010/12/27(月) 04:07:51他言語でいうeval()やsystem()なんていう関数も無効にしたいです。。。
0698デフォルトの名無しさん
2010/12/27(月) 04:08:420699696
2010/12/27(月) 05:20:490700デフォルトの名無しさん
2010/12/27(月) 05:53:03print関数を例にすると
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);
0701デフォルトの名無しさん
2010/12/27(月) 10:19:37lua でも squirrel でもそういった機能はコア機能ではなくライブラリなので、
それらの関数を登録しているところを探して改造したりつぶしたりするだけだろうて。
0703デフォルトの名無しさん
2010/12/28(火) 00:24:21#ifdef にしとけば svn でのマージもまず失敗しないよ。
わざわざ起動時に無駄な登録処理+削除処理がはさまるほうがいやだってほうが多数派だと思う。ここだと。
0704デフォルトの名無しさん
2010/12/28(火) 01:29:470705699
2010/12/28(火) 01:54:02コア機能ではなくとも標準ライブラリなんだからそのまま使おうよ
printf関数を潰すのにstdio.hに手を加えたり
oreorestdio.hを用意する人はいないでしょ?
潰したい機能が明確で後々変更することも無いならそれでもいいけど
そうでない場合は、ちょっとした修正のたびにリビルド必須になるよ?
plugin以外の目的でスクリプトを利用したくなったりしたらどうするの?
グローバルなフラグを用意するの?排他も必要になるよ?
pluginという利用特性上
初期化済みのVMをpoolしておけるので
ローディング時のコストなんて気にするものじゃないでしょ
スクリプト言語の利点を生かそうぜ
0706デフォルトの名無しさん
2010/12/28(火) 02:50:29まるごとメモリ上で無駄になるライブラリって気にならない?
>例えば、Luaのファイルアクセス系関数を全部無効にして、C++側で用意した独自ファイル操作関数を経由する形はできますか?
こういう標準ライブラリ使いたくないんだけど的要望に対してはもっとも適切な回答だと思います。はい。
0707デフォルトの名無しさん
2010/12/28(火) 04:33:13ならないな。
生産性とかパレートの法則って聞いた事ない?
そういったネガティブな理由による削る作業は最終手段だよ。
てか、運用前の段階で標準ライブラリを削るほどカツカツな状況を想定するなら
色々規制しなければ信用ならんようなプラグイン作者に間口を用意する事すらしないよね?
0708デフォルトの名無しさん
2010/12/28(火) 09:40:530709デフォルトの名無しさん
2010/12/28(火) 09:41:03俺はこの手の言語の「標準ライブラリ」はサンプルでしかないと思ってるので以下略。
0710デフォルトの名無しさん
2010/12/28(火) 10:22:34あ、一応。ファイル系のライブラリ(io/file)は、もともと実装側で切り離し可能にはなってる。
system とか相当は load, loadfile, loadstring あたりになるけど、これはベースライブラリの一部なので、
削るか口を起動後つぶすかが必要。
0711デフォルトの名無しさん
2010/12/28(火) 11:50:22evalもダメ
systemもダメ
もちろんpackageもダメ
その理由がプアな環境だとすると
反復もダメ
テーブルもダメ
stringもダメ
となるが、Luaを選ぶ意味はあるのだろうか?
0712デフォルトの名無しさん
2010/12/28(火) 13:22:37誰もそんな話はしていない
0713デフォルトの名無しさん
2010/12/28(火) 18:41:44デフォルトのファイル操作関数が使えなかったりするな。
0714デフォルトの名無しさん
2010/12/29(水) 21:50:210715デフォルトの名無しさん
2010/12/29(水) 21:53:14それらが必要に応じて取捨選択できるってことでしょ。
そうでないと組み込み用途とはいえ、こんなにライブラリが貧弱なスクリプト言語使おうと思わないよ
標準のライブラリやオプソのライブラリ組み込んで楽したいなら、組み込みも考慮されてるPythonなり使えばいい
でもLuaを選ぶということは制限された環境だったりあえて制限したいわけだよ
今時ガラケーでさえJava VMが制限されて乗ってんだぞ
0716デフォルトの名無しさん
2010/12/30(木) 02:20:18701さん登場以降のやり取りは
カッツカツな環境という(質問主は一言も言っていないが)
条件付けがあってのものだよ
0717デフォルトの名無しさん
2010/12/30(木) 06:19:53これに関してはインターフェイスを合わせられるならLua標準ライブラリの関数を上書きしていけると思う
合わせられないなら標準ライブラリを使わず自前関数を使ったり、そもそもスクリプトに直接ファイルアクセスを許さず
実装が管理して、それにアクセスさせたり、とかか。>>713の通り、自前でファイル読み込みを最適化するのがほとんどだろうし。
ただ、Luaがエラー処理に普通にfopen系を使ってたりするんでここらへん頭痛い。これどうにかならんかな。
あとsetjumpも環境によって駄目だったりする。これのほうが頭痛いかもしれん。
0718デフォルトの名無しさん
2010/12/30(木) 06:39:540719デフォルトの名無しさん
2010/12/30(木) 07:22:31>fopen系列が使えない環境は多い
ANSI-Cにすら準拠していない環境なのにLuaを組み込むの?
"使えない環境"ではなく"使える立場にない"ってだけじゃない?
0720デフォルトの名無しさん
2010/12/30(木) 08:58:46ということすら想像できないの? 馬鹿なの? 死ぬの?
0721デフォルトの名無しさん
2010/12/30(木) 11:08:59ANSI-Cにすら準拠していない環境だがLuaを組み込んでいる
という実装実績例を出してもらえない?
自分の足りない頭ではペイすると思えないので妄想の域を出ないんだ
0722デフォルトの名無しさん
2010/12/30(木) 11:34:52そういう環境で普通にfopenとか使うのが普通とは思えないんだけど。
必死にANSIANSI言ってるけど、言語が標準準拠してるかどうかということと、
ライブラリが全機能フルに使えるかというのは普通分けて考えると思うんだけど。
0723デフォルトの名無しさん
2010/12/30(木) 11:36:50曖昧だった前提条件を各人の都合のいいように狭めて議論するのやめなさい
0724デフォルトの名無しさん
2010/12/30(木) 13:02:55fopenが使えない=非ANSI準拠という前提自体が間違ってるわけだが
0725デフォルトの名無しさん
2010/12/30(木) 13:24:110726デフォルトの名無しさん
2010/12/30(木) 13:52:38あぁ、やっと理解できたわ。
696の質問内容を前提だと
プラグインによる拡張はOKよ、でも'標準'ライブラリに手を加え下手すりゃバイト単位で削る厳しい環境だよ
プラグインはpluginディレクトリにLuaファイルを置いてもらうような形式、でもfopenは使えないよ
で意味不明だが
前提条件も無く単発で
'標準'ライブラリに手を加え数KB、下手すりゃバイト単位で削る厳しい環境もあるよ
fopenが使えない環境もあるよ
という事なら普通に同意できるな
0727デフォルトの名無しさん
2010/12/30(木) 14:00:10Wii, DSは知らんが、Wiiはサポートしてんじゃないの。
0728デフォルトの名無しさん
2010/12/30(木) 14:30:54両方サポートしてるよ、ついでにGBAも。
0729デフォルトの名無しさん
2010/12/30(木) 14:46:13一応stdio.hとかはついてるみたいだが。
0730デフォルトの名無しさん
2010/12/30(木) 16:19:49・fopenが(自社のアーカイブライブラリを通す必要があるため)使えない環境
・fopenが(標準ライブラリにはあるけど大人の事情により)使えない環境
おいお前らどれ前提に話しとるんや
0731デフォルトの名無しさん
2010/12/30(木) 16:47:30ゲームコンソールについてだから、
>・fopenが(標準ライブラリになく)使えない環境
についてだよ。
0732デフォルトの名無しさん
2010/12/30(木) 17:50:55ライブラリとしては存在するけどアプリ内部での使用には耐えない(ほぼデバッグ表示用専用)
だな。
0733デフォルトの名無しさん
2010/12/30(木) 18:13:260734713
2010/12/30(木) 19:54:40俺が言ってるのはこれだな。
あと、スクリプトそのものの読み込みや#includeに相当するものでファイルを読み込む際にも、
ライブラリ側でfopen使ってたりするとちょっと困る。
0735デフォルトの名無しさん
2010/12/30(木) 21:00:20http://sekisekki.net/index.htm
直感的操作で簡単なゲームが作れます。 簡単に配布可能な状態に出力することができます。
(HSP製のソースコード付きで、スクリプトの知識があれば自由度の非常に高いカスタマイズ
ができます)
他にも仲間預かり機能(100人も)や、仲間の状態/状態異常を細かく設定できたり、
乗り物が作れたり、ゲーム中に画像を差し込んだり、回転やフラッシュなどのエフェクト
なんかも簡単に作れる様です。
移動は矢印キーの他に、キャラがマウスを追っかけたりするとのこと。
戦闘はデフォだとドラクエ系。
他にはオートアクションというのがあってオリジナルシステムの製作に役に立つかも
しれない機能です。これは、マップエディタで設定することで、「マップに入った時・
出た時・一歩歩いた時・戦闘開始前」に自動的に実行されるアクションを設定できる
機能です。
■他にもいろいろ進化中。要望は掲示板へどうぞ。
どんなゲームが作れるかはこれを見れくれ。HSPのカスタマイズはしてないとの事。
「眠られぬ獅子〜序章〜」
http://www.freem.ne.jp/game/win/g02773.html
0736デフォルトの名無しさん
2010/12/31(金) 08:16:20〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ Lua!!
彡、 |∪| /
/ __ ヽノ /
(___)
0737デフォルトの名無しさん
2010/12/31(金) 20:08:57>>696 を見るに
・fopenが(自社のアーカイブライブラリを通す必要があるため)使えない環境
を作りたいからfopenを禁止したいのではないか。理由は
> ライブラリとしては存在するけどアプリ内部での使用には耐えない(ほぼデバッグ表示用専用)
かな?
まぁ上で言われてるLuaのファイルアクセス関連上書きするとかに行き着くけど。
Lua内部で使ってるのは、書き換えるか、お勧めしないが上書きするかとかか・・・できたかうろ覚えだが
しかしこの板ID出ないからめんどくせぇw
0738デフォルトの名無しさん
2010/12/31(金) 20:37:34grepしてみたけど標準ライブラリとluaL_loadfileくらいでしか使ってなくね?
0739デフォルトの名無しさん
2010/12/31(金) 20:50:170741デフォルトの名無しさん
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とか便利だし
0742デフォルトの名無しさん
2011/01/01(土) 10:26:36アドホックに言語の機能、上書き差し替えでもいいね
0743デフォルトの名無しさん
2011/01/01(土) 18:47:44/ / パカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ Lua!!
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
0745デフォルトの名無しさん
2011/01/01(土) 21:01:530746デフォルトの名無しさん
2011/01/05(水) 18:58:490747デフォルトの名無しさん
2011/01/07(金) 22:15:49スクリプトでそれを実装したクラスを書いたんだけど、
どうやればこれをC++のクラスと同じように使える?
0748747
2011/01/08(土) 00:04:24プロパティを取得するのは簡単にできるみたいだけど。
コンテキストを作成して、オブジェクトとメソッドIDを指定して実行するのは出来るけどあまり賢い方法とは思えない。
GetMethodIdByDeclでメソッドID取得するとオーバーヘッドも心配
何かもっといい方法ない?
0749747
2011/01/08(土) 00:21:11AngelScriptでクラスのメソッド呼ぶのは結構難しそうなので諦めた
クラスをスクリプトで記述する代わりに、
XMLに呼び出す関数名とスクリプトのコードそのものを入れる、という方法をフォーラムで見つけた
これでやってみるか
0750デフォルトの名無しさん
2011/01/08(土) 01:02:39メソッドIDはスクリプト読み込んでコンパイルした直後にでも取得して保存してても大丈夫のはず。
あと、1つのスクリプトファイルを1つのクラスと見て、そのスクリプトの関数を呼び出すメソッドを持つC++のクラスを用意する方法はダメかな?
0751デフォルトの名無しさん
2011/01/08(土) 02:02:05マイナーだがPicoC
ttp://code.google.com/p/picoc/
Cのサブセットで4000行程度だそうな。修正BSDライセンス。
なんかおもしろそう。
0752デフォルトの名無しさん
2011/01/08(土) 02:07:550753デフォルトの名無しさん
2011/01/08(土) 13:34:27組み込み想定してるから動的生成については用途広そう
0754デフォルトの名無しさん
2011/01/08(土) 13:36:240755747
2011/01/08(土) 23:27:42メソッドIDはインタフェースのが使えるみたい
ただ、その場合は実行時に線形探索で実装されたメソッドを探すみたいだが。
速度はとりあえず度外視でいいか・・・。
コンテキストはオブジェクトごとに作ることにしよう
0756デフォルトの名無しさん
2011/01/09(日) 17:28:160757デフォルトの名無しさん
2011/01/09(日) 21:02:510758デフォルトの名無しさん
2011/01/09(日) 23:01:440759デフォルトの名無しさん
2011/01/09(日) 23:02:49お前の定義だとJavaやC#もインタプリタになるだろうが
0760デフォルトの名無しさん
2011/01/09(日) 23:07:50じゃあASTを少し実行しやすい形に変換してから実行するのはどっち?
どこまで変換したらインタプリタからコンパイラになるの?w
無意味な議論ですよ
0761デフォルトの名無しさん
2011/01/09(日) 23:10:54これもC++のインタプリタだな
古いしデカいし重いが
0762デフォルトの名無しさん
2011/01/10(月) 00:01:40コンパイラ部切り離してつかえるし
0763デフォルトの名無しさん
2011/01/10(月) 12:39:080764デフォルトの名無しさん
2011/01/10(月) 13:59:30純コンパイル言語なスクリプト言語って、
それこそDS位のチープな環境じゃないと役に立たないんじゃね?
0765デフォルトの名無しさん
2011/01/10(月) 15:28:06JavaScriptの実装はJIT可が流行りだし、luaも欲しいぞ。
0766デフォルトの名無しさん
2011/01/10(月) 16:47:430767デフォルトの名無しさん
2011/01/11(火) 01:10:11ここにあるAngelWingって誰か持ってない?
AngelScriptのバイトコードを出力するmakeのようなツールらしいが
リンク切れになっている
0768デフォルトの名無しさん
2011/01/11(火) 01:11:12呼び出し毎にPrepareメソッドとSetObjectメソッドを使って設定を行えば、一応asIScriptContext1個を使いまわせるよ。
ただ、Suspendでスクリプトの一時停止ができないとか、制限もあるけど。
0769デフォルトの名無しさん
2011/01/11(火) 22:31:58> AngelScriptのバイトコードを出力するmakeのようなツールらしいが
AngelScriptのバイトコードを出力するasc(仮)をさっくり書いて
makeを使えばよくね?
0770デフォルトの名無しさん
2011/01/12(水) 00:24:46動作環境的にJavaScriptよりLua動かすような場面のほうがロースペックだろうに、
開発者リソースかけられるJavaScriptの方が進んでるよな
V8(Google) vs SquirrelFish Extreme(Apple Safari/Webkit) vs SpiderMonkey,TraceMonkey,JagerMonkey(Mozilla Foundation)
こいつらはそれぞれのWebブラウザの高速化のためにお互いパクりあってしのぎを削ってるからな
ゲーム業界もお互いしのぎ削れや
0771デフォルトの名無しさん
2011/01/12(水) 00:35:540772デフォルトの名無しさん
2011/01/12(水) 05:11:490773デフォルトの名無しさん
2011/01/12(水) 08:50:14それでもluajitが互角以上の速度ってのが、なんというかブレねえど
0774デフォルトの名無しさん
2011/01/12(水) 10:00:38しのぎを削るためにはLuaの実装が複数ないとダメなような気がする。
JavaScriptで複数の実装が出始めたのもJavaScript自体が本格的に使われ始めてからだろうから、
まずはLua自体の普及からってことかもしれない。
それとも現状のLuaの実装で満足してるのかな。
0775デフォルトの名無しさん
2011/01/12(水) 10:39:47ああ、すまんすまん。既存の実装が富豪。
0776デフォルトの名無しさん
2011/01/12(水) 10:57:08敵を増やさないとダメだというのも
まずは味方を増やすことからだと言うのも
自分では満足なのか不満なのか判断できないやつが悪あがきしてるだけに見える
0777デフォルトの名無しさん
2011/01/12(水) 12:57:250778デフォルトの名無しさん
2011/01/12(水) 15:58:11誤用して無い?
理解できん
0779デフォルトの名無しさん
2011/01/12(水) 16:10:580780デフォルトの名無しさん
2011/01/12(水) 23:06:32その上で主張に肯くかは別だが。
0781デフォルトの名無しさん
2011/01/13(木) 00:27:18AngelScriptの場合、asIScriptModuleにあるSaveByteCodeとLoadByteCode使って、コンパイル済みのバイナリを入出力するのがいいかも。
0782デフォルトの名無しさん
2011/01/13(木) 14:59:10今はバインダなしで地道にやってるけど
バインダなしのJS系並に冗長だわ
それでいて独特だわ、一々面倒だわでいい加減辛くなってきた・・・
0783デフォルトの名無しさん
2011/01/13(木) 15:22:320784デフォルトの名無しさん
2011/01/13(木) 15:36:01そのバインダの出来が
>バインダなしのJS系並に冗長だわ
>それでいて独特だわ、一々面倒だわでいい加減辛くなってきた・・・
なのであります
0785デフォルトの名無しさん
2011/01/13(木) 15:38:33なにがめんどいのかしらないけど、ラッパ関数の類の準備がめんどいとかなら、テンプレートでちょちょいと書いてしまうとか。
なれればわりと簡単よ。
0786デフォルトの名無しさん
2011/01/13(木) 15:45:47SwigやBoostなど標準的なものが既にあるなら
そっちを使った方がいいよね
って事で劣化車輪を作る前に質問した次第です
0787デフォルトの名無しさん
2011/01/13(木) 18:22:17Cは最低限の機能しかないから重複しないが
機能が多いC++では逆に難しくなる
0788デフォルトの名無しさん
2011/01/13(木) 22:32:040789デフォルトの名無しさん
2011/01/14(金) 02:52:510790デフォルトの名無しさん
2011/01/14(金) 11:26:360791デフォルトの名無しさん
2011/01/14(金) 11:39:52対象分野のフレームワークで頻出パターン部分にDSLとしてLuaを使うのが俺のおすすめ。
0792デフォルトの名無しさん
2011/01/14(金) 19:14:21ってやり方ならLuaは向いてると思う。
ただ、C++側と頻繁にやり取りしたり、ゲームのオブジェクトの動きをスクリプトで記述したい場合はLuaはあんまり向いてないような…
0793デフォルトの名無しさん
2011/01/14(金) 19:56:45前後で矛盾してないか?
どちらにしても、そういうのはLuaの得意分野だよ
0794デフォルトの名無しさん
2011/01/14(金) 20:33:13後者はメインループがC++で、敵の動きだけLuaって感じね。
個人的にはC++とLuaでLuaの比率が高いほど楽ってイメージ持ってる。
0795デフォルトの名無しさん
2011/01/14(金) 21:02:25ちょっとイメージ掴めない
敵の座標やらモデルやらの各種パラメーターはC++側に保持するけど
動きはLuaでやるって事?
0796デフォルトの名無しさん
2011/01/14(金) 21:29:37>動きはLuaでやるって事?
まさにそんな感じ。
スクリプト側では、「速度を設定」とか「〜フレーム待機」とか、そういう関数を呼び出すだけにする。
0797デフォルトの名無しさん
2011/01/14(金) 22:42:24特に問題があるようには思えないけど・・・
0798デフォルトの名無しさん
2011/01/15(土) 17:50:00文字列処理はC++のRegexで済ませられるが、ネット周りの手間の
かからないライブラリなんかない?
0799デフォルトの名無しさん
2011/01/15(土) 17:52:370800デフォルトの名無しさん
2011/01/15(土) 18:09:23ネット周りとか抽象的過ぎて答えようが無い
てか、Perl使えばいいんじゃないの?
Perlだってちょっとしたツールじゃないか
0801デフォルトの名無しさん
2011/01/15(土) 18:24:02自分はboostの使ってるが、最近だとVC2010にもあるね。
>>800
httpやftpが簡略化されてるのがあるといいんだけど。
0802デフォルトの名無しさん
2011/01/15(土) 18:34:050803デフォルトの名無しさん
2011/01/15(土) 19:33:00ネット関係なら何かLuaForgeあたりにあった気がする
0804デフォルトの名無しさん
2011/01/15(土) 19:50:59ごめん、意味がわかんない
0805デフォルトの名無しさん
2011/01/15(土) 20:15:26オレは798,801が言いたいことがよくわかるぞ。
C/C++でゼロから実装するのが面倒な部分を
スクリプトでどうこうしたいってことだよな。
なにか積極的な理由がない限りは、Luaはおすすめしないな。
大雑把に、C/C++にスクリプト言語を組み合わせて
楽をしたいってだけならPythonがおすすめ。
最近はPython+Qtで全体を作って、必要な部分だけC/C++で
実装するのが最強じゃないかと思いつつあり。
0806デフォルトの名無しさん
2011/01/15(土) 20:29:33問題はないんだけど、アプリ作る際にどこまでC++でやってどこまでスクリプトに処理させるか?の違いかな。
Luaの場合、スクリプトの比率が多い方が楽なイメージがある。
0807デフォルトの名無しさん
2011/01/15(土) 21:45:06ごめん、やっぱり意味わかんない
httpやftpはプロトコルだよ?
そのプロトコルを利用したなんちゃらな処理を簡略化したいとか
Perlで言うなんちゃら相当なものが欲しい
という事なら分かるけど
プロトコルを簡略化したいと言われても
答えようがないと思うのだが。
0808デフォルトの名無しさん
2011/01/15(土) 21:49:58ライブラリって言ってるんだからそのなんちゃらが色々詰まってるのが無いかって話だろう
0809デフォルトの名無しさん
2011/01/15(土) 21:57:05禅問答だな
0810デフォルトの名無しさん
2011/01/15(土) 23:01:51どちらかというと禅問答の方がましだ
0811デフォルトの名無しさん
2011/01/15(土) 23:17:04798が文字列処理をRegexで済ませられると言ってるんだから、
ネット周り、特にhttp/ftpの問題を解決するのに何を必要としてるかなんて
いちいち確認しなくったってわかると思うんだが。
そんなに察しが悪いのか?
プロトコルを実装したいんじゃなくて、
それを道具として何かやりたいことがあるってことだろ。
そんな事言い出したらRegexは正規表現の実装の一つであって
「文字列処理」ライブラリじゃない。
ひょっとすると、スクリプト言語でのプログラミングを
日常的にやってないと分からないものなのかもね。
0812デフォルトの名無しさん
2011/01/15(土) 23:21:40> プロトコルを実装したいんじゃなくて、
> それを道具として何かやりたいことがあるってことだろ。
そのプロトコルを利用したなんちゃらな処理を〜
って言ってるでしょ
大丈夫?
0813デフォルトの名無しさん
2011/01/15(土) 23:26:57日本語として引っかかることは否定しないけどわざわざ分からない振りをして曲解するようなことでもないだろう
0814デフォルトの名無しさん
2011/01/15(土) 23:28:570815デフォルトの名無しさん
2011/01/15(土) 23:32:47だから
サーバー、ブラウザ、ダウンローダー、メーラー、その他もろもろ
HTTPプロトコルを利用したものは色々あるでしょ?
それを聞いてるの。
それら全ての機能を備えて、なおかつ簡略化されたという物があるんですか?
0816デフォルトの名無しさん
2011/01/15(土) 23:33:47C++ にラッピングした cURLpp ってのもある。
0817デフォルトの名無しさん
2011/01/15(土) 23:34:370818デフォルトの名無しさん
2011/01/15(土) 23:35:200819デフォルトの名無しさん
2011/01/15(土) 23:42:04いかにもC言語屋な考え方だなぁ。
煽るつもりはないんだが、どうしてもそう思ってしまったので。
スクリプト屋なら、1行で指定したURLのファイルを拾ってくるコード書けないかな、とか考えるよ。
0820デフォルトの名無しさん
2011/01/15(土) 23:45:37馬鹿だよね
0821デフォルトの名無しさん
2011/01/15(土) 23:46:100822デフォルトの名無しさん
2011/01/16(日) 08:31:18( ・∀・) < Lua!!
⊂/ 9) \____
q( /
> >
0823デフォルトの名無しさん
2011/01/16(日) 09:08:320824デフォルトの名無しさん
2011/01/16(日) 17:42:38DLする為にはパス入力が必要な場合もあるという条件で。
0825デフォルトの名無しさん
2011/01/16(日) 17:53:06スレ違いw
0826デフォルトの名無しさん
2011/01/16(日) 17:56:440827デフォルトの名無しさん
2011/01/16(日) 18:24:04という状況がちらほら見えるので
スクリプト言語総合とか適当な隔離スレを経てて
そっちへ追いやればおしまい
0828デフォルトの名無しさん
2011/01/16(日) 18:34:540829デフォルトの名無しさん
2011/01/17(月) 07:36:11る普通のエンジニアならありえないだろ・・・
0830デフォルトの名無しさん
2011/01/17(月) 11:13:47「アセンブラを知らない子供たち」と!
0832デフォルトの名無しさん
2011/01/18(火) 01:23:04だって面倒くさいじゃん。
直感的じゃないし。
0833デフォルトの名無しさん
2011/01/18(火) 11:20:59単純なFIFOやFILOもわかるまい。
0834デフォルトの名無しさん
2011/01/18(火) 14:30:22抽象レベルを上げてやれば済む話だろ
何回ループしてるんだよ
0835デフォルトの名無しさん
2011/01/18(火) 14:32:18代わりにFIFOが理解できます。
0836デフォルトの名無しさん
2011/01/18(火) 14:56:18このスレのいいところは話そらす人がいる一方で適切な回答くれる人がいるところだよなw
0837デフォルトの名無しさん
2011/01/18(火) 22:50:50>>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
0838デフォルトの名無しさん
2011/01/18(火) 22:55:19>>824も煽りで言ってるんじゃなくてクッキーの処理のようなhttpクライアントの機能をいちいち再実装する奴はバカだろってことだろ
それこそlibcurlでいいわな
0839デフォルトの名無しさん
2011/01/19(水) 02:44:09.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/
みんないったい何があったんだ?
0840デフォルトの名無しさん
2011/01/19(水) 02:48:51言語処理系よりどり見取りな.NET Framework上で、なぜにLuaにこだわる?
IronPythonが最右翼に上がるし、NemerleやらF#やら、
もっと面白い言語が色いろあるでしょ。
CのLuaとは処理系自体が違うんだから、Luaの高速性とかは関係ないんだよ。
文法が同じなだけ。
0841デフォルトの名無しさん
2011/01/19(水) 02:49:20CLRか?ネイティブか?
勉強して出直して来い
0842デフォルトの名無しさん
2011/01/19(水) 03:48:240843デフォルトの名無しさん
2011/01/19(水) 18:54:34動的にコンパイルするならDLRと同じだし
0844デフォルトの名無しさん
2011/01/19(水) 20:43:260845デフォルトの名無しさん
2011/01/19(水) 20:55:35普通のネイティブコードのdllにして.NETから呼び出したほうが遥かに扱いやすい
0846デフォルトの名無しさん
2011/01/19(水) 21:52:53苦労してC++/CLIで書いて得な事ある
0847デフォルトの名無しさん
2011/01/19(水) 22:01:19正直言って、各種形式をSystem.IO.Streamで
読み込めるようにする時にくらいしか使わないな。
プログラムはほとんどC#で書くことになる。
ただしゲームごとに違う部分は別の言語にする。
何を選ぶかはプログラマによって変わってくると思うけど。
0848デフォルトの名無しさん
2011/01/19(水) 22:07:22構造体とかマクロが見える方が得だ
0849デフォルトの名無しさん
2011/01/19(水) 22:38:29それをC#から使おうと思ったら構造体やマクロもラップして公開しなきゃいけないからそんなに楽にはならん
C++/CLIはネイティブC++のクラスをラップするときには役に立つけど、C向けライブラリのラップには必要ない
0850デフォルトの名無しさん
2011/01/20(木) 00:13:48libluaのラッパーじゃなくて、ilasmになってるLuaCLRの実装ってことでは。
0851デフォルトの名無しさん
2011/01/20(木) 00:15:120852デフォルトの名無しさん
2011/01/20(木) 00:19:40デザイナーに、そのまま同じ構文使わせたいんじゃないの
0853デフォルトの名無しさん
2011/01/20(木) 00:24:040854デフォルトの名無しさん
2011/01/20(木) 00:52:10組み込み系……汎用のAPIではなく特定のアプリケーションの機能だけ公開する。
0855839
2011/01/20(木) 12:19:24Luaそのものや、速度、実装方法などは、特にこだわっては無いです。
Luaが.NETで使えるのかどうかを調べてただけです。
具体的には、CodeDomProviderで実行できるものを探してた。
>>841
突っ込みありがとう。眠たかったせいか、すっかり言葉を間違えて使ってた。
言いたかったのは、「マネージド」です。(まったく逆だなw
まあ、なんていうか、.NETでLua使うぐらいなら、C#で書けよって話なのかな。
0856デフォルトの名無しさん
2011/01/20(木) 12:31:32.NET Frameworkの場合、C#自体の生産性が高すぎて、
あまり積極的なスクリプティングを活用するメリットがないんだよね。
だから、ビルド後のプログラムを外側からカスタマイズ、
運用するスクリプティングという用途に限ったほうがいいと思うよ。
0857デフォルトの名無しさん
2011/01/20(木) 17:52:350858839
2011/01/20(木) 18:13:40うんうん、その用途です。
自分はAPIを公開して、スクリプトで使ってもらう側です。
スクリプトを作るのは、利用者側なので、
「簡単に対応できそうなら、いくつか言語を使えるようにしたほうが親切だろう」
・・・ってところです。
C#やVB.NET、Ruby、Pythonあたりは知らないけど、
Luaなら組めるっていう人がどれだけいるかにもよりますが・・・。
0859デフォルトの名無しさん
2011/01/20(木) 19:37:13C#、VB.NET、Ruby、Pythonよりも、
Luaのプログラミング人口のほうがずっと少ないよ。
0860デフォルトの名無しさん
2011/01/20(木) 20:11:43だったら普通にマネージAPI公開するだけでいいじゃん
それを何の言語から使うかは利用者の勝手
0861839
2011/01/20(木) 20:39:07ですよねぇ。
ゲーム関連でLuaが使われることが多いと聞いて、「対応できたらいいな」と思ったんですけどね。
>>860
いや、えーと、スクリプトの実行タイミングはアプリケーションがキックするものを想定してます。
「アプリケーション内で動くスクリプト」って言えばわかってもらえるのかな。
「それを何の言語から使うかは、利用者の勝手」なんだけど、
アプリケーション側が対応してないと使えないでしょ。
MayaやBlender上でPythonを動かすのと一緒。
もっと身近だと、テキストエディタのマクロ機能みたいな。
0862デフォルトの名無しさん
2011/01/20(木) 21:00:20具体的なスクリプトではなく
抽象クラスのオブジェクトをキックするものを想定すれば
アプリケーション側がいちいち派生クラスに対応してなくても使える。
Formを継承するのと一緒。
0863デフォルトの名無しさん
2011/01/20(木) 21:01:15C#やVBで書くならプラグインを直接実装すればいいし、
IronPythonをホストするプラグインを用意すればPythonも使える
自分でそのプラグインを用意するかは別にして、アプリケーションからスクリプトは直接意識したくないな
>>862と被ったけど
0864デフォルトの名無しさん
2011/01/20(木) 22:46:47む?なんか勘違いされてそう。
>>863
うん、863さんのほうがわかってもらえてる。
複数言語対応するなら、プラグイン実装が確かに理想ですね。
まあ、そこまで分離する必要があるかは、ちょっと考えないとだけど。
0865デフォルトの名無しさん
2011/01/20(木) 23:26:19勘違いではない
まず、メソッドのオーバーライドを理解しろ
そのメソッドはC#で実装しても良いし、C++/CLIでも良いし、
メソッドの中でスクリプトを呼び出しても良い
0866デフォルトの名無しさん
2011/01/21(金) 01:55:18いや、えーと、やっぱり根本を勘違いされてると思う。
そもそも作り方の話をしてるんじゃないって事です。
きっと「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クラスだけでいけるんだな・・・。
0867デフォルトの名無しさん
2011/01/21(金) 19:44:39構造上必ずメモリリークするので、気軽にeval的に使えないのが終わってる
いちいちAppDomainを分離する必要がある
0868デフォルトの名無しさん
2011/01/21(金) 20:51:49プラグイン自体は何で実装してても
実行時に必要なモジュールを自動的に解決してくれるよ。
つまり、プラグイン的な動作をさせるときにCodeDomを自分で扱う必要はない。
もちろん、言語処理系で必要なモジュールが別にあるなら、検索できる位置に置いておく必要はあるが。
0869デフォルトの名無しさん
2011/01/23(日) 10:05:45おっとJRubyの悪口はここまでだ
0870デフォルトの名無しさん
2011/01/23(日) 10:08:400871デフォルトの名無しさん
2011/01/23(日) 10:20:41昔はCodeDOMでC#のコードを生成してコンパイルしてたけど
問題が多いので後のバージョンで新しく追加されたものは軒並みDLRと同じようにLCGでILを吐くようになってる
0872デフォルトの名無しさん
2011/01/25(火) 11:28:02どうすればいい?
できればCと共有したい
0873デフォルトの名無しさん
2011/01/25(火) 12:55:56定数の配列を返すC関数を用意すればいいんじゃね?
0874デフォルトの名無しさん
2011/01/25(火) 13:55:43使わない定義をコメントアウトする
0875デフォルトの名無しさん
2011/01/25(火) 14:58:49http://www.gammon.com.au/forum/bbshowpost.php?bbsubject_id=8028
こんな感じに代入不可にして
C側からはlua_getglobal,lua_getfield,lua_to...などを使って参照する
luabindを使うと
object_cast<T>(globals(L)["..."]["..."])
みたいにスクリプト内で参照するのとほぼ変わらない構文で1行で書ける
0876デフォルトの名無しさん
2011/01/31(月) 12:53:34MYCLASS myinstance;
int (MYCLASS::*pMyFunc)(void) = &MYCLASS::MyFunc;
RootTable().Bind(_SC("MyTable"),Table()
.Func(_SC("MyFunc"),&(myinstance.*pBeginScene)())
);
これだと文法エラー、&とるとVC++2010が落ちます。
0877876
2011/01/31(月) 12:55:50.Func(_SC("MyFunc"),&(myinstance.*pMyFunc))
0878デフォルトの名無しさん
2011/01/31(月) 13:58:44BindInstance
0879876
2011/01/31(月) 14:11:23>>878
ありがとうございます。
ただ、インスタンス自体はバインドしたくないんです(squirrel側に触られたくない)
メンバ関数だけテーブルにバインドする方法はないですか?
0880デフォルトの名無しさん
2011/01/31(月) 15:05:16目的とすることは、まあ、以下の手順でできると思われ。
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 にあわせるなら、バインド済みメソッドを取得するよーな処理をインスタンスのメンバとして
書き足せばいいやろね。それは自分でなんとかがんばれ。
0881876
2011/02/01(火) 00:57:43ありがとうございます。
理解するのに時間かかりましたが、確かにそれならできそうですね。
けど、sqratに標準で用意されてないってことは普通はやらないってことなんでしょうか?
C++側に大量のグローバル関数用意したりするものなんですかね?
いまいち標準的な構成が分かりません。
0882デフォルトの名無しさん
2011/02/01(火) 01:26:03正直、メソッドだけ渡す理由がよくわからんです
0883デフォルトの名無しさん
2011/02/01(火) 01:38:22やるならSingleton限定での実装だね。
どうしてもやるならラッパーだね。
0884デフォルトの名無しさん
2011/02/01(火) 02:46:40squirrel に見せるコンストラクタでは例外出すようにしておけば勝手に new して使われることもないし、
アクセスされると困るメソッドはクラス定義時に登録しなければいいだけの話だし。
0885デフォルトの名無しさん
2011/02/02(水) 07:59:520886デフォルトの名無しさん
2011/02/02(水) 09:23:170887デフォルトの名無しさん
2011/02/02(水) 10:29:40リストのインスタンスを作って入れたいクラスを初期化品がリストに入れていく。
これをクロージャ使って直交にしたら?
0888デフォルトの名無しさん
2011/02/02(水) 10:30:43リストのインスタンスを作って、
作成したいクラスを初期化しながらそのリストに入れていく
0889デフォルトの名無しさん
2011/02/02(水) 10:43:55数値配列の作り方と特に変わらないわけだが……・。もっと具体的になにが目的で何がわからないのか説明しないと回答は得られないと思われ
0890デフォルトの名無しさん
2011/02/02(水) 14:58:400891デフォルトの名無しさん
2011/02/02(水) 16:57:070892デフォルトの名無しさん
2011/02/02(水) 22:14:56Okだと思うよ。
ものすごく詳しいV8erがいるかは保障できないけど…
0893876
2011/02/03(木) 07:25:24書き込んでいただいた情報を参考にさらに調べてみたら某所でクラスをバインドする時にアロケータに
NoConstructorを指定できるとあったので、
C++側のシングルトンクラスをNoConstructorでバインドして、次にシングルトンインスタンスをSetInstanceでバインドする、
という方法でまだよく動作確認してませんが希望通りのことができそうです。
BindInstanceはコンパイルエラーになったのでSetInstanceにしましたが違いがよくわかりませんが……
ありがとうございました。
0894876
2011/02/03(木) 07:36:04既存のバインド済みのインスタンスを返すっぽい動作してるような気がします。
NoConstructorにしろこの動作にしろドキュメントじゃなくてソース読まないと載ってない機能が結構ある物なんですね。
0895886
2011/02/03(木) 09:15:24すみません、よく意味が分かりません。
>>889
local myinstancearray = array(3);
foreach (i, v in myinstancearray) {myinstancearray[i]=myclass();}
これをもっと綺麗にやりたいです。
0896デフォルトの名無しさん
2011/02/03(木) 11:43:03それで基本的に合ってるしそれ以外ってのは特にないような……。俺ならただの for にするけど。
そういう記述が沢山書くのがいやなら、クラスとサイズを引数で渡してそれをする関数つくってたばねるくらいじゃね?
該当処理を C++ で書くも良し。
0897デフォルトの名無しさん
2011/02/03(木) 11:54:24function 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)});
でもいいだろう。(こっちはカリー化)
0898デフォルトの名無しさん
2011/02/03(木) 12:03:17sqrat はあれは、各自が自分のアロケータを作るという設計。標準ではいってるのは参考用。
で、標準に入ってる NoConstructor ってアロケータは、中身みると「何もしてない」ものなので、新しいインスタンス自体は
作れてしまって、でも何もバインドされずに動作するような形になってる。基本おかしい。スタティックメソッドなら動くかな?
コンストラクタを適切に封印するなら、
template <class C>
class NOConstructor : public DefaultConstructor<C> {
public:
static SQRESULT New(HSQUIRRELVM v) {
return sq_throwerror(v, "can't create instance");
}
};
0899デフォルトの名無しさん
2011/02/03(木) 12:08:36こんなかんじに、デフォルトの代わりに New だけ封じたアロケータを作ってそれを指定してクラスを作るようにする。
DefaultConstructor → sqrat::DefaultAllocator とよみかえてね。うちは普通のコンストラクタもいじってるからそれの名前になってた……
0900デフォルトの名無しさん
2011/02/03(木) 12:39:08Sqrat::NoConstructor を継承してください。
ポインタを渡してる場合は、アロケータの処理は使わずに sq_setinstanceup() してるだけなので、
シングルトンをC++側からポインタで設定する分には NoConstructor で問題ありませんでした。
ただ New 防止は一切機能してないのでそれだけ足す形で使うのが妥当です
なお、BindInstance() はオブジェクトの protected 関数なので内部からよぶためのものです。外部から直接読んだらそりゃコンパイルエラーです。
SetInstance() はテーブル用の public 関数で、中身はBindInstance を非static指定で呼び出してるだけです。
テンプレートは基本、全部ソースを読んでからつかうものですよ。
sqrat は、そのままだと C++ 側からポインタ渡す場合のテンプレートに解放処理が一切入ってないので、
シングルトンならいいんですが、それ以外だとあっさりメモリリークします。
あと、インスタンスの型処理が全く行われてないとかいろいろ実装がおかしい部分があるので、
そのあたり全部直してからでないと使うの危険なのでご注意を。
0902894
2011/02/03(木) 13:08:39失礼、>>900読んでませんでした。
おっしゃるとおりNoConstructorから継承することにします。
というかもう本体いじることにします。
BindInstance、確かにprotectedでした。よく見るべきでした。
ソースしっかり読むことにします。
(それにしても、Squirrelはバインダがどれも微妙な感じがして、入門には結構厳しい感じです)
とてもためになりました。ありがとうございました。
0903デフォルトの名無しさん
2011/02/03(木) 13:23:43ttp://ruriko.denpa.org/201011a.html#0401
でいじられてる程度の対応はしてから使った方がよいです。
特に型処理を全くしてないのはわりと致命的なので……
オブジェクトを引数にとってる場合、sqrat そのままだと、引数に別の型のオブジェクトを渡すと一発で死亡です。
適切に squirrel の APIを使って処理するようにすれば、NULL が来るのでオブジェクト違いの検知ができるようになります。
(そのままつかってるとぬるぽなことに代わりはないですが)
sqplus はごちゃごちゃすぎてさすがに触る気にならないですな
0904デフォルトの名無しさん
2011/02/04(金) 16:16:30とりあえずハング等起きなさそうであることは確認したのですが。
0905デフォルトの名無しさん
2011/02/04(金) 21:38:54必要ない
0906デフォルトの名無しさん
2011/02/06(日) 10:18:29/ / パカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ Lua!!
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
0907デフォルトの名無しさん
2011/02/06(日) 22:23:23スレッドにつき、1個のコンテキストしか実行してないみたいだけど
コルーチンって、スレッドみたいに複数同時に処理を行わせられる機能じゃないの?
1フレームに1回だけExecuteScriptsを呼び出せば、全部実行されると思ってた・・・orz
0909デフォルトの名無しさん
2011/02/06(日) 22:58:31スレッド
と
コルーチン=マイクロスレッド=ファイバ=協調型スレッド=擬似スレッド
は別物です
0910デフォルトの名無しさん
2011/02/07(月) 00:10:02コルーチンは「任意のタイミングで任意の処理を途中まで実行させる事が出来る仕組み」だから、
呼び出しは自分でやらないとダメだよ。
Coroutine c;
c.SetFunction(〜);
…
c.Execute();//コルーチンを呼び出す
みたいな感じで、どっかで呼び出し処理をする必要がある。
ただ、そのおかげで複数の処理の同期が取りやすいって利点もあるよ。
0912デフォルトの名無しさん
2011/02/07(月) 15:12:44実際、このスレ的にはどうなの?
0913デフォルトの名無しさん
2011/02/07(月) 15:57:41しらなんだ
0914デフォルトの名無しさん
2011/02/07(月) 16:48:04Javaなんかより遥かに使いやすいじゃん
0915デフォルトの名無しさん
2011/02/09(水) 02:46:45Microなのが気になるが実際使えるの?どうなん?
0916デフォルトの名無しさん
2011/02/09(水) 10:30:40組み込みといってもハードへの組み込み用
0917デフォルトの名無しさん
2011/02/09(水) 14:08:490918デフォルトの名無しさん
2011/02/09(水) 15:34:33■ARMやX86、SHなど、さまざまなCPUアーキテクチャで動作
■リアルタイムOSやOSなしのファームウェア上にポーティング可能
■UIやネットワーク、ファイルシステム、ローレベルのハードウェアインターフェイスにアクセスするライブラリを提供
http://monoist.atmarkit.co.jp/fembedded/articles/netmicro/netmicro_01a.html
日曜プログラマの入門用には良いな
0919デフォルトの名無しさん
2011/02/09(水) 15:55:09組み込み機器でプログラミングするのか?
0920デフォルトの名無しさん
2011/02/10(木) 02:32:050921デフォルトの名無しさん
2011/02/10(木) 02:35:04それって、そのまんま流用出来ると思うけど・・・w
0922デフォルトの名無しさん
2011/02/10(木) 02:40:21具体的にくみ入れてるサンプルあるのかなとおもって記事みると、エミュレータそのものコードもあるのか。
じゃあそれベースにしたらアプリへのくみ入れもわりとさっくりできたりするかな
0923デフォルトの名無しさん
2011/02/10(木) 14:51:52Porting Kit入れて触ってみてるけどなかなかビルドが通らない…
0924デフォルトの名無しさん
2011/02/10(木) 15:28:490925デフォルトの名無しさん
2011/02/10(木) 21:23:21iPhoneはともかく、DIYで日曜プログラミングの組み込み開発はAndroidに持ってかれちゃったな
2年前くらいはいろいろあったのに
0926デフォルトの名無しさん
2011/02/11(金) 14:12:50色々って何があったけ?
0927デフォルトの名無しさん
2011/02/12(土) 06:25:34PPC/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 作業開始
0928デフォルトの名無しさん
2011/02/12(土) 13:28:36フォーラムではもう実験してたみたいだが…
0929デフォルトの名無しさん
2011/02/12(土) 19:01:550930デフォルトの名無しさん
2011/02/12(土) 19:04:36その文章では、何と何を比較しての何倍なのかが分からん。
日本語でおk
0931デフォルトの名無しさん
2011/02/12(土) 21:36:42LuaJITによる高速化は、単純にLuaのVMを(JIT関係なく)最適化した点と、
JITによる高速化とに分けられる。
たぶん >>929 は前者のことを言いたいんじゃないかと。
0932デフォルトの名無しさん
2011/02/14(月) 03:47:250933デフォルトの名無しさん
2011/02/14(月) 03:54:54なるほど。
オレも動的言語のVMのJIT化を実装したことあるから
そこのところよくわかる。
JIT化って基本的には既存のVMの内部APIを直接並べるようなコードを
生成するから、最終的には内部API自体の速度が問われるんだよね。
動的言語は変数同士の型の組み合わせが演算でマッチングさせるまで
分からないから、毎回動的分岐するこの部分邪魔だわー、とか思ったり。
0934デフォルトの名無しさん
2011/02/16(水) 22:11:480935デフォルトの名無しさん
2011/02/16(水) 22:33:43だいぶ速いんじゃね?
0936デフォルトの名無しさん
2011/02/16(水) 22:39:49演算を多重定義しないなら、動的型の分岐は一回で終わるし
分岐は仮想関数より速いんじゃないか
0937デフォルトの名無しさん
2011/02/16(水) 23:06:360938デフォルトの名無しさん
2011/02/17(木) 03:07:17luaにもとうとうわけ分からん級のwebサーバーとフレームワークまで登場したか。
0939デフォルトの名無しさん
2011/02/19(土) 00:09:210940デフォルトの名無しさん
2011/02/19(土) 11:17:12┼ (\. \! * // ,/) *
+ * (ヽ、 \ + * / /) +
⊂ニ ) * + ( ニ⊃
* + ⊂、 ( ∩___∩ ノ ⊃ + *
(/(/ ヽ | ノ ヽ / 、)ヽ) ┼
+ (/ ∨ ● ●レ /⌒) 、)ヽ)
* (/' | ( _●_) ミ' /、)、)´ +
+ (/'ヽ 彡、 |∪| ノ / AngelScript!!
+ / __ヽノ / * +
┼ (___) / +
0941デフォルトの名無しさん
2011/02/19(土) 11:17:41(´\r-、 ┼ + /`/`) +
┼ (\. \! * // ,/) *
+ * (ヽ、 \ + * / /) +
⊂ニ ) * + ( ニ⊃
* + ⊂、 ( ∩___∩ ノ ⊃ + *
(/(/ ヽ | ノ ヽ / 、)ヽ) ┼
+ (/ ∨ ● ●レ /⌒) 、)ヽ)
* (/' | ( _●_) ミ' /、)、)´ +
+ (/'ヽ 彡、 |∪| ノ / AngelScript!!
+ / __ヽノ / * +
┼ (___) / +
0942デフォルトの名無しさん
2011/02/22(火) 12:58:51.320943デフォルトの名無しさん
2011/02/22(火) 13:19:43.400944デフォルトの名無しさん
2011/02/22(火) 23:26:09.46ホントだ
0945デフォルトの名無しさん
2011/02/23(水) 00:57:43.350946デフォルトの名無しさん
2011/03/05(土) 00:31:39.91●LUAによるスクリプティングをサポート
AIの制御などにも使われる。
http://www.4gamer.net/games/032/G003263/20110304075/
0947デフォルトの名無しさん
2011/03/07(月) 11:30:28.77Luaはスクリプト言語で一番早いと聞きました
これは真実ですか?
このメリットのためにまた勉強したいのですが真実ですか?
0948デフォルトの名無しさん
2011/03/07(月) 12:18:38.39引退したなら関係ないんじゃね?
0949デフォルトの名無しさん
2011/03/07(月) 13:43:21.130950デフォルトの名無しさん
2011/03/07(月) 13:55:18.870951デフォルトの名無しさん
2011/03/07(月) 14:03:50.94このスレで引退宣言でもしたの?
0952デフォルトの名無しさん
2011/03/07(月) 14:25:06.04Lua JITならダントツで速いみたい
ttp://anlyznews.blogspot.com/2011/02/objective-c.html
0953デフォルトの名無しさん
2011/03/07(月) 16:02:18.77この拡張子outのファイルは何なんでしょうか?
0954デフォルトの名無しさん
2011/03/07(月) 17:29:35.23lua 同名ファイル.out
を実行し
lua 同名ファイル.lua
と同様に動くなら
コンパイル済みのバイトコード
ホスト側の仕様やIDEやエディタの設定がそうなってるんじゃないかな
0955デフォルトの名無しさん
2011/03/08(火) 00:08:30.83また復帰したいと思います
お世話になります
0956デフォルトの名無しさん
2011/03/09(水) 07:17:25.80ちょこちょこバグがあるけど開発活発だ…し
0957デフォルトの名無しさん
2011/03/17(木) 09:37:39.53エロイ人pdfでもいいので入門書お願いします。
0958デフォルトの名無しさん
2011/03/17(木) 12:18:04.470959デフォルトの名無しさん
2011/03/22(火) 23:55:19.49Wikiとか一通り見たけど資料が少ないので力貸してください
0960デフォルトの名無しさん
2011/03/23(水) 00:13:09.740961デフォルトの名無しさん
2011/03/23(水) 00:20:03.170962デフォルトの名無しさん
2011/03/23(水) 00:22:52.64誰だって知らないって言うわ
0963デフォルトの名無しさん
2011/03/23(水) 00:31:58.00そんで何で動かんか調べたんやけど全く分からんかった
せやから聞いたのに駄目なのか?
0964デフォルトの名無しさん
2011/03/23(水) 00:33:45.420965デフォルトの名無しさん
2011/03/23(水) 00:39:25.140966デフォルトの名無しさん
2011/03/24(木) 11:42:33.87どうやったら動かなかったのか書かないとたぶん誰にもわからない。低レベルすぎて。
0967デフォルトの名無しさん
2011/03/25(金) 18:07:23.473.0系列には対応してないが、pdfで読めるSquirrelの言語入門書
みたいなのはあるよ
あと普通の本(紙で出来た本)も出るっぽいね
0968デフォルトの名無しさん
2011/03/27(日) 02:01:24.56これかニッチすぎてすごいなw
はじめる! Squirrel - 達人出版会
http://tatsu-zine.com/books/squirrel
0969デフォルトの名無しさん
2011/03/27(日) 09:41:33.03/ / パカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ Lua!!
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
0970デフォルトの名無しさん
2011/03/27(日) 11:39:48.05何かLuaで何が出来るのか見えないため引退します
0971デフォルトの名無しさん
2011/03/27(日) 13:25:30.95オブジェクト指向やマルチスレッドに煩わされなくなるから
0972デフォルトの名無しさん
2011/03/27(日) 13:45:04.720973デフォルトの名無しさん
2011/03/27(日) 20:09:06.440974デフォルトの名無しさん
2011/03/27(日) 20:53:52.820975デフォルトの名無しさん
2011/03/27(日) 22:05:19.69わかると面白いと言ってるんだから、わからないなら仕方ないだろ。
0976デフォルトの名無しさん
2011/03/27(日) 22:06:41.860977デフォルトの名無しさん
2011/03/27(日) 22:14:25.810978デフォルトの名無しさん
2011/03/27(日) 22:15:45.400979デフォルトの名無しさん
2011/03/27(日) 22:21:08.130980デフォルトの名無しさん
2011/03/27(日) 23:27:13.60理解できないんだが
どういう感覚なんだ?
0981デフォルトの名無しさん
2011/03/27(日) 23:33:37.51理解できないんだが
どういう感覚なんだ?
0982デフォルトの名無しさん
2011/03/28(月) 01:46:28.00直感だからといって批判するつもりはない。
むしろ批判するべきではない。
直感をうまく説明できなくても、日本語として問題があるとは思わない。
0983デフォルトの名無しさん
2011/03/28(月) 03:07:12.620984デフォルトの名無しさん
2011/03/28(月) 07:31:31.260985デフォルトの名無しさん
2011/03/28(月) 11:18:23.440986デフォルトの名無しさん
2011/03/28(月) 11:27:30.790987デフォルトの名無しさん
2011/03/28(月) 13:51:15.75あまりないのなら >>968 で照会されているの買ってみようかな。
0988デフォルトの名無しさん
2011/03/28(月) 14:07:03.130989デフォルトの名無しさん
2011/03/28(月) 15:32:50.64>>644-646
0990987
2011/03/28(月) 17:21:23.50>>989
ちょっと初心者が手をだすには差が大きいような気がしました。
急ぎではないので Squirrel 3 の入門書を待ってみたいと思います。
ありがとうございました。
0991デフォルトの名無しさん
2011/03/28(月) 21:02:50.33>>968 の著者のサイトに、2.xから3.0 RCまでの違いを
主に文法とか言語の機能についてまとめたっぽいページがあるよ、参考までに
0992デフォルトの名無しさん
2011/03/28(月) 23:10:27.360993天ぷらのみ
2011/03/29(火) 13:44:24.50Luaや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
0994天ぷらのみ
2011/03/29(火) 13:47:21.12Io 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/
※リンク先確認済み
0995天ぷらのみ
2011/03/29(火) 13:49:37.65□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/
0996天ぷらのみ
2011/03/29(火) 13:51:39.670997デフォルトの名無しさん
2011/03/30(水) 01:03:18.33天ぷら屋はGJ
【Lua】組み込み系言語総合 その4【Squirrel】
http://hibari.2ch.net/test/read.cgi/tech/1301414458/
0998デフォルトの名無しさん
2011/03/30(水) 02:22:23.570999天ぷらのみ
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
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。