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

このエントリーをはてなブックマークに追加
久しぶりに見ようと思ったら落ちてたよ・・・。
他の人サポ−ト頼む。
前スレ
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
2デフォルトの名無しさん:03/09/16 20:21
はーはっはっは

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

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

暫く書き込みが無いから寂しいと思ってたよ。
暫くスレの存在自体を忘れていたよ
71:03/09/19 01:25
>>6

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

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

としか読めん。
そういえば、GoLua はどうなった?
CoRoutine内のエラーを調べる方法はないものか・・・
前スレあるけどどうすればいいの?
>>15
あ!素敵!保存サイトきぼん
>>16
めんどいよー。どこかあpろだないっすか?
181:03/09/28 12:42
http://pc2.2ch.net/tech/kako/1034/10341/1034182349.html

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

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

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

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

>組み込み用JavaScript
ものすご気になるw
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の他の
大量にあるコンポーネントには依存してなくて単体で使えたような記憶。
>39
おぉサンクス!
中間言語にコンパイルするのかどうか、調べてみます。
njsはソース見りゃわかるけどコンパイルするよ。
コンパイラをバイトコ−ドの形式で配布してるから
改造二次配布防止のセキュリティもばっちりだべ
luaで、数行にわたるプログラムのコメントアウト
全部に--つけるのめんどくさい、あなたに。

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

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

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

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

creat 問題に似てる。
>>52
文法と機能は分けて考えれるんじゃない?
if x ~= 0 then
..
end

if(x != 0){
..
}
と書きたいとか、そういう話でそ?
文字列もテーブルも今のままでいいし。
でもCの文法には文字列連結演算子や累乗演算子ないよねぇ。匿名の関数も・・・
無名についてはgccの拡張に習えばいいんじゃねーの
561:03/10/21 04:12
>>54 そうそう。そんな感じ!
ゲームに使われてる実績もある、ライトウェイト言語
http://www.compuphase.com/small.htm
>>58
レビューよろ
small
文法がCににてます。
luaもそうだけど、smallはインタプリタがなんか使いにくかったよ。
smallはJITで超速くなるよ。
インタプリタが使いやすい(Cから使いやすいって意味?)言語を上げてもらえるとうれしいかもかも。
Da Da Da

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

そういえば、
Lightweight Languages 2003 (LL3)
http://ll3.ai.mit.edu/
こんなのやってるんだね。

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

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

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

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



/* 多分こうじゃないかと。 */
/* 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;
>72
ぬおおお!サンクス!!
ありがとうございます!
>74
ほぉぉ・・
Rubyもはいってんじゃんね。
ゲームつくるのにはさ、LuaのCoroutineがめちゃ便利
だと思うんだけどさ・・
Pythonにはなんかあったよね、ファイバーだっけか?
Rubyにはそんなのあんの?
Thread
Rubyはそもそも継続をサポートしてなかったっけ?
78デフォルトの名無しさん:03/11/04 08:55
Rubyをゲームに組み込んで使った例ってあるのかな?
そっちのほうが気になる。
ゲームとはちょっと違うが、伺かの偽AI用のスクリプトにRubyを使うってのは
二つほど見たことがある。
8074:03/11/05 00:45
このシリーズは何気に面白そうです。
スクリプトの本とか。
http://www.premierpressbooks.com/ptr_catalog.cfm?group=Game%20Development
81デフォルトの名無しさん:03/11/06 10:44
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
GDC2004だった。。。sage
83デフォルトの名無しさん:03/11/11 05:41
保守age
lua そのものに絞った本はまだ出版されてないのですか?
英語 or 日本語で。
ポルトガル語だとありそうだけど。
http://www.lua.org/docs.html
↑ここに、「The first draft of the book "Programming in Lua" by
R. Ierusalimschy is now available. 」とか書きかけの奴があるけど
全然更新されて無いね。
本だすほど、複雑でも無いんじゃないかな・・・
複雑だから本出せと言ってるのではない。
mingwでコンパイルしてlua.exeとかを
作りたいのですがどうやればいいですか?
configファイルを変更しないとダメですか?
>>88
Read the FAQ in >>3.
9088:03/11/16 16:20
FAQとBuilding Lua読んでもわからないDQNでも
コンパイルできる方法を教えてください神様!
91デフォルトの名無しさん:03/11/16 17:23
Building Lua にずばり書いてあるじゃない。
(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.

これだけではわかりかねまする。
何をやってどうだめだったかを書いてみて。
コピペ貼られても困る。
>>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が出来上がる。

もしかして、
# 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
cygwinでの話だけど、configのMYCFLAGSとMYLDFLAGSに-mno-cygwinを追加するだけで、
mingw用のバイナリ(cygwin1.dllに依存しないバイナリ)が出来てしまうんだが?

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

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

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


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

>一度、Flashの開発環境でも触ってみると言いとおもた。
開発環境の話では無いような…
> 一度、Flashの開発環境でも触ってみると言いとおもた。

何故ですか?
1081:03/11/21 21:43
とりあえず前スレの2の舞だけは避けたいなあ。
前スレの 2 はふしぎなおどりをおどった
110前スレの2:03/11/22 00:14
ぅあ
このスレって、自作言語自慢厨が結構出没するんだよね。
それはそれで、結構興味深くて、面白いんだけども。
うん。そのたびに期待しちゃう漏れ。
それだけに決定打がないっているのかな。

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

まぁ、メモリ管理やらローダ作成やらと、本気で使うならちょっと手を入れないと駄目だね。
保守
保守だってば
最近はIoが流行なの?
http://www.iolanguage.com/

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

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



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

個人的にはGC性能の比較がほしい。比較基準が難しそうだけど。
勝手に相互リンク!
Io と Lua
ttp://d.hatena.ne.jp/shinichiro_h/20031208#p3
149 :03/12/08 12:38
>>148の中の人
gj
たしかに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
リアルタイム向けにはこっちの方がいいかも。
ためしに Io 組み込んでみたんだけど
なんかメモリリークしない?

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

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

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

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

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

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

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

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

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

better than Luaとかどうとか
> 皆さんの絶大なるご期待に応えて「検索」しやすいよう、今後
> 2ちゃんにおける余輩の全ての発言に「ヒーロー勇気」の
> 名前を冠することに致します。
以前こんな事言ってた奴が居たよな。思いっきり名無しさんに戻ってるが。
>>181
おお〜これ良いね〜!
これで、構造体がつかえれば・・・
LUAはデータ構造が柔軟につくれるとこが、やっぱ
いいんだな・・・あらためて思いました。
機械翻訳でごめんね
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月(しかし、これは見当違いの推測です)でありえます。
-- ロバート
長かったね。
GCの実装はやっぱり大変だったということなんだろうか?
オリジナルメモリアロケータをもてるのが、よさそう・・・。
現状でもAPIとしては整備されていないけど一応分離されてるっぽいけどね。
前スレでなんかやってた人が居た。
188 :04/01/14 10:13
Calua
http://calua.sourceforge.net/

Lua wrapper っぽ
InlineCですか?
1901:04/01/14 18:01
そういえばCintってどうよ?
191デフォルトの名無しさん:04/01/15 13:55
luaで、%ってないの?

a = 3 % 2
ttp://www.angelcode.com/
のAngelScript
C言語ライクですな。
構造体(Obj)はCの方から作成
>>191
math.modを使えってことじゃない?
>>192
strongly typedという特徴を見逃してはいけないな!
>>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)
でできました。
CaLuaをcygwinで使いたいんですが、どうしたらいいのか分かりません。
マイナー言語を使う資格=自分で問題を解決できる事。
CaLuaってVC用なのか。
ソースまとめてコンパイルするだけじゃだめなの?>>196
そのままじゃだめだね>CaLua
__asmとか使ってる所をGCC用に書き換えないと。
ttp://www.lua.org/ftp/lua-5.0.1.tar.gz
しってた?
俺はさっき知った・・・。
5.0.1のパッチは去年の10月くらいに出てるね。
コルーチンとかスタックとかのバグフィックスが行われたらしい。
んで、5.1はまだ半年先らしい。
>>200
それって5.0に↓このパッチを当てたものと同じですか?
ttp://www.uri.sakura.ne.jp/~cosmic/yuno/lab/lua5_bugs_ja.html
多分そうじゃない?

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
204202:04/01/24 21:09
>>203
ありがとうございます。
同じものと確認しました。
ほすゅ
win版5.0.1バイナリは落ちてねーのかyo?
207デフォルトの名無しさん:04/01/30 19:40
LuaのIDEが出たようです。
http://www.gorlice.net.pl/~rybak/luaide/
誰かもう使っておられますか?
wxLuaのおまけにもIDEついてきて種。
というか、自分のアプリに組み込んだLuaのデバッグとかできないかなぁ?
自分のプログラムをDLLに汁
>>207
これの使い方がわからんのですが
IDE上で実行とかブレークポイント貼るのとかどうやんの?
メニュー覗いても該当する項目ないし
F5押しても何も起きないし

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


212210:04/01/31 19:05
>>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
213209:04/01/31 21:41
>>211
ためしたよ。プロジェクトを新規作成しないと、
うんともすんともいわんみたい。
プロジェクト上でプログラムをかくべし。

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

wxLuaは、実行したプロセスが落ちないようになってしまったけど、
これはなんとかなりそう。
上位値とクロージャが分かりません。
あとLuaからCの変数にアクセスする方法も分かりません。
215デフォルトの名無しさん:04/02/03 14:56
>213
お手数おかけしました。
IDEのWEBでは一応5.0.1対応とは言っておりますが
その辺りは、結構いい加減なんでしょうね。
(管理人のオッチャンからアクセス規制をくらって
おりまして、ご返事が遅れました。
悪しからず。)
>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())
結果は省略
>>216
すごい
や・・やるなぁ・・・。
>>216
ありがとう。
よくわかりました。
>>216
その辺りマニュアル読んだだけでは理解できなかったので勉強になりました。

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

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

コンパイル済みのじゃなくて、生の.luaファイルが入ってるのには
弄ってくれといわんばかりだ。
221 :04/02/07 00:18
クロ−ジャみて驚いたけど、使い道がわからん_| ̄|○
ジェネレータに使えるといわれても、LuaだとOOっぽく記述できるし・・・
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"))
223 :04/02/07 14:48
あー、それ(無名関数からグローバルな変数へのアクセス)が出来るのは当たり前かと思ってた
なるほど、確かに上位値とクロージャの効用だ

dクス
関数型言語ごっこ。
カリー化関数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
変数に数値を16進数で代入するにはどうしたらいいですか?
C風に
foo=0x2B
こんなかんじで書きたいんですけど。
マニュアル嫁
サンプル嫁
マニュアルのどこ?
サンプルはどこ?
foo = tonumber('2B', 16)
これ?
luaのソース嫁
ファイル名は?
>>216 と >>224 のせいで、
Lua好きにナターヨ
ほすゅ
232デフォルトの名無しさん:04/02/14 11:52
Luaのスレッドって、なんかAPI呼ばなくても、裏で勝手に走るのかな?
OSレベルのスレッドなのかな?って話なんだけど
>>232
CoRoutineのこと?
それとも、スレッドが利用できる拡張でもあるんだっけ?
>>232
lua_newthreadの話だよね?
lua_resumeはコルーチンが中断されたり実行終了したら、
呼び出しから戻るってかいてあるからOSレベルのスレッドは
自前で実装してその中で呼ぶようにしてってことじゃない?
>>234
そそ
コルーチンは、終わるかyield呼ぶまでだと書いてあるんだけど、
newthreadの方は、特に書いてないんだよね
236デフォルトの名無しさん:04/02/14 18:32
Luaもりあがってるかい?
237234:04/02/14 18:42
>>235
そりゃ書いてないだろ。
>>234
Luaのコルーチン=lua_newthread+lua_resume(+lua_yield)だよ。
lua_newthreadは新しいコルーチンを生成する関数。
lua_newthread()とlua_resume()を使ったサンプルは前スレにある。
threadって付いてるけどOSのスレッドとは一切全く関係ない。
Programming in Lua をかって読んだ人はいますか?
>>237
結局、スクリプトを実行(dofileとか)したら、
終わるまで帰ってこないって解釈で良いのかな?

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

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

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

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

 8 0 0 は オレ が 獲 る !
>>246
この例でcが取れてbが取れないって
ネタとしか思えん。
ここはlua5.1がでるまでネタスレになりました。
>>246
cのテーブルを巡回するほうが難しいだろ!
>>246
ソースみせて。
たぶん一発で回答がでるよ。
253246:04/03/01 07:26
こうです。どのへんが悪いのでしょう?
なお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);
う。なんでだろ。
うまくいきそうなもんだけど・・・。
だからネタだって
こんなマイナー言語でわざわざネタやる意味ってなんだろ?
そんな混乱させたいのか
257246:04/03/02 02:37
ごめんなさい。テストルーチンがバグってました。

 printf( "[%]←なんで結果が返らないんだよ!糞が!!", buf);
ま、よかったよかった
いろんなとこで、LUAみるようになったな。
LUAをまるまる組み込んでるのに、
”LUA”っていう文字がでてこなかったら、
なに隠しんてんだよって激しく思う。
なーなーMacroMediaのアクションスクリプトと
よくにてない?
261 :04/03/08 22:15
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

うほっ
>>261
ほーこの辺の言語はもうどれも似たりよったりなのかねぇ〜
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
264デフォルトの名無しさん:04/03/10 12:12
wxLua 2.3 あげ。 そして直リン
http://www.luascript.thersgb.net/
wxWindow部分がDLLになってはずれた!
いますぐ、もまえのLuaの拡張もDLLに汁。
ステップ実行できるよ。
LUAはCとの親和性が目的の1つなのに、
Cライクになりきってないとこがなぁ・・。
コメントが--って他の言語にあるの?
>>265
Ada,Eiffel
>>265
SQL
結構あるのね
>>265
maxScript
>>270
さんくす!
ほすゅ
日本語化パッチ
http://www.water.sannet.ne.jp/sowwa/
274デフォルトの名無しさん:04/03/16 23:43
その日本語化パッチ、今のバージョンじゃだめっぽくない?
前スレで出てた方法なら平気そうだけど(変更箇所が2箇所に増えてるけど
275 :04/03/18 08:54
5.0.2でってことか、そいやまだ試してないや.
276デフォルトの名無しさん:04/03/23 12:57
質問です。
ttp://nebula.student.utwente.nl/archive.php
のソース「Sphere」の中に、

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

というのがあるんですが、このライブラリって
どうやって入手するんでしょう?
ソースには入っていないし、公式サイトにもないような
のですが…
自分でコンパイルしたんじゃないの?
リリース版とデバッグ版で作成されるライブラリのファイル名変えてるんでしょ。
278276:04/03/24 01:16
自己解決しますた。
LuaBinaries5.0.2の中の、lualibd.lib
と同一のものだったようです。
ようやく実行できた…
279差分:04/03/29 11:43
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 の変更については俺に評価する知識はないんだけど、実際どう?
280差分:04/03/29 11:44
280 名前:デフォルトの名無しさん[sage] 投稿日:04/03/25(木) 17:53
どういう実装かまだ読んでないけど、まあincrementalにしたんだから、
GCで長時間止まることはなくなったんだろう。
>>280
さんくす
ちなみに全体の実行速度は(GC変更のせいで?)遅くなってるみたいだ。
>>282
工エエェェ(´д`)ェェエエ工
全体的におそいの?
トータルでいくと同じなのかなぁ・・・。
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++から呼ぼうとしてるのが問題のような気がします。
回避するのはどうしたらいいのでしょうか。
どなたかご教授くださるとうれしいです。よろしくおねがいします
lua_register(L,(struct lua_State *)"SetMap",SetMap);
   ↓
lua_register(L,(struct lua_State *)SetMap,"SetMap");
>>284

extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
};
lua_register(L,"SetMap",SetMap);
でいいのでは?

(struct lua_State *)"SetMap"
がエラーの原因っぽいが・・・
284です。
色々ご指導ありがとうございます。
>>287さんのいうとおり、その部分はエラーでした。
2番目の引数が〜なんてメッセージがでてるのでそこがおかしいのとずっと思ってまして、
色々試してる途中のコピペをしてしまいました。
Lua.hを追ってみたらどうやら3番目の関数で引っかかっている様子です。
これがメンバ関数では駄目みたいです。
とりあえずSetMapをクラスからはずしてみようとおもいます。
ありがとうございました。
>>288
ん?まてまて、クラス?
C++のclassか?
static 関数にしてるだろうな?
290デフォルトの名無しさん:04/05/01 21:00
Luaいいね。
291デフォルトの名無しさん:04/05/04 14:24
組み込みには、最高ですな。
組み込む機会があればな。
293デフォルトの名無しさん:04/05/10 03:58
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) {
}

294デフォルトの名無しさん:04/05/11 09:25
保守
>>293 すまん、おれもいいアイデアおもいつかん
295293:04/05/26 03:07
いろいろやってみたけど、
_| ̄|○でした・・
"Lua for Delphi"

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

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

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

mpl使えれば上の(implじゃないほう)コードは自動生成できそうなんだけど。
mpl正直意味わからん_| ̄|○
モチベーション続かないので晒し上げます。Luaのメモを書き溜めたもの。
http://nnr.s45.xrea.com/wiki/pukiwiki.cgi?Lua%A5%E1%A5%E2
コードは全部動作確認してません…ゴメンナサイ
そういえばmekakitとluaの組み合わせってどうよ?
301 :04/06/02 19:17
>>299
いやいやいや!!!
ナイスナイス!!!ありがとう!!まじで!!!
感動した!
>>301

metakitだった。すまん
304デフォルトの名無しさん:04/06/03 13:30
Luaって、何がいいんだ?
サイズの小ささが利点
小さいか?
小さい、速い、ってのは散々言われている利点だが。

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

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

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

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

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

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

自分でコンパイルせにゃならんのか…
プログラミングを独習するには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ね。
N88-Basic、Asm(mc68000)、X-Basic(外部関数拡長)、C、Delphi、C++、YaneGameScript
320デフォルトの名無しさん:04/06/08 23:30
>>319
>YaneGameScript
ワラタ。YGSくわ。
並列処理なんて個人レベルで必要かなあ。
とりあえずC++とSchemeやっとけばいいと思うよ。
322デフォルトの名無しさん:04/06/09 07:37
C++/Boostで、たいがいの事はできるんじゃね?
無名関数も使えるぞ。
>>318
Scheme1言語だけで、関数抽象と構文抽象と coroutine の3つはOKでつね。
ほほう。よし、ちょっと今からSchemeスレ行ってくる。

    -= ∧_∧
  -=≡ ( ´∀`)
    -=( つ┯つ
   -=≡/  / //
  -=≡(__)/ )
   -= (◎) ̄))
((lambda(a)(a a))(lambda(a)(a a)))
が永久に動く世界だからなあ。
C++と合わせて2、3年ぐらいでいいんじゃね。
この言語おもしろいな。
16進データを書くときどうすると、いいのかな・・・
Luaプログラムファイル内にいれたいんですが・・・。
328デフォルトの名無しさん:04/06/12 19:10
>>327
自分で拡張しる。
現在プログラム板には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/
330327:04/06/12 21:00
16進でなければ、
a= "\010";
とやって、バイナリデータをString内にいれることができました

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

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

速度性能は、独自形式にコンパイルができるだけLuaの方が上……なのか?
……あんまり変わらないかも。
Lua大好き。
あのデータ記述のお手軽さはなんだ。
thx.
とりあえず、組み込みにはluabindのほうが楽そうですね。
保守
保守
ほしゅほしゅしゅぽしゅぽー
http://i-saint.abz.jp/2004.html#20040219
入門向けに、ちろっとね
ほしぅ
>>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 ならコルーチン終了してる
ってコーディングしてるけど今までのところ問題ない
349 :04/08/26 08:14
おお、ありがたいねえ
スタックトップをしらべるのか?
350348:04/08/26 17:19
いつも引数付きで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;
}
351348:04/08/26 17:26
-- test.lua --
coroutine.yield("abc")
coroutine.yield()
coroutine.yield("def", "ghi")

ちなみにlua_open()したStateも
lua_newthread()で派生したコルーチンも
等質なStateなんで,
>>350みたくlua_newthread()する必要ないんだけど既出?
いや・・新出
353デフォルトの名無しさん:04/09/04 21:47
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.
354デフォルトの名無しさん:04/09/04 21:57
なんかAIXでコンパイルしたらio.lines()でおかしな動作になった。
複数の大きいファイルをio.linesで読もうとすると1つ目のは全部読んでくれるのに
2つ目の以降のは数十行程度で読むのをやめてしまう。
同じコードがMingWだと動作するのでAIX上だけかなあ。
355デフォルトの名無しさん:04/09/13 11:13:09
Smallの使い方とか紹介してるサイトってある?
356デフォルトの名無しさん:04/09/13 19:43:03
ほんとネーミングは考えて欲しいよね
SmallとかIoとか検索しにくい。
357デフォルトの名無しさん:04/09/22 15:36:20
5.1 WORK2 でたよーage
358デフォルトの名無しさん:04/09/25 18:09:17
なんか5.1ってlua_dofileなんだけど。どうやって走らすの?
359デフォルトの名無しさん:04/09/25 18:10:05
ないんだけどでそた
360デフォルトの名無しさん:04/09/26 00:50:57
luaL_loadfileでいいじゃん
361デフォルトの名無しさん:04/10/20 23:54:16
保守
362デフォルトの名無しさん:04/10/26 11:51:18
ほしゅ
363デフォルトの名無しさん:04/11/04 20:45:43
http://lua-users.org/lists/lua-l/2004-10/msg00217.html
これが使えるなら、yield,resumeがどこでも使えるようになるのかな。
364デフォルトの名無しさん:04/11/04 20:59:18
>>363
説明してくれると助かるのですが・・・
すいません・・
365デフォルトの名無しさん:04/11/13 21:39:32
hoshu
366デフォルトの名無しさん:04/11/25 15:00:34
ho
367デフォルトの名無しさん:04/11/30 16:25:24
スクリプトの拡張子はふつー ".lua" ですかね?
バイトコンパイルしたら ".luac" ?
368デフォルトの名無しさん:04/11/30 17:38:11
.lub .lo .lua まだ気分でかえてるよ・・orz
369デフォルトの名無しさん:04/12/05 12:54:23
hoshu
370デフォルトの名無しさん:04/12/08 18:02:45
06 Dec 2004
Lua 5.1 (work3) released.
371デフォルトの名無しさん:04/12/17 15:48:54
LuaでC++やらのクラスっぽいことやっている人いるー?
372デフォルトの名無しさん:04/12/19 00:47:14
ノシ
373デフォルトの名無しさん:04/12/20 01:59:12
>>372
おお〜!
luabindでやろうとしてたんですが、
もし他にいい方法があれば、情報をおしえていただきたいのですが
m(_ _)m
374デフォルトの名無しさん:04/12/23 18:03:53
luabind Beta7 RC4 を使っています。
そろそろ boost-1.32.0 対応版が出るんじゃないでしょうか。
375デフォルトの名無しさん:04/12/23 19:02:39
CaLuaの構造体をLuaに渡したりって、Luabindで出来る?
ベータになってるから、使うのはちょっと不安・・・。
376デフォルトの名無しさん:05/01/01 12:21:53
30 Dec 2004
Lua 5.1 (work4) released.
377デフォルトの名無しさん:05/01/21 07:59:38
ほしゅ
378デフォルトの名無しさん:05/01/21 22:25:11
質問だけが飛び交うスレだな。
379デフォルトの名無しさん:05/01/21 22:30:44
         _,..............._,.......
      ,ノ⌒::::::::::::::::::::::::::::::::::::⌒ヽ_
     _ノ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヾ、
    (::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::)
   _ノ:::::::::::::::;ヘ::::::::::ノ⌒ヽ:::::::::::::::::::::::::::::::::)
  (::::::::::::::::::/   ̄ , ‐-、 |::::::::::::::::::::::::::::::::)     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (:::::::::::::/ヽj _/ -‐-、 |::::::::::::::::::::::::::::::::)    | ハッハッハ、君たち、
   ):::::::::ヾllli_、_,;iiiillllllllli <::::::;へ:::::::::::::::::(     | 
   (::::::::::::/`i´ ,└=゚'┘  |::::| 6 |:::::::::::::::::::}  < 相手が世界チャンピオンだからといって遠慮することは無い。
    `〜、 ゝ| _コ、_、 /|::::| ソ/::::::::::;〜"    | 
      ヾ|||ll|||||||||||l〉|  三ー'〜〜"         | 胸を借りるつもりでドンと来い。
         |||:二三|||| l  ,三   ヽ、          \______________
         |l  ⌒ ||| ://     ヽ=、-、_
       |l、:( : : ||/ /       ヽ, |    ̄\
      /   ̄   /        ノ /       \
380デフォルトの名無しさん:05/01/22 05:11:57
ウホッ
381デフォルトの名無しさん:05/01/22 05:49:13
穴を借りるつもり
382だなだな:05/01/31 23:35:15
ニヤニヤ
383デフォルトの名無しさん:05/02/09 13:52:42
ttp://www.luascript.thersgb.net/
wxLua 2.6

ブレークポイントに対応した唯一の開発環境じゃないかと
384デフォルトの名無しさん:05/02/24 12:57:34
385 :05/02/25 23:47:13
>>384
うおぅ
以前、検索して見つけてパッチもらってきました。
その説はお世話になりました。
386デフォルトの名無しさん:05/03/10 10:07:59
387デフォルトの名無しさん:05/03/10 12:51:42
つーか数ヶ月前も5.1リリースしてた気がするけど、
まだ5.1いぢってるのね。
何か5.1に思い入れでも?
388デフォルトの名無しさん:05/03/10 19:33:21
あれだ、GCの変更が結構たいへんなんだと思う
がんがってるのが嬉しい
389デフォルトの名無しさん:05/03/14 00:40:35
GCの変更ごときでそんな時間かかるもんかねえ。
おれなら1週間もあれば作っちゃうよ。
390デフォルトの名無しさん:2005/03/26(土) 00:40:00
>>389
ぜひ作ってくれ
391デフォルトの名無しさん:2005/03/28(月) 11:57:01
>>389
もうかれこれ2週間経っているわけだが。
392デフォルトの名無しさん:2005/04/04(月) 08:28:14
 俺はCaluaを使ってるんだがC++で登録した関数でcoroutine制御できた
奴いる??
393デフォルトの名無しさん:2005/04/15(金) 15:48:50
luaでノベルタイプのゲームを作るとき行数ジャンプができないと
ちょっとキツイ気がする。

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

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

剛体シミュレータ RigidChips(part=3)
http://pc8.2ch.net/test/read.cgi/tech/1112892809/
397デフォルトの名無しさん:2005/04/21(木) 21:38:47
コンパクトにまとまってて便利
398デフォルトの名無しさん:2005/04/21(木) 22:32:16
逆にLua以外でゲームに組み込まれたものって何があるのか知りたい
399デフォルトの名無しさん:2005/04/21(木) 22:34:38
自分で調べれば?
400デフォルトの名無しさん:2005/04/22(金) 20:01:58
http://d.hatena.ne.jp/w_o/20050419
これ結構良さそう。
Cに近い構文で、GCやメモリ再確保無し。ランタイムサイズが5KB以下。
現時点では、文字列や配列がサポートされていないから
Luaの代替にはならないけれどシューティングゲームの敵の動き制御程度なら十分使えそう。
401デフォルトの名無しさん:2005/04/22(金) 20:18:59
>>399
RPGツクールXPのRubyしかないね
ゲーム用組み込み言語じゃLuaが圧倒的なシェアだ
402デフォルトの名無しさん:2005/04/22(金) 20:19:24
普通のCじゃn
403デフォルトの名無しさん:2005/04/22(金) 20:20:01
>>401
あれあれ、悪名高いHSPをお忘れですか?
404デフォルトの名無しさん:2005/04/22(金) 20:31:04
>>403
あれをどうやって組み込むんだ?ちょっと気になるぞ
405デフォルトの名無しさん:2005/04/23(土) 08:12:40
前スレって、もう読めないの?
406デフォルトの名無しさん:2005/04/23(土) 14:56:36
407405:2005/04/23(土) 15:21:36
>>406
ありがとう
408デフォルトの名無しさん:2005/04/24(日) 18:15:21
Luaのインストール方法を解説してるサイトないですか?
409デフォルトの名無しさん:2005/04/24(日) 18:45:27
プロジェクトにソースファイルをぶっこむだけです。
410デフォルトの名無しさん: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)
411デフォルトの名無しさん:2005/05/01(日) 13:45:34
Luaスクリプトが終了したことを知る方法ってありますか?
412デフォルトの名無しさん:2005/05/01(日) 14:53:59
>>393
同じことを試してるけど、これで何とかならないかな。

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

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

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

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

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

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

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

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

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

まったく、リアルではもちろん、2chでも足を引っ張るしか能が無いんだなぁ。
435デフォルトの名無しさん:2005/05/04(水) 22:17:06
>>434
大好きなHSPが貶されて頭にきちゃった?w
436デフォルトの名無しさん:2005/05/04(水) 22:17:54
>>419
418を読んで同じ感想を持ったよ。
書き込もうとは思わなかったが。
437デフォルトの名無しさん:2005/05/04(水) 22:20:47
でも書き込んじゃったのか。
438デフォルトの名無しさん:2005/05/04(水) 22:37:21
いやー、あまりにも書き込みが多くて釣られてしまって・・・。
っていうのは、言い訳でしかないか。
439デフォルトの名無しさん:2005/05/04(水) 22:48:01
>>436
とんだ早漏野郎だよお前は。
お前にはがっかりだよ。
440デフォルトの名無しさん:2005/05/05(木) 12:03:02
リファレンス以外に、まず初心者が読むとよいページ
ってありませんか?英文でかまわないんで(日本語ありそうにないので)
441デフォルトの名無しさん:2005/05/05(木) 12:21:10
>>440
こんなもん使えればそれでOKな話だろ。
これ使ってどこまでどんなことがしたいのかわからないとリンクを貼る方も困る希ガス。
442 :2005/05/05(木) 18:40:24
使ってみたけど、スタックいじらにゃあかんのって使いにくくてしかたないよ。
443デフォルトの名無しさん:2005/05/07(土) 02:05:25
そんなあなたにluabind
444デフォルトの名無しさん:2005/05/18(水) 14:11:40
luaをjavascriptのような感じにしたいと思って修正しているんだけど
for文の修正の仕方が分からないッス。
lparser.cのfornum()を修正すれば良いのは分かっているんだけど、、、
やっぱり
for (i = 0; i < 10; i= i+1) {
...
}
のような記述にするのって難しい?
だれか教えて!
ちなみに、do-while文の追加と//コメントと/**/の複数行コメントの追加は
簡単に出来たデス。
445デフォルトの名無しさん:2005/05/18(水) 19:49:19
>>444
出来上がったら公開してね
446デフォルトの名無しさん:2005/05/18(水) 22:38:21
>>445
はぁ?何言ってんの?
乞食は消えろカス
447444:2005/05/18(水) 23:31:22
>>445
公開は全然問題なイッス。

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

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

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

で、for文の追加出来ました。
お騒がせしました。
455デフォルトの名無しさん:2005/05/23(月) 17:55:29
これってVC++6で使えるようにするにはどうすればいいですか。
ただヘッダをインクルードすればよい?
なんかexeとか落ちてたんですけど、これってどういうことでしょう。
どういう仕組みで動くのかよくわかんないです。
とりあえずVC++で使えるようにするまでの設定と、
どういう仕組みで動くのか、どなたか教えてください。
456デフォルトの名無しさん:2005/05/23(月) 20:07:16
ヘッダファイルをインクルードして、ライブラリファイルをリンクすればいいと思うよ。
457デフォルトの名無しさん :2005/05/23(月) 21:02:55
そうですか。ありがとうございました。
ひろったluac.exeとかはコンパイラですかね。
458デフォルトの名無しさん :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( )
459デフォルトの名無しさん:2005/05/26(木) 20:32:08
>>458
なにこの幼稚園レベルの問題
460デフォルトの名無しさん: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" は未解決です

みたいなエラーが沢山出ます。どうしたらよいでしょうか?
461デフォルトの名無しさん:2005/05/27(金) 18:48:04
あきらめる
462デフォルトの名無しさん:2005/05/27(金) 18:56:12
そこをなんとかお願いします。
463デフォルトの名無しさん:2005/05/27(金) 18:58:49
そのlua_tonumberを参照してる箇所を削れ
464デフォルトの名無しさん:2005/05/27(金) 19:05:20
それよりlua使いにくいよ・・
465460:2005/05/27(金) 19:15:48
>>463
そうするとLuaの関数全部消えちゃうのですか…
466デフォルトの名無しさん:2005/05/27(金) 19:17:03
じゃあ全部消せよ
467460:2005/05/27(金) 19:18:13
消したらプログラムにならないと思うのですが。
468デフォルトの名無しさん:2005/05/27(金) 19:35:21
■[2004/3/1]
 いかに自分がゴミであるかを思い知る。
469460:2005/05/27(金) 20:53:56
[プロジェクト]→[設定]からライブラリをリンクしたら
うまくいきました。
[オプション]の所に設定するのと何が違うんだろう。。
470デフォルトの名無しさん: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
471デフォルトの名無しさん:2005/05/27(金) 22:06:48
まるでvector-lispだな
472デフォルトの名無しさん:2005/05/28(土) 02:12:01
楽できると思ってlua導入してみたけど、他と比べてプログラマの負担が大きくないかコレ
473デフォルトの名無しさん:2005/05/28(土) 02:14:23
>472
他のって例えば何?
474デフォルトの名無しさん:2005/05/28(土) 11:24:31
PythonとかRubyでLuaと同じような事ってできないのですか?
475デフォルトの名無しさん:2005/05/28(土) 13:58:44
できないよ^^
476444:2005/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を見てね。

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

とりあえずもらったよ。
479デフォルトの名無しさん:2005/05/30(月) 22:13:30
>>444
おい!!!!すげええええな!!!!!!!
do end を { } にしたとこのほうが、インパクトでけぇ!
480デフォルトの名無しさん:2005/05/30(月) 23:03:58
>>444
乙です。
これから活用させていただきます。
481444:2005/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

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

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

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

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

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

498デフォルトの名無しさん:2005/06/02(木) 20:28:06
開発者がそんなクズじゃ、この言語の未来ないよ
499444:2005/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
500444:2005/06/02(木) 22:24:48
で、本家に取り込んでもらうのは無理でしょう。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

538 :デフォルトの名無しさん :2005/08/09(火) 01:31:02
1 Luaそのもののサイズは50k以下。
546デフォルトの名無しさん:2005/08/11(木) 22:59:46
おまえが調べてここに結果を書き残しておけば後の人の役に立つ
547デフォルトの名無しさん:2005/08/12(金) 12:48:52
お し え て !!!
548538:2005/08/13(土) 03:27:08
>>545
オレはWin環境でC標準ライブラリ等をDLLでリンクしているため
Lua部分は50k程度になってる。Linuxでどうなるかは知らない。
549デフォルトの名無しさん:2005/08/13(土) 06:23:23
>>548
すげえ。ダイナミックリンクしといてファイルサイズが以下略
550デフォルトの名無しさん:2005/08/13(土) 10:36:19
それがWindowsプログラマクォリティ
551538:2005/08/13(土) 11:08:40
LuaそのもののサイズはLinuxでもマップファイル見ればそんなもんだろ。
標準ライブラリのサイズなんかしらん。気に入らないなら自力で作れ。
552デフォルトの名無しさん:2005/08/24(水) 17:35:51
多分一度も出て無さそうなので貼ってみる
http://www.luaplayer.org/
PSPでゲームとかLuaで書ける みたいな

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

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

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

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

11歳つーても人間と比べるなよw
犬猫なら11歳はババァだぜ。

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

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

actor = {} で、宣言することまでは分かった
588デフォルトの名無しさん: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サロンに何個か・・・
589デフォルトの名無しさん:2005/10/30(日) 10:21:55
ここでRagnarokって単語を見るとは思わなかった
けど、ホムの為に必要なんだよね確か
590デフォルトの名無しさん:2005/10/30(日) 10:23:18
>>589
そうそう

homuのAI見てるとBOTのように見えてくる orz
591デフォルトの名無しさん: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 を入れる
592デフォルトの名無しさん: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パケ)
593デフォルトの名無しさん: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

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

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

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

結局ケースバイケースなんかね
ゲームの初期化に使うだけならdeep copyでないcloneで十分なんじゃ
601600:2005/11/04(金) 15:38:04
>>599 のミスだった連騰スマヌ
602デフォルトの名無しさん: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
603デフォルトの名無しさん: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
604593:2005/11/06(日) 00:32:25
>>598さん >>599さん >>600さん >>603さん

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

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

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

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

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

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

[Lua]Lightweight Language統合[Io]

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

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

膨大なPerlの資産の焼き直しをしようとしたけど
後継のPerl6に絶望した人におすすめ?
619デフォルトの名無しさん: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)

に分けたほうがいいと思うけど
620デフォルトの名無しさん:2005/11/28(月) 12:21:55
621611:2005/11/28(月) 20:03:36
>>616
ああごめん。確信はないや。
一次配布元がわからなくて、Debianのパッケージがngsだったので、
てっきりnjs→ngsに変わったのだと思っていた。

>> 618
まんまperlに見えるね。
しかし、なんでこう、検索しづらい名称を付けるのかなあ。
622デフォルトの名無しさん:2005/12/01(木) 16:57:13
Luaスレでいいよ
623デフォルトの名無しさん:2005/12/09(金) 20:49:34
Lua5.1出ないなー。
betaの次はrcなのか?それともgamma?
本当に年内に出るのか不安になってきた。
624デフォルトの名無しさん: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
625デフォルトの名無しさん:2005/12/15(木) 23:41:28
Luaの処理を中断する関数ってないのかな?
os.exitだとプロセス落ちちゃうけど、そうじゃなくてC側に復帰したい。
626デフォルトの名無しさん:2005/12/16(金) 08:23:48
suspend だか、yield じゃね?
627デフォルトの名無しさん:2005/12/16(金) 18:12:11
pcallで呼んでるならerrorで戻るよ。
628デフォルトの名無しさん:2005/12/17(土) 00:24:08
>>626 >>627
マ板がこんなに親切な板だとは思いませんでした。
これから調べてみます。
本当にありがとうございました。
629デフォルトの名無しさん:2005/12/24(土) 03:02:45
subaraC
630デフォルトの名無しさん:2005/12/24(土) 16:07:59
>>628
ム板
631デフォルトの名無しさん:2005/12/27(火) 13:45:30
保守
632デフォルトの名無しさん:2006/01/05(木) 12:29:45
hoshu
633デフォルトの名無しさん:2006/01/08(日) 12:58:01
>>624
しばらくここ見てなかったので超遅レスだけど・・・

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

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

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

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

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

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

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

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

s<- ["a","b","c","d","e"];
660デフォルトの名無しさん:2006/03/03(金) 19:51:13
>>659
結構よさげだね。
Luaをオブジェクト指向にした感じだな。
661デフォルトの名無しさん:2006/03/03(金) 21:58:32
実績はどんなもんざんしょ
662 :2006/03/04(土) 01:34:25
>>659
なかなかいいねえ
663デフォルトの名無しさん:2006/03/04(土) 02:43:25
Game用に考えられているみたいだけどGameの世界でもLuaが浸透してきてる
からなぁ。スクリプト組む人達が覚え直しだと組み込みは難しい。
664デフォルトの名無しさん:2006/03/04(土) 04:09:18
>>659
"mixed approach ref counting/GC" って書いてあるから、循環参照とかの
部分は GC で解決してるんじゃないかな。
665デフォルトの名無しさん: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がありました
666 :2006/03/05(日) 00:40:14
>>659
いいねえこれ。
配列作れて、そん中にテーブル作れるのかあ。
俺の欲しかった機能だ。

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

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

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

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

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

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

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

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

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

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


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

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

>>719

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

>>721

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

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

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

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

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

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

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

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

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

closureがあるとあんなことやこんなことができてウハウハだ
747デフォルトの名無しさん: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には参照でも十分っぽい。
YARVは将来的にrubyに統合されると思うが
749デフォルトの名無しさん:2006/05/02(火) 19:00:21
つまらないレスだなぁ。
YARVという名前が過去のものとなるまでは、Yet Anotherに過ぎないんだよ。
それを複数の実装と言わずになんと言う。
750フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw :2006/05/02(火) 19:47:32
YARVは第二の実装というよりもbranchを作ったようなものだと思んだが
751デフォルトの名無しさん:2006/05/02(火) 20:53:39
コテつけてしゃべるほどいいこといってない
752デフォルトの名無しさん:2006/05/02(火) 21:14:17
>フンバリャーウンコ・ヨーデル
このコテハンは面白いと思って付けたの?
753フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw :2006/05/02(火) 21:19:44
いや。ヒョードルの試合のことを考えながら糞してたときに思い付いた。
754フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw :2006/05/02(火) 21:21:14
>>751
わしはまだ未熟者なので精進します。
名無でクソレスするよりマシだと思ってくれたまえ。
755デフォルトの名無しさん:2006/05/02(火) 21:29:31
>>749
yacc知らんのか
756デフォルトの名無しさん:2006/05/02(火) 21:31:52
うんこさん、あんまりageないでね。
757デフォルトの名無しさん:2006/05/03(水) 01:21:56
したり顔のコテハンがでてきたら腹が立つのもわかるが、
こんだけ大きな顔をしているんだから、きっと Wiki のほうに
大きなフィードバックをしてくれることだろう。

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

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

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

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

require等を消して、呼び出し元のスクリプトに全部記述すると
きちんと動作するので呼び出そうとしてる関数は問題ないと思うのですが・・。
これが原因じゃね?と思いつくものがあればご教授ください。
783デフォルトの名無しさん: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
784フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw :2006/05/03(水) 19:01:26
tolua++
785782:2006/05/03(水) 20:15:27
>>783
ご教授にはそんな意味があったんですね。
失礼しました。

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

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

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

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

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

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

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

あるサイトを参考にやってみたんですが、
どうも3回目のlua_next(上の例でいくと最初の1を読み込んだ後)で
ホストプログラムごといきなり終了してしまうのです。
自分の環境のせいですかね。
821デフォルトの名無しさん: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;
}
822820:2006/06/09(金) 11:45:09
ありがとうございます。
ただ821さんのを使用しても、やはりプログラムが終了してしまうので
私の環境が良くないみたいですね。

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

とりあえずフィールド名をつけて動かしてみます。
823820:2006/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);
824デフォルトの名無しさん: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");
825820:2006/06/10(土) 14:46:13
おおお、できました。
ありがとうございます!
826デフォルトの名無しさん:2006/06/24(土) 22:03:45
5.1.1 保守あげ
827デフォルトの名無しさん:2006/06/27(火) 07:04:53
Lua5.1日本語版のインタプリタを作れば200KB近くになり
単体じゃろくなこと出来ないのでLuaGLを使おうとしたら5.0用だったり
まぁ5.1からでも使えなくはないだろうとコンパイルしようとしたらどうしてもできず。

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

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

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

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

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

ただ、大量生成&破棄の繰返しの場合、ハッシュテーブルの再構成や再配置が
頻発すると思うので、そのコストが効いてくるんじゃないかと推測するがどう
か。
851デフォルトの名無しさん:2006/09/01(金) 13:23:27
>>850
Rehashする必要が増えてくるとハッシュテーブルのサイズを大きくとったりするようなタイプなの?
もしそうなら初期化時のような大量に文字列生成の可能性のある場所であらかじめテーブルサイズ拡大すると実行時のコスト下がるよね?
(ソースを読み下してないからそういうインターフェース無かったらごめん)
852848:2006/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]が同じ扱いってのに問題があるのではと
思うのです。

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

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

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

でもsquaddというluabind相当のライブラリはあるが開発が1年以上とまってたり、
SqPlusとかいうライブラリは使いにくい(これはcoroutine関連のことが頭に入ってないのか?)
エクスポートをluabindでやりまくってるのでその時点でsquirrelは無いかなと。
859デフォルトの名無しさん:2006/09/18(月) 02:18:28
周辺ライブラリとは、つまり簡単に使うためのC++のラッパーってことでOK?
860デフォルトの名無しさん:2006/09/18(月) 02:21:17
ごめん。そういうことです。
別にsquirrelでも同じことやろうと思えばできるんだろうけど、書くのめんどくさいし。
あるものは使う。
861デフォルトの名無しさん:2006/09/19(火) 00:30:45
Luaって毎回同じスクリプト実行するのに毎回コンパイルするんですかね。
一度コンパイルしてそれ流用とか、そういう小技ある?
862デフォルトの名無しさん:2006/09/19(火) 00:34:36
luac
863デフォルトの名無しさん:2006/09/19(火) 07:41:42
>>862 thx
864デフォルトの名無しさん:2006/09/21(木) 13:56:36
プログラミング言語 Lua
ttp://makimo.to/2ch/pc5_tech/1034/1034182349.html
865質問: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;
}
なぜエラーになるのか分かりません。助けてください><
866デフォルトの名無しさん:2006/09/30(土) 15:29:29
CPUとメモリが役不足なんじゃないカナ?カナ?
867デフォルトの名無しさん:2006/09/30(土) 15:34:08
>>866
やくぶそく 3 【役不足】

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

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

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

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

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

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

(使用しているLuaのバージョンは5.1です)
886デフォルトの名無しさん: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/
ここら辺とか使ってみたらどうよ。
887デフォルトの名無しさん: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を使っていたほうがいいんでしょうか(´∀`;)
888デフォルトの名無しさん:2006/10/07(土) 22:36:19
>>296
Lua for Delphiが消えてるけどまだダウンロードする方法ある?
889887:2006/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"なんてファイルありませんよ。ファンタジーやメルヒェンじゃないんですから。
890885:2006/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
891デフォルトの名無しさん:2006/10/08(日) 09:05:51
>887
lua_pushcfunction(L, luaopen_base);
lua_call(L, 0, 0);
892887:2006/10/08(日) 09:41:13
>>891
ありがとうございます。出来ました。
893デフォルトの名無しさん:2006/10/08(日) 16:49:45
多次元配列の読み書きがしたいんだが
ROもFarcryも key=value という形式で
全然役に立たないんだが・・・

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

table[key]=valu

みたいな形式なので

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

だから

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

みたいなテーブルだと

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

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

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

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

t.foo("aaa", 10, f.bar)
914デフォルトの名無しさん: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);
915デフォルトの名無しさん: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);
916デフォルトの名無しさん:2006/10/09(月) 13:53:51
ありゃ被った
917デフォルトの名無しさん:2006/10/09(月) 13:55:37
のようだね。
>lua_pushstring(L, "f");
>lua_pushstring(L, "bar");
>lua_gettable(L, -2);
だとfまで引数にされないかい?
当方Perlしかembedしたことないんでよくわからん。
918デフォルトの名無しさん:2006/10/09(月) 13:56:48
lua_gettableしてるからf.barの値が3番目の引数としてスタックに詰まれます
919デフォルトの名無しさん:2006/10/09(月) 13:57:49
>>914
出来てないじゃん

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

luabind等を使わずに本当にスタックでやり取りしてる奴いるの?
924デフォルトの名無しさん:2006/10/09(月) 14:08:41
結局はスタックを使いこなせないからスタックに切れているだけだと思われる
925デフォルトの名無しさん:2006/10/09(月) 14:10:23
>>924
はぁ?頭大丈夫?
926デフォルトの名無しさん: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
927デフォルトの名無しさん:2006/10/09(月) 14:38:30
情報処理技術者持ってる奴ならスタック余裕なのね
逆にluabindなんて使ってる奴が少数だろ
928デフォルトの名無しさん:2006/10/09(月) 14:40:32
使いこなせない方が幸せだと思う
929デフォルトの名無しさん:2006/10/09(月) 14:49:01
変にラッパー使っちゃうと後で困ること多いしな
930デフォルトの名無しさん:2006/10/09(月) 14:57:12
>>919
もともとマシン語使いだったんで違和感ないです
931デフォルトの名無しさん:2006/10/09(月) 15:28:27
ソフ開持ってるけど、こんなスタック弄りたくねぇよ。
なんで楽するためにLua使ってるのに、
その境界でアセンブラのようなメンドクサイ操作をしなきゃなんないの。
本当に近代のプログラマ?
932908=915=917=・・・:2006/10/09(月) 15:35:13
>>931
さっきから文末に句点つけてるの俺とお前だけってバレバレなんですけよ^^;
933デフォルトの名無しさん:2006/10/09(月) 15:36:14
こんなもなにもスタックってこういうものだと思うのですが・・・
逆に、無理のないかなり練られた仕様だと思いますよ。
934デフォルトの名無しさん:2006/10/09(月) 15:37:23
「けよ」じゃない「けど」だw
935デフォルトの名無しさん: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
936デフォルトの名無しさん: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

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


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

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

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

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

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

の例を頼む



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

何か俺間違えてる?
966デフォルトの名無しさん: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つのテーブルを配列っぽく使ってる。
967デフォルトの名無しさん:2006/10/10(火) 18:00:54
io.readとか使ってデータを読み込むとなると一行ずつだが
dofileでチャンクごと読み込むと楽だよな

dofileで読み込むとglobalになるから好ましくないんだっけ?
968デフォルトの名無しさん: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
969デフォルトの名無しさん:2006/10/10(火) 20:24:10
HSPに愛想が尽きたのでLuaでゲームを作りたいです。
LuaGLの存在は知っていますが、LuaからGLUTを呼ぶためのライブラリは既にありますか?
むしろ作るべきですか?
970デフォルトの名無しさん:2006/10/10(火) 21:19:19
lua-users wikiに作りかけのがあったはず。
971デフォルトの名無しさん:2006/10/10(火) 21:43:25
LuaScene
972デフォルトの名無しさん:2006/10/12(木) 07:04:08
Google code search
973デフォルトの名無しさん: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

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

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

["document:body:color"]=256

みたいにすればファイルへのセーブ・ファイルからのロードも楽になるが・・・
976デフォルトの名無しさん:2006/10/12(木) 20:32:03
オマエ・チョット・アホ・デス・カァ
977デフォルトの名無しさん:2006/10/12(木) 21:07:16
ヒント: document.body.color=256
978table.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")))
979978:2006/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"))

変なとこあったら教えてください。
980デフォルトの名無しさん:2006/10/13(金) 00:00:09
コードを見てないからなんなんだが、
a = {A='a'}
a.next = a
みたいな循環構造のテーブルを渡した場合はどうしてる?
981978:2006/10/13(金) 07:46:15
>>980
(((( ;゚Д゚)))ガクガクブルブル
982デフォルトの名無しさん:2006/10/13(金) 14:01:28
>>980-981
ワラタ
983デフォルトの名無しさん:2006/10/13(金) 15:24:08
>>926,935 も循環参照は考えてなさそうだな。
984デフォルトの名無しさん: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
985デフォルトの名無しさん:2006/10/13(金) 19:55:07
finallyもぜひ
986デフォルトの名無しさん: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

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

NIL
BOOLEAN
FUNCTION
USERDATA
LIGHTUSERDATA
THREAD

の場合はどうしてるんだ?
文字列に変換出来るのだろうか?
989デフォルトの名無しさん: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

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

だと思う。
991デフォルトの名無しさん:2006/10/14(土) 00:43:51
schemeと似てるな
992デフォルトの名無しさん: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

(続く)
993992:2006/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
994984:2006/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
995デフォルトの名無しさん:2006/10/14(土) 11:26:26
つなげられなくても
try
 try
 catch
 end
finally
end
とできれば問題ないっす
996デフォルトの名無しさん:2006/10/14(土) 12:11:29
2.5より前のPython方式ですな。
997デフォルトの名無しさん:2006/10/14(土) 12:22:18
>>995
994のコードを見る限り、それは不可能だぞ。
998984:2006/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})
999デフォルトの名無しさん:2006/10/14(土) 12:44:25
ところで次スレは?
1000デフォルトの名無しさん:2006/10/14(土) 13:06:30
1000げと
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。