プログラミング言語 Lua

このエントリーをはてなブックマークに追加
>>532
なになに?
どんなやつよ?GPLよりしょっぱい?
LGPLとwxLuaライセンスのデュアルライセンス。
wxLuaの方は、バイナリ配布時にソース公開義務のないGPLかな。

BSDスタイルやMITのまま配る場合、ちょっときついねってだけでつ…
純粋にLuaのプログラムだけを配布するぶんには、
関係ないでしょ?
(まぁ・・ないとは思うけど)

wxLuaは開発環境なわけだし。
wxLuaは開発環境じゃなくてGUIツールキットです。
「サンプルとして」気合の入った開発環境が付いてます。
>LGPLとwxLuaライセンスのデュアルライセンス。
LGPLと"wxWindows"のデュアルライセンスだね。
>>536
そうでした!
wxなとこは全然つかってなかったもんで・・・
lua to python dochiga ii?
>>539
mazu nanini tsukaitaika ie.
GCはPythonのほうが優秀(のハズ)。
サイズはPythonのほうが大きい。
スピードは知らん。上のほうに比較したページのリンクがあった。
LuaはPCのゲームで使用された実績が結構ある。
Pythonはコンシューマゲームで使われた実績があるらしい。
Pythonはリモートデバッグ環境があるらしい(↑で使われた)。

というか、Python少ししかやったこと無いんで、これぐらいしか言えん。
>>539
http://lua-users.org/wiki/LuaVersusPython
必ずしも最新の情報じゃないが。
>>542のページにもあるが、coroutine(+thread)がお気に入り。
generatorもcoroutine的に使えないことも無いけど、ちょっと制約多いね。

あと、↓が本当ならリアルタイム向けにはちょっと厳しいかも。
>Everything is an object allocated on the heap in Python, including numbers.
544デフォルトの名無しさん:03/07/25 02:01
Boots使うとPythonのが簡単に使えるなー。スレッドもファイバのあるPython
のが扱いやすいかも知れぬ。

しかし・・・Luaの文法のほうが一般には受けやすいと思うぞナ。
545デフォルトの名無しさん:03/07/25 02:39
>>544
Luaの文法・・・これは微妙でしょ。
#一般の定義なんてできるわけないから、煽りは無しの方向で。

Luaでも、オブジェクト指向っつーか(lua-users.org参照)
それっぽいことできるから
C++に浸かってる人にも、にゃかにゃかいけるんでは無いかな?
>>544
bootsってboost?ファイバってなんでしょ。興味あります。
(検索しても出てこないし…)

>>545
LuaのOOはプロトタイプベースだしねぇ。
メタテーブルでいろいろやると暮らすベースに近いシステムも組めると思うけど。
(その場合の速度比はどれくらいだろ?)
547デフォルトの名無しさん:03/07/25 09:30
>>546
ゴメンboostだ。ただのタイプミス。ファイバもマイクロスレッドのほうが
一般的な呼び方だったかも。重ね重ねスマソ。

個人的にPythonはあの構文が受け付けなさ杉です。
ファイバは一般的だろ。むしろマイクロスレッドの方がはつみみだよ。
boost/pythonなんてのがあるのか。
ファイバは、stacklessのほうね。generatorはいまいちだったので、
そっちの方を調べてみるか。組み込み用途的にはstacklessはどうなんだろ?
>>546
速度もそうだけど、メモリ効率がいまいち?
インスタンス?は、メソッドをコピってるから、
オブジェクトの生成ごとっつーかオブジェクト毎に
そのメソッドのためのメモリを食ってるかと思うと・・・
#ようするにVirtualTableが無い。


>>550
LuaでOOについてはここね。クラスの作り方も書いてある。
http://lua-users.org/wiki/ObjectOrientationTutorial

metatableを使う場合、1回テーブルの検索を失敗してから
metatableを検索に行くみたいなので、その辺のオーバヘッドが
どれくらいかかるのかなぁと。
552ためしてみた:03/07/25 16:20
こんなふう↓に定義しといて、
-------------
Hoge = {}
mt = {}
function Hoge:new()
return setmetatable({}, mt)
end
function Hoge:foo()
end
mt.__index = Hoge
-------------

metatable経由で呼び出し: 0m2.827s
-------------
h = Hoge:new()
for i = 0, 10000000 do
h:foo()
end
-------------

テーブル内の関数を呼び出し: 0m1.843s
-------------
h = {foo=Hoge.foo}
for i = 0, 10000000 do
h:foo()
end
-------------

ちなみに、
空ループ: 0m0.327s
fooをグローバルに定義して呼び出すだけ: 0m1.608s
となった。
>>552
うあ。ありがと。参考になる〜
ってことは、テーブルの要素がふえればふえるほど・・・
つーかluaは大して速くないので。
OOやりたいならRubyとか専用のやつ使った方がいいよ。
まぁ、LuaのOO風機能はおまけみたいなもんだ。
ちなみに、>>554は、Luaより早い言語として何を想定してる?
いや、いっぱいあるのは分かるけど、代表的なものとして。
もしかして、自作処理系ですか?(上のほうにもそんな話題があったけど)。
組み込みスクリプトにおう。とにかくサイズが小さい。
ゲームにつかうとき、
パラメータやシナリオの流れをLuaに逃がすとウマー
OOするための言語じゃねーぞ。
やろうと思えばできる。それで十分じゃねーか。
組み込み言語としては、メモリ関連の処理がイマイチだったりと、
中途半端なところが多かったりするんだな。
まぁ、PCで使う分には全く問題はないんだけど(そのためのOSだし)。

というか、自世代GCまだ〜?ヽ(`Д´)ノ
次世代GCって何だ?次世代ゲームキューブ?

それとも世代GCのことか?
結局ストップ&コピーだから停止するのに変わりない。
GCそのものよりも、いつGCが呼ばれるかの方が大事。
LuaはコピーGCじゃないよ。

で、世代別GCが導入されれば、GC時間のオーダーは全オブジェクト数じゃなくて
新しい世代のオブジェクト数のみに依存するようになるから、毎フレームGCを呼ぶ
とか出来るようになるね(ゲームで使うなら)。
現状の奴では、オブジェクトが増えれば増えるほどGC時間が増えるから、
リアルタイム向きには、どうしてもオブジェクト数を限定して使わざるを得ない。

そういえばPythonはリファレンスカウンタだっけ?
GCが気になるならあっちの方がいいかも。

(あと「Luaの」次世代GCね。)
自世代
「次世代GC」で検索したら
任天堂だった。
つーか、次世代って言葉の意味わかってるのか。
どーでもいいことだな。
ま た G C の 話 で す か ?
GCの話題は板違い
http://cheese.2ch.net/ghard/

こいうこと?
>>565
上のほう読めってことでしょ。
かなり実のある話してまつ。
文法の話よりかはましかも。
言語よりもGCの話が盛り上がるなんてここぐらいだな。
>>560
Luaの次世代GCってマジネタなのか?
ソースきぼん
5.0がリリースされたときに、5.1ではインクリメンタルだか世代別だかのGCが
導入されるって、コアチームの人がMLで書いてたよ。リンクは上のほうにある。
>>570 あ、ほんとだ。サンクス。>>408ですね。
誰か、最新版のWindowsバイナリ落とせるとこ教えてくれ
574ここ:03/07/29 23:28
それだ。
ありがとう
すごく興味あるんだけど、具体的にどういう用途で使えばいいのか
いまいち解らない。ゲームのパラメータなんかで使えると聞いたけど
どなたか実例キボンヌ。
>>576
G-わんげ鳩大往生XII〜絆ダウン〜 三週目
http://game4.2ch.net/test/read.cgi/arc/1058781399/ 
>>577-578
狂おしくサンクスコ。というか、上のスレ面白いなw
>>579
あと、>>513や、白い弾幕くんもLuaを使ってる。参考にすべ氏

白い弾幕くん
http://user.ecc.u-tokyo.ac.jp/~s31552/wp/sdmkun/

581山崎 渉:03/08/02 02:20
(^^)
582山崎 渉
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン