【Lua】組み込み系言語総合 その5【Squirrel】at TECH
【Lua】組み込み系言語総合 その5【Squirrel】 - 暇つぶし2ch1:デフォルトの名無しさん
11/11/12 11:04:10.46
LuaやSquirrelやAngelScriptなどアプリケーションへの組み込み用途で
使われるプログラミング言語についてのスレッドです
まとめwiki(なにか質問する前に必ずみること!)
URLリンク(wikiwiki.jp)

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

■前スレ
【Lua】組み込み系言語総合 その4【Squirrel】
スレリンク(tech板)
■過去スレ
その3 スレリンク(tech板)
その2 スレリンク(tech板)
その1 スレリンク(tech板)
プログラミング言語 Lua
その3 スレリンク(tech板)

2:デフォルトの名無しさん
11/11/12 11:05:09.62
□Lua
URLリンク(www.lua.org) (本家)
URLリンク(lua-users.org) (lua-users)
URLリンク(luaforge.net) (LuaForge)
URLリンク(sugarpot.sakura.ne.jp)(5.1マニュアル和訳)
Lua言語の紹介
URLリンク(staff.aist.go.jp)
入門Luaプログラミング
URLリンク(www.amazon.co.jp)

□Lua as an Effect File Format for OpenGL
URLリンク(prideout.net)

□Squirrel
URLリンク(www.squirrel-lang.org) (本家)
URLリンク(sourceforge.net)
URLリンク(sourceforge.net) (SqPlus)
URLリンク(sourceforge.net) (Squirrel Shell)
URLリンク(wikiwiki.jp)(wiki内2.1マニュアル和訳)

□AngelScript
URLリンク(www.angelcode.com)

□Xtal(ゲーム向け。スタックを意識しなくていい?)
URLリンク(d.hatena.ne.jp)
URLリンク(code.google.com)
URLリンク(blog.livedoor.jp)

□elastiC
URLリンク(www.elasticworld.org)

3:デフォルトの名無しさん
11/11/12 11:08:55.19
■関連してるかもしれないスレ
Io Language
スレリンク(tech板)
2 part forth
スレリンク(tech板)
●●●●TCL/TKなら俺に聞け 2●●●●
スレリンク(tech板)
ECMAScript デス 3
スレリンク(tech板)
各種ライブラリ紹介スレ2(ゲ制作)
スレリンク(gamedev板)
Eclipse統合M32【Java/C++/Ruby/Python/Perl】
スレリンク(tech板)
「コンパイラ・スクリプトエンジン」相談室15
スレリンク(tech板)
Garbage Collection (GC)について語るスレ
スレリンク(tech板)

4:デフォルトの名無しさん
11/11/12 12:49:25.37
おひさー

5:デフォルトの名無しさん
11/11/12 13:38:56.41
firefox9 JS JITでの型推論
URLリンク(dev.mozilla.jp)
実はUnityのJSのコンパイルでも使われてた。
URLリンク(forum.unity3d.com)
URLリンク(www.cis.sojo-u.ac.jp)

動的型を型推論で置き換えるのってschemeのstalinで聞いたことあったけど、
ほかの言語実装にも広がり続けるのかな。
30%upとか、LuaJITで未実装で実装されたら凄いことになりそうだけど、
今の速度なら実質同じような事できてるのかも。

6:デフォルトの名無しさん
11/11/12 23:06:19.27
AngelScript|Д`)<新スレ乙

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

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

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

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



11:デフォルトの名無しさん
11/11/14 19:43:33.94
Added 'final' and 'override' keywords to the script language for better control over inheritance
URLリンク(angelscript.svn.sourceforge.net)

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

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

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

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

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

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

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

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

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

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



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

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

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

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

luaで

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



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

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

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

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


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

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

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

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

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

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

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

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

38:デフォルトの名無しさん
11/11/26 13:09:15.47
CouchDBとか、組み込みjsを使うプロダクトが増えているけど、
ECMAScriptの規格はブラウザ組み込み向けの機能だけしかない。

C/C++組み込み
URLリンク(code.google.com)
URLリンク(developer.mozilla.org)

JVM URLリンク(www.mozilla.org)
C# URLリンク(javascriptdotnet.codeplex.com) (去年で止まってる?他にあるかも)
Unity URLリンク(unity3d.com)

下の実践JSって本がサーバーサイドJSの本だから、独立言語として使うためのCommon APIのことが書いてあるけど、組み込みについては書いてないと思う。
URLリンク(dev.ariel-networks.com)

39:デフォルトの名無しさん
11/11/26 13:56:23.15
>>37
条件が曖昧でしたね、C縛りではありません
CまたはC++で、Visual C++ でビルドします


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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

57:デフォルトの名無しさん
11/11/29 19:53:21.01
パッケージのリポジトリならluarocksもあるけどこっちは受け付けてるのかな?
URLリンク(luarocks.org)
バージョン管理でソースあげれるところは結構いっぱいあるが、差は良く分からない。
URLリンク(repo.or.cz)
URLリンク(github.com)
URLリンク(bitbucket.org)
URLリンク(code.google.com)

58:デフォルトの名無しさん
11/11/29 20:34:05.19
Lua 5.2.0 (rc2)
URLリンク(www.lua.org)

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

URLリンク(github.com)


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

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

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


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

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



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

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

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

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

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

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


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

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



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

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

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

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

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

78:デフォルトの名無しさん
11/12/03 22:26:04.46
URLリンク(rosettacode.org)
こんなの見つけたけどこれじゃ簡単すぎるか

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

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



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

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

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

86:デフォルトの名無しさん
11/12/09 10:24:05.41
ありがとう、まさに求めていた情報でした
ついでにココも参考にしました
URLリンク(stackoverflow.com)


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

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

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

90:デフォルトの名無しさん
11/12/16 09:51:16.73
        (´\r-、     ┼         +     /`/`)    +
     ┼   (\. \!              *     // ,/)  *
  +     * (ヽ、   \ +  *          /   /)   +
      ⊂ニ      )        *   +  (     ニ⊃
  *  +  ⊂、     (   ∩___∩   ノ     ⊃   +  *
         (/(/   ヽ  | ノ     ヽ /    、)ヽ)  ┼
    +        (/     ∨  ●   ●レ /⌒) 、)ヽ)
     *       (/'   |   ( _●_) ミ'  /、)、)´       +
         +    (/'ヽ 彡、   |∪| ノ /     AngelScript!!
     +            / __ヽノ  /  *      +
       ┼        (___) /      +
               /     /
               (_ ⌒丶..
                | /ヽ }.
                  し  ))
                    ソ  トントン

91:デフォルトの名無しさん
11/12/16 14:21:49.37
逆に php を組み込みスクリプトとしてコールできるような cライブラリはそんざいするの?

92:デフォルトの名無しさん
11/12/16 14:52:19.98
phpならnginxつかっとけ。捗るぞ

93:デフォルトの名無しさん
11/12/16 14:56:17.85
ごめん…。誤爆しました……。

もし、PHPをバインディングしたいのなら、fasrCGIとか参考になるかもしれぬわ。

94:デフォルトの名無しさん
11/12/16 14:57:46.39
原理的にはできるだろうけど、組み込みが簡単にできるように調整されてるって話はきかないね > php

一応 php_embed.h / php_embed.c という解説皆無の組み込み用インターフェースなファイルはあるらしいよw

95:デフォルトの名無しさん
11/12/17 04:31:52.99
lua server pages使っとけよ

96:デフォルトの名無しさん
11/12/17 10:53:41.27
Lua 5.2.0 released
URLリンク(www.lua.org)

97:デフォルトの名無しさん
11/12/17 11:13:42.34
ひゃっほー!

98:デフォルトの名無しさん
11/12/17 16:27:21.95
記念していつもの
lua52.dll
URLリンク(ll.la)

99:デフォルトの名無しさん
11/12/18 07:25:08.60
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.



100:デフォルトの名無しさん
11/12/18 07:26:06.45
Library Changes

Function module is deprecated. It's easy to just do it in Lua anyway.
Functions setfenv and getfenv were removed, because of the changes in environments.
Function math.log10 is deprecated. Use math.log with 10 as its second argument, instead.
Function loadstring is deprecated. Use load instead; it now accepts string arguments.
Function table.maxn is deprecated. Write it in Lua if you really need it.
Function os.execute now returns true when command terminates successfully and nil plus error information otherwise.
Function unpack was moved into the table library and therefore must be called as table.unpack.
Character class %z in patterns is deprecated, as now patterns may contain '\0' as a regular character.
The table package.loaders was renamed package.searchers.
Lua does not have bytecode verification anymore. So, all functions that load code (load and loadfile) are potentially
insecure when loading untrusted binary data. (Actually, those functions were already insecure because of flaws in the verification algorithm.) When in doubt, use the mode argument of those functions to restrict them to loading textual chunks.
The standard paths in the official distribution may change between versions.



101:デフォルトの名無しさん
11/12/18 07:26:30.19
API Changes

Pseudoindex LUA_GLOBALSINDEX was removed.
Pseudoindex LUA_ENVIRONINDEX and functions lua_getfenv/lua_setfenv were removed.
Function luaL_register is deprecated. Use luaL_setfuncs so that your module does not create globals.
The osize argument to the allocation function may not be zero when creating a new block.
Finalizers (__gc metamethods) for userdata are called in the reverse order that they were marked for finalization.
Moreover, if the metatable does not have a __gc field when set, the finalizer will not be called, even if it is set later.
luaL_typerror was removed. Write your own version if you need it.
Function lua_cpcall is deprecated. You can simply push the function with lua_pushcfunction and call it with lua_pcall.
Functions lua_equal and lua_lessthan are deprecated. Use the new lua_compare with appropriate options instead.
Function lua_objlen was renamed lua_rawlen.
Function lua_load has an extra parameter, mode. Pass NULL to simulate the old behavior.
Function lua_resume has an extra parameter, from. Pass NULL or the thread doing the call.



102:デフォルトの名無しさん
11/12/18 07:33:03.13
このゲーム全部Lua製みたいです。
URLリンク(itunes.apple.com)

103:デフォルトの名無しさん
11/12/18 08:46:38.29
corona製なら全部lua製

104:デフォルトの名無しさん
11/12/20 12:56:32.61
あのチョコが入っている食べ物なんだっけ

105:デフォルトの名無しさん
11/12/20 15:10:24.84
トッポ

106:デフォルトの名無しさん
11/12/20 18:14:12.70
パイの実を差し置いてトッポとかないわ

107:デフォルトの名無しさん
11/12/24 22:41:18.54
おっぱい今年も揉めなかった・・・

108:デフォルトの名無しさん
11/12/24 23:09:25.34
>>107
そうか
もしかしてLua使ってないか?

109:デフォルトの名無しさん
11/12/25 00:18:25.65
>>108
AngelScript使ったらおっぱい揉めますか?

110:デフォルトの名無しさん
11/12/25 04:07:10.85
というかAngelScriptのおっぱい揉みたい。

111:デフォルトの名無しさん
11/12/25 22:11:05.39
おっぱい揉めそうな最強の言語決めようぜ!

112:デフォルトの名無しさん
11/12/25 22:12:05.55
COBOLだな。間違いない

113:デフォルトの名無しさん
11/12/25 22:18:50.60
コボルは巨乳の40代お局様のおっぱいが揉めそうな言語だな。
安定志向の人向け。

114:デフォルトの名無しさん
11/12/25 22:19:39.91
そのオッパイはしぼんでいないか?

しぼんでいないか?

115:デフォルトの名無しさん
11/12/26 06:46:00.24
Adaを忘れちゃいないか?

116:デフォルトの名無しさん
11/12/26 17:27:01.41
え?

117:デフォルトの名無しさん
11/12/29 03:42:19.64
LuaのKahluaみたいな
JVM上で動作するSquirrel実装ってあるかな?

118:デフォルトの名無しさん
11/12/29 03:46:20.80
きいたことない

119:デフォルトの名無しさん
11/12/29 03:59:39.81
そっかー。ありがとう

120:デフォルトの名無しさん
11/12/29 05:41:09.80
luaやってみようとおもったけどプログラミング以前に
基本的なことが出来ません

URLリンク(luabinaries.sourceforge.net)
ここから「lua-5.2_Win64_bin.zip」落として解凍したら
「lua52」というアプリケーション出来たので起動して同じフォルダーに

-- hello.lua
print("Hello, World!")

というluaスクリプトファイルを作って保存したんだけど
コマンドラインから
>lua52 hello.lua や >lua hello.lua
ってやっても
stdin:1: '=' expected near 'hello'
とかでて実行できないのは何故でしょう。疲れた。。
ちなみにコマンドラインから直接 print("Hellow,World") と打てば実行できます。

121:デフォルトの名無しさん
11/12/29 06:31:53.54
>>120
dofile("hello.lua")


122:デフォルトの名無しさん
11/12/29 06:51:07.42
おお いけました。
ありがとうございます

123:デフォルトの名無しさん
11/12/29 20:30:00.07
もうすぐ年明けだからお前さん達のこの1年にあったことが聞きたい

124:デフォルトの名無しさん
11/12/29 22:36:53.04
LuaってUTF-16に対応してないの?

125:デフォルトの名無しさん
11/12/30 01:26:37.25
GMってネイティブスレッド扱えるのね。

126:デフォルトの名無しさん
12/01/03 03:21:15.61
ワオ、こんなゲーム屋しかいなさそうなクソスレでambの名が出るとは

127:デフォルトの名無しさん
12/01/03 12:33:26.47
スクリプトをデザイナーに任せることを考えると、
非プログラマでもわりと知っていると思われる
Javascript か PHP、Java をそのまま組み込み言語としてつかいたいところだけど、
結構面倒そうだね。

128:デフォルトの名無しさん
12/01/03 14:57:39.94
いいえ。

129:デフォルトの名無しさん
12/01/03 18:40:46.25
JavaScript→組み込むならSpiderMonkeyやV8が鉄板じゃないかな
Java→むしろJava+JNIで書けばいいじゃない。OpenJDKがあるから組み込むのが不可能だとは言わないが
PHP→不可能じゃないだろうけど、ちょっとそれは考えてもいなかった

130:デフォルトの名無しさん
12/01/03 21:15:00.13
V8は組み込むの簡単だしな。

131:デフォルトの名無しさん
12/01/05 11:34:11.05
ゲームエンジンでJavascript使えるやつがあるな

132:デフォルトの名無しさん
12/01/05 11:39:34.99
CriScriptは残念だった

133:デフォルトの名無しさん
12/01/05 12:46:42.79
PHPは楽に汚く書けるスクリプト言語だから、確かに組み込みにいいかもしれないね。

134:デフォルトの名無しさん
12/01/05 13:56:38.70
お正月にはlua書いてー

135:デフォルトの名無しさん
12/01/05 16:49:42.31
はーらを壊して寝てましょうー

136:デフォルトの名無しさん
12/01/05 21:57:35.31
>>131
Unityとか?
あれのはJavascript風UnityScriptとか言われてるけど。

137:デフォルトの名無しさん
12/01/05 22:56:35.49
誰かAngelScript2.22.1リリースの事に触れてよ
URLリンク(www.angelcode.com)

138:デフォルトの名無しさん
12/01/05 23:16:03.12
tolua++をVC++(2008)で利用している人に質問。
MFCを用いるWin32コンソールアプリで、いくつかの参考書などを元にグルーコードの作成とビルドは通るようになったのだけども、
プリコンパイル済みヘッダの使用オプション(/Yu)だけ、いろいろ試したのだけども外さないと通らない状態です。
(使用するとfatal error C1853となる)
とくに参考書でも触れられてなく、エラーの内容に沿って修正を試みているのだけども、どうにもうまくいかなくて、困ってます。
今後予定してる本番環境での組み込み時に、プリコンパイル済みヘッダが使えないのはやや困ることもあって、解決したい箇所です。
tolua++側のソースをいじる必要があるようにも見えるのだけど、出来ればそれは避けたいです(後のフォローが大変になる)。
同様の環境で作業されている方、どういう風に処理解決していますか?

139:デフォルトの名無しさん
12/01/06 02:35:44.78
英語わからんしなあ

140:デフォルトの名無しさん
12/01/06 02:54:09.78
>>138
tolua使ってないので適当だけど
生成されたコードを直接ビルドするのではなく
//gen_wrap.cpp
#include "stdafx.h"
#include "gen.cpp"
とかする方法もあるけど
プロジェクト内にgen.cppがないのも不自然なので
/FIオプションでstdafx.hをしてあげるのがいいんじゃないかな

141:デフォルトの名無しさん
12/01/06 07:44:28.90
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ Lua!!
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ



142:デフォルトの名無しさん
12/01/06 07:46:55.75
あけましておめでtolua

143:デフォルトの名無しさん
12/01/06 23:27:48.11
AngelScriptの2.22.1では様々な高速化も行われているみたいだけど
どうなん?体感速度向上した?

144:138
12/01/06 23:37:08.01
>>140
アドバイスありがとうございます。
/FIオプション、試してみましたがうまくいきませんでした。自動生成されるグルーコードとケンカする感じ。
Luaの組み込みはtolua++しか試してないのですが、この辺解決してる他の手段ってありますでしょうか?
面倒がないならそっちに移っちゃうのもアリかと……

145:デフォルトの名無しさん
12/01/07 21:07:58.53
>>143
まだちょっと触った程度だけど、ものすごいスピードアップしたって感じはないかも。

146:140
12/01/08 00:40:37.91
>>144
あぁ、なんで困ってんのか今理解できた

c++な自プロジェクトに直接放り込んでいる
tolua++関連のcソースは
別プロジェクトでビルドし静的なり動的なりのライブラリを作成したら
それにリンクすればいいと思うよ

147:デフォルトの名無しさん
12/01/08 20:41:17.46
組み込みではLuaが一番マシだな。
だてに普及してない。

148:デフォルトの名無しさん
12/01/08 22:33:49.80
ノウハウもたまってる品

149:デフォルトの名無しさん
12/01/08 23:12:47.02
普及してない。

150:デフォルトの名無しさん
12/01/09 02:10:24.94
え?

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


152:デフォルトの名無しさん
12/01/09 22:42:01.67
AngelScriptはアドオンでメタデータ使えるようになるみたいだけど
みんなどういうふうに使っている?

153:デフォルトの名無しさん
12/01/10 07:48:48.16
AngelScrip自体使ってないよ

154:デフォルトの名無しさん
12/01/10 11:14:41.77
スクリプトなんてどっぷり使うもんじゃねえんだよ
わかるか小僧?

155:デフォルトの名無しさん
12/01/10 22:03:43.20
>>152
CScriptBuilderは使ってるけど、メタデータは使ってないな…


156:デフォルトの名無しさん
12/01/12 15:00:50.61
        (´\r-、     ┼         +     /`/`)    +
     ┼   (\. \!              *     // ,/)  *
  +     * (ヽ、   \ +  *          /   /)   +
      ⊂ニ      )        *   +  (     ニ⊃
  *  +  ⊂、     (   ∩___∩   ノ     ⊃   +  *
         (/(/   ヽ  | ノ     ヽ /    、)ヽ)  ┼
    +        (/     ∨  ●   ●レ /⌒) 、)ヽ)
     *       (/'   |   ( _●_) ミ'  /、)、)´       +
         +    (/'ヽ 彡、   |∪| ノ /     AngelScript!!
     +            / __ヽノ  /  *      +
       ┼        (___) /      +
               /     /
               (_ ⌒丶..
                | /ヽ }.
                  し  ))
                    ソ  トントン


157:デフォルトの名無しさん
12/01/13 07:40:12.66
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


158:デフォルトの名無しさん
12/01/13 19:24:48.16
ドラゴンの囚人が捕まったじゃねぇか...

159:デフォルトの名無しさん
12/01/22 13:23:11.19
TIOBE見る限りLuaって去年一瞬盛り上がっただけで
また元に戻ってしまったみたいだな

160:デフォルトの名無しさん
12/01/22 14:27:24.39
今は盛り上げるな時期が悪い

161:デフォルトの名無しさん
12/01/22 15:36:24.11
>>160
盛り上げるべき時期ってどんなやろう……

162:デフォルトの名無しさん
12/01/22 16:11:08.91
URLリンク(makuru.tenohiragaeshi.com)
せっかく作ったから誰か使ってくれ

163:デフォルトの名無しさん
12/01/22 17:18:31.20
Luaで作る2Dゲーム「LOVE」
URLリンク(www.moongift.jp)

164:デフォルトの名無しさん
12/01/22 21:06:19.01
ゲームフレームワークLOVE
URLリンク(d.hatena.ne.jp)

165:デフォルトの名無しさん
12/01/23 00:46:59.74
まさかmoai sdkを知らぬ訳ではあるまい

166:デフォルトの名無しさん
12/01/23 05:23:55.67
>>165
moai少し使い方がむずくね?あれ流行らんと思う

167:デフォルトの名無しさん
12/01/23 09:33:19.24
えっ

168:デフォルトの名無しさん
12/01/24 21:02:37.53
moaiって名前がなー。
ガラパゴス島だぞ。

169:デフォルトの名無しさん
12/01/24 21:08:27.53
moaiって名前がなー。
ガラパゴス島だぞ。

せめてダークドラゴンとかいかにも凄そうな名前にしておけば
本物のハッカーが使う闇の道具になったと思う

170:デフォルトの名無しさん
12/01/25 00:00:47.84
>>167
実際難しくないか。特に日本語処理。
Luaの文字列関数郡自体がUTF8やSJISをサポートしていないから
日本語普通に使うだけでも難しい。
文字を切り抜いたり、文字数数えたり、位置を取得したりもそのままやると出来ない。

そこで外部のCライブラリ組み込めたらいいんだけどmoaiもcoronaもそれが
出来ないから日本語でゲーム作ろうとしたりすると高確率で躓く・・・ような気がする。。

171:デフォルトの名無しさん
12/01/25 00:57:31.83
moai のほうはオープンソースだから適当にマルチバイト処理関数足せばいいんじゃ

172:デフォルトの名無しさん
12/01/25 02:06:48.30
>>171
確かにそうなんだけどそれをしないと使えないのはやはり敷居高くない?
標準関数がUTF対応していないlua側の問題でもあるんだけれど、
moaiやcoronaがマルチバイト言語の国で流行りそうにないなー、
と思ったのはそういうところ。
まぁ将来的なバージョンアップでどう変わるかは分からないし、
俺からも開発チームにUTF対応の文字列処理関数の標準実装を
提案したんでなんか進捗あったら報告するよ

173:デフォルトの名無しさん
12/01/25 02:14:39.72
Luaはもっと言語仕様絞ってもいいくらい。
ライブラリを充実させて欲しい。

174:デフォルトの名無しさん
12/01/25 10:15:24.89
AngelScript|Д`)<デフォでUTF8に対応してるよ
AngelScript|Д`)<SJISは有志のやつ使わないとダメだけど

175:デフォルトの名無しさん
12/01/25 12:26:40.87
AngelScriptは擬人化すると8歳~11歳位の金髪美小女。
北欧の小学校に通う祖母と二人暮らしのイメージ。

176:デフォルトの名無しさん
12/01/25 12:29:34.00
Luaは擬人化するとスウェーデンあたりの14歳くらいの祖父と二人暮らしの青髪美少年。
つまりAngelScriptと相性抜群なのは言うまでもない。

177:デフォルトの名無しさん
12/01/25 12:30:55.85
擬人化とか精神がオタクすぎるからやめてw

新板でも立ててやってくれw

178:デフォルトの名無しさん
12/01/25 12:32:25.59
>>177
すまんwAngelScriptの響きがエロすぎてついwww
これっきりだから許してくれw

179:デフォルトの名無しさん
12/01/25 15:34:11.01
         \   l´⌒\⌒\ \\ \
           \ ヽ   )  )   \\ \\   
              (   \ \∩___∩ \\ 
           \   \  ⌒⌒| ノ      ヽ  \\      
              \ \   /  ●   ● ト、\ \\\ 
               \  Y |    ( _●_)  ミ\  \\\  
               \ / 彡、_  |∪| ノ   \  \\\
                 (____)―ヽノ' ヽ      ̄ ̄ ヽ\\
                                \,  j  l l .l }
                         Lua!   l (_ノノノノ



180:デフォルトの名無しさん
12/01/25 18:11:28.95
        (´\r-、     ┼         +     /`/`)    +
     ┼   (\. \!              *     // ,/)  *
  +     * (ヽ、   \ +  *          /   /)   +
      ⊂ニ      )        *   +  (     ニ⊃
  *  +  ⊂、     (   ∩___∩   ノ     ⊃   +  *
         (/(/   ヽ  | ノ     ヽ /    、)ヽ)  ┼
    +        (/     ∨  ●   ●レ /⌒) 、)ヽ)
     *       (/'   |   ( _●_) ミ'  /、)、)´       +
         +    (/'ヽ 彡、   |∪| ノ /     AngelScript!!
     +            / __ヽノ  /  *      +
       ┼        (___) /      +
               /     /
               (_ ⌒丶..
                | /ヽ }.
                  し  ))
                    ソ  トントン

181:デフォルトの名無しさん
12/01/25 23:39:28.24
>>170
"pure lua" utf8
をGoogleUSで検索した1件目
URLリンク(www.wowace.com)

icuと比べ数十倍は遅いけど
ゲーム用なら問題なく使えると思うよ

182:デフォルトの名無しさん
12/01/25 23:46:40.61
>>181
おお、これかなり便利そうだね。
後で使ってみるよサンクス。

183:デフォルトの名無しさん
12/01/27 19:30:33.54
Programming in Lua 4800円たけーよ
だれか公式のver5.0訳してくれよただで

184:デフォルトの名無しさん
12/01/27 19:33:19.50
2400円ならいいよ

185:デフォルトの名無しさん
12/01/27 20:53:56.66
1ページ10円は技術書の標準的な価格
別に高くないよ

186:デフォルトの名無しさん
12/01/27 21:39:50.81
英語勉強しろ

187:デフォルトの名無しさん
12/01/30 17:31:12.94
AngelScript 2.22.2 is released - GameDev.net
URLリンク(www.gamedev.net)

・namespaceが使えるようになった
・グローバル変数もsharedに出来る
とか

188:デフォルトの名無しさん
12/01/30 21:50:26.55
>>187
今のところ、namespaceで囲っている部分から、RegisterGlobalFunctionで登録したグローバル関数や、
グローバル名前空間(って言うのか?)の関数を呼び出そうとすると文法エラーになる模様。

189:デフォルトの名無しさん
12/01/30 23:26:21.29
        (´\r-、     ┼         +     /`/`)    +
     ┼   (\. \!              *     // ,/)  *
  +     * (ヽ、   \ +  *          /   /)   +
      ⊂ニ      )        *   +  (     ニ⊃
  *  +  ⊂、     (   ∩___∩   ノ     ⊃   +  *
         (/(/   ヽ  | ノ     ヽ /    、)ヽ)  ┼
    +        (/     ∨  ●   ●レ /⌒) 、)ヽ)
     *       (/'   |   ( _●_) ミ'  /、)、)´       +
         +    (/'ヽ 彡、   |∪| ノ /     AngelScript!!
     +            / __ヽノ  /  *      +
       ┼        (___) /      +
               /     /
               (_ ⌒丶..
                | /ヽ }.
                  し  ))
                    ソ  トントン

190:デフォルトの名無しさん
12/01/31 07:46:16.54
   /ヽ /ヽ
  ':' ゙''"  `':,
  ミ   ・ω・ ;,
 :; . っ     ,つLua
  `:;      ,;'
   `( /'"`∪


191:デフォルトの名無しさん
12/01/31 11:39:27.30
URLリンク(makuru.tenohiragaeshi.com)
更新した

192:デフォルトの名無しさん
12/02/01 12:23:35.36
いまのver5.2でも

C>lua.exe -lilua

ってできる?
lua52~にしてもできんかった

193:デフォルトの名無しさん
12/02/01 19:27:58.54
>>192
普通に出来る

194:デフォルトの名無しさん
12/02/01 20:16:48.14
Lua 5.2.0 WindowsシフトJIS漢字対応版

リテラル、コメント、string.format、正規表現エンジンで
シフトJIS対応

URLリンク(mynickname.web.fc2.com)

195:デフォルトの名無しさん
12/02/02 00:11:12.06
おー、ありがたいね。
これで5.2にバージョンアップしよう。

196:デフォルトの名無しさん
12/02/03 19:32:44.34
Lua 5.2.0 WindowsシフトJIS漢字対応版
Lua 5.1.4 WindowsシフトJIS漢字対応版

URLリンク(mynickname.web.fc2.com)

漢字処理関数とイテレーターの追加
5.1.4へのバックポート

197:デフォルトの名無しさん
12/02/04 11:47:04.32
>>196のって非公式ソース? 
例えばこれ入れるとstring.lenとかで日本語混在でも正しい文字数計測できたりするってこと?

198:デフォルトの名無しさん
12/02/04 15:00:31.86
非公式って意味不明だけど
公式のソース lua5.2.0.tar.gz にシフトJIS漢字を扱うための修正を加えたものを
VisutalStudio2010ExpressのVC10で実行形式にしたもの。
5.1.4の方はまだ ちょっとしたバグがあるもよう。

199:デフォルトの名無しさん
12/02/04 15:03:34.86
ちなみに

string.lenおよびstring.subは修正なし。
string.mblenは漢字混在で正しい文字列を数え、
string.mbsubでそれを使った操作が可能。
string.match/string.sub/string.formatは漢字が混ざっていても動作する。

200:デフォルトの名無しさん
12/02/04 15:09:32.92
MITってソース公開義務がないんだったなそういえば

201:デフォルトの名無しさん
12/02/04 15:21:34.65
なにいってんだかわかんない。
実行ファイルもソースも全部同梱してるから未公開部分なんてないw

202:デフォルトの名無しさん
12/02/04 18:13:05.54
単純に、MITライセンスのコードに、手を加えた場合の話だとおもう。

203:デフォルトの名無しさん
12/02/04 19:45:46.45
>>198-199
いや、LUAが公式で配布しているソースなのかどうかを聞きたかっただけだ。
意味不明と言いながらちゃんと俺の言いたかった事を理解してんじゃないかw
分かってると思うけれど要は公式のソースを改変した非公式配布のものかどうかって事が言いたかったというわけだw

まぁでもサンクス。こういう活動は面白いね

204:デフォルトの名無しさん
12/02/05 23:05:50.11
Luaはソースコードを管理する公開リポジトリがないのか
URLリンク(www.lua.org)

要するに一つの変更ごとに説明つけたり
ドキュメントを最新の状態に保つのが嫌だからって事らしいが

それでも別にリリース毎にだけ 更新するリポジトリを持っても良さそうだけど

205:デフォルトの名無しさん
12/02/05 23:18:21.68
自分の手許でレポジトリあげて管理すれば別に困ることはないような

206:デフォルトの名無しさん
12/02/06 07:12:28.99
ウェブの60%以上がすでにUnicodeに、Googleが文字コードについて発表
URLリンク(www.rbbtoday.com)

追い風になってほしいな

207:デフォルトの名無しさん
12/02/06 07:13:22.47
もしcontinueの提案をすんなり採用していたら
gotoを思いつく暇もなかったかもしれないな

208:デフォルトの名無しさん
12/02/06 07:38:55.98
ウェブだけだろ
オープンソース関係でUnicode対応してるのなんて見たこと無いが?
_T()なんて毎回つけろとか仕様がアホすぎるだろw

209:デフォルトの名無しさん
12/02/06 07:43:31.11
\0すら文字列のLuaでは文字コードなんてどうでもいいような。
つまり柔軟なのでどう使うかは自由

210:デフォルトの名無しさん
12/02/06 08:03:51.35
キセルのように両端をUnicodeにするだけでいいんだよな

211:デフォルトの名無しさん
12/02/06 17:43:49.80
配列が1からなのが気持ち悪くて

212:デフォルトの名無しさん
12/02/06 17:56:07.09
ポインタ病ですな。社会通念では1が常識です。

213:デフォルトの名無しさん
12/02/06 17:59:02.53
そして、Luaはプログラマのためではなくエンドユーザーのための道具であるわけですから1からでよいのです。

214:デフォルトの名無しさん
12/02/06 18:29:52.63
ここの人たちはluaで何作ってるんだろう

215:デフォルトの名無しさん
12/02/06 20:59:57.41
何か壊れたらそれを作ればいいし何も壊れないなら適当にゲームとか作ればいいだろ

216:デフォルトの名無しさん
12/02/06 21:41:36.76
まあ文字コードの変換無しでいけるのならちょっとだけ速くなるって利点があるか。

217:デフォルトの名無しさん
12/02/06 23:33:37.86
1は合理的じゃないからいや

218:デフォルトの名無しさん
12/02/07 01:37:58.86
どうせ配列は連想配列なんだし、添え字に0入れれば使えるじゃん。
負の数すら入る。
スピードは知らん。

219:デフォルトの名無しさん
12/02/07 01:54:23.70
よく考えて選ぶより何も考えず両方試す方が効率的なこともある

220:デフォルトの名無しさん
12/02/07 07:58:38.60
0が合理的なんて理系に向いてないんじゃないの?

221:デフォルトの名無しさん
12/02/07 08:16:52.48
そうですね!

222:デフォルトの名無しさん
12/02/07 08:37:25.80
ffmpeg のストリーム指定オプションとか0ベースだから分かり難い。
プログラマ脳を信じちゃだめ。

223:デフォルトの名無しさん
12/02/07 09:13:08.63
>>220


224:デフォルトの名無しさん
12/02/07 09:13:35.62
>>220
集合論さんdisってんのか

225:デフォルトの名無しさん
12/02/07 11:18:02.49
自然数は0からだろうJK

226:デフォルトの名無しさん
12/02/07 12:54:26.23
例えば、ドラクエ買うために前の晩から店に並んでたら、
開店した瞬間に、「では0番目のお客さまどうぞ」っていわれたら
納得するか?


227:デフォルトの名無しさん
12/02/07 13:08:49.61
だが0から始まる言語なら誰も並ばないデスクリムゾンのような糞ゲーの並びも
誰もいなかったと認識できるのだ

228:デフォルトの名無しさん
12/02/07 14:45:45.91
ボラティリティは0から
ポジションは1から

229:デフォルトの名無しさん
12/02/07 23:46:21.74
イギリス式の階数の数え方も0からって考えていいのかな?
1Fがグランドフロア、その上が1階、2階、って増えていくやつ。

230:デフォルトの名無しさん
12/02/08 07:46:22.73
例えば、福男の神事で、一生懸命走って最初に神主さんの胸に飛び込んだのに
「0等賞です!おめでとう!」っていわれたくないだろ?

231:デフォルトの名無しさん
12/02/08 08:02:59.18
>>229
英国でもその他の地域でも、地下は1階からだよね。
そう考えると英国式のほうが良いように思えてきた。

232:デフォルトの名無しさん
12/02/08 09:27:43.65
英国のは「0階」ではないよ。あれはground floor、つまり、Lua でいうところの nil 。

233:デフォルトの名無しさん
12/02/08 12:09:23.84
ボタンは0になってるところ多いけどな
でも地下が-1だから配列とは関係無いな

234:デフォルトの名無しさん
12/02/08 13:10:07.81
URLリンク(www.indeed.com)
ここ最近、後発のSquirrelよりLuaのが人気出てるのは
やっぱiPhoneで使えるからってだけ?

235:デフォルトの名無しさん
12/02/08 13:37:45.87
速いし軽いからじゃね

236:デフォルトの名無しさん
12/02/08 17:26:39.76
組み込み系の場合は言語仕様の優劣以前に
改造のしやすさとかホストアプリとの親和性とか
そいうった別の側面が大きいからねえ。

237:デフォルトの名無しさん
12/02/08 17:31:03.77
iPhoneとLuaから連想されるのは、C++の不人気

238:デフォルトの名無しさん
12/02/10 01:24:14.99
Luaの場合、他でも使われてるから使う、ってのも大きいんじゃないの?
実績があるって事だし。

239:デフォルトの名無しさん
12/02/10 12:10:04.60
iPhoneでもC++使ってるとこ多そうだけど、不人気なの?

240:デフォルトの名無しさん
12/02/10 19:12:53.23
関数の引数に数値型を参照渡しするにはどう書けばいいですか?

241:デフォルトの名無しさん
12/02/10 19:17:23.04
なぜ参照私か

242:デフォルトの名無しさん
12/02/10 19:22:51.71
言語名も書かずに

243:デフォルトの名無しさん
12/02/10 19:23:51.79
f(a, b, c) を参照渡しじゃなくて
a, b, c = f(a, b, c)
とやればいいでそ

244:デフォルトの名無しさん
12/02/10 19:26:31.07
Squirrelです。
Cでいう所の

void f(int& a){
}

ということをやりたいだけです。

245:デフォルトの名無しさん
12/02/10 20:37:24.19
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


246:デフォルトの名無しさん
12/02/10 21:53:58.74
>>244
そういう仕様は無いので出来ません。
辞書を渡して値をいれてもらうとかで代替するしか無いかと


247:デフォルトの名無しさん
12/02/10 21:56:33.09
>>244
参照を渡すのは変数をpublicにするようなものなので、いまひとつ需要がない。
setterやgetterを作って渡すか配列を作って渡す。

248:デフォルトの名無しさん
12/02/12 01:25:10.16
Luaプログラミング言語 - Wikipediaテンプレのスクリプト言語に採用
URLリンク(news.mynavi.jp)

Wikipediaのテンプレートで使用するスクリプトとして「プログラミング言語Lua」を採用することで関係者の意見が一致を見たようだ。
これまでWikipediaの複雑なテンプレートを改善する必要性は指摘されていたが、これで進展を見せることになる

249:デフォルトの名無しさん
12/02/12 04:02:45.46
Squirrelって人気無いの?

250:デフォルトの名無しさん
12/02/12 05:36:04.12
俺の周辺では大人気だよ

251:デフォルトの名無しさん
12/02/12 06:38:23.91
俺の周辺ではまったく人気ないな

252:デフォルトの名無しさん
12/02/12 06:59:58.85
俺の周辺ではたわし

253:デフォルトの名無しさん
12/02/12 07:15:16.82
>>250
大人気はどうでもいいんで人気を教えてください

254:デフォルトの名無しさん
12/02/12 09:14:49.51
イカ臭いよお前

255:デフォルトの名無しさん
12/02/12 12:49:42.96
お前の臭いじゃないの?

256:デフォルトの名無しさん
12/02/12 13:59:43.88
StorokeItもStrokesPlusもLua

257:デフォルトの名無しさん
12/02/13 10:36:27.13
ぅあ臭い

258:デフォルトの名無しさん
12/02/13 13:46:55.63
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


259:デフォルトの名無しさん
12/02/13 14:19:23.51
luabindで質問です。
構造体をバインドで、メンバ変数が配列の場合、
変数のバインドはできないのでしょうか?

URLリンク(old.nabble.com)
ここを見る限り、配列のバインドは出来ないような事が書かれており、
class_::property()を使って、ラップ関数でアクセスする方法が載っています。
こうするしかないでしょうか?

260:デフォルトの名無しさん
12/02/14 14:10:54.92
>>259
出来るよ

基本的にはそうでしょうね

struct X { T data[N]; };
で X x; としたときに
インスタンスの&x.data[0]が分からなどうにもなりませんからね。
でも、x.data, T, Nが分かればどうにでもなるでしょ?

261:デフォルトの名無しさん
12/02/14 21:19:58.94
URLリンク(twolivesleft.com)
これ流行ると思う?

262:デフォルトの名無しさん
12/02/14 22:22:49.86
これ、たぶん外部からのスクリプトの import/export ついてないよね?
つけた時点で規約違反でアウトになると思うんだが……

263:デフォルトの名無しさん
12/02/15 11:16:01.50
Lua統合開発環境、スタンドアローン版で登場
URLリンク(news.mynavi.jp)

264:デフォルトの名無しさん
12/02/15 11:56:15.31
まだ使ってないけど
他言語との連携がLuaの肝なのに
スタンドアロンにして大丈夫なのか

265:デフォルトの名無しさん
12/02/15 12:24:35.58
大丈夫だ

266:デフォルトの名無しさん
12/02/15 12:59:47.67
きたああああああ
これとMoai SDKで最強やんけ

267:デフォルトの名無しさん
12/02/15 13:12:57.08
外部からデバッグできる口を作る一般的な方法が確立してるなら問題ないんじゃね?


268:デフォルトの名無しさん
12/02/15 21:55:10.60
エディタとデバッガ分離して別々にインストールできるようにして欲しいとこ。
Eclipseもっさりんこすぎ。 フリーズしてラグいw

269:デフォルトの名無しさん
12/02/15 23:28:51.42
>>260

259です。

class_::property()を使用して出来るという事でしょうか?
わたしの理解が足りてないのですが、
Nを知る手段が分かりません・・・

また、Lua側で x.data[1] = 0 といった事が上手くできませんでした。

その他の手段としてメタメソッドの変更で何とか出来そうな気もするのですが、
こんどはC++側での x.data を知る手段が分からず・・・

270:デフォルトの名無しさん
12/02/16 19:42:12.11
AngelScriptJITキター
でもVS2010持ってねぇーorz

271:デフォルトの名無しさん
12/02/17 16:23:11.90
Express でいいじゃない
コマンドライン版でよければ Windows SDK 入れるだけで入るよ>VC++

272:デフォルトの名無しさん
12/02/17 21:09:44.37
Lua 5.1.5 released
URLリンク(www.lua.org)

273:デフォルトの名無しさん
12/02/18 00:13:28.11
>>271
とりあえずExpressインストールして試してくる。

274:デフォルトの名無しさん
12/02/18 00:22:16.48
5.2 release age

275:デフォルトの名無しさん
12/02/18 01:50:14.07
>>272 見てLuaBinariesに行ったら5.1.5はまだ無かったけど
[08/Jan/2012] Lua 5.2.0 - Release 2があった

276:デフォルトの名無しさん
12/02/18 03:57:30.49
>>269
x.dataに{Type=..., Size=... ,__index=..., __newindex=...}
なメタテーブルをセットする
mt.Type, mt.Sizeがキモいなら
struct TypeInfo { int type; size_t size; };
std::map<void*, TypeInfo>
とかで管理してもいい
mtをセットするタイミングは
local _X = X
function X(...)
x=_X()
-- ここで
return x
end
C側で管理している場合は__gcも設定してmap.eraseするのを忘れずに

277:デフォルトの名無しさん
12/02/18 22:01:57.00
AngelScriptJITはMITライセンスなのか

278:デフォルトの名無しさん
12/02/19 16:48:49.38
とりあえずAngelScriptJITを試してきた。
簡単なFibonacci数の計算をスクリプトでやらせると、通常の時の半分ぐらいの時間で済んでた。

279:デフォルトの名無しさん
12/02/24 11:56:04.97
LuaってやっぱPerl/Ruby/Pythonとかと比べて
簡単にできることが激少ないんですかね?
例えば複数のファイルの名前にnekoって文字を付け足すとか
ファイルに行番号を付与するとかのちょっとしたこと

280:デフォルトの名無しさん
12/02/24 11:59:35.18
用途が異なるんだから当たり前

281:デフォルトの名無しさん
12/02/24 14:08:56.91
>>279
そんなことないと思うよ
標準ライブラリのボリューム、end }, exp stなどの違いで
Golf向きではなかったり苦手な処理もあるけど
出来ない表現ってのはないと思う

とりあえず、仕様がいまいちわからないので
簡単に出来るPerl/Ruby/Pythonという言語で
その2つの例題の解答例をさっくり書いてもらえないかな?

282:デフォルトの名無しさん
12/02/24 15:22:39.11
perl や ruby は、組み込みの正規表現記法や文字列操作用の特殊変数を持ってるので、
単純な文字列操作系の記述はシンプルになるね。そういうのを lua に求めるのは筋違い

文字列処理自体は普通に扱えるから、トリッキーな記述はできないってだけで、
Cとかで組むよりははるかに簡単やね。外部ライブラリでさわれないことはもちろんできないけど

283:デフォルトの名無しさん
12/02/24 15:45:56.73
グローバルオブジェクトみたいなオブジェクトも持って「:」で呼び出しつつ
スタティックなメンバを「.」で呼び出すみたいなのってどうやって作ればいいんだろ

284:デフォルトの名無しさん
12/02/24 16:39:49.98
スタティックなメソッドはただの関数
スタティックなフィールドはただのグローバル変数でいい

285:デフォルトの名無しさん
12/02/24 18:00:58.12
>>283
metatableのcallやindexを指定する方法もあるけど
fooモジュールなら
f = foo.new()
f:a()
foo.func(f,...)
てな呼び出しが一般的かな
luarocksやluaforgeで公開されている
メジャーどころのライブラリを真似るのが楽でいいと思う

286:279
12/02/24 19:55:53.73
>>281
すみません。どれもやったことありません。
2つの例はPerl等でやれば簡単と、
どこかの書き込みを見たことがあっただけでした

287:デフォルトの名無しさん
12/02/24 19:59:15.81
Rubyなら
files = Dir.glob("*")
一発で済むところを
f = io.popen("DIR/B", "r")
こんな風にゴニョゴニョ

さいとうたかをのマンガ「サバイバル」的な何か。
だがそれが良いw

288:デフォルトの名無しさん
12/02/24 20:14:00.86
io.popen("perl")でいい
rubyでこれをやる気にはならないが、luaならできる

289:デフォルトの名無しさん
12/02/25 09:32:39.63
luaはもともとそういうコンセプトだからね
必要機能を省いて超高速動作する
でも別に簡単処理が出来ないわけじゃない
自分で関数を作ってrequireすればいいだけ

290:デフォルトの名無しさん
12/02/25 11:21:12.14
popenを双方向にしてみた

#!/usr/bin/perl
use POSIX;
pipe($i, $o);
POSIX::dup2(fileno($i), 0);
POSIX::dup2(fileno($o), 1);
close $i;
close $o;
exec(@ARGV);

#!/usr/local/bin/lua
local f = io.popen("perl")
io.write([[print "$_\n" for (glob('*'));]], "\n__END__\n")
io.flush()
for l in f:lines() do io.stderr:write(l, "\n") end
f:close()

291:デフォルトの名無しさん
12/02/25 12:01:14.63
         \   l´⌒\⌒\ \\ \
           \ ヽ   )  )   \\ \\   
              (   \ \∩___∩ \\ 
           \   \  ⌒⌒| ノ      ヽ  \\      
              \ \   /  ●   ● ト、\ \\\ 
               \  Y |    ( _●_)  ミ\  \\\  
               \ / 彡、_  |∪| ノ   \  \\\
                 (____)―ヽノ' ヽ      ̄ ̄ ヽ\\
                                \,  j  l l .l }
                         Lua!   l (_ノノノノ



292:デフォルトの名無しさん
12/02/25 16:39:42.73
>>287
それはwinだからじゃね?
Linuxなら
luarocks install luaposixで入れて
local px = require "posix"
files = px.glob("*")
するだけなので大して変わらないよ

293:デフォルトの名無しさん
12/02/25 18:50:39.24
>自分で関数を作ってrequireすればいいだけ

まぁそれが塵も積もれば面倒臭いわけだけどな

294:デフォルトの名無しさん
12/02/25 22:49:22.73
というか Luaのユーザー層って組み込み用だから
単独でLua使おうとは思ってないでしょw
スタンドアローンならPythonやRuby使ってるだろうし、
アプリ側はC/C++でそ。

295:デフォルトの名無しさん
12/02/25 23:01:27.52
軽量Rubyってその後どうなってるんだっけ

296:デフォルトの名無しさん
12/02/25 23:06:01.12
今年の四月に公開の予定。
さて どうなんだろ。

longjump投げるようならパス。
ホスト側でC++使えないとまずいからね。

297:デフォルトの名無しさん
12/02/25 23:48:33.21
一応、公式の紹介文ではLua使いは

・開発者がC/C++等と合わせて使う
・1 SHOT KILL?のLua単体プログラミングとして使う
・ゲーム等でエンドユーザーが使う

の3種類にわかれると書いてたな。
1 Shot killがよくわからんけど。

298:デフォルトの名無しさん
12/02/26 10:11:29.92
AngelScriptJITだと!?
俺2005pro止め…面倒

299:デフォルトの名無しさん
12/02/26 14:35:11.08
>>297
マルチプラットフォームってこと

300:デフォルトの名無しさん
12/02/26 15:02:20.41
> 一応、公式の紹介文ではLua使いは
>
> ・開発者がC/C++等と合わせて使う
> ・1 SHOT KILL?のLua単体プログラミングとして使う
> ・ゲーム等でエンドユーザーが使う
>
> の3種類にわかれると書いてたな。
ソースよろ

301:デフォルトの名無しさん
12/02/26 15:29:28.03
>2 ?

302:デフォルトの名無しさん
12/02/26 15:40:17.64
これかな?
URLリンク(www.lua.org)

303:デフォルトの名無しさん
12/02/26 16:16:44.09
>>301
ONE SHOT site:URLリンク(www.lua.org)
ONE SHOT site:URLリンク(lua-users.org)
でググったけど見つからん

>>302
one-shot little programs.

ONE SHOT KILL little programs.
と脳内補完しちゃったってことか

304:297
12/02/26 17:24:38.09
すまんうろ覚えだったw

305:デフォルトの名無しさん
12/02/26 18:47:41.76
そういうの白ける

306:デフォルトの名無しさん
12/02/26 19:55:05.84
Lua 5.1.5 Windows SHIFTJIS版
URLリンク(mynickname.web.fc2.com)

>2012/02/26 5.1.5に対し5.1.4と同じ修正を当てた
>(このバージョンアップでは修正箇所への影響無しと判断)

307:デフォルトの名無しさん
12/02/26 20:05:48.09
SJis対応って具体的に何が対応してるんですか?
問題なんか起こった記憶がないんだけど

308:デフォルトの名無しさん
12/02/26 20:15:11.13
>>307
「表」とか文字列で使うとわかると思うよ

309:デフォルトの名無しさん
12/02/26 20:29:38.61
SHIFTJIS対応してないと、正規表現式に漢字を入れても正しく動作しない。
それどころか、Luaの場合、コメント中でも誤動作する可能性があるのねw

310:デフォルトの名無しさん
12/02/26 20:48:54.95
>>309
コメントでも誤動作するのか・・・知らなかった。
SJISって重要なんだな

311:デフォルトの名無しさん
12/02/26 20:51:55.42
というか WindowsのコンソールもUbuntuのように
UTF-8で動作すれば問題ないのにさw

312:デフォルトの名無しさん
12/02/26 21:18:43.15
そんなに重要なら問題なら本家でパッチしてもらったほうがいいと思うのですが

313:デフォルトの名無しさん
12/02/26 21:28:32.71
本家にシフトJISに対応してもらうのん?
日本語Windows使ってないとテストもできないでそ。

314:デフォルトの名無しさん
12/02/26 21:45:29.17
SJIS そのものが欠陥なのでスルーが正解。もう UTF-8 でいいっしょ

315:デフォルトの名無しさん
12/02/26 22:05:50.89
たしかにUTFがあるのにSJISを選ぶ理由ってなに?

316:デフォルトの名無しさん
12/02/26 22:19:24.38
それはWindowsのコンソールがSHIFTJISだからですよん

317:デフォルトの名無しさん
12/02/26 23:18:12.63
sjisはともかく、cp932が生まれたのはunicodeの責任もあるので、スルーは無責任だよね

318:デフォルトの名無しさん
12/02/26 23:21:13.37
WindowsはSjisベースだし、移行しようとしてるのはUnicodeという独自規格だし
UTF8の出番はないですね

319:デフォルトの名無しさん
12/02/26 23:27:49.88
またwindowsしか知らない人のsjisのしょーもない話か

320:デフォルトの名無しさん
12/02/26 23:37:58.74
ゲーム機系は、APIは全部UTF-8 になったのに、接続ツールのコンソール表示が UTF-8 対応してなくてもにょる


321:デフォルトの名無しさん
12/02/27 01:09:38.00
んと、UTF8のシェルを作って、その上でUTF8のLuaを動かしたとしてもね、
周囲のコマンドがSHIFTJISだからね、
io.popen使った時に激しく文字コード変換することになるわけさ。
変換の時にダメ文字の挙動どうするかとかめんどくさいことも
考えなくちゃいけいないw
それともCygWinみたいにごっそり環境作る? w

けっきょくSJISで運用するのがラクなのさw

322:デフォルトの名無しさん
12/02/27 01:13:04.48
ついでに、Luaって数値のデータ型に整数が無くて
演算が倍制度浮動小数点だからね、
ウニコード文字の比較とか厄介な問題がある。
とりあえず、UTF16やUCSはUTF8に変換すれば
ストリングをコンテナとして 保持することは問題ないのさぁ

323:デフォルトの名無しさん
12/02/27 19:28:31.52
関数に渡した可変引数の値をまるごと変数に代入してから
別の関数に可変引数の「...」を参照した時と同じ形で渡してやるにはどうしたらいいんだろう?

--関数定義
function hoge( x, y, ... ) --可変引数を何らかの保存領域に突っ込みたい関数
{
. --[[ 完全に文法間違ってるけど外にスコープ持ってる変数tempに可変引数の値全部渡すイメージ ]]--
. temp = ...
}

function foo( a, b, ... ) --hogeが保存した可変引数を参照して利用する関数
{
print(...)
}

--メイン
function hoge( 50, 100, "L","U","A" ) --ここで複数の文字列等の値が保存用の変数に渡される
function foo( 200, 400, temp ) --保存用に使ったものを可変長引数として置く

--[[ 欲しい出力

L   U   A

]]--

可変長returnみたいなのが使えればいいのかもしれないがどうにもその実装が思い当たらない

利用する可変長引数の引数の上限定めて可変長引数を配列として代入して
その配列の要素頭から10~20位を「return arg[1],arg[2],~…」と複数の値返すようベタ書きして
規定の上限超過するようならエラー返し上限に満たないなら余った要素のnilごと投げて返す関数で対応とか考えもしたけど
なにこの書き方馬鹿なの馬鹿なのと笑われるようなことをしている気がしてならないんだ…

324:デフォルトの名無しさん
12/02/27 19:43:07.54
> function f(...)
>> return ...
>> end
> print(f(1, 2, 3, 4))
1 2 3 4

325:デフォルトの名無しさん
12/02/27 19:47:03.35
> function f(...)
>> d = table.pack(...)
>> d[1] = d[1] + 1
>> return table.unpack(d)
>> end
> print(f(1, 2, 3, 4))
2 2 3 4
>

326:デフォルトの名無しさん
12/02/27 19:53:56.53
unpackでテーブルから可変引数に変換できるのか!
リファレンスを可変で検索しても見当がつかなかったんだ
良かった…これで見るからにどっか間違ってる書き方をしないで済んだよありがとう

327:デフォルトの名無しさん
12/02/28 04:54:00.60
あれ、LUAってもしかしてswitch無いの・・・?

328:デフォルトの名無しさん
12/02/28 05:16:18.83
continueも忘れないでね

329:デフォルトの名無しさん
12/02/28 07:41:12.07
switch風やcontinue風に書くできるけど出勤時間なのだ。

330:デフォルトの名無しさん
12/02/28 12:52:18.75
組込みスクリプトにschemeを選ばない奴は、CSの知識が欠けた2流

331:デフォルトの名無しさん
12/02/28 13:05:03.97
schemeとか継続あるせいで遅いし・・・

332:デフォルトの名無しさん
12/02/28 13:21:46.23
新しいハードなりアーキテクチャが出た際でも、schemeだとすぐに実装が出てきそう

333:デフォルトの名無しさん
12/02/28 20:00:44.95
何言ってんの、こいつ

334:デフォルトの名無しさん
12/02/28 21:09:57.95
表記が簡単=難読化だからな
明示的な書き方しない言語はどうも好きになれない


335:デフォルトの名無しさん
12/02/28 22:15:14.29
Cの悪口はそこまでだ

336:デフォルトの名無しさん
12/02/29 00:07:28.14
>>334
組込みスクリプトって、AIみたくロジックに集中するためのものだろ
c++やjavaのように長ったらしいクラス名や変数名を付ける必要ない

今日日のPHP,ruby,javascriptなどの動的言語による開発には同意

337:デフォルトの名無しさん
12/02/29 00:32:30.77
>>327

luaでswitch文っぽく書いてみる

function switch(st)
local i
for i = 1, #st, 2 do
if st[i] then return (st[i + 1])() end
end
end

function f(v)
switch {
(v == 1),
function () print(1) end,
(v == 2),
function () print(2) end,
(v == 3),
function () print(3) end,
(v == 4),
function () print(4) end,
true,
function () print "default" end,
}
end

for i = 0, 5, 1 do f(i) end

338:デフォルトの名無しさん
12/02/29 00:38:55.20
ついでに continue 文の動作は
ループ中に無名関数を置いてそこからのreturnだねん

for i = 0, 10, 1 do
  (function (v)
   if ((v % 2) ~= 0) then return end
   print(v)
  end)(i)
end

339:デフォルトの名無しさん
12/02/29 08:10:32.06
配列に無名関数入れてテーブル化できないのか

340:デフォルトの名無しさん
12/02/29 08:36:42.86
配列に無名関数入れたらテーブルでしょ

341:デフォルトの名無しさん
12/02/29 09:38:36.46
         \   l´⌒\⌒\ \\ \
           \ ヽ   )  )   \\ \\   
              (   \ \∩___∩ \\ 
           \   \  ⌒⌒| ノ      ヽ  \\      
              \ \   /  ●   ● ト、\ \\\ 
               \  Y |    ( _●_)  ミ\  \\\  
               \ / 彡、_  |∪| ノ   \  \\\
                 (____)―ヽノ' ヽ      ̄ ̄ ヽ\\
                                \,  j  l l .l }
                         Lua!   l (_ノノノノ



342:デフォルトの名無しさん
12/02/29 17:21:08.07
luabindってLuaからC++に数値型オブジェクトを渡してC++で中身を変更するのも無理だし
戻り値を複数定義することも出来無いの?
調べてもぜんぜんそれらしい情報が出てこない

343:デフォルトの名無しさん
12/02/29 22:59:06.57
なにがしたいの?

344:342
12/02/29 23:43:44.33
結局luabindだけじゃ出来ないのでluaのベース機能と混在させたら出来た
今度は別の問題で悩んでるんだけど
luaが持ってるuserdataタイプをluabindで受け取って中身をポインタにする方法が分からない
中身がポインタなのは分かってるんだけど、object_castしても失敗する

345:デフォルトの名無しさん
12/03/01 00:23:32.41
luabind::touserdata

で、なにがしたかったの?
戻り値を複数定義する
って意味不明なんだけど。

346:342
12/03/01 00:37:51.27
>>345
見つけたけどなんかうまくいかない

戻り値は例えば
ret1, ret2 = func(inp1, inp2)
みたいなlua関数をluabind経由で定義できないって話

347:デフォルトの名無しさん
12/03/01 01:15:58.61
ごめんちょっと何言ってんだかわかんない

348:デフォルトの名無しさん
12/03/01 01:39:23.31
luabindで定義すると
スタックに二つ積んでリターンすることが不可能
になると書いてるんだと思う

349:デフォルトの名無しさん
12/03/01 02:38:19.57
具体例出せない?

350:デフォルトの名無しさん
12/03/01 11:59:05.12
C++は見た目以外はCと同じなのに
もっと見せないと意味がないな

351: 忍法帖【Lv=28,xxxPT】
12/03/04 12:54:51.99
lamda

352:デフォルトの名無しさん
12/03/06 13:04:57.00
Why Lua
URLリンク(blog.datamules.com)

353:デフォルトの名無しさん
12/03/10 17:16:40.28
「Squirrelゲームプログラミング」って本がでてるけれど読んだ人いますか?

354:デフォルトの名無しさん
12/03/10 22:07:05.16
amazonで目次と中身少し見れる
ググって足りない部分はexampleとヘッダ少々見れば出てくる程度の事しか書いてない
windowsでsjisでvsのeeでdxライブラリで…溜息が出るような内容
このスレ見てたらまず要らないだろー



355:342
12/03/10 22:10:21.11
ゲーム用の組み込みスクリプトでゲームを作るって発想はどうなんだろうね

356:デフォルトの名無しさん
12/03/10 22:12:15.70
ゲーム用のものでゲームを作るのはそれはあたりまえでは?

357:デフォルトの名無しさん
12/03/10 22:47:24.33
目次を眺めて読みたくなったのは
デバッグへの備え
その他のテクニック
この2ヶ所だけ。
GoogleBooksで該当箇所を読んでみたけど
得るものはなかったっす。

358:デフォルトの名無しさん
12/03/11 08:39:37.93
  効いてる効いてる効いてる   効いてる効いてる     効いてる効いてる効いてる 
           効いてる                                効いてる
        効いてる     効いてる効いてる効いてる            効いてる
      効いてる             効いてる                効いてる
   効いてる 効いてる         効いてる          効いてる 効いてる
  効いてる   効いてる       効いてる           効いてる
 効いてる     効いてる      効いてる             効いてる

  効いてる効いてる効いてる   効いてる効いてる     効いてる効いてる効いてる 
           効いてる                                効いてる
        効いてる     効いてる効いてる効いてる            効いてる
      効いてる             効いてる                効いてる
   効いてる 効いてる         効いてる          効いてる 効いてる
  効いてる   効いてる       効いてる           効いてる
 効いてる     効いてる      効いてる             効いてる



359:デフォルトの名無しさん
12/03/11 12:59:32.81
>>354
それは残念です。買わないことにします…

360:デフォルトの名無しさん
12/03/11 23:32:14.60
しかしLuaはあまりにも情報が少なすぎるな

361:デフォルトの名無しさん
12/03/11 23:38:38.57
Luaはまだ日本語の情報は多いよ。

362:デフォルトの名無しさん
12/03/12 01:01:43.85
>>353
立ち読んだ感じ、初心者なら読んでみるのも悪く内容だとは思ったけどなSquirrel
の本。
スクリプトとC言語側とのデータのやり取りなんかは結構詳しく書いてあったし、リロードについても触れてるっぽいし。
テーブルやクラスのやり取りまで具体的に書いてあるのは、初心者には便利なんじゃない?

まあ、このスレに常駐してるようなベテランには不要なんだろうけどね。

それにしても、Lua以外でスクリプト本なんか出しても売れないだろうによく売る気になったな(笑

363:デフォルトの名無しさん
12/03/12 01:10:28.18
>>361
組み込みスクリプトの中ではね
perlみたいなメジャースクリプトと比べたらもう

364:デフォルトの名無しさん
12/03/12 07:43:15.96
perlをCに組み込むやつなどいないよ

365:デフォルトの名無しさん
12/03/12 21:59:15.97
Luaは、SquirrelやAngelScript、GameMonkeyとかに比べたらものすごく多い日本語資料の量だと思うけどな。


366:デフォルトの名無しさん
12/03/12 22:19:02.56
リファレンスマニュアルが日本語化されてる時点で許容範囲内だよね

367:デフォルトの名無しさん
12/03/13 23:06:55.69
luaはjavascriptに似ているから簡単だと思うか
そもそもjavascriptはjavaに似ていないから難しいと思うかの違い

368:デフォルトの名無しさん
12/03/14 05:40:35.30
Luaは色々なアプリケーションを制御する簡素なスクリプト言語として
プログラミング言語の使用者数の中でもNo1の言語になっておかしくないくらいの
コンセプトを持ってる言語のはずなんだがどこでどう間違ったんだ

369:デフォルトの名無しさん
12/03/14 05:59:38.45
368こそどこでどう間違ったんだ
何が言いたいのか伝わらんぜよ

370:368
12/03/14 06:10:00.66
つまりプログラミングにさほど興味ない人でも
様々なアプリケーションでLuaが使えるなら
TIOBEとかで20位前後をウロウロしてるような言語じゃないのに
実際にはそこまでアプリケーションでも使われていないから
Luaのコンセプトは良さそうに見えるけど文法か何かに欠陥が
あるのかな?ということです

371:デフォルトの名無しさん
12/03/14 06:53:11.70
>>370
>Luaのコンセプト
どんなイメージ?
自分の言葉で語ってみて欲しい
誤解してると思う

372:デフォルトの名無しさん
12/03/14 07:40:48.57
>>370
またおまえか

373:デフォルトの名無しさん
12/03/14 10:55:31.05
なぜか「プログラミングにさほど興味ない人」が登場するのは
母集団をいじれば統計を支配できるというコンセプトなんだよな

374:デフォルトの名無しさん
12/03/14 12:25:10.34
         ,,-―--、
        |:::::::::::::;;;ノ  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        |::::::::::( 」 <  実際にはそこまでアプリケーションでも使われていないからLuaのコンセプトは良さそうに見えるけど文法か何かに欠陥がある
        ノノノ ヽ_l   \______________
       ,,-┴―┴- 、    ∩_
     /,|┌-[]─┐| \  (  ノ
      / ヽ| |  バ  | '、/\ / /
     / `./| |  カ  |  |\   /
     \ ヽ| lゝ    |  |  \__/
     \ |  ̄ ̄ ̄   |
      ⊂|______|
       |l_l i l_l |
       |   ┬    |


375:368
12/03/14 13:34:24.86
Luaは開発者がC/C++等と組み合わせて使う目的があるのと同様に
上記のようにプログラミングにさほど興味ない人でも様々なアプリケーションで
簡単なスクリプト言語として使うという目的もあるはずなんですよね。

Lua開発者の一人のRobertoも
「Luaには、プロ以外のプログラマにとっても簡単に使えるという
目的がありました。『言語設計者たちが考えること』」
って言っていますし。

376:デフォルトの名無しさん
12/03/14 13:38:00.26
LuaってUnicode使えないんでしょ?

377:デフォルトの名無しさん
12/03/14 14:27:50.73
>>375
目的が二個あるなら言語も二個作ればいいよ
ランキングも二種類でいい
それを一つにしようとすれば、どこかで必ず間違う

378:デフォルトの名無しさん
12/03/14 14:52:12.96
>>375
そもそもスクリプトが必要なアプリが少ないところで
Lua使ってる人少ない→Luaは欠陥言語
という理論まくし立てられてもただのLuaの悪口にしか聞こえないよ。
君の理論で言うとSquirrelやAngelScript、GameMonkeyは
さらに目も当てられないほどの欠陥言語ということになる。

379:デフォルトの名無しさん
12/03/14 17:52:37.91
>>375
「プロ以外のプログラマ」とは「プログラミングにさほど興味ない人」であると
「Lua開発者の一人のRoberto」が言っているのか?

380:デフォルトの名無しさん
12/03/14 17:58:49.77
Luaはユニコード扱えないから、
Windowsのパス名の処理さえ不完全で、
ほんとスタンドアローンのファイル処理などには不向き。

ただ、そのぐらい割り切ったシステムというのは
それはそれで大きな利点なんだけど
そのわりにコミニティが過疎っているのは
世間一般の理解が足りないというべきかな。

381:デフォルトの名無しさん
12/03/14 18:10:19.75
導入しただけで色々できて便利!みたいなものじゃないからでしょ
なんらかの接続部は自分で作らないといけないから誰彼にでも勧めるものじゃないきがする

382:デフォルトの名無しさん
12/03/14 18:15:38.24
begin / end な言語は永遠にメジャー化はムリ。まじでまじで。

383:デフォルトの名無しさん
12/03/14 19:24:09.00
ビギネンド言語ディスってんのか

384:デフォルトの名無しさん
12/03/14 19:38:54.72
インデント構文よりは好きだな

>>380
> Luaはユニコード扱えないから、
utf8などは使えるよ
> Windowsのパス名の処理さえ不完全で、
どんな点だろ?
sjisの事ならパッチを当てて
パス文字列の操作ならpenlightなどを使うことで対処出来ると思う
> ほんとスタンドアローンのファイル処理などには不向き。
そりゃそうだろねぇ

385:デフォルトの名無しさん
12/03/14 19:41:47.31
>>382
まだいたのか?

386:デフォルトの名無しさん
12/03/14 19:48:43.01
>どんな点だろ?

世間では意外とシフトJISの範囲外の文字が使われてる。
「・」にもシフトJIS範囲外のやつがあったりして、
メールで送られてくる添付ファイルなどがそうだったりする。

387:デフォルトの名無しさん
12/03/14 20:39:36.96
ファイル名にSJIS範囲外の文字が使われていたらfopenで開けないってことか
対応自体はさほど難しくないけど
需要ないから誰もやらなそうだね

388:デフォルトの名無しさん
12/03/14 21:47:21.87
そもそも組み込みスクリプト言語でfopenとか使ってファイル処理する必要はあるんだろうか。
その辺はアプリ側に投げるようにした方が楽な気がするけど。


389:デフォルトの名無しさん
12/03/15 03:45:56.16
ビギネンド言語っていうのかw

390:デフォルトの名無しさん
12/03/15 04:26:38.35
>>388
exelとかにVBSのような用途でLua組み込む場合とかならLua側から
ファイル操作したい場合もあるんでないの。

391:デフォルトの名無しさん
12/03/15 04:49:40.33
ないよ

392:デフォルトの名無しさん
12/03/15 10:00:43.97
!=を~=にしたりとか、コロンとセミコロンと2種類のアクセス方法があったりとか
まったく目的も意味もわからない言語仕様盛りだくさんなんだよな
絶対他の言語と違う特徴にしようとかって理由だけでやったんだろうけど
一般化されてる!=くらいそのままでいいだろ

393:デフォルトの名無しさん
12/03/15 11:21:25.25
~=表現については同意するが、コロン、セミコロンを含めて意味不明な機能などなく、ミニマルに纏まって機能提供されていると感じるがな。

394:デフォルトの名無しさん
12/03/15 15:20:40.72
一般的には、レガシーなクラスと匿名クラスの2種類がある
これを1種類にするとJavaScriptかLuaのようになってしまう

395:デフォルトの名無しさん
12/03/15 15:43:00.49
!=も~=もおかしい。社会通念はVBの<>

396:デフォルトの名無しさん
12/03/15 15:44:52.64
==もおかしい。社会通念はPascalの=。










こんなの言い合っても意味ねー

397:デフォルトの名無しさん
12/03/15 15:47:42.77
≠ に似ている =/= にしようぜ

398:デフォルトの名無しさん
12/03/15 15:50:33.01
>>392
またおまえか

399:デフォルトの名無しさん
12/03/15 16:15:32.01
日本語ってまったく目的も意味もわからない言語仕様盛りだくさんなんだよな

400:デフォルトの名無しさん
12/03/15 16:59:37.40
AngelScriptだっけC++に似せてるやつ

401:デフォルトの名無しさん
12/03/15 21:59:25.63
>>390
例えばCSV形式のファイルを読み込む場合、アプリ側からCSVクラスをスクリプトに登録しておいて、

CSV _csv;
_csv.load("~");

みたいな感じで、読み込みクラスのメソッドを呼び出した方が楽かなと。

402:デフォルトの名無しさん
12/03/16 06:02:39.48
> CSV _csv;
> _csv.load("~");
構文からしてLuaではなくC++だよね?

class CSV {
public:
T load(T) {...}
};
というクラスをLuaに公開しつつ
C++側で
CSV _csv;
_csv.load("~");
とするの?
loadの実装が気になるw

403:デフォルトの名無しさん
12/03/16 07:45:38.72
いてもたっても居られずsquirrelを作った作者の気持ちが痛いほど分かる

404:デフォルトの名無しさん
12/03/16 07:56:37.57
そう思うなら布教なりお布施なりしろよ。
このままじゃ死滅するだろ

405:デフォルトの名無しさん
12/03/16 08:06:43.56
分かるからってsquirrelがいいとも思わないからな
一番いいのは周知の既存言語の組み込み版だよな
JavaとかC#とかの基本構文を真似たものが欲しいな

406:デフォルトの名無しさん
12/03/16 09:22:57.41
プログラマ目線の組み込み型なら別にスクリプトである必要なしともなりかねないからね
ユーザ目線ならLuaがちょうどいい

407:デフォルトの名無しさん
12/03/16 12:25:36.97
DllImportは欲しいな
DllImportは基本構文の中でも最強・・・

408:デフォルトの名無しさん
12/03/16 12:50:18.34
ぐぐる先生の dart はどうなん?

409:デフォルトの名無しさん
12/03/16 21:23:45.12
>>402
文法はとりあえずC++で書いた。
なので、スクリプト側で、

CSV _csv; 
_csv.load("~"); 

を実行する。

410:デフォルトの名無しさん
12/03/16 21:58:20.31
>>407
LuaJITのFFIでもどうぞ

411:デフォルトの名無しさん
12/03/17 10:25:31.08
LuaJITのSJIS対応版ってあるんですか?

412:デフォルトの名無しさん
12/03/17 10:42:23.77
LuaJITだろうがsjisソースコード中の文字リテラルに対応するだけなら
lex.cに5行くらい追加で終わるでしょ

413:デフォルトの名無しさん
12/03/17 12:51:48.66
具体的に何をSJIS対応にしたいの?

414:デフォルトの名無しさん
12/03/17 13:28:30.33
いいこと思いついた
すべての半角文字をエスケープすればすべての文字が16ビットになる

415:デフォルトの名無しさん
12/03/19 21:47:34.23
>>414
プリプロセッサの出番か。

416:デフォルトの名無しさん
12/03/25 04:12:57.66
Luaの様々なバインダを見て標準でバインダ付いてるAngelScriptは偉いと思った(小学生並みの感想)
しかし今から実装しようと思うならLuaかねぇ。バインダみんな何使ってる?それとも自作とかか
tolua++の最終更新が2009でtoluaの最終更新が2012に見えるんだがググるとtolua++の情報が多いな

417:デフォルトの名無しさん
12/03/25 06:08:48.71
luabind,SWIG,バインダなしのどれかだな
toluaは中途半端で好きじゃない

418:デフォルトの名無しさん
12/03/25 09:44:33.41
慣れるとバインダなしが一番になるよ

419:デフォルトの名無しさん
12/03/25 09:58:28.60
Luaには型もないし継承もないからバインダもいらない

420:デフォルトの名無しさん
12/03/25 10:57:26.17
型を強くすると、未知の言語に対応できなくなるデメリットがある

421:デフォルトの名無しさん
12/03/25 11:03:45.62
アセンブラと同じでスタック(PUSH&POP)で何でもできる

422:デフォルトの名無しさん
12/03/25 15:46:34.44
>>420
どゆこと?
具体的な説明頼む。

423:416
12/03/25 19:00:03.00
おーバインダなしかー。仕組み知るためにもとりあえず無しでいってみるか。ありがとう。

424:デフォルトの名無しさん
12/03/25 22:39:14.34
関数定義があいまいなせいでコンパイルエラーがほとんど出ないで実行時に例外落ちする悲惨さ

425:デフォルトの名無しさん
12/03/25 22:50:34.67
>>422
例えば、未知の言語で、継承ができなくなるリスクは大きい
委譲できなくなるリスクは小さい
リスクを小さくするには、(抽象的だが)「型」を避ければいいと思う

426:デフォルトの名無しさん
12/03/26 07:11:24.11
>>425
具体例出せない?
現実的に、静的タイピングで継承有りな言語もSWIGはサポートしてるし
boostライクなテンプレートに落とし込めない理由が浮かばないんだけど。

427:デフォルトの名無しさん
12/03/27 01:18:37.69
>>426
できない人の気持ちが浮かばないということは、その人をサポートできてない
サポートは諦めて単純に自力でやる方法をすすめるのが無難

428:デフォルトの名無しさん
12/03/27 07:44:08.12
テンプレートの何がいいのかわからないな
難読化させるためにやってるのか

429:デフォルトの名無しさん
12/03/27 10:54:33.44
具体的に頼む。
禅問答じゃないんだし。

430:デフォルトの名無しさん
12/03/27 11:00:10.02
型を強くすると、未知の言語に対応できなくなるデメリットがある
俺はそう考える。

テンプレートの何がいいのかわからないな
難読化させるためにやってるのか
俺はそう考える。

431:デフォルトの名無しさん
12/03/27 12:36:06.80
コメントの類はコードをかえって難読化することもある。
コメントは具体的なコードではないので禅問答に近い。
クラスとテンプレートはコメントではないがコメントに近いので難読化することもある。

432:デフォルトの名無しさん
12/03/28 00:20:33.61
人間とウェブの未来 - Apache 2.4.1のmod_luaでApacheに介入する(mod_rewriteの終焉?) URLリンク(t.co)

433:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 13:46:26.69
スクリプト言語“Lua”の統合開発環境「Lua Development Tools」
URLリンク(www.forest.impress.co.jp)

434:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 03:26:00.93
なんでOpenOfficeでPythonマクロがあってLuaが無いんだろう
ああいうものこそLuaの真骨頂じゃないのかね

435:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 03:35:19.84
足せばいいんじゃ

436:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 07:39:38.00
pythonはコンパイル型だから早い

437:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 15:26:04.64
LuaJITに実行速度負けてるけどな

438:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 15:28:48.50
>>436
何が言いたいのかよく分からんので
ちょろっと検証してみた

-- lua code
t={1,2,3,...,100000}
# python code
t=[1,2,3,...,100000]

$ time lua l514.lua
real 0m0.049s
$ time lua l514.luac
real 0m0.022s
$ time python2.6 p26.py
real 0m0.339s
$ time python2.6 p26.pyc
real 0m0.036s
$ time python3.1 p31.py
real 0m0.371s
$ time python3.1 p31.pyc
real 0m0.047s
$ time src/luajit lj2.lua
real 0m0.019s
$ time src/luajit lj2.luac
real 0m0.008s

結論としては
pythonが速いというよりも、当社比としてpyよりpycという苦肉の策じゃないかな。

ちなみに、Luaのrequireでも
LUA_PATHやpackage.pathに*.luacを追加すれば普通に読めるよ

439:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 18:26:17.52
そんな問題じゃねー
OpenOfficeとの膨大な連携関数軍を言語サイドに公開するコストが
Physonの方が圧倒的に小さい

440:営利利用に関するLR審議中@詳細は自治スレへ
12/04/06 20:06:11.54
>>439
ちょっと理解できない
そもそもpythonのJava実装でそんなのあったっけ?
Javaは他言語含めてどれもいまいちな印象しかないのだが。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch