1read 100read
2012年07月プログラム230: 【Lua】組み込み系言語総合 その5【Squirrel】 (787)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
初心者の俺が初めて覚えるプログラム言語 (471)
JavaScriptスレ2 (537)
【最速へ】LowLevelVirtualMachine【LLVM】 (517)
JAVAってこんなことも出来ないの? (473)
【TDD】テスト駆動開発【TestFirst】 (230)
UNIXプログラミング質問すれ Part10 (536)
【Lua】組み込み系言語総合 その5【Squirrel】
1 :2011/11/12 〜 最終レス :2012/11/03 LuaやSquirrelやAngelScriptなどアプリケーションへの組み込み用途で 使われるプログラミング言語についてのスレッドです まとめwiki(なにか質問する前に必ずみること!) http://wikiwiki.jp/lua/ その他の参考URLは>2から ■前スレ 【Lua】組み込み系言語総合 その4【Squirrel】 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/
2 : □Lua ttp://www.lua.org/ (本家) ttp://lua-users.org/ (lua-users) ttp://luaforge.net/ (LuaForge) http://sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html (5.1マニュアル和訳) Lua言語の紹介 http://staff.aist.go.jp/yutaka.ueno/lua/docsjp.html 入門Luaプログラミング http://www.amazon.co.jp/dp/4797342722/ □Lua as an Effect File Format for OpenGL http://prideout.net/blog/?p=1 □Squirrel http://www.squirrel-lang.org/ (本家) http://sourceforge.net/projects/squirrel/ http://sourceforge.net/projects/sqplus/ (SqPlus) http://sourceforge.net/projects/squirrelsh/ (Squirrel Shell) http://wikiwiki.jp/lua/?Squirrel_Lang%2Ftoc (wiki内2.1マニュアル和訳) □AngelScript http://www.angelcode.com/angelscript/ □Xtal(ゲーム向け。スタックを意識しなくていい?) http://d.hatena.ne.jp/xtalco/ http://code.google.com/p/xtal-language/ http://blog.livedoor.jp/dankogai/archives/50836939.html □elastiC http://www.elasticworld.org/
3 : ■関連してるかもしれないスレ Io Language http://hibari.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統合M32【Java/C++/Ruby/Python/Perl】 http://hibari.2ch.net/test/read.cgi/tech/1320318310/ 「コンパイラ・スクリプトエンジン」相談室15 http://hibari.2ch.net/test/read.cgi/tech/1296214398/ Garbage Collection (GC)について語るスレ http://pc11.2ch.net/test/read.cgi/tech/1141646850/
4 : おひさー
5 : firefox9 JS JITでの型推論 https://dev.mozilla.jp/2011/11/type-inference-to-firefox-beta/ 実はUnityのJSのコンパイルでも使われてた。 http://forum.unity3d.com/threads/1117-Javascript-Version http://www.cis.sojo-u.ac.jp/~izumi/Unity_Documentation_jp/Documentation/ScriptReference/index.Performance_Optimization.html 動的型を型推論で置き換えるのってschemeのstalinで聞いたことあったけど、 ほかの言語実装にも広がり続けるのかな。 30%upとか、LuaJITで未実装で実装されたら凄いことになりそうだけど、 今の速度なら実質同じような事できてるのかも。
6 : AngelScript|Д`)<新スレ乙
7 : >>6 前スレもそうだったけどAngelScriptの話題がなぜ定期的に挙がるんだww
8 : あ、スマンLuaとSquirrelだけのスレかと思ったら組み込み系全般のスレだったか。 ネタで書き込んでたのかと思ってたw勘違いスマン
9 : http://attractivechaos.github.com/plb/ js,lua,pyのJIT実装は世界が違ってきてる・・・
10 : \ l´⌒\⌒\ \\ \ \ ヽ ) ) \\ \\ ( \ \∩___∩ \\ \ \ ⌒⌒| ノ ヽ \\ \ \ / ● ● ト、\ \\\ \ Y | ( _●_) ミ\ \\\ \ / 彡、_ |∪| ノ \ \\\ (____)―ヽノ' ヽ  ̄ ̄ ヽ\\ \, j l l .l } Lua! l (_ノノノノ
11 : Added 'final' and 'override' keywords to the script language for better control over inheritance http://angelscript.svn.sourceforge.net/viewvc/angelscript?view=rev&revision=1039
12 : >>9 JIT実装ってJust in timeの略語だよね? よく分からないんだけど必要最小限の構成にしたluaって認識でいいのかな。 余計な機能がない分早い、みたいな
13 : >>12 本家の実装だとスクリプトをアーキテクチャに依存しないバイトコードに翻訳して実行するけど、LuaJITはネイティブマシンコードに翻訳実行するのが違い。
14 : 違いねえ
15 : >>13 なるほど。つまり通常のLuaがJavaScriptだとするなら JIT実装とはC言語みたいなもの、って認識でいいのかな。
16 : LuaとかAngelScriptとかって何に使うの? これらを用いるとどんな利点があるの?
17 : 一見してメリットが思い付かなきゃ どのみちアンタにゃ必要ねえよ
18 : 心閉ざすなよww
19 : アルゴリズムを外部に置けるってだけでもずいぶん便利だと思うけどね。 あとはスクリプトの処理を一時中断して実行ファイルの方へ処理を戻せるのとか。
20 : コードを外部化するメリットもあるし、ちょっとした設定をXMLの代替のようにも活用できるし便利だよ。
21 : // / / パカッ //⌒)∩__∩ /.| .| ノ ヽ / | | ● ● | / | 彡 ( _●_) ミ Lua!! / | ヽ |∪| /_ // │ ヽノ \/ " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
22 : iLuaBoxなんてのがあるんだな
23 : LuaでRPGつくる書籍立ち読みしてやってきた新参だが 今から勉強するなら LuaとSquirrelどっちやれば報われるんだ?
24 : >>23 メジャーなLuaにしとけ。
25 : 質問です。 luaで 011 012 013 というようなゼロパディングされた連番を生成するためにはどうしたらよいでしょうか。
26 : string.format
27 : >>661 論外。強者なら普通にやれる
28 : すまんスレ間違えた
29 : >>26 ありがとうございました。
30 : リリースビルドした実行ファイルから文字列変換(..とtostring)を実行すると テーブルがぶっ壊れるという現象に遭遇した
31 : >>30 あんたのコードにバグがある。
32 : >>30 論外。強者なら普通にやれる
33 : javascriptをCに組み込んで使いたいんだけど、そういうライブラリ知りませんか? 商用利用だとライセンス的に問題があるのかな
34 : SpiderMonkeyぐらいしか知らないなぁ ただでさえ面倒なJSなのにCという縛りは辛いからお勧めはしない
35 : Win環境ならJScriptもあるな さらに面倒だけど
36 : そうですか… デザイナーに習得させるためのコストがゼロなのでJavascriptが良かったんだけど 別の言語探してみます
37 : 念のため聞くけど、C縛り?C++は駄目?
38 : CouchDBとか、組み込みjsを使うプロダクトが増えているけど、 ECMAScriptの規格はブラウザ組み込み向けの機能だけしかない。 C/C++組み込み http://code.google.com/intl/ja-JP/apis/v8/embed.html https://developer.mozilla.org/en/SpiderMonkey JVM http://www.mozilla.org/rhino/ C# http://javascriptdotnet.codeplex.com/ (去年で止まってる?他にあるかも) Unity http://unity3d.com/support/documentation/ScriptReference/index.html 下の実践JSって本がサーバーサイドJSの本だから、独立言語として使うためのCommon APIのことが書いてあるけど、組み込みについては書いてないと思う。 http://dev.ariel-networks.com/wp/archives/501
39 : >>37 条件が曖昧でしたね、C縛りではありません CまたはC++で、Visual C++ でビルドします
40 : >>39 それなら既に >>38 が出してくれてるけど、 ・V8(修正BSDライセンス) chrome のJSエンジン ・SpiderMonkey(MPL/GPL/LGPL) Firefox のJSエンジン ・JavaScriptCore(修正BSDライセンス) SafariのJSエンジン (WebKitの一部) とかお好きなものを使えばいいんじゃないかと v8 が実装が独立してたライブラリになっててわりとお手頃。ためしに組んでみたことあるけど、 PC用のアプリなら全然問題なく組み込めるよ。ライセンスもBSD系なので商用でも気軽に使える。 SpiderMonkey は Mozilla (firefox) の一部として公開されてる関係で、どう切り出してきて どう作業したらいいかぱっと見わかりづらくて大変だと思われる SpiderMonkey を本当に「組み込み向け」に移植調整した Jsmn ってのもあって、 小さくまとまってるけどライセンスはMPLなのでちょっと使いづらい JavascriptCore は良く知らない
41 : luaでC++のSTLやBoostみたいなサブルーチン集みたいなのないの?
42 : そういうこと言う人はC++を普通に使っといたほうが幸せだぞ
43 : まあJavascript組み込むならV8が無難だろうね。 組み込むの簡単だし。
44 : javascriptにもprototype.jsとかよく使うものまとめてものあるから luaにもあるのかと思ったけどまだないってこと?
45 : いろいろ自分で整備してる人はいるかもだけどメジャーなものは記憶にないな lua だと、そういうのが必要になりそうな場合は直接 C/C++ でライブラリ書いた上で 呼び出しの口だけ作る、といった形にするのが一般的なのでニーズが無い。 誰かが良いものつくれば広まる可能性はあるかもね 単にバランスの問題でね。スクリプトレベルで高度なライブラリほしければ python や ruby とか全部入りの高級なのを組み込んだほうがてっとりばやい。 lua はそういうのはいらないって分野でこそ使われてる
46 : CPANやRubyForgeみたいなものはあるが、 http://luaforge.net/projects/ クオリティー担保してまとめたものがあるかは知らない。
47 : ファイルシステム ネットワーク プロセス スレッド ウィンドウシステム クオリティを担保するのは言語ではなくOSだ 強いて言うならばスレッドは言語の影響を受けやすい
48 : とりあえずluaをスクリプティングに使いたいなら luarocksでposixなりstdlibなりをインストールすればいいな
49 : Luaは抽象度が高いし、アプリドメインの一番上で活用されるから、汎用ライブラリの出番は少ない。
50 : >>1-49 論外。強者なら普通にやれる
51 : stdlibってのがutility関数っぽい。 見た感じwebアプリケーション向けのライブラリが沢山あるのは、他のスクリプト言語みたいに単独で使うつもりなのかな。
52 : stdlibってやつを軽く調べてみたけど、実用はなさそう。
53 : LuaJITのGitリポジトリでは、共有ライブラリ化とPPC向けが実装済みで次(beta9)ぐらいに入るらしい。 http://luajit.org/sponsors.html#sponsorship_bc 共有ライブラリって名前通りに実行ファイルにしたり、LuaJITから呼んだり出来るのか?
54 : bytecode をうめこんだネイティブなオブジェクトファイルを生成して、それを直接アプリとリンクしたり、 共有ライブラリのなかに入れたりできるようにする、とあるなかな lua で書いたものが、JIT処理つきで Cベースのプログラムと直接リンク可能になるってことではないかと
55 : 探してもなかったので自分で便利関数書いてみた 公開してみようかと思ったらluaforgeが新規受付してないっぽい 今はどこに集積されてるんだ
56 : codepadやここでいいんじゃね
57 : パッケージのリポジトリならluarocksもあるけどこっちは受け付けてるのかな? http://luarocks.org/en/Creating_a_rock バージョン管理でソースあげれるところは結構いっぱいあるが、差は良く分からない。 http://repo.or.cz/w?a=project_list;t=lua https://github.com/languages/Lua https://bitbucket.org/repo/all?name=lua http://code.google.com/hosting/search?q=label%3Alua&projectsearch=Search+projects
58 : Lua 5.2.0 (rc2) http://www.lua.org/work/
59 : 限定された機能しか使えない環境下でcronが使いたかった。探してもなかったので作った。 https://github.com/hiroro7/simple-lua-cron/tree/master
60 : >>59 cron.luaでダメな理由は何だったの?
61 : >>60 こんなものあったのですね。探し方がたりなかった。 ちなみにcron.luaだとcron job同士が遅延時間で絡む状態が作れなかったので、どっちにしても自分で作ってたかもしれないです。
62 : >>53-54 ほんとだ、単にバイトコードをCの文字列にするだけみたい。
63 : を、リスト処理関数まとめたんだ。
64 : // / / パカッ //⌒)∩__∩ /.| .| ノ ヽ / | | ● ● | / | 彡 ( _●_) ミ Lua!! / | ヽ |∪| /_ // │ ヽノ \/ " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
65 : luaってGCが頻繁に起こるようなプログラムすると遅くなるものですか?
66 : そりゃそうだ
67 : GCが頻繁に起こる状況だったら、Luaに限らずどんな言語でも重くなるんじゃないの?
68 : そりゃそうだ
69 : そらそうよ
70 : ∩_ 〈〈〈 ヽ 〈⊃ } ∩___∩ | | | ノ ヽ ! ! / ● ● | / | ( _●_) ミ/ Lua!! 彡、 |∪| / / __ ヽノ / (___)
71 : 何で頻繁にクマーのAA貼られるの?
72 : ∧_∧ / ̄ ̄ ̄ ̄ ( ・∀・) < Lua!! ⊂/ 9) \____ q( / > >
73 : なんかlist処理の部分しか興味もたれてないみたいなので list処理を少し充実させました ambもできたらいいんだけど無理っぽい
74 : あんぶってコルーチンで綺麗に実装できたりするかな?
75 : Lua5.1.libとLua51.libの違いってなんですか?
76 : ambって何だ?と思ってググッたら、Schemeって言語の非決定性云々って出てきたけどこれの事?
77 : >>75 たぶん、linuxなどのディストリビューションでは、パッケージのディレクトリだどに合わせたものが出来ている。 luaの公式配布物からmakeすると共有ライブラリを用意してなかったり結構違いがある。 ので、名前の命名規則の違いかも。
78 : http://rosettacode.org/wiki/Amb#Lua こんなの見つけたけどこれじゃ簡単すぎるか
79 : >>77 なるほど。違いがわかって納得しました。 ありがとうございます。
80 : \ l´⌒\⌒\ \\ \ \ ヽ ) ) \\ \\ ( \ \∩___∩ \\ \ \ ⌒⌒| ノ ヽ \\ \ \ / ● ● ト、\ \\\ \ Y | ( _●_) ミ\ \\\ \ / 彡、_ |∪| ノ \ \\\ (____)―ヽノ' ヽ  ̄ ̄ ヽ\\ \, j l l .l } Lua! l (_ノノノノ
81 : -- Cから呼ばれる関数 function a() for i=1, LOOP do b() end end -- lua内部から呼ばれる関数 function c() for i=1, LOOP do do_something() coroutine.yield() end end みたいなことをやっている時に、C側からこのスレッドを終了させたいとき どうしればいいんだろう? lua_resume でCからLuaへ適当な値 CANCEL を返して function a() for i=1, LOOP do if b() == CANCEL then return CANCEL end end end fucntion c() for i=1, LOOP do do_something() if coroutine.yield() == CANCEL then return CANCEL end end end
82 : 再投稿スマソ -- Cから呼ばれる関数 function a() for i=1, LOOP do b() end end -- lua内部から呼ばれる関数 function c() for i=1, LOOP do do_something() coroutine.yield() end end みたいなことをやっている時に、C側からこのスレッドを終了させたいとき どうしればいいんだろう? lua_resume でCからLuaへ適当な値 CANCEL を返して function a() for i=1, LOOP do if b() == CANCEL then return CANCEL end end end fucntion c() for i=1, LOOP do do_something() if coroutine.yield() == CANCEL then return CANCEL end end end ってやるしかないのかな?
83 : スレッドの残りの処理をやる必要は全く無いので、Cから強制終了できるならそうしたい。
84 : Cから lua_resume で呼び出してるのなら、単にその呼び出しにつかってる lua_State を2度と呼び出さずに破棄するだけかと
85 : lua_sethookでフック関数を登録しその関数の中でエラーを呼んであげればいいよ lua.cを読むといい
86 : ありがとう、まさに求めていた情報でした ついでにココも参考にしました http://stackoverflow.com/questions/862256/how-can-i-end-a-lua-thread-cleanly
87 : Lua内でFinalizeが必要な処理(メモリの開放とか、ファイルのクローズとか)を 使われてない保証はあるの?
88 : なぜ使う人が責任を持たない? 使わせない責任はないと思う。
89 : 使わせない責任…
90 : (´\r-、 ┼ + /`/`) + ┼ (\. \! * // ,/) * + * (ヽ、 \ + * / /) + ⊂ニ ) * + ( ニ⊃ * + ⊂、 ( ∩___∩ ノ ⊃ + * (/(/ ヽ | ノ ヽ / 、)ヽ) ┼ + (/ ∨ ● ●レ /⌒) 、)ヽ) * (/' | ( _●_) ミ' /、)、)´ + + (/'ヽ 彡、 |∪| ノ / AngelScript!! + / __ヽノ / * + ┼ (___) / + / / (_ ⌒丶.. | /ヽ }. し )) ソ トントン
91 : 逆に php を組み込みスクリプトとしてコールできるような cライブラリはそんざいするの?
92 : phpならnginxつかっとけ。捗るぞ
93 : ごめん…。誤爆しました……。 もし、PHPをバインディングしたいのなら、fasrCGIとか参考になるかもしれぬわ。
94 : 原理的にはできるだろうけど、組み込みが簡単にできるように調整されてるって話はきかないね > php 一応 php_embed.h / php_embed.c という解説皆無の組み込み用インターフェースなファイルはあるらしいよw
95 : lua server pages使っとけよ
96 : Lua 5.2.0 released http://www.lua.org/ftp/lua-5.2.0.tar.gz
97 : ひゃっほー!
98 : 記念していつもの lua52.dll ttp://ll.la/*j5u
99 : Language Changes Only Lua functions have environments. C functions no longer have environments. To manipulate the "environment" of a userdata (which is now called user value), use the new functions lua_getuservalue and lua_setuservalue. Lua identifiers cannot use locale-dependent letters. Doing a step or a full collection in the garbage collector does not restart the collector if it has been stopped. Weak tables with weak keys now perform like ephemeron tables. The tail return debug event was removed. Tail calls generate a special new event, tail call instead of return. Equality between function values has changed. Modules are not expected to set global variables anymore.
100read 1read 1read 100read TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
Mathematicaプログラミング 質問箱 その1 (335)
monazilla Part 6 (631)
【バグ管理】 BTS使ってる?【追跡】 3 (974)
Win32API質問箱 Build112 (698)
CLDC+MIDP+携帯電話用Javaスレッド part 9 (928)
テストしにくいコードをテストする方法教えて下さい (398)
--log9.info------------------
チャットモンチー (235)
バンドスコア (216)
ハードコアやりたい (533)
【桜高軽音部】けいおん!!スレ in楽作板 その70 (836)
【ゼマティス】 Zemaitis 2 【ゼマイティス】 (894)
【YAMAHA】Broad Bass【BB】 (376)
【Gibson】ES-335 Part28【ギブソン】 (909)
【アフィ違反】 きになるおもちゃ2 【アンチ専用】 (295)
◆国産◆バッカス Part.3◆DEVISER◆ (914)
Marshall 36段目 (997)
【YAMAHAアコギ専門】 アコースティックマインド 12 (448)
【マーチン】Martinギター総合スレ Part17【マーティン】 (592)
【盛者必衰】 ヤフオク審議会75 【基地墓場】 (611)
B'zのスーパーギタリスト松本スレ (346)
【真剣に】ギターが弾きたい【音楽知識皆無】 (237)
〜金なし・腕なし〜安いセミアコ愛好者の集い (737)
--log55.com------------------
Switchの神ゲーキャプテン翼のプレイ動画が公開される!
【switchモンハン確定?】ドラガリのモンハンコラボが本気出し過ぎな件
SONYの息の根を止めるために任天堂がすべきこと
■■速報@ゲーハー板 ver.52711■■
【悲報】FF7Rさん、コング予約悲惨すぎて累計50万すら危うい模様
【悲報】ゴンじろー、テコ入れで路線変更か?
任豚ってFF7Rやりたくないの?
豚「人形劇ガーーー!ー!」←これめちゃ簡単に論破てきるんだが