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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 09:11:41 ]
LuaやSquirrelなどアプリケーションへの組み込み用途で
使われるプログラミング言語についてのスレッドです
まとめwiki(なにか質問する前に必ずみること!)
wikiwiki.jp/lua/

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

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

■過去スレ
その3 pc11.2ch.net/test/read.cgi/tech/1160799232/
その2 pc8.2ch.net/test/read.cgi/tech/1063711237/
その1 pc5.2ch.net/tech/kako/1034/10341/1034182349.html

86 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 00:36:42 ]
>>85
そうですね。諦めてSquirrel側で関数定義しようかな。
DXライブラリというのを丸ごとバインドしようとしているのですが、ライブラリのAPIの仕様と
Squirrel上の関数の定義が一致していないとC++のソースからプログラム持ってくるのが
ややこしくなるので、ディフォルト引数定義しないわけにもいかない事情でして。

Squirrel JIT、オリジナル2.1.2の人と改造版2.2.2の人が別なのを忘れておりました。すいません。
ttp://squirrel-lang.org/forums/1/3314/ShowThread.aspx の 05-31-2009, 1:04 PM のZIPです。
最初の"I tried to bind with Sqrat-0.6."(オレはSqrat-0.6で固まろうとした)あたりから不安だったり...

87 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 01:26:52 ]
>>86
投稿している改変版ではフォーラムのレスであげている不具合は修正されてるよ。
ただ、自分のプロジェクトで正常に動かなかったのは本当。
もーちょっと色々動かしてほしいところだね。

88 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 23:11:57 ]
不具合の2個目の方は、文法的におかしな英文で意味不明なんですが
このスレを読むと、どうも>>41の人が言ってる話の関連のようですね。
ありがたく使わせてもらうことにします。レス下さった方ありがとうございました。

89 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 00:41:06 ]
>>88
>Cannot call method appended at Squirrel script as members of the class
> to binded C++ Classes includes meta-methods[_add/_mul/...].
> The hook getter [_get] should return false if the key is unknown.

直訳:
呼び出すことができない、メソッドを、それはSquirrelスクリプトで追加された、
メンバとして、それはクラスの、それはバインドされたC++クラスであり、
メタメソッド『_add/_mul/...』を含む。
hook getterである『_get』はfalseを返すべきである、もしkeyが未知ならば。

意訳:
Squirrelスクリプトで(クラスに)追加したメソッドを呼び出すことができない。
これ(クラス)はC++のクラスをバインドしたものでメタメソッド『_add/_mul/...』を含む。
もしもしkeyが未知の場合、hook getterである『_get』はfalseを返すべきである。


90 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 00:52:42 ]
bindedKansu
readedMojisu

91 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 01:30:25 ]
直訳:
クラスらのメンバーらとしてのSquirrelスクリプトの一点に呼び出しメソッドを
メタメソッド[_add/_mull/...]を含むbinded C++クラスへ追加されられない。
もし例のキーが未知ならば例のフックを取得する関数[_get]はfalseを返すべきだ。

methodにtheがない、bindの過去分詞はbound、hookをゲットする、その他もろもろ…

92 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 03:08:02 ]
もしかして もしかして

lua にはインクリメント演算子がないのか..!?


93 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 03:19:05 ]
>>92
ttp://www.23ch.info/test/read.cgi/tech/1205208141/776-783

94 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:38:39 ]
newEnv = {};
defaultEnv = getfenv(0);
for k, v in pairs(_G) do
newEnv[k] = v;
end
setfenv(0, newEnv);
hoge = 10;
setfenv(0, defaultEnv);
print(hoge);

書き換えたグローバル環境(newEnv)にhoge=10を書き込んでるはずなのに
Lua5.0/5.1でこれで出力がnilにならないのなんでよ
"グローバル環境テーブル"=グローバル変数が属してるテーブルってのが間違い?



95 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 14:54:20 ]
>>92
シェルスクリプトにもLispにもTclにもRubyにもPythonにも、
インクリメント演算子なんて無いんだよ。

96 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 17:25:55 ]
Luaの変数をC側から取得する前に、
実際に変数が存在するかの確認ってできませんか?

97 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 21:46:15 ]
>>94
setfenv(0,env)だと現在のスレッドの環境が変わる。
現在実行中の関数の環境を変えるにはsetfenv(1,env)で。

適当にまとめてみた
・グローバル変数の参照・代入…実行中の関数の環境
・getfenv(0)/setfenv(0,env)…スレッドの環境
・getfenv(1)/setfenv(1,env)…実行中の関数の環境
・関数の中で作られた関数は親の環境を受け継ぐ
例:
function f()
 local g = function() end
 return g
end
-- fは実行中のチャンクの環境を受け継ぎ、gはfの環境を受け継ぐ。
・load*系で作った関数はスレッドの環境を受け継ぐ
例:
local t = setmetatable({hoge="t"},{__index=_G})
hoge="main"
print(t,hoge)
setfenv(0,t) -- スレッドの環境が変更される
print(getfenv(1),getfenv(0),hoge) -- 実行中の関数はそのまま
loadstring[[
print(getfenv(1),getfenv(0),hoge)
]]()

98 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 07:26:02 ]
>>97
詳しいサンプルテラthx
スレッドの環境が問題なるのはload*系だけなのねorz

99 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 13:04:59 ]
Lua Performance Tips - Radium Software
d.hatena.ne.jp/KZR/20090712/p1


> Lua Programming Gems は, Lua のプログラミングテクニックについてまとめた,
> いわゆる「Gems本」だ。公式ページでは第2章 "Lua Performance Tips" を
> サンプルとして無料公開しており, PDF 形式でダウンロードして読むことができる。
> この内容がなかなか面白い。

> 最も基本的なポイントであるグローバル変数とローカル変数の違いから,
> table における配列とハッシュの扱いについて,文字列の内部的な扱いについて,
> 等々, Lua におけるパフォーマンスの要点について触れている。
> (略)

続きはサイトで

100 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 22:06:29 ]
sqrat0.7

101 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 15:25:37 ]
>>96
sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html#pdf-_G

102 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 23:27:37 ]
>>100
うほっ。更新内容見てフイタ。

IronPythonは事実上.NET側のオーバーロードをサポートできてないみたいだな。
明示的に書けば読めないことも無いようだが、
これで実用になるとはとても信じられない。
blogs.msdn.com/haibo_luo/archive/2007/10/11/5413239.aspx

103 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 01:06:33 ]
>>102
MessageBoxあたりで試せばすぐわかるが普通に呼べんぞ?
てゆーかなんでいきなりIronPython?

104 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 09:26:14 ]
>>95
Lisp には演算子っていう概念がないからちょっと違うけど、inc ならあるよ。
Lua の代入文の = も演算子じゃないんだよな。代入文は式じゃないから。

>>96
Lua は変数の値が nil なら定義されていないっていう意味になるので、
値を取得してみて nil かどうかを調べればいいんじゃないかな。
厳密には、グローバル変数はテーブルのフィールドとして定義されていて、
値が nil ならそのキーは存在しないことと同値なので。



105 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 10:16:10 ]
>>103
MessageBoxは試してなかったけど、確かにそうだよなぁ。
IronPython呼び出し用に再定義してあげないといけないかも。

オレ、以前はSquirrel党だったんだけど今はIronPython方面に。
組み込みスクリプトとしてはアリだと思うんだけど、どうだろう。

106 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 15:38:04 ]
Lua > Python:
PythonはC関数を登録してスクリプトから呼び出すのが結構めんどくさい。
コルーチンに制限がある。同じ関数内でしか yieldできないし、yield で引数や戻り値の指定ができない。
独自のローダーを使った import 実装がとにかく面倒。 lua なら lua_load に自分定義のロード関数わたすだけでOK

Pyhton > Lua:
スタックではなく、C上でLua変数はすべて PyObject として表現されるのでCソースの可読性が高い。
関数も整数も全部 PyObject としてC側の変数に保存する事ができる。
環境が充実。

ゲーム用途で組み込んでいる自分としては、コルーチンの使いやすさと、
自作ローダーでのロードが楽(ゲーム用の圧縮ファイルから直接スクリプトを呼び出す必要がある)
な点でLua圧勝。

もしツールに組み込むんだったらソースの読みやすさ+ライブラリ充実さで断然 Python
Eclipse + PyDevが使いやすいのも勝ち点。

107 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 18:43:12 ]
わざわざ.NETやMonoに依存したくない

108 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:40:20 ]
>>100
2日で0.71に上がってるからバグでもあったのかと思ったら、
バインドしたC++の関数の引数にSquirrel関数を渡せるようにしてほしいと
要望もらって一日で作ってきてるんですね。
Kanryuさんのパッチも入ったし仕事はやいぞ。

109 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 00:50:51 ]
AngelScript|Д`)<俺らの話題全然ないな
GameMonkey|Д`)<全くだ
CRIScript|Д`)<全くだ

110 名前:デフォルトの名無しさん [2009/07/15(水) 01:41:13 ]
ttp://www.chaiscript.com/
> ChaiScript | Easy to use scripting for C++

111 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 02:24:00 ]
チャイってミルクティーやん
と思ったらロゴがほんとにミルクティーだw

112 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 02:28:39 ]
Squirrelってリスやん

113 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 06:59:47 ]
Luaを組み込んである字幕作成ソフトAegisub
ttp://www.aegisub.net/
ttp://g-mark.jpn.org/index.php?Aegisub

字幕スクリプトの整形やエフェクトにLuaを利用してる
ライセンスはBSD、ソースは、
ttp://svn.aegisub.net/


114 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 19:21:30 ]
>>106
Python のyield は引数や戻り値の指定できるよ
Stackless Python なら同じ関数でしかyield使えないという制限もなかった気がするけどうろ覚え






115 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 10:35:29 ]
>>114
レスを見てジェネレータ関係を触ってみたら、
Pythonのバージョンによる挙動の差異が如実に出ててビビッた。

3.0系はprint文が関数化されて書式に互換性が無いとか、
ジェネレータのnext()メソッドが使えなくなってるとか。

IronPythonの現行版はまだ2.5系で、今年中に2.6系互換になる予定なのか。
オレには3.0はまだ新しすぎたようだ!

116 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 13:54:53 ]
>Python のyield は引数や戻り値の指定できるよ

www.python.jp/doc/nightly/ref/yield.html
本当だ、気づかなかった.... orz

117 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 10:08:15 ]
lua_newthread だとグローバル変数が共有されちゃうけど、
グローバル変数を独立させるようにできないの?
コードを共有して変数だけ独立させたいんだけど。

... って書いてて思ったけど、結局関数もグローバル変数と同じなんだから
lua_newstate でいいのか。

118 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 02:48:48 ]
LUAのコルーチンの中から、C++側で定義された構造体を取得し、
そのメンバの値を変更したいのですが、変更するコードをスクリプトに
記述した場合、そのコルーチンをresumeするLUAの関数をC++から何度か呼ぶと
luabind::detail::unrefというところで例外が出てしまいます
struct Test { int a; Test(){} }; という構造体があって、luabindで
luabind::module(L) [
 luabind::class_<Test>("Test")
  .def(luabind::constructor<>())
  .def_readwrite("a", &Test::a)
として、コルーチンの中で t=Test() t.a=0 の2行を書くと例外になります
この2行をコメントアウトすると、何度呼んでも例外が出ません
また、この2行をコルーチンでない普通の関数に記述してC++から呼んでも
例外が出ません
なぜコルーチン内から構造体を使用するコードを書くと例外が出るのでしょうか

119 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 06:10:29 ]
luabind は使ったことがないので想像ですが、
コルーチンから C の関数が呼ばれるときは lua_State(L の値)が違うから、
それが問題になってたりしないかな?


120 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 07:27:21 ]
>>119
ありがとうございます
すみません、質問しておいて何ですが、以下のフォーラムの記事に
よるとどうやらluabindにバグがあったみたいで、仰るとおりlua_Stateの
値が関係してるようです(英語がよく分からないので間違っているかもしれません)
それでluabind/detail/ref.hppを記事の下にあるものに置き換えたところ、
今のところ例外が出ずに動いています。。
ttp://www.nabble.com/Re:-Garbage-collector-crashes-if-luabind-objects-are-created-in-a-lua-coroutine-td24251470.html

121 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 16:36:17 ]
lua_resume(ls, ...) で中断しているスクリプトがあるんだけど、
再開するのではなく、リセットして最初から実行しなおしたい場合がある。
このとき、どうすればいい?

マニュアルには lua_newthread で作ったスレッドは解放しなくていい、
GCが管理すると書いてあるけど、さすがにいきなり

ls = lua_newthread(..);

って上書きするんだと、いつまでたっても古い ls の内容が削除されないよね?
だってLua側からしてみれば、古い ls はあくまでも中断してるのであって、
いつ再開されるかわからないからGCで回収できないし、
古い ls はもはや不要になったよー ってことをまったく Lua 側に知らせてないし。

かといって、明示的に ls が不要になったことを伝えるために

lua_close(ls);
ls = lua_newthread(...);
lua_resume(ls, ...);

とやってみると、lua_newthread で内部エラーが発生する(メモリ違反ぽい)
どうすればいいですか?



122 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 18:37:55 ]
>>121
>いつ再開されるかわからないからGCで回収できない
んな事はない。
スレッドでも他のデータでも、参照できなくなったらGCで回収される
という事に変わりはない。

123 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 18:56:50 ]
>>122
でも C のレベルでは、参照されているかどうかってわからないんじゃない?
つまり、lua_newthread() した直後は、
Lua のオブジェクトからは参照されていない thread ができるわけですよね。

逆にいうと、lua_newthread() しただけだとどこからも参照されていない事になるから、
lua_setglobal か何かを使って、どこかから参照してあげないといけないとか?


124 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 19:50:44 ]
どこのlua_newthreadの解説読んでるのか知らんが、
「新しいスレッドを"スタックに積み"……」って書いてないか?



125 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 19:59:52 ]
www.lua.org/manual/5.1/manual.html#lua_newthread
ここみてますけど、でもさすがに、スタックに積んだままじゃほかのことできないでしょ。
元の質問された方がどういう風に使っていたかによるけど。


126 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 20:09:46 ]
lua_newthreadの直後はC関数のスタックから「参照」されてるし
そのあとLuaで参照したいなら戻り値なりグローバル環境なりに押し込めばいいし
C側だけで管理したいならレジストリ+luaL_refとか使えばいいだろ

何がしたいんだかわかんねーよ

127 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 20:12:10 ]
新しいスレッドを積むのはいいんだけど、
古いスレッドが不要になったということをどうやってLUAに知らせるの?

最初に
ls = lua_newthread(...);
lua_resume(ls, ...)
を実行したとして、ls は中断状態のまま残っていると。
で、中断状態をやめて、最初から実行したいということで、いきなり
ls = lua_newthread(...);
lua_resume(ls, ...)
をもう一度呼び出すと、古い ls が上書きされるけど、古い ls への参照も、
なにもかもまったくいじっておらず、ただ単に新しいスレッドを追加しただけにすぎないわけで。

古い ls の参照カウンタをデクリメントするなり、古い ls への参照を
削除するなりの処理がまったく入っていないと。


128 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 20:38:13 ]
C++とLuaスクリプトの連携をしたいお年頃なんですが、
toluaとluabindだったらどちらが安定してる感じですか?

129 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 21:20:37 ]
>>127
だから削除したいならスレッドの参照を潰せばいいだけでしょ?
自分で最後に答え書いてるじゃん!


中断中のコルーチンが参照されなくなった場合に GC 対象になるかどうかは
マニュアルにも明言されてない、どっちなの? って質問なら確かにわかりにくいとは思うが。

int main(int argc, char* argv[])
{
 lua_State* L = lua_open();
 luaL_openlibs(L);
 lua_State* thread = lua_newthread(L);

 luaL_loadstring(thread, "print('co1'); coroutine.yield(); print('co2');");

 lua_resume(thread, 0);

 //lua_settop(L, 0);

 lua_gc(L, LUA_GCCOLLECT, 0);

 lua_resume(thread, 0);

 lua_close(L);
 return 0;
}

lua_newthreadで積んだスレッドを潰す処理であるlua_settopの行のコメントを削除すると
二回目のlua_resumeの時点で落ちるところから「GC対象になる」が正解みたいやね。

130 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 21:27:07 ]
>>127 は根本的なところを理解してないようだ。スタックにあるんだからpop すればいいんだよ。

まず

lua_State *base = lua_newstate();
lua_State *ls = lua_newthread(base);

は、

lua_State *base = lua_newstate();
lua_newthread(base);
lua_State *ls = lua_tothread(base, -1)

と意味的には等価ね。

ここで ls は、あくまでスタック上にあるスレッドの情報を、
直接ポインタとして参照してるだけで、別にリファレンスを持ってるわけではない
lua_newthread がこれを返してるのは、単に便利だからにすぎない

この状態で、lua_pop(base,1) することで、スタックの末尾にあるもの=さっき作ったスレッドが
破棄されて解放されることになる。これでスレッドが破棄された後に ls にアクセスすると、
実体がなくなってるポインタの参照になるから誤動作を引き起こす

一般的には、スレッドをスタックにつんだままにしとくのはわけわかになるので、
>>126の言ってる通りに管理することになる

131 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 21:52:47 ]
>>129
お前も使い方間違ってるよ・・・

132 名前:131 mailto:sage [2009/07/31(金) 21:59:29 ]
と思ったけど、俺が間違ってる気がしてきた・・・
メインスレッドのスタックに、新しいスレッドと関数と引数を積んでlua_resumeを呼ぶ
と思ったけど、違うのか

133 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 22:01:02 ]
>>131
え? それだけ言われてもわかんない、どこどこ、教えて!

134 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 22:04:32 ]
>>132
ってなんじゃいゴルァ!w

いやそこは合ってるはずだよ、とゆーかみんなCで組み込むなら標準ライブラリのソース読もうぜ
組み込みの基本からトリッキーなものまで一通りそろってるぜ



135 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 20:41:44 ]
lbaselib.cのauxresume(L, co, narg)の所を見るとlua_resume(co, narg)となっている。
1番目の引数がLではなくcoだということがマニュアルを読んだだけではわからなかった。

136 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 17:41:02 ]
C++でPython組み込んでて
例えば
Pythonのソースにスペルミスがあったとして
それをC++側で知る方法が全く分からない
どなたか分かりませんか

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


138 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 17:57:43 ]
>>136
Pythonスクリプトのコンパイルエラーやら実行時エラーを取得したいっていうこと?

139 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 18:02:39 ]
>>138
そのとおりです。

PyErr_Print () の出力先を変えればいいのだと思うのですが。。。うまくいきません

140 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 18:44:19 ]
>>139
PyErr系はstdoutに出力するけど、これはcで定義されたstdoutではなく
python で定義されたsys.stdout を呼んでいるので、その変数を上書きすれば良い。
sys.stdout 変数を書き換えるコードを最初に実行する。

const char *s = "\
import sys\n\
sys.stdout = MyStdout\n\
class MyStdout:\n\
 def write(s):\n\
  call_c_function(s)\n";

てやって s を実行すれば、Python側の sys.stdoutが自作クラスで上書きされる。 
もちろんあらかじめ自作C関数を call_c_function で呼び出せるように登録しておく。


141 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 21:11:59 ]
>>139
PyErr_Occurred で存在を確認して、PyErr_Fetch で取得

142 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 22:22:23 ]
AngelScript2.17記念カキコ

143 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 23:09:19 ]
>>140-141
ありがとうございます
出来ました

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




145 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 01:25:43 ]
IronPython……。
開発効率はそんなに悪くないんだが、
スクリプトで書いたメソッドの実行のレスポンスが悪いような気がするなぁ。
最初の実行時に引っかかる感じ。2回目以降は問題ないんだが……。

146 名前:tor1.digineo.de mailto:age [2009/08/17(月) 17:46:38 ]
Q. 自動保守#K9K?_D[L とは一体何なのか?
A. 外部サイトへの突撃大好きな真性厨房

韓国突撃でお馴染みの自動保守
最近は自動焼人 ★として2ちゃんねるのボランティアにも精を出す日々
だがそんな彼にも、人間らしい部分はあったのだ…

名言集
『アパッチ砲はワシが作った』
『お前が規制系キャップ取れるか審査してやるよ』
『いつもサボってばかりのキャップがウゼえ』
『俺、100人規模の集団サイバーテロの主犯だったこともあるんだぜ』
『俺の経歴カックイイだろ?』

最近のニュース
 8月15日の韓国突撃の際に歴史的大敗を喫する。ラジオでの敗戦宣言のときに声が震えていた
 本人は体調不良と言っているが…


----------------------------------------------
この自動焼人 ★メールマガジンの配信停止をご希望される方は
qb5.2ch.net/test/read.cgi/sec2chd/1250169591/
にて自動焼人 ★までご連絡ください

147 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 22:37:23 ]
Xtalが 1.0.0.0になった気配

148 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 22:48:59 ]
         \   l´⌒\⌒\ \\ \
           \ ヽ   )  )   \\ \\   
              (   \ \∩___∩ \\ 
           \   \  ⌒⌒| ノ      ヽ  \\      
              \ \   /  ●   ● ト、\ \\\ 
               \  Y |    ( _●_)  ミ\  \\\  
               \ / 彡、_  |∪| ノ   \  \\\
                 (____)―ヽノ' ヽ      ̄ ̄ ヽ\\
                                \,  j  l l .l }
                         Lua!   l (_ノノノノ



149 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 00:02:36 ]
なん・・・だと・・・

150 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 08:49:22 ]
修正点まだあるみたいだね

151 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 13:51:23 ]
XtalってC++以外からは使いにくくない?
っていうか使えるんだろうか

152 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 14:17:00 ]
>>151
バインド部分がテンプレートべったりなんだから、そのままではC++以外で使えるわけがない。

ぼやき。
Squirrelを.NET向けに移植しようかと考えたこともあったが、
この分野ではIronPythonが便利すぎてやる気が失せた。
起動が重過ぎる点を除けば処理速度以外は特に不満点はない。

Luaに関しては.NET判処理系のNuaがあるみたいね。

153 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 16:54:28 ]
>>152
ですよねー
もうちょい汎用的なバインド方法が欲しいところだ

154 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 19:43:09 ]
>>151
試してないけど
extern "C" {}
でC言語リンケージに変換してみるとか。



155 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 05:27:30 ]
IronRubyも0.6まで着てたな。Ruby on Railsが動くまでになったらしい。
Rubyも楽に組み込めるといいんだけどね。例えば、スクレイピングの部分だけまかせるとかさ

156 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 08:56:09 ]
IGDAで Xtal を扱う勉強会があるみたい。
www.igda.jp/modules/bulletin/index.php?page=article&storyid=122


157 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 11:13:19 ]
Xtalっておいしいの?

158 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 11:31:58 ]
食わず嫌いはいけませんよ

159 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 11:45:23 ]
4時間で6テーマか。
Xtalに特に興味があるなら別のイベントに期待って感じかな。

160 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 12:08:05 ]
JITコンパイルでC並の速度で動く組み込み言語とかない?

161 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 12:19:50 ]
AngelScriptがJITコンパイルできるようになったらしいが、やり方がわからない…

162 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 12:24:07 ]
>>160
言語じゃないけど、NativeClient

163 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 00:34:11 ]
昔は高速な組み込み言語はLispだったな。
JITコンパイルじゃないが。

164 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 12:15:39 ]
>>160
ttp://www.compuphase.com/pawn/pawn.htm



165 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 23:51:16 ]
>>164
これ良さそうだけど人気ないのかな

166 名前:164 mailto:sage [2009/09/09(水) 02:11:46 ]
164 書いた後で発見
ttp://pawn.my-sv.net/index.php?%B4%F0%CB%DC

167 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 08:52:36 ]
現状Pythonの組み込みで満足してるというのに、他の言語を検討する必要性をまったく感じない……。

168 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 11:08:55 ]
>>167
帰れ

169 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 12:24:04 ]
>>160
LuaJIT 速いらしいよ。
C ほどじゃないだろうけど、Python には大体勝ってるみたい。
shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=luajit&lang2=python&box=1

170 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 14:17:34 ]
Lua は JIT じゃなくても python より速いよ

171 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 14:30:54 ]
IronPythonはLuaより倍ほど速いがな。(2.0.1)の場合。
2.6系ならさらに速くなってる。
ただし速いのは数値計算で、文字列計算などはPythonより遅かったりするが。

172 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 15:36:57 ]
組み込み言語って
「Cで書いた (だから速い)」と喧伝しながらこっそりと組み込むものではないのか?

173 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 15:43:13 ]
たぶn Luaやリス使っている人はゲームの組み込みが多いと思われるのですが、
Pythonを組み込みに使っている人は、どんなアプリに使ってますか?

174 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 17:14:54 ]
>>171
マジで!? IronPython スゴイんだな。
数値計算に関してなら、以前に計測したとき Lua は Python より2〜5倍速かったんだけど。
数値計算については .NET すごいということなのかな?



175 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 19:32:49 ]
LuaJITとかCに比べたら桁違いに遅いんじゃない?

176 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 19:37:08 ]
というか、Cで各プログラムと速度面で執拗に比較するやつがいるが、意味が分からない。
C/C++にスクリプト言語の動作を追加するのは柔軟性を増やすことで
開発・運用を容易にするためであって速度のためではない。

スクリプト言語で実装した部分が重いなら改めてC/C++側に移植することを考えればいいだけのこと。

177 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 19:43:51 ]
ユーザがプログラムを拡張するのに使えるだろ

178 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 19:55:55 ]
組込み言語に今注目してる業界にゲーム業界があるが、
ユーザによる拡張をばりばり推進するぜ派(洋ゲー、リアルタイム物メイン)と、
そんなもん完全にアウトオブ眼中だぜ派(和ゲー、アドベンチャー系メイン)で、
まっぷたつですな。

179 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 20:10:01 ]
社風の違いだからどうにもならない。
プログラマの部長級が開放的という幸運なケースであってさえ、
総務営業やら会社も巻き込むとやっぱり日本的感覚で
ゲームの内情を客に見せるのは御法度になるね。
プログラマ出身のワンマン社長のところしかありえないでしょう。



180 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 09:18:47 ]
プラットフォームの違いもある。
洋ゲーと言えども、360やPS3でMODを許しているものは少ないだろう。

>>178の(和ゲー、アドベンチャー系メイン)ってPCのエロゲ・ギャルゲのことを
指してるんだろうけど、俺としては違和感があるなぁ。


181 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 23:34:31 ]
ttp://www.amazon.co.jp/Programming-Lua-プログラミング言語Lua公式解説書-Roberto-Ierusalimschy/dp/4048677977/
この本持ってる人いる?
luaを始めて見ようと思ってamazonで検索して出てきて最新ぽいから買おうと思ってるんだけど

182 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 21:34:58 ]
>>181
読んでみようと思って大きな本屋まで行ってきたが、
SQLiteの本とDirectXの本読んでたら満足しちゃってそのまま帰ってきてしまった。

183 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 05:14:33 ]
>>181
リファレンスマニュアルの日本語訳も収録してるなら長く使えそうかも。
リファレンス読んでよくわからないところを本文で確認とかできそうだし。

sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html
よくここにお世話になるんだけど、内容が古いのか、
本家の英語版にくらべると結構抜けがあるんだよね。

184 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 10:12:06 ]
>>182
おいw



185 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 18:27:44 ]
ttp://blog-imgs-26.fc2.com/d/i/n/dinalia/WS000206.jpg
このSSで使用してるソフトご存知の方いたら教えていただけませんか

186 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 21:15:21 ]
ttp://mystone.jp/
ttp://tibid.seesaa.net/






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<247KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef