トップページtech
1001コメント268KB

プログラミング言語 Lua  その2

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
久しぶりに見ようと思ったら落ちてたよ・・・。
他の人サポ−ト頼む。
前スレ
http://pc2.2ch.net/test/read.cgi/tech/1034182349/l50
本家
http://www.lua.org/
5.0日本語訳
http://www.uri.sakura.ne.jp/~cosmic/yuno/lab/lua5_manual_ja.html
0446デフォルトの名無しさん2005/05/18(水) 22:38:21
>>445
はぁ?何言ってんの?
乞食は消えろカス
04474442005/05/18(水) 23:31:22
>>445
公開は全然問題なイッス。

ライセンスの関係でluaを弄ってるけど、本当ならSpiderMonkey
で十分なんですよねぇ。
0448Rubyist!2005/05/18(水) 23:37:06
SMのライセンスのどこに問題が
04494442005/05/18(水) 23:47:56
>>448
SpiderMonkeyのライセンスがよく分からなかったのが問題です。
前にSpiderMonkeyを取ってきて見てみたらライセンスのファイルが
見当たらなかったです。ソースの先頭には書いてあったが、
ソース毎に違うライセンスの奴だったりって記憶にあるんですが・・。
つか、もしSpiderMonkeyのライセンスを記述してるサイト等が
あったら教えて欲しいです。

つか、SMって省略はどうよ?
0450デフォルトの名無しさん2005/05/19(木) 01:38:20
SpiderMonkey自体知らなかったけど、
mozillaのコードの一部ならばMPLじゃなかろうか。
(MPL/GPL/LGPLのどれでも適用可能、という方向みたい)
http://www.mozilla-japan.org/MPL/
http://www.mozilla.org/MPL/

Netscapeで使われているとおり、プロプライエタリな使い方も可能ぽいけど、
いろいろ複雑そうだ。
0451Rubyist!2005/05/20(金) 02:31:20
http://www.mozilla-japan.org/MPL/relicensing-faq.html#already-relicensed
0452デフォルトの名無しさん2005/05/20(金) 03:25:51
つーかLGPLとかフリーのライセンスで訴訟が起きたことあんの?
こういうのってライセンス厨のオナニーにしか見えない。
オプソでしかありえない問題だしw
0453デフォルトの名無しさん2005/05/20(金) 07:43:15
へ?
何度もあるじゃん。
04544442005/05/20(金) 22:56:48
>>450
>>451
有難う御座います。
今度検討してみます。

で、for文の追加出来ました。
お騒がせしました。
0455デフォルトの名無しさん2005/05/23(月) 17:55:29
これってVC++6で使えるようにするにはどうすればいいですか。
ただヘッダをインクルードすればよい?
なんかexeとか落ちてたんですけど、これってどういうことでしょう。
どういう仕組みで動くのかよくわかんないです。
とりあえずVC++で使えるようにするまでの設定と、
どういう仕組みで動くのか、どなたか教えてください。
0456デフォルトの名無しさん2005/05/23(月) 20:07:16
ヘッダファイルをインクルードして、ライブラリファイルをリンクすればいいと思うよ。
0457デフォルトの名無しさん 2005/05/23(月) 21:02:55
そうですか。ありがとうございました。
ひろったluac.exeとかはコンパイラですかね。
0458デフォルトの名無しさん 2005/05/26(木) 14:27:22
100 '
110 A=2
120 B=3
130 C=7
140 A=13
150 C=A+B
160 B=C*2
このプログラムが実行された直後、つまり160行目まで処理が終わったとき、
変数A,B,Cの値はそれぞれいくらか?
A( )B( )C( )
0459デフォルトの名無しさん2005/05/26(木) 20:32:08
>>458
なにこの幼稚園レベルの問題
0460デフォルトの名無しさん2005/05/27(金) 18:25:08
VC++から使いたいんですが、
5.0.2のヘッダと、↓からlibを拾ってきて、[ツール]→[オプション]
でこれらを読み込むように設定しました。
ttp://sourceforge.net/project/showfiles.php?group_id=32250&package_id=115607

それで、ttp://i-saint.abz.jp/2004.html#20040219
の2/19日の記事をそのままコピペしてコンパイルしてみたんですが、

main.obj : error LNK2001: 外部シンボル "_lua_tonumber" は未解決です

みたいなエラーが沢山出ます。どうしたらよいでしょうか?
0461デフォルトの名無しさん2005/05/27(金) 18:48:04
あきらめる
0462デフォルトの名無しさん2005/05/27(金) 18:56:12
そこをなんとかお願いします。
0463デフォルトの名無しさん2005/05/27(金) 18:58:49
そのlua_tonumberを参照してる箇所を削れ
0464デフォルトの名無しさん2005/05/27(金) 19:05:20
それよりlua使いにくいよ・・
04654602005/05/27(金) 19:15:48
>>463
そうするとLuaの関数全部消えちゃうのですか…
0466デフォルトの名無しさん2005/05/27(金) 19:17:03
じゃあ全部消せよ
04674602005/05/27(金) 19:18:13
消したらプログラムにならないと思うのですが。
0468デフォルトの名無しさん2005/05/27(金) 19:35:21
■[2004/3/1]
 いかに自分がゴミであるかを思い知る。
04694602005/05/27(金) 20:53:56
[プロジェクト]→[設定]からライブラリをリンクしたら
うまくいきました。
[オプション]の所に設定するのと何が違うんだろう。。
0470デフォルトの名無しさん2005/05/27(金) 21:55:50
Lua 5.1 (work6) is now available for testing at
http://www.lua.org/work/lua-5.1-work6.tar.gz

Here are the main changes since 5.1w5:
- standard distribution in only one library (lualib.a merged into lua.a)
- `loadlib' no longer global (packaged inside `package')
- better luaconf.h
- debug information includes last line of a function definition
- metatables for all types
- new "primitive" getn
- new `mod' (`%') operator
- new math functions
- new operation *t (for size of t)
- new protocol to open standard libraries
- using `require' to implement `-l' in bin/lua

There are probably several other small changes that we forget right now...

All the usual caveats of work versions still apply, including the lack
of documentation and the plea for your feedback.

This is really the last work version before 5.1 (alpha), for which no ETA
currently exists. :-) For that, we have to work on the documentation.

Enjoy.
--lhf
0471デフォルトの名無しさん2005/05/27(金) 22:06:48
まるでvector-lispだな
0472デフォルトの名無しさん2005/05/28(土) 02:12:01
楽できると思ってlua導入してみたけど、他と比べてプログラマの負担が大きくないかコレ
0473デフォルトの名無しさん2005/05/28(土) 02:14:23
>472
他のって例えば何?
0474デフォルトの名無しさん2005/05/28(土) 11:24:31
PythonとかRubyでLuaと同じような事ってできないのですか?
0475デフォルトの名無しさん2005/05/28(土) 13:58:44
できないよ^^
04764442005/05/30(月) 04:05:04
個人的に気に入らない部分を修正したluaを置いておきます。
http://xbb.jp/uchichi/ulua-5.0.2_2005_05_30.lzh

主な追加は
・switch文の追加
・Cのfor文ライクな奴を追加
・continueの追加
・//と/**/のコメントの追加
など

主な修正は
・~=は !=に、andは&&に、orは||に、notは!に。
・数字の0は偽に、数字の0以外は真に。
など

詳しくは、uLua.txtを見てね。

暇な方は、試してみてね。
0477デフォルトの名無しさん2005/05/30(月) 09:26:38
せっかくだから5.1にしてよ
0478デフォルトの名無しさん2005/05/30(月) 19:43:39
>>476

とりあえずもらったよ。
0479デフォルトの名無しさん2005/05/30(月) 22:13:30
>>444
おい!!!!すげええええな!!!!!!!
do end を { } にしたとこのほうが、インパクトでけぇ!
0480デフォルトの名無しさん2005/05/30(月) 23:03:58
>>444
乙です。
これから活用させていただきます。
04814442005/06/01(水) 03:07:14
バグってました。

functionでreturnを強制した場合、function内にfor(xx in xx)な奴があると
returnパスを検索する所で無限ループしてしまう。。。。
returnパスを検索するアルゴリズムはどんなのが適当なのだろうか。。。。

一応、修正した奴を以下に置いておきます。
http://xbb.jp/uchichi/ulua-5.0.2_2005_06_01.lzh

まだバグあると思うので、見つけたら教えて下さい。
0482デフォルトの名無しさん2005/06/01(水) 03:26:49
>>481
Lua5.1に未対応というバグがありますよ
0483デフォルトの名無しさん2005/06/01(水) 12:56:05
(´ー`).oO(こういう人は大抵5.1じゃなくても十分な使い方しかしてないんだよね…)
0484デフォルトの名無しさん2005/06/01(水) 13:11:47
>>444
本家にフィードバックするというのはどうでしょう? >>482 みたいな注文もなくなりますよ。
0485デフォルトの名無しさん2005/06/01(水) 16:42:57
受け入れられるわけねー
0486デフォルトの名無しさん2005/06/01(水) 18:36:03
いやいや、メジャーバージョンアップならチャンスあるんじゃね?
他の言語でも後からforeach増えたりしてるし
そのままパッチ適用するかはともかくアイデアは面白いと思うよ
0487デフォルトの名無しさん2005/06/01(水) 19:44:27
え?その面白いアイデアって何?
構文をC風にしたってだけのようにしか見えんが。
0488デフォルトの名無しさん2005/06/01(水) 20:26:18
顔文字の類を関数とか変数に使えるとおもしろいだろうけどね。
まぁ実用性は皆無で、純粋にネタとして。
0489デフォルトの名無しさん2005/06/01(水) 20:38:07
「面白い」かどうかは主観の問題なので >>487 が面白いと思わなくてもどうでもいい。
0490デフォルトの名無しさん2005/06/01(水) 21:26:44
>>489
ああそう。

で、Lua開発者なら「C構文にするとは面白いアイデアだ」とか言うと思ってんの?
0491デフォルトの名無しさん2005/06/01(水) 21:34:16
思ってなくても提案してみる価値はあるんじゃないかという話なんだけど。
なにか Lua には文法の拡張を提案してはいけない特殊な理由でもあるの?
0492デフォルトの名無しさん2005/06/01(水) 22:14:22
「アイディア」って単語にも粘着してるんだと思う
0493デフォルトの名無しさん2005/06/01(水) 22:14:23
普通に考えて構文の追加ならまだしも、
根本的な変更なんて採用されるわけねーだろ…。

もしC構文の方がいいと考えてるなら、最初からそうしてるだろうし。

C構文風にもどちらでも書けます、なんて害にしかならねーし。
0494デフォルトの名無しさん2005/06/01(水) 22:26:05
C構文のほうがメジャーで受けもいいんだから、本家をのっとる勢いで
やっちゃえばいいんだよ
049512005/06/01(水) 23:16:12
http://www.somedude.net/gamemonkey/

C風っていうならば、こっちにも注目だな。
0496デフォルトの名無しさん2005/06/02(木) 04:37:57
continueが大半のML購読者に支持されているにもかかわらず導入されてないあたり、
かなり開発者頑固ぽいよ^^;
0497デフォルトの名無しさん2005/06/02(木) 07:30:28
Wikiにpatchを集めたページがあるので、そちらに載せてみては? >>444

0498デフォルトの名無しさん2005/06/02(木) 20:28:06
開発者がそんなクズじゃ、この言語の未来ないよ
04994442005/06/02(木) 22:14:10
またバグってました。。。。

http://www.water.sannet.ne.jp/sowwa/lua.html
のsjisパッチを使わせてもらっているのですが、
sjisパッチ単体の問題かどうかは分かりませんが、
luacでコンパイルした奴を読み込ませると
2バイト文字の先頭バイトとして判定されて
1バイトずれる時がありました。
つか、このデバッグ大変だった。。。。。

一応、fixしたのを以下に置いておきます。
http://xbb.jp/uchichi/ulua-5.0.2_2005_06_02.lzh
05004442005/06/02(木) 22:24:48
で、本家に取り込んでもらうのは無理でしょう。

switchの追加とかだけだったら可能かもしれませんが、
そもそもswitchの追加なんて、luaの開発者なら数分で出来る
レベルです。continueは、luaのVMにFOR文用のオペコードが
あるので、ちょっと面倒かもしれませんが。

でもって、5.1ですが、luaをアプリに組み込んで
使用することしか考えていないので、5.1に対応する理由が
特に見当たらないです。
アプリに組み込んで使うのに、マニュアルを見ながら書くってのでは
面倒なので、ありがちな構文っぽく修正しているのでした。
0501デフォルトの名無しさん2005/06/03(金) 02:16:11
C言語風。
>>192
>>495
0502デフォルトの名無しさん2005/06/03(金) 03:04:30
あはは、こんな汚い言語いらないよ
0503デフォルトの名無しさん2005/06/04(土) 02:52:51
そもそもなんでその汚い言語がもてはやされるようになったんだっけ
0504デフォルトの名無しさん2005/06/04(土) 03:10:08
C言語だって十分汚いと思うが。
0505デフォルトの名無しさん2005/06/04(土) 03:52:45
JavaScript は比較的奇麗で組み込まれているアプリも多い
Scheme は奇麗で実装も多いけど、S 式にアレルギーある人も多いからなぁ
あとは Python と Ruby か

Lua は適度に汚かったのが評価されてたのかと思ってたけど...
0506デフォルトの名無しさん2005/06/04(土) 11:40:59
PythonやRubyは実装がデカイ
JSは適当なライセンスの実装が無い
0507デフォルトの名無しさん2005/06/04(土) 12:01:32
モズィラの奴とか
0508?デフォルトの名無しさん2005/06/04(土) 12:46:21
当世、C言語風と言わずにJava言語風と言えばあんまり波風立たないのではないかと思ふ。
0509デフォルトの名無しさん2005/06/04(土) 14:43:57
C#風だろ
Javaはまもなく過去の言語となる
0510デフォルトの名無しさん2005/06/04(土) 15:16:56
で、結局Luaは死滅するの?
0511デフォルトの名無しさん2005/06/04(土) 15:58:51
スクリプト埋め込み用として死滅しない
0512デフォルトの名無しさん2005/06/04(土) 22:09:39
んじゃECMA Script風にするかね
0513デフォルトの名無しさん2005/06/04(土) 22:14:33
M$ が Lua をパクって LScript なるものを開発した!

というのを想像しちまったぜいちくしょうめw
0514デフォルトの名無しさん2005/06/04(土) 23:25:02
構文とか表面的な所はまだまだ改良の余地があると思うけど、
Luaは実行パフォーマンスも結構いい線行ってるよ。
http://dada.perl.it/shootout/ みる限り、Ruby/Python <=> C/C++の大体中間くらい。
スレッドや、サイズが小さい所等が評価されてる。あと、global変数なしってのも組み込み向けにとっては有難い。
0515デフォルトの名無しさん2005/06/13(月) 17:14:31
luaで指定の行から開始する、または指定の行へジャンプする
ことってできますか?
0516デフォルトの名無しさん2005/06/14(火) 00:56:53
"行"にジャンプ?wwww
0517デフォルトの名無しさん2005/06/14(火) 11:10:59
何がおかしいのかわからん。
0518デフォルトの名無しさん2005/06/14(火) 11:32:53
>>517
たぶんフリーフォーマット言語なLuaで"行"にジャンプだぁ?
ってことなんじゃない。
正直漏れもなにがおかしいのかわかんなかったけど。

でまぁ>>515 にマジレスすると
Luaにはラベル等もちいたりして途中から実行する機能は
スクリプトの仕様にもCからの呼び出しの仕様にもない。
0519デフォルトの名無しさん2005/06/14(火) 11:43:26
>>516 は年寄り
0520デフォルトの名無しさん2005/06/14(火) 20:58:34
LuaPlusにはそういう機能があるって夢で聞いたことがあるよ
0521デフォルトの名無しさん2005/06/14(火) 21:15:01
>>518
無いんですか orz

>>520
ありがとうございます。
調べてみます。
05225212005/06/16(木) 23:49:19
LuaPlus試してみましたが、どうやら変数の内容をファイルに保存する機能しかないようです。
うーん、難しいです。
0523デフォルトの名無しさん2005/06/17(金) 00:59:41
>522
そもそもなんで「行にジャンプ」させようと思ったの?
目的がわかれば別の対処方法があるかもよ。
0524デフォルトの名無しさん2005/06/17(金) 01:16:50
分かるスクリプト言語がBASICしかないんです
05255212005/06/17(金) 01:50:13
>>523
ゲームのスクリプトにLuaを使おうとしていますが、ノベル系のゲームに
使う場合はスクリプトの実行途中でもセーブ出来るようにする必要があると
思います。
そのためロードして実行を再開する時に指定行からの実行が欲しくなりました。
0526デフォルトの名無しさん2005/06/17(金) 01:58:33
1. yieldごとにどこまで進行したかを記録しておく。
2. ロード時は、以前の場所にくるまですべて処理をスキップ。

みたいなんでどう
0527デフォルトの名無しさん2005/06/17(金) 08:44:36
そこまでしてLuaをつかわんでも・・・・・・
0528デフォルトの名無しさん2005/06/17(金) 14:43:14
>>521
ノベル系作るなら保存以外にも分岐ジャンプ等必要なわけだし
結局ステートマシンくむことになるのでは?
そしたらステートの保存読込だって自分で書くことになる。

まぁ最終的に>>527に同意。
自分で一から全部作りたいんならともかく吉里吉里とかあるんだしさ。
05295212005/06/17(金) 19:51:11
Luaのソースをいじって、途中行から開始できる機能を作成できました。
なんだかあっさり出来てしまって、あちこちのスクリプトライブラリをうろうろした時間
はなんだったんだろうと、ドッと疲れました。

>>526
その場合だとif文の途中やループの途中ではダメだと思います。

>>527
自作のスクリプトを作成すれば一番いいんでしょうが、自分にはそんな技術がないので、
ライブラリに頼ってしまってます。

>>528
分岐ジャンプは別途作成済みなんです。
ノベルというよりRPGのノベル部分に欲しいので、吉里吉里では無理でした。
0530デフォルトの名無しさん2005/06/17(金) 20:14:15
最初は「厨か?」と思わせといて、ほんとにつくってしまう実力派が忍びこんでくるスレはここですね
0531デフォルトの名無しさん2005/06/18(土) 01:01:32
そんなんで実力派って・・・
0532デフォルトの名無しさん2005/06/18(土) 01:40:15
ttp://www11.big.or.jp/~top/2005/0608/
0533デフォルトの名無しさん2005/06/18(土) 19:17:55
>>531
やれやれ・・・
0534デフォルトの名無しさん2005/07/27(水) 14:04:17
保守
0535デフォルトの名無しさん2005/07/31(日) 04:51:41
Lua作った人がgems4に寄稿してた
関係ない記事だけど
0536デフォルトの名無しさん2005/08/08(月) 10:27:02
1FDダウンローダ、という奇妙なものを作ります。
HDDはあるけど、データしかおかない。飛んだら飛んだでざまーみろ、みたいな。
HTTP以外にも全部対応。フロッピー入れて一晩寝てると謎のファイルがぎっしり、みたいなの。
方法ですが、ベースはLinuxで、
そこにgethtmlw みたいなマルチスレッド対応ダウンローダーを、
軽量スクリプト言語で作ればOKかな、と。
この構成で質問です。

1、ホントに軽いですか。実行速度だけじゃなく、バイナリサイズも気になるのですが。ライブラリまで全部入れて500kバイト以下だとうれしいです。
2、複数のTCPセッションを張りたいわけですが、ブロッキングI/Oをマルチスレッドで多重化できますか。
select() を使う方法しかないと、かなりやる気が減ります。
0537デフォルトの名無しさん2005/08/08(月) 23:31:34
1 ネットプラグインを足して、ギリギリ500kをわりこむのでは。
2 マルチスレッドがありません

Cで書いたほうがいいんじゃね?わざわざスクリプトでやんなくても。
0538デフォルトの名無しさん2005/08/09(火) 01:31:02
1 Luaそのもののサイズは50k以下。
 Luaライブラリは必要に応じて追加なので正確なサイズは
必要なLuaライブラリが使用しているCライブラリのサイズによる。
2 マルチスレッドに対応しているので、当然できる

どっちを信じるかは>>536次第(笑)
0539デフォルトの名無しさん2005/08/09(火) 08:22:04
OSのスレッドも使えるけどその部分はCで書くことになるからメリットが...
05405362005/08/09(火) 11:10:26
とりあえず中間報告です。
多分、ここにヒントがあるんですよね。
ただいま解読中。
↓ ↓ ↓
http://www.lua.org/pil/9.4.html
0541デフォルトの名無しさん2005/08/09(火) 15:32:19
536の意図がよくわからん・・
ネット関係のライブラリが充実してない言語だと厳しいんじゃないかと
0542デフォルトの名無しさん2005/08/09(火) 20:41:33
意図は簡単じゃん
「Cでまともにプログラミングする能力が無いので
スクリプト言語を使いたいです」
05435362005/08/11(木) 04:12:20
とりあえず、luasocket インストールしたんですが・・・。
lsocket.so が、カレントにあるときは動くのですが、
/usr/local/share/lua50/ におくと動きません。
パスは通ってるっぽいんですが、何がいけないんでしょうか。
0544デフォルトの名無しさん2005/08/11(木) 04:18:41
自己解決。

export LUA_CPATH=/usr/local/share/lua50/?.so

が正解。
0545デフォルトの名無しさん2005/08/11(木) 11:10:09

これ、どうやってやるんですか。
普通にやると、200Kぐらいありますよね。
多分、luac の出力の実行に特化した「何か」を
使うんでしょうが、どこにありますか。

538 :デフォルトの名無しさん :2005/08/09(火) 01:31:02
1 Luaそのもののサイズは50k以下。
■ このスレッドは過去ログ倉庫に格納されています