【Lua】組み込み系言語総合 その6【Squirrel】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2013/03/10(日) 15:10:32.28使われるプログラミング言語についてのスレッドです
まとめwiki(なにか質問する前に必ずみること!)
http://wikiwiki.jp/lua/
その他の参考URLは>2から
■前スレ
【Lua】組み込み系言語総合 その5【Squirrel】
http://toro.2ch.net/test/read.cgi/tech/1321063450/
■過去スレ
その4 http://hibari.2ch.net/test/read.cgi/tech/1301414458/
その3 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/
0044デフォルトの名無しさん
2013/03/24(日) 20:15:13.570045デフォルトの名無しさん
2013/03/24(日) 20:31:15.66function LC(f)
local t = {}
for x in coroutine.wrap(f) do
table.insert(t, x)
end
return t
end
-- rangeの実装は省略
local t = LC(function () for x in range(10) do coroutine.yield(x ^ 2) end end)
0046デフォルトの名無しさん
2013/03/24(日) 20:32:18.04pythonの関数呼び出しは単純にC言語のコールスタックに依存してるので、どんどん積み上がっていくよ
0047デフォルトの名無しさん
2013/03/24(日) 20:33:56.31これはキモイな
やはりpythonには勝てないか
0048デフォルトの名無しさん
2013/03/24(日) 20:43:35.17Luaは区別無し。名前の無いfunctionがlambda
0049デフォルトの名無しさん
2013/03/24(日) 20:57:01.13やるとしたらそんな感じだろうね
でも、内包表記って言うよりはmapみたいな雰囲気になっちゃうよね
内包表記って数学の集合みたいに宣言的に記述できるってところがメリットのひとつだからなぁ
数学だとこんな感じ? S = { x^2 | x ∈ N, x < 10, x mod 2 = 0 }
やっぱり言語としてサポートしないとつらそう
0050デフォルトの名無しさん
2013/03/24(日) 21:05:14.50すごく同意
pythonのlambdaは中途半端だね
Luaは文法がコンパクトですっきりしていて、すごく便利って感じではないが
でもコルーチンをサポートしてたり、末尾呼び出し最適化してたりで
ちょうどいい塩梅
0051デフォルトの名無しさん
2013/03/24(日) 21:14:17.850052デフォルトの名無しさん
2013/03/24(日) 21:27:46.25lispのリーダーマクロっぽいのほしいな
0053デフォルトの名無しさん
2013/03/24(日) 21:31:07.630054デフォルトの名無しさん
2013/03/24(日) 21:33:14.06もっと欲張るならPythonも比較的組み込みやすい
0055デフォルトの名無しさん
2013/03/24(日) 21:59:26.75なおrubyも内包表記はない模様
0056デフォルトの名無しさん
2013/03/24(日) 22:59:45.74実行時のメモリのフットプリントが数倍くらい多い
APIがスタックベースじゃないため拡張は幾分書きやすいけど
そのせいでネイティブとの行き来が増えると実行コストは大きくなる傾向がある
JITはまだ実用レベルじゃない
みたいな感じ(俺調べ)
Luaに取って代わるかは知らんけど、二番煎じ処理系(Sq*とかxta*とか)は駆逐できそうな感じではある
0057デフォルトの名無しさん
2013/03/25(月) 00:06:08.811万6千行に対し二万四千行。
んで、LuaのソースコードはCでもC++でも
どちらでもコンパイル可能なので
Luaの関数の内部からC++のライブラリが使える
(ただしthrowが外側に貫通してはいけないけどね)
yaccとかも不要。
なんというか、最近のbisonとかは内部でm4使ってるとか
いろいろとめんどくさい仕様に改悪されてるから助かるw
0058デフォルトの名無しさん
2013/03/25(月) 03:30:49.12今のパーサはシンプルな手書き再帰下降でLL(2)だから
内包表記の対応は難しいんじゃないかな
0059デフォルトの名無しさん
2013/03/25(月) 07:51:15.04構文木を介さず直接コード生成してるところが逆にネックになりそう
0060デフォルトの名無しさん
2013/03/25(月) 17:54:00.04全部でこれだけかよってびっくりしたわ
これなら個人で解析出来るな、今日から読んでみるわ
0061デフォルトの名無しさん
2013/03/25(月) 21:59:44.09ついでに「:」か「.」を別の記号に変えたくなるけどね
0062デフォルトの名無しさん
2013/03/26(火) 01:13:30.00luajitでは動かないみたいだが。
0063デフォルトの名無しさん
2013/03/27(水) 21:52:23.470064デフォルトの名無しさん
2013/03/28(木) 08:20:38.05lua-5.2.2
http://www1.axfc.net/uploader/so/2847097
0065デフォルトの名無しさん
2013/03/28(木) 08:36:16.340066デフォルトの名無しさん
2013/04/02(火) 21:46:57.640067デフォルトの名無しさん
2013/04/02(火) 22:04:23.950068デフォルトの名無しさん
2013/04/02(火) 22:09:38.32依存関係がMSVCRT.DLLってことはMingW?
0069デフォルトの名無しさん
2013/04/02(火) 22:16:19.200070デフォルトの名無しさん
2013/04/02(火) 22:26:09.110071デフォルトの名無しさん
2013/04/02(火) 22:27:32.440072デフォルトの名無しさん
2013/04/02(火) 23:20:37.81DLLって公開する意味あるの?
不整合とか気にするジャン。
0073デフォルトの名無しさん
2013/04/02(火) 23:24:16.560074デフォルトの名無しさん
2013/04/03(水) 00:02:33.52DLL側のランタイムでデータフォーマットや
整列条件違ったら困ったことにならないの?
0075デフォルトの名無しさん
2013/04/03(水) 00:15:02.910076デフォルトの名無しさん
2013/04/03(水) 00:31:33.850077デフォルトの名無しさん
2013/04/03(水) 01:20:18.06DLLの境界問題出にくいけどな
ちゅーかどこぞの馬の骨が捨て置いたバイナリに喰いつく暇があったら
自分のプロジェクトにLuaのソースコード突っ込んだ方が建設的かと
0078デフォルトの名無しさん
2013/04/03(水) 01:22:27.160079デフォルトの名無しさん
2013/04/03(水) 20:17:59.94中の妖精さんと高額契約したのですか?
0080デフォルトの名無しさん
2013/04/03(水) 21:11:29.32|/__
ヽ| l l│<ハーイ
┷┷┷
0081デフォルトの名無しさん
2013/04/03(水) 21:37:47.94(この方式は他も追従し追いつかれつつある)
VMがレジスタマシンであること
設計の合理性
(整数演算の切捨てなど、ボトルネックの分析が良かった)
JITなど速い方式の実装も行われている
かな
0082デフォルトの名無しさん
2013/04/03(水) 21:55:44.63doubleのほうが百万倍遅いじゃないですか気持ち的に
0083デフォルトの名無しさん
2013/04/03(水) 22:05:29.72Luaはそれを切り捨てたのよ。
それでもベンチマーク成績は高かった。
つまり、演算以外の部分が問題だったわけね。
0084デフォルトの名無しさん
2013/04/03(水) 22:11:56.98intとdoubleの変換が遅かったりして。
0085デフォルトの名無しさん
2013/04/03(水) 22:14:30.36そこいらへんにたくさんあるARMとで、天と地ほどの差があるなw
0086デフォルトの名無しさん
2013/04/03(水) 22:16:23.31が5.2でライブラリが追加されたからそれもほぼ解消
0087デフォルトの名無しさん
2013/04/03(水) 22:19:25.09浮動小数演算がボトルネックにはならなかったって話と、整数演算が
ボトルネックだったって話は関係ないじゃん。
0088デフォルトの名無しさん
2013/04/03(水) 22:28:42.34http://lua-users.org/wiki/FloatingPoint
0089デフォルトの名無しさん
2013/04/03(水) 22:31:35.750090デフォルトの名無しさん
2013/04/03(水) 22:52:19.88浮動小数点演算の遅さは実は問題ではなかったという判断
だから整数演算いらんというデザイン
0091デフォルトの名無しさん
2013/04/03(水) 22:53:39.830092デフォルトの名無しさん
2013/04/03(水) 23:01:32.810093デフォルトの名無しさん
2013/04/03(水) 23:14:14.82つまり、整数演算切り捨てたこととLuaが速いことは関係ないってことだろ。
>>81はボトルネックと言っているが。
0094デフォルトの名無しさん
2013/04/03(水) 23:25:40.76整数演算がボトルネックとは言ってないし
>>83や>>90のフォローもそれを補強していると思うんだが
読解力がないのならしょうがない
0095デフォルトの名無しさん
2013/04/03(水) 23:31:28.29ローカル変数をわざわざ指定しなきゃならんとか
書く側からすれば面倒な仕様だけど多分これだとGCがやりやすいんだろうなとか
ソース見たわけじゃないから分からんけどね
0096デフォルトの名無しさん
2013/04/04(木) 20:48:23.650097デフォルトの名無しさん
2013/04/04(木) 20:55:01.090098デフォルトの名無しさん
2013/04/05(金) 20:50:30.10と思ったのに!
0099デフォルトの名無しさん
2013/04/10(水) 01:40:40.270100デフォルトの名無しさん
2013/04/12(金) 20:39:39.690101デフォルトの名無しさん
2013/04/13(土) 06:03:24.530102デフォルトの名無しさん
2013/04/13(土) 10:14:35.220103デフォルトの名無しさん
2013/04/13(土) 12:50:15.630104デフォルトの名無しさん
2013/04/13(土) 16:49:05.32JSとの互換性をある程度制限したサブセットならluaのVMで動かせるんじゃないか
0105デフォルトの名無しさん
2013/04/13(土) 21:56:15.100106デフォルトの名無しさん
2013/04/13(土) 23:11:15.340107デフォルトの名無しさん
2013/04/13(土) 23:24:25.010108デフォルトの名無しさん
2013/04/14(日) 08:39:34.90EclipseのM2M開発環境
> EclipseはArduinoとRasberry Piデバイスの開発のチュートリアルを提供している。
> これには組み込みLuaランタイム(Mihini)とLuaの開発環境(Koneki)のセットアップ方法も含まれている。
Luaがセンサーネットワークの世界に旅立っていった。
0109デフォルトの名無しさん
2013/04/14(日) 08:43:24.100110デフォルトの名無しさん
2013/04/14(日) 10:19:21.310111デフォルトの名無しさん
2013/04/14(日) 10:23:03.290112デフォルトの名無しさん
2013/04/15(月) 14:31:12.59オブジェクトのインスタンスとメソッドから関数ポインタを作る機能のようだ
普通の関数もクラスメソッドも関数ポインタに代入できる
3.0では値型のオブジェクトは使えなくなって
参照型のオブジェクトのみになるらしい
そうなるといっそうC#やJavaっぽくなる
0113デフォルトの名無しさん
2013/04/17(水) 19:02:58.71大々的にLuaBindのことを日本語で語ってるような場所ってないですかね?
0114デフォルトの名無しさん
2013/04/21(日) 06:56:41.22┼ (\. \! * // ,/) *
+ * (ヽ、 \ + * / /) +
⊂ニ ) * + ( ニ⊃
* + ⊂、 ( ∩___∩ ノ ⊃ + *
(/(/ ヽ | ノ ヽ / 、)ヽ) ┼
+ (/ ∨ ● ●レ /⌒) 、)ヽ)
* (/' | ( _●_) ミ' /、)、)´ +
+ (/'ヽ 彡、 |∪| ノ / AngelScript!!
+ / __ヽノ / * +
┼ (___) / +
/ /
(_ ⌒丶..
| /ヽ }.
し ))
ソ トントン
0115デフォルトの名無しさん
2013/04/24(水) 18:36:10.04MarmaladeがRADツールMarmalade Quickを正式リリース 2013-02-11 14:14
ttp://www.madewithmarmalade.com/node/60359
またMarmalade Quickは“ZeroBrane Studio” IDEと統合されており、Luaスクリプトの容易なオーサリング、デバッグが可能です。
0116デフォルトの名無しさん
2013/04/30(火) 22:06:32.31状況に応じて構造体の中身が変わる物を
squirrel から C++ 側に送りたい時って
何かいい方法はあるのでしょうか。
ディフューズ色が DWORD なのが問題なのですよね…。
他は殆どが FLOAT なのに…。
0117デフォルトの名無しさん
2013/05/01(水) 02:36:38.25http://www.publickey1.jp/blog/13/asmjsjavascript.html
0118デフォルトの名無しさん
2013/05/01(水) 02:41:19.590119デフォルトの名無しさん
2013/05/01(水) 15:59:59.18普通にフラグ判定して値を代入しなおすだけではないの?
float も dword も4byte で領域的には同じだからあとは
解釈次第だと思うんだけど何にはまってるんだろう
0120デフォルトの名無しさん
2013/05/01(水) 16:51:43.21バインダはSqrat?
0121デフォルトの名無しさん
2013/05/01(水) 22:59:00.95それと追加で質問なのですが、 C++側でSqrat::Classで登録したクラスを、 SquirrelからC++関数の呼び出しの引数に指定した際に、 C++関数内からクラスの実体を得る方法はあるのでしょうか?
RootTable(vm).GetSlotを使えばメンバ関数・変数にはアクセス出来るのですが、 クラスのポインタを取得して普通のC++のクラスのように扱えたらなと思ったので。
0122デフォルトの名無しさん
2013/05/02(木) 23:32:28.390123デフォルトの名無しさん
2013/05/03(金) 02:38:40.280124デフォルトの名無しさん
2013/05/03(金) 14:30:49.45AngelScript|Д`)ノ<きたわよ
そういうのはAngelScriptでやると簡単。
0125デフォルトの名無しさん
2013/05/03(金) 14:40:55.38┼ (\. \! * // ,/) *
+ * (ヽ、 \ + * / /) +
⊂ニ ) * + ( ニ⊃
* + ⊂、 ( ∩___∩ ノ ⊃ + *
(/(/ ヽ | ノ ヽ / 、)ヽ) ┼
+ (/ ∨ ● ●レ /⌒) 、)ヽ)
* (/' | ( _●_) ミ' /、)、)´ +
+ (/'ヽ 彡、 |∪| ノ / AngelScript!!
+ / __ヽノ / * +
┼ (___) / +
/ /
(_ ⌒丶..
| /ヽ }.
し ))
ソ トントン
0126デフォルトの名無しさん
2013/05/03(金) 18:36:39.380127デフォルトの名無しさん
2013/05/08(水) 22:07:08.55方法を解説してる所ってありませんか?
メンバ関数経由でset getするのしか見つからず…
0128デフォルトの名無しさん
2013/05/08(水) 23:56:32.38ラッピング関数作ってると思うけど
0129デフォルトの名無しさん
2013/05/09(木) 00:59:43.08対応するC++のメンバ変数をそのまま返す/設定するってのできるっちゃできるけどね
メンバ関数でやるより逆にコストかかる仕組みになるし多値返しできないしで
ぶっちゃけ言語サポート無しに無理するもんじゃねーなという結論に達した
0130デフォルトの名無しさん
2013/05/09(木) 05:31:19.080131デフォルトの名無しさん
2013/05/09(木) 05:46:34.650132デフォルトの名無しさん
2013/05/09(木) 18:39:34.03AngelScript|Д`)ノ<きたわよ
0133デフォルトの名無しさん
2013/05/09(木) 18:43:49.690134デフォルトの名無しさん
2013/05/09(木) 22:03:41.56なるほど、やはりその方法しかないのですね。
教えて頂きありがとうございました。
0135デフォルトの名無しさん
2013/05/10(金) 21:30:02.440136デフォルトの名無しさん
2013/05/10(金) 22:11:42.38┼ (\. \! * // ,/) *
+ * (ヽ、 \ + * / /) +
⊂ニ ) * + ( ニ⊃
* + ⊂、 ( ∩___∩ ノ ⊃ + *
(/(/ ヽ | ノ ヽ / 、)ヽ) ┼
+ (/ ∨ ● ●レ /⌒) 、)ヽ)
* (/' | ( _●_) ミ' /、)、)´ +
+ (/'ヽ 彡、 |∪| ノ / AngelScript!!
+ / __ヽノ / * +
┼ (___) / +
/ /
(_ ⌒丶..
| /ヽ }.
し ))
ソ トントン
0137デフォルトの名無しさん
2013/05/16(木) 18:07:30.53メンバ変数にアクセスする場合の話なのですが、
obj.menba は __get や __set でアクセスすればいいのですが、
obj.menba.var という風なメンバにアクセスしようとしたら、
[the index 'var' does not exist] というエラーが出てしまいました。
こういった使い方をしたい場合はどうやって登録すればいいのでしょうか。
0138デフォルトの名無しさん
2013/05/17(金) 00:17:43.29AngelScript|Д`)ノ<きたわよ
AngelScriptはその辺得意だよ。
0139デフォルトの名無しさん
2013/06/08(土) 18:40:11.38ttp://www.gmscript.com/
Q-Games の新作 PixelJunk, Inc. で使われているそうな…
ttp://pixeljunk.jp/inc/%E4%B8%BB%E3%81%AB%E7%8C%BF%E3%81%A8%E5%83%8D%E3%81%84%E3%81%A6%E3%81%BE%E3%81%99%E3%80%82/
0140デフォルトの名無しさん
2013/06/08(土) 19:25:57.510141デフォルトの名無しさん
2013/06/08(土) 19:42:34.920142デフォルトの名無しさん
2013/06/08(土) 20:01:20.72どう「いい」やつが欲しいのかによる・・・んじゃね
0143デフォルトの名無しさん
2013/06/08(土) 20:49:05.20その資料がここにある
ttp://cedil.cesa.or.jp/session/detail/301
無料だが登録が必要
日本語だとこれ関係しか見当たらぬ…
0144デフォルトの名無しさん
2013/06/09(日) 15:47:26.83■ このスレッドは過去ログ倉庫に格納されています