5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2011/11/12(土) 11:04:10.46
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 :デフォルトの名無しさん:2011/11/12(土) 11:05:09.62
□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 :デフォルトの名無しさん:2011/11/12(土) 11:08:55.19
■関連してるかもしれないスレ
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 :デフォルトの名無しさん:2011/11/12(土) 12:49:25.37
おひさー

5 :デフォルトの名無しさん:2011/11/12(土) 13:38:56.41
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 :デフォルトの名無しさん:2011/11/12(土) 23:06:19.27
AngelScript|Д`)<新スレ乙

7 :デフォルトの名無しさん:2011/11/13(日) 12:12:17.79
>>6
前スレもそうだったけどAngelScriptの話題がなぜ定期的に挙がるんだww

8 :デフォルトの名無しさん:2011/11/13(日) 12:13:54.77
あ、スマンLuaとSquirrelだけのスレかと思ったら組み込み系全般のスレだったか。
ネタで書き込んでたのかと思ってたw勘違いスマン

9 :デフォルトの名無しさん:2011/11/13(日) 15:57:38.16
http://attractivechaos.github.com/plb/
js,lua,pyのJIT実装は世界が違ってきてる・・・

10 :デフォルトの名無しさん:2011/11/13(日) 18:29:34.06
         \   l´⌒\⌒\ \\ \
           \ ヽ   )  )   \\ \\   
              (   \ \∩___∩ \\ 
           \   \  ⌒⌒| ノ      ヽ  \\      
              \ \   /  ●   ● ト、\ \\\ 
               \  Y |    ( _●_)  ミ\  \\\  
               \ / 彡、_  |∪| ノ   \  \\\
                 (____)―ヽノ' ヽ      ̄ ̄ ヽ\\
                                \,  j  l l .l }
                         Lua!   l (_ノノノノ



11 :デフォルトの名無しさん:2011/11/14(月) 19:43:33.94
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 :デフォルトの名無しさん:2011/11/19(土) 23:58:37.22
>>9
JIT実装ってJust in timeの略語だよね?
よく分からないんだけど必要最小限の構成にしたluaって認識でいいのかな。
余計な機能がない分早い、みたいな

13 :デフォルトの名無しさん:2011/11/20(日) 04:09:18.26
>>12
本家の実装だとスクリプトをアーキテクチャに依存しないバイトコードに翻訳して実行するけど、LuaJITはネイティブマシンコードに翻訳実行するのが違い。

14 :デフォルトの名無しさん:2011/11/20(日) 11:00:04.58
違いねえ

15 :デフォルトの名無しさん:2011/11/21(月) 05:14:23.42
>>13
なるほど。つまり通常のLuaがJavaScriptだとするなら
JIT実装とはC言語みたいなもの、って認識でいいのかな。

16 :デフォルトの名無しさん:2011/11/21(月) 15:51:03.49
LuaとかAngelScriptとかって何に使うの?
これらを用いるとどんな利点があるの?

17 :デフォルトの名無しさん:2011/11/21(月) 17:17:00.94
一見してメリットが思い付かなきゃ
どのみちアンタにゃ必要ねえよ

18 :デフォルトの名無しさん:2011/11/21(月) 21:32:34.43
心閉ざすなよww

19 :デフォルトの名無しさん:2011/11/21(月) 23:21:07.67
アルゴリズムを外部に置けるってだけでもずいぶん便利だと思うけどね。
あとはスクリプトの処理を一時中断して実行ファイルの方へ処理を戻せるのとか。

20 :デフォルトの名無しさん:2011/11/22(火) 01:04:48.82
コードを外部化するメリットもあるし、ちょっとした設定をXMLの代替のようにも活用できるし便利だよ。

21 :デフォルトの名無しさん:2011/11/22(火) 06:31:26.08
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ



22 :デフォルトの名無しさん:2011/11/22(火) 10:56:32.62
iLuaBoxなんてのがあるんだな

23 :デフォルトの名無しさん:2011/11/22(火) 11:36:33.82
LuaでRPGつくる書籍立ち読みしてやってきた新参だが
今から勉強するなら
LuaとSquirrelどっちやれば報われるんだ?

24 :デフォルトの名無しさん:2011/11/23(水) 00:40:06.49
>>23
メジャーなLuaにしとけ。

25 :デフォルトの名無しさん:2011/11/23(水) 12:37:49.14
質問です。

luaで

011
012
013
というようなゼロパディングされた連番を生成するためにはどうしたらよいでしょうか。



26 :デフォルトの名無しさん:2011/11/23(水) 12:46:04.39
string.format

27 :デフォルトの名無しさん:2011/11/24(木) 04:11:32.55
>>661
論外。強者なら普通にやれる

28 :デフォルトの名無しさん:2011/11/24(木) 04:11:59.76
すまんスレ間違えた

29 :デフォルトの名無しさん:2011/11/24(木) 05:07:34.76
>>26
ありがとうございました。


30 :デフォルトの名無しさん:2011/11/24(木) 15:58:45.40
リリースビルドした実行ファイルから文字列変換(..とtostring)を実行すると
テーブルがぶっ壊れるという現象に遭遇した

31 :デフォルトの名無しさん:2011/11/24(木) 23:25:06.93
>>30
あんたのコードにバグがある。

32 :デフォルトの名無しさん:2011/11/26(土) 00:29:57.63
>>30
論外。強者なら普通にやれる

33 :デフォルトの名無しさん:2011/11/26(土) 10:53:08.52
javascriptをCに組み込んで使いたいんだけど、そういうライブラリ知りませんか?
商用利用だとライセンス的に問題があるのかな

34 :デフォルトの名無しさん:2011/11/26(土) 11:08:01.24
SpiderMonkeyぐらいしか知らないなぁ
ただでさえ面倒なJSなのにCという縛りは辛いからお勧めはしない

35 :デフォルトの名無しさん:2011/11/26(土) 11:12:39.43
Win環境ならJScriptもあるな
さらに面倒だけど

36 :デフォルトの名無しさん:2011/11/26(土) 11:53:35.91
そうですか…
デザイナーに習得させるためのコストがゼロなのでJavascriptが良かったんだけど
別の言語探してみます

37 :デフォルトの名無しさん:2011/11/26(土) 13:08:11.90
念のため聞くけど、C縛り?C++は駄目?

38 :デフォルトの名無しさん:2011/11/26(土) 13:09:15.47
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 :デフォルトの名無しさん:2011/11/26(土) 13:56:23.15
>>37
条件が曖昧でしたね、C縛りではありません
CまたはC++で、Visual C++ でビルドします


40 :デフォルトの名無しさん:2011/11/26(土) 14:42:57.37
>>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 :デフォルトの名無しさん:2011/11/26(土) 20:05:39.52
luaでC++のSTLやBoostみたいなサブルーチン集みたいなのないの?

42 :デフォルトの名無しさん:2011/11/26(土) 21:37:58.39
そういうこと言う人はC++を普通に使っといたほうが幸せだぞ

43 :デフォルトの名無しさん:2011/11/26(土) 22:28:33.72
まあJavascript組み込むならV8が無難だろうね。
組み込むの簡単だし。

44 :41:2011/11/26(土) 22:58:10.48
javascriptにもprototype.jsとかよく使うものまとめてものあるから
luaにもあるのかと思ったけどまだないってこと?

45 :デフォルトの名無しさん:2011/11/26(土) 23:14:55.71
いろいろ自分で整備してる人はいるかもだけどメジャーなものは記憶にないな
lua だと、そういうのが必要になりそうな場合は直接 C/C++ でライブラリ書いた上で
呼び出しの口だけ作る、といった形にするのが一般的なのでニーズが無い。
誰かが良いものつくれば広まる可能性はあるかもね

単にバランスの問題でね。スクリプトレベルで高度なライブラリほしければ
python や ruby とか全部入りの高級なのを組み込んだほうがてっとりばやい。
lua はそういうのはいらないって分野でこそ使われてる


46 :デフォルトの名無しさん:2011/11/26(土) 23:38:08.75
CPANやRubyForgeみたいなものはあるが、
http://luaforge.net/projects/
クオリティー担保してまとめたものがあるかは知らない。

47 :デフォルトの名無しさん:2011/11/27(日) 12:41:43.85
ファイルシステム ネットワーク プロセス スレッド ウィンドウシステム
クオリティを担保するのは言語ではなくOSだ
強いて言うならばスレッドは言語の影響を受けやすい

48 :デフォルトの名無しさん:2011/11/27(日) 13:26:14.60
とりあえずluaをスクリプティングに使いたいなら
luarocksでposixなりstdlibなりをインストールすればいいな

49 :デフォルトの名無しさん:2011/11/27(日) 19:02:20.35
Luaは抽象度が高いし、アプリドメインの一番上で活用されるから、汎用ライブラリの出番は少ない。

50 :デフォルトの名無しさん:2011/11/28(月) 00:02:37.44
>>1-49
論外。強者なら普通にやれる

51 :デフォルトの名無しさん:2011/11/28(月) 02:34:17.16
stdlibってのがutility関数っぽい。
見た感じwebアプリケーション向けのライブラリが沢山あるのは、他のスクリプト言語みたいに単独で使うつもりなのかな。

52 :デフォルトの名無しさん:2011/11/28(月) 03:06:49.03
stdlibってやつを軽く調べてみたけど、実用はなさそう。

53 :デフォルトの名無しさん:2011/11/29(火) 01:48:57.26
LuaJITのGitリポジトリでは、共有ライブラリ化とPPC向けが実装済みで次(beta9)ぐらいに入るらしい。
http://luajit.org/sponsors.html#sponsorship_bc
共有ライブラリって名前通りに実行ファイルにしたり、LuaJITから呼んだり出来るのか?


54 :デフォルトの名無しさん:2011/11/29(火) 03:23:08.00
bytecode をうめこんだネイティブなオブジェクトファイルを生成して、それを直接アプリとリンクしたり、
共有ライブラリのなかに入れたりできるようにする、とあるなかな
lua で書いたものが、JIT処理つきで Cベースのプログラムと直接リンク可能になるってことではないかと

55 :デフォルトの名無しさん:2011/11/29(火) 06:33:13.14
探してもなかったので自分で便利関数書いてみた
公開してみようかと思ったらluaforgeが新規受付してないっぽい
今はどこに集積されてるんだ

56 :デフォルトの名無しさん:2011/11/29(火) 07:19:53.53
codepadやここでいいんじゃね

57 :デフォルトの名無しさん:2011/11/29(火) 19:53:21.01
パッケージのリポジトリなら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 :デフォルトの名無しさん:2011/11/29(火) 20:34:05.19
Lua 5.2.0 (rc2)
http://www.lua.org/work/

59 :デフォルトの名無しさん:2011/11/30(水) 01:28:10.96
限定された機能しか使えない環境下でcronが使いたかった。探してもなかったので作った。

https://github.com/hiroro7/simple-lua-cron/tree/master


60 :デフォルトの名無しさん:2011/11/30(水) 03:13:16.84
>>59
cron.luaでダメな理由は何だったの?

61 :デフォルトの名無しさん:2011/11/30(水) 03:35:36.19
>>60
こんなものあったのですね。探し方がたりなかった。
ちなみにcron.luaだとcron job同士が遅延時間で絡む状態が作れなかったので、どっちにしても自分で作ってたかもしれないです。

62 :デフォルトの名無しさん:2011/11/30(水) 07:47:41.02
>>53-54
ほんとだ、単にバイトコードをCの文字列にするだけみたい。


63 :デフォルトの名無しさん:2011/11/30(水) 07:56:19.40
を、リスト処理関数まとめたんだ。

64 :デフォルトの名無しさん:2011/11/30(水) 08:01:33.50
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ



65 :デフォルトの名無しさん:2011/11/30(水) 12:50:46.37
luaってGCが頻繁に起こるようなプログラムすると遅くなるものですか?

66 :デフォルトの名無しさん:2011/11/30(水) 22:09:21.24
そりゃそうだ

67 :デフォルトの名無しさん:2011/11/30(水) 23:46:40.70
GCが頻繁に起こる状況だったら、Luaに限らずどんな言語でも重くなるんじゃないの?

68 :デフォルトの名無しさん:2011/12/01(木) 00:36:38.56
そりゃそうだ

69 :デフォルトの名無しさん:2011/12/01(木) 01:33:46.33
そらそうよ

70 :デフォルトの名無しさん:2011/12/01(木) 08:15:19.04
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


71 :デフォルトの名無しさん:2011/12/02(金) 08:00:38.35
何で頻繁にクマーのAA貼られるの?

72 :デフォルトの名無しさん:2011/12/02(金) 08:34:00.92
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >



73 :59:2011/12/02(金) 21:20:48.71
なんかlist処理の部分しか興味もたれてないみたいなので
list処理を少し充実させました
ambもできたらいいんだけど無理っぽい

74 :デフォルトの名無しさん:2011/12/03(土) 01:08:45.52
あんぶってコルーチンで綺麗に実装できたりするかな?

75 :デフォルトの名無しさん:2011/12/03(土) 17:23:04.83
Lua5.1.libとLua51.libの違いってなんですか?

76 :デフォルトの名無しさん:2011/12/03(土) 22:06:16.93
ambって何だ?と思ってググッたら、Schemeって言語の非決定性云々って出てきたけどこれの事?

77 :デフォルトの名無しさん:2011/12/03(土) 22:20:36.26
>>75
たぶん、linuxなどのディストリビューションでは、パッケージのディレクトリだどに合わせたものが出来ている。
luaの公式配布物からmakeすると共有ライブラリを用意してなかったり結構違いがある。
ので、名前の命名規則の違いかも。

78 :デフォルトの名無しさん:2011/12/03(土) 22:26:04.46
http://rosettacode.org/wiki/Amb#Lua
こんなの見つけたけどこれじゃ簡単すぎるか

79 :デフォルトの名無しさん:2011/12/05(月) 01:00:34.26
>>77
なるほど。違いがわかって納得しました。
ありがとうございます。

80 :デフォルトの名無しさん:2011/12/05(月) 07:52:02.96
         \   l´⌒\⌒\ \\ \
           \ ヽ   )  )   \\ \\   
              (   \ \∩___∩ \\ 
           \   \  ⌒⌒| ノ      ヽ  \\      
              \ \   /  ●   ● ト、\ \\\ 
               \  Y |    ( _●_)  ミ\  \\\  
               \ / 彡、_  |∪| ノ   \  \\\
                 (____)―ヽノ' ヽ      ̄ ̄ ヽ\\
                                \,  j  l l .l }
                         Lua!   l (_ノノノノ



81 :デフォルトの名無しさん:2011/12/08(木) 03:12:10.13
-- 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 :デフォルトの名無しさん:2011/12/08(木) 03:13:17.75
再投稿スマソ

-- 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 :デフォルトの名無しさん:2011/12/08(木) 03:14:23.76
スレッドの残りの処理をやる必要は全く無いので、Cから強制終了できるならそうしたい。

84 :デフォルトの名無しさん:2011/12/08(木) 04:02:34.14
Cから lua_resume で呼び出してるのなら、単にその呼び出しにつかってる lua_State を2度と呼び出さずに破棄するだけかと

85 :デフォルトの名無しさん:2011/12/08(木) 04:08:02.54
lua_sethookでフック関数を登録しその関数の中でエラーを呼んであげればいいよ
lua.cを読むといい

86 :デフォルトの名無しさん:2011/12/09(金) 10:24:05.41
ありがとう、まさに求めていた情報でした
ついでにココも参考にしました
http://stackoverflow.com/questions/862256/how-can-i-end-a-lua-thread-cleanly


87 :デフォルトの名無しさん:2011/12/11(日) 14:51:48.99
Lua内でFinalizeが必要な処理(メモリの開放とか、ファイルのクローズとか)を
使われてない保証はあるの?

88 :デフォルトの名無しさん:2011/12/11(日) 19:24:44.26
なぜ使う人が責任を持たない?
使わせない責任はないと思う。

89 :デフォルトの名無しさん:2011/12/12(月) 10:41:59.07
使わせない責任…

23 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)