プログラミング言語 Lua その2
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG他の人サポ−ト頼む。
前スレ
http://pc2.2ch.net/test/read.cgi/tech/1034182349/l50
本家
http://www.lua.org/
5.0日本語訳
http://www.uri.sakura.ne.jp/~cosmic/yuno/lab/lua5_manual_ja.html
0002デフォルトの名無しさん
NGNGいとも簡単に2ゲットできるぜ
文句あるなら言ってみろ
00031
NGNGhttp://www.uri.sakura.ne.jp/~cosmic/yuno/lab/
あと、前スレ保存してた人キボンヌ。
0004デフォルトの名無しさん
NGNGネ申のかきこみは、
・メモリー確保変更パッチ
・Lua弾幕
ぐらいかな?
あとは、GCの話題で少々。
0006デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNGLuaEclipse
でしょ。やっとでたって感じだね
0009デフォルトの名無しさん
NGNGさっそくインスト。
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNGプログラミング言(゚Д゚)ゴルァ
としか読めん。
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNGあ!素敵!保存サイトきぼん
0017デフォルトの名無しさん
NGNGめんどいよー。どこかあpろだないっすか?
00181
NGNGそんな事しなくても過去ログに載ったよ。
ワショーイ
0019デフォルトの名無しさん
NGNGナ ゝ ナ ゝ / 十_" ー;=‐ |! |!
cト cト /^、_ノ | 、.__ つ (.__  ̄ ̄ ̄ ̄ ・ ・
0020デフォルトの名無しさん
NGNGhttp://www.luascript.thersgb.net/
wxWindowのBindよりも、
気合のはいったIDEが素敵
0021デフォルトの名無しさん
NGNGSmalltalk, Act1, Self, NewtonScript, LISP, Lua からアイデアの刺激を受けてます。
http://www.iolanguage.com/
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG世代別GCはどうなってんだYO!(MLは読んでない)
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNGまぁ、俺はそこまでのリアルタイム性は求めてないからな…
とりあえず、「GC時間が全オブジェクト数に比例する」ってのが緩和されればOK。
0027デフォルトの名無しさん
NGNGそれが問題だ
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG>CoRoutine内のエラーを調べる方法はないものか・・・
Resumeの戻り値にエラーのストリングはいります。
0031デフォルトの名無しさん
NGNGエラー調べないとわかんないんだよね。
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG公式サイトも↓こんな動きしかないし…
28 Jul 1993
Lua 1.0 was up and running. This is the earliest implementation of Lua that
we have found to date.
0035デフォルトの名無しさん
NGNG…何か違わないか?
0036デフォルトの名無しさん
NGNGなんか似てるし。
0037デフォルトの名無しさん
NGNG>>35
「we have found to date.」ね。
はてなアンテナの差分を信じるなら、この文が10/11に追加されてる。
0038デフォルトの名無しさん
NGNGなにかメリットを探そうとしないほうがいいと思う。
連携させない前提で他言語との比較は、なんだかなぁって感じる。
>組み込み用JavaScript
ものすご気になるw
0039デフォルトの名無しさん
NGNGhttp://www.mozilla.org/js/spidermonkey/
とか
NJS JavaScript Interpriter
http://www.bbassett.net/njs/
とか。
NJSのほうは、言語比較サイト
http://www.bagley.org/~doug/shootout/
で、結構いい成績出してるんだよね。
Mozillaのほうは昔ちょっとやっただけだけど、とりあえずMozillaの他の
大量にあるコンポーネントには依存してなくて単体で使えたような記憶。
0040デフォルトの名無しさん
NGNGおぉサンクス!
中間言語にコンパイルするのかどうか、調べてみます。
0041デフォルトの名無しさん
NGNGコンパイラをバイトコ−ドの形式で配布してるから
改造二次配布防止のセキュリティもばっちりだべ
0042デフォルトの名無しさん
NGNG全部に--つけるのめんどくさい、あなたに。
rem= { [[
...
...
]] }
で囲んでしまうと。(つまんなくてすまそ・・・)
0043デフォルトの名無しさん
NGNG......
]] があるっしょ?
004442
NGNG0045デフォルトの名無しさん
NGNGなるべくC/C++と文法を同じにしてほしかったなぁ
0046デフォルトの名無しさん
NGNG普段から複数言語を使い分けてるせいだろうか?
0047デフォルトの名無しさん
NGNGそれ、めちゃくちゃ同意!
そうだったら、もっとはやってたような気がする・・(日本で)
0048デフォルトの名無しさん
NGNG組み込み用(もしくは軽量)言語スレにしようぜ。
という漏れはLUAに激しく萌えています(今は)
0049
NGNG0051デフォルトの名無しさん
NGNGこのままここで軽量言語スレしてもいいんじゃない?
とりあえず、ネタを出してみれ。
もりあがるようなら、ココ放置してスレ立てよう。
0052デフォルトの名無しさん
NGNGただ、
* 文字列はどうする?
* 型宣言したい?
* プリプロセッサ?
* C の標準ライブラリって使いやすい?
とか考えてくと、C のようで C じゃない気持ち悪い言語になるかも。
creat 問題に似てる。
0053デフォルトの名無しさん
NGNGCmm
http://www.rpm.or.jp/home/pon/computer0.html
ラムダ
http://www.kurumi.sakura.ne.jp/~kdv/products/lambda/
TJS2
http://www.ultrasync.net/dee/kr2helps/tjs2doc/contents/
0054デフォルトの名無しさん
NGNG文法と機能は分けて考えれるんじゃない?
if x ~= 0 then
..
end
を
if(x != 0){
..
}
と書きたいとか、そういう話でそ?
文字列もテーブルも今のままでいいし。
でもCの文法には文字列連結演算子や累乗演算子ないよねぇ。匿名の関数も・・・
0055デフォルトの名無しさん
NGNG00561
NGNGCint
http://root.cern.ch/root/Cint.html
0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNGhttp://www.compuphase.com/small.htm
0059デフォルトの名無しさん
NGNGレビューよろ
0060デフォルトの名無しさん
NGNG文法がCににてます。
0061デフォルトの名無しさん
NGNGsmallはJITで超速くなるよ。
0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNGhttp://www.nbk.gr.jp/song.html
0064デフォルトの名無しさん
NGNGLightweight Languages 2003 (LL3)
http://ll3.ai.mit.edu/
こんなのやってるんだね。
去年はRubyも発表してたみたいだが、RubyもLightweightなの?
0065デフォルトの名無しさん
NGNGなんかMLにGuy Steele がいるよ・・
すげーとか思った。
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNGこめんとアウトもこれ。 // /* */
こんな感じでGoLuaにならんかしら。
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNGdo end -> { }
にしたときのテーブルの定義とかぶらんかな。
Luaのパーサ、混乱するんでない?
do until もあやしい。
0070デフォルトの名無しさん
NGNG{}.x = 4
とかいうアホなコードは意味ないから、文頭に{が現れたらブロック、で単純にいけると思う。
0071デフォルトの名無しさん
NGNGLuaから呼び出されるCの関数で、
テーブルを返すのはどうしたらいいの?
いま、点の座標を返す関数を
つくってるんだけど・・・
lua_pushnumber( L, x);
lua_pushnumber( L, y);
lua_pushnumber( L, z);
return( 3 );
これをテーブルで返したいっす。
よろしくお願いします〜
0072デフォルトの名無しさん
NGNG/* Create new table. */
lua_newtable(L);
/* Push x. */
lua_pushstring(L,"x");
lua_pushnumber(L,x);
lua_settable(L,-3);
/* Push y. */
lua_pushstring(L,"y");
lua_pushnumber(L,y);
lua_settable(L,-3);
/* P(ry */
lua_pushstring(L,"z");
lua_pushnumber(L,z);
lua_settable(L,-3);
return 1;
0073デフォルトの名無しさん
NGNGぬおおお!サンクス!!
ありがとうございます!
0074デフォルトの名無しさん
NGNGttp://www.amazon.com/exec/obidos/ASIN/1592000770/qid%3D1067847928/sr%3D11-1/ref%3Dsr%5F11%5F1/104-3613930-5877559
0075デフォルトの名無しさん
NGNGほぉぉ・・
Rubyもはいってんじゃんね。
ゲームつくるのにはさ、LuaのCoroutineがめちゃ便利
だと思うんだけどさ・・
Pythonにはなんかあったよね、ファイバーだっけか?
Rubyにはそんなのあんの?
0076デフォルトの名無しさん
NGNG0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNGそっちのほうが気になる。
0079デフォルトの名無しさん
NGNG二つほど見たことがある。
008074
NGNGスクリプトの本とか。
http://www.premierpressbooks.com/ptr_catalog.cfm?group=Game%20Development
0081デフォルトの名無しさん
NGNGLua in the Gaming Industry
Speaker(s): Jonathan Burns, David Eichorn
Time/Date: TBD
Format: Roundtable
Level: All - Open to All Levels
http://www.cmpevents.com/GDx/a.asp?option=C&V=11&SessID=2272
0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG英語 or 日本語で。
ポルトガル語だとありそうだけど。
0085デフォルトの名無しさん
NGNG↑ここに、「The first draft of the book "Programming in Lua" by
R. Ierusalimschy is now available. 」とか書きかけの奴があるけど
全然更新されて無いね。
0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNG作りたいのですがどうやればいいですか?
configファイルを変更しないとダメですか?
0089デフォルトの名無しさん
NGNGRead the FAQ in >>3.
009088
NGNGコンパイルできる方法を教えてください神様!
0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNGHere are config [2] and Makefile [3] samples
used successfully to build Lua 5.0-beta (with the LuaBinaryModules enhancements).
No changes are necessary to the Makefiles in Lua's subdirectories.
Use the target dll (i.e., "make dll") to build everything with lua.exe
and luac.exe using lua.dll and lualib.dll.
これだけではわかりかねまする。
0093デフォルトの名無しさん
NGNGコピペ貼られても困る。
0094デフォルトの名無しさん
NGNGまず、configを開いてみたら
# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======
とあるので読み進めると、
# On Windows systems. support for dynamic loading is enabled by default.
# To disable this support, uncomment the next line.
#
#LOADLIB= -DUSE_DLL=0
とか
# The Lua IO library (src/lib/liolib.c) has support for pipes using popen and
# pclose. This support is enabled by default on POSIX systems.
# If your system is not POSIX but has popen and pclose, define USE_POPEN=1.
# If you don't want to support pipes, define USE_POPEN=0.
#
#POPEN= -DUSE_POPEN=1
#POPEN= -DUSE_POPEN=0
というふうに何かの注意書きがあって、一行空けた後に式が書いてある。
ここをどう変更すればいいのかわからない。
それと、>>92の
No changes are necessary to the Makefiles in Lua's subdirectories.
Use the target dll (i.e., "make dll") to build everything with lua.exe
and luac.exe using lua.dll and lualib.dll.
の意味がよくわからない。
なんとなくつかんだ印象は、configを自分の環境にあうように変更してから
MSYS(mingw)を使ってmakeと打てばバババババババーとコンパイルが
始まってlua.exeやらluac.exeが出来上がる。
0095デフォルトの名無しさん
NGNG# On Windows systems. support for dynamic loading is enabled by default.
# To disable this support, uncomment the next line.
#
#LOADLIB= -DUSE_DLL=0
は、#を消せば良いだけか?
#LOADLIB= -DUSE_DLL=0
↓
LOADLIB= -DUSE_DLL=0
0096デフォルトの名無しさん
NGNGmingw用のバイナリ(cygwin1.dllに依存しないバイナリ)が出来てしまうんだが?
mysysの方は環境が無いんで、わからん。
0097デフォルトの名無しさん
NGNGを見る限り英語を読もうともしない人にしか思えんのだが。
0098デフォルトの名無しさん
NGNGどう buildしたらいいのかな。
009995
NGNG0100デフォルトの名無しさん
NGNG> bcc32 *.c -olua.exe
とやったら生成ファイル名がlapi.exeになったんだけど、何故にlua.exeでないの?
普通に実行できるようだからいいけど、なんか気になる…
0102デフォルトの名無しさん
NGNGもしくは、本当にLuaを使う必要があるのか?とか。
0103デフォルトの名無しさん
NGNG>>100の-olua.exeはくっつけてるのが正しいと思うけど、なんで名前が変わるかは知らん。スマ
0104デフォルトの名無しさん
NGNGhttp://tabesugi.net/memo/2003/b1.html#10
Luaの発表のことも書いてあるよ。
Luaって設定用だったのかー。
その割に、ちょっと変数を参照するのすら面倒なのは何故だ。
こんなことぐらいで、スタック弄らせるんじゃね−。
ラッパー作ったから別にいいけど。
俺は、もっと簡単に使えるのを作ろう(作ってる)
あと、Luaと関係ないけど、
> 「Scheme による Reactive Programming」
一度、Flashの開発環境でも触ってみると言いとおもた。
0106デフォルトの名無しさん
NGNGあっちの組み込み用インタフェースはどうなんだろ?
>一度、Flashの開発環境でも触ってみると言いとおもた。
開発環境の話では無いような…
0107デフォルトの名無しさん
NGNG何故ですか?
01081
NGNG0109デフォルトの名無しさん
NGNG0110前スレの2
NGNG0111デフォルトの名無しさん
NGNGそれはそれで、結構興味深くて、面白いんだけども。
0112デフォルトの名無しさん
NGNGそれだけに決定打がないっているのかな。
でもLUAにかなーり満足してる。
0113デフォルトの名無しさん
NGNG単に小さい処理系が欲しいなら
otcc
と言ってみる。
0114デフォルトの名無しさん
NGNG0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNGあ、そうなんだ。スマソ。
ホムペに SPARC/Solaris とか書いてあったから勘違いしてた。
0122デフォルトの名無しさん
NGNGscheme知ってればどんなことしてるかぐらいはわかるしね。
基本的に()と{}の違いだけ。
0123デフォルトの名無しさん
NGNGゴミぐらいのオーバヘッドでCのサブセットが使用できると。
0124デフォルトの名無しさん
NGNGotccの問題はローカルスコープの参照の仕方に放置されたバグがある事。
あのままだと安心してグローバル変数は使えない。
まともに使うならシンボルテーブル周りをだいぶ書き換える必要がある。
0125デフォルトの名無しさん
NGNG激しく勘違いしてる人がいるような気がする。
0126デフォルトの名無しさん
NGNGでも、仕様が途中で変化しそうな部分をスクリプトに追い出しておいて、
試行錯誤してみるってのは、割と有効な気がする。それが軽量組み込み言語の利点なわけで。
0127デフォルトの名無しさん
NGNGコンパイラとか区別する意味ないじゃん。
バイトコードで動くかネイティブで動くか程度の違いなんだから。
例えばゲームの実行時に敵アルゴリズムパターンを
動的作成してコンパイル&その環境で効率良く実行。
もっと賢くなりなよ。
0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNGotccは外部参照書き換えれば簡単に組みこめるけど、
そういう事じゃないの?
0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNG0133デフォルトの名無しさん
NGNGというか、最初オリジナルバージョン見て嫌がらせか?とか思ったよw(IOCCCに出したんだね。)
まぁ、メモリ管理やらローダ作成やらと、本気で使うならちょっと手を入れないと駄目だね。
0134デフォルトの名無しさん
NGNG0135デフォルトの名無しさん
NGNG0136デフォルトの名無しさん
NGNGhttp://www.iolanguage.com/
コルーチンもあるんだね。使ってみようか。。。
というか、文法がLuaにも増して変態的かも
0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNG文法変かな? 普通のメッセージパッシングの言語と同じっぽいけど。
0139デフォルトの名無しさん
NGNG昔、(もっと原始的だったけど)同じようなプロトタイプベース言語作ったなぁと
ちょっと回顧しちゃった。
0140デフォルトの名無しさん
NGNG0141デフォルトの名無しさん
NGNGintとcharがあればどうにでもなるもんだね。
charはポインタ間接のみだから、intだけか。
0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNG試してみてくれ。
0144デフォルトの名無しさん
NGNGIo のページに他言語との比較があるじゃん。
0145デフォルトの名無しさん
NGNGで、どうなのよ?
あ、はい自分でみてきます・・・
0146デフォルトの名無しさん
NGNG俺が見てくる…
0147デフォルトの名無しさん
NGNGIoはオブジェクト操作が早いというのがウリ?
コードサイズはそれほど小さいわけでもないのね。
個人的にはGC性能の比較がほしい。比較基準が難しそうだけど。
0148デフォルトの名無しさん
NGNGIo と Lua
ttp://d.hatena.ne.jp/shinichiro_h/20031208#p3
gj
0150デフォルトの名無しさん
NGNGで、>>148の12/6分のサンプルプログラム見てて思ったんだけど、
IoObjectをCプログラムから参照してる場合、途中でGCが起こったらどうなるんだろ?
いきなり消えちゃわないのかなぁ?
・・・っとFAQを見ると、Cスタック=言語スタックなのね。なるほど。
スレッド(=コルーチン?)はユーザレベルスレッド(=ファイバ?)を使ってるから
それで問題ないのか。
Io uses an incremental (tri-color, write barrier) garbage collector
which is similar to a mark and sweep collector but without the pauses.
使ってるGCの手法はこの方法なのかな?
ttp://members.at.infoseek.co.jp/zzyyb/gc/incremental-collector.html
リアルタイム向けにはこっちの方がいいかも。
0151デフォルトの名無しさん
NGNGなんかメモリリークしない?
IoState* st = IoState_new();
IoState_free(st);
これだけで激しくリークするんですけど。
0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNGIoState_free のなかで IoState_collectGarbage を呼んでるので
たぶん違うと思う。
IoState_doCString_ を何度やってもリークの量は増えたりしないので
プログラム中で IoState を1つしか使わない場合は問題にならないかも
しれないけど複数使い分けたいのでちょっと困る。
追っかけようと思ったんだけどざっと2000ブロックぐらいリークしてる。
まあ2,3箇所直したら全部きえるのかもしれないけど...
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNGプリミティブやプロトタイプを一切解放してないからだと思われ。
main.c で IoState_free() するようにしたあと、インタプリタを起動、
>io Lobby debugCollector = 1
して、終了してみ。
なにしろまだ、バージョン番号すらついてませんから。。
0157デフォルトの名無しさん
NGNG>プリミティブやプロトタイプを一切解放してないからだと思われ。
IoState_free() の
PHash_do_(self->primitiveProtos, (PHashDoCallback *)freePrimitiveProtosCallback);
PHash_free(self->primitiveProtos);
このあたりで開放してると思われ。
>io Lobby debugCollector = 1
開放の前にGCが動くのでそこのデバック表示をオンにしても意味無いような。
とりあえずバージョン番号がつくのを待ってみます。
0158デフォルトの名無しさん
NGNGここんとこ毎日のように更新されてる。
Lua もがんばって欲しい...
0159デフォルトの名無しさん
NGNGLuaはもう安定期にはいってるからでは?
0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNGIoはまだバグリ−なんで様子みながら使った方がいいよ。
0162デフォルトの名無しさん
NGNG確かにもう安定期ですな。
Io も来年中ぐらいには製品に組み込めるぐらい安定して欲しいなー。
0163デフォルトの名無しさん
NGNG0164脊髄野郎
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/8590379817
誰か読んだ?
0166デフォルトの名無しさん
NGNGhttp://www.inf.puc-rio.br/~roberto/luabook1.pdf
これとは別物?
0167デフォルトの名無しさん
NGNGでもこの PDF 155ページもあるしこれで十分のような。
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNG0170デフォルトの名無しさん
NGNG早速買った勇者はいないのか?
0171デフォルトの名無しさん
NGNGさすが、2ちゃんで最高の知的レベルを誇るム板!
こんなマイナーな言語がPart2ってすごいよね。
日本的には「HSP」や「ひまわり」なんかよりはるかに知名度低い
のに…。(藁)
Part1〜2熟読致しました。感心いたしました。
ブラジル発って言うか中南米原産の言語ってLuaぐらいじゃないでしょうか?
向こうも日本発って言うかアジア原産の言語ってRubyぐらい…て?(藁藁)
基本的には関数型言語に分類されるのでしょうか?
それならご本家関数型言語のスレに仁義は切っておられるのでしょうか?
ショバ代をよこせなんてケチな事を言ってきたら連絡下さい。
ガッツ〜ンと一発、やられたり…してね。(WWW)
Luaはゲームが得意のようですが、皆さんは何に利用されておられるの
でしょうか?
0172デフォルトの名無しさん
NGNG妹ヤバイ。
まず可愛い。もう可愛いなんてもんじゃない。超可愛い。
可愛いとかっても 「芸能人で言うと誰似?」
とか、もう、そういうレベルじゃない。
何しろ中1。スゲェ!なんかブラとかして無いの。何カップ?とか彼氏いるの?とかを超越してる。優しいし超可愛い。
しかも成長してるらしい。ヤバイよ、成長だよ。
だって彼女とか成長しないじゃん。だって自分の身長追い越してどんどん伸びてったら困るじゃん。キスするのに超背伸びとか困るっしょ。
身長が伸びて、一年目のときは俺よりうんと下だったのに、三年目のときは頭二つ分彼女が高いとか泣くっしょ。
だから彼女とか成長しない。話のわかるヤツだ。
けど末�ヘヤバイ。そbネの気にしなb「。成長しまくb閨Bお風呂一緒bノ入ろう?とか末マ想してる俺。ャсoすぎ。
妹っていたけど、もしかしたら妹じゃないかもしんない。でも妹じゃないって事にすると
「じゃあ、昼まっから妄想してる俺ってナニよ?」
って事になるし、それは誰もわからない。ヤバイ。誰にも分からないなんて凄すぎる。
あと超血が濃い。約二親等。続柄で言うと妹。ヤバイ俺、萌えすぎ。妹が成人する暇もなく萌え死ぬ。怖い。
それに超つるぺた。超寂しがりや。それにちょっとえっち。キスしたことある?とか平気で訊いてくる。キスて。彼女すらいたことねえよ、今まで。
なんつっても妹は料理が上手い。肉じゃがとか平気だし。
うちらなんて料理とかたかだか日曜日の昼飯を作るぐらいで上手く作れないからレトルトにしたり、コンビニに行ってみたり、昼飯抜かしたりするのに、
妹は全然平気。卵を片手で割ってる。凄い。ヤバイ。
とにかく貴様ら、妹の可愛さをもっと知るべきだと思います。
そんな妹の事ばっかり妄想してる俺とか超一人っ子。もっと親父がんばれ。超母ちゃんがんばれ。
0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNGttp://homepage3.nifty.com/Aransk/
久々に関数型言語のコラムを更新したせいか?(藁藁)
0175デフォルトの名無しさん
NGNG「ひろゆき」さん?
0176デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNGhttp://pike.ida.liu.se/
0178デフォルトの名無しさん
NGNGお。なかなか
0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1072883528/
海外でよく使われていうる掲示板スクリプト
専用のオフラインリーダー作って下さい。
必要な条件はID、PASSを管理できること、
OpenJaneみたいな三面型の見た目。
簡単にローカライズできるように言語ファイルを採用
http://www.somedude.net/gamemonkey/
better than Luaとかどうとか
0182デフォルトの名無しさん
NGNG> 2ちゃんにおける余輩の全ての発言に「ヒーロー勇気」の
> 名前を冠することに致します。
以前こんな事言ってた奴が居たよな。思いっきり名無しさんに戻ってるが。
0183デフォルトの名無しさん
NGNGおお〜これ良いね〜!
これで、構造体がつかえれば・・・
LUAはデータ構造が柔軟につくれるとこが、やっぱ
いいんだな・・・あらためて思いました。
0184デフォルトの名無しさん
NGNGLua5.1のリリース時期に関しての文章です。
ttp://lua-users.org/lists/lua-l/2004-01/msg00012.html
>私は、このリストに関するあるニュースを読んだ>。しかし、誰か情報を持っていますか、何は5.1が変化するだろうか、また、それがいつリリースされるだろうかに関して?
大変化はインクリメントのガーベジ・コレクションになるでしょう。
いくつかの小さな変更がさらにあるでしょう。
現在、リストは多かれ少なかれこれです:
* lexerの中の¥r¥nのよりよい取り扱い
* 自分のメモリアロケーション機能を持ったLua状態を作ることができます。その結果、この状態はこの機能によってそのメモリアロケーションをすべて行います。
(したがって、Lua核心は「malloc」を必要としないでしょう。)
* より柔軟な長いストリングデリミター
( ttp://lua-users.org/lists/lua-l/2003-11/msg00301.html を参照。)
* パーザ、完全にリエントラント
( ttp://lua-users.org/lists/lua-l/2003-11/msg00359.html を参照。)
* ローカル変数用の新しい意味論、の中で、1つの「のために」ループ( http://lua-users.org/lists/lua-l/2003-04/msg00332.html を参照)
* '#'の取り扱いの変化( ttp://lua-users.org/lists/lua-l/2003-11/msg00332.html を参照)
* varargsを扱う新しい方法
( ttp://lua-users.org/lists/lua-l/2003-10/msg00362.html を参照。)
私たちは、互換性問題を備えた大きな世話をしています。
に関して「いつ:」
新しいごみ収集人は模範を示すでしょう。
準備ができている場合、Lua 5.1は準備ができているでしょう。
私たちは、2月3月ごろの新しいごみ収集人の仕事バージョンをリリースすることを計画します。
最終バージョンのための最初の生の評価は8月(しかし、これは見当違いの推測です)でありえます。
-- ロバート
0185デフォルトの名無しさん
NGNGGCの実装はやっぱり大変だったということなんだろうか?
0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNG前スレでなんかやってた人が居た。
http://calua.sourceforge.net/
Lua wrapper っぽ
0189デフォルトの名無しさん
NGNG01901
NGNG0191デフォルトの名無しさん
NGNGa = 3 % 2
0192デフォルトの名無しさん
NGNGのAngelScript
C言語ライクですな。
構造体(Obj)はCの方から作成
0193デフォルトの名無しさん
NGNGmath.modを使えってことじゃない?
0194デフォルトの名無しさん
NGNGstrongly typedという特徴を見逃してはいけないな!
0195デフォルトの名無しさん
NGNGありがとうございます。
実はPlua(PalmLua)でやってます。
PluaはLua4.0相当だそうです。
Plua remainderで検索していたら、下記のページが見つかり、
http://archive.neotonic.com/archive/lua-l/browse_frm/thread/1619/6708
そして、ここを見ると、modが関数として用意されていました。
http://www.lua.org/manual/4.0/manual.html#6.3
結局
a = mod(3, 2)
でできました。
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNGソースまとめてコンパイルするだけじゃだめなの?>>196
0199デフォルトの名無しさん
NGNG__asmとか使ってる所をGCC用に書き換えないと。
0200デフォルトの名無しさん
NGNGしってた?
俺はさっき知った・・・。
0201デフォルトの名無しさん
NGNGコルーチンとかスタックとかのバグフィックスが行われたらしい。
んで、5.1はまだ半年先らしい。
0202デフォルトの名無しさん
NGNGそれって5.0に↓このパッチを当てたものと同じですか?
ttp://www.uri.sakura.ne.jp/~cosmic/yuno/lab/lua5_bugs_ja.html
0203デフォルトの名無しさん
NGNGhttp://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
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNGhttp://www.gorlice.net.pl/~rybak/luaide/
誰かもう使っておられますか?
0208デフォルトの名無しさん
NGNGというか、自分のアプリに組み込んだLuaのデバッグとかできないかなぁ?
0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNGこれの使い方がわからんのですが
IDE上で実行とかブレークポイント貼るのとかどうやんの?
メニュー覗いても該当する項目ないし
F5押しても何も起きないし
もしかして、見た目だけとか・・・?
0211デフォルトの名無しさん
NGNG>もしかして、見た目だけとか・・・?
やっぱりねぇ。なんとなくヤバそうな雰囲気だったから
誰か試してくれないかなぁ…って(大笑い)
ゴメン。
0212210
NGNGミミ:::;,! 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
0213209
NGNGためしたよ。プロジェクトを新規作成しないと、
うんともすんともいわんみたい。
プロジェクト上でプログラムをかくべし。
う〜ん、自分のDLLをwxLuaと、LuaIDEでよませてみたけど、
LuaIDEはなんかいまいち、うまくいかんかった。
終了時にIDEごとおちちゃう。原因は特定してないけど、
DLL作成時のコンパイルオプションがIDEのコンパイルオプションが
ちがうんだろう。
DLLは5.0.1作成したんだけど、IDEは5.0.0かもしれない。
wxLuaは、実行したプロセスが落ちないようになってしまったけど、
これはなんとかなりそう。
0214デフォルトの名無しさん
NGNGあとLuaからCの変数にアクセスする方法も分かりません。
0215デフォルトの名無しさん
NGNGお手数おかけしました。
IDEのWEBでは一応5.0.1対応とは言っておりますが
その辺りは、結構いい加減なんでしょうね。
(管理人のオッチャンからアクセス規制をくらって
おりまして、ご返事が遅れました。
悪しからず。)
0216デフォルトの名無しさん
NGNG上位値とクロージャを。自分の変数を持つ関数かな?
schemeとかocamlとかperlとかにはあった気がする。lispが発祥だとかperlの本にあったなぁ。
--
newgreeting = function(a) --a:上位値
return function (b); print(a..", "..b..".") end --クロージャ
end
gr1 = newgreeting("Good morning");gr1("Emily");gr1("Mike")
gr2 = newgreeting("See you");gr2("Emily");gr2("Mike")
-- もうひとつ 上位値の変更
newcounter = function ()
local cnt=0 --上位値
return function ()
cnt = cnt+1
return cnt
end
end
cnt_a = newcounter()
cnt_b = newcounter()
print(cnt_a())
print(cnt_a(), cnt_b())
print(cnt_a())
print(cnt_a(), cnt_b())
print(cnt_a())
print(cnt_a(), cnt_b())
結果は省略
0217デフォルトの名無しさん
NGNGすごい
や・・やるなぁ・・・。
0218デフォルトの名無しさん
NGNGありがとう。
よくわかりました。
0219デフォルトの名無しさん
NGNGその辺りマニュアル読んだだけでは理解できなかったので勉強になりました。
既出かもしれないけど、「FarCry」にLuaが採用されてますね。
ttp://www.farcry-thegame.com/uk/technology.php
体験版をインストールしたら、Scriptsフォルダの中に拡張子が".lua"の
テキストファイルが大量に入っていたので驚きました。
ゲームプログラマさん達には参考になるかも。
0222デフォルトの名無しさん
NGNGa = {1, 2, 3, 4, 5, 6}
b = {}
table.foreach(a, function (v) table.insert(b, v*2) end)
print(table.concat(b, "\n"))
0224デフォルトの名無しさん
NGNGカリー化関数curry()を作る。とかw
% lua
Lua 5.0 Copyright (C) 1994-2003 Tecgraf, PUC-Rio
> function curry (f, v) return function (...) return f(v, unpack(arg)) end end
> function add (a, b) return a + b end
> print(add(1,2))
3
> inc = curry(add, 1)
> print(inc(3))
4
> function add3(a, b, c) return a + b + c end
> foo = curry(add3, 1)
> print(foo(2, 3))
6
> bar = curry(foo, 2)
> print(bar(3))
6
0225デフォルトの名無しさん
NGNGC風に
foo=0x2B
こんなかんじで書きたいんですけど。
0226デフォルトの名無しさん
NGNGサンプル嫁
0227デフォルトの名無しさん
NGNGサンプルはどこ?
foo = tonumber('2B', 16)
これ?
0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNGLua好きにナターヨ
0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNGOSレベルのスレッドなのかな?って話なんだけど
0233デフォルトの名無しさん
NGNGCoRoutineのこと?
それとも、スレッドが利用できる拡張でもあるんだっけ?
0234デフォルトの名無しさん
NGNGlua_newthreadの話だよね?
lua_resumeはコルーチンが中断されたり実行終了したら、
呼び出しから戻るってかいてあるからOSレベルのスレッドは
自前で実装してその中で呼ぶようにしてってことじゃない?
0235デフォルトの名無しさん
NGNGそそ
コルーチンは、終わるかyield呼ぶまでだと書いてあるんだけど、
newthreadの方は、特に書いてないんだよね
0236デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNGLuaのコルーチン=lua_newthread+lua_resume(+lua_yield)だよ。
lua_newthreadは新しいコルーチンを生成する関数。
lua_newthread()とlua_resume()を使ったサンプルは前スレにある。
threadって付いてるけどOSのスレッドとは一切全く関係ない。
0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNG結局、スクリプトを実行(dofileとか)したら、
終わるまで帰ってこないって解釈で良いのかな?
裏で何かしたかったら、(処理系もしくはOSの)スレッド使えと
0241デフォルトの名無しさん
NGNGlua_resume使えば、Luaスクリプト側でyieldすれば戻ってくるよ。
もう一回lua_resumeするとyieldしたところから実行が始まる。
協調型マルチスレッド(=コルーチン)と言ったところか。
別にOSのスレッド使うのも有りかもしれんけど、Luaってスレッドセーフだっけ?
0242デフォルトの名無しさん
NGNGとりあえずlua_resumeが1を返しても正常終了かエラーで中断かわからん
0243デフォルトの名無しさん
NGNG・その文字列が"cannot resume"を含まなければ、スクリプト実行エラー
・そうでなければ、既に実行が終わったものをlua_resumeしようとした時のエラー
とかしてる。もっとうまい方法あるかな?
lua_resumeが正常終了した後、もう一度lua_resumeを呼べるかどうかを調べる方法は、
ソースを見る限りなさゲ?(もう調べたころの記憶が曖昧だけど…)
0244デフォルトの名無しさん
NGNGlua_pushliteral(L, "__metatable");
lua_pushvalue(L, methods);
lua_settable(L, metatable);
ってあるんですけどメタテーブルのメタメソッド"__metatable"って
何のために設定するんでしょうか?
リファレンスのメタテーブルのとこ見ても
このメタメソッドについては何も書いてないし…
0245デフォルトの名無しさん
NGNGuserdata:print()
みたいにC側からライトユーザーデータを渡して
それに対して関数を呼んだりしたいのですが
ライトユーザーデータだとメタテーブルを
持てないのでできません。
なにか良い方法はないでしょうか?
0246800get
NGNGenv={
b = "test",
c = { "test" }
}
C側から値を取得しようとしてます。上の中で、
aはlua_getglobalのあとにlua_tostring、
cはリファレンスのテーブルを巡回する例と同じようにできたのですが、
bができません。
どなたかご教授ください。
0247デフォルトの名無しさん
NGNG0248246
NGNG今から宣言しておく。
8 0 0 は オレ が 獲 る !
0249デフォルトの名無しさん
NGNGこの例でcが取れてbが取れないって
ネタとしか思えん。
0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNGcのテーブルを巡回するほうが難しいだろ!
0252デフォルトの名無しさん
NGNGソースみせて。
たぶん一発で回答がでるよ。
0253246
NGNGなお248は別人です
lua_pushstring(L, "env");
lua_gettable(L, LUA_GLOBALSINDEX);
lua_pushstring(L, "b");
lua_gettable(L, -2);
if(lua_gettop(L) && lua_isstring(L, -1))
{
strcpy(buf, lua_tostring(L, -1));
}
lua_pop(L, 1);
lua_pop(L, 1);
0254デフォルトの名無しさん
NGNGうまくいきそうなもんだけど・・・。
0255デフォルトの名無しさん
NGNG0256デフォルトの名無しさん
NGNGそんな混乱させたいのか
0257246
NGNGprintf( "[%]←なんで結果が返らないんだよ!糞が!!", buf);
0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNGLUAをまるまる組み込んでるのに、
”LUA”っていう文字がでてこなかったら、
なに隠しんてんだよって激しく思う。
0260デフォルトの名無しさん
NGNGよくにてない?
手元にあったDMonkey触ってみた
a = new Object;
a["foo"] = "bar";
println(a.foo); // bar
function Hoge() {
this.a = "foo";
this.b = function(s) { println(s + this.a); }
}
var f = new Hoge;
f.b("bar"); // barfoo
a = {
test: -12,
hage: "foo",
hoge: function (a) { println(a + " at hoge"); }
};
a.hoge("moge"); // moge at hoge
うほっ
0262デフォルトの名無しさん
NGNGほーこの辺の言語はもうどれも似たりよったりなのかねぇ〜
0263デフォルトの名無しさん
NGNGfunction greaterThan(/* number */ u) {
return function(n) {
return n > u;
};
}
// 使う
var arrOriginal = [45, -29, 213, 99, 118];
filterArray(arrOriginal, greaterThan(50)); // 213,99,118
0264デフォルトの名無しさん
NGNGhttp://www.luascript.thersgb.net/
wxWindow部分がDLLになってはずれた!
いますぐ、もまえのLuaの拡張もDLLに汁。
ステップ実行できるよ。
0265デフォルトの名無しさん
NGNGCライクになりきってないとこがなぁ・・。
コメントが--って他の言語にあるの?
0266デフォルトの名無しさん
NGNGAda,Eiffel
0267デフォルトの名無しさん
NGNGSQL
0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNGmaxScript
0270デフォルトの名無しさん
NGNG0271デフォルトの名無しさん
NGNGさんくす!
0272デフォルトの名無しさん
NGNG0273デフォルトの名無しさん
NGNGhttp://www.water.sannet.ne.jp/sowwa/
0274デフォルトの名無しさん
NGNG前スレで出てた方法なら平気そうだけど(変更箇所が2箇所に増えてるけど
0276デフォルトの名無しさん
NGNGttp://nebula.student.utwente.nl/archive.php
のソース「Sphere」の中に、
#ifdef _DEBUG
#pragma comment(lib, "lua5_dbg.lib")
#else
#pragma comment(lib, "lua5_rel.lib")
というのがあるんですが、このライブラリって
どうやって入手するんでしょう?
ソースには入っていないし、公式サイトにもないような
のですが…
0277デフォルトの名無しさん
NGNGリリース版とデバッグ版で作成されるライブラリのファイル名変えてるんでしょ。
0278276
NGNGLuaBinaries5.0.2の中の、lualibd.lib
と同一のものだったようです。
ようやく実行できた…
0279差分
NGNGキミ達に朗報だ。
ttp://www.tecgraf.puc-rio.br/lua/work/lua-5.1-work0.tar.gz
概要はこちら。
ttp://lua-users.org/lists/lua-l/2004-03/msg00317.html
GC の変更については俺に評価する知識はないんだけど、実際どう?
0280差分
NGNGどういう実装かまだ読んでないけど、まあincrementalにしたんだから、
GCで長時間止まることはなくなったんだろう。
0281デフォルトの名無しさん
NGNGさんくす
0282デフォルトの名無しさん
NGNG0283デフォルトの名無しさん
NGNG工エエェェ(´д`)ェェエエ工
全体的におそいの?
トータルでいくと同じなのかなぁ・・・。
0284デフォルトの名無しさん
NGNGlua_register(L,(struct lua_State *)"SetMap",SetMap);
のところでビルドエラーになります。
'lua_pushcclosure' : 2 番目の引数を 'int (struct lua_State *)' から 'int (__cdecl *)(struct lua_State *)' に変換できません。
て出ます。
__cdecl *ていうのが良くわからないんですが、調べてみたらC++の呼び出し規約云々ということで
CであるLuaをC++から呼ぼうとしてるのが問題のような気がします。
回避するのはどうしたらいいのでしょうか。
どなたかご教授くださるとうれしいです。よろしくおねがいします
0285デフォルトの名無しさん
NGNG↓
lua_register(L,(struct lua_State *)SetMap,"SetMap");
0286デフォルトの名無しさん
NGNGextern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
};
0287デフォルトの名無しさん
NGNGでいいのでは?
(struct lua_State *)"SetMap"
がエラーの原因っぽいが・・・
0288デフォルトの名無しさん
NGNG色々ご指導ありがとうございます。
>>287さんのいうとおり、その部分はエラーでした。
2番目の引数が〜なんてメッセージがでてるのでそこがおかしいのとずっと思ってまして、
色々試してる途中のコピペをしてしまいました。
Lua.hを追ってみたらどうやら3番目の関数で引っかかっている様子です。
これがメンバ関数では駄目みたいです。
とりあえずSetMapをクラスからはずしてみようとおもいます。
ありがとうございました。
0289デフォルトの名無しさん
NGNGん?まてまて、クラス?
C++のclassか?
static 関数にしてるだろうな?
0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNGDoxygen用のドキュメント書いてるんだけど、
_| ̄|○ どうすればいいかわからん
とりあえずこんな感じ
/*!
@brief 平行移動量を取得する。
@code
mtx= Matrix:new();
mtx:translate( { 10, 10, 10} );
pos= mtx:getpos();
@endcode
@param なし
@return 平行移動量 { x, y, z}
*/
static int getpos_( lua_State *L) {
}
0294デフォルトの名無しさん
NGNG>>293 すまん、おれもいいアイデアおもいつかん
0295293
NGNG_| ̄|○でした・・
0296デフォルトの名無しさん
NGNGDelphi から、Lua を使う。
Debugger もある(ソース付き)。
ttp://kuma.webj.net/delphi/index.html#luadelphi
俺も最近それみつけた
ちょうど自分でコンバート中だったから、使わせてもらおう
0298デフォルトの名無しさん
NGNGint getpos_( lua_State *L ){
int ret = getpos_impl();
lua_pushnumber( L, ret );
}
/*!
なんかコメント
*/
int getpos_impl(){
}
mpl使えれば上の(implじゃないほう)コードは自動生成できそうなんだけど。
mpl正直意味わからん_| ̄|○
0299デフォルトの名無しさん
NGNGhttp://nnr.s45.xrea.com/wiki/pukiwiki.cgi?Lua%A5%E1%A5%E2
コードは全部動作確認してません…ゴメンナサイ
0300デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNGいやいやいや!!!
ナイスナイス!!!ありがとう!!まじで!!!
感動した!
0303デフォルトの名無しさん
NGNGmetakitだった。すまん
0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNG0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNGデータ記述性ってのが一つの利点だと思うよ。
XML並の拡張性を担保していてなおかつプログラミング言語だから。
たとえばUIの拡張言語として採用してみたら、面白そうだと思わない?
あとテーブルの無茶さ加減が大好きだ。あふぉ杉。
0308デフォルトの名無しさん
NGNGほほ〜、いいかも知れんな。
日本語訳もあるし、時間が出来たらやってみるかな。
なんか、パスカルに似てる気がするけど、気のせいかな?
0309デフォルトの名無しさん
NGNGCで書かれてるならC真似れというのも散々言われてる欠点だ(苦笑
0310デフォルトの名無しさん
NGNGCを真似てくれたら楽なのにな〜
(これ覚えると、パスカル読める?)
0311デフォルトの名無しさん
NGNG参考にならんと思うよ。
まぁ本物のプログラマ名乗りたきゃ、最低5言語(パラダイムの違うものを)
学ぶべし、とどこかのエロイ人が言ってた。精進すべし。漏れはあと関数型
言語だけだ(苦笑
0312デフォルトの名無しさん
NGNGしかできない私はだめでつか?
0313デフォルトの名無しさん
NGNGざんねん あなたのぼうけんは こk(ry
0314デフォルトの名無しさん
NGNGきみにはLisp分が足りない。Schemeを処方しよう。毎食後服用すること。
そのうちSchemeが主食になる。
0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNG0317デフォルトの名無しさん
NGNG自分でコンパイルせにゃならんのか…
0318デフォルトの名無しさん
NGNGhttp://www1.neweb.ne.jp/wa/yamdas/column/technique/21-daysj.html
> ・少なくとも半ダースのプログラミング言語を学ぶこと。そのうちの一つはクラス抽象を
> サポートするもの(例えば Java や C++)、一つは関数抽象をサポートするもの(例えば
> Lisp や ML)、一つは構文抽象をサポートするもの(例えば Lisp)、一つは宣言的記述を
> サポートするもの(例えば Prolog や C++ テンプレート)、一つは coroutine をサポート
> するもの(Icon や Scheme)、そして一つは並列処理をサポートするもの(例えば Sisal)
> であること。
これDEATHね。
0319デフォルトの名無しさん
NGNG0320デフォルトの名無しさん
NGNG>YaneGameScript
ワラタ。YGSくわ。
0321デフォルトの名無しさん
NGNGとりあえずC++とSchemeやっとけばいいと思うよ。
0322デフォルトの名無しさん
NGNG無名関数も使えるぞ。
0323デフォルトの名無しさん
NGNGScheme1言語だけで、関数抽象と構文抽象と coroutine の3つはOKでつね。
0324デフォルトの名無しさん
NGNG-= ∧_∧
-=≡ ( ´∀`)
-=( つ┯つ
-=≡/ / //
-=≡(__)/ )
-= (◎) ̄))
0325デフォルトの名無しさん
NGNGが永久に動く世界だからなあ。
C++と合わせて2、3年ぐらいでいいんじゃね。
0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNGLuaプログラムファイル内にいれたいんですが・・・。
0328デフォルトの名無しさん
NGNG自分で拡張しる。
0329デフォルトの名無しさん
NGNG・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/
0330327
NGNGa= "\010";
とやって、バイナリデータをString内にいれることができました
>>328
拡張してみますた。
llex.cのread_stringに、"\x0aa"と書けるようにするのをいれてみました。
0331328
NGNGふむ。Luaのパーサって、シンプルで拡張しやすいでそ?
0333デフォルトの名無しさん
NGNG処理系サイズに貢献しているとか。
0334デフォルトの名無しさん
NGNG処理系サイズって何だ?
0335デフォルトの名無しさん
NGNGとりあえず、コンパイル後の実行サイズと脳内補完してみた。
0336デフォルトの名無しさん
NGNGhttp://www.lua.org/pil/
0337デフォルトの名無しさん
NGNGGJ!
0338名無しさん@そうだ選挙に行こう
NGNG0339名無しさん@そうだ選挙に行こう
NGNGでもBoostからBoost.Pythonだけインストールするとか普通しないから、
どっちが楽とかは言えないか……
速度性能は、独自形式にコンパイルができるだけLuaの方が上……なのか?
……あんまり変わらないかも。
0340名無しさん@そうだ選挙に行こう
NGNGあのデータ記述のお手軽さはなんだ。
0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNGとりあえず、組み込みにはluabindのほうが楽そうですね。
0343デフォルトの名無しさん
NGNG0344デフォルトの名無しさん
NGNG0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNG入門向けに、ちろっとね
0347デフォルトの名無しさん
NGNG0348デフォルトの名無しさん
NGNG>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 ならコルーチン終了してる
ってコーディングしてるけど今までのところ問題ない
0350348
NGNG普通は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;
}
0351348
NGNGcoroutine.yield("abc")
coroutine.yield()
coroutine.yield("def", "ghi")
ちなみにlua_open()したStateも
lua_newthread()で派生したコルーチンも
等質なStateなんで,
>>350みたくlua_newthread()する必要ないんだけど既出?
0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNGhttp://www.lua.org/work/lua-5.1-work1.tar.gz
The major change is incremental and *generational* garbage collection.ion.
0354デフォルトの名無しさん
NGNG複数の大きいファイルをio.linesで読もうとすると1つ目のは全部読んでくれるのに
2つ目の以降のは数十行程度で読むのをやめてしまう。
同じコードがMingWだと動作するのでAIX上だけかなあ。
0355デフォルトの名無しさん
NGNG0356デフォルトの名無しさん
NGNGSmallとかIoとか検索しにくい。
0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNG0359デフォルトの名無しさん
NGNG0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNG0362デフォルトの名無しさん
NGNG0363デフォルトの名無しさん
NGNGこれが使えるなら、yield,resumeがどこでも使えるようになるのかな。
0364デフォルトの名無しさん
NGNG説明してくれると助かるのですが・・・
すいません・・
0365デフォルトの名無しさん
NGNG0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNGバイトコンパイルしたら ".luac" ?
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNG0370デフォルトの名無しさん
NGNGLua 5.1 (work3) released.
0371デフォルトの名無しさん
NGNG0372デフォルトの名無しさん
NGNG0373デフォルトの名無しさん
NGNGおお〜!
luabindでやろうとしてたんですが、
もし他にいい方法があれば、情報をおしえていただきたいのですが
m(_ _)m
0374デフォルトの名無しさん
NGNGそろそろ boost-1.32.0 対応版が出るんじゃないでしょうか。
0375デフォルトの名無しさん
NGNGベータになってるから、使うのはちょっと不安・・・。
0376デフォルトの名無しさん
NGNGLua 5.1 (work4) released.
0377デフォルトの名無しさん
05/01/21 07:59:380378デフォルトの名無しさん
05/01/21 22:25:110379デフォルトの名無しさん
05/01/21 22:30:44,ノ⌒::::::::::::::::::::::::::::::::::::⌒ヽ_
_ノ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヾ、
(::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::)
_ノ:::::::::::::::;ヘ::::::::::ノ⌒ヽ:::::::::::::::::::::::::::::::::)
(::::::::::::::::::/  ̄ , ‐-、 |::::::::::::::::::::::::::::::::) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(:::::::::::::/ヽj _/ -‐-、 |::::::::::::::::::::::::::::::::) | ハッハッハ、君たち、
):::::::::ヾllli_、_,;iiiillllllllli <::::::;へ:::::::::::::::::( |
(::::::::::::/`i´ ,└=゚'┘ |::::| 6 |:::::::::::::::::::} < 相手が世界チャンピオンだからといって遠慮することは無い。
`〜、 ゝ| _コ、_、 /|::::| ソ/::::::::::;〜" |
ヾ|||ll|||||||||||l〉| 三ー'〜〜" | 胸を借りるつもりでドンと来い。
|||:二三|||| l ,三 ヽ、 \______________
|l ⌒ ||| :// ヽ=、-、_
|l、:( : : ||/ / ヽ, |  ̄\
/  ̄ / ノ / \
0380デフォルトの名無しさん
05/01/22 05:11:570381デフォルトの名無しさん
05/01/22 05:49:130382だなだな
05/01/31 23:35:150383デフォルトの名無しさん
05/02/09 13:52:42wxLua 2.6
ブレークポイントに対応した唯一の開発環境じゃないかと
0384デフォルトの名無しさん
05/02/24 12:57:34日本対応来た
うおぅ
以前、検索して見つけてパッチもらってきました。
その説はお世話になりました。
0386デフォルトの名無しさん
05/03/10 10:07:595.1 ベータ work5
0387デフォルトの名無しさん
05/03/10 12:51:42まだ5.1いぢってるのね。
何か5.1に思い入れでも?
0388デフォルトの名無しさん
05/03/10 19:33:21がんがってるのが嬉しい
0389デフォルトの名無しさん
05/03/14 00:40:35おれなら1週間もあれば作っちゃうよ。
0390デフォルトの名無しさん
2005/03/26(土) 00:40:00ぜひ作ってくれ
0391デフォルトの名無しさん
2005/03/28(月) 11:57:01もうかれこれ2週間経っているわけだが。
0392デフォルトの名無しさん
2005/04/04(月) 08:28:14奴いる??
0393デフォルトの名無しさん
2005/04/15(金) 15:48:50ちょっとキツイ気がする。
luaStateを保存してlua_resumeとかできればできそうではあるけど
luaStatecopyとか関数を作っておいてほしかった。
俺のチラシの裏の日記でした。
0394デフォルトの名無しさん
2005/04/15(金) 17:53:540395デフォルトの名無しさん
2005/04/18(月) 22:52:17どうでもいいが寂れたな
0396デフォルトの名無しさん
2005/04/21(木) 17:48:32あとはゲサロのシューティングとか
RigidChipsでも採用されるみたい
剛体シミュレータ RigidChips(part=3)
http://pc8.2ch.net/test/read.cgi/tech/1112892809/
0397デフォルトの名無しさん
2005/04/21(木) 21:38:470398デフォルトの名無しさん
2005/04/21(木) 22:32:160399デフォルトの名無しさん
2005/04/21(木) 22:34:380400デフォルトの名無しさん
2005/04/22(金) 20:01:58これ結構良さそう。
Cに近い構文で、GCやメモリ再確保無し。ランタイムサイズが5KB以下。
現時点では、文字列や配列がサポートされていないから
Luaの代替にはならないけれどシューティングゲームの敵の動き制御程度なら十分使えそう。
0401デフォルトの名無しさん
2005/04/22(金) 20:18:59RPGツクールXPのRubyしかないね
ゲーム用組み込み言語じゃLuaが圧倒的なシェアだ
0402デフォルトの名無しさん
2005/04/22(金) 20:19:240403デフォルトの名無しさん
2005/04/22(金) 20:20:01あれあれ、悪名高いHSPをお忘れですか?
0404デフォルトの名無しさん
2005/04/22(金) 20:31:04あれをどうやって組み込むんだ?ちょっと気になるぞ
0405デフォルトの名無しさん
2005/04/23(土) 08:12:400406デフォルトの名無しさん
2005/04/23(土) 14:56:36http://pc5.2ch.net/tech/kako/1034/10341/1034182349.html
0408デフォルトの名無しさん
2005/04/24(日) 18:15:210409デフォルトの名無しさん
2005/04/24(日) 18:45:270410デフォルトの名無しさん
2005/04/26(火) 12:49:50return x+y
end
lua_State* L = lua_open();
luaopen_base(L);
lua_dofile(L, "add.lua");
lua_pushstring(L, "add");
lua_gettable(L, LUA_GLOBALSINDEX);
lua_pushnumber(L, 2);
lua_pushnumber(L, 5);
lua_call(L, 2, 1);
printf("%d\n", (int)lua_tonumber(L, 1));
lua_close(L);
luaopen_base(L); を呼ぶとadd関数の戻り値が0になるんだがなぜ? (lua 5.0.2, vc++ 7.1)
0411デフォルトの名無しさん
2005/05/01(日) 13:45:340412デフォルトの名無しさん
2005/05/01(日) 14:53:59同じことを試してるけど、これで何とかならないかな。
http://luaforge.net/projects/pluto/
0413デフォルトの名無しさん
2005/05/01(日) 16:08:32lua_open_base()の呼び出しでスタックの状態が変わってる。
- lua_tonumber(L, 1)
+ lua_tonumber(L, lua_gettop(L))
>>411
なんやらよくわからんがコルーチンの状態ならlbaselib.cの
luaB_costatus()にそれっぽいコードが。
0414デフォルトの名無しさん
2005/05/01(日) 17:35:42ありがとうございます。
コルーチンじゃなくて、メインルーチンの状態を取得する方法なんです。
Luaスクリプトを読み終わったら、次のスクリプトを読ませたいと思っています。
Luaスクリプト中で次のスクリプトを読ませると、呼び出し元が残ってしまいますよね?
0415414
2005/05/01(日) 19:15:47ことにしました。
お騒がせしました。
0416デフォルトの名無しさん
2005/05/04(水) 16:29:150417デフォルトの名無しさん
2005/05/04(水) 17:18:06やめといたほうがいいな。
0418デフォルトの名無しさん
2005/05/04(水) 17:37:10やっぱり?
不便だよねこれ。
ソースコードすげー多いし(長いよりましか?)、
いちいちライブラリファイル作るの面倒だし。(これ、意外とネックだよ)
で、やっぱりLuaで糞真面目に組んじゃうのはよくないわなw
結局さ、Luaのデバッカが必要になるぐらいの規模でLuaを使っちゃった時点で
Luaの存在意義はなくなるんだよな?
スレのはじめで「何に使うかが問題だ」っていってたのってそういうことか、って今わかった。
組み込みスクリプトさようなら。
いくつか試しましたが、ゲーム製作にはいらないです。んじゃ。
0419デフォルトの名無しさん
2005/05/04(水) 18:59:27お前試しても無いだろ。「何がやっぱり?」だ、バカ丸出し。
Luaは小さい。
>ソースコードすげー多いし(長いよりましか?)、
>いちいちライブラリファイル作るの面倒だし。(これ、意外とネックだよ)
はぁ?お前こんなのめんどくさがって、そんなんでゲーム作れんのか?
>結局さ、Luaのデバッカが必要になるぐらいの規模でLuaを使っちゃった時点で
>Luaの存在意義はなくなるんだよな?
お前一行も組んでない癖に、何しったかぶってんの?頭悪。
>組み込みスクリプトさようなら。
>いくつか試しましたが、ゲーム製作にはいらないです。んじゃ。
HSPに逆戻りか。お前にはお似合いかもな。んじゃ。
0420デフォルトの名無しさん
2005/05/04(水) 19:03:33大好きなLua馬鹿にされて頭にきちゃった?w
0421デフォルトの名無しさん
2005/05/04(水) 19:07:060422デフォルトの名無しさん
2005/05/04(水) 19:19:22Lua数度しか使ったことねーが、お前のあまりのバカさ加減に頭来たねw
バカにされて頭来ちゃった?w
0423デフォルトの名無しさん
2005/05/04(水) 19:54:21なんだ、やっぱり使わないんじゃん。
俺と同じ結論だしてるくせに何が不満なのよ。
0424デフォルトの名無しさん
2005/05/04(水) 20:09:48おぉ、ありがとう!!
早速、試してみるよ。
0425デフォルトの名無しさん
2005/05/04(水) 20:15:550426デフォルトの名無しさん
2005/05/04(水) 20:20:52結論が同じ?w
バカの思考回路は意味不明だなw
0427デフォルトの名無しさん
2005/05/04(水) 20:28:30使ってないって部分は同じなんでしょ?
0428デフォルトの名無しさん
2005/05/04(水) 20:43:30いやいや、417はつかわなくていいんじゃ?
へたにつかって、ここで質問されても困るしw
0429デフォルトの名無しさん
2005/05/04(水) 21:25:54バカが集まってくるのは仕方が無い。
0430デフォルトの名無しさん
2005/05/04(水) 21:45:24Luaヲタ乙wwwwwっうぇwwww
0431デフォルトの名無しさん
2005/05/04(水) 21:45:530432デフォルトの名無しさん
2005/05/04(水) 21:51:490433デフォルトの名無しさん
2005/05/04(水) 21:56:130434デフォルトの名無しさん
2005/05/04(水) 22:08:12学の無いニートが暇つぶしに自分には理解できない板で
テキトーに荒らしてんだろうなぁ。
まったく、リアルではもちろん、2chでも足を引っ張るしか能が無いんだなぁ。
0435デフォルトの名無しさん
2005/05/04(水) 22:17:06大好きなHSPが貶されて頭にきちゃった?w
0436デフォルトの名無しさん
2005/05/04(水) 22:17:54418を読んで同じ感想を持ったよ。
書き込もうとは思わなかったが。
0437デフォルトの名無しさん
2005/05/04(水) 22:20:470438デフォルトの名無しさん
2005/05/04(水) 22:37:21っていうのは、言い訳でしかないか。
0439デフォルトの名無しさん
2005/05/04(水) 22:48:01とんだ早漏野郎だよお前は。
お前にはがっかりだよ。
0440デフォルトの名無しさん
2005/05/05(木) 12:03:02ってありませんか?英文でかまわないんで(日本語ありそうにないので)
0441デフォルトの名無しさん
2005/05/05(木) 12:21:10こんなもん使えればそれでOKな話だろ。
これ使ってどこまでどんなことがしたいのかわからないとリンクを貼る方も困る希ガス。
0443デフォルトの名無しさん
2005/05/07(土) 02:05:250444デフォルトの名無しさん
2005/05/18(水) 14:11:40for文の修正の仕方が分からないッス。
lparser.cのfornum()を修正すれば良いのは分かっているんだけど、、、
やっぱり
for (i = 0; i < 10; i= i+1) {
...
}
のような記述にするのって難しい?
だれか教えて!
ちなみに、do-while文の追加と//コメントと/**/の複数行コメントの追加は
簡単に出来たデス。
0445デフォルトの名無しさん
2005/05/18(水) 19:49:19出来上がったら公開してね
0446デフォルトの名無しさん
2005/05/18(水) 22:38:21はぁ?何言ってんの?
乞食は消えろカス
0448Rubyist!
2005/05/18(水) 23:37:060449444
2005/05/18(水) 23:47:56SpiderMonkeyのライセンスがよく分からなかったのが問題です。
前にSpiderMonkeyを取ってきて見てみたらライセンスのファイルが
見当たらなかったです。ソースの先頭には書いてあったが、
ソース毎に違うライセンスの奴だったりって記憶にあるんですが・・。
つか、もしSpiderMonkeyのライセンスを記述してるサイト等が
あったら教えて欲しいです。
つか、SMって省略はどうよ?
0450デフォルトの名無しさん
2005/05/19(木) 01:38:20mozillaのコードの一部ならばMPLじゃなかろうか。
(MPL/GPL/LGPLのどれでも適用可能、という方向みたい)
http://www.mozilla-japan.org/MPL/
http://www.mozilla.org/MPL/
Netscapeで使われているとおり、プロプライエタリな使い方も可能ぽいけど、
いろいろ複雑そうだ。
0451Rubyist!
2005/05/20(金) 02:31:200452デフォルトの名無しさん
2005/05/20(金) 03:25:51こういうのってライセンス厨のオナニーにしか見えない。
オプソでしかありえない問題だしw
0453デフォルトの名無しさん
2005/05/20(金) 07:43:15何度もあるじゃん。
0455デフォルトの名無しさん
2005/05/23(月) 17:55:29ただヘッダをインクルードすればよい?
なんかexeとか落ちてたんですけど、これってどういうことでしょう。
どういう仕組みで動くのかよくわかんないです。
とりあえずVC++で使えるようにするまでの設定と、
どういう仕組みで動くのか、どなたか教えてください。
0456デフォルトの名無しさん
2005/05/23(月) 20:07:160457デフォルトの名無しさん
2005/05/23(月) 21:02:55ひろったluac.exeとかはコンパイラですかね。
0458デフォルトの名無しさん
2005/05/26(木) 14:27:22110 A=2
120 B=3
130 C=7
140 A=13
150 C=A+B
160 B=C*2
このプログラムが実行された直後、つまり160行目まで処理が終わったとき、
変数A,B,Cの値はそれぞれいくらか?
A( )B( )C( )
0459デフォルトの名無しさん
2005/05/26(木) 20:32:08なにこの幼稚園レベルの問題
0460デフォルトの名無しさん
2005/05/27(金) 18:25:085.0.2のヘッダと、↓からlibを拾ってきて、[ツール]→[オプション]
でこれらを読み込むように設定しました。
ttp://sourceforge.net/project/showfiles.php?group_id=32250&package_id=115607
それで、ttp://i-saint.abz.jp/2004.html#20040219
の2/19日の記事をそのままコピペしてコンパイルしてみたんですが、
main.obj : error LNK2001: 外部シンボル "_lua_tonumber" は未解決です
みたいなエラーが沢山出ます。どうしたらよいでしょうか?
0461デフォルトの名無しさん
2005/05/27(金) 18:48:040462デフォルトの名無しさん
2005/05/27(金) 18:56:120463デフォルトの名無しさん
2005/05/27(金) 18:58:490464デフォルトの名無しさん
2005/05/27(金) 19:05:200466デフォルトの名無しさん
2005/05/27(金) 19:17:030467460
2005/05/27(金) 19:18:130468デフォルトの名無しさん
2005/05/27(金) 19:35:21いかに自分がゴミであるかを思い知る。
0469460
2005/05/27(金) 20:53:56うまくいきました。
[オプション]の所に設定するのと何が違うんだろう。。
0470デフォルトの名無しさん
2005/05/27(金) 21:55:50http://www.lua.org/work/lua-5.1-work6.tar.gz
Here are the main changes since 5.1w5:
- standard distribution in only one library (lualib.a merged into lua.a)
- `loadlib' no longer global (packaged inside `package')
- better luaconf.h
- debug information includes last line of a function definition
- metatables for all types
- new "primitive" getn
- new `mod' (`%') operator
- new math functions
- new operation *t (for size of t)
- new protocol to open standard libraries
- using `require' to implement `-l' in bin/lua
There are probably several other small changes that we forget right now...
All the usual caveats of work versions still apply, including the lack
of documentation and the plea for your feedback.
This is really the last work version before 5.1 (alpha), for which no ETA
currently exists. :-) For that, we have to work on the documentation.
Enjoy.
--lhf
0471デフォルトの名無しさん
2005/05/27(金) 22:06:480472デフォルトの名無しさん
2005/05/28(土) 02:12:010473デフォルトの名無しさん
2005/05/28(土) 02:14:23他のって例えば何?
0474デフォルトの名無しさん
2005/05/28(土) 11:24:310475デフォルトの名無しさん
2005/05/28(土) 13:58:440476444
2005/05/30(月) 04:05:04http://xbb.jp/uchichi/ulua-5.0.2_2005_05_30.lzh
主な追加は
・switch文の追加
・Cのfor文ライクな奴を追加
・continueの追加
・//と/**/のコメントの追加
など
主な修正は
・~=は !=に、andは&&に、orは||に、notは!に。
・数字の0は偽に、数字の0以外は真に。
など
詳しくは、uLua.txtを見てね。
暇な方は、試してみてね。
0477デフォルトの名無しさん
2005/05/30(月) 09:26:380478デフォルトの名無しさん
2005/05/30(月) 19:43:39乙
とりあえずもらったよ。
0479デフォルトの名無しさん
2005/05/30(月) 22:13:30おい!!!!すげええええな!!!!!!!
do end を { } にしたとこのほうが、インパクトでけぇ!
0480デフォルトの名無しさん
2005/05/30(月) 23:03:58乙です。
これから活用させていただきます。
0481444
2005/06/01(水) 03:07:14functionでreturnを強制した場合、function内にfor(xx in xx)な奴があると
returnパスを検索する所で無限ループしてしまう。。。。
returnパスを検索するアルゴリズムはどんなのが適当なのだろうか。。。。
一応、修正した奴を以下に置いておきます。
http://xbb.jp/uchichi/ulua-5.0.2_2005_06_01.lzh
まだバグあると思うので、見つけたら教えて下さい。
0482デフォルトの名無しさん
2005/06/01(水) 03:26:49Lua5.1に未対応というバグがありますよ
0483デフォルトの名無しさん
2005/06/01(水) 12:56:050484デフォルトの名無しさん
2005/06/01(水) 13:11:47本家にフィードバックするというのはどうでしょう? >>482 みたいな注文もなくなりますよ。
0485デフォルトの名無しさん
2005/06/01(水) 16:42:570486デフォルトの名無しさん
2005/06/01(水) 18:36:03他の言語でも後からforeach増えたりしてるし
そのままパッチ適用するかはともかくアイデアは面白いと思うよ
0487デフォルトの名無しさん
2005/06/01(水) 19:44:27構文をC風にしたってだけのようにしか見えんが。
0488デフォルトの名無しさん
2005/06/01(水) 20:26:18まぁ実用性は皆無で、純粋にネタとして。
0489デフォルトの名無しさん
2005/06/01(水) 20:38:070490デフォルトの名無しさん
2005/06/01(水) 21:26:44ああそう。
で、Lua開発者なら「C構文にするとは面白いアイデアだ」とか言うと思ってんの?
0491デフォルトの名無しさん
2005/06/01(水) 21:34:16なにか Lua には文法の拡張を提案してはいけない特殊な理由でもあるの?
0492デフォルトの名無しさん
2005/06/01(水) 22:14:220493デフォルトの名無しさん
2005/06/01(水) 22:14:23根本的な変更なんて採用されるわけねーだろ…。
もしC構文の方がいいと考えてるなら、最初からそうしてるだろうし。
C構文風にもどちらでも書けます、なんて害にしかならねーし。
0494デフォルトの名無しさん
2005/06/01(水) 22:26:05やっちゃえばいいんだよ
04951
2005/06/01(水) 23:16:12C風っていうならば、こっちにも注目だな。
0496デフォルトの名無しさん
2005/06/02(木) 04:37:57かなり開発者頑固ぽいよ^^;
0497デフォルトの名無しさん
2005/06/02(木) 07:30:280498デフォルトの名無しさん
2005/06/02(木) 20:28:060499444
2005/06/02(木) 22:14:10http://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
0500444
2005/06/02(木) 22:24:48switchの追加とかだけだったら可能かもしれませんが、
そもそもswitchの追加なんて、luaの開発者なら数分で出来る
レベルです。continueは、luaのVMにFOR文用のオペコードが
あるので、ちょっと面倒かもしれませんが。
でもって、5.1ですが、luaをアプリに組み込んで
使用することしか考えていないので、5.1に対応する理由が
特に見当たらないです。
アプリに組み込んで使うのに、マニュアルを見ながら書くってのでは
面倒なので、ありがちな構文っぽく修正しているのでした。
0502デフォルトの名無しさん
2005/06/03(金) 03:04:300503デフォルトの名無しさん
2005/06/04(土) 02:52:510504デフォルトの名無しさん
2005/06/04(土) 03:10:080505デフォルトの名無しさん
2005/06/04(土) 03:52:45Scheme は奇麗で実装も多いけど、S 式にアレルギーある人も多いからなぁ
あとは Python と Ruby か
Lua は適度に汚かったのが評価されてたのかと思ってたけど...
0506デフォルトの名無しさん
2005/06/04(土) 11:40:59JSは適当なライセンスの実装が無い
0507デフォルトの名無しさん
2005/06/04(土) 12:01:320508?デフォルトの名無しさん
2005/06/04(土) 12:46:210509デフォルトの名無しさん
2005/06/04(土) 14:43:57Javaはまもなく過去の言語となる
0510デフォルトの名無しさん
2005/06/04(土) 15:16:560511デフォルトの名無しさん
2005/06/04(土) 15:58:510512デフォルトの名無しさん
2005/06/04(土) 22:09:390513デフォルトの名無しさん
2005/06/04(土) 22:14:33というのを想像しちまったぜいちくしょうめw
0514デフォルトの名無しさん
2005/06/04(土) 23:25:02Luaは実行パフォーマンスも結構いい線行ってるよ。
http://dada.perl.it/shootout/ みる限り、Ruby/Python <=> C/C++の大体中間くらい。
スレッドや、サイズが小さい所等が評価されてる。あと、global変数なしってのも組み込み向けにとっては有難い。
0515デフォルトの名無しさん
2005/06/13(月) 17:14:31ことってできますか?
0516デフォルトの名無しさん
2005/06/14(火) 00:56:530517デフォルトの名無しさん
2005/06/14(火) 11:10:590518デフォルトの名無しさん
2005/06/14(火) 11:32:53たぶんフリーフォーマット言語なLuaで"行"にジャンプだぁ?
ってことなんじゃない。
正直漏れもなにがおかしいのかわかんなかったけど。
でまぁ>>515 にマジレスすると
Luaにはラベル等もちいたりして途中から実行する機能は
スクリプトの仕様にもCからの呼び出しの仕様にもない。
0519デフォルトの名無しさん
2005/06/14(火) 11:43:260520デフォルトの名無しさん
2005/06/14(火) 20:58:340521デフォルトの名無しさん
2005/06/14(火) 21:15:01無いんですか orz
>>520
ありがとうございます。
調べてみます。
0522521
2005/06/16(木) 23:49:19うーん、難しいです。
0523デフォルトの名無しさん
2005/06/17(金) 00:59:41そもそもなんで「行にジャンプ」させようと思ったの?
目的がわかれば別の対処方法があるかもよ。
0524デフォルトの名無しさん
2005/06/17(金) 01:16:500525521
2005/06/17(金) 01:50:13ゲームのスクリプトにLuaを使おうとしていますが、ノベル系のゲームに
使う場合はスクリプトの実行途中でもセーブ出来るようにする必要があると
思います。
そのためロードして実行を再開する時に指定行からの実行が欲しくなりました。
0526デフォルトの名無しさん
2005/06/17(金) 01:58:332. ロード時は、以前の場所にくるまですべて処理をスキップ。
みたいなんでどう
0527デフォルトの名無しさん
2005/06/17(金) 08:44:360528デフォルトの名無しさん
2005/06/17(金) 14:43:14ノベル系作るなら保存以外にも分岐ジャンプ等必要なわけだし
結局ステートマシンくむことになるのでは?
そしたらステートの保存読込だって自分で書くことになる。
まぁ最終的に>>527に同意。
自分で一から全部作りたいんならともかく吉里吉里とかあるんだしさ。
0529521
2005/06/17(金) 19:51:11なんだかあっさり出来てしまって、あちこちのスクリプトライブラリをうろうろした時間
はなんだったんだろうと、ドッと疲れました。
>>526
その場合だとif文の途中やループの途中ではダメだと思います。
>>527
自作のスクリプトを作成すれば一番いいんでしょうが、自分にはそんな技術がないので、
ライブラリに頼ってしまってます。
>>528
分岐ジャンプは別途作成済みなんです。
ノベルというよりRPGのノベル部分に欲しいので、吉里吉里では無理でした。
0530デフォルトの名無しさん
2005/06/17(金) 20:14:150531デフォルトの名無しさん
2005/06/18(土) 01:01:320532デフォルトの名無しさん
2005/06/18(土) 01:40:150533デフォルトの名無しさん
2005/06/18(土) 19:17:55やれやれ・・・
0534デフォルトの名無しさん
2005/07/27(水) 14:04:170535デフォルトの名無しさん
2005/07/31(日) 04:51:41関係ない記事だけど
0536デフォルトの名無しさん
2005/08/08(月) 10:27:02HDDはあるけど、データしかおかない。飛んだら飛んだでざまーみろ、みたいな。
HTTP以外にも全部対応。フロッピー入れて一晩寝てると謎のファイルがぎっしり、みたいなの。
方法ですが、ベースはLinuxで、
そこにgethtmlw みたいなマルチスレッド対応ダウンローダーを、
軽量スクリプト言語で作ればOKかな、と。
この構成で質問です。
1、ホントに軽いですか。実行速度だけじゃなく、バイナリサイズも気になるのですが。ライブラリまで全部入れて500kバイト以下だとうれしいです。
2、複数のTCPセッションを張りたいわけですが、ブロッキングI/Oをマルチスレッドで多重化できますか。
select() を使う方法しかないと、かなりやる気が減ります。
0537デフォルトの名無しさん
2005/08/08(月) 23:31:342 マルチスレッドがありません
Cで書いたほうがいいんじゃね?わざわざスクリプトでやんなくても。
0538デフォルトの名無しさん
2005/08/09(火) 01:31:02Luaライブラリは必要に応じて追加なので正確なサイズは
必要なLuaライブラリが使用しているCライブラリのサイズによる。
2 マルチスレッドに対応しているので、当然できる
どっちを信じるかは>>536次第(笑)
0539デフォルトの名無しさん
2005/08/09(火) 08:22:040540536
2005/08/09(火) 11:10:26多分、ここにヒントがあるんですよね。
ただいま解読中。
↓ ↓ ↓
http://www.lua.org/pil/9.4.html
0541デフォルトの名無しさん
2005/08/09(火) 15:32:19ネット関係のライブラリが充実してない言語だと厳しいんじゃないかと
0542デフォルトの名無しさん
2005/08/09(火) 20:41:33「Cでまともにプログラミングする能力が無いので
スクリプト言語を使いたいです」
0543536
2005/08/11(木) 04:12:20lsocket.so が、カレントにあるときは動くのですが、
/usr/local/share/lua50/ におくと動きません。
パスは通ってるっぽいんですが、何がいけないんでしょうか。
0544デフォルトの名無しさん
2005/08/11(木) 04:18:41export LUA_CPATH=/usr/local/share/lua50/?.so
が正解。
0545デフォルトの名無しさん
2005/08/11(木) 11:10:09これ、どうやってやるんですか。
普通にやると、200Kぐらいありますよね。
多分、luac の出力の実行に特化した「何か」を
使うんでしょうが、どこにありますか。
538 :デフォルトの名無しさん :2005/08/09(火) 01:31:02
1 Luaそのもののサイズは50k以下。
0546デフォルトの名無しさん
2005/08/11(木) 22:59:460547デフォルトの名無しさん
2005/08/12(金) 12:48:520548538
2005/08/13(土) 03:27:08オレはWin環境でC標準ライブラリ等をDLLでリンクしているため
Lua部分は50k程度になってる。Linuxでどうなるかは知らない。
0549デフォルトの名無しさん
2005/08/13(土) 06:23:23すげえ。ダイナミックリンクしといてファイルサイズが以下略
0550デフォルトの名無しさん
2005/08/13(土) 10:36:190551538
2005/08/13(土) 11:08:40標準ライブラリのサイズなんかしらん。気に入らないなら自力で作れ。
0552デフォルトの名無しさん
2005/08/24(水) 17:35:51http://www.luaplayer.org/
PSPでゲームとかLuaで書ける みたいな
Luaは初めてなのですが、C++マンドクセな自分にも
とても使いやすい感がします
書き方が独特でまだ慣れないけど、なんか楽しくなってきた
0553デフォルトの名無しさん
2005/08/24(水) 18:33:33Luaの移植性の高さが効いてるね。
World of Warcraftにも採用されてるらしいし、そろそろブレイクか?
0554デフォルトの名無しさん
2005/08/31(水) 20:03:50なんだこいつw いたたたたwww
0555デフォルトの名無しさん
2005/09/08(木) 05:34:360556デフォルトの名無しさん
2005/09/08(木) 13:36:49何がかわったん?
0557デフォルトの名無しさん
2005/09/08(木) 14:35:540558フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2005/09/18(日) 02:01:250559デフォルトの名無しさん
2005/09/19(月) 23:48:49俺が使ってるのが実は++という可能性もありそうだが
0560デフォルトの名無しさん
2005/09/19(月) 23:52:400561フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2005/09/20(火) 11:31:330562デフォルトの名無しさん
2005/09/20(火) 11:43:510563デフォルトの名無しさん
2005/09/20(火) 19:00:440564デフォルトの名無しさん
2005/09/23(金) 00:12:400565フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2005/09/23(金) 02:47:450566デフォルトの名無しさん
2005/09/24(土) 10:37:10Luaの売りって何?高速なの?
0567フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2005/09/24(土) 11:09:07クリーンなライブラリとして実装されてるので、組み込みが容易なことだ。
そしてスクリプト言語の中でとても速いこと。
Schemeを思わせる最小主義。
ライブラリが貧弱なのでstandaloneなら他を使うのがいいだろう。
LuaはC/C++プログラムに組み込んでナンボ。
高速でまっとうな文法なSchemeってところか。
0568フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2005/09/24(土) 11:10:200569デフォルトの名無しさん
2005/09/24(土) 11:13:220570フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2005/09/24(土) 11:17:12ミリワロス
0571デフォルトの名無しさん
2005/09/24(土) 23:30:20関数が複数の値を平気で返しちゃうとことかが男らしいんだよ
0572フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2005/09/25(日) 03:35:500573デフォルトの名無しさん
2005/09/25(日) 07:35:580574デフォルトの名無しさん
2005/09/27(火) 13:17:050575フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2005/09/27(火) 14:49:530576デフォルトの名無しさん
2005/09/27(火) 15:07:220577デフォルトの名無しさん
2005/09/27(火) 15:11:34えーと、絵師はいませんか?絵師は?
0578デフォルトの名無しさん
2005/09/27(火) 16:06:16-△-
||
0579フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2005/09/27(火) 16:06:37犬猫なら11歳はババァだぜ。
>>577
Luaちゃんのことかー
0580フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2005/10/02(日) 01:41:090581デフォルトの名無しさん
2005/10/12(水) 17:04:11詳細プリーズ
0582デフォルトの名無しさん
2005/10/12(水) 18:08:56521じゃないけど、LuaVMにはJMP命令のバイトコードが存在するようだよ。
参考:http://lua-users.org/lists/lua-l/2004-09/msg00244.html
0583デフォルトの名無しさん
2005/10/12(水) 18:11:330584デフォルトの名無しさん
2005/10/19(水) 03:38:06サンクス
一応出来たみたい
0585デフォルトの名無しさん
2005/10/22(土) 11:55:29やるなっ
0586デフォルトの名無しさん
2005/10/27(木) 23:11:23誰か5.1alphaに切り替えたやついる?
GCが気になるんだが
0587デフォルトの名無しさん
2005/10/29(土) 18:45:01perl で
$actor{$gid}{'name'} とか $actor{$gid}{'type'} となってるやつをluaで表現するにはどうすればいいんだ?
actor = {} で、宣言することまでは分かった
0588デフォルトの名無しさん
2005/10/30(日) 09:47:49Lua for RO (RagnarokOnline) vol.1
中身
C:\Program Files\Gravity\RagnarokOnline\AI\USER_AI\Const.lua
C:\Program Files\Gravity\RagnarokOnline\AI\USER_AI\Util.lua
C:\Program Files\Gravity\RagnarokOnline\AI\USER_AI\AI.lua
この辺のファイル (Lua本体は改造不可。Luaスクリプトのみ改変可能)
Lua - 関連スレ
プログラミング言語 Lua その2
http://pc8.2ch.net/test/read.cgi/tech/1063711237/l50
RO - 関連スレ (dat落ち)
perl2exe forRO vol.5
http://pc8.2ch.net/test/read.cgi/tech/1034584989/l50
perl2exe forRO vol.4
http://pc8.2ch.net/test/read.cgi/tech/1034579892/l50
他 MMOサロンに何個か・・・
0589デフォルトの名無しさん
2005/10/30(日) 10:21:55けど、ホムの為に必要なんだよね確か
0590デフォルトの名無しさん
2005/10/30(日) 10:23:18そうそう
homuのAI見てるとBOTのように見えてくる orz
0591デフォルトの名無しさん
2005/10/30(日) 10:31:09GetActors () - 配列で画面内のモンスター、キャラクターのgidが入ってる (アイテム等も入ってる可能性有)
例
local actors = GetActors ()
for i,v in ipairs(actors) do
if (v ~= owner and v ~= myid) then
if (IsMonster(v) == 1) then -- <-モンスター判定(枝のmobも判別可能)
enemys[index] = v
index = index+1
end
end
end
IsMonster(v) とか GetV (V_TARGET,v)
v には GetActorで取得できる gid を入れる
0592デフォルトの名無しさん
2005/11/03(木) 11:17:31OnATTACK_ST の攻撃部分
if (MySkill == 0) then
+ local calc
+ calc = GetTick () - MyAttackTime
+ if (250 < calc) then
Attack (MyID,MyEnemy)
+ MyAttackTime = GetTick ()
+ end
else
ウェイト入れる (この場合 250ms)
入れないとき 125ms 間隔で攻撃 (008Aパケは ASPD依存でかえってくるので 700-900msぐらい)
攻撃を鯖任せにできるフラグがあるはずだが使用してない (0233パケ)
0593デフォルトの名無しさん
2005/11/03(木) 14:30:52宣言するだけでテーブルが構造体になるlua面白いのですが、
そのテーブルのコピーは一発ではかけないのでしょうか?
ゲームの初期化に使いたいのですが…
-----------------
InitData={
Mode=0,
Score=0,
Life=0,
}
GameData={}
GameData = InitData --これだとInitDataのポインタをGameDataに渡すだけ。
GameData.Mode=1 -- InitData.Modeも1になる
-----------------
C言語ライクにコピーして欲しいのですが。
foreachを使用するのでしょうか。理解がおいついてません。
現在は仕方ないのでコピーする関数作ってます。
CopyGameData(des,src)
des.Mode = src.Mode
・
・
end
メンバ増やすたびに書くのは絶対バカだなーと思いながら
書いてるんですが。
0594デフォルトの名無しさん
2005/11/03(木) 14:43:240595デフォルトの名無しさん
2005/11/03(木) 18:23:02この表現だけでその人のバックグラウンドがわかるな
0596デフォルトの名無しさん
2005/11/03(木) 23:32:550597593
2005/11/04(金) 02:22:01マニュアル読んでもまだ分かりません。
一つだけ知りたいのですが、
テーブルの実体を一発でそのままコピーできる
書式・関数は存在しますか?
0598デフォルトの名無しさん
2005/11/04(金) 10:21:14古い文献だけど
ttp://staff.aist.go.jp/yutaka.ueno/lua/spe96jp.html
のcloneとか参考にしてみれば?
テーブル要素がテーブルだった場合等考慮してないけど。
0599デフォルトの名無しさん
2005/11/04(金) 10:48:19for k,v in pairs(src) do dst[k]=v end
lua-l archiveを"Deep copy"で検索す・・・うわめんどくせえ
0600デフォルトの名無しさん
2005/11/04(金) 15:37:26ttp://lua-users.org/lists/lua-l/2003-05/threads.html#00077
循環参照があったらどうすんだとかmetatableはどうすんべとか
いろいろ盛り上がってますが
結局ケースバイケースなんかね
ゲームの初期化に使うだけならdeep copyでないcloneで十分なんじゃ
0602デフォルトの名無しさん
2005/11/05(土) 17:56:25テストしてないけど
function tableclone(src)
local dst = {}
for k,v in pairs(src) do
if type(v)=="table" then
dst[k]=tableclone(v)
else
dst[k]=v
end
end
return dst
end
0603デフォルトの名無しさん
2005/11/05(土) 17:57:49function 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
0604593
2005/11/06(日) 00:32:25循環や参照などを行っているテーブルではなかったので、
一旦は597さんの書式で対応できました。
ありがとうございました。
0605デフォルトの名無しさん
2005/11/13(日) 17:33:23なんか循環参照してるんじゃない?
0606デフォルトの名無しさん
2005/11/15(火) 13:59:18Java用スクリプト言語 Groovy
C/C++用スクリプト言語 Lua
って感じかな?
0607デフォルトの名無しさん
2005/11/15(火) 19:18:17ほー
0608デフォルトの名無しさん
2005/11/15(火) 20:01:0816進数文字列を受け取って、10進数にして返す関数作った。
0610
2005/11/21(月) 23:28:23Waba
http://web.cc.yamaguchi-u.ac.jp/~shingo/WabaWorld/
組み込み用のJavaのサブセットだそうだ。
面白そう。
0611デフォルトの名無しさん
2005/11/24(木) 13:35:16freshmeatにあるみたいなんだけど、ないのでDebianのを落としてきた。
あと、Smallも名前がPawnに変わっていた。
0612デフォルトの名無しさん
2005/11/24(木) 21:12:16smallは検索しにくいもんなぁ
http://www.compuphase.com/pawn/pawn.htm
0613デフォルトの名無しさん
2005/11/25(金) 12:01:37スレタイ嫁
0614デフォルトの名無しさん
2005/11/25(金) 18:01:07過去ログ嫁
0615
2005/11/25(金) 21:24:29過去ログみてくれ。Luaみたいな小さな言語もOKのハズ
次は、スレタイ変えてくれ。
[Lua]Lightweight Language統合[Io]
で。
0616デフォルトの名無しさん
2005/11/25(金) 21:41:42逆じゃね?
06171
2005/11/26(土) 14:22:12お勧めのHPキボンぬ。
0618デフォルトの名無しさん
2005/11/27(日) 16:31:36言語仕様はPerl+Objective-CでかつJavaVM上で動くってやつだけど
公式
http://sleep.hick.org/
言語仕様
http://sleep.hick.org/sleeplang.html
膨大なPerlの資産の焼き直しをしようとしたけど
後継のPerl6に絶望した人におすすめ?
0619デフォルトの名無しさん
2005/11/27(日) 18:12:44筑波大のセンセが書いたPDFにこんなのがあるけど
プログラミング言語研究に未来はあるのか? -スクリプト言語のススメ-
http://www.csg.is.titech.ac.jp/ppl2002/proceedings/tanaka.pdf
これ、スクリプト言語の歴史についてうまくまとめているのでテンプレに推奨します
特に世代別スクリプト言語の章はおすすめ。
個人的には宿り木(パラサイト)としてのスクリプト言語の中でも
1)組み込み向け軽量処理系言語(Lua,Waba)
2)Perl的多機能言語(Perl,Python,Ruby,PHP,Groovy)
に分けたほうがいいと思うけど
0620デフォルトの名無しさん
2005/11/28(月) 12:21:55http://f21.aaa.livedoor.jp/~kizz/prog/io/Docs_ja.html
0621611
2005/11/28(月) 20:03:36ああごめん。確信はないや。
一次配布元がわからなくて、Debianのパッケージがngsだったので、
てっきりnjs→ngsに変わったのだと思っていた。
>> 618
まんまperlに見えるね。
しかし、なんでこう、検索しづらい名称を付けるのかなあ。
0622デフォルトの名無しさん
2005/12/01(木) 16:57:130623デフォルトの名無しさん
2005/12/09(金) 20:49:34betaの次はrcなのか?それともgamma?
本当に年内に出るのか不安になってきた。
0624デフォルトの名無しさん
2005/12/15(木) 13:23:42↑のほうで出てたソース改変しただけなんだが
function deepcopy(table,fc) do
if type(fc) == "undef" then
fc = { }
end
local ret = { }
fc[table] = ret
for k,v in pairs(src) do
if type(v)=="table" then
if fc[v] then
ret[k]=fc[v]
else
fc[v] = tableclone(v,fc)
ret[k]= fc[v]
end
else
ret[k]=v
end
end
return ret
end
0625デフォルトの名無しさん
2005/12/15(木) 23:41:28os.exitだとプロセス落ちちゃうけど、そうじゃなくてC側に復帰したい。
0626デフォルトの名無しさん
2005/12/16(金) 08:23:480627デフォルトの名無しさん
2005/12/16(金) 18:12:110628デフォルトの名無しさん
2005/12/17(土) 00:24:08マ板がこんなに親切な板だとは思いませんでした。
これから調べてみます。
本当にありがとうございました。
0629デフォルトの名無しさん
2005/12/24(土) 03:02:450630デフォルトの名無しさん
2005/12/24(土) 16:07:59ム板
0631デフォルトの名無しさん
2005/12/27(火) 13:45:300632デフォルトの名無しさん
2006/01/05(木) 12:29:450633デフォルトの名無しさん
2006/01/08(日) 12:58:01しばらくここ見てなかったので超遅レスだけど・・・
なんか余計な改変してるようにしか見えないけどなぁ。
typeが"undef"返したりしないと思うし。
元々は再帰するコードだったけどそうもなってないし。
そもそも何をしたいのか仕様がわからんし。
0634デフォルトの名無しさん
2006/01/13(金) 09:00:18寂しいのう・・・
0635デフォルトの名無しさん
2006/01/13(金) 09:25:16縁の下の力持ちって感じ。
0636デフォルトの名無しさん
2006/01/13(金) 12:38:030637デフォルトの名無しさん
2006/01/13(金) 12:57:15技術情報を漏らしたらクビになるし
0638デフォルトの名無しさん
2006/01/13(金) 21:37:32どうせ仕事もしたことない学生が知ったかしてると予想。
0639
2006/01/13(金) 22:17:470640デフォルトの名無しさん
2006/01/15(日) 16:41:18守秘義務の対象になるとはとても思えない。
たとえそのノウハウを業務で培ったとしてもね。プライベートでも
十分知りえる範囲のことだし。
PS2の黒本に書いてあった情報まとか、社内ライブラリの仕様を
そのまま書く、とかじゃなきゃ、守秘義務違反にはならないだろ。
0641デフォルトの名無しさん
2006/01/15(日) 17:33:30社内ライブラリの仕様なんかは多少漏れてもかまわんけど
それを設計した人間の転職が中小の開発会社には一番困る。
Luaの話から脱線してスマソ
0642デフォルトの名無しさん
2006/01/16(月) 15:42:300643デフォルトの名無しさん
2006/01/31(火) 12:21:00ttp://www.radiumsoftware.com/0601.html#060130
0644デフォルトの名無しさん
2006/01/31(火) 19:38:350645デフォルトの名無しさん
2006/02/01(水) 15:39:11だれかこれの存在意義をおしえてくれ
0646デフォルトの名無しさん
2006/02/07(火) 03:10:34ない
luaで良いよ
0647デフォルトの名無しさん
2006/02/11(土) 00:20:410648デフォルトの名無しさん
2006/02/11(土) 00:31:160649デフォルトの名無しさん
2006/02/17(金) 17:38:58便利すぎて泣けてくる
0650デフォルトの名無しさん
2006/02/18(土) 17:00:16ttp://www.lua.org/ftp/lua-5.1.tar.gz
あれか、ついにリリースか!?
0651デフォルトの名無しさん
2006/02/18(土) 17:01:160652デフォルトの名無しさん
2006/02/22(水) 00:03:310653デフォルトの名無しさん
2006/02/22(水) 04:13:230654人人
2006/02/22(水) 18:36:340655デフォルトの名無しさん
2006/02/22(水) 23:45:260656デフォルトの名無しさん
2006/02/23(木) 00:48:34working版やベータ版は、かなり前からあったけど・・・。
0657デフォルトの名無しさん
2006/02/24(金) 02:37:505.1が・・・・
0658デフォルトの名無しさん
2006/03/03(金) 04:11:215.0は型のサイズさえ一致していれば大丈夫だったのになぁ...orz...。
0659デフォルトの名無しさん
2006/03/03(金) 09:04:54Luaからこっちにうつった。
GCではなくて、参照回数をカウントする方式。
Classやらなんやら充実してるぶん、サイズもちょっとデカいかな
配列も0からはじまるつか、配列がべつ扱い
s<- ["a","b","c","d","e"];
0660デフォルトの名無しさん
2006/03/03(金) 19:51:13結構よさげだね。
Luaをオブジェクト指向にした感じだな。
0661デフォルトの名無しさん
2006/03/03(金) 21:58:320662
2006/03/04(土) 01:34:25なかなかいいねえ
0663デフォルトの名無しさん
2006/03/04(土) 02:43:25からなぁ。スクリプト組む人達が覚え直しだと組み込みは難しい。
0664デフォルトの名無しさん
2006/03/04(土) 04:09:18"mixed approach ref counting/GC" って書いてあるから、循環参照とかの
部分は GC で解決してるんじゃないかな。
0665デフォルトの名無しさん
2006/03/04(土) 21:43:36最新の2.1βはこちらから
ttp://wiki.squirrel-lang.org/
>>660
Luaより文法がCに近くてなにかといいかと
>>661
半年ぐらいおっかけてるけど
有名なあるゲームにつかわれたとか
まだ聞かないです
で、自分でつかってるけど
安定してる・・・と思います
>>663
Luaよりちょっと細かいかも
floatとintの区別が(内部的に)あるとことか
より、プログラマが自分で便利につかうためのやつかもね
>>664
そういえば、GCを実行するためのAPIがありました
0666
2006/03/05(日) 00:40:14いいねえこれ。
配列作れて、そん中にテーブル作れるのかあ。
俺の欲しかった機能だ。
まだ検証してないけど、これプログラムから使いやすい?
Luaはなんか使いにくくてさ。
0667デフォルトの名無しさん
2006/03/05(日) 01:41:320668デフォルトの名無しさん
2006/03/05(日) 10:14:070669デフォルトの名無しさん
2006/03/06(月) 02:17:440670デフォルトの名無しさん
2006/03/06(月) 06:12:150671デフォルトの名無しさん
2006/03/06(月) 07:06:39>mixed approach ref counting/GC
ってなら、これのほうがいいようなな気がする。
(メモリは多少大食いになるかもしれないけど)
0672デフォルトの名無しさん
2006/03/06(月) 14:18:14ttp://wiki.squirrel-lang.org/default.aspx/SquirrelWiki/LuaComparedToSquirrel.html
FarCryで発生した問題ってのが気になる。
0673デフォルトの名無しさん
2006/03/06(月) 23:23:02文法がCに近いみたいで使いやすそうだけど。
0674デフォルトの名無しさん
2006/03/07(火) 14:10:260675デフォルトの名無しさん
2006/03/07(火) 21:55:570676デフォルトの名無しさん
2006/03/07(火) 22:25:52やっぱり、GC時の処理の重さじゃないかな
0677デフォルトの名無しさん
2006/03/08(水) 05:03:36ここの住人は全然しないね
0678
2006/03/08(水) 05:10:01http://www.somedude.net/gamemonkey/
0679デフォルトの名無しさん
2006/03/08(水) 19:03:06そうみたいです。
ttp://www.gamedev.net/community/forums/topic.asp?topic_id=230021
によると、Farcryではlua4.1alphaを使用していて、速度は十分だがGC時に重いようです。
lua5からはGCが変更していたはずなのでまた結果が違うのかも。
0680デフォルトの名無しさん
2006/03/08(水) 19:04:15Squirrel2つかってみますね
0681デフォルトの名無しさん
2006/03/08(水) 20:22:235.1からはインクリメンタルGCが実装されてるから、
大分マシになる・・・かもしれない。
0682デフォルトの名無しさん
2006/03/09(木) 00:44:500683デフォルトの名無しさん
2006/03/14(火) 15:08:260684デフォルトの名無しさん
2006/03/14(火) 16:27:14zlib/libpngライセンスって、組み込む場合、
Copyright表記しなきゃいけないんだっけ?
ttp://www.opensource.jp/licenses/zlib-license.html
> 製品の文書に謝辞を入れていただければ幸いですが、必須ではありません。
ってあるから、MITライセンスと違って表記しなくても良さそうなんだけど。
0685デフォルトの名無しさん
2006/03/15(水) 08:56:260686デフォルトの名無しさん
2006/03/15(水) 11:30:19表記は必須じゃないはず。
ZLibはばんばんゲームにつかわれてるけど、
表記されてるのみたことないっすね
06871
2006/03/16(木) 16:08:480688
2006/03/16(木) 16:31:16Luaに限らずLightWeightLanguageで作ってよ
0689デフォルトの名無しさん
2006/03/16(木) 21:08:15ターゲットは絞れ
0690デフォルトの名無しさん
2006/03/16(木) 21:39:48LUAに絞られても困る。
0691デフォルトの名無しさん
2006/03/16(木) 21:44:280692デフォルトの名無しさん
2006/03/17(金) 00:00:38Lua Perl PHP Python Ruby Scheme etc...
全部網羅するのか?
0693デフォルトの名無しさん
2006/03/17(金) 00:03:320694デフォルトの名無しさん
2006/03/17(金) 09:57:30看板はLuaで一応Luaの情報メインだけど
アプリ組み込み系なら多少の脱線はあり、ぐらいでいいだろ。
メジャーな言語は他所でやってくれ。
0695
2006/03/17(金) 17:49:21やっぱ組み込み向けscriptつーことで
0696デフォルトの名無しさん
2006/03/18(土) 02:56:26タイトルがどんなでも、項目作って編集者募集としておけば問題なかろう
つーことで 1 will 乙
0697デフォルトの名無しさん
2006/03/18(土) 12:11:01まずはLuaだけでやればいいんじゃないかな
タイトルかなんかはLightWeightLanguageでいいじゃん
0698デフォルトの名無しさん
2006/03/18(土) 12:29:560699http://www.vector.co.jp/soft/win95/util/se072729.html
2006/03/18(土) 19:11:02もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
0700デフォルトの名無しさん
2006/03/18(土) 21:33:36なぜそれをここで聞くのかが分からない。
0701デフォルトの名無しさん
2006/03/18(土) 21:36:56明らかにLua wikiの方がわかりやすいタイトルと思うのだが
0702デフォルトの名無しさん
2006/03/18(土) 23:15:50熱が冷めないうちに作ってプリーズ。
0703デフォルトの名無しさん
2006/03/19(日) 02:18:56LuaだけでWikiほんとに必要か?
マニュアルだけで結構十分じゃない?w
このスレの情報の出具合からいっても、
Wikiつくっても寂れるの見えてない?
0704デフォルトの名無しさん
2006/03/19(日) 02:23:18BNF記法を全く読解できない奴のためのチュートリアル
0705デフォルトの名無しさん
2006/03/19(日) 04:54:06そんな奴らは日本語でも理解不能で2chで中途半端な教えて房になるだけ。
それとも>>704がすべて親切に答えていくのだろうか。
0706デフォルトの名無しさん
2006/03/19(日) 06:49:17データの初期値設定に使うってのはどっかで見掛けたけど。
0707デフォルトの名無しさん
2006/03/20(月) 01:12:350708デフォルトの名無しさん
2006/03/20(月) 07:00:50組み込みなんだから好きなように使ったらよいかと。
さすがにSTGの弾幕記述とかは速度的に無茶だけど。
0709デフォルトの名無しさん
2006/03/20(月) 23:15:3107101
2006/03/21(火) 17:29:34さっそく借りてきた。24時間以内にパスワード発信予定らしいから待ってくれ。
0711デフォルトの名無しさん
2006/03/21(火) 17:34:5107121
2006/03/21(火) 21:02:250713デフォルトの名無しさん
2006/03/21(火) 21:29:58Luaをメインとして組み込み用言語全般を扱う予定?
0714
2006/03/21(火) 21:47:43乙!!
0715デフォルトの名無しさん
2006/03/21(火) 22:34:520716デフォルトの名無しさん
2006/03/22(水) 01:42:05乙
でも設置するより遙かに維持するのが難しい
0717デフォルトの名無しさん
2006/03/22(水) 11:42:360719デフォルトの名無しさん
2006/03/22(水) 17:37:360720デフォルトの名無しさん
2006/03/22(水) 17:53:54659あたりから話題になってた Squirrel は含めないの?
# おれは使ってみてもいないので正直よくわからないのですが
0721デフォルトの名無しさん
2006/03/23(木) 01:06:10チュートリアル作って欲しい
今製作中のゲームで使う予定だから頼りにしてるぽ
0722デフォルトの名無しさん
2006/03/23(木) 02:37:37Squirrel?そんな実績も何も無いものwikiの立ち上げに含まれても。
なんか自分では何もしない他力本願な書き込みする奴だな。
0723
2006/03/23(木) 04:21:44Squirrelの名前空間彫ればイイだけぽ
0724デフォルトの名無しさん
2006/03/23(木) 04:27:4207251
2006/03/23(木) 19:01:49弾幕記述言語。
>>719
カッとなって作ったので自信が無い。(w
>>721
そこらへんは,Luaの参考サイトに書いておいたよ。早速。
0726デフォルトの名無しさん
2006/03/27(月) 00:41:150727デフォルトの名無しさん
2006/04/04(火) 19:59:01お!いつのまにかいろいろ言語がふえてる!乙!
0728
2006/04/04(火) 22:30:030729
2006/04/04(火) 22:34:52記事書くとき、名前空間つかってよ。
どの言語かわかんない。
C++で使うとリンクエラーするのですが?
↓
Lua/C++で使うとリンクエラーするのですが?
07301
2006/04/08(土) 11:08:03毎回参考になる。
http://www.radiumsoftware.com/0604.html#060407
0731デフォルトの名無しさん
2006/04/13(木) 02:53:12そんだけ有名なページ知らん奴はほっとけ。
0732デフォルトの名無しさん
2006/04/13(木) 08:37:49コメントもできねぇんだから、荒らすこともできないねぇよアホ。
0733デフォルトの名無しさん
2006/04/14(金) 20:28:420734デフォルトの名無しさん
2006/04/14(金) 23:29:50毎回参考になる。
http://www.radiumsoftware.com/0604.html#060407
0735デフォルトの名無しさん
2006/04/20(木) 20:55:07Wiki重すぎ…
見れん
0736デフォルトの名無しさん
2006/04/20(木) 20:57:180737
2006/04/20(木) 22:35:31めちゃめちゃ腹立つ
0738デフォルトの名無しさん
2006/04/20(木) 22:37:12なんなら、こっちでwiki作ろうか?
0739735
2006/04/20(木) 22:39:47スマソ
0740フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/01(月) 09:47:53first-class関数、closure、lambda、lexical scope、末尾再帰。
それでいてhuman-friendlyな文法なのがいい。
0741デフォルトの名無しさん
2006/05/02(火) 14:09:55これらはclosureに対して不可分な気がする。
末尾再帰(末尾呼び出しの最適化)は言語仕様というよりは処理系の仕様だからなぁ。
schemeは言語レベルで保障されているようだけど、Luaはどうなるんだろう。
0742フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/02(火) 14:50:230743デフォルトの名無しさん
2006/05/02(火) 15:11:36「どうなるんだろう」(どうするんだろう)と。
末尾呼び出しの最適化という概念自体が処理系の都合にすぎないんだよ。
本来、言語は関係ない。
0744フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/02(火) 15:20:15わしが言いたいのは今のluaがschemeっぽいということだ。
0745デフォルトの名無しさん
2006/05/02(火) 15:29:06lua が scheme っぽいと感じるのは構わないんじゃん?
その目で見たら scheme っぽい言語は沢山見つかると思うよ。
俺は別の括りの方がそれらしい気がするけども。
0746フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/02(火) 15:36:14世の中狭いもので同じようなこと思ってる人はいるもの
>>745
minimalismで作られてる点もschemeと共通してると思う
まあluaはmulti-paradigm言語だからひとつにくくれない
closureがあるとあんなことやこんなことができてウハウハだ
0747デフォルトの名無しさん
2006/05/02(火) 16:58:02>わしが言いたいのは今のluaがschemeっぽいということだ。
それは始めからわかっているから落ち着けw
「末尾再帰に関しては言語仕様と呼んでいいのかが曖昧で、
この先Lua言語はどうするつもりなのか」
という疑問をぶつけたにすぎない。
(結果的に)Schemeと似ているという点について否定するつもりは一切無い。
ただ主観になるけど、ECMAScriptがLuaに似ていると思っている。
Luaは連想配列として扱えるtableがオブジェクトの基本であり、
ECMAScriptでは基底のObjectがやはり連想配列として扱える。
お互いprototypeベースで、metatable.__indexとprototypeプロパティが
似たように扱える(new周りが違うけど)。
closure周りも同様に扱えるため、多くの部分でノウハウの流用が効くと感じた。
Schemeは門外漢で比較判断できないから、どちらがより似ているかという
部分には触れないでおくけど。
あと一カ所訂正。
Perlのclosureは、関数のファーストクラスオブジェクトなしに実装してたみたい。
たしかにclosureには参照でも十分っぽい。
0748フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/02(火) 17:48:500749デフォルトの名無しさん
2006/05/02(火) 19:00:21YARVという名前が過去のものとなるまでは、Yet Anotherに過ぎないんだよ。
それを複数の実装と言わずになんと言う。
0750フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/02(火) 19:47:320751デフォルトの名無しさん
2006/05/02(火) 20:53:390752デフォルトの名無しさん
2006/05/02(火) 21:14:17このコテハンは面白いと思って付けたの?
0753フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/02(火) 21:19:440754フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/02(火) 21:21:14わしはまだ未熟者なので精進します。
名無でクソレスするよりマシだと思ってくれたまえ。
0755デフォルトの名無しさん
2006/05/02(火) 21:29:31yacc知らんのか
0756デフォルトの名無しさん
2006/05/02(火) 21:31:520757デフォルトの名無しさん
2006/05/03(水) 01:21:56こんだけ大きな顔をしているんだから、きっと Wiki のほうに
大きなフィードバックをしてくれることだろう。
名無しで書かないのは、そういった責任感の表れという
以外には考えられない。
「俺が lua コミュニティを盛り上げる!」という決意表明
と受け取るべきだろう。
0758デフォルトの名無しさん
2006/05/03(水) 01:48:12俺だけ?wikiwiki.jpに規制されてんのかな
0759フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/03(水) 06:50:210760フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/03(水) 08:19:29http://lua-users.org/wiki/
こっちを更新したほうが全世界の人がその恩恵を受ける
英語は辞書ツールを整備すればあとは慣れの問題だ
0761デフォルトの名無しさん
2006/05/03(水) 09:33:040762デフォルトの名無しさん
2006/05/03(水) 09:33:42そうだよな。まさかコテまでつけてこんな内容のないレスばっかってことは人
間としてありえないよなぁ。
0763デフォルトの名無しさん
2006/05/03(水) 09:39:42英語なら幾らでも資料があるだろ
水を差すな馬鹿
0764フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/03(水) 09:47:36馬鹿は言い過ぎじゃないのか?
だったその資料を翻訳するとかできるだろう?
日本人向けの情報なら、日本語の扱いなど日本人固有の問題を取り扱うべき。
技術英語など大きい辞書と英検準2級の英語力があれば読める。
0765デフォルトの名無しさん
2006/05/03(水) 10:06:310766デフォルトの名無しさん
2006/05/03(水) 10:08:150767フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/03(水) 12:29:54プログラミングする人は英語が必須
0768デフォルトの名無しさん
2006/05/03(水) 12:33:010769フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/03(水) 12:40:36英語が国際語である以上英語から逃げられない
わしも読むのは遅いけど恐れず真向から立ち向かう
0770デフォルトの名無しさん
2006/05/03(水) 12:44:120771デフォルトの名無しさん
2006/05/03(水) 12:44:39英語を読むのとluaを使うのは別問題でしょ
英語が読めるに越したことはないが
luaを使うためにその時間を掛ける無駄はしたくないと言ってるの
組み込み言語だけに構ってられないんだよ
0772デフォルトの名無しさん
2006/05/03(水) 12:50:090773デフォルトの名無しさん
2006/05/03(水) 12:51:080774フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/03(水) 13:05:16それは同意
サンプル大事
>>771
別問題とは言いきれない
そもそもluaは外国産まれだから資料が英語だらけなのは当然だ
そんな文句言うんだったらRuby使えば? 日本語のドキュメントいっぱいあるんだから
scheme処理系gaucheも日本人が作者だ
>>772
半分同意
国際社会を生き抜く上で英語力を高めるのが大事
0775フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/03(水) 13:17:39英語すら読めないなんてプロとして恥ずかしくないのか?
「人間向上心なくしたらおしまい」イチローの言葉だ
わしはイチロー嫌いだがその言葉には同意する
自分の力が足りないと感じたら勉強しろ
それが嫌なら人雇って金払え
金も時間もないならやめちまえ
0776デフォルトの名無しさん
2006/05/03(水) 13:21:03とりあえず日本語なんかでLuaの話をしているこのスレは不要ってことだな。
英語のwikiを更新できるだけの英語力もあるんだろ。
英語圏行ってこいよ。バイバイ。
0777フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/03(水) 13:28:46努力を怠った自分が悪いと思わないのか?
所詮厨房か
草の根wikiを作るくらいだったら
http://lua-users.org/wiki/
に日本語のページを作れよ
emacswikiはそうなってる
0778デフォルトの名無しさん
2006/05/03(水) 14:02:030779フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/03(水) 14:03:59分数の計算すらできない大学生もいるらしいし
0780デフォルトの名無しさん
2006/05/03(水) 14:09:480781デフォルトの名無しさん
2006/05/03(水) 14:28:06流石ウンコは言う事が違うな。
0782デフォルトの名無しさん
2006/05/03(水) 18:22:40普通にLuaスクリプトを実行するところまではどうにか漕ぎ着けたのですが
スクリプト内で他のスクリプトファイルを読み込もうとrequireやdofileを
記述したところで突然luaL_dofileがエラー(1なので構文エラー?)を
返すようになってしまいました。
require等を消して、呼び出し元のスクリプトに全部記述すると
きちんと動作するので呼び出そうとしてる関数は問題ないと思うのですが・・。
これが原因じゃね?と思いつくものがあればご教授ください。
0783デフォルトの名無しさん
2006/05/03(水) 18:30:21{
if(lua_isstring(L, -1)){
print_lua_log("%s", lua_tostring(L, -1));
}
return 0;
}
lua_register(L, "_ALERT", on_lua_alert);
でエラーメッセージ出してるか?
おまけ
http://www.tt.rim.or.jp/~rudyard/torii009.html
0784フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/03(水) 19:01:260785782
2006/05/03(水) 20:15:27ご教授にはそんな意味があったんですね。
失礼しました。
ちなみにエラーメッセージは
「attempt to call global 'dofile' (a nil value)」でした。
dofileなんてもんは存在しないよ、ってことですかね。
で、改めてリファレンスを見直してみたら、基本ライブラリ使うのにも
luaopen_baseなる関数を呼ぶ必要があったようで・・。
それを呼んでやることで無事dofileが動作するようになりました。
(requireのほうは何故かそれでも動きませんでしたが)
おかげさまで先に進むことができそうです。
ありがとうございました。
0786デフォルトの名無しさん
2006/05/03(水) 22:59:545.1で_ALERTは使えた?
ソースから無くなってるように見えたし、試してみてもだめだったから。
0787フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/03(水) 23:42:550788782
2006/05/04(木) 00:08:57あ、それ自体は使えなかったですね。
(print_lua_logっていうのがなかったのかな?)
lua_tostring(L, -1)でエラーメッセージ見ろよ、という意味だと解釈して
適当に表示させて見てました。
0789デフォルトの名無しさん
2006/05/04(木) 02:19:34流石だ。お前ならやれる! ゾロ目も取ったし!
俺はむしろそっちしか見てないから、遠慮せずにガンガンフィードバックしてくれ
0790フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/04(木) 07:48:380791デフォルトの名無しさん
2006/05/04(木) 12:00:020792786
2006/05/04(木) 12:16:38回答ありがとう。今更ながらMLを検索するとあった。
公式には5.0でなくなったみたい。
ttp://lua-users.org/lists/lua-l/2002-12/msg00220.html
0793フンバリャーウンコ・ヨーデル ◆xlAOIq6jZw
2006/05/04(木) 13:10:44わかったよ、去ればいいんだろ去れば
これより潜伏にうつる
0794デフォルトの名無しさん
2006/05/04(木) 17:02:140795デフォルトの名無しさん
2006/05/05(金) 21:32:400796デフォルトの名無しさん
2006/05/06(土) 09:56:360797λ計算
2006/05/06(土) 12:07:120798デフォルトの名無しさん
2006/05/06(土) 13:18:46(function(a) return a(a); end)(function(a) return a(a); end)
0799λ計算
2006/05/06(土) 13:44:58function map(func, table)
ret = {}
for k,v in pairs(table) do
ret[k] = func(v)
end
return ret
end
tbl = map(function(x) return x*2; end, {3,7})
assert_equal(6, tbl[1])
assert_equal(14, tbl[2])
0800λ計算
2006/05/06(土) 13:46:510801デフォルトの名無しさん
2006/05/06(土) 15:19:220802λ計算
2006/05/06(土) 15:46:27わたしは名前の通りS式厨だ。
0803デフォルトの名無しさん
2006/05/06(土) 15:53:120804λ計算
2006/05/06(土) 16:10:02わたしはlispに限らずいろんな言語を貪欲に勉強したいんだ。
0805デフォルトの名無しさん
2006/05/06(土) 16:14:090806デフォルトの名無しさん
2006/05/06(土) 16:25:020807λ計算
2006/05/06(土) 16:35:58>>799も
tbl = map(function(x) x*2; end, {3,7})
と書けたらコンパクト。
0808デフォルトの名無しさん
2006/05/06(土) 16:55:22それを言うとfunctionも長いとか、thenイラネとかendのぶら下がり
判りにくいとかあるけど。
luaのフロントエンドやめて意味論的にはluaと同じ
適当な整合性のありそうな俺言語作た方がいいかも
0809デフォルトの名無しさん
2006/05/06(土) 16:58:40動くとしたら、すごい事です。
0810λ計算
2006/05/06(土) 17:00:46endはrubyで慣れてるから平気。
thenは省略できたほうがいいな。
not equalが!=じゃないのは謎。
0811デフォルトの名無しさん
2006/05/06(土) 23:22:09DS(ARM)でLua動いているくらいだからできるんじゃね?
http://www.dslua.com/
0812デフォルトの名無しさん
2006/05/06(土) 23:46:07LinuxZaurusでうごいてるよ
0813デフォルトの名無しさん
2006/05/07(日) 08:14:56http://www.torlus.com/index.php?2005/09/09/117-lua4gba
0814デフォルトの名無しさん
2006/05/08(月) 20:09:430815デフォルトの名無しさん
2006/05/08(月) 23:21:31ttp://homepage2.nifty.com/cstation/pub/liblua-devel_5.1_arm.ipk
こんなかんじ?
Nokajiでもプラグインで対応してるよ
0816デフォルトの名無しさん
2006/05/16(火) 09:20:23めちゃめちゃ軽いみたい(サイズ5k!?)
CやD言語とリンク
yieldもある
0817デフォルトの名無しさん
2006/05/16(火) 22:13:330818デフォルトの名無しさん
2006/05/20(土) 02:29:46ドキュメントとかオプションの一部はやってないんだけど
0819デフォルトの名無しさん
2006/05/20(土) 16:45:11興味はあるけど使い道が無い。ごめん。
権利面で問題無いならWikiとかLuaForgeとかに
あげたほうがいいんじゃね。
0820デフォルトの名無しさん
2006/06/07(水) 16:43:13tbl2 = {{1},{0,2,3},{1},{1}}
をC側で読み込むにはどうやったらいいのでしょう。
あるサイトを参考にやってみたんですが、
どうも3回目のlua_next(上の例でいくと最初の1を読み込んだ後)で
ホストプログラムごといきなり終了してしまうのです。
自分の環境のせいですかね。
0821デフォルトの名無しさん
2006/06/08(木) 16:47:01static 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;
}
0822820
2006/06/09(金) 11:45:09ただ821さんのを使用しても、やはりプログラムが終了してしまうので
私の環境が良くないみたいですね。
色々試してみたところ二次元テーブルどころか
通常のテーブルでも終了してしまうことが判明。
何故かフィールド名をつけると何事も無く読めるという謎動作。
NG: tbl2 = { 1,2,3 }
OK: tbl2 = { [1]=1,[2]=2,[3]=3 }
とりあえずフィールド名をつけて動かしてみます。
0823820
2006/06/09(金) 12:06:42820のような二次元テーブルをC側から登録する方法を
教えていただけますでしょうか。
何となく※のあたりが違うんだろうなぁという気はするのですが。
lua_pushstring(L, テーブル名);
lua_newtable(L);
ループ開始
※lua_pushstring(L, テーブル名?);
※lua_newtable(L);
ループ開始
lua_pushnumber(L,キー);
lua_pushnumber(L,値);
lua_settable(L, -3);
ループ終了
※lua_settable(L, ?);
ループ終了
lua_settable(L, LUA_GLOBALSINDEX);
0824デフォルトの名無しさん
2006/06/09(金) 22:05:45lua_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");
0825820
2006/06/10(土) 14:46:13ありがとうございます!
0826デフォルトの名無しさん
2006/06/24(土) 22:03:450827デフォルトの名無しさん
2006/06/27(火) 07:04:53単体じゃろくなこと出来ないのでLuaGLを使おうとしたら5.0用だったり
まぁ5.1からでも使えなくはないだろうとコンパイルしようとしたらどうしてもできず。
やっぱりググっての付け焼刃の知識と
Hello World程度しか弄らなかったCの経験じゃ無理かぁ・・・。
0828デフォルトの名無しさん
2006/06/27(火) 22:22:530829デフォルトの名無しさん
2006/06/28(水) 20:10:18その前にLua使ってなにがしたかったんだ?
0830デフォルトの名無しさん
2006/06/28(水) 20:37:35手軽にゲームとか作れないかなー、と曖昧な目的で。
しょうがないので今はLuaでCUIオンリーのWizardryみたいなの作ってる。
0831デフォルトの名無しさん
2006/06/29(木) 19:48:41OpenGLの入門サイト見ながら色々弄ってます。
まぁ、直接Cで書いた方が早いって言えば早いんだけどね・・・。
0832デフォルトの名無しさん
2006/07/02(日) 23:39:24fmodのLuaバインディングが欲しかったけど、
見当たらなかったので自分で作ってみた。
・・・いちいち命令の一つ一つを実装するのってめんどくさいなあ。
ストレートに動的リンクできれば早いんだけど。
0833デフォルトの名無しさん
2006/07/03(月) 23:51:350834デフォルトの名無しさん
2006/07/04(火) 00:46:54画像も音声もSDLのバインディング組めば
汎用性も拡張性もいいんじゃね?と思い始めた。
>>833
向こうでもあんまり活発じゃないみたいだな。
0835デフォルトの名無しさん
2006/07/19(水) 17:26:440836デフォルトの名無しさん
2006/07/27(木) 01:20:490837デフォルトの名無しさん
2006/08/12(土) 03:59:170838デフォルトの名無しさん
2006/08/12(土) 13:18:15全然組み込んだよーってソフト見ない
0839デフォルトの名無しさん
2006/08/12(土) 13:21:170840デフォルトの名無しさん
2006/08/12(土) 13:27:210841デフォルトの名無しさん
2006/08/12(土) 23:00:020842デフォルトの名無しさん
2006/08/13(日) 00:29:56変わったところでは、
スクリプト言語Luaを用いたロボカップ四足ロボットリーグシミュレータ
www.jollypochie.org/papers/JSAI-SIG-CHALLENGE21-kobayashi.pdf
なんてのでも使われてるみたい。
0843デフォルトの名無しさん
2006/08/13(日) 00:30:230844デフォルトの名無しさん
2006/08/23(水) 22:56:18http://www.clifford.at/spl/
こんなのあった。ちょっと面白そう。
0845デフォルトの名無しさん
2006/08/24(木) 06:10:21コーティングスタイルの根底に関わる仕様だから入れるべきだね
末尾再帰だけならそんなに難しい事ではないし。
(schemeは継続も同居してるからちょっと難しい)
0846デフォルトの名無しさん
2006/08/28(月) 23:41:16どうだろう?設計レベルで現れるようなオブジェクトの管理は
LuaのGC使って管理して、パフォーマンスに絡むようなオブジェクトは
C++の従来の考え方で管理する。
また、各タスクやそれらの関係(メッセージ処理や状態遷移マシン定義)の
configはスクリプトベースで行い、欲を言えばそれらのコンフィギュレーション
からC++のコード吐かして最後に最適化できるようにしたい。
Luaには標準ではプリエンティブなスレッドが無いのでそれは実装しないと
だめだけど(LuaThreadでいけるか?)。
現在そんなのを妄想中・・・。
0847デフォルトの名無しさん
2006/08/29(火) 00:28:28組み込みスクリプトの正道にしか見えん。
0848デフォルトの名無しさん
2006/08/30(水) 23:11:24そりゃ大まかに括ればその通りなんだけど。イメージとしては
UMLの実行モデル見たくして部分部分をC++に置き換えて
いけるような物に出来ないかなーと。まあ、単なる妄想だけど。
それは兎も角、
”..”とか使って生成た文字列が以前生成した文字列と内容が
同じな場合、以前の文字列に参照を追加して同じ文字列を複数
生成されない最適化が行われてるみたいね(多分)。
ただ、文字列が多くなると以前の文字列との比較に時間がかかって
しまい文字列生成のパフォーマンスが徐々に落ちてくるっていう、
マイナス面もあるみたい。
某所のGCパフォーマンス調査で文字列を大量に生成&破棄を
繰り返して調査してたけど、GCよりも文字列生成のパフォーマンス
を調査してるようなもんだと思った。
0849デフォルトの名無しさん
2006/09/01(金) 03:11:20スクリプト側で出来ることが少なくなるかもしれないが、
組み込みに関してC言語側の負担も小さそう。
小ぶりなフリーゲーム作るならこんなんで十分かも?
0850デフォルトの名無しさん
2006/09/01(金) 11:40:56Lua 内で利用する文字列はすべて、参照時に「以前と同じ文字列があるかどう
か」をチェックしているよ。生成する経路はべつに関係ない。
またそのチェックはハッシュだから、理想的には文字列が増えてもパフォーマ
ンスはそれほど落ちない。
ただ、大量生成&破棄の繰返しの場合、ハッシュテーブルの再構成や再配置が
頻発すると思うので、そのコストが効いてくるんじゃないかと推測するがどう
か。
0851デフォルトの名無しさん
2006/09/01(金) 13:23:27Rehashする必要が増えてくるとハッシュテーブルのサイズを大きくとったりするようなタイプなの?
もしそうなら初期化時のような大量に文字列生成の可能性のある場所であらかじめテーブルサイズ拡大すると実行時のコスト下がるよね?
(ソースを読み下してないからそういうインターフェース無かったらごめん)
0852848
2006/09/01(金) 19:37:10私が試したコードは
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]が同じ扱いってのに問題があるのではと
思うのです。
まあ、試したコードが現実的では無いのはたしかですが。
0853850
2006/09/01(金) 20:31:37あーなるほど、ハッシュ値の一致については考えてませんでした。そういう例
では頻発するかも。
文字列用のテーブルでサイズ指定するインタフェースはマニュアルには公開さ
れていないようですね。こっそり luaS_resize すれば出来ちゃいそうな気は
しますが。
0854デフォルトの名無しさん
2006/09/14(木) 21:48:210855デフォルトの名無しさん
2006/09/16(土) 18:56:510856デフォルトの名無しさん
2006/09/18(月) 00:53:04言語自体は良いのだが周辺ライブラリがね…
トータルの工数を考えると結局luaに落ち着いてしまう
0857デフォルトの名無しさん
2006/09/18(月) 01:32:18luaより言語仕様は良いと思える?
あと、luaの周辺ライブラリってたとえば何がある?
0858デフォルトの名無しさん
2006/09/18(月) 02:10:35ぶっちゃけluaもsquirrelも機能的にあんま変わらんと思うのだが、
単純に言語の外観がC++に似てるってだけでも好き。
でもsquaddというluabind相当のライブラリはあるが開発が1年以上とまってたり、
SqPlusとかいうライブラリは使いにくい(これはcoroutine関連のことが頭に入ってないのか?)
エクスポートをluabindでやりまくってるのでその時点でsquirrelは無いかなと。
0859デフォルトの名無しさん
2006/09/18(月) 02:18:280860デフォルトの名無しさん
2006/09/18(月) 02:21:17別にsquirrelでも同じことやろうと思えばできるんだろうけど、書くのめんどくさいし。
あるものは使う。
0861デフォルトの名無しさん
2006/09/19(火) 00:30:45一度コンパイルしてそれ流用とか、そういう小技ある?
0862デフォルトの名無しさん
2006/09/19(火) 00:34:360863デフォルトの名無しさん
2006/09/19(火) 07:41:420864デフォルトの名無しさん
2006/09/21(木) 13:56:36ttp://makimo.to/2ch/pc5_tech/1034/1034182349.html
0865質問
2006/09/30(土) 15:22:28このスレの>>358-360を参考に lua_dofile を luaL_loadfile に書き換え、
サンプルをコンパイルしようとすると以下のようなエラーが出てしまいます。
(なお、includeディレクトリにlua関係のヘッダファイルを全て入れ、
libディレクトリにLuaLib.libを入れてあります)
--------------------構成: Test - Win32 Debug--------------------
リンク中...
c2lua.obj : error LNK2001: 外部シンボル "_lua_close" は未解決です
c2lua.obj : error LNK2001: 外部シンボル "_luaL_loadfile" は未解決です
c2lua.obj : error LNK2001: 外部シンボル "_luaopen_base" は未解決です
c2lua.obj : error LNK2001: 外部シンボル "_luaL_newstate" は未解決です
Debug/c2lua.exe : fatal error LNK1120: 外部参照 4 が未解決です。
link.exe の実行エラー
Test.exe - エラー 5、警告 0
//ソース: c2lua.cpp(▼は改行)
extern "C" {▼ #include "lua.h"▼ #include "lualib.h"▼ #include "lauxlib.h"▼}
int main(int argc, char* argv[]) {
lua_State *lua;
lua = lua_open();
luaopen_base(lua);
luaL_loadfile(lua, "lua\\hello.lua");
lua_close(lua);
return 0;
}
なぜエラーになるのか分かりません。助けてください><
0866デフォルトの名無しさん
2006/09/30(土) 15:29:290867デフォルトの名無しさん
2006/09/30(土) 15:34:08やくぶそく 3 【役不足】
(1)俳優などが与えられた役に満足しないこと。
(2)能力に対して、役目が軽すぎること。
「―で物足りない」
こうですか? わかりません!><
0868デフォルトの名無しさん
2006/09/30(土) 15:45:48libディレクトリにLuaLib.libを入れたところでリンクしなければ意味がない。
VCのプロジェクト設定で「リンク」のカテゴリに「追加するライブラリ」みたいなのがあると思うんで、そこで指定する。
あと、luaL_loadfileはファイルをロードするけど、
ファイルを関数化するだけで実行はしないんじゃなかったかな。
lua_callだかlua_pcallだかで関数を実行する必要があるはず。
0869デフォルトの名無しさん
2006/09/30(土) 15:52:200870デフォルトの名無しさん
2006/09/30(土) 15:53:53追加ライブラリのパスというところに lib を指定しています。
他のLIBファイルはこれで読めているようなのですが・・・。
0871デフォルトの名無しさん
2006/09/30(土) 16:12:32色々調べて自己解決しました。
いつのまにか入っていた.NET付属のコンパイラが悪さをしていたようです。
PATHを変えて試行錯誤してみます。
0872デフォルトの名無しさん
2006/09/30(土) 18:13:560873デフォルトの名無しさん
2006/09/30(土) 18:34:09コンパイラはVS2005です。
0874デフォルトの名無しさん
2006/09/30(土) 18:59:410875デフォルトの名無しさん
2006/09/30(土) 19:01:390876デフォルトの名無しさん
2006/09/30(土) 20:47:26バイナリ配布んところは110KBくらいだっけ?(たぶんMinGWだと思う)
ぶっちゃけ気にしてねえけど。
0877デフォルトの名無しさん
2006/09/30(土) 20:51:550878デフォルトの名無しさん
2006/09/30(土) 23:59:150879デフォルトの名無しさん
2006/10/01(日) 00:12:270880デフォルトの名無しさん
2006/10/01(日) 01:09:260881デフォルトの名無しさん
2006/10/01(日) 08:50:59リリースビルドかつコード生成をマルチスレッドDLLにするくらいだよ、
サイズで気をつけるところと言ったら。
……次は作動ランタイムの配布で困ることになると予言しておく。
0882デフォルトの名無しさん
2006/10/01(日) 09:56:32ありがとう。
dllは他の言語から使うため作っていてVSには不慣れなので助かりました。
0883882
2006/10/01(日) 11:12:320884デフォルトの名無しさん
2006/10/04(水) 21:06:220885デフォルトの名無しさん
2006/10/07(土) 15:45:03"foo1bar2baz3"や"foo1.bar2.baz3"のような文字列にマッチするかどうか調べるために、
string.match("^([%a_][%w_]%.)*[%a_][%w_]$")
と書いたのですが、マッチしません。
というかstring.match("^(.)*$")でもマッチしません。
何故ですか?
(使用しているLuaのバージョンは5.1です)
0886デフォルトの名無しさん
2006/10/07(土) 21:53:14Luaのパターンは正規表現とは別物。「*」や「()」の意味も違う。
Luaのリファレンスによると「*」は、
a single character class followed by '*',
which matches 0 or more repetitions of characters in the class.
っつーことで、「単一の文字クラス」の繰り返ししか表現できない。
また、()についても、グルーピングの意味はなく、あくまで
マッチした特定の部位を保存しておく用途にしか使えない。
もし正規表現が使いたいなら、
http://luaforge.net/projects/stdlib/
http://luaforge.net/projects/lrexlib/
ここら辺とか使ってみたらどうよ。
0887デフォルトの名無しさん
2006/10/07(土) 21:59:00としているのですが、標準関数を使えるようにするところがトラブル続きで
上手くいかないです。経緯を晒しますのでアドバイスを頂ければ幸いです。
1.luaopen_io(L)が死ぬ→ぐぐったらluaL_openlibs(L)発見。
2.luaL_openlibs(L)も死ぬ→調べたら内部でluaopen_io(L)呼び出してる。
3.マニュアル見たらluaopen_*は使えないと書いてある。
7.3 - Changes in the API
・通常のC機能のように、直接(ライブラリを開くために)luaopen_* 関数を呼ぶことができません。
Lua機能のように、Luaを通してそれらを呼ばなければなりません。
>Lua機能のように、Luaを通してそれらを呼ばなければなりません。
さて、これってどういうことなんでしょうか。lua_callを使って呼べってことですか?
でもLuaに標準ライブラリをロードするための関数なんてありました?
追伸:ちなみにLua5.0.2を使おうとしたら stlport_vc6_static.lib が無いとか怒られました。
・・・諦めて素直にLua4.0を使っていたほうがいいんでしょうか(´∀`;)
0888デフォルトの名無しさん
2006/10/07(土) 22:36:19Lua for Delphiが消えてるけどまだダウンロードする方法ある?
0889887
2006/10/07(土) 22:46:00結果は以下の通りでした。だめぽ。。。
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"なんてファイルありませんよ。ファンタジーやメルヒェンじゃないんですから。
0890885
2006/10/07(土) 23:54:18ありがとうございます。
リファレンスを見たときは正規表現と似た感じだったの読み飛ばしてました。orz
何故標準で正規表現が使えないのか気になって調べてみたところ、次のものが見つかりました。
> Lua does not use POSIX regular expressions (regexp) for pattern matching.
> The main reason for this is size:
> A typical implementation of POSIX regexp takes more than 4,000 lines of code.
> This is bigger than all Lua standard libraries together.
http://www.lua.org/pil/20.1.html
0891デフォルトの名無しさん
2006/10/08(日) 09:05:51lua_pushcfunction(L, luaopen_base);
lua_call(L, 0, 0);
0893デフォルトの名無しさん
2006/10/08(日) 16:49:45ROもFarcryも key=value という形式で
全然役に立たないんだが・・・
0894デフォルトの名無しさん
2006/10/08(日) 16:55:590895デフォルトの名無しさん
2006/10/08(日) 22:54:40FarCryのLuaも
table[key]=valu
みたいな形式なので
table[key1][key2]=value
みたいな形式を使いたいので参考にならないと言いたかった
0896デフォルトの名無しさん
2006/10/08(日) 23:07:080897デフォルトの名無しさん
2006/10/08(日) 23:25:14欲しいってことかな?
0898デフォルトの名無しさん
2006/10/09(月) 00:20:03お前それを、突然893のように書いて理解してくれる人が出ると思ったのか?
0899デフォルトの名無しさん
2006/10/09(月) 00:51:340900デフォルトの名無しさん
2006/10/09(月) 08:27:58返してくれないんだよな
だから
table[a][b][c][d][e]
みたいなテーブルだと
pairsとかnext使っても全要素取得出来ないし・・・
0901デフォルトの名無しさん
2006/10/09(月) 08:54:440902デフォルトの名無しさん
2006/10/09(月) 11:01:22変にポインタでだらだらやるよりずっといい。
柔軟で分かりやすい。グレイト!
0903デフォルトの名無しさん
2006/10/09(月) 11:11:51Luaの、一般人がスクリプトを弄るということを想定してる点を無視しているイメージ。
ゲーム用とかでプログラマしかスクリプトを弄らないならこれでもよいのだろうけど。
クラスとかコンテニューとか例外処理とか、素人はよう使いこなさんからねどうせ。
0904デフォルトの名無しさん
2006/10/09(月) 11:30:430905デフォルトの名無しさん
2006/10/09(月) 11:59:18けどなくても何とかなるという意味だよ
0906デフォルトの名無しさん
2006/10/09(月) 12:03:20そういう奴はプログラマーやめればいいのに。
0907デフォルトの名無しさん
2006/10/09(月) 12:16:37マジで言ってるのか?
t.foo("aaa", 10, f.bar)
このLuaで書かれたプログラムと同等のことを
CのAPIでさっと書ける?
それで書かれたのを瞬時に判断できる?
0908デフォルトの名無しさん
2006/10/09(月) 12:35:540909デフォルトの名無しさん
2006/10/09(月) 12:43:25はぁ?コイツどんなだけ頭いいんだよ?
スタック操作がサクッっとかけるなんて、コンピュータ人間?
0910デフォルトの名無しさん
2006/10/09(月) 12:51:46やりづらいって言ってる人はまだ本格的に使ってないだけじゃないの?
0911デフォルトの名無しさん
2006/10/09(月) 12:52:19慣れの問題。
0912デフォルトの名無しさん
2006/10/09(月) 13:26:21再帰呼び出し使えばいいのかな?
0913デフォルトの名無しさん
2006/10/09(月) 13:33:47だから、試しに書いてみてって
t.foo("aaa", 10, f.bar)
0914デフォルトの名無しさん
2006/10/09(月) 13:51:55lua_pushstring(L, "foo");
lua_gettable(L, -2);
lua_pushstring(L, "aaa");
lua_pushnumber(L, 10);
lua_pushstring(L, "f");
lua_pushstring(L, "bar");
lua_gettable(L, -2);
lua_pcall(L, 3, LUA_MULTRET, 0);
0915デフォルトの名無しさん
2006/10/09(月) 13:52:25lua_gettable(L, LUA_GLOBALSINDEX);
lua_pushstring(L, "t");
lua_gettable(L, LUA_GLOBALSINDEX);
lua_pushstring(L, "foo");
lua_gettable(L, -2);
lua_pushstring(L, "aaa");
lua_pushnumber(L, 10);
lua_pushstring(L, "bar");
lua_gettable(L, -6);
lua_call(L, 3, 0);
lua_pop(L, 2);
0916デフォルトの名無しさん
2006/10/09(月) 13:53:510917デフォルトの名無しさん
2006/10/09(月) 13:55:37>lua_pushstring(L, "f");
>lua_pushstring(L, "bar");
>lua_gettable(L, -2);
だとfまで引数にされないかい?
当方Perlしかembedしたことないんでよくわからん。
0918デフォルトの名無しさん
2006/10/09(月) 13:56:480919デフォルトの名無しさん
2006/10/09(月) 13:57:49出来てないじゃん
>>915
これが分かりやすい?使いやすい?
0920デフォルトの名無しさん
2006/10/09(月) 14:01:32お前は自分の出した問題の答えが分かってないだけだろ
0921デフォルトの名無しさん
2006/10/09(月) 14:01:57はぁ?頭大丈夫?
0922デフォルトの名無しさん
2006/10/09(月) 14:05:23そうなのか。どもども。
ドキュメントさらっと読んでやってみたけどPerlよか断然楽だな。
Perlだとstashだのblessだのがめんどくさいし、
SV*だのAV*だの使っていじるのでコードが汚くなる。
0923デフォルトの名無しさん
2006/10/09(月) 14:05:27915を何個も書かないとならなくなったら気が狂うよ。
luabind等を使わずに本当にスタックでやり取りしてる奴いるの?
0924デフォルトの名無しさん
2006/10/09(月) 14:08:410925デフォルトの名無しさん
2006/10/09(月) 14:10:23はぁ?頭大丈夫?
0926デフォルトの名無しさん
2006/10/09(月) 14:32:02間違ってたらごめん
function each(t)
local function e(t)
local k, v = next(t)
while k do
if (type(v) == "table") then
e(v)
else
coroutine.yield(v)
end
k, v = next(t, k)
end
end
local co = coroutine.create(e)
return function ()
local f, s = coroutine.resume(co, t)
return s
end
end
local tbl, v = {{{1, 2},{3, 4}},{{5, 6},{{7, 8},{9, 10}}}}
for v in each(tbl) do
print(v)
end
0927デフォルトの名無しさん
2006/10/09(月) 14:38:30逆にluabindなんて使ってる奴が少数だろ
0928デフォルトの名無しさん
2006/10/09(月) 14:40:320929デフォルトの名無しさん
2006/10/09(月) 14:49:010930デフォルトの名無しさん
2006/10/09(月) 14:57:12もともとマシン語使いだったんで違和感ないです
0931デフォルトの名無しさん
2006/10/09(月) 15:28:27なんで楽するためにLua使ってるのに、
その境界でアセンブラのようなメンドクサイ操作をしなきゃなんないの。
本当に近代のプログラマ?
0932908=915=917=・・・
2006/10/09(月) 15:35:13さっきから文末に句点つけてるの俺とお前だけってバレバレなんですけよ^^;
0933デフォルトの名無しさん
2006/10/09(月) 15:36:14逆に、無理のないかなり練られた仕様だと思いますよ。
0934デフォルトの名無しさん
2006/10/09(月) 15:37:230935デフォルトの名無しさん
2006/10/09(月) 16:21:12なるほど、コルーチン使えば簡潔に書けるのか。
俺も似たようなことをやってみたから貼ってみる。
function rnext(t, keys)
local k, v
if keys == nil then
k, v = next(t, nil)
keys = { v = k, next = nil }
elseif keys.next == nil then
k, v = next(t, keys.v)
keys.v = k
else
k, v = rnext(t[keys.v], keys.next)
if k == nil then
k, v = next(t, keys.v)
keys = {v = k, next = nil }
end
end
if k == nil then
return nil
elseif type(v) == 'table' then
local ks
ks, v = rnext(v, nil)
keys.next = ks
end
return keys, v
end
0936デフォルトの名無しさん
2006/10/09(月) 16:22:08function rpairs(t)
return rnext, t, nil
end
function viewList(l, sep)
while l do
result = result .. l.v .. sep
l = l.next
end
return result
end
local a = {'a', {'b', 'c', {'d', e = 'f', 'g'}}, 'h', 'i'}
for i, v in rpairs(a) do
print(viewList(i), v)
end
長いなあ。
0937デフォルトの名無しさん
2006/10/09(月) 16:37:200938デフォルトの名無しさん
2006/10/09(月) 16:39:57はぁ?だから何?バカか?
0939デフォルトの名無しさん
2006/10/09(月) 16:53:210940デフォルトの名無しさん
2006/10/09(月) 17:12:490941デフォルトの名無しさん
2006/10/09(月) 17:17:46スタック操作主体だと使いにくいとか、面倒だと言う話
0942デフォルトの名無しさん
2006/10/09(月) 17:20:320943デフォルトの名無しさん
2006/10/09(月) 17:32:36lua = new Lua("hoge.lua");
a = lua.Integer["hoge"];
とかで、いいじゃん。
なんで、利便性のために、組み込み言語を使っているのに、
わざわざ面倒なスタックいじる必要があるのか理解に苦しむんだよね。
0944デフォルトの名無しさん
2006/10/09(月) 17:40:060945デフォルトの名無しさん
2006/10/09(月) 17:41:13viewList をちょっと変えようと思ってた途中をそのまんまにしてしまった。
local result = '' と、 sep = sep or ' ' を入れないとエラーになります。
あと、 926 の each は、
return coroutine.wrap(e)
で良い。
0946デフォルトの名無しさん
2006/10/09(月) 17:49:28となったらポインタ多用型にするかスタック型にするかしかなくね?
テーブルが絡んできたらどっちもどっちだと思うが。
0947デフォルトの名無しさん
2006/10/09(月) 17:56:27スタック操作は引数の取得と戻り値の設定だけだから
そんな大変じゃないような
0948デフォルトの名無しさん
2006/10/09(月) 17:58:45スタック型が分かりやすい使いやすいってのは嘘だってこった。
0949デフォルトの名無しさん
2006/10/09(月) 18:00:390950デフォルトの名無しさん
2006/10/09(月) 18:02:130951デフォルトの名無しさん
2006/10/09(月) 18:03:140952デフォルトの名無しさん
2006/10/09(月) 18:11:310953デフォルトの名無しさん
2006/10/09(月) 18:12:31お前は文が読めないのか???
0954デフォルトの名無しさん
2006/10/09(月) 18:21:030955デフォルトの名無しさん
2006/10/09(月) 18:24:48「スタック使いにくい」と言って独自のラッパーを作る香具師が多い。
ただその後「スタック簡単じゃんラッパいらんな」とAPI直接使うようになる香具師と
スタック使いにくいと言い続ける香具師に別れる。
0956デフォルトの名無しさん
2006/10/09(月) 18:28:22・スタック使いにくいと言い続ける香具師
の例を頼む
というか、お前今の時代に「香具師」って・・・
その超おっさん感をなんとかしろ。
0957デフォルトの名無しさん
2006/10/09(月) 18:29:37全部自分への悪口に見えるのかい?
0958デフォルトの名無しさん
2006/10/09(月) 18:31:38意味不明すぎ
0959デフォルトの名無しさん
2006/10/09(月) 18:36:420960デフォルトの名無しさん
2006/10/09(月) 18:43:170961デフォルトの名無しさん
2006/10/09(月) 18:51:34設定ファイル前処理用Luaを呼び出すのが正解。
スタックが面倒なら、Luaでやれることは全部Luaにやらせようぜ。
0962デフォルトの名無しさん
2006/10/09(月) 19:13:200963デフォルトの名無しさん
2006/10/09(月) 19:15:40自己完結してるな
0964デフォルトの名無しさん
2006/10/09(月) 19:42:130965デフォルトの名無しさん
2006/10/09(月) 20:37:30Struct={}
file_read(Struct,"data.txt")
function file_read(table,file_name)
local get_buf=""
local k=1
local key=0
local v=0
local file_num
file_num=_FOPEN(file_name,"r")
while get_buf==nil do
_FGETS(file_num,get_buf)
for key,v in string.gfind(get_buf, "([%w]+)=([-]?[%w]+)") do
table[k][tonumber(key)]=tonumber(v)
end
k=k+1
end
_FCLOSE(file_num)
end
読み込むデータ
[1]:{[0]=2,[1]=2,[2]=8,[3]=17,[4]=10}
[2]:{[0]=3,[1]=3,[2]=2,[3]=7,[4]=100}
[3]:{[0]=4,[1]=4,[2]=41,[3]=7,[4]=50}
[4]:{[0]=5,[1]=5,[2]=40,[3]=7,[4]=10}
[5]:{[0]=6,[1]=6,[2]=42,[3]=7,[4]=30}
[6]:{[0]=1,[1]=1,[2]=41,[3]=7,[4]=30}
何か俺間違えてる?
0966デフォルトの名無しさん
2006/10/10(火) 15:16:38を繰り返しを使ったコードで書き直してみた。ちょっとごちゃごちゃしているけど。
function rnext2(t, keys)
keys = keys or {}
local k, v
local ks, c = {t}, (#keys > 1) and #keys or 1
for i = 2, c do
ks[i] = ks[i-1][keys[i-1]]
end
k, v = next(ks[c], keys[c])
while (k == nil) and (c > 1) do
ks[c], keys[c], c = nil, nil, c-1
k, v = next(ks[c], keys[c])
end
if k == nil then return nil end
keys[c] = k
while type(v) == 'table' do
k, v = next(v, nil)
keys[#keys+1] = k
end
return keys, v
end
935 だと keys は連結リストだが、こっちは1つのテーブルを配列っぽく使ってる。
0967デフォルトの名無しさん
2006/10/10(火) 18:00:54dofileでチャンクごと読み込むと楽だよな
dofileで読み込むとglobalになるから好ましくないんだっけ?
0968デフォルトの名無しさん
2006/10/10(火) 19:26:50function envdofile(filename)
local c = loadfile(filename)
local e = {}
local m = getmetatable(e) or {}
m.__index = getfenv(c) or _G
setmetatable(e, m)
setfenv(c, e)
return e, c()
end
使い方
-- a.lua
c = envdofile("b.lua")
print(b) -- nil
print(c.b) -- 10
-- b.lua
b = 10
print(b) -- 10
0969デフォルトの名無しさん
2006/10/10(火) 20:24:10LuaGLの存在は知っていますが、LuaからGLUTを呼ぶためのライブラリは既にありますか?
むしろ作るべきですか?
0970デフォルトの名無しさん
2006/10/10(火) 21:19:190971デフォルトの名無しさん
2006/10/10(火) 21:43:250972デフォルトの名無しさん
2006/10/12(木) 07:04:080973デフォルトの名無しさん
2006/10/12(木) 08:24:26io.readAll io.writeAll
io.readCSV io.writeCSV
io.readTab io.writeTab
table.marge table.unmarge
table.dump table.save table.load
stack.dump
があったら便利だと思った。
0974デフォルトの名無しさん
2006/10/12(木) 18:27:250975デフォルトの名無しさん
2006/10/12(木) 20:30:08["document"]["body"]["color"]=256
↓
["document:body:color"]=256
みたいにすればファイルへのセーブ・ファイルからのロードも楽になるが・・・
0976デフォルトの名無しさん
2006/10/12(木) 20:32:030977デフォルトの名無しさん
2006/10/12(木) 21:07:160978table.dumpを書いてみました
2006/10/12(木) 23:18:50table._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")))
0979978
2006/10/12(木) 23:35:18ちょっと1レスに収まりきらなかったので・・・。
使い方はこんな感じです。
a = {A="A",B={b="b","d"},42} --複雑なテーブル
dump = table.dump(a, "a")
print(dump)
--(ここで dump を save.txt に保存したと仮定)
a = nil
dofile("save.txt") --読み込み
print(table.dump(a, "a"))
変なとこあったら教えてください。
0980デフォルトの名無しさん
2006/10/13(金) 00:00:09a = {A='a'}
a.next = a
みたいな循環構造のテーブルを渡した場合はどうしてる?
0982デフォルトの名無しさん
2006/10/13(金) 14:01:28ワラタ
0983デフォルトの名無しさん
2006/10/13(金) 15:24:080984デフォルトの名無しさん
2006/10/13(金) 17:37:23exception=setmetatable({throw=error},{__newindex=
function(t,k,v)if k=="catch"then xpcall(t.try,v)
else rawset(t,k,v)end end})
exception.try =function()
print("foo")
exception.throw("(^^)")
print("bar") end function
exception.catch(err)
print("error : "..err)
end
0985デフォルトの名無しさん
2006/10/13(金) 19:55:070986デフォルトの名無しさん
2006/10/13(金) 20:26:48考えてみると循環参照やら function、thread、userdata の復元やら、テーブルのシリアライズには
色々と問題がありますね・・・。あと、循環参照でなくても
d = { A="A" }
t = { d, d }
とかいう構造だと、
t = { [1]={ A="A" }, [2]={ A="A" } }
とは等価ではなく、
do
local d001 = { A="A" }
t = { [1]=d001, [2]=d001 }
end
みたいにダンプしてあげないと復元できないし・・・。
0987デフォルトの名無しさん
2006/10/13(金) 22:42:290988デフォルトの名無しさん
2006/10/13(金) 23:08:19NIL
BOOLEAN
FUNCTION
USERDATA
LIGHTUSERDATA
THREAD
の場合はどうしてるんだ?
文字列に変換出来るのだろうか?
0989デフォルトの名無しさん
2006/10/13(金) 23:17:14function each(t)
local cache = {}
local function e(t)
cache[t] = true
local k, v = next(t)
while k do
if cache[v] then
elseif type(v) == "table" then
e(v)
else
coroutine.yield(v)
end
k, v = next(t, k)
end
end
return coroutine.wrap(e), t
end
いちおう動いてるっぽい。
0990デフォルトの名無しさん
2006/10/13(金) 23:42:06error("cannot save a " .. type(value))
だと思う。
0991デフォルトの名無しさん
2006/10/14(土) 00:43:510992デフォルトの名無しさん
2006/10/14(土) 10:08:44使い方は 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
(続く)
0993992
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
0994984
2006/10/14(土) 10:54:05ただしtry-catch-finallyとつなげることはできない
exception=setmetatable({throw=error},{__newindex=
function(t,k,v)if k=="catch"then xpcall(t.try,v)
elseif k=="finally"then(function(e,m,...)v(e,m,
...)if not e then error(m,0)end end)(pcall(t.try))
else rawset(t,k,v)end end})
exception.try =function()
exception.throw("hogehoge") end
exception.finally =function()
print("finally")
end
0995デフォルトの名無しさん
2006/10/14(土) 11:26:26try
try
catch
end
finally
end
とできれば問題ないっす
0996デフォルトの名無しさん
2006/10/14(土) 12:11:290997デフォルトの名無しさん
2006/10/14(土) 12:22:18994のコードを見る限り、それは不可能だぞ。
0998984
2006/10/14(土) 12:27:01exception=setmetatable({throw=error},{__newindex=
function(t,k,v)if k=="catch"then xpcall(t.try,v)
elseif k=="finally"then local m,e e=xpcall(t.try,
function(e)m=e v(false,e)end)if e then v(true)
else error(m,0)end else rawset(t,k,v)end end})
0999デフォルトの名無しさん
2006/10/14(土) 12:44:251000デフォルトの名無しさん
2006/10/14(土) 13:06:3010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。