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

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

レス数が1000を超えています。これ以上書き込みはできません。
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
0002デフォルトの名無しさんNGNG
はーはっはっは

いとも簡単に2ゲットできるぜ

文句あるなら言ってみろ
00031NGNG
あ、こっち出してた方が早いか。
http://www.uri.sakura.ne.jp/~cosmic/yuno/lab/
あと、前スレ保存してた人キボンヌ。
0004デフォルトの名無しさんNGNG
うあー保存してねぇよ・・・
ネ申のかきこみは、
・メモリー確保変更パッチ
・Lua弾幕
ぐらいかな?
あとは、GCの話題で少々。
00051NGNG
>>4

暫く書き込みが無いから寂しいと思ってたよ。
0006デフォルトの名無しさんNGNG
暫くスレの存在自体を忘れていたよ
00071NGNG
>>6

俺もだ。見たいときには無くなってる。
0008デフォルトの名無しさんNGNG
でまーニュースとしては、
LuaEclipse
でしょ。やっとでたって感じだね
0009デフォルトの名無しさんNGNG
マジデスカ。
さっそくインスト。
0010デフォルトの名無しさんNGNG
保守
0011デフォルトの名無しさんNGNG
色々と神光臨キボン。
0012デフォルトの名無しさんNGNG
このスレタイ、どうしても

プログラミング言(゚Д゚)ゴルァ

としか読めん。
0013デフォルトの名無しさんNGNG
そういえば、GoLua はどうなった?
0014デフォルトの名無しさんNGNG
CoRoutine内のエラーを調べる方法はないものか・・・
0015デフォルトの名無しさんNGNG
前スレあるけどどうすればいいの?
0016デフォルトの名無しさんNGNG
>>15
あ!素敵!保存サイトきぼん
0017デフォルトの名無しさんNGNG
>>16
めんどいよー。どこかあpろだないっすか?
00181NGNG
http://pc2.2ch.net/tech/kako/1034/10341/1034182349.html

そんな事しなくても過去ログに載ったよ。
ワショーイ
0019デフォルトの名無しさんNGNG
>>18
         ナ ゝ   ナ ゝ /    十_"    ー;=‐         |! |!   
          cト    cト /^、_ノ  | 、.__ つ  (.__    ̄ ̄ ̄ ̄   ・ ・   
0020デフォルトの名無しさんNGNG
wxLua 2.2リリースあげ
http://www.luascript.thersgb.net/
wxWindowのBindよりも、
気合のはいったIDEが素敵
0021デフォルトの名無しさんNGNG
プロトタイプベースのプログラミング言語Io(イオ)も宜しく。

Smalltalk, Act1, Self, NewtonScript, LISP, Lua からアイデアの刺激を受けてます。

http://www.iolanguage.com/
0022デフォルトの名無しさんNGNG
ライトウェイトLanguageスレにすれば、よかったね
0023デフォルトの名無しさんNGNG
公式サイトもいまいち動きないからなぁ。
世代別GCはどうなってんだYO!(MLは読んでない)
0024デフォルトの名無しさんNGNG
世代別にしたからって、止まらなくなるわけでもなく。
0025デフォルトの名無しさんNGNG
単なる Generational じゃなくって Incremental Generational なんじゃないの?
0026デフォルトの名無しさんNGNG
>>24
まぁ、俺はそこまでのリアルタイム性は求めてないからな…
とりあえず、「GC時間が全オブジェクト数に比例する」ってのが緩和されればOK。
0027デフォルトの名無しさんNGNG
luaで何をするか
それが問題だ
0028デフォルトの名無しさんNGNG
Cintも使い始めてるんだが、色々わからん。
0029デフォルトの名無しさんNGNG
保守
0030デフォルトの名無しさんNGNG
>>18
>CoRoutine内のエラーを調べる方法はないものか・・・
Resumeの戻り値にエラーのストリングはいります。
0031デフォルトの名無しさんNGNG
そういえば、coroutineの実行が終わったかどうかも
エラー調べないとわかんないんだよね。
0032デフォルトの名無しさんNGNG
非同期との戦いでは、エラーチェックは必須スキルです。
0033デフォルトの名無しさんNGNG
保守
0034デフォルトの名無しさんNGNG
早くも落ちそうな勢いやね。
公式サイトも↓こんな動きしかないし…
28 Jul 1993
Lua 1.0 was up and running. This is the earliest implementation of Lua that
we have found to date.
0035デフォルトの名無しさんNGNG
>34
…何か違わないか?
0036デフォルトの名無しさんNGNG
正直、JavaScript覚えた方が良い気がする。
なんか似てるし。
0037デフォルトの名無しさんNGNG
組み込み用JavaScriptも何種類かあるけど、速度的にはどうなんだろ?

>>35
「we have found to date.」ね。
はてなアンテナの差分を信じるなら、この文が10/11に追加されてる。
0038デフォルトの名無しさんNGNG
LuaをC/C++と連携させる目的以外で、
なにかメリットを探そうとしないほうがいいと思う。
連携させない前提で他言語との比較は、なんだかなぁって感じる。

>組み込み用JavaScript
ものすご気になるw
0039デフォルトの名無しさんNGNG
MozillaのSpiderMonkey
http://www.mozilla.org/js/spidermonkey/
とか
NJS JavaScript Interpriter
http://www.bbassett.net/njs/
とか。

NJSのほうは、言語比較サイト
http://www.bagley.org/~doug/shootout/
で、結構いい成績出してるんだよね。
Mozillaのほうは昔ちょっとやっただけだけど、とりあえずMozillaの他の
大量にあるコンポーネントには依存してなくて単体で使えたような記憶。
0040デフォルトの名無しさんNGNG
>39
おぉサンクス!
中間言語にコンパイルするのかどうか、調べてみます。
0041デフォルトの名無しさんNGNG
njsはソース見りゃわかるけどコンパイルするよ。
コンパイラをバイトコ−ドの形式で配布してるから
改造二次配布防止のセキュリティもばっちりだべ
0042デフォルトの名無しさんNGNG
luaで、数行にわたるプログラムのコメントアウト
全部に--つけるのめんどくさい、あなたに。

rem= { [[
...
...
]] }

で囲んでしまうと。(つまんなくてすまそ・・・)
0043デフォルトの名無しさんNGNG
複数行コメント --[[
......
]] があるっしょ?
004442NGNG
はずかしいかぎり・・・。
0045デフォルトの名無しさんNGNG
C/C++と連携して使う時に威力を発揮する言語なら
なるべくC/C++と文法を同じにしてほしかったなぁ
0046デフォルトの名無しさんNGNG
俺はあんまり気にならないな。
普段から複数言語を使い分けてるせいだろうか?
0047デフォルトの名無しさんNGNG
>45
それ、めちゃくちゃ同意!
そうだったら、もっとはやってたような気がする・・(日本で)
0048デフォルトの名無しさんNGNG
このスレはやく消費して
組み込み用(もしくは軽量)言語スレにしようぜ。
という漏れはLUAに激しく萌えています(今は)
0049 NGNG
Lua5.0 で lua_getn ないんすけど(´д`;)
0050 NGNG
ぅお古かっただけでした

THluaの古いじゃん!
コンパイル面倒くせー
0051デフォルトの名無しさんNGNG
>>48
このままここで軽量言語スレしてもいいんじゃない?
とりあえず、ネタを出してみれ。

もりあがるようなら、ココ放置してスレ立てよう。
0052デフォルトの名無しさんNGNG
>>45
ただ、
* 文字列はどうする?
* 型宣言したい?
* プリプロセッサ?
* C の標準ライブラリって使いやすい?
とか考えてくと、C のようで C じゃない気持ち悪い言語になるかも。

creat 問題に似てる。
0053デフォルトの名無しさんNGNG
俺が知ってる計量言語、作者日本人のやつ

Cmm
http://www.rpm.or.jp/home/pon/computer0.html

ラムダ
http://www.kurumi.sakura.ne.jp/~kdv/products/lambda/

TJS2
http://www.ultrasync.net/dee/kr2helps/tjs2doc/contents/


0054デフォルトの名無しさんNGNG
>>52
文法と機能は分けて考えれるんじゃない?
if x ~= 0 then
..
end

if(x != 0){
..
}
と書きたいとか、そういう話でそ?
文字列もテーブルも今のままでいいし。
でもCの文法には文字列連結演算子や累乗演算子ないよねぇ。匿名の関数も・・・
0055デフォルトの名無しさんNGNG
無名についてはgccの拡張に習えばいいんじゃねーの
00561NGNG
>>45

Cint

http://root.cern.ch/root/Cint.html
0057デフォルトの名無しさんNGNG
>>54 そうそう。そんな感じ!
0058デフォルトの名無しさんNGNG
ゲームに使われてる実績もある、ライトウェイト言語
http://www.compuphase.com/small.htm
0059デフォルトの名無しさんNGNG
>>58
レビューよろ
0060デフォルトの名無しさんNGNG
small
文法がCににてます。
0061デフォルトの名無しさんNGNG
luaもそうだけど、smallはインタプリタがなんか使いにくかったよ。
smallはJITで超速くなるよ。
0062デフォルトの名無しさんNGNG
インタプリタが使いやすい(Cから使いやすいって意味?)言語を上げてもらえるとうれしいかもかも。
0063デフォルトの名無しさんNGNG
Da Da Da

http://www.nbk.gr.jp/song.html

0064デフォルトの名無しさんNGNG
そういえば、
Lightweight Languages 2003 (LL3)
http://ll3.ai.mit.edu/
こんなのやってるんだね。

去年はRubyも発表してたみたいだが、RubyもLightweightなの?
0065デフォルトの名無しさんNGNG
http://www.ai.mit.edu/~gregs/ll1-discuss-archive-html/threads.html
なんかMLにGuy Steele がいるよ・・
すげーとか思った。
0066デフォルトの名無しさんNGNG
smallって今話題のHL2の前の奴に使われてたらしいね。
0067デフォルトの名無しさんNGNG
>54ので、selfをthisにしたら、もっとLUA好きになるかもしれん。
こめんとアウトもこれ。 // /* */
こんな感じでGoLuaにならんかしら。
0068デフォルトの名無しさんNGNG
パーサを書き換える?
0069デフォルトの名無しさんNGNG
問題はブロックかな。
do end -> { }
にしたときのテーブルの定義とかぶらんかな。
Luaのパーサ、混乱するんでない?
do until もあやしい。
0070デフォルトの名無しさんNGNG
たぶん大丈夫だろう・・・
{}.x = 4
とかいうアホなコードは意味ないから、文頭に{が現れたらブロック、で単純にいけると思う。
0071デフォルトの名無しさんNGNG
質問です。
Luaから呼び出されるCの関数で、
テーブルを返すのはどうしたらいいの?

いま、点の座標を返す関数を
つくってるんだけど・・・

lua_pushnumber( L, x);
lua_pushnumber( L, y);
lua_pushnumber( L, z);
return( 3 );

これをテーブルで返したいっす。
よろしくお願いします〜



0072デフォルトの名無しさんNGNG
/* 多分こうじゃないかと。 */
/* Create new table. */
lua_newtable(L);

/* Push x. */
lua_pushstring(L,"x");
lua_pushnumber(L,x);
lua_settable(L,-3);

/* Push y. */
lua_pushstring(L,"y");
lua_pushnumber(L,y);
lua_settable(L,-3);

/* P(ry */
lua_pushstring(L,"z");
lua_pushnumber(L,z);
lua_settable(L,-3);

return 1;
0073デフォルトの名無しさんNGNG
>72
ぬおおお!サンクス!!
ありがとうございます!
0074デフォルトの名無しさんNGNG
Game Programming With Python, Lua, and Ruby (Game Development)
ttp://www.amazon.com/exec/obidos/ASIN/1592000770/qid%3D1067847928/sr%3D11-1/ref%3Dsr%5F11%5F1/104-3613930-5877559
0075デフォルトの名無しさんNGNG
>74
ほぉぉ・・
Rubyもはいってんじゃんね。
ゲームつくるのにはさ、LuaのCoroutineがめちゃ便利
だと思うんだけどさ・・
Pythonにはなんかあったよね、ファイバーだっけか?
Rubyにはそんなのあんの?
0076デフォルトの名無しさんNGNG
Thread
0077デフォルトの名無しさんNGNG
Rubyはそもそも継続をサポートしてなかったっけ?
0078デフォルトの名無しさんNGNG
Rubyをゲームに組み込んで使った例ってあるのかな?
そっちのほうが気になる。
0079デフォルトの名無しさんNGNG
ゲームとはちょっと違うが、伺かの偽AI用のスクリプトにRubyを使うってのは
二つほど見たことがある。
008074NGNG
このシリーズは何気に面白そうです。
スクリプトの本とか。
http://www.premierpressbooks.com/ptr_catalog.cfm?group=Game%20Development
0081デフォルトの名無しさんNGNG
GDC2003のセッションの中にこんなのがあった

Lua in the Gaming Industry
Speaker(s): Jonathan Burns, David Eichorn
Time/Date: TBD
Format: Roundtable
Level: All - Open to All Levels
http://www.cmpevents.com/GDx/a.asp?option=C&V=11&SessID=2272
0082デフォルトの名無しさんNGNG
GDC2004だった。。。sage
0083デフォルトの名無しさんNGNG
保守age
0084デフォルトの名無しさんNGNG
lua そのものに絞った本はまだ出版されてないのですか?
英語 or 日本語で。
ポルトガル語だとありそうだけど。
0085デフォルトの名無しさんNGNG
http://www.lua.org/docs.html
↑ここに、「The first draft of the book "Programming in Lua" by
R. Ierusalimschy is now available. 」とか書きかけの奴があるけど
全然更新されて無いね。
0086デフォルトの名無しさんNGNG
本だすほど、複雑でも無いんじゃないかな・・・
0087デフォルトの名無しさんNGNG
複雑だから本出せと言ってるのではない。
0088デフォルトの名無しさんNGNG
mingwでコンパイルしてlua.exeとかを
作りたいのですがどうやればいいですか?
configファイルを変更しないとダメですか?
0089デフォルトの名無しさんNGNG
>>88
Read the FAQ in >>3.
009088NGNG
FAQとBuilding Lua読んでもわからないDQNでも
コンパイルできる方法を教えてください神様!
0091デフォルトの名無しさんNGNG
Building Lua にずばり書いてあるじゃない。
0092デフォルトの名無しさんNGNG
(Windows) mingw-msys

Here are config [2] and Makefile [3] samples
used successfully to build Lua 5.0-beta (with the LuaBinaryModules enhancements).
No changes are necessary to the Makefiles in Lua's subdirectories.
Use the target dll (i.e., "make dll") to build everything with lua.exe
and luac.exe using lua.dll and lualib.dll.

これだけではわかりかねまする。
0093デフォルトの名無しさんNGNG
何をやってどうだめだったかを書いてみて。
コピペ貼られても困る。
0094デフォルトの名無しさんNGNG
>>93
まず、configを開いてみたら
# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======
とあるので読み進めると、
# On Windows systems. support for dynamic loading is enabled by default.
# To disable this support, uncomment the next line.
#
#LOADLIB= -DUSE_DLL=0
とか
# The Lua IO library (src/lib/liolib.c) has support for pipes using popen and
# pclose. This support is enabled by default on POSIX systems.
# If your system is not POSIX but has popen and pclose, define USE_POPEN=1.
# If you don't want to support pipes, define USE_POPEN=0.
#
#POPEN= -DUSE_POPEN=1
#POPEN= -DUSE_POPEN=0

というふうに何かの注意書きがあって、一行空けた後に式が書いてある。
ここをどう変更すればいいのかわからない。

それと、>>92
No changes are necessary to the Makefiles in Lua's subdirectories.
Use the target dll (i.e., "make dll") to build everything with lua.exe
and luac.exe using lua.dll and lualib.dll.

の意味がよくわからない。

なんとなくつかんだ印象は、configを自分の環境にあうように変更してから
MSYS(mingw)を使ってmakeと打てばバババババババーとコンパイルが
始まってlua.exeやらluac.exeが出来上がる。

0095デフォルトの名無しさんNGNG
もしかして、
# On Windows systems. support for dynamic loading is enabled by default.
# To disable this support, uncomment the next line.
#
#LOADLIB= -DUSE_DLL=0
は、#を消せば良いだけか?

#LOADLIB= -DUSE_DLL=0

LOADLIB= -DUSE_DLL=0
0096デフォルトの名無しさんNGNG
cygwinでの話だけど、configのMYCFLAGSとMYLDFLAGSに-mno-cygwinを追加するだけで、
mingw用のバイナリ(cygwin1.dllに依存しないバイナリ)が出来てしまうんだが?

mysysの方は環境が無いんで、わからん。
0097デフォルトの名無しさんNGNG
>>95
を見る限り英語を読もうともしない人にしか思えんのだが。
0098デフォルトの名無しさんNGNG
socket と cdbを利用したいんだが、
どう buildしたらいいのかな。
009995NGNG
ダメだまったくわからん。
0100デフォルトの名無しさんNGNG
bccでファイル一式同じフォルダに入れて
> bcc32 *.c -olua.exe
とやったら生成ファイル名がlapi.exeになったんだけど、何故にlua.exeでないの?
普通に実行できるようだからいいけど、なんか気になる…
0101 NGNG
-o lua.exe ?
0102デフォルトの名無しさんNGNG
せめて、makeくらいは勉強してほしい。。。とか。
もしくは、本当にLuaを使う必要があるのか?とか。
0103デフォルトの名無しさんNGNG
ちなみにbccはmakeを使わない>>100のやり方が公式に乗ってるけどな(w
>>100の-olua.exeはくっつけてるのが正しいと思うけど、なんで名前が変わるかは知らん。スマ
0104デフォルトの名無しさんNGNG
Lightweight Languages 2003 (LL3)の感想が出てるね。
http://tabesugi.net/memo/2003/b1.html#10

Luaの発表のことも書いてあるよ。
0105 NGNG
>>104
Luaって設定用だったのかー。
その割に、ちょっと変数を参照するのすら面倒なのは何故だ。
こんなことぐらいで、スタック弄らせるんじゃね−。
ラッパー作ったから別にいいけど。

俺は、もっと簡単に使えるのを作ろう(作ってる)


あと、Luaと関係ないけど、
> 「Scheme による Reactive Programming」
一度、Flashの開発環境でも触ってみると言いとおもた。
0106デフォルトの名無しさんNGNG
設定用というとTclも最初そんなこと言って作ってたよねぇ。
あっちの組み込み用インタフェースはどうなんだろ?

>一度、Flashの開発環境でも触ってみると言いとおもた。
開発環境の話では無いような…
0107デフォルトの名無しさんNGNG
> 一度、Flashの開発環境でも触ってみると言いとおもた。

何故ですか?
01081NGNG
とりあえず前スレの2の舞だけは避けたいなあ。
0109デフォルトの名無しさんNGNG
前スレの 2 はふしぎなおどりをおどった
0110前スレの2NGNG
ぅあ
0111デフォルトの名無しさんNGNG
このスレって、自作言語自慢厨が結構出没するんだよね。
それはそれで、結構興味深くて、面白いんだけども。
0112デフォルトの名無しさんNGNG
うん。そのたびに期待しちゃう漏れ。
それだけに決定打がないっているのかな。

でもLUAにかなーり満足してる。
0113デフォルトの名無しさんNGNG
luaと関係ない話題が多いな。そんな俺も、
単に小さい処理系が欲しいなら
otcc
と言ってみる。
0114デフォルトの名無しさんNGNG
otccelf って ELF バイナリを扱える環境なら Linux じゃなくても使えるのか。いいね。
0115デフォルトの名無しさんNGNG
つーかotcc自体、x86環境ならどこでも使えるけど。
0116デフォルトの名無しさんNGNG
俺は x86 使ってないんで、それは別に嬉しくないよ。
0117デフォルトの名無しさんNGNG
elfも含め、otccはx86コードしか吐けないんだが。
0118デフォルトの名無しさんNGNG
それってそのままCなりC++で書いたほうがいいという噂?
0119デフォルトの名無しさんNGNG
それ言ったら奇特なマイナー言語で書かれるよりは(以下略・・と思ってしまうが。
0120デフォルトの名無しさんNGNG
>>116
あ、そうなんだ。スマソ。
ホムペに SPARC/Solaris とか書いてあったから勘違いしてた。
0121120NGNG
レス番間違えた。>>116 じゃなくて >>117 ね。
0122デフォルトの名無しさんNGNG
関係ないけどcurlは異論なcpu上で動作するよ。
scheme知ってればどんなことしてるかぐらいはわかるしね。
基本的に()と{}の違いだけ。
0123デフォルトの名無しさんNGNG
もしotccを使うとしたらその理由は単純に処理系の小ささじゃないかな。
ゴミぐらいのオーバヘッドでCのサブセットが使用できると。
0124デフォルトの名無しさんNGNG
otcc.cをmingw gcc -O2でstripしてできたexeが大体16kbyte。
otccの問題はローカルスコープの参照の仕方に放置されたバグがある事。
あのままだと安心してグローバル変数は使えない。
まともに使うならシンボルテーブル周りをだいぶ書き換える必要がある。
0125デフォルトの名無しさんNGNG
ていうか、その小さい「コンパイラ」をゲーム内でどう使うのさ。
激しく勘違いしてる人がいるような気がする。
0126デフォルトの名無しさんNGNG
あ、変な仮定置いちゃった_| ̄|○
でも、仕様が途中で変化しそうな部分をスクリプトに追い出しておいて、
試行錯誤してみるってのは、割と有効な気がする。それが軽量組み込み言語の利点なわけで。
0127デフォルトの名無しさんNGNG
>>12
コンパイラとか区別する意味ないじゃん。
バイトコードで動くかネイティブで動くか程度の違いなんだから。
例えばゲームの実行時に敵アルゴリズムパターンを
動的作成してコンパイル&その環境で効率良く実行。
もっと賢くなりなよ。
0128デフォルトの名無しさんNGNG
>>125
0129デフォルトの名無しさんNGNG
他アプリに組み込むインターフェイスの事を言ってんじゃないの?
0130デフォルトの名無しさんNGNG
>>129
otccは外部参照書き換えれば簡単に組みこめるけど、
そういう事じゃないの?
0131デフォルトの名無しさんNGNG
どうやるの?とか聞かないでね。
0132デフォルトの名無しさんNGNG
それをやって、組み込みReadyにして公開すると、ありがたがる人は結構多いかも。
0133デフォルトの名無しさんNGNG
構造体も配列も無いのか。ポインタ操作だけでCコンパイラ作るって凄いな。
というか、最初オリジナルバージョン見て嫌がらせか?とか思ったよw(IOCCCに出したんだね。)

まぁ、メモリ管理やらローダ作成やらと、本気で使うならちょっと手を入れないと駄目だね。
0134デフォルトの名無しさんNGNG
保守
0135デフォルトの名無しさんNGNG
保守だってば
0136デフォルトの名無しさんNGNG
最近はIoが流行なの?
http://www.iolanguage.com/

コルーチンもあるんだね。使ってみようか。。。
というか、文法がLuaにも増して変態的かも
0137デフォルトの名無しさんNGNG
なんで流行ってると思ったんだ?
0138デフォルトの名無しさんNGNG
>>136
文法変かな? 普通のメッセージパッシングの言語と同じっぽいけど。
0139デフォルトの名無しさんNGNG
ifとかforeachとかかなり変じゃない?いや、俺的には面白いんだけども。

昔、(もっと原始的だったけど)同じようなプロトタイプベース言語作ったなぁと
ちょっと回顧しちゃった。
0140デフォルトの名無しさんNGNG
CaLua milkってどう?
0141デフォルトの名無しさんNGNG
>133
intとcharがあればどうにでもなるもんだね。
charはポインタ間接のみだから、intだけか。
0142デフォルトの名無しさんNGNG
IoってLuaより速い?
0143デフォルトの名無しさんNGNG
>>142
試してみてくれ。
0144デフォルトの名無しさんNGNG
>>142
Io のページに他言語との比較があるじゃん。
0145デフォルトの名無しさんNGNG
>>144
で、どうなのよ?
あ、はい自分でみてきます・・・
0146デフォルトの名無しさんNGNG
イヤ待て、ちょっと待て。



俺が見てくる…
0147デフォルトの名無しさんNGNG
Luaのnestedloopが光ってるな・・・。あとhashが中々いい成績だ。
Ioはオブジェクト操作が早いというのがウリ?
コードサイズはそれほど小さいわけでもないのね。

個人的にはGC性能の比較がほしい。比較基準が難しそうだけど。
0148デフォルトの名無しさんNGNG
勝手に相互リンク!
Io と Lua
ttp://d.hatena.ne.jp/shinichiro_h/20031208#p3
0149 NGNG
>>148の中の人
gj
0150デフォルトの名無しさんNGNG
たしかにLuaはLuaのオブジェクトをCから直接参照できないのがつらいねぃ。

で、>>148の12/6分のサンプルプログラム見てて思ったんだけど、
IoObjectをCプログラムから参照してる場合、途中でGCが起こったらどうなるんだろ?
いきなり消えちゃわないのかなぁ?
・・・っとFAQを見ると、Cスタック=言語スタックなのね。なるほど。
スレッド(=コルーチン?)はユーザレベルスレッド(=ファイバ?)を使ってるから
それで問題ないのか。

Io uses an incremental (tri-color, write barrier) garbage collector
which is similar to a mark and sweep collector but without the pauses.

使ってるGCの手法はこの方法なのかな?
ttp://members.at.infoseek.co.jp/zzyyb/gc/incremental-collector.html
リアルタイム向けにはこっちの方がいいかも。
0151デフォルトの名無しさんNGNG
ためしに Io 組み込んでみたんだけど
なんかメモリリークしない?

IoState* st = IoState_new();
IoState_free(st);
これだけで激しくリークするんですけど。
0152デフォルトの名無しさんNGNG
GC呼ばないと開放されないとか?
0153デフォルトの名無しさんNGNG
>>152
IoState_free のなかで IoState_collectGarbage を呼んでるので
たぶん違うと思う。

IoState_doCString_ を何度やってもリークの量は増えたりしないので
プログラム中で IoState を1つしか使わない場合は問題にならないかも
しれないけど複数使い分けたいのでちょっと困る。

追っかけようと思ったんだけどざっと2000ブロックぐらいリークしてる。
まあ2,3箇所直したら全部きえるのかもしれないけど...
0154デフォルトの名無しさんNGNG
Ioの初期化をしてないだけじゃないのかと。
0155デフォルトの名無しさんNGNG
IoState_new() が初期化じゃないの?
0156デフォルトの名無しさんNGNG
>>153
プリミティブやプロトタイプを一切解放してないからだと思われ。
main.c で IoState_free() するようにしたあと、インタプリタを起動、
>io Lobby debugCollector = 1
して、終了してみ。

なにしろまだ、バージョン番号すらついてませんから。。
0157デフォルトの名無しさんNGNG
>>156
>プリミティブやプロトタイプを一切解放してないからだと思われ。
IoState_free() の
PHash_do_(self->primitiveProtos, (PHashDoCallback *)freePrimitiveProtosCallback);
PHash_free(self->primitiveProtos);
このあたりで開放してると思われ。

>io Lobby debugCollector = 1
開放の前にGCが動くのでそこのデバック表示をオンにしても意味無いような。

とりあえずバージョン番号がつくのを待ってみます。
0158デフォルトの名無しさんNGNG
しかし Io の開発陣すごいな
ここんとこ毎日のように更新されてる。
Lua もがんばって欲しい...
0159デフォルトの名無しさんNGNG
>>158
Luaはもう安定期にはいってるからでは?
0160デフォルトの名無しさんNGNG
新しいGCが搭載されるって話ありませんでしたっけ?
0161デフォルトの名無しさんNGNG
>>158

Ioはまだバグリ−なんで様子みながら使った方がいいよ。
0162デフォルトの名無しさんNGNG
Lua ってバージョン1.0が出たのはもう10年以上前なのか。
確かにもう安定期ですな。
Io も来年中ぐらいには製品に組み込めるぐらい安定して欲しいなー。
0163デフォルトの名無しさんNGNG
製品にはもういっぱい組み込まれてるみたいよ?
0164脊髄野郎NGNG
あ、ごめn。レスちゃんと呼んでなかった。
0165 NGNG
Programming in Lua
http://www.amazon.co.jp/exec/obidos/ASIN/8590379817
誰か読んだ?
0166デフォルトの名無しさんNGNG
>>165
http://www.inf.puc-rio.br/~roberto/luabook1.pdf
これとは別物?
0167デフォルトの名無しさんNGNG
ページ数が違うみたいだからたぶん別物じゃない?
でもこの PDF 155ページもあるしこれで十分のような。
0168デフォルトの名無しさんNGNG
それよりsmallみたいにJITでも作れよ
0169デフォルトの名無しさんNGNG
お前が作れ
0170デフォルトの名無しさんNGNG
>>165
早速買った勇者はいないのか?
0171デフォルトの名無しさんNGNG
Luaって釣りの話かと思ったらプログラミング言語なんだぁ。
さすが、2ちゃんで最高の知的レベルを誇るム板!
こんなマイナーな言語がPart2ってすごいよね。
日本的には「HSP」や「ひまわり」なんかよりはるかに知名度低い
のに…。(藁)
Part1〜2熟読致しました。感心いたしました。
ブラジル発って言うか中南米原産の言語ってLuaぐらいじゃないでしょうか?
向こうも日本発って言うかアジア原産の言語ってRubyぐらい…て?(藁藁)
基本的には関数型言語に分類されるのでしょうか?
それならご本家関数型言語のスレに仁義は切っておられるのでしょうか?
ショバ代をよこせなんてケチな事を言ってきたら連絡下さい。
ガッツ〜ンと一発、やられたり…してね。(WWW)
Luaはゲームが得意のようですが、皆さんは何に利用されておられるの
でしょうか?
0172デフォルトの名無しさんNGNG
ヤバイ。妹ヤバイ。まじでヤバイよ、マジヤバイ。
妹ヤバイ。
まず可愛い。もう可愛いなんてもんじゃない。超可愛い。
可愛いとかっても 「芸能人で言うと誰似?」
とか、もう、そういうレベルじゃない。
何しろ中1。スゲェ!なんかブラとかして無いの。何カップ?とか彼氏いるの?とかを超越してる。優しいし超可愛い。
しかも成長してるらしい。ヤバイよ、成長だよ。
だって彼女とか成長しないじゃん。だって自分の身長追い越してどんどん伸びてったら困るじゃん。キスするのに超背伸びとか困るっしょ。
身長が伸びて、一年目のときは俺よりうんと下だったのに、三年目のときは頭二つ分彼女が高いとか泣くっしょ。
だから彼女とか成長しない。話のわかるヤツだ。
けど末�ヘヤバイ。そbネの気にしなb「。成長しまくb閨Bお風呂一緒bノ入ろう?とか末マ想してる俺。ャсoすぎ。
妹っていたけど、もしかしたら妹じゃないかもしんない。でも妹じゃないって事にすると
「じゃあ、昼まっから妄想してる俺ってナニよ?」
って事になるし、それは誰もわからない。ヤバイ。誰にも分からないなんて凄すぎる。
あと超血が濃い。約二親等。続柄で言うと妹。ヤバイ俺、萌えすぎ。妹が成人する暇もなく萌え死ぬ。怖い。
それに超つるぺた。超寂しがりや。それにちょっとえっち。キスしたことある?とか平気で訊いてくる。キスて。彼女すらいたことねえよ、今まで。
なんつっても妹は料理が上手い。肉じゃがとか平気だし。
うちらなんて料理とかたかだか日曜日の昼飯を作るぐらいで上手く作れないからレトルトにしたり、コンビニに行ってみたり、昼飯抜かしたりするのに、
妹は全然平気。卵を片手で割ってる。凄い。ヤバイ。
とにかく貴様ら、妹の可愛さをもっと知るべきだと思います。
そんな妹の事ばっかり妄想してる俺とか超一人っ子。もっと親父がんばれ。超母ちゃんがんばれ。
0173デフォルトの名無しさんNGNG
なんつーオチだ。
0174デフォルトの名無しさんNGNG
なんか急に場が荒れてきたなぁ。なんで?
ttp://homepage3.nifty.com/Aransk/
久々に関数型言語のコラムを更新したせいか?(藁藁)
0175デフォルトの名無しさんNGNG
>172
「ひろゆき」さん?
0176デフォルトの名無しさんNGNG
luabind使ってる人いねーか?
0177デフォルトの名無しさんNGNG
pike もいいよ
http://pike.ida.liu.se/
0178デフォルトの名無しさんNGNG
>>177
お。なかなか
0179デフォルトの名無しさんNGNG
萎え
0180デフォルトの名無しさんNGNG
海外掲示板用オフラインリーダーを作るスレ
http://pc2.2ch.net/test/read.cgi/tech/1072883528/

海外でよく使われていうる掲示板スクリプト
専用のオフラインリーダー作って下さい。

必要な条件はID、PASSを管理できること、
OpenJaneみたいな三面型の見た目。
簡単にローカライズできるように言語ファイルを採用
0181 NGNG
GameMonkey Script
http://www.somedude.net/gamemonkey/

better than Luaとかどうとか
0182デフォルトの名無しさんNGNG
> 皆さんの絶大なるご期待に応えて「検索」しやすいよう、今後
> 2ちゃんにおける余輩の全ての発言に「ヒーロー勇気」の
> 名前を冠することに致します。
以前こんな事言ってた奴が居たよな。思いっきり名無しさんに戻ってるが。
0183デフォルトの名無しさんNGNG
>>181
おお〜これ良いね〜!
これで、構造体がつかえれば・・・
LUAはデータ構造が柔軟につくれるとこが、やっぱ
いいんだな・・・あらためて思いました。
0184デフォルトの名無しさんNGNG
機械翻訳でごめんね
Lua5.1のリリース時期に関しての文章です。
ttp://lua-users.org/lists/lua-l/2004-01/msg00012.html

>私は、このリストに関するあるニュースを読んだ>。しかし、誰か情報を持っていますか、何は5.1が変化するだろうか、また、それがいつリリースされるだろうかに関して?
大変化はインクリメントのガーベジ・コレクションになるでしょう。
いくつかの小さな変更がさらにあるでしょう。
現在、リストは多かれ少なかれこれです:
* lexerの中の¥r¥nのよりよい取り扱い
* 自分のメモリアロケーション機能を持ったLua状態を作ることができます。その結果、この状態はこの機能によってそのメモリアロケーションをすべて行います。
(したがって、Lua核心は「malloc」を必要としないでしょう。)
* より柔軟な長いストリングデリミター
( ttp://lua-users.org/lists/lua-l/2003-11/msg00301.html を参照。)
* パーザ、完全にリエントラント
( ttp://lua-users.org/lists/lua-l/2003-11/msg00359.html を参照。)
* ローカル変数用の新しい意味論、の中で、1つの「のために」ループ( http://lua-users.org/lists/lua-l/2003-04/msg00332.html を参照)
* '#'の取り扱いの変化( ttp://lua-users.org/lists/lua-l/2003-11/msg00332.html を参照)
* varargsを扱う新しい方法
( ttp://lua-users.org/lists/lua-l/2003-10/msg00362.html を参照。)
私たちは、互換性問題を備えた大きな世話をしています。
に関して「いつ:」
新しいごみ収集人は模範を示すでしょう。
準備ができている場合、Lua 5.1は準備ができているでしょう。
私たちは、2月3月ごろの新しいごみ収集人の仕事バージョンをリリースすることを計画します。
最終バージョンのための最初の生の評価は8月(しかし、これは見当違いの推測です)でありえます。
-- ロバート
0185デフォルトの名無しさんNGNG
長かったね。
GCの実装はやっぱり大変だったということなんだろうか?
0186デフォルトの名無しさんNGNG
オリジナルメモリアロケータをもてるのが、よさそう・・・。
0187デフォルトの名無しさんNGNG
現状でもAPIとしては整備されていないけど一応分離されてるっぽいけどね。
前スレでなんかやってた人が居た。
0188 NGNG
Calua
http://calua.sourceforge.net/

Lua wrapper っぽ
0189デフォルトの名無しさんNGNG
InlineCですか?
01901NGNG
そういえばCintってどうよ?
0191デフォルトの名無しさんNGNG
luaで、%ってないの?

a = 3 % 2
0192デフォルトの名無しさんNGNG
ttp://www.angelcode.com/
のAngelScript
C言語ライクですな。
構造体(Obj)はCの方から作成
0193デフォルトの名無しさんNGNG
>>191
math.modを使えってことじゃない?
0194デフォルトの名無しさんNGNG
>>192
strongly typedという特徴を見逃してはいけないな!
0195デフォルトの名無しさんNGNG
>>193
ありがとうございます。

実はPlua(PalmLua)でやってます。
PluaはLua4.0相当だそうです。

Plua remainderで検索していたら、下記のページが見つかり、
http://archive.neotonic.com/archive/lua-l/browse_frm/thread/1619/6708

そして、ここを見ると、modが関数として用意されていました。
http://www.lua.org/manual/4.0/manual.html#6.3

結局
a = mod(3, 2)
でできました。
0196デフォルトの名無しさんNGNG
CaLuaをcygwinで使いたいんですが、どうしたらいいのか分かりません。
0197デフォルトの名無しさんNGNG
マイナー言語を使う資格=自分で問題を解決できる事。
0198デフォルトの名無しさんNGNG
CaLuaってVC用なのか。
ソースまとめてコンパイルするだけじゃだめなの?>>196
0199デフォルトの名無しさんNGNG
そのままじゃだめだね>CaLua
__asmとか使ってる所をGCC用に書き換えないと。
0200デフォルトの名無しさんNGNG
ttp://www.lua.org/ftp/lua-5.0.1.tar.gz
しってた?
俺はさっき知った・・・。
0201デフォルトの名無しさんNGNG
5.0.1のパッチは去年の10月くらいに出てるね。
コルーチンとかスタックとかのバグフィックスが行われたらしい。
んで、5.1はまだ半年先らしい。
0202デフォルトの名無しさんNGNG
>>200
それって5.0に↓このパッチを当てたものと同じですか?
ttp://www.uri.sakura.ne.jp/~cosmic/yuno/lab/lua5_bugs_ja.html
0203デフォルトの名無しさんNGNG
多分そうじゃない?

http://lua-users.org/lists/lua-l/2003-12/msg00026.html
>This version corrects all known bugs in Lua 5.0, that is, those listed in
>http://www.lua.org/bugs.html
0204202NGNG
>>203
ありがとうございます。
同じものと確認しました。
0205デフォルトの名無しさんNGNG
ほすゅ
0206デフォルトの名無しさんNGNG
win版5.0.1バイナリは落ちてねーのかyo?
0207デフォルトの名無しさんNGNG
LuaのIDEが出たようです。
http://www.gorlice.net.pl/~rybak/luaide/
誰かもう使っておられますか?
0208デフォルトの名無しさんNGNG
wxLuaのおまけにもIDEついてきて種。
というか、自分のアプリに組み込んだLuaのデバッグとかできないかなぁ?
0209デフォルトの名無しさんNGNG
自分のプログラムをDLLに汁
0210デフォルトの名無しさんNGNG
>>207
これの使い方がわからんのですが
IDE上で実行とかブレークポイント貼るのとかどうやんの?
メニュー覗いても該当する項目ないし
F5押しても何も起きないし

もしかして、見た目だけとか・・・?
0211デフォルトの名無しさんNGNG
>210
>もしかして、見た目だけとか・・・?
やっぱりねぇ。なんとなくヤバそうな雰囲気だったから
誰か試してくれないかなぁ…って(大笑い)
ゴメン。


0212210NGNG
>>211
ミミ:::;,!      u       `゙"~´   ヾ彡::l/VvVw、 ,yvヾNヽ  ゞヾ  ,. ,. ,. 、、ヾゝヽr=ヾ
ミ::::;/   ゙̄`ー-.、     u  ;,,;   j   ヾk'! ' l / 'レ ^ヽヘ\   ,r゙ゞ゙-"、ノ / l! !ヽ 、、 |
ミ/    J   ゙`ー、   " ;, ;;; ,;; ゙  u ヾi    ,,./ , ,、ヾヾ   | '-- 、..,,ヽ  j  ! | Nヾ|
'"       _,,.. -─ゝ.、   ;, " ;;   _,,..._ゞイ__//〃 i.! ilヾゞヽ  | 、  .r. ヾ-、;;ノ,.:-一'"i
  j    /   ,.- 、  ヾヽ、 ;; ;; _,-<  //_,,\' "' !| :l ゙i !_,,ヽ.l `ー─--  エィ' (. 7 /
      :    ' ・丿   ̄≠Ξイ´,-、 ヽ /イ´ r. `ー-'メ ,.-´、  i     u  ヾ``ー' イ
       \_    _,,......::   ´゙i、 `¨ / i ヽ.__,,... '  u ゙l´.i・j.冫,イ゙l  / ``-、..- ノ :u l
   u      ̄ ̄  彡"   、ヾ ̄``ミ::.l  u   j  i、`ー' .i / /、._    `'y   /
              u      `ヽ  ゙:l   ,.::- 、,, ,. ノ ゙ u ! /_   ̄ ー/ u /
           _,,..,,_    ,.ィ、  /   |  /__   ``- 、_    l l  ``ーt、_ /  /
  ゙   u  ,./´ "  ``- 、_J r'´  u 丿 .l,... `ー一''/   ノ  ト 、,,_____ ゙/ /
        ./__        ー7    /、 l   '゙ ヽ/  ,. '"  \`ー--- ",.::く、
       /;;;''"  ̄ ̄ ───/  ゙  ,::'  \ヾニ==='"/ `- 、   ゙ー┬ '´ / \..,,__
、      .i:⌒`─-、_,....    l   /     `ー┬一'      ヽ    :l  /  , ' `ソヽ
ヾヽ     l      `  `ヽ、 l  ./  ヽ      l         )  ,; /   ,'    '^i
0213209NGNG
>>211
ためしたよ。プロジェクトを新規作成しないと、
うんともすんともいわんみたい。
プロジェクト上でプログラムをかくべし。

う〜ん、自分のDLLをwxLuaと、LuaIDEでよませてみたけど、
LuaIDEはなんかいまいち、うまくいかんかった。
終了時にIDEごとおちちゃう。原因は特定してないけど、
DLL作成時のコンパイルオプションがIDEのコンパイルオプションが
ちがうんだろう。
DLLは5.0.1作成したんだけど、IDEは5.0.0かもしれない。

wxLuaは、実行したプロセスが落ちないようになってしまったけど、
これはなんとかなりそう。
0214デフォルトの名無しさんNGNG
上位値とクロージャが分かりません。
あとLuaからCの変数にアクセスする方法も分かりません。
0215デフォルトの名無しさんNGNG
>213
お手数おかけしました。
IDEのWEBでは一応5.0.1対応とは言っておりますが
その辺りは、結構いい加減なんでしょうね。
(管理人のオッチャンからアクセス規制をくらって
おりまして、ご返事が遅れました。
悪しからず。)
0216デフォルトの名無しさんNGNG
>214
上位値とクロージャを。自分の変数を持つ関数かな?
schemeとかocamlとかperlとかにはあった気がする。lispが発祥だとかperlの本にあったなぁ。
--
newgreeting = function(a) --a:上位値
return function (b); print(a..", "..b..".") end --クロージャ
end
gr1 = newgreeting("Good morning");gr1("Emily");gr1("Mike")
gr2 = newgreeting("See you");gr2("Emily");gr2("Mike")

-- もうひとつ 上位値の変更
newcounter = function ()
local cnt=0 --上位値
return function ()
cnt = cnt+1
return cnt
end
end
cnt_a = newcounter()
cnt_b = newcounter()
print(cnt_a())
print(cnt_a(), cnt_b())
print(cnt_a())
print(cnt_a(), cnt_b())
print(cnt_a())
print(cnt_a(), cnt_b())
結果は省略
0217デフォルトの名無しさんNGNG
>>216
すごい
や・・やるなぁ・・・。
0218デフォルトの名無しさんNGNG
>>216
ありがとう。
よくわかりました。
0219デフォルトの名無しさんNGNG
>>216
その辺りマニュアル読んだだけでは理解できなかったので勉強になりました。

既出かもしれないけど、「FarCry」にLuaが採用されてますね。
ttp://www.farcry-thegame.com/uk/technology.php

体験版をインストールしたら、Scriptsフォルダの中に拡張子が".lua"の
テキストファイルが大量に入っていたので驚きました。
ゲームプログラマさん達には参考になるかも。
0220 NGNG
そろそろFarCryがでるころかと思ってた

コンパイル済みのじゃなくて、生の.luaファイルが入ってるのには
弄ってくれといわんばかりだ。
0221 NGNG
クロ−ジャみて驚いたけど、使い道がわからん_| ̄|○
ジェネレータに使えるといわれても、LuaだとOOっぽく記述できるし・・・
0222デフォルトの名無しさんNGNG
genericsのために使えるよ。

a = {1, 2, 3, 4, 5, 6}
b = {}
table.foreach(a, function (v) table.insert(b, v*2) end)
print(table.concat(b, "\n"))
0223 NGNG
あー、それ(無名関数からグローバルな変数へのアクセス)が出来るのは当たり前かと思ってた
なるほど、確かに上位値とクロージャの効用だ

dクス
0224デフォルトの名無しさんNGNG
関数型言語ごっこ。
カリー化関数curry()を作る。とかw

% lua
Lua 5.0 Copyright (C) 1994-2003 Tecgraf, PUC-Rio
> function curry (f, v) return function (...) return f(v, unpack(arg)) end end
> function add (a, b) return a + b end
> print(add(1,2))
3
> inc = curry(add, 1)
> print(inc(3))
4
> function add3(a, b, c) return a + b + c end
> foo = curry(add3, 1)
> print(foo(2, 3))
6
> bar = curry(foo, 2)
> print(bar(3))
6
0225デフォルトの名無しさんNGNG
変数に数値を16進数で代入するにはどうしたらいいですか?
C風に
foo=0x2B
こんなかんじで書きたいんですけど。
0226デフォルトの名無しさんNGNG
マニュアル嫁
サンプル嫁
0227デフォルトの名無しさんNGNG
マニュアルのどこ?
サンプルはどこ?
foo = tonumber('2B', 16)
これ?
0228デフォルトの名無しさんNGNG
luaのソース嫁
0229デフォルトの名無しさんNGNG
ファイル名は?
0230デフォルトの名無しさんNGNG
>>216 と >>224 のせいで、
Lua好きにナターヨ
0231デフォルトの名無しさんNGNG
ほすゅ
0232デフォルトの名無しさんNGNG
Luaのスレッドって、なんかAPI呼ばなくても、裏で勝手に走るのかな?
OSレベルのスレッドなのかな?って話なんだけど
0233デフォルトの名無しさんNGNG
>>232
CoRoutineのこと?
それとも、スレッドが利用できる拡張でもあるんだっけ?
0234デフォルトの名無しさんNGNG
>>232
lua_newthreadの話だよね?
lua_resumeはコルーチンが中断されたり実行終了したら、
呼び出しから戻るってかいてあるからOSレベルのスレッドは
自前で実装してその中で呼ぶようにしてってことじゃない?
0235デフォルトの名無しさんNGNG
>>234
そそ
コルーチンは、終わるかyield呼ぶまでだと書いてあるんだけど、
newthreadの方は、特に書いてないんだよね
0236デフォルトの名無しさんNGNG
Luaもりあがってるかい?
0237234NGNG
>>235
そりゃ書いてないだろ。
0238デフォルトの名無しさんNGNG
>>234
Luaのコルーチン=lua_newthread+lua_resume(+lua_yield)だよ。
lua_newthreadは新しいコルーチンを生成する関数。
lua_newthread()とlua_resume()を使ったサンプルは前スレにある。
threadって付いてるけどOSのスレッドとは一切全く関係ない。
0239デフォルトの名無しさんNGNG
Programming in Lua をかって読んだ人はいますか?
0240デフォルトの名無しさんNGNG
>>237
結局、スクリプトを実行(dofileとか)したら、
終わるまで帰ってこないって解釈で良いのかな?

裏で何かしたかったら、(処理系もしくはOSの)スレッド使えと
0241デフォルトの名無しさんNGNG
>>240
lua_resume使えば、Luaスクリプト側でyieldすれば戻ってくるよ。
もう一回lua_resumeするとyieldしたところから実行が始まる。
協調型マルチスレッド(=コルーチン)と言ったところか。

別にOSのスレッド使うのも有りかもしれんけど、Luaってスレッドセーフだっけ?
0242デフォルトの名無しさんNGNG
lua_resumeしたあとでエラーの検出どうやるの?
とりあえずlua_resumeが1を返しても正常終了かエラーで中断かわからん
0243デフォルトの名無しさんNGNG
lua_resumeが0以外で帰ってきて、スタックが1つだけ詰まれててそれが文字列で、
・その文字列が"cannot resume"を含まなければ、スクリプト実行エラー
・そうでなければ、既に実行が終わったものをlua_resumeしようとした時のエラー
とかしてる。もっとうまい方法あるかな?

lua_resumeが正常終了した後、もう一度lua_resumeを呼べるかどうかを調べる方法は、
ソースを見る限りなさゲ?(もう調べたころの記憶が曖昧だけど…)
0244デフォルトの名無しさんNGNG
ユーザーデータ作成のサンプルプログラムでよく
lua_pushliteral(L, "__metatable");
lua_pushvalue(L, methods);
lua_settable(L, metatable);
ってあるんですけどメタテーブルのメタメソッド"__metatable"って
何のために設定するんでしょうか?
リファレンスのメタテーブルのとこ見ても
このメタメソッドについては何も書いてないし…
0245デフォルトの名無しさんNGNG
userdata = (ライトユーザーデータを返す関数)
userdata:print()
みたいにC側からライトユーザーデータを渡して
それに対して関数を呼んだりしたいのですが
ライトユーザーデータだとメタテーブルを
持てないのでできません。
なにか良い方法はないでしょうか?
0246800getNGNG
a="test"
env={
  b = "test",
  c = { "test" }
}

C側から値を取得しようとしてます。上の中で、
aはlua_getglobalのあとにlua_tostring、
cはリファレンスのテーブルを巡回する例と同じようにできたのですが、
bができません。
どなたかご教授ください。
0247デフォルトの名無しさんNGNG
なぜ800?
0248246NGNG
質問に答えられないような奴らにまかせておけないからな。
今から宣言しておく。

 8 0 0 は オレ が 獲 る !
0249デフォルトの名無しさんNGNG
>>246
この例でcが取れてbが取れないって
ネタとしか思えん。
0250デフォルトの名無しさんNGNG
ここはlua5.1がでるまでネタスレになりました。
0251デフォルトの名無しさんNGNG
>>246
cのテーブルを巡回するほうが難しいだろ!
0252デフォルトの名無しさんNGNG
>>246
ソースみせて。
たぶん一発で回答がでるよ。
0253246NGNG
こうです。どのへんが悪いのでしょう?
なお248は別人です

 lua_pushstring(L, "env");
 lua_gettable(L, LUA_GLOBALSINDEX);
 lua_pushstring(L, "b");
 lua_gettable(L, -2);
 if(lua_gettop(L) && lua_isstring(L, -1))
 {
  strcpy(buf, lua_tostring(L, -1));
 }
 lua_pop(L, 1);
 lua_pop(L, 1);
0254デフォルトの名無しさんNGNG
う。なんでだろ。
うまくいきそうなもんだけど・・・。
0255デフォルトの名無しさんNGNG
だからネタだって
0256デフォルトの名無しさんNGNG
こんなマイナー言語でわざわざネタやる意味ってなんだろ?
そんな混乱させたいのか
0257246NGNG
ごめんなさい。テストルーチンがバグってました。

 printf( "[%]←なんで結果が返らないんだよ!糞が!!", buf);
0258デフォルトの名無しさんNGNG
ま、よかったよかった
0259デフォルトの名無しさんNGNG
いろんなとこで、LUAみるようになったな。
LUAをまるまる組み込んでるのに、
”LUA”っていう文字がでてこなかったら、
なに隠しんてんだよって激しく思う。
0260デフォルトの名無しさんNGNG
なーなーMacroMediaのアクションスクリプトと
よくにてない?
0261 NGNG
JavaScriptとは似てるのかな?
手元にあったDMonkey触ってみた

a = new Object;
a["foo"] = "bar";
println(a.foo); // bar


function Hoge() {
 this.a = "foo";
 this.b = function(s) { println(s + this.a); }
}
var f = new Hoge;
f.b("bar"); // barfoo


a = {
 test: -12,
 hage: "foo",
 hoge: function (a) { println(a + " at hoge"); }
};
a.hoge("moge"); // moge at hoge

うほっ
0262デフォルトの名無しさんNGNG
>>261
ほーこの辺の言語はもうどれも似たりよったりなのかねぇ〜
0263デフォルトの名無しさんNGNG
JavaScriptもクロージャもってるしね。

function greaterThan(/* number */ u) {
return function(n) {
return n > u;
};
}
// 使う
var arrOriginal = [45, -29, 213, 99, 118];
filterArray(arrOriginal, greaterThan(50)); // 213,99,118
0264デフォルトの名無しさんNGNG
wxLua 2.3 あげ。 そして直リン
http://www.luascript.thersgb.net/
wxWindow部分がDLLになってはずれた!
いますぐ、もまえのLuaの拡張もDLLに汁。
ステップ実行できるよ。
0265デフォルトの名無しさんNGNG
LUAはCとの親和性が目的の1つなのに、
Cライクになりきってないとこがなぁ・・。
コメントが--って他の言語にあるの?
0266デフォルトの名無しさんNGNG
>>265
Ada,Eiffel
0267デフォルトの名無しさんNGNG
>>265
SQL
0268デフォルトの名無しさんNGNG
結構あるのね
0269デフォルトの名無しさんNGNG
>>265
maxScript
0270デフォルトの名無しさんNGNG
ttp://www.lua.org/ftp/lua-5.0.2.tar.gz 04-Mar-2004 10:02 186k
0271デフォルトの名無しさんNGNG
>>270
さんくす!
0272デフォルトの名無しさんNGNG
ほすゅ
0273デフォルトの名無しさんNGNG
日本語化パッチ
http://www.water.sannet.ne.jp/sowwa/
0274デフォルトの名無しさんNGNG
その日本語化パッチ、今のバージョンじゃだめっぽくない?
前スレで出てた方法なら平気そうだけど(変更箇所が2箇所に増えてるけど
0275 NGNG
5.0.2でってことか、そいやまだ試してないや.
0276デフォルトの名無しさんNGNG
質問です。
ttp://nebula.student.utwente.nl/archive.php
のソース「Sphere」の中に、

#ifdef _DEBUG
#pragma comment(lib, "lua5_dbg.lib")
#else
#pragma comment(lib, "lua5_rel.lib")

というのがあるんですが、このライブラリって
どうやって入手するんでしょう?
ソースには入っていないし、公式サイトにもないような
のですが…
0277デフォルトの名無しさんNGNG
自分でコンパイルしたんじゃないの?
リリース版とデバッグ版で作成されるライブラリのファイル名変えてるんでしょ。
0278276NGNG
自己解決しますた。
LuaBinaries5.0.2の中の、lualibd.lib
と同一のものだったようです。
ようやく実行できた…
0279差分NGNG
279 名前:デフォルトの名無しさん[] 投稿日:04/03/25(木) 15:02
キミ達に朗報だ。

ttp://www.tecgraf.puc-rio.br/lua/work/lua-5.1-work0.tar.gz

概要はこちら。

ttp://lua-users.org/lists/lua-l/2004-03/msg00317.html

GC の変更については俺に評価する知識はないんだけど、実際どう?
0280差分NGNG
280 名前:デフォルトの名無しさん[sage] 投稿日:04/03/25(木) 17:53
どういう実装かまだ読んでないけど、まあincrementalにしたんだから、
GCで長時間止まることはなくなったんだろう。
0281デフォルトの名無しさんNGNG
>>280
さんくす
0282デフォルトの名無しさんNGNG
ちなみに全体の実行速度は(GC変更のせいで?)遅くなってるみたいだ。
0283デフォルトの名無しさんNGNG
>>282
工エエェェ(´д`)ェェエエ工
全体的におそいの?
トータルでいくと同じなのかなぁ・・・。
0284デフォルトの名無しさんNGNG
VCのクラスメンバ内でLua関数を呼び出そうとしてます。
lua_register(L,(struct lua_State *)"SetMap",SetMap);
のところでビルドエラーになります。
'lua_pushcclosure' : 2 番目の引数を 'int (struct lua_State *)' から 'int (__cdecl *)(struct lua_State *)' に変換できません。
て出ます。
__cdecl *ていうのが良くわからないんですが、調べてみたらC++の呼び出し規約云々ということで
CであるLuaをC++から呼ぼうとしてるのが問題のような気がします。
回避するのはどうしたらいいのでしょうか。
どなたかご教授くださるとうれしいです。よろしくおねがいします
0285デフォルトの名無しさんNGNG
lua_register(L,(struct lua_State *)"SetMap",SetMap);
   ↓
lua_register(L,(struct lua_State *)SetMap,"SetMap");
0286デフォルトの名無しさんNGNG
>>284

extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
};
0287デフォルトの名無しさんNGNG
lua_register(L,"SetMap",SetMap);
でいいのでは?

(struct lua_State *)"SetMap"
がエラーの原因っぽいが・・・
0288デフォルトの名無しさんNGNG
284です。
色々ご指導ありがとうございます。
>>287さんのいうとおり、その部分はエラーでした。
2番目の引数が〜なんてメッセージがでてるのでそこがおかしいのとずっと思ってまして、
色々試してる途中のコピペをしてしまいました。
Lua.hを追ってみたらどうやら3番目の関数で引っかかっている様子です。
これがメンバ関数では駄目みたいです。
とりあえずSetMapをクラスからはずしてみようとおもいます。
ありがとうございました。
0289デフォルトの名無しさんNGNG
>>288
ん?まてまて、クラス?
C++のclassか?
static 関数にしてるだろうな?
0290デフォルトの名無しさんNGNG
Luaいいね。
0291デフォルトの名無しさんNGNG
組み込みには、最高ですな。
0292デフォルトの名無しさんNGNG
組み込む機会があればな。
0293デフォルトの名無しさんNGNG
LUA用に組み込んだCの関数に
Doxygen用のドキュメント書いてるんだけど、
_| ̄|○ どうすればいいかわからん

とりあえずこんな感じ
/*!
@brief 平行移動量を取得する。
@code
mtx= Matrix:new();
mtx:translate( { 10, 10, 10} );
pos= mtx:getpos();
@endcode
@param なし
@return 平行移動量 { x, y, z}
*/
static int getpos_( lua_State *L) {
}

0294デフォルトの名無しさんNGNG
保守
>>293 すまん、おれもいいアイデアおもいつかん
0295293NGNG
いろいろやってみたけど、
_| ̄|○でした・・
0296デフォルトの名無しさんNGNG
"Lua for Delphi"

Delphi から、Lua を使う。
Debugger もある(ソース付き)。

ttp://kuma.webj.net/delphi/index.html#luadelphi
0297 NGNG
>>296
俺も最近それみつけた
ちょうど自分でコンバート中だったから、使わせてもらおう
0298デフォルトの名無しさんNGNG
こうしたらダメなの?
int getpos_( lua_State *L ){
int ret = getpos_impl();
lua_pushnumber( L, ret );
}

/*!
なんかコメント
*/
int getpos_impl(){
}

mpl使えれば上の(implじゃないほう)コードは自動生成できそうなんだけど。
mpl正直意味わからん_| ̄|○
0299デフォルトの名無しさんNGNG
モチベーション続かないので晒し上げます。Luaのメモを書き溜めたもの。
http://nnr.s45.xrea.com/wiki/pukiwiki.cgi?Lua%A5%E1%A5%E2
コードは全部動作確認してません…ゴメンナサイ
0300デフォルトの名無しさんNGNG
そういえばmekakitとluaの組み合わせってどうよ?
0301 NGNG
http://www.google.co.jp/search?hl=ja&ie=UTF-8&c2coff=1&q=mekakit&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
0302デフォルトの名無しさんNGNG
>>299
いやいやいや!!!
ナイスナイス!!!ありがとう!!まじで!!!
感動した!
0303デフォルトの名無しさんNGNG
>>301

metakitだった。すまん
0304デフォルトの名無しさんNGNG
Luaって、何がいいんだ?
0305デフォルトの名無しさんNGNG
サイズの小ささが利点
0306デフォルトの名無しさんNGNG
小さいか?
0307デフォルトの名無しさんNGNG
小さい、速い、ってのは散々言われている利点だが。

データ記述性ってのが一つの利点だと思うよ。
XML並の拡張性を担保していてなおかつプログラミング言語だから。
たとえばUIの拡張言語として採用してみたら、面白そうだと思わない?

あとテーブルの無茶さ加減が大好きだ。あふぉ杉。
0308デフォルトの名無しさんNGNG
>>307
ほほ〜、いいかも知れんな。
日本語訳もあるし、時間が出来たらやってみるかな。

なんか、パスカルに似てる気がするけど、気のせいかな?
0309デフォルトの名無しさんNGNG
激しく気のせいじゃないよ。
Cで書かれてるならC真似れというのも散々言われてる欠点だ(苦笑
0310デフォルトの名無しさんNGNG
覚えるのに、ちょっと苦労しそうだな。
Cを真似てくれたら楽なのにな〜

(これ覚えると、パスカル読める?)
0311デフォルトの名無しさんNGNG
どうだろ?今現役(?)なPascalはDephiのObjectPascalかな?あんまり
参考にならんと思うよ。

まぁ本物のプログラマ名乗りたきゃ、最低5言語(パラダイムの違うものを)
学ぶべし、とどこかのエロイ人が言ってた。精進すべし。漏れはあと関数型
言語だけだ(苦笑
0312デフォルトの名無しさんNGNG
C/C++/Java/PHP/N88Basic
しかできない私はだめでつか?
0313デフォルトの名無しさんNGNG
PHPとN88Basicは0.5と数えるので、1足りません。

ざんねん あなたのぼうけんは こk(ry
0314デフォルトの名無しさんNGNG
>>312
きみにはLisp分が足りない。Schemeを処方しよう。毎食後服用すること。
そのうちSchemeが主食になる。
0315デフォルトの名無しさんNGNG
Lisp原理主義者がいるのはこのヌレですか?
0316デフォルトの名無しさんNGNG
Lispはかっこのお化け〜
0317デフォルトの名無しさんNGNG
保守

自分でコンパイルせにゃならんのか…
0318デフォルトの名無しさんNGNG
プログラミングを独習するには10年かかる
http://www1.neweb.ne.jp/wa/yamdas/column/technique/21-daysj.html
> ・少なくとも半ダースのプログラミング言語を学ぶこと。そのうちの一つはクラス抽象を
> サポートするもの(例えば Java や C++)、一つは関数抽象をサポートするもの(例えば
> Lisp や ML)、一つは構文抽象をサポートするもの(例えば Lisp)、一つは宣言的記述を
> サポートするもの(例えば Prolog や C++ テンプレート)、一つは coroutine をサポート
> するもの(Icon や Scheme)、そして一つは並列処理をサポートするもの(例えば Sisal)
> であること。

これDEATHね。
0319デフォルトの名無しさんNGNG
N88-Basic、Asm(mc68000)、X-Basic(外部関数拡長)、C、Delphi、C++、YaneGameScript
0320デフォルトの名無しさんNGNG
>>319
>YaneGameScript
ワラタ。YGSくわ。
0321デフォルトの名無しさんNGNG
並列処理なんて個人レベルで必要かなあ。
とりあえずC++とSchemeやっとけばいいと思うよ。
0322デフォルトの名無しさんNGNG
C++/Boostで、たいがいの事はできるんじゃね?
無名関数も使えるぞ。
0323デフォルトの名無しさんNGNG
>>318
Scheme1言語だけで、関数抽象と構文抽象と coroutine の3つはOKでつね。
0324デフォルトの名無しさんNGNG
ほほう。よし、ちょっと今からSchemeスレ行ってくる。

    -= ∧_∧
  -=≡ ( ´∀`)
    -=( つ┯つ
   -=≡/  / //
  -=≡(__)/ )
   -= (◎) ̄))
0325デフォルトの名無しさんNGNG
((lambda(a)(a a))(lambda(a)(a a)))
が永久に動く世界だからなあ。
C++と合わせて2、3年ぐらいでいいんじゃね。
0326デフォルトの名無しさんNGNG
この言語おもしろいな。
0327デフォルトの名無しさんNGNG
16進データを書くときどうすると、いいのかな・・・
Luaプログラムファイル内にいれたいんですが・・・。
0328デフォルトの名無しさんNGNG
>>327
自分で拡張しる。
0329デフォルトの名無しさんNGNG
現在プログラム板にはHSP関連スレに凶悪な荒らしどもが住みついています。

・HSPに関係の無い話題でスレッドを上げまくる
・HSPオフィシャルサイトの住人を名指しで誹謗中傷する
・重複スレを乱立させる

などの荒らし行為を行っています。
みんなで団結してム板のゴミどもを追い出しませんか?

【HSP関連スレ】
【皆のレイプ魔】HSP初質P25【WWEヲタ=ハゲ】
http://pc5.2ch.net/test/read.cgi/tech/1086878505/
HSP>>>>>>>>>>>>>C=糞w
http://pc5.2ch.net/test/read.cgi/tech/1071899663/
今日もどこかでHSP初心者が質問ですP19
http://pc5.2ch.net/test/read.cgi/tech/1084089079/
HSPについて
http://pc5.2ch.net/test/read.cgi/tech/1085149790/
0330327NGNG
16進でなければ、
a= "\010";
とやって、バイナリデータをString内にいれることができました

>>328
拡張してみますた。
llex.cのread_stringに、"\x0aa"と書けるようにするのをいれてみました。
0331328NGNG
>>330
ふむ。Luaのパーサって、シンプルで拡張しやすいでそ?
0332327NGNG
>>331
サンクス!
とても素直にできてて、ますますLuaが好きになりました
0333デフォルトの名無しさんNGNG
そんくらいはじめから入っとけ、って奴が入ってないことで
処理系サイズに貢献しているとか。
0334デフォルトの名無しさんNGNG
>>333
処理系サイズって何だ?
0335デフォルトの名無しさんNGNG
>>334
とりあえず、コンパイル後の実行サイズと脳内補完してみた。
0336デフォルトの名無しさんNGNG
Programming in Lua のオンライン版
http://www.lua.org/pil/
0337デフォルトの名無しさんNGNG
>>336

GJ!
0338名無しさん@そうだ選挙に行こうNGNG
lua+luabindと、python+Boost.Python。どっちが組み込み楽なんだろ……。
0339名無しさん@そうだ選挙に行こうNGNG
汎用性を考えたらBoost.Pythonかな。テストされてるコンパイラが圧倒的に多い。
でもBoostからBoost.Pythonだけインストールするとか普通しないから、
どっちが楽とかは言えないか……

速度性能は、独自形式にコンパイルができるだけLuaの方が上……なのか?
……あんまり変わらないかも。
0340名無しさん@そうだ選挙に行こうNGNG
Lua大好き。
あのデータ記述のお手軽さはなんだ。
0341デフォルトの名無しさんNGNG
ttp://www.radiumsoftware.com/0407.html#040708
0342デフォルトの名無しさんNGNG
thx.
とりあえず、組み込みにはluabindのほうが楽そうですね。
0343デフォルトの名無しさんNGNG
保守
0344デフォルトの名無しさんNGNG
保守
0345デフォルトの名無しさんNGNG
ほしゅほしゅしゅぽしゅぽー
0346デフォルトの名無しさんNGNG
http://i-saint.abz.jp/2004.html#20040219
入門向けに、ちろっとね
0347デフォルトの名無しさんNGNG
ほしぅ
0348デフォルトの名無しさんNGNG
>>243
>lua_resumeが正常終了した後、もう一度lua_resumeを呼べるかどうかを調べる方法

lbaselib.cのluaB_costatus()参照
 lua_Debug ar;
 if (lua_getstack(co, 0, &ar) == 0 && lua_gettop(co) == 0)
  /* terminated */;
 else
  /* alive */;

個人的にはもっと簡便にlua_resume(L, ...)呼ぶ前に
  lua_gettop(L) == 0 ならコルーチン終了してる
ってコーディングしてるけど今までのところ問題ない
0349 NGNG
おお、ありがたいねえ
スタックトップをしらべるのか?
0350348NGNG
いつも引数付きでyield()してるから勘違いしてた。
普通はlua_gettop(L) == 0だけじゃだめだ。

int main(int argc, char *argv[])
{
  lua_State *L;

  L = lua_open();
  luaopen_base(L); lua_settop(L, 0);
  luaL_loadfile(L, "test.lua");
  for (;;) {
    lua_Debug ar;
    int i, n;
    
    if (lua_resume(L, 0) != 0) {
      fprintf(stderr, "%s\n", lua_tostring(L, -1));
      break;
    }
    if (lua_getstack(L, 0, &ar) == 0 && lua_gettop(L) == 0) break;
    fputs("yield(", stdout);
    n = lua_gettop(L);
    for (i = 0; i < n; i ++) {
      if (i > 0) fputs(", ", stdout);
      fputs(lua_tostring(L, 1 + i), stdout);
    }
    fputs(")\n", stdout);
  }
  lua_close(L);
  return 0;
}
0351348NGNG
-- test.lua --
coroutine.yield("abc")
coroutine.yield()
coroutine.yield("def", "ghi")

ちなみにlua_open()したStateも
lua_newthread()で派生したコルーチンも
等質なStateなんで,
>>350みたくlua_newthread()する必要ないんだけど既出?
0352デフォルトの名無しさんNGNG
いや・・新出
0353デフォルトの名無しさんNGNG
Lua 5.1 (work1) is now available for testing at
http://www.lua.org/work/lua-5.1-work1.tar.gz

The major change is incremental and *generational* garbage collection.ion.
0354デフォルトの名無しさんNGNG
なんかAIXでコンパイルしたらio.lines()でおかしな動作になった。
複数の大きいファイルをio.linesで読もうとすると1つ目のは全部読んでくれるのに
2つ目の以降のは数十行程度で読むのをやめてしまう。
同じコードがMingWだと動作するのでAIX上だけかなあ。
0355デフォルトの名無しさんNGNG
Smallの使い方とか紹介してるサイトってある?
0356デフォルトの名無しさんNGNG
ほんとネーミングは考えて欲しいよね
SmallとかIoとか検索しにくい。
0357デフォルトの名無しさんNGNG
5.1 WORK2 でたよーage
0358デフォルトの名無しさんNGNG
なんか5.1ってlua_dofileなんだけど。どうやって走らすの?
0359デフォルトの名無しさんNGNG
ないんだけどでそた
0360デフォルトの名無しさんNGNG
luaL_loadfileでいいじゃん
0361デフォルトの名無しさんNGNG
保守
0362デフォルトの名無しさんNGNG
ほしゅ
0363デフォルトの名無しさんNGNG
http://lua-users.org/lists/lua-l/2004-10/msg00217.html
これが使えるなら、yield,resumeがどこでも使えるようになるのかな。
0364デフォルトの名無しさんNGNG
>>363
説明してくれると助かるのですが・・・
すいません・・
0365デフォルトの名無しさんNGNG
hoshu
0366デフォルトの名無しさんNGNG
ho
0367デフォルトの名無しさんNGNG
スクリプトの拡張子はふつー ".lua" ですかね?
バイトコンパイルしたら ".luac" ?
0368デフォルトの名無しさんNGNG
.lub .lo .lua まだ気分でかえてるよ・・orz
0369デフォルトの名無しさんNGNG
hoshu
0370デフォルトの名無しさんNGNG
06 Dec 2004
Lua 5.1 (work3) released.
0371デフォルトの名無しさんNGNG
LuaでC++やらのクラスっぽいことやっている人いるー?
0372デフォルトの名無しさんNGNG
ノシ
0373デフォルトの名無しさんNGNG
>>372
おお〜!
luabindでやろうとしてたんですが、
もし他にいい方法があれば、情報をおしえていただきたいのですが
m(_ _)m
0374デフォルトの名無しさんNGNG
luabind Beta7 RC4 を使っています。
そろそろ boost-1.32.0 対応版が出るんじゃないでしょうか。
0375デフォルトの名無しさんNGNG
CaLuaの構造体をLuaに渡したりって、Luabindで出来る?
ベータになってるから、使うのはちょっと不安・・・。
0376デフォルトの名無しさんNGNG
30 Dec 2004
Lua 5.1 (work4) released.
0377デフォルトの名無しさん05/01/21 07:59:38
ほしゅ
0378デフォルトの名無しさん05/01/21 22:25:11
質問だけが飛び交うスレだな。
0379デフォルトの名無しさん05/01/21 22:30:44
         _,..............._,.......
      ,ノ⌒::::::::::::::::::::::::::::::::::::⌒ヽ_
     _ノ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヾ、
    (::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::)
   _ノ:::::::::::::::;ヘ::::::::::ノ⌒ヽ:::::::::::::::::::::::::::::::::)
  (::::::::::::::::::/   ̄ , ‐-、 |::::::::::::::::::::::::::::::::)     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (:::::::::::::/ヽj _/ -‐-、 |::::::::::::::::::::::::::::::::)    | ハッハッハ、君たち、
   ):::::::::ヾllli_、_,;iiiillllllllli <::::::;へ:::::::::::::::::(     | 
   (::::::::::::/`i´ ,└=゚'┘  |::::| 6 |:::::::::::::::::::}  < 相手が世界チャンピオンだからといって遠慮することは無い。
    `〜、 ゝ| _コ、_、 /|::::| ソ/::::::::::;〜"    | 
      ヾ|||ll|||||||||||l〉|  三ー'〜〜"         | 胸を借りるつもりでドンと来い。
         |||:二三|||| l  ,三   ヽ、          \______________
         |l  ⌒ ||| ://     ヽ=、-、_
       |l、:( : : ||/ /       ヽ, |    ̄\
      /   ̄   /        ノ /       \
0380デフォルトの名無しさん05/01/22 05:11:57
ウホッ
0381デフォルトの名無しさん05/01/22 05:49:13
穴を借りるつもり
0382だなだな05/01/31 23:35:15
ニヤニヤ
0383デフォルトの名無しさん05/02/09 13:52:42
ttp://www.luascript.thersgb.net/
wxLua 2.6

ブレークポイントに対応した唯一の開発環境じゃないかと
0384デフォルトの名無しさん05/02/24 12:57:34
http://www.water.sannet.ne.jp/sowwa/

日本対応来た
0385 05/02/25 23:47:13
>>384
うおぅ
以前、検索して見つけてパッチもらってきました。
その説はお世話になりました。
0386デフォルトの名無しさん05/03/10 10:07:59
ttp://lua-users.org/lists/lua-l/2005-03/msg00046.html
5.1 ベータ work5
0387デフォルトの名無しさん05/03/10 12:51:42
つーか数ヶ月前も5.1リリースしてた気がするけど、
まだ5.1いぢってるのね。
何か5.1に思い入れでも?
0388デフォルトの名無しさん05/03/10 19:33:21
あれだ、GCの変更が結構たいへんなんだと思う
がんがってるのが嬉しい
0389デフォルトの名無しさん05/03/14 00:40:35
GCの変更ごときでそんな時間かかるもんかねえ。
おれなら1週間もあれば作っちゃうよ。
0390デフォルトの名無しさん2005/03/26(土) 00:40:00
>>389
ぜひ作ってくれ
0391デフォルトの名無しさん2005/03/28(月) 11:57:01
>>389
もうかれこれ2週間経っているわけだが。
0392デフォルトの名無しさん2005/04/04(月) 08:28:14
 俺はCaluaを使ってるんだがC++で登録した関数でcoroutine制御できた
奴いる??
0393デフォルトの名無しさん2005/04/15(金) 15:48:50
luaでノベルタイプのゲームを作るとき行数ジャンプができないと
ちょっとキツイ気がする。

luaStateを保存してlua_resumeとかできればできそうではあるけど
luaStatecopyとか関数を作っておいてほしかった。

俺のチラシの裏の日記でした。
0394デフォルトの名無しさん2005/04/15(金) 17:53:54
LuaはunrealとかFarCryで使われてた言語のイメージしかない
0395デフォルトの名無しさん2005/04/18(月) 22:52:17
イメージがあるだけマシ
どうでもいいが寂れたな
0396デフォルトの名無しさん2005/04/21(木) 17:48:32
>>394
あとはゲサロのシューティングとか
RigidChipsでも採用されるみたい

剛体シミュレータ RigidChips(part=3)
http://pc8.2ch.net/test/read.cgi/tech/1112892809/
0397デフォルトの名無しさん2005/04/21(木) 21:38:47
コンパクトにまとまってて便利
0398デフォルトの名無しさん2005/04/21(木) 22:32:16
逆にLua以外でゲームに組み込まれたものって何があるのか知りたい
0399デフォルトの名無しさん2005/04/21(木) 22:34:38
自分で調べれば?
0400デフォルトの名無しさん2005/04/22(金) 20:01:58
http://d.hatena.ne.jp/w_o/20050419
これ結構良さそう。
Cに近い構文で、GCやメモリ再確保無し。ランタイムサイズが5KB以下。
現時点では、文字列や配列がサポートされていないから
Luaの代替にはならないけれどシューティングゲームの敵の動き制御程度なら十分使えそう。
0401デフォルトの名無しさん2005/04/22(金) 20:18:59
>>399
RPGツクールXPのRubyしかないね
ゲーム用組み込み言語じゃLuaが圧倒的なシェアだ
0402デフォルトの名無しさん2005/04/22(金) 20:19:24
普通のCじゃn
0403デフォルトの名無しさん2005/04/22(金) 20:20:01
>>401
あれあれ、悪名高いHSPをお忘れですか?
0404デフォルトの名無しさん2005/04/22(金) 20:31:04
>>403
あれをどうやって組み込むんだ?ちょっと気になるぞ
0405デフォルトの名無しさん2005/04/23(土) 08:12:40
前スレって、もう読めないの?
0406デフォルトの名無しさん2005/04/23(土) 14:56:36
>>405
http://pc5.2ch.net/tech/kako/1034/10341/1034182349.html
04074052005/04/23(土) 15:21:36
>>406
ありがとう
0408デフォルトの名無しさん2005/04/24(日) 18:15:21
Luaのインストール方法を解説してるサイトないですか?
0409デフォルトの名無しさん2005/04/24(日) 18:45:27
プロジェクトにソースファイルをぶっこむだけです。
0410デフォルトの名無しさん2005/04/26(火) 12:49:50
function add(x, y)
 return x+y
end

lua_State* L = lua_open();
luaopen_base(L);
lua_dofile(L, "add.lua");
lua_pushstring(L, "add");
lua_gettable(L, LUA_GLOBALSINDEX);
lua_pushnumber(L, 2);
lua_pushnumber(L, 5);
lua_call(L, 2, 1);
printf("%d\n", (int)lua_tonumber(L, 1));
lua_close(L);

luaopen_base(L); を呼ぶとadd関数の戻り値が0になるんだがなぜ? (lua 5.0.2, vc++ 7.1)
0411デフォルトの名無しさん2005/05/01(日) 13:45:34
Luaスクリプトが終了したことを知る方法ってありますか?
0412デフォルトの名無しさん2005/05/01(日) 14:53:59
>>393
同じことを試してるけど、これで何とかならないかな。

http://luaforge.net/projects/pluto/
0413デフォルトの名無しさん2005/05/01(日) 16:08:32
>>410
lua_open_base()の呼び出しでスタックの状態が変わってる。

- lua_tonumber(L, 1)
+ lua_tonumber(L, lua_gettop(L))

>>411
なんやらよくわからんがコルーチンの状態ならlbaselib.cの
luaB_costatus()にそれっぽいコードが。
0414デフォルトの名無しさん2005/05/01(日) 17:35:42
>>413
ありがとうございます。
コルーチンじゃなくて、メインルーチンの状態を取得する方法なんです。
Luaスクリプトを読み終わったら、次のスクリプトを読ませたいと思っています。
Luaスクリプト中で次のスクリプトを読ませると、呼び出し元が残ってしまいますよね?
04154142005/05/01(日) 19:15:47
スクリプトの一番最後でCの関数を呼び出すことにして、その関数で終わったというフラグをセットする
ことにしました。
お騒がせしました。
0416デフォルトの名無しさん2005/05/04(水) 16:29:15
Luaをとりあえず動かしてみる最小プログラムってもしかしてすげぇでかくなる?
0417デフォルトの名無しさん2005/05/04(水) 17:18:06
うん、すげぇでかい。
やめといたほうがいいな。
0418デフォルトの名無しさん2005/05/04(水) 17:37:10
>>417
やっぱり?
不便だよねこれ。
ソースコードすげー多いし(長いよりましか?)、
いちいちライブラリファイル作るの面倒だし。(これ、意外とネックだよ)
で、やっぱりLuaで糞真面目に組んじゃうのはよくないわなw

結局さ、Luaのデバッカが必要になるぐらいの規模でLuaを使っちゃった時点で
Luaの存在意義はなくなるんだよな?
スレのはじめで「何に使うかが問題だ」っていってたのってそういうことか、って今わかった。

組み込みスクリプトさようなら。
いくつか試しましたが、ゲーム製作にはいらないです。んじゃ。
0419デフォルトの名無しさん2005/05/04(水) 18:59:27
>>418
お前試しても無いだろ。「何がやっぱり?」だ、バカ丸出し。
Luaは小さい。

>ソースコードすげー多いし(長いよりましか?)、
>いちいちライブラリファイル作るの面倒だし。(これ、意外とネックだよ)
はぁ?お前こんなのめんどくさがって、そんなんでゲーム作れんのか?

>結局さ、Luaのデバッカが必要になるぐらいの規模でLuaを使っちゃった時点で
>Luaの存在意義はなくなるんだよな?
お前一行も組んでない癖に、何しったかぶってんの?頭悪。

>組み込みスクリプトさようなら。
>いくつか試しましたが、ゲーム製作にはいらないです。んじゃ。
HSPに逆戻りか。お前にはお似合いかもな。んじゃ。
0420デフォルトの名無しさん2005/05/04(水) 19:03:33
>>419
大好きなLua馬鹿にされて頭にきちゃった?w
0421デフォルトの名無しさん2005/05/04(水) 19:07:06
・・・という自作自演を考えてみた。
0422デフォルトの名無しさん2005/05/04(水) 19:19:22
>>420
Lua数度しか使ったことねーが、お前のあまりのバカさ加減に頭来たねw

バカにされて頭来ちゃった?w
0423デフォルトの名無しさん2005/05/04(水) 19:54:21
>>422
なんだ、やっぱり使わないんじゃん。
俺と同じ結論だしてるくせに何が不満なのよ。
0424デフォルトの名無しさん2005/05/04(水) 20:09:48
>>412
 おぉ、ありがとう!!
早速、試してみるよ。
0425デフォルトの名無しさん2005/05/04(水) 20:15:55
どのスレでもやり口同じだな…
0426デフォルトの名無しさん2005/05/04(水) 20:20:52
>>423
結論が同じ?w
バカの思考回路は意味不明だなw
0427デフォルトの名無しさん2005/05/04(水) 20:28:30
>>426
使ってないって部分は同じなんでしょ?
0428デフォルトの名無しさん2005/05/04(水) 20:43:30
>>426
いやいや、417はつかわなくていいんじゃ?
へたにつかって、ここで質問されても困るしw
0429デフォルトの名無しさん2005/05/04(水) 21:25:54
まあここはLua程度のスクリプトも自作できないような無能が集まってる場所だし
バカが集まってくるのは仕方が無い。
0430デフォルトの名無しさん2005/05/04(水) 21:45:24
HSP>>>>>>>>>>>>>>>Lua

Luaヲタ乙wwwwwっうぇwwww
0431デフォルトの名無しさん2005/05/04(水) 21:45:53
そこでHSPですよ
0432デフォルトの名無しさん2005/05/04(水) 21:51:49
Rubyをお忘れなく
0433デフォルトの名無しさん2005/05/04(水) 21:56:13
Ruby?????????????>>>>>>>>>>>>>>>>>>>>>>>HSP>>>>>>>>>>>>>>>>Lua
0434デフォルトの名無しさん2005/05/04(水) 22:08:12
こういう意味の無い煽りをしてる奴らはプログラマじゃねーだろうなぁ。

学の無いニートが暇つぶしに自分には理解できない板で
テキトーに荒らしてんだろうなぁ。

まったく、リアルではもちろん、2chでも足を引っ張るしか能が無いんだなぁ。
0435デフォルトの名無しさん2005/05/04(水) 22:17:06
>>434
大好きなHSPが貶されて頭にきちゃった?w
0436デフォルトの名無しさん2005/05/04(水) 22:17:54
>>419
418を読んで同じ感想を持ったよ。
書き込もうとは思わなかったが。
0437デフォルトの名無しさん2005/05/04(水) 22:20:47
でも書き込んじゃったのか。
0438デフォルトの名無しさん2005/05/04(水) 22:37:21
いやー、あまりにも書き込みが多くて釣られてしまって・・・。
っていうのは、言い訳でしかないか。
0439デフォルトの名無しさん2005/05/04(水) 22:48:01
>>436
とんだ早漏野郎だよお前は。
お前にはがっかりだよ。
0440デフォルトの名無しさん2005/05/05(木) 12:03:02
リファレンス以外に、まず初心者が読むとよいページ
ってありませんか?英文でかまわないんで(日本語ありそうにないので)
0441デフォルトの名無しさん2005/05/05(木) 12:21:10
>>440
こんなもん使えればそれでOKな話だろ。
これ使ってどこまでどんなことがしたいのかわからないとリンクを貼る方も困る希ガス。
0442 2005/05/05(木) 18:40:24
使ってみたけど、スタックいじらにゃあかんのって使いにくくてしかたないよ。
0443デフォルトの名無しさん2005/05/07(土) 02:05:25
そんなあなたにluabind
0444デフォルトの名無しさん2005/05/18(水) 14:11:40
luaをjavascriptのような感じにしたいと思って修正しているんだけど
for文の修正の仕方が分からないッス。
lparser.cのfornum()を修正すれば良いのは分かっているんだけど、、、
やっぱり
for (i = 0; i < 10; i= i+1) {
...
}
のような記述にするのって難しい?
だれか教えて!
ちなみに、do-while文の追加と//コメントと/**/の複数行コメントの追加は
簡単に出来たデス。
0445デフォルトの名無しさん2005/05/18(水) 19:49:19
>>444
出来上がったら公開してね
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以下。
0546デフォルトの名無しさん2005/08/11(木) 22:59:46
おまえが調べてここに結果を書き残しておけば後の人の役に立つ
0547デフォルトの名無しさん2005/08/12(金) 12:48:52
お し え て !!!
05485382005/08/13(土) 03:27:08
>>545
オレはWin環境でC標準ライブラリ等をDLLでリンクしているため
Lua部分は50k程度になってる。Linuxでどうなるかは知らない。
0549デフォルトの名無しさん2005/08/13(土) 06:23:23
>>548
すげえ。ダイナミックリンクしといてファイルサイズが以下略
0550デフォルトの名無しさん2005/08/13(土) 10:36:19
それがWindowsプログラマクォリティ
05515382005/08/13(土) 11:08:40
LuaそのもののサイズはLinuxでもマップファイル見ればそんなもんだろ。
標準ライブラリのサイズなんかしらん。気に入らないなら自力で作れ。
0552デフォルトの名無しさん2005/08/24(水) 17:35:51
多分一度も出て無さそうなので貼ってみる
http://www.luaplayer.org/
PSPでゲームとかLuaで書ける みたいな

Luaは初めてなのですが、C++マンドクセな自分にも
とても使いやすい感がします
書き方が独特でまだ慣れないけど、なんか楽しくなってきた
0553デフォルトの名無しさん2005/08/24(水) 18:33:33
へぇ〜。大したもんだね。
Luaの移植性の高さが効いてるね。

World of Warcraftにも採用されてるらしいし、そろそろブレイクか?
0554デフォルトの名無しさん2005/08/31(水) 20:03:50
>>538
なんだこいつw いたたたたwww
0555デフォルトの名無しさん2005/09/08(木) 05:34:36
5.1alpha出たってのに静かすぎるのでage
0556デフォルトの名無しさん2005/09/08(木) 13:36:49
alphaだからじゃね
何がかわったん?
0557デフォルトの名無しさん2005/09/08(木) 14:35:54
newsしか見てないから気づかんかった
0558フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2005/09/18(日) 02:01:25
tolua++つこてる奴ぁいねえか
0559デフォルトの名無しさん2005/09/19(月) 23:48:49
tolua ってコマンドは使ってるけど++は付いてない
俺が使ってるのが実は++という可能性もありそうだが
0560デフォルトの名無しさん2005/09/19(月) 23:52:40
「トルァッ!!」って読むのか。ちょーかっこいいな。
0561フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2005/09/20(火) 11:31:33
トルァッ!!を使うとスタックに触れなくてもC/C++とLuaを結びつけられるよね
0562デフォルトの名無しさん2005/09/20(火) 11:43:51
ごるぁ!は無いの?
0563デフォルトの名無しさん2005/09/20(火) 19:00:44
なに?
0564デフォルトの名無しさん2005/09/23(金) 00:12:40
いや、あの、だから、ごるぁ!は無いのかなぁって・・・あの、えと、その・・・ずっと前から好きでした!付き合ってください!
0565フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2005/09/23(金) 02:47:45
2chブラウザのことか!?
0566デフォルトの名無しさん2005/09/24(土) 10:37:10
単純にスクリプト覚えるならECMAScriptかPythonでいいんだろうけど
Luaの売りって何?高速なの?
0567フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2005/09/24(土) 11:09:07
Luaはただのスクリプト言語じゃない。
クリーンなライブラリとして実装されてるので、組み込みが容易なことだ。
そしてスクリプト言語の中でとても速いこと。
Schemeを思わせる最小主義。

ライブラリが貧弱なのでstandaloneなら他を使うのがいいだろう。
LuaはC/C++プログラムに組み込んでナンボ。

高速でまっとうな文法なSchemeってところか。
0568フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2005/09/24(土) 11:10:20
言うの忘れてた。なんといっても名前がカコイイことだ。
0569デフォルトの名無しさん2005/09/24(土) 11:13:22
「うん。高速」って答えればいいじゃないw
0570フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2005/09/24(土) 11:17:12
>>569
ミリワロス
0571デフォルトの名無しさん2005/09/24(土) 23:30:20
なんでもカンでもテーブルで処理しちゃうとことか、
関数が複数の値を平気で返しちゃうとことかが男らしいんだよ
0572フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2005/09/25(日) 03:35:50
でも女の子みたいな名前である
0573デフォルトの名無しさん2005/09/25(日) 07:35:58
ブラジルっ娘だからな
0574デフォルトの名無しさん2005/09/27(火) 13:17:05
そろそろ言語たんの仲間入りをしても良い頃ではないでしょうか。
0575フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2005/09/27(火) 14:49:53
若そうに見えてもRubyと同い歳なんだし、いいと思うぜ。
0576デフォルトの名無しさん2005/09/27(火) 15:07:22
とは言え、まだ11歳だぞと(*´д`*)ハァハァ
0577デフォルトの名無しさん2005/09/27(火) 15:11:34
えー只今、カバレッジの低いサンバの衣装を纏った11歳ブラジル娘を想像しております。
えーと、絵師はいませんか?絵師は?
0578デフォルトの名無しさん2005/09/27(火) 16:06:16
 O
-△-
||

0579フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2005/09/27(火) 16:06:37
11歳つーても人間と比べるなよw
犬猫なら11歳はババァだぜ。

>>577
Luaちゃんのことかー
0580フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2005/10/02(日) 01:41:09
ほしゅ
0581デフォルトの名無しさん2005/10/12(水) 17:04:11
>>521
詳細プリーズ
0582デフォルトの名無しさん2005/10/12(水) 18:08:56
>>581
521じゃないけど、LuaVMにはJMP命令のバイトコードが存在するようだよ。
参考:http://lua-users.org/lists/lua-l/2004-09/msg00244.html
0583デフォルトの名無しさん2005/10/12(水) 18:11:33
実際に実装するには自分でパーサーいじる必要あると思うけれど。
0584デフォルトの名無しさん2005/10/19(水) 03:38:06
>>581-582
サンクス
一応出来たみたい
0585デフォルトの名無しさん2005/10/22(土) 11:55:29
>>584
やるなっ
0586デフォルトの名無しさん2005/10/27(木) 23:11:23
>>555-556
誰か5.1alphaに切り替えたやついる?
GCが気になるんだが
0587デフォルトの名無しさん2005/10/29(土) 18:45:01
だれかいるかな?

perl で
$actor{$gid}{'name'} とか $actor{$gid}{'type'} となってるやつをluaで表現するにはどうすればいいんだ?

actor = {} で、宣言することまでは分かった
0588デフォルトの名無しさん2005/10/30(日) 09:47:49
スレタイ
Lua for RO (RagnarokOnline) vol.1

中身
C:\Program Files\Gravity\RagnarokOnline\AI\USER_AI\Const.lua
C:\Program Files\Gravity\RagnarokOnline\AI\USER_AI\Util.lua
C:\Program Files\Gravity\RagnarokOnline\AI\USER_AI\AI.lua

この辺のファイル (Lua本体は改造不可。Luaスクリプトのみ改変可能)


Lua - 関連スレ
プログラミング言語 Lua  その2
http://pc8.2ch.net/test/read.cgi/tech/1063711237/l50

RO - 関連スレ (dat落ち)
perl2exe forRO vol.5
http://pc8.2ch.net/test/read.cgi/tech/1034584989/l50
perl2exe forRO vol.4
http://pc8.2ch.net/test/read.cgi/tech/1034579892/l50
他 MMOサロンに何個か・・・
0589デフォルトの名無しさん2005/10/30(日) 10:21:55
ここでRagnarokって単語を見るとは思わなかった
けど、ホムの為に必要なんだよね確か
0590デフォルトの名無しさん2005/10/30(日) 10:23:18
>>589
そうそう

homuのAI見てるとBOTのように見えてくる orz
0591デフォルトの名無しさん2005/10/30(日) 10:31:09
メモ1

GetActors () - 配列で画面内のモンスター、キャラクターのgidが入ってる (アイテム等も入ってる可能性有)

local actors = GetActors ()
for i,v in ipairs(actors) do
 if (v ~= owner and v ~= myid) then
  if (IsMonster(v) == 1) then -- <-モンスター判定(枝のmobも判別可能)
   enemys[index] = v
   index = index+1
  end
 end
end

IsMonster(v) とか GetV (V_TARGET,v)
v には GetActorで取得できる gid を入れる
0592デフォルトの名無しさん2005/11/03(木) 11:17:31
RagnarokOnline\AI\AI.lua

OnATTACK_ST の攻撃部分

 if (MySkill == 0) then
+  local calc
+  calc = GetTick () - MyAttackTime
+  if (250 < calc) then
   Attack (MyID,MyEnemy)
+   MyAttackTime = GetTick ()
+  end
 else
ウェイト入れる (この場合 250ms)

入れないとき 125ms 間隔で攻撃 (008Aパケは ASPD依存でかえってくるので 700-900msぐらい)
攻撃を鯖任せにできるフラグがあるはずだが使用してない (0233パケ)
0593デフォルトの名無しさん2005/11/03(木) 14:30:52
PSPのluaplayerでゲーム作ってます。
宣言するだけでテーブルが構造体になるlua面白いのですが、
そのテーブルのコピーは一発ではかけないのでしょうか?
ゲームの初期化に使いたいのですが…

-----------------
InitData={
Mode=0,
Score=0,
Life=0,
}

GameData={}

GameData = InitData --これだとInitDataのポインタをGameDataに渡すだけ。

GameData.Mode=1 -- InitData.Modeも1になる

-----------------
C言語ライクにコピーして欲しいのですが。
foreachを使用するのでしょうか。理解がおいついてません。
現在は仕方ないのでコピーする関数作ってます。

CopyGameData(des,src)
des.Mode = src.Mode
  ・
  ・
end

メンバ増やすたびに書くのは絶対バカだなーと思いながら
書いてるんですが。
0594デフォルトの名無しさん2005/11/03(木) 14:43:24
もうちょっとマニュアル読め
0595デフォルトの名無しさん2005/11/03(木) 18:23:02
「宣言するだけでテーブルが構造体になる」
この表現だけでその人のバックグラウンドがわかるな
0596デフォルトの名無しさん2005/11/03(木) 23:32:55
Listとこっちどっちが組み込みに向いてるかな?
05975932005/11/04(金) 02:22:01
レベルの低い書き込みですいません。
マニュアル読んでもまだ分かりません。
一つだけ知りたいのですが、
テーブルの実体を一発でそのままコピーできる
書式・関数は存在しますか?
0598デフォルトの名無しさん2005/11/04(金) 10:21:14
マニュアルに書いてあったっけと思って久々にみてみたけど自分も見つけられなかった...

古い文献だけど
ttp://staff.aist.go.jp/yutaka.ueno/lua/spe96jp.html
のcloneとか参考にしてみれば?
テーブル要素がテーブルだった場合等考慮してないけど。
0599デフォルトの名無しさん2005/11/04(金) 10:48:19
簡単にやるならこうかな?
for k,v in pairs(src) do dst[k]=v end

lua-l archiveを"Deep copy"で検索す・・・うわめんどくせえ
0600デフォルトの名無しさん2005/11/04(金) 15:37:26
このへんだね >598
ttp://lua-users.org/lists/lua-l/2003-05/threads.html#00077
循環参照があったらどうすんだとかmetatableはどうすんべとか
いろいろ盛り上がってますが

結局ケースバイケースなんかね
ゲームの初期化に使うだけならdeep copyでないcloneで十分なんじゃ
06016002005/11/04(金) 15:38:04
>>599 のミスだった連騰スマヌ
0602デフォルトの名無しさん2005/11/05(土) 17:56:25
通常こんなもんでいいんじゃね?
テストしてないけど

function tableclone(src)
local dst = {}
for k,v in pairs(src) do
if type(v)=="table" then
dst[k]=tableclone(v)
else
dst[k]=v
end
end
return dst
end
0603デフォルトの名無しさん2005/11/05(土) 17:57:49
ぎゃ、インデントなくなった・・・

function tableclone(src)
 local dst = {}
 for k,v in pairs(src) do
  if type(v)=="table" then
   dst[k]=tableclone(v)
  else
   dst[k]=v
  end
 end
 return dst
end
06045932005/11/06(日) 00:32:25
>>598さん >>599さん >>600さん >>603さん

循環や参照などを行っているテーブルではなかったので、
一旦は597さんの書式で対応できました。

ありがとうございました。
0605デフォルトの名無しさん2005/11/13(日) 17:33:23
>>604
なんか循環参照してるんじゃない?
0606デフォルトの名無しさん2005/11/15(火) 13:59:18
例のベンチマークでいい数字出してるから注目しております
Java用スクリプト言語 Groovy
C/C++用スクリプト言語 Lua
って感じかな?
0607デフォルトの名無しさん2005/11/15(火) 19:18:17
http://groovy.codehaus.org/Home
ほー
0608デフォルトの名無しさん2005/11/15(火) 20:01:08
Luaって、16進数指定出来ないよね?
16進数文字列を受け取って、10進数にして返す関数作った。
06095932005/11/16(水) 03:50:16
>なんか循環参照してるんじゃない?

本当ですね。
597は自分だ。
正確には>>599さんでした。
すいませんでした。
0610 2005/11/21(月) 23:28:23
組み込み用言語とか、LightWeightっぽい言語は、このスレでいいんだよな?

Waba
http://web.cc.yamaguchi-u.ac.jp/~shingo/WabaWorld/

組み込み用のJavaのサブセットだそうだ。
面白そう。
0611デフォルトの名無しさん2005/11/24(木) 13:35:16
>>39のNJS JavaScriptはNGS JavaScriptに名前が変更している模様。
freshmeatにあるみたいなんだけど、ないのでDebianのを落としてきた。

あと、Smallも名前がPawnに変わっていた。
0612デフォルトの名無しさん2005/11/24(木) 21:12:16
これか。
smallは検索しにくいもんなぁ
http://www.compuphase.com/pawn/pawn.htm
0613デフォルトの名無しさん2005/11/25(金) 12:01:37
>>610
スレタイ嫁
0614デフォルトの名無しさん2005/11/25(金) 18:01:07
>>613
過去ログ嫁
0615 2005/11/25(金) 21:24:29
>>613
過去ログみてくれ。Luaみたいな小さな言語もOKのハズ
次は、スレタイ変えてくれ。

[Lua]Lightweight Language統合[Io]

で。
0616デフォルトの名無しさん2005/11/25(金) 21:41:42
> >>39のNJS JavaScriptはNGS JavaScriptに名前が変更している模様。

逆じゃね?
061712005/11/26(土) 14:22:12
テンプレどうする?
お勧めのHPキボンぬ。
0618デフォルトの名無しさん2005/11/27(日) 16:31:36
SleepもOKなのかな?
言語仕様はPerl+Objective-CでかつJavaVM上で動くってやつだけど
公式
http://sleep.hick.org/
言語仕様
http://sleep.hick.org/sleeplang.html

膨大なPerlの資産の焼き直しをしようとしたけど
後継のPerl6に絶望した人におすすめ?
0619デフォルトの名無しさん2005/11/27(日) 18:12:44
>>617
筑波大のセンセが書いたPDFにこんなのがあるけど

プログラミング言語研究に未来はあるのか? -スクリプト言語のススメ-
http://www.csg.is.titech.ac.jp/ppl2002/proceedings/tanaka.pdf

これ、スクリプト言語の歴史についてうまくまとめているのでテンプレに推奨します
特に世代別スクリプト言語の章はおすすめ。

個人的には宿り木(パラサイト)としてのスクリプト言語の中でも
1)組み込み向け軽量処理系言語(Lua,Waba)
2)Perl的多機能言語(Perl,Python,Ruby,PHP,Groovy)

に分けたほうがいいと思うけど
0620デフォルトの名無しさん2005/11/28(月) 12:21:55
http://shinh.skr.jp/io/

http://f21.aaa.livedoor.jp/~kizz/prog/io/Docs_ja.html
06216112005/11/28(月) 20:03:36
>>616
ああごめん。確信はないや。
一次配布元がわからなくて、Debianのパッケージがngsだったので、
てっきりnjs→ngsに変わったのだと思っていた。

>> 618
まんまperlに見えるね。
しかし、なんでこう、検索しづらい名称を付けるのかなあ。
0622デフォルトの名無しさん2005/12/01(木) 16:57:13
Luaスレでいいよ
0623デフォルトの名無しさん2005/12/09(金) 20:49:34
Lua5.1出ないなー。
betaの次はrcなのか?それともgamma?
本当に年内に出るのか不安になってきた。
0624デフォルトの名無しさん2005/12/15(木) 13:23:42
質問、↓のソースはDeepCopy になってる?
↑のほうで出てたソース改変しただけなんだが

function deepcopy(table,fc) do
 if type(fc) == "undef" then
  fc = { }
 end
 local ret = { }
 fc[table] = ret
 for k,v in pairs(src) do
  if type(v)=="table" then
   if fc[v] then
    ret[k]=fc[v]
   else
    fc[v] = tableclone(v,fc)
    ret[k]= fc[v]
   end
  else
   ret[k]=v
  end
 end
 return ret
end
0625デフォルトの名無しさん2005/12/15(木) 23:41:28
Luaの処理を中断する関数ってないのかな?
os.exitだとプロセス落ちちゃうけど、そうじゃなくてC側に復帰したい。
0626デフォルトの名無しさん2005/12/16(金) 08:23:48
suspend だか、yield じゃね?
0627デフォルトの名無しさん2005/12/16(金) 18:12:11
pcallで呼んでるならerrorで戻るよ。
0628デフォルトの名無しさん2005/12/17(土) 00:24:08
>>626 >>627
マ板がこんなに親切な板だとは思いませんでした。
これから調べてみます。
本当にありがとうございました。
0629デフォルトの名無しさん2005/12/24(土) 03:02:45
subaraC
0630デフォルトの名無しさん2005/12/24(土) 16:07:59
>>628
ム板
0631デフォルトの名無しさん2005/12/27(火) 13:45:30
保守
0632デフォルトの名無しさん2006/01/05(木) 12:29:45
hoshu
0633デフォルトの名無しさん2006/01/08(日) 12:58:01
>>624
しばらくここ見てなかったので超遅レスだけど・・・

なんか余計な改変してるようにしか見えないけどなぁ。
typeが"undef"返したりしないと思うし。
元々は再帰するコードだったけどそうもなってないし。
そもそも何をしたいのか仕様がわからんし。
0634デフォルトの名無しさん2006/01/13(金) 09:00:18
5.1rcが出てるage・・・
寂しいのう・・・
0635デフォルトの名無しさん2006/01/13(金) 09:25:16
何気にリアルタイムでパラメータをいナパラメータをいじらないタイプのゲームとかでよく使われているよ。
縁の下の力持ちって感じ。
0636デフォルトの名無しさん2006/01/13(金) 12:38:03
ゲーム外車の人はあんま技術情報書き込まないからなぁ
0637デフォルトの名無しさん2006/01/13(金) 12:57:15
秘守義務があるからね
技術情報を漏らしたらクビになるし
0638デフォルトの名無しさん2006/01/13(金) 21:37:32
守秘義務を秘守義務といい間違えるか?
どうせ仕事もしたことない学生が知ったかしてると予想。
0639 2006/01/13(金) 22:17:47
そうかっかするな。守秘義務あるのは事実なんだし。
0640デフォルトの名無しさん2006/01/15(日) 16:41:18
Lua見たいなオープンソースソフトウェアに対するノウハウが、
守秘義務の対象になるとはとても思えない。
たとえそのノウハウを業務で培ったとしてもね。プライベートでも
十分知りえる範囲のことだし。

PS2の黒本に書いてあった情報まとか、社内ライブラリの仕様を
そのまま書く、とかじゃなきゃ、守秘義務違反にはならないだろ。
0641デフォルトの名無しさん2006/01/15(日) 17:33:30
まぁ、PS2の黒本の内容はほとんどPS2Linuxで公開されたけどな。

社内ライブラリの仕様なんかは多少漏れてもかまわんけど
それを設計した人間の転職が中小の開発会社には一番困る。

Luaの話から脱線してスマソ
0642デフォルトの名無しさん2006/01/16(月) 15:42:30
C#で書いたアプリにLua組み込んで使ってる人いますか?
0643デフォルトの名無しさん2006/01/31(火) 12:21:00
Abobeの新ツールLightroom(今のところMacのみ)にLuaが使用されているらしい。
ttp://www.radiumsoftware.com/0601.html#060130

0644デフォルトの名無しさん2006/01/31(火) 19:38:35
それ見て飛んできますた。
0645デフォルトの名無しさん2006/02/01(水) 15:39:11
http://www.members.optusnet.com.au/~olegshilo/index.html
だれかこれの存在意義をおしえてくれ
0646デフォルトの名無しさん2006/02/07(火) 03:10:34
>>645
ない
luaで良いよ
0647デフォルトの名無しさん2006/02/11(土) 00:20:41
地味にrcのバージョンが上がってるな。今rc3か。
0648デフォルトの名無しさん2006/02/11(土) 00:31:16
知らないうちにSWIGが対応してる
0649デフォルトの名無しさん2006/02/17(金) 17:38:58
自作ゲームで利用してみることにした

便利すぎて泣けてくる
0650デフォルトの名無しさん2006/02/18(土) 17:00:16
おおっと、これはなんだ!?
ttp://www.lua.org/ftp/lua-5.1.tar.gz

あれか、ついにリリースか!?
0651デフォルトの名無しさん2006/02/18(土) 17:01:16
スマソ、pre-releaseだった・・・。
0652デフォルトの名無しさん2006/02/22(水) 00:03:31
Lua 5.1 age
0653デフォルトの名無しさん2006/02/22(水) 04:13:23
ついにきた
0654人人2006/02/22(水) 18:36:34
a
0655デフォルトの名無しさん2006/02/22(水) 23:45:26
5.1って昔から無かった?
0656デフォルトの名無しさん2006/02/23(木) 00:48:34
出たばっかりじゃない?
working版やベータ版は、かなり前からあったけど・・・。
0657デフォルトの名無しさん2006/02/24(金) 02:37:50
出張している間に正式版
5.1が・・・・
0658デフォルトの名無しさん2006/03/03(金) 04:11:21
5.1は処理系のエンディアンが異なるとluacが吐いたバイナリが使えないのなー
5.0は型のサイズさえ一致していれば大丈夫だったのになぁ...orz...。
0659デフォルトの名無しさん2006/03/03(金) 09:04:54
http://www.squirrel-lang.org/
Luaからこっちにうつった。

GCではなくて、参照回数をカウントする方式。
Classやらなんやら充実してるぶん、サイズもちょっとデカいかな
配列も0からはじまるつか、配列がべつ扱い

s<- ["a","b","c","d","e"];
0660デフォルトの名無しさん2006/03/03(金) 19:51:13
>>659
結構よさげだね。
Luaをオブジェクト指向にした感じだな。
0661デフォルトの名無しさん2006/03/03(金) 21:58:32
実績はどんなもんざんしょ
0662 2006/03/04(土) 01:34:25
>>659
なかなかいいねえ
0663デフォルトの名無しさん2006/03/04(土) 02:43:25
Game用に考えられているみたいだけどGameの世界でもLuaが浸透してきてる
からなぁ。スクリプト組む人達が覚え直しだと組み込みは難しい。
0664デフォルトの名無しさん2006/03/04(土) 04:09:18
>>659
"mixed approach ref counting/GC" って書いてあるから、循環参照とかの
部分は GC で解決してるんじゃないかな。
0665デフォルトの名無しさん2006/03/04(土) 21:43:36
>Squirrel2
最新の2.1βはこちらから
ttp://wiki.squirrel-lang.org/

>>660
Luaより文法がCに近くてなにかといいかと

>>661
半年ぐらいおっかけてるけど
有名なあるゲームにつかわれたとか
まだ聞かないです

で、自分でつかってるけど
安定してる・・・と思います

>>663
Luaよりちょっと細かいかも
floatとintの区別が(内部的に)あるとことか
より、プログラマが自分で便利につかうためのやつかもね

>>664
そういえば、GCを実行するためのAPIがありました
0666 2006/03/05(日) 00:40:14
>>659
いいねえこれ。
配列作れて、そん中にテーブル作れるのかあ。
俺の欲しかった機能だ。

まだ検証してないけど、これプログラムから使いやすい?
Luaはなんか使いにくくてさ。
0667デフォルトの名無しさん2006/03/05(日) 01:41:32
Cインターフェイスはluaと似てる。
0668デフォルトの名無しさん2006/03/05(日) 10:14:07
Luaと同様のスタックベースだな
0669デフォルトの名無しさん2006/03/06(月) 02:17:44
パフォーマンス次第だな。たぶんluaより低速だと思うが。
0670デフォルトの名無しさん2006/03/06(月) 06:12:15
どっちにしてもちっとも遅いとは思わん
0671デフォルトの名無しさん2006/03/06(月) 07:06:39
LuaのGCがどこまで改良されたかだなぁ
>mixed approach ref counting/GC
ってなら、これのほうがいいようなな気がする。
(メモリは多少大食いになるかもしれないけど)
0672デフォルトの名無しさん2006/03/06(月) 14:18:14
パフォーマンス比較ではないけどLuaとの比較。
ttp://wiki.squirrel-lang.org/default.aspx/SquirrelWiki/LuaComparedToSquirrel.html

FarCryで発生した問題ってのが気になる。
0673デフォルトの名無しさん2006/03/06(月) 23:23:02
GameMonkeyってどうですか?
文法がCに近いみたいで使いやすそうだけど。
0674デフォルトの名無しさん2006/03/07(火) 14:10:26
Squirrel 上げ
0675デフォルトの名無しさん2006/03/07(火) 21:55:57
GameMonkeyって名前が雑魚っぽい
0676デフォルトの名無しさん2006/03/07(火) 22:25:52
>>672
やっぱり、GC時の処理の重さじゃないかな
0677デフォルトの名無しさん2006/03/08(水) 05:03:36
GameMonkeyって、何度も名前挙がってるけど
ここの住人は全然しないね
0678 2006/03/08(水) 05:10:01
これかあ
http://www.somedude.net/gamemonkey/
0679デフォルトの名無しさん2006/03/08(水) 19:03:06
>>676
そうみたいです。
ttp://www.gamedev.net/community/forums/topic.asp?topic_id=230021
によると、Farcryではlua4.1alphaを使用していて、速度は十分だがGC時に重いようです。
lua5からはGCが変更していたはずなのでまた結果が違うのかも。
0680デフォルトの名無しさん2006/03/08(水) 19:04:15
GameMonkeyはやたらと反応うすいから
Squirrel2つかってみますね
0681デフォルトの名無しさん2006/03/08(水) 20:22:23
>>679
5.1からはインクリメンタルGCが実装されてるから、
大分マシになる・・・かもしれない。
0682デフォルトの名無しさん2006/03/09(木) 00:44:50
Cとコードの共有も一部出来そうだからGameMonkeyを使ってみよう。
0683デフォルトの名無しさん2006/03/14(火) 15:08:26
今日からラグナロクでluaを使ったシステムが入るから荒れるかもしらんな
0684デフォルトの名無しさん2006/03/14(火) 16:27:14
>>665
zlib/libpngライセンスって、組み込む場合、
Copyright表記しなきゃいけないんだっけ?

ttp://www.opensource.jp/licenses/zlib-license.html

> 製品の文書に謝辞を入れていただければ幸いですが、必須ではありません。

ってあるから、MITライセンスと違って表記しなくても良さそうなんだけど。
0685デフォルトの名無しさん2006/03/15(水) 08:56:26
a
0686デフォルトの名無しさん2006/03/15(水) 11:30:19
>>684
表記は必須じゃないはず。

ZLibはばんばんゲームにつかわれてるけど、
表記されてるのみたことないっすね
068712006/03/16(木) 16:08:48
とりあえず、Wikiでも作ってみようかと思うんだが必要?
0688 2006/03/16(木) 16:31:16
いいね。
Luaに限らずLightWeightLanguageで作ってよ
0689デフォルトの名無しさん2006/03/16(木) 21:08:15
そんなにでかい構想を持っても誰も編集しないぞ
ターゲットは絞れ
0690デフォルトの名無しさん2006/03/16(木) 21:39:48
でかくないよ。
LUAに絞られても困る。
0691デフォルトの名無しさん2006/03/16(木) 21:44:28
別々に作ればいいじゃない
0692デフォルトの名無しさん2006/03/17(金) 00:00:38
でかいだろ。
Lua Perl PHP Python Ruby Scheme etc...
全部網羅するのか?
0693デフォルトの名無しさん2006/03/17(金) 00:03:32
項目ふやすぐらい余裕だろ
0694デフォルトの名無しさん2006/03/17(金) 09:57:30
このスレのWikiを作ろうかって話なんだから
看板はLuaで一応Luaの情報メインだけど
アプリ組み込み系なら多少の脱線はあり、ぐらいでいいだろ。
メジャーな言語は他所でやってくれ。
0695 2006/03/17(金) 17:49:21
LightWeightLanguageがでかすぎるから。
やっぱ組み込み向けscriptつーことで
0696デフォルトの名無しさん2006/03/18(土) 02:56:26
作ってから方向転換すればいいだろう
タイトルがどんなでも、項目作って編集者募集としておけば問題なかろう
つーことで 1 will 乙
0697デフォルトの名無しさん2006/03/18(土) 12:11:01
あとから言語ふやしたりできるんでしょ? >Wiki
まずはLuaだけでやればいいんじゃないかな
タイトルかなんかはLightWeightLanguageでいいじゃん
0698デフォルトの名無しさん2006/03/18(土) 12:29:56
つうか言語ごとのwiki作ればいいじゃん。
0699http://www.vector.co.jp/soft/win95/util/se072729.html2006/03/18(土) 19:11:02
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
0700デフォルトの名無しさん2006/03/18(土) 21:33:36
>>699
なぜそれをここで聞くのかが分からない。
0701デフォルトの名無しさん2006/03/18(土) 21:36:56
なしてそこまでLightWeightLanguageでまとめたがるのか
明らかにLua wikiの方がわかりやすいタイトルと思うのだが
0702デフォルトの名無しさん2006/03/18(土) 23:15:50
うむ。Lua は十分に良い案だ。
熱が冷めないうちに作ってプリーズ。
0703デフォルトの名無しさん2006/03/19(日) 02:18:56
このスレが、LightWeightLanguageの情報OKってなったからだろ。

LuaだけでWikiほんとに必要か?
マニュアルだけで結構十分じゃない?w

このスレの情報の出具合からいっても、
Wikiつくっても寂れるの見えてない?
0704デフォルトの名無しさん2006/03/19(日) 02:23:18
英文を全く読もうとしない奴のためのビルド方法
BNF記法を全く読解できない奴のためのチュートリアル
0705デフォルトの名無しさん2006/03/19(日) 04:54:06
そんな低レベルなwiki作るなよ。
そんな奴らは日本語でも理解不能で2chで中途半端な教えて房になるだけ。
それとも>>704がすべて親切に答えていくのだろうか。
0706デフォルトの名無しさん2006/03/19(日) 06:49:17
ゲームでよく使われるというが、どういう場面でもちいるのか知りたいなぁ。
データの初期値設定に使うってのはどっかで見掛けたけど。
0707デフォルトの名無しさん2006/03/20(月) 01:12:35
初期化以外に使い所無いじゃん。
0708デフォルトの名無しさん2006/03/20(月) 07:00:50
最近のじゃROのホムクルAIとかあるじゃん。RO自体よく知らんけど。
組み込みなんだから好きなように使ったらよいかと。
さすがにSTGの弾幕記述とかは速度的に無茶だけど。
0709デフォルトの名無しさん2006/03/20(月) 23:15:31
白い弾幕くん.
071012006/03/21(火) 17:29:34
http://wikiwiki.jp/lua/

さっそく借りてきた。24時間以内にパスワード発信予定らしいから待ってくれ。
0711デフォルトの名無しさん2006/03/21(火) 17:34:51
071212006/03/21(火) 21:02:25
やったツナガッタヨ
0713デフォルトの名無しさん2006/03/21(火) 21:29:58
おめでと。中の人としては
Luaをメインとして組み込み用言語全般を扱う予定?
0714 2006/03/21(火) 21:47:43
>>710
乙!!
0715デフォルトの名無しさん2006/03/21(火) 22:34:52
1 乙
0716デフォルトの名無しさん2006/03/22(水) 01:42:05
>>710


でも設置するより遙かに維持するのが難しい
0717デフォルトの名無しさん2006/03/22(水) 11:42:36
設置する奴は、設置しただけで自分の役目を果たしたと考えるから困るな
071812006/03/22(水) 11:56:06
>>717

ちょっとずつ更新するよ。
0719デフォルトの名無しさん2006/03/22(水) 17:37:36
発展させる自信があるから、わざわざここで告知してるんだろ?
0720デフォルトの名無しさん2006/03/22(水) 17:53:54
>>1
659あたりから話題になってた Squirrel は含めないの?
# おれは使ってみてもいないので正直よくわからないのですが
0721デフォルトの名無しさん2006/03/23(木) 01:06:10
>>718
チュートリアル作って欲しい
今製作中のゲームで使う予定だから頼りにしてるぽ
0722デフォルトの名無しさん2006/03/23(木) 02:37:37
>>720
Squirrel?そんな実績も何も無いものwikiの立ち上げに含まれても。
なんか自分では何もしない他力本願な書き込みする奴だな。
0723 2006/03/23(木) 04:21:44
>>720
Squirrelの名前空間彫ればイイだけぽ
0724デフォルトの名無しさん2006/03/23(木) 04:27:42
Luaの派生だしなぁ
072512006/03/23(木) 19:01:49
BulletML(とLua)は含めるべきか、含めないべきかな・・・。
弾幕記述言語。

>>719

カッとなって作ったので自信が無い。(w

>>721

そこらへんは,Luaの参考サイトに書いておいたよ。早速。
0726デフォルトの名無しさん2006/03/27(月) 00:41:15
squirrel2.1あげ
0727デフォルトの名無しさん2006/04/04(火) 19:59:01
>>1
お!いつのまにかいろいろ言語がふえてる!乙!
0728 2006/04/04(火) 22:30:03
おお!本当だ乙!!
0729 2006/04/04(火) 22:34:52
あ、ちょっといいか?
記事書くとき、名前空間つかってよ。
どの言語かわかんない。

C++で使うとリンクエラーするのですが?

Lua/C++で使うとリンクエラーするのですが?
073012006/04/08(土) 11:08:03
Radium Software Developmentの中の人luaの話してるね。
毎回参考になる。
http://www.radiumsoftware.com/0604.html#060407

0731デフォルトの名無しさん2006/04/13(木) 02:53:12
おいおい、2chで吊るすなよ。
そんだけ有名なページ知らん奴はほっとけ。
0732デフォルトの名無しさん2006/04/13(木) 08:37:49
吊るすって意味不明なこといってんじゃねぇよ
コメントもできねぇんだから、荒らすこともできないねぇよアホ。
0733デフォルトの名無しさん2006/04/14(金) 20:28:42
煽りもできてないねぇよ
0734デフォルトの名無しさん2006/04/14(金) 23:29:50
Radium Software Developmentの中の人luaの話してるね。
毎回参考になる。
http://www.radiumsoftware.com/0604.html#060407
0735デフォルトの名無しさん2006/04/20(木) 20:55:07
>>710
Wiki重すぎ…
見れん
0736デフォルトの名無しさん2006/04/20(木) 20:57:18
普通に見れるぞ
0737 2006/04/20(木) 22:35:31
重いというか編集しようと更新しようとしたら、そこから先に進まん。
めちゃめちゃ腹立つ
0738デフォルトの名無しさん2006/04/20(木) 22:37:12
つーか、ページの更新ができねえよ。

なんなら、こっちでwiki作ろうか?
07397352006/04/20(木) 22:39:47
今見たら、すんなり見れた
スマソ
0740フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/01(月) 09:47:53
Luaはschemeと同じ匂いがする。
first-class関数、closure、lambda、lexical scope、末尾再帰。
それでいてhuman-friendlyな文法なのがいい。
0741デフォルトの名無しさん2006/05/02(火) 14:09:55
>first-class関数、closure、lambda、lexical scope
これらはclosureに対して不可分な気がする。

末尾再帰(末尾呼び出しの最適化)は言語仕様というよりは処理系の仕様だからなぁ。
schemeは言語レベルで保障されているようだけど、Luaはどうなるんだろう。
0742フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/02(火) 14:50:23
schemeはいろいろ実装があるけど、luaは基本的に1つだよね
0743デフォルトの名無しさん2006/05/02(火) 15:11:36
いま現在はそうだけど、これから処理系が増えたときにLuaは言語として
「どうなるんだろう」(どうするんだろう)と。

末尾呼び出しの最適化という概念自体が処理系の都合にすぎないんだよ。
本来、言語は関係ない。
0744フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/02(火) 15:20:15
さあな、じゃあ聞くけどperl, ruby, python, erlangに複数の実装があるのか?
わしが言いたいのは今のluaがschemeっぽいということだ。
0745デフォルトの名無しさん2006/05/02(火) 15:29:06
perl と Python には複数の実装があるだろ。

lua が scheme っぽいと感じるのは構わないんじゃん?
その目で見たら scheme っぽい言語は沢山見つかると思うよ。
俺は別の括りの方がそれらしい気がするけども。
0746フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/02(火) 15:36:14
わしはRadium Software Developmentの中の人ではない
世の中狭いもので同じようなこと思ってる人はいるもの

>>745
minimalismで作られてる点もschemeと共通してると思う
まあluaはmulti-paradigm言語だからひとつにくくれない

closureがあるとあんなことやこんなことができてウハウハだ
0747デフォルトの名無しさん2006/05/02(火) 16:58:02
RubyにもYARVがあるね。

>わしが言いたいのは今のluaがschemeっぽいということだ。
それは始めからわかっているから落ち着けw
「末尾再帰に関しては言語仕様と呼んでいいのかが曖昧で、
 この先Lua言語はどうするつもりなのか」
という疑問をぶつけたにすぎない。
(結果的に)Schemeと似ているという点について否定するつもりは一切無い。

ただ主観になるけど、ECMAScriptがLuaに似ていると思っている。
Luaは連想配列として扱えるtableがオブジェクトの基本であり、
ECMAScriptでは基底のObjectがやはり連想配列として扱える。
お互いprototypeベースで、metatable.__indexとprototypeプロパティが
似たように扱える(new周りが違うけど)。
closure周りも同様に扱えるため、多くの部分でノウハウの流用が効くと感じた。

Schemeは門外漢で比較判断できないから、どちらがより似ているかという
部分には触れないでおくけど。

あと一カ所訂正。
Perlのclosureは、関数のファーストクラスオブジェクトなしに実装してたみたい。
たしかにclosureには参照でも十分っぽい。
0748フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/02(火) 17:48:50
YARVは将来的にrubyに統合されると思うが
0749デフォルトの名無しさん2006/05/02(火) 19:00:21
つまらないレスだなぁ。
YARVという名前が過去のものとなるまでは、Yet Anotherに過ぎないんだよ。
それを複数の実装と言わずになんと言う。
0750フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/02(火) 19:47:32
YARVは第二の実装というよりもbranchを作ったようなものだと思んだが
0751デフォルトの名無しさん2006/05/02(火) 20:53:39
コテつけてしゃべるほどいいこといってない
0752デフォルトの名無しさん2006/05/02(火) 21:14:17
>フンバリャーウンコ・ヨーデル
このコテハンは面白いと思って付けたの?
0753フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/02(火) 21:19:44
いや。ヒョードルの試合のことを考えながら糞してたときに思い付いた。
0754フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/02(火) 21:21:14
>>751
わしはまだ未熟者なので精進します。
名無でクソレスするよりマシだと思ってくれたまえ。
0755デフォルトの名無しさん2006/05/02(火) 21:29:31
>>749
yacc知らんのか
0756デフォルトの名無しさん2006/05/02(火) 21:31:52
うんこさん、あんまりageないでね。
0757デフォルトの名無しさん2006/05/03(水) 01:21:56
したり顔のコテハンがでてきたら腹が立つのもわかるが、
こんだけ大きな顔をしているんだから、きっと Wiki のほうに
大きなフィードバックをしてくれることだろう。

名無しで書かないのは、そういった責任感の表れという
以外には考えられない。
「俺が lua コミュニティを盛り上げる!」という決意表明
と受け取るべきだろう。
0758デフォルトの名無しさん2006/05/03(水) 01:48:12
書き込みたいんだけど、wiki更新できない・・・
俺だけ?wikiwiki.jpに規制されてんのかな
0759フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/03(水) 06:50:21
おはようございます。月は我々とともにある。
0760フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/03(水) 08:19:29
せっかく公式のwikiがあるのにわざわざ作るのはどうかと
http://lua-users.org/wiki/
こっちを更新したほうが全世界の人がその恩恵を受ける
英語は辞書ツールを整備すればあとは慣れの問題だ
0761デフォルトの名無しさん2006/05/03(水) 09:33:04
流石だ期待してるぞ
0762デフォルトの名無しさん2006/05/03(水) 09:33:42
>>757
そうだよな。まさかコテまでつけてこんな内容のないレスばっかってことは人
間としてありえないよなぁ。
0763デフォルトの名無しさん2006/05/03(水) 09:39:42
>>760
英語なら幾らでも資料があるだろ
水を差すな馬鹿
0764フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/03(水) 09:47:36
>>763
馬鹿は言い過ぎじゃないのか?
だったその資料を翻訳するとかできるだろう?
日本人向けの情報なら、日本語の扱いなど日本人固有の問題を取り扱うべき。
技術英語など大きい辞書と英検準2級の英語力があれば読める。
0765デフォルトの名無しさん2006/05/03(水) 10:06:31
あーじゃま
0766デフォルトの名無しさん2006/05/03(水) 10:08:15
まず自分が率先してやれ。
0767フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/03(水) 12:29:54
英語読む気ないおまえらは厨房か?
プログラミングする人は英語が必須
0768デフォルトの名無しさん2006/05/03(水) 12:33:01
英語を読む時間を掛けたくない
0769フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/03(水) 12:40:36
だったら英語にたくさん触れて速読力をつけろ
英語が国際語である以上英語から逃げられない
わしも読むのは遅いけど恐れず真向から立ち向かう
0770デフォルトの名無しさん2006/05/03(水) 12:44:12
英語の説明よりはサンプルコード集の方がいい。
0771デフォルトの名無しさん2006/05/03(水) 12:44:39
だーかーらー
英語を読むのとluaを使うのは別問題でしょ
英語が読めるに越したことはないが
luaを使うためにその時間を掛ける無駄はしたくないと言ってるの
組み込み言語だけに構ってられないんだよ
0772デフォルトの名無しさん2006/05/03(水) 12:50:09
じゃあ英語の読める人間を雇えば?
0773デフォルトの名無しさん2006/05/03(水) 12:51:08
氏ね
0774フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/03(水) 13:05:16
>>770
それは同意
サンプル大事
>>771
別問題とは言いきれない
そもそもluaは外国産まれだから資料が英語だらけなのは当然だ
そんな文句言うんだったらRuby使えば? 日本語のドキュメントいっぱいあるんだから
scheme処理系gaucheも日本人が作者だ
>>772
半分同意
国際社会を生き抜く上で英語力を高めるのが大事
0775フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/03(水) 13:17:39
Luaに手をだしてるってことはおまえらプロの技術者だよな?
英語すら読めないなんてプロとして恥ずかしくないのか?
「人間向上心なくしたらおしまい」イチローの言葉だ
わしはイチロー嫌いだがその言葉には同意する
自分の力が足りないと感じたら勉強しろ
それが嫌なら人雇って金払え
金も時間もないならやめちまえ
0776デフォルトの名無しさん2006/05/03(水) 13:21:03
このコテハンはツッコミどころが多すぎて困る。

とりあえず日本語なんかでLuaの話をしているこのスレは不要ってことだな。
英語のwikiを更新できるだけの英語力もあるんだろ。
英語圏行ってこいよ。バイバイ。
0777フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/03(水) 13:28:46
自分の弱みを指摘されたら逆キレか
努力を怠った自分が悪いと思わないのか?
所詮厨房か

草の根wikiを作るくらいだったら
http://lua-users.org/wiki/
に日本語のページを作れよ
emacswikiはそうなってる
0778デフォルトの名無しさん2006/05/03(水) 14:02:03
Luaに手をだすのって学生が多いと思うが
0779フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/03(水) 14:03:59
学生か、最近の学生の学力低下は悩ましい問題だ
分数の計算すらできない大学生もいるらしいし
0780デフォルトの名無しさん2006/05/03(水) 14:09:48
こいつマスコミに踊らされすぎだな
0781デフォルトの名無しさん2006/05/03(水) 14:28:06
>>779
流石ウンコは言う事が違うな。
0782デフォルトの名無しさん2006/05/03(水) 18:22:40
C++からLuaを使おうとして試行錯誤しています。

普通にLuaスクリプトを実行するところまではどうにか漕ぎ着けたのですが
スクリプト内で他のスクリプトファイルを読み込もうとrequireやdofileを
記述したところで突然luaL_dofileがエラー(1なので構文エラー?)を
返すようになってしまいました。

require等を消して、呼び出し元のスクリプトに全部記述すると
きちんと動作するので呼び出そうとしてる関数は問題ないと思うのですが・・。
これが原因じゃね?と思いつくものがあればご教授ください。
0783デフォルトの名無しさん2006/05/03(水) 18:30:21
int on_lua_alert(lua_State *L)
{
if(lua_isstring(L, -1)){
print_lua_log("%s", lua_tostring(L, -1));
}
return 0;
}

lua_register(L, "_ALERT", on_lua_alert);

でエラーメッセージ出してるか?

おまけ
http://www.tt.rim.or.jp/~rudyard/torii009.html
0784フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/03(水) 19:01:26
tolua++
07857822006/05/03(水) 20:15:27
>>783
ご教授にはそんな意味があったんですね。
失礼しました。

ちなみにエラーメッセージは
「attempt to call global 'dofile' (a nil value)」でした。
dofileなんてもんは存在しないよ、ってことですかね。

で、改めてリファレンスを見直してみたら、基本ライブラリ使うのにも
luaopen_baseなる関数を呼ぶ必要があったようで・・。
それを呼んでやることで無事dofileが動作するようになりました。
(requireのほうは何故かそれでも動きませんでしたが)

おかげさまで先に進むことができそうです。
ありがとうございました。
0786デフォルトの名無しさん2006/05/03(水) 22:59:54
>>785
5.1で_ALERTは使えた?
ソースから無くなってるように見えたし、試してみてもだめだったから。
0787フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/03(水) 23:42:55
Luaは名前がステキ
07887822006/05/04(木) 00:08:57
>>786
あ、それ自体は使えなかったですね。
(print_lua_logっていうのがなかったのかな?)

lua_tostring(L, -1)でエラーメッセージ見ろよ、という意味だと解釈して
適当に表示させて見てました。
0789デフォルトの名無しさん2006/05/04(木) 02:19:34
>>777
流石だ。お前ならやれる! ゾロ目も取ったし!
俺はむしろそっちしか見てないから、遠慮せずにガンガンフィードバックしてくれ
0790フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/04(木) 07:48:38
今はschemeの勉強に本腰入れてるから
0791デフォルトの名無しさん2006/05/04(木) 12:00:02
じゃ、くるなよwwwwwwwwwまじでwwwwwwwwwww
07927862006/05/04(木) 12:16:38
>>788
回答ありがとう。今更ながらMLを検索するとあった。
公式には5.0でなくなったみたい。
ttp://lua-users.org/lists/lua-l/2002-12/msg00220.html
0793フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw 2006/05/04(木) 13:10:44
>>791
わかったよ、去ればいいんだろ去れば
これより潜伏にうつる
0794デフォルトの名無しさん2006/05/04(木) 17:02:14
二度と来るなバーカ
0795デフォルトの名無しさん2006/05/05(金) 21:32:40
フンバルト=ヘーデルホッヘ
0796デフォルトの名無しさん2006/05/06(土) 09:56:36
踏んばると、屁出る放屁
0797λ計算2006/05/06(土) 12:07:12
Luaで関数プログラミングしている勇者はいるか?
0798デフォルトの名無しさん2006/05/06(土) 13:18:46
functionて名前付けないと呼び出せないんだったっけ?

(function(a) return a(a); end)(function(a) return a(a); end)
0799λ計算2006/05/06(土) 13:44:58
無名関数もある。

function map(func, table)
ret = {}
for k,v in pairs(table) do
ret[k] = func(v)
end
return ret
end

tbl = map(function(x) return x*2; end, {3,7})

assert_equal(6, tbl[1])
assert_equal(14, tbl[2])
0800λ計算2006/05/06(土) 13:46:51
luaの関数っていちいちreturnを書かないといけないのがうざすぎ。
0801デフォルトの名無しさん2006/05/06(土) 15:19:22
俺はむしろreturnが無いと不安になるが。
0802λ計算2006/05/06(土) 15:46:27
lispやperlだと書かなくていいからそれに慣れてしまって。
わたしは名前の通りS式厨だ。
0803デフォルトの名無しさん2006/05/06(土) 15:53:12
ならずっとlispしとけ
0804λ計算2006/05/06(土) 16:10:02
そんな言い方は冷たいと思わないのかね?
わたしはlispに限らずいろんな言語を貪欲に勉強したいんだ。
0805デフォルトの名無しさん2006/05/06(土) 16:14:09
よろしい
0806デフォルトの名無しさん2006/05/06(土) 16:25:02
でもreturnだけでreturnできる、それは幸せなことだ
0807λ計算2006/05/06(土) 16:35:58
そやけど最後に評価した値を暗黙のreturnとしてくれたらいいのに。
>>799
tbl = map(function(x) x*2; end, {3,7})
と書けたらコンパクト。
0808デフォルトの名無しさん2006/05/06(土) 16:55:22
まあね。
それを言うとfunctionも長いとか、thenイラネとかendのぶら下がり
判りにくいとかあるけど。

luaのフロントエンドやめて意味論的にはluaと同じ
適当な整合性のありそうな俺言語作た方がいいかも
0809デフォルトの名無しさん2006/05/06(土) 16:58:40
もしかしてluaってARM(xscale)で動きますか?
動くとしたら、すごい事です。
0810λ計算2006/05/06(土) 17:00:46
functionはshell scriptでもあるからよいとする。
endはrubyで慣れてるから平気。
thenは省略できたほうがいいな。
not equalが!=じゃないのは謎。
0811デフォルトの名無しさん2006/05/06(土) 23:22:09
>>809
DS(ARM)でLua動いているくらいだからできるんじゃね?
http://www.dslua.com/
0812デフォルトの名無しさん2006/05/06(土) 23:46:07
>809
LinuxZaurusでうごいてるよ
0813デフォルトの名無しさん2006/05/07(日) 08:14:56
GBAでも動くってさ
http://www.torlus.com/index.php?2005/09/09/117-lua4gba
0814デフォルトの名無しさん2006/05/08(月) 20:09:43
LinuxZaurusのバイナリはどっかに落ちてないですか?
0815デフォルトの名無しさん2006/05/08(月) 23:21:31
>814
ttp://homepage2.nifty.com/cstation/pub/liblua-devel_5.1_arm.ipk

こんなかんじ?
Nokajiでもプラグインで対応してるよ
0816デフォルトの名無しさん2006/05/16(火) 09:20:23
ttp://d.hatena.ne.jp/w_o/searchdiary?word=%2a%5ba24z%5d
めちゃめちゃ軽いみたい(サイズ5k!?)
CやD言語とリンク
yieldもある
0817デフォルトの名無しさん2006/05/16(火) 22:13:33
http://d.hatena.ne.jp/w_o/searchdiary?word=%2a%5ba24z%5d
0818デフォルトの名無しさん2006/05/20(土) 02:29:46
lua5.1のGDChartのラッパーって使う人いる?
ドキュメントとかオプションの一部はやってないんだけど
0819デフォルトの名無しさん2006/05/20(土) 16:45:11
>>818
興味はあるけど使い道が無い。ごめん。
権利面で問題無いならWikiとかLuaForgeとかに
あげたほうがいいんじゃね。
0820デフォルトの名無しさん2006/06/07(水) 16:43:13
LUAの二次元テーブル
tbl2 = {{1},{0,2,3},{1},{1}}
をC側で読み込むにはどうやったらいいのでしょう。

あるサイトを参考にやってみたんですが、
どうも3回目のlua_next(上の例でいくと最初の1を読み込んだ後)で
ホストプログラムごといきなり終了してしまうのです。
自分の環境のせいですかね。
0821デフォルトの名無しさん2006/06/08(木) 16:47:01
>820
static int trail_table(lua_State *L) {
if (lua_istable(L, -1)) {
lua_pushnil(L);
while (lua_next(L, -2) != 0) {
trail_table(L);
lua_pop(L, 1);
}
} else {
printf("%d\n", lua_tointeger(L, -1));
}
return 0;
}
08228202006/06/09(金) 11:45:09
ありがとうございます。
ただ821さんのを使用しても、やはりプログラムが終了してしまうので
私の環境が良くないみたいですね。

色々試してみたところ二次元テーブルどころか
通常のテーブルでも終了してしまうことが判明。
何故かフィールド名をつけると何事も無く読めるという謎動作。
NG: tbl2 = { 1,2,3 }
OK: tbl2 = { [1]=1,[2]=2,[3]=3 }

とりあえずフィールド名をつけて動かしてみます。
08238202006/06/09(金) 12:06:42
そしてたびたびの質問で申し訳ないですが
820のような二次元テーブルをC側から登録する方法を
教えていただけますでしょうか。

何となく※のあたりが違うんだろうなぁという気はするのですが。

lua_pushstring(L, テーブル名);
lua_newtable(L);

ループ開始
 ※lua_pushstring(L, テーブル名?);
 ※lua_newtable(L);

 ループ開始
   lua_pushnumber(L,キー);
   lua_pushnumber(L,値);
   lua_settable(L, -3);
 ループ終了

 ※lua_settable(L, ?);
ループ終了

lua_settable(L, LUA_GLOBALSINDEX);
0824デフォルトの名無しさん2006/06/09(金) 22:05:45
>>823
lua_newtable(L);
for (i = 1; i < 10; i ++) {
lua_newtable(L);
for (j = 1; j < 10; j ++) {
lua_pushnumber(L, i * j);
lua_rawseti(L, -2, j);
}
lua_rawseti(L, -2, i);
}
lua_setfield(L, LUA_GLOBALSINDEX, "kuku");
08258202006/06/10(土) 14:46:13
おおお、できました。
ありがとうございます!
0826デフォルトの名無しさん2006/06/24(土) 22:03:45
5.1.1 保守あげ
0827デフォルトの名無しさん2006/06/27(火) 07:04:53
Lua5.1日本語版のインタプリタを作れば200KB近くになり
単体じゃろくなこと出来ないのでLuaGLを使おうとしたら5.0用だったり
まぁ5.1からでも使えなくはないだろうとコンパイルしようとしたらどうしてもできず。

やっぱりググっての付け焼刃の知識と
Hello World程度しか弄らなかったCの経験じゃ無理かぁ・・・。
0828デフォルトの名無しさん2006/06/27(火) 22:22:53
知らないことの中で知るべきことを特定して調査し進めていく能力があればできる。
0829デフォルトの名無しさん2006/06/28(水) 20:10:18
>>827
その前にLua使ってなにがしたかったんだ?
0830デフォルトの名無しさん2006/06/28(水) 20:37:35
>>829
手軽にゲームとか作れないかなー、と曖昧な目的で。
しょうがないので今はLuaでCUIオンリーのWizardryみたいなの作ってる。
0831デフォルトの名無しさん2006/06/29(木) 19:48:41
LuaGLのコンパイルにやっと成功。
OpenGLの入門サイト見ながら色々弄ってます。
まぁ、直接Cで書いた方が早いって言えば早いんだけどね・・・。
0832デフォルトの名無しさん2006/07/02(日) 23:39:24
GLを一通り弄ったらこんどは音楽を再生したくなってきた。
fmodのLuaバインディングが欲しかったけど、
見当たらなかったので自分で作ってみた。
・・・いちいち命令の一つ一つを実装するのってめんどくさいなあ。
ストレートに動的リンクできれば早いんだけど。
0833デフォルトの名無しさん2006/07/03(月) 23:51:35
squirrelとやらは結局どうなったのかね?
0834デフォルトの名無しさん2006/07/04(火) 00:46:54
FMUSIC_*系の関数を9割実装したところで
画像も音声もSDLのバインディング組めば
汎用性も拡張性もいいんじゃね?と思い始めた。

>>833
向こうでもあんまり活発じゃないみたいだな。
0835デフォルトの名無しさん2006/07/19(水) 17:26:44
0836デフォルトの名無しさん2006/07/27(木) 01:20:49
wxLuaのwxConfigでファイルに保存する方法ってどうやるの?
0837デフォルトの名無しさん2006/08/12(土) 03:59:17
SquirrelはやっぱLuaよかダメ?
0838デフォルトの名無しさん2006/08/12(土) 13:18:15
そもそもLuaも日本ではそんなに使われてねー気がする。
全然組み込んだよーってソフト見ない
0839デフォルトの名無しさん2006/08/12(土) 13:21:17
RigidChips
0840デフォルトの名無しさん2006/08/12(土) 13:27:21
それだけ?
0841デフォルトの名無しさん2006/08/12(土) 23:00:02
組み込むほど大規模なゲームがほとんどないしな・・・
0842デフォルトの名無しさん2006/08/13(日) 00:29:56
3DモデリングソフトのMarbleCLAYとか、

変わったところでは、
スクリプト言語Luaを用いたロボカップ四足ロボットリーグシミュレータ
www.jollypochie.org/papers/JSAI-SIG-CHALLENGE21-kobayashi.pdf
なんてのでも使われてるみたい。
0843デフォルトの名無しさん2006/08/13(日) 00:30:23
風立
0844デフォルトの名無しさん2006/08/23(水) 22:56:18
SPL
http://www.clifford.at/spl/
こんなのあった。ちょっと面白そう。
0845デフォルトの名無しさん2006/08/24(木) 06:10:21
>>743
コーティングスタイルの根底に関わる仕様だから入れるべきだね
末尾再帰だけならそんなに難しい事ではないし。
(schemeは継続も同居してるからちょっと難しい)
0846デフォルトの名無しさん2006/08/28(月) 23:41:16
C++のフレームワーク用のベースとして使うなんての
どうだろう?設計レベルで現れるようなオブジェクトの管理は
LuaのGC使って管理して、パフォーマンスに絡むようなオブジェクトは
C++の従来の考え方で管理する。
また、各タスクやそれらの関係(メッセージ処理や状態遷移マシン定義)の
configはスクリプトベースで行い、欲を言えばそれらのコンフィギュレーション
からC++のコード吐かして最後に最適化できるようにしたい。
Luaには標準ではプリエンティブなスレッドが無いのでそれは実装しないと
だめだけど(LuaThreadでいけるか?)。

現在そんなのを妄想中・・・。
0847デフォルトの名無しさん2006/08/29(火) 00:28:28
>>846
組み込みスクリプトの正道にしか見えん。
0848デフォルトの名無しさん2006/08/30(水) 23:11:24
>>847
そりゃ大まかに括ればその通りなんだけど。イメージとしては
UMLの実行モデル見たくして部分部分をC++に置き換えて
いけるような物に出来ないかなーと。まあ、単なる妄想だけど。

それは兎も角、
”..”とか使って生成た文字列が以前生成した文字列と内容が
同じな場合、以前の文字列に参照を追加して同じ文字列を複数
生成されない最適化が行われてるみたいね(多分)。
ただ、文字列が多くなると以前の文字列との比較に時間がかかって
しまい文字列生成のパフォーマンスが徐々に落ちてくるっていう、
マイナス面もあるみたい。
某所のGCパフォーマンス調査で文字列を大量に生成&破棄を
繰り返して調査してたけど、GCよりも文字列生成のパフォーマンス
を調査してるようなもんだと思った。
0849デフォルトの名無しさん2006/09/01(金) 03:11:20
一通り眺めてみたがGameMonkeyが使いやすそうだった。
スクリプト側で出来ることが少なくなるかもしれないが、
組み込みに関してC言語側の負担も小さそう。
小ぶりなフリーゲーム作るならこんなんで十分かも?
0850デフォルトの名無しさん2006/09/01(金) 11:40:56
>848
Lua 内で利用する文字列はすべて、参照時に「以前と同じ文字列があるかどう
か」をチェックしているよ。生成する経路はべつに関係ない。
またそのチェックはハッシュだから、理想的には文字列が増えてもパフォーマ
ンスはそれほど落ちない。

ただ、大量生成&破棄の繰返しの場合、ハッシュテーブルの再構成や再配置が
頻発すると思うので、そのコストが効いてくるんじゃないかと推測するがどう
か。
0851デフォルトの名無しさん2006/09/01(金) 13:23:27
>>850
Rehashする必要が増えてくるとハッシュテーブルのサイズを大きくとったりするようなタイプなの?
もしそうなら初期化時のような大量に文字列生成の可能性のある場所であらかじめテーブルサイズ拡大すると実行時のコスト下がるよね?
(ソースを読み下してないからそういうインターフェース無かったらごめん)
08528482006/09/01(金) 19:37:10
>>850
私が試したコードは
collectgarbage("stop");for i=1,50000 do ; a=i.."aaaa..(ここ沢山)..a" ; end
です。長い文字列に関しては全文字がHash計算対象ではないので
Hash値が一致する文字列が多くなり、最後の文字列全比較に時間が
かかっているのではと考えています。

>>851
Hashテーブルのサイズは32固定っぽいです(ハードコーディング)
そこから倍々で増やしていくタイプです(多分)
少なくとも文字列用Hashテーブルサイズを指定するインターフェースは
私はしらないです。

問題はプログラム中で固定的に使用する文字列、例えば以下のコード
function set_abc(v) a["abc"]=v end
の”abc”と、実行時に毎回変わる文字列、例えば次のようなコード
function write_abc_with_n(n,v) io.write("abc"..n) end
で生成される文字列["abc"..n]が同じ扱いってのに問題があるのではと
思うのです。

まあ、試したコードが現実的では無いのはたしかですが。
08538502006/09/01(金) 20:31:37
>852
あーなるほど、ハッシュ値の一致については考えてませんでした。そういう例
では頻発するかも。

文字列用のテーブルでサイズ指定するインタフェースはマニュアルには公開さ
れていないようですね。こっそり luaS_resize すれば出来ちゃいそうな気は
しますが。
0854デフォルトの名無しさん2006/09/14(木) 21:48:21
hoshu
0855デフォルトの名無しさん2006/09/16(土) 18:56:51
squirrelはもう誰も使ってない?
0856デフォルトの名無しさん2006/09/18(月) 00:53:04
>>855
言語自体は良いのだが周辺ライブラリがね…
トータルの工数を考えると結局luaに落ち着いてしまう
0857デフォルトの名無しさん2006/09/18(月) 01:32:18
>>856
luaより言語仕様は良いと思える?

あと、luaの周辺ライブラリってたとえば何がある?
0858デフォルトの名無しさん2006/09/18(月) 02:10:35
>>857
ぶっちゃけluaもsquirrelも機能的にあんま変わらんと思うのだが、
単純に言語の外観がC++に似てるってだけでも好き。

でもsquaddというluabind相当のライブラリはあるが開発が1年以上とまってたり、
SqPlusとかいうライブラリは使いにくい(これはcoroutine関連のことが頭に入ってないのか?)
エクスポートをluabindでやりまくってるのでその時点でsquirrelは無いかなと。
0859デフォルトの名無しさん2006/09/18(月) 02:18:28
周辺ライブラリとは、つまり簡単に使うためのC++のラッパーってことでOK?
0860デフォルトの名無しさん2006/09/18(月) 02:21:17
ごめん。そういうことです。
別にsquirrelでも同じことやろうと思えばできるんだろうけど、書くのめんどくさいし。
あるものは使う。
0861デフォルトの名無しさん2006/09/19(火) 00:30:45
Luaって毎回同じスクリプト実行するのに毎回コンパイルするんですかね。
一度コンパイルしてそれ流用とか、そういう小技ある?
0862デフォルトの名無しさん2006/09/19(火) 00:34:36
luac
0863デフォルトの名無しさん2006/09/19(火) 07:41:42
>>862 thx
0864デフォルトの名無しさん2006/09/21(木) 13:56:36
プログラミング言語 Lua
ttp://makimo.to/2ch/pc5_tech/1034/1034182349.html
0865質問2006/09/30(土) 15:22:28
Lua5.1をVC++6.0(環境はWinXP, CPU 2GHz, Mem 1GB)から使おうとしている者です。
このスレの>>358-360を参考に lua_dofile を luaL_loadfile に書き換え、
サンプルをコンパイルしようとすると以下のようなエラーが出てしまいます。
(なお、includeディレクトリにlua関係のヘッダファイルを全て入れ、
 libディレクトリにLuaLib.libを入れてあります)

--------------------構成: Test - Win32 Debug--------------------
リンク中...
c2lua.obj : error LNK2001: 外部シンボル "_lua_close" は未解決です
c2lua.obj : error LNK2001: 外部シンボル "_luaL_loadfile" は未解決です
c2lua.obj : error LNK2001: 外部シンボル "_luaopen_base" は未解決です
c2lua.obj : error LNK2001: 外部シンボル "_luaL_newstate" は未解決です
Debug/c2lua.exe : fatal error LNK1120: 外部参照 4 が未解決です。
link.exe の実行エラー
Test.exe - エラー 5、警告 0

//ソース: c2lua.cpp(▼は改行)
extern "C" {▼  #include "lua.h"▼  #include "lualib.h"▼  #include "lauxlib.h"▼}
int main(int argc, char* argv[]) {
  lua_State *lua;
  lua = lua_open();
  luaopen_base(lua);
  luaL_loadfile(lua, "lua\\hello.lua");
  lua_close(lua);
  return 0;
}
なぜエラーになるのか分かりません。助けてください><
0866デフォルトの名無しさん2006/09/30(土) 15:29:29
CPUとメモリが役不足なんじゃないカナ?カナ?
0867デフォルトの名無しさん2006/09/30(土) 15:34:08
>>866
やくぶそく 3 【役不足】

(1)俳優などが与えられた役に満足しないこと。
(2)能力に対して、役目が軽すぎること。
「―で物足りない」

こうですか? わかりません!><
0868デフォルトの名無しさん2006/09/30(土) 15:45:48
>>865
libディレクトリにLuaLib.libを入れたところでリンクしなければ意味がない。
VCのプロジェクト設定で「リンク」のカテゴリに「追加するライブラリ」みたいなのがあると思うんで、そこで指定する。

あと、luaL_loadfileはファイルをロードするけど、
ファイルを関数化するだけで実行はしないんじゃなかったかな。
lua_callだかlua_pcallだかで関数を実行する必要があるはず。
0869デフォルトの名無しさん2006/09/30(土) 15:52:20
つまりオーバースペックということだね
0870デフォルトの名無しさん2006/09/30(土) 15:53:53
>>868
追加ライブラリのパスというところに lib を指定しています。
他のLIBファイルはこれで読めているようなのですが・・・。
0871デフォルトの名無しさん2006/09/30(土) 16:12:32
>>868
色々調べて自己解決しました。
いつのまにか入っていた.NET付属のコンパイラが悪さをしていたようです。
PATHを変えて試行錯誤してみます。
0872デフォルトの名無しさん2006/09/30(土) 18:13:56
解決したのか試行錯誤中なのかどっちだ
0873デフォルトの名無しさん2006/09/30(土) 18:34:09
luavs.batでやってもでかいdllしかできないのですが何で?
コンパイラはVS2005です。
0874デフォルトの名無しさん2006/09/30(土) 18:59:41
dll作るためのバッチファイルだから
0875デフォルトの名無しさん2006/09/30(土) 19:01:39
バイナリ配布所の奴と同じぐらいの大きさのdllにするのは難しいのですか?
0876デフォルトの名無しさん2006/09/30(土) 20:47:26
VC++2005Expressにて160KBくらいだね。
バイナリ配布んところは110KBくらいだっけ?(たぶんMinGWだと思う)
ぶっちゃけ気にしてねえけど。
0877デフォルトの名無しさん2006/09/30(土) 20:51:55
コンパイラの違いによるもんかね
0878デフォルトの名無しさん2006/09/30(土) 23:59:15
400KBなんですが・・・
0879デフォルトの名無しさん2006/10/01(日) 00:12:27
デバッグでコンパイルしてるのでは
0880デフォルトの名無しさん2006/10/01(日) 01:09:26
luavs.batでやってます
0881デフォルトの名無しさん2006/10/01(日) 08:50:59
自分でプロジェクト作ってみたら?
リリースビルドかつコード生成をマルチスレッドDLLにするくらいだよ、
サイズで気をつけるところと言ったら。

……次は作動ランタイムの配布で困ることになると予言しておく。
0882デフォルトの名無しさん2006/10/01(日) 09:56:32
ヒントを元にluavs.batのコマンドラインに/MTを加えたら132Kになりました。
ありがとう。
dllは他の言語から使うため作っていてVSには不慣れなので助かりました。
08838822006/10/01(日) 11:12:32
勘違いでした・・・素直にプロジェクト作ります
0884デフォルトの名無しさん2006/10/04(水) 21:06:22
luaL_dofile でいけました。お騒がせしました。
0885デフォルトの名無しさん2006/10/07(土) 15:45:03
Patternについての質問です。
"foo1bar2baz3"や"foo1.bar2.baz3"のような文字列にマッチするかどうか調べるために、

string.match("^([%a_][%w_]%.)*[%a_][%w_]$")

と書いたのですが、マッチしません。
というかstring.match("^(.)*$")でもマッチしません。
何故ですか?

(使用しているLuaのバージョンは5.1です)
0886デフォルトの名無しさん2006/10/07(土) 21:53:14
> ^([%a_][%w_]%.)*[%a_][%w_]$
Luaのパターンは正規表現とは別物。「*」や「()」の意味も違う。

Luaのリファレンスによると「*」は、
a single character class followed by '*',
which matches 0 or more repetitions of characters in the class.
っつーことで、「単一の文字クラス」の繰り返ししか表現できない。

また、()についても、グルーピングの意味はなく、あくまで
マッチした特定の部位を保存しておく用途にしか使えない。

もし正規表現が使いたいなら、
http://luaforge.net/projects/stdlib/
http://luaforge.net/projects/lrexlib/
ここら辺とか使ってみたらどうよ。
0887デフォルトの名無しさん2006/10/07(土) 21:59:00
VC++6.0上で開発しているアプリからLua5.1ライブラリ経由でLuaファイルを呼び出そう
としているのですが、標準関数を使えるようにするところがトラブル続きで
上手くいかないです。経緯を晒しますのでアドバイスを頂ければ幸いです。

1.luaopen_io(L)が死ぬ→ぐぐったらluaL_openlibs(L)発見。
2.luaL_openlibs(L)も死ぬ→調べたら内部でluaopen_io(L)呼び出してる。
3.マニュアル見たらluaopen_*は使えないと書いてある。

    7.3 - Changes in the API
    ・通常のC機能のように、直接(ライブラリを開くために)luaopen_* 関数を呼ぶことができません。
     Lua機能のように、Luaを通してそれらを呼ばなければなりません。

>Lua機能のように、Luaを通してそれらを呼ばなければなりません。

さて、これってどういうことなんでしょうか。lua_callを使って呼べってことですか?
でもLuaに標準ライブラリをロードするための関数なんてありました?

追伸:ちなみにLua5.0.2を使おうとしたら stlport_vc6_static.lib が無いとか怒られました。

・・・諦めて素直にLua4.0を使っていたほうがいいんでしょうか(´∀`;)
0888デフォルトの名無しさん2006/10/07(土) 22:36:19
>>296
Lua for Delphiが消えてるけどまだダウンロードする方法ある?
08898872006/10/07(土) 22:46:00
Lua.exe で require("math") が通ったので、もしや!と思って試してみましたが、
結果は以下の通りでした。だめぽ。。。

lua_pushstring(L, "require");
lua_gettable(L, LUA_GLOBALSINDEX);
lua_pushstring(L, "math");
lua_call(L, 1, 1);

PANIC: unprotected error in call to Lua API (attempt to call a nil value)
超訳:そんな関数無いです。。。(nil値にしか見えませんが何か?)

lua_pushstring(L, "dofile");
lua_gettable(L, LUA_GLOBALSINDEX);
lua_pushstring(L, "math");
lua_call(L, 1, 1);

PANIC: unprotected error in call to Lua API (cannot open math: No such file or directory)
超訳:"math"なんてファイルありませんよ。ファンタジーやメルヒェンじゃないんですから。
08908852006/10/07(土) 23:54:18
>>886
ありがとうございます。
リファレンスを見たときは正規表現と似た感じだったの読み飛ばしてました。orz

何故標準で正規表現が使えないのか気になって調べてみたところ、次のものが見つかりました。
> Lua does not use POSIX regular expressions (regexp) for pattern matching.
> The main reason for this is size:
> A typical implementation of POSIX regexp takes more than 4,000 lines of code.
> This is bigger than all Lua standard libraries together.
http://www.lua.org/pil/20.1.html
0891デフォルトの名無しさん2006/10/08(日) 09:05:51
>887
lua_pushcfunction(L, luaopen_base);
lua_call(L, 0, 0);
08928872006/10/08(日) 09:41:13
>>891
ありがとうございます。出来ました。
0893デフォルトの名無しさん2006/10/08(日) 16:49:45
多次元配列の読み書きがしたいんだが
ROもFarcryも key=value という形式で
全然役に立たないんだが・・・

0894デフォルトの名無しさん2006/10/08(日) 16:55:59
何を言いたいのかよく分かりません
0895デフォルトの名無しさん2006/10/08(日) 22:54:40
Roのホムンクルス記述のLuaも
FarCryのLuaも

table[key]=valu

みたいな形式なので

table[key1][key2]=value
みたいな形式を使いたいので参考にならないと言いたかった
0896デフォルトの名無しさん2006/10/08(日) 23:07:08
テーブルを入れ子にすればいいだけでは?
0897デフォルトの名無しさん2006/10/08(日) 23:25:14
Perlみたいに代入時に勝手に入れ子のテーブルを用意してくれるモードが
欲しいってことかな?
0898デフォルトの名無しさん2006/10/09(月) 00:20:03
>>895
お前それを、突然893のように書いて理解してくれる人が出ると思ったのか?
0899デフォルトの名無しさん2006/10/09(月) 00:51:34
893なんだし理不尽は当たり前
0900デフォルトの名無しさん2006/10/09(月) 08:27:58
インデクスのアクセスできる範囲しか
返してくれないんだよな

だから

table[a][b][c][d][e]

みたいなテーブルだと

pairsとかnext使っても全要素取得出来ないし・・・
0901デフォルトの名無しさん2006/10/09(月) 08:54:44
ネストすればよいだけでは?
0902デフォルトの名無しさん2006/10/09(月) 11:01:22
これCとのやり取りがスタック方式というのがいいっすね。
変にポインタでだらだらやるよりずっといい。
柔軟で分かりやすい。グレイト!
0903デフォルトの名無しさん2006/10/09(月) 11:11:51
Squirrelはうーん・・・何かLuaが文系でこれは理系という感じ。
Luaの、一般人がスクリプトを弄るということを想定してる点を無視しているイメージ。
ゲーム用とかでプログラマしかスクリプトを弄らないならこれでもよいのだろうけど。
クラスとかコンテニューとか例外処理とか、素人はよう使いこなさんからねどうせ。
0904デフォルトの名無しさん2006/10/09(月) 11:30:43
素人が使いこなさないから無いってのはバカ意見だな
0905デフォルトの名無しさん2006/10/09(月) 11:59:18
もちろん俺はあった方がいいよw
けどなくても何とかなるという意味だよ
0906デフォルトの名無しさん2006/10/09(月) 12:03:20
オブジェクト指向は、プログラマーでも使えない奴が結構いるからなぁ。
そういう奴はプログラマーやめればいいのに。
0907デフォルトの名無しさん2006/10/09(月) 12:16:37
>>902
マジで言ってるのか?

t.foo("aaa", 10, f.bar)

このLuaで書かれたプログラムと同等のことを
CのAPIでさっと書ける?

それで書かれたのを瞬時に判断できる?
0908デフォルトの名無しさん2006/10/09(月) 12:35:54
902じゃないけどそれをPerlAPIでやるよかましなんじゃない?
0909デフォルトの名無しさん2006/10/09(月) 12:43:25
>>902
はぁ?コイツどんなだけ頭いいんだよ?
スタック操作がサクッっとかけるなんて、コンピュータ人間?
0910デフォルトの名無しさん2006/10/09(月) 12:51:46
慣れればサクッと書けるよ
やりづらいって言ってる人はまだ本格的に使ってないだけじゃないの?
0911デフォルトの名無しさん2006/10/09(月) 12:52:19
>>909
慣れの問題。
0912デフォルトの名無しさん2006/10/09(月) 13:26:21
多次元テーブルの全要素にアクセスしたいんだがなぁ・・・
再帰呼び出し使えばいいのかな?
0913デフォルトの名無しさん2006/10/09(月) 13:33:47
>>910
だから、試しに書いてみてって

t.foo("aaa", 10, f.bar)
0914デフォルトの名無しさん2006/10/09(月) 13:51:55
lua_pushstring(L, "t");
lua_pushstring(L, "foo");
lua_gettable(L, -2);
lua_pushstring(L, "aaa");
lua_pushnumber(L, 10);
lua_pushstring(L, "f");
lua_pushstring(L, "bar");
lua_gettable(L, -2);
lua_pcall(L, 3, LUA_MULTRET, 0);
0915デフォルトの名無しさん2006/10/09(月) 13:52:25
lua_pushstring(L, "f");
lua_gettable(L, LUA_GLOBALSINDEX);
lua_pushstring(L, "t");
lua_gettable(L, LUA_GLOBALSINDEX);
lua_pushstring(L, "foo");
lua_gettable(L, -2);
lua_pushstring(L, "aaa");
lua_pushnumber(L, 10);
lua_pushstring(L, "bar");
lua_gettable(L, -6);
lua_call(L, 3, 0);
lua_pop(L, 2);
0916デフォルトの名無しさん2006/10/09(月) 13:53:51
ありゃ被った
0917デフォルトの名無しさん2006/10/09(月) 13:55:37
のようだね。
>lua_pushstring(L, "f");
>lua_pushstring(L, "bar");
>lua_gettable(L, -2);
だとfまで引数にされないかい?
当方Perlしかembedしたことないんでよくわからん。
0918デフォルトの名無しさん2006/10/09(月) 13:56:48
lua_gettableしてるからf.barの値が3番目の引数としてスタックに詰まれます
0919デフォルトの名無しさん2006/10/09(月) 13:57:49
>>914
出来てないじゃん

>>915
これが分かりやすい?使いやすい?
0920デフォルトの名無しさん2006/10/09(月) 14:01:32
>>919
お前は自分の出した問題の答えが分かってないだけだろ
0921デフォルトの名無しさん2006/10/09(月) 14:01:57
>>920
はぁ?頭大丈夫?
0922デフォルトの名無しさん2006/10/09(月) 14:05:23
>>918
そうなのか。どもども。
ドキュメントさらっと読んでやってみたけどPerlよか断然楽だな。
Perlだとstashだのblessだのがめんどくさいし、
SV*だのAV*だの使っていじるのでコードが汚くなる。
0923デフォルトの名無しさん2006/10/09(月) 14:05:27
関数呼び出し一つでこれだ。
915を何個も書かないとならなくなったら気が狂うよ。

luabind等を使わずに本当にスタックでやり取りしてる奴いるの?
0924デフォルトの名無しさん2006/10/09(月) 14:08:41
結局はスタックを使いこなせないからスタックに切れているだけだと思われる
0925デフォルトの名無しさん2006/10/09(月) 14:10:23
>>924
はぁ?頭大丈夫?
0926デフォルトの名無しさん2006/10/09(月) 14:32:02
>>912
間違ってたらごめん
function each(t)
  local function e(t)
    local k, v = next(t)
    while k do
      if (type(v) == "table") then
        e(v)
      else
        coroutine.yield(v)
      end
      k, v = next(t, k)
    end
  end
  local co = coroutine.create(e)
  return function ()
    local f, s = coroutine.resume(co, t)
    return s
  end
end

local tbl, v = {{{1, 2},{3, 4}},{{5, 6},{{7, 8},{9, 10}}}}
for v in each(tbl) do
  print(v)
end
0927デフォルトの名無しさん2006/10/09(月) 14:38:30
情報処理技術者持ってる奴ならスタック余裕なのね
逆にluabindなんて使ってる奴が少数だろ
0928デフォルトの名無しさん2006/10/09(月) 14:40:32
使いこなせない方が幸せだと思う
0929デフォルトの名無しさん2006/10/09(月) 14:49:01
変にラッパー使っちゃうと後で困ること多いしな
0930デフォルトの名無しさん2006/10/09(月) 14:57:12
>>919
もともとマシン語使いだったんで違和感ないです
0931デフォルトの名無しさん2006/10/09(月) 15:28:27
ソフ開持ってるけど、こんなスタック弄りたくねぇよ。
なんで楽するためにLua使ってるのに、
その境界でアセンブラのようなメンドクサイ操作をしなきゃなんないの。
本当に近代のプログラマ?
0932908=915=917=・・・2006/10/09(月) 15:35:13
>>931
さっきから文末に句点つけてるの俺とお前だけってバレバレなんですけよ^^;
0933デフォルトの名無しさん2006/10/09(月) 15:36:14
こんなもなにもスタックってこういうものだと思うのですが・・・
逆に、無理のないかなり練られた仕様だと思いますよ。
0934デフォルトの名無しさん2006/10/09(月) 15:37:23
「けよ」じゃない「けど」だw
0935デフォルトの名無しさん2006/10/09(月) 16:21:12
>926
なるほど、コルーチン使えば簡潔に書けるのか。
俺も似たようなことをやってみたから貼ってみる。

function rnext(t, keys)
 local k, v
 if keys == nil then
  k, v = next(t, nil)
  keys = { v = k, next = nil }
 elseif keys.next == nil then
  k, v = next(t, keys.v)
  keys.v = k
 else
  k, v = rnext(t[keys.v], keys.next)
  if k == nil then
   k, v = next(t, keys.v)
   keys = {v = k, next = nil }
  end
 end
 if k == nil then
  return nil
 elseif type(v) == 'table' then
  local ks
  ks, v = rnext(v, nil)
  keys.next = ks
 end
 return keys, v
end
0936デフォルトの名無しさん2006/10/09(月) 16:22:08
つづき。こう使う。

function rpairs(t)
 return rnext, t, nil
end

function viewList(l, sep)
 while l do
  result = result .. l.v .. sep
  l = l.next
 end
 return result
end

local a = {'a', {'b', 'c', {'d', e = 'f', 'g'}}, 'h', 'i'}
for i, v in rpairs(a) do
 print(viewList(i), v)
end

長いなあ。
0937デフォルトの名無しさん2006/10/09(月) 16:37:20
luaopen_xxxx を直接呼んじゃうとメインから戻ってきたときのスタックの状態に影響が出るんだね
0938デフォルトの名無しさん2006/10/09(月) 16:39:57
>>932
はぁ?だから何?バカか?
0939デフォルトの名無しさん2006/10/09(月) 16:53:21
HPの電卓とかμPlan VMとかFORTHとか知らない人にはワケワカランかもな。


0940デフォルトの名無しさん2006/10/09(月) 17:12:49
スタック理解できない奴がプログラマになれるわけないっすよ
0941デフォルトの名無しさん2006/10/09(月) 17:17:46
スタックが理解できるかどうかは、問題にしていない。
スタック操作主体だと使いにくいとか、面倒だと言う話
0942デフォルトの名無しさん2006/10/09(月) 17:20:32
理解できれば使いにくくも面倒でもないよ
0943デフォルトの名無しさん2006/10/09(月) 17:32:36
第一、使う側からしたら、

lua = new Lua("hoge.lua");
a = lua.Integer["hoge"];

とかで、いいじゃん。
なんで、利便性のために、組み込み言語を使っているのに、
わざわざ面倒なスタックいじる必要があるのか理解に苦しむんだよね。
0944デフォルトの名無しさん2006/10/09(月) 17:40:06
オブジェクト指向かよ
0945デフォルトの名無しさん2006/10/09(月) 17:41:13
>936の補足。
viewList をちょっと変えようと思ってた途中をそのまんまにしてしまった。
local result = '' と、 sep = sep or ' ' を入れないとエラーになります。

あと、 926 の each は、
return coroutine.wrap(e)
で良い。
0946デフォルトの名無しさん2006/10/09(月) 17:49:28
あのね、型に厳しいスタンダードCと、型に緩やかなスクリプト言語のインターフェィスをどうするか
となったらポインタ多用型にするかスタック型にするかしかなくね?
テーブルが絡んできたらどっちもどっちだと思うが。
0947デフォルトの名無しさん2006/10/09(月) 17:56:27
多くはLuaのためにCで補助関数を作るだけで
スタック操作は引数の取得と戻り値の設定だけだから
そんな大変じゃないような
0948デフォルトの名無しさん2006/10/09(月) 17:58:45
Luaがスタック型を採用していることに文句があるわけじゃなく
スタック型が分かりやすい使いやすいってのは嘘だってこった。
0949デフォルトの名無しさん2006/10/09(月) 18:00:39
苦しそうだな
0950デフォルトの名無しさん2006/10/09(月) 18:02:13
また意味不明だな。最初からそう言ってる。
0951デフォルトの名無しさん2006/10/09(月) 18:03:14
スタックも使えないでプログラマ気取りすか・・・
0952デフォルトの名無しさん2006/10/09(月) 18:11:31
俺の気持ちを嘘だといわれても困るのですが・・・・
0953デフォルトの名無しさん2006/10/09(月) 18:12:31
>>951
お前は文が読めないのか???
0954デフォルトの名無しさん2006/10/09(月) 18:21:03
Cしか知らなくてポインタが使えない言語もあること知らないだけだろ。
0955デフォルトの名無しさん2006/10/09(月) 18:24:48
あれだな、Luaを導入する人の開発記を見てると
「スタック使いにくい」と言って独自のラッパーを作る香具師が多い。

ただその後「スタック簡単じゃんラッパいらんな」とAPI直接使うようになる香具師と
スタック使いにくいと言い続ける香具師に別れる。
0956デフォルトの名無しさん2006/10/09(月) 18:28:22
・「スタック簡単じゃんラッパいらんな」とAPI直接使うようになる香具師
・スタック使いにくいと言い続ける香具師

の例を頼む



というか、お前今の時代に「香具師」って・・・
その超おっさん感をなんとかしろ。
0957デフォルトの名無しさん2006/10/09(月) 18:29:37
別にどっちが良い悪いなんて言ってないよ。
全部自分への悪口に見えるのかい?
0958デフォルトの名無しさん2006/10/09(月) 18:31:38
>>957
意味不明すぎ
0959デフォルトの名無しさん2006/10/09(月) 18:36:42
ラッパよりも、#defineで定義した俺様マクロに心引かれる俺様が来ましたよ。
0960デフォルトの名無しさん2006/10/09(月) 18:43:17
つまり、MFC使いやすい!嘘つけ!という議論ですね!
0961デフォルトの名無しさん2006/10/09(月) 18:51:34
C/C++から簡単に読めるように、設定ファイル用途のLuaを呼び出した後、
設定ファイル前処理用Luaを呼び出すのが正解。
スタックが面倒なら、Luaでやれることは全部Luaにやらせようぜ。
0962デフォルトの名無しさん2006/10/09(月) 19:13:20
962が禿しく正論
0963デフォルトの名無しさん2006/10/09(月) 19:15:40
>>962
自己完結してるな
0964デフォルトの名無しさん2006/10/09(月) 19:42:13
自分の好きに使えばいいじゃん。
0965デフォルトの名無しさん2006/10/09(月) 20:37:30
テーブルの挙動がわからん
Struct={}
file_read(Struct,"data.txt")

function file_read(table,file_name)
local get_buf=""
local k=1
local key=0
local v=0
local file_num
file_num=_FOPEN(file_name,"r")

while get_buf==nil do
_FGETS(file_num,get_buf)
for key,v in string.gfind(get_buf, "([%w]+)=([-]?[%w]+)") do
table[k][tonumber(key)]=tonumber(v)
end
k=k+1
end
_FCLOSE(file_num)
end

読み込むデータ
[1]:{[0]=2,[1]=2,[2]=8,[3]=17,[4]=10}
[2]:{[0]=3,[1]=3,[2]=2,[3]=7,[4]=100}
[3]:{[0]=4,[1]=4,[2]=41,[3]=7,[4]=50}
[4]:{[0]=5,[1]=5,[2]=40,[3]=7,[4]=10}
[5]:{[0]=6,[1]=6,[2]=42,[3]=7,[4]=30}
[6]:{[0]=1,[1]=1,[2]=41,[3]=7,[4]=30}

何か俺間違えてる?
0966デフォルトの名無しさん2006/10/10(火) 15:16:38
>935
を繰り返しを使ったコードで書き直してみた。ちょっとごちゃごちゃしているけど。

function rnext2(t, keys)
 keys = keys or {}
 local k, v
 local ks, c = {t}, (#keys > 1) and #keys or 1
 for i = 2, c do
  ks[i] = ks[i-1][keys[i-1]]
 end
 k, v = next(ks[c], keys[c])
 while (k == nil) and (c > 1) do
  ks[c], keys[c], c = nil, nil, c-1
  k, v = next(ks[c], keys[c])
 end
 if k == nil then return nil end
 keys[c] = k
 while type(v) == 'table' do
  k, v = next(v, nil)
  keys[#keys+1] = k
 end
 return keys, v
end

935 だと keys は連結リストだが、こっちは1つのテーブルを配列っぽく使ってる。
0967デフォルトの名無しさん2006/10/10(火) 18:00:54
io.readとか使ってデータを読み込むとなると一行ずつだが
dofileでチャンクごと読み込むと楽だよな

dofileで読み込むとglobalになるから好ましくないんだっけ?
0968デフォルトの名無しさん2006/10/10(火) 19:26:50
globalを汚さないdofileはこんな感じで良いのかな?

function envdofile(filename)
 local c = loadfile(filename)
 local e = {}
 local m = getmetatable(e) or {}
 m.__index = getfenv(c) or _G
 setmetatable(e, m)
 setfenv(c, e)
 return e, c()
end

使い方

-- a.lua
c = envdofile("b.lua")
print(b) -- nil
print(c.b) -- 10

-- b.lua
b = 10
print(b) -- 10
0969デフォルトの名無しさん2006/10/10(火) 20:24:10
HSPに愛想が尽きたのでLuaでゲームを作りたいです。
LuaGLの存在は知っていますが、LuaからGLUTを呼ぶためのライブラリは既にありますか?
むしろ作るべきですか?
0970デフォルトの名無しさん2006/10/10(火) 21:19:19
lua-users wikiに作りかけのがあったはず。
0971デフォルトの名無しさん2006/10/10(火) 21:43:25
LuaScene
0972デフォルトの名無しさん2006/10/12(木) 07:04:08
Google code search
0973デフォルトの名無しさん2006/10/12(木) 08:24:26
とりあえず

io.readAll io.writeAll
io.readCSV io.writeCSV
io.readTab io.writeTab
table.marge table.unmarge
table.dump table.save table.load
stack.dump

があったら便利だと思った。
0974デフォルトの名無しさん2006/10/12(木) 18:27:25
だいたい半分くらい書き終わりました。
0975デフォルトの名無しさん2006/10/12(木) 20:30:08
テーブルに値を入れるのに入れ子にすると大変だから

["document"]["body"]["color"]=256

["document:body:color"]=256

みたいにすればファイルへのセーブ・ファイルからのロードも楽になるが・・・
0976デフォルトの名無しさん2006/10/12(木) 20:32:03
オマエ・チョット・アホ・デス・カァ
0977デフォルトの名無しさん2006/10/12(木) 21:07:16
ヒント: document.body.color=256
0978table.dumpを書いてみました2006/10/12(木) 23:18:50
print((string.gsub(string.gsub(--[[Lua5.1用table.dump関数を出力]] [[
table._dump_temp = nil#function lua_table_dump(src, i)# if src == nil@
then return nil end# if i == nil or type(i) == "string" then --"i" i@
s `tag' on top level call# if i == nil then i = "t" end# if type@
(src)=="table" then# table._dump_temp = i .. "={\n"# lua_tab@
le_dump(src, 1)# table._dump_temp = table._dump_temp .. "}\n"# @
local result = table._dump_temp# table._dump_temp = nil# @
return result# else# return nil --illegal arguments# end# @
else --"i" is indent on recursive call# local dst = {}# local in@
dent = string.rep(" ", i)# for k,v in pairs(src) do# if type(@
k) == "number" then k = "[" .. k .. "]" end# if v==table._dump_te@
mp then# --do nothing# elseif type(v)=="table" then# @
table._dump_temp = table._dump_temp .. indent .. k .. "={\n"# @
i = i + 1# lua_table_dump(v,i)# table._dump_temp = tabl@
e._dump_temp .. indent .. "},\n"# elseif type(v)=="string" then# @
table._dump_temp = table._dump_temp .. indent .. k .. "=\"" .. @
v .. "\",\n"# else# table._dump_temp = table._dump_temp ..@
indent .. k .. "=" .. tostring(v) .. ",\n"# end# end# end#end#@
table.dump = lua_table_dump#]],"@\n",""),"#","\n")))
09799782006/10/12(木) 23:35:18
えーと、>>978をLua5.1のLua.exeに食わせるとコードを吐きます。
ちょっと1レスに収まりきらなかったので・・・。

使い方はこんな感じです。

a = {A="A",B={b="b","d"},42} --複雑なテーブル
dump = table.dump(a, "a")
print(dump)
--(ここで dump を save.txt に保存したと仮定)
a = nil
dofile("save.txt") --読み込み
print(table.dump(a, "a"))

変なとこあったら教えてください。
0980デフォルトの名無しさん2006/10/13(金) 00:00:09
コードを見てないからなんなんだが、
a = {A='a'}
a.next = a
みたいな循環構造のテーブルを渡した場合はどうしてる?
09819782006/10/13(金) 07:46:15
>>980
(((( ;゚Д゚)))ガクガクブルブル
0982デフォルトの名無しさん2006/10/13(金) 14:01:28
>>980-981
ワラタ
0983デフォルトの名無しさん2006/10/13(金) 15:24:08
>>926,935 も循環参照は考えてなさそうだな。
0984デフォルトの名無しさん2006/10/13(金) 17:37:23
try-catch構文(もどき)

exception=setmetatable({throw=error},{__newindex=
function(t,k,v)if k=="catch"then xpcall(t.try,v)
else rawset(t,k,v)end end})

exception.try                         =function()
 print("foo")
 exception.throw("(^^)")
 print("bar")                        end function
exception.catch(err)
 print("error : "..err)
end
0985デフォルトの名無しさん2006/10/13(金) 19:55:07
finallyもぜひ
0986デフォルトの名無しさん2006/10/13(金) 20:26:48
>>983
考えてみると循環参照やら function、thread、userdata の復元やら、テーブルのシリアライズには
色々と問題がありますね・・・。あと、循環参照でなくても

d = { A="A" }
t = { d, d }

とかいう構造だと、

t = { [1]={ A="A" }, [2]={ A="A" } }

とは等価ではなく、

do
 local d001 = { A="A" }
 t = { [1]=d001, [2]=d001 }
end

みたいにダンプしてあげないと復元できないし・・・。
0987デフォルトの名無しさん2006/10/13(金) 22:42:29
http://www.lua.org/pil/12.1.2.html
0988デフォルトの名無しさん2006/10/13(金) 23:08:19
12.1.2のって

NIL
BOOLEAN
FUNCTION
USERDATA
LIGHTUSERDATA
THREAD

の場合はどうしてるんだ?
文字列に変換出来るのだろうか?
0989デフォルトの名無しさん2006/10/13(金) 23:17:14
926 のを循環参照に対応させてみた。
function each(t)
 local cache = {}
 local function e(t)
  cache[t] = true
  local k, v = next(t)
  while k do
   if cache[v] then
   elseif type(v) == "table" then
    e(v)
   else
    coroutine.yield(v)
   end
   k, v = next(t, k)
  end
 end
 return coroutine.wrap(e), t
end

いちおう動いてるっぽい。
0990デフォルトの名無しさん2006/10/13(金) 23:42:06
>>988
error("cannot save a " .. type(value))

だと思う。
0991デフォルトの名無しさん2006/10/14(土) 00:43:51
schemeと似てるな
0992デフォルトの名無しさん2006/10/14(土) 10:08:44
順序が不定だと困る場面がありそうなので、キー順に巡回する spairs 関数を書いてみた。
使い方は Using: の行を参照。 t={A="a", B="b", [1]="c", [2]="d"} などの文字列数字混在でも可。

--compare many types (over spec...)
function table_lt_event(op1, op2)
 local type1, type2 = type(op1), type(op2)
 if type1 ~= type2 then --cmp type
  return type1 < type2
 elseif type1 == "number" and type2 == "number"
   or type1 == "string" and type2 == "string" then
  return op1 < op2 --default
 elseif type1 == "boolean" and type2 == "boolean" then
  return op1 == true
 else
  return tostring(op1) < tostring(op2) --cmp address
 end
end

(続く)
09939922006/10/14(土) 10:10:14
(続き)

--sorted keys
-- Using: for i, k in pairs(table.keys(t)) do ... end
function lua_table_keys(t)
 local keys = {}
 for k in pairs(t) do
  table.insert(keys, k)
 end
 table.sort(keys, table_lt_event)
 return keys
end

--sorted pairs
-- Using: for k, v in spairs(t) do ... end
function lua_table_spairs(t)
 local k = {}
 local function e(t)
  for i, v in pairs(lua_table_keys(t)) do
   coroutine.yield(v, t[v])
  end
 end
 return coroutine.wrap(e), t
end

table.keys = lua_table_keys
spairs = lua_table_spairs -- or table.spairs = lua_table_spairs
09949842006/10/14(土) 10:54:05
finallyにも対応したつもり
ただしtry-catch-finallyとつなげることはできない

exception=setmetatable({throw=error},{__newindex=
function(t,k,v)if k=="catch"then xpcall(t.try,v)
elseif k=="finally"then(function(e,m,...)v(e,m,
...)if not e then error(m,0)end end)(pcall(t.try))
else rawset(t,k,v)end end})

exception.try               =function()
 exception.throw("hogehoge")    end
exception.finally             =function()
 print("finally")
end
0995デフォルトの名無しさん2006/10/14(土) 11:26:26
つなげられなくても
try
 try
 catch
 end
finally
end
とできれば問題ないっす
0996デフォルトの名無しさん2006/10/14(土) 12:11:29
2.5より前のPython方式ですな。
0997デフォルトの名無しさん2006/10/14(土) 12:22:18
>>995
994のコードを見る限り、それは不可能だぞ。
09989842006/10/14(土) 12:27:01
これでどうだ?

exception=setmetatable({throw=error},{__newindex=
function(t,k,v)if k=="catch"then xpcall(t.try,v)
elseif k=="finally"then local m,e e=xpcall(t.try,
function(e)m=e v(false,e)end)if e then v(true)
else error(m,0)end else rawset(t,k,v)end end})
0999デフォルトの名無しさん2006/10/14(土) 12:44:25
ところで次スレは?
1000デフォルトの名無しさん2006/10/14(土) 13:06:30
1000げと
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。