プログラミング言語 Lua その3
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/10/14(土) 13:13:52前々スレ http://pc5.2ch.net/tech/kako/1034/10341/1034182349.html
前スレ http://pc8.2ch.net/test/read.cgi/tech/1063711237/
本家 http://www.lua.org/
lua-users http://lua-users.org/
LuaForge http://luaforge.net/
Lua 5.1 リファレンスマニュアル(日本語訳)
http://sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html
0486デフォルトの名無しさん
2007/09/04(火) 19:15:48DelphiとFPCをサポートしてる?
0487デフォルトの名無しさん
2007/09/04(火) 20:50:51lua_register(L, "hoge", hogehoge);
を
lua_pushlightuserdata(L, static_cast<void*>(hoge));
lua_pushcclosure(L, hogehoge, 1);
lua_setglobal(L, "hoge");
に変えればいんじゃね?
hogehogeの中身は
int hogehoge(lua_State *L)
{
int* hoge = static_cast<int*>(lua_touserdata(L, lua_upvalueindex(1)));
// hogeを使っていろいろ
}
あと、hogeはどこでdeleteするの?
delete後にhogehogeを呼ばれたらアウト
0488デフォルトの名無しさん
2007/09/11(火) 02:21:22object.hpp:256 ---------
template<class LHS, class RHS>
typename enable_binary<bool,LHS,RHS>::type
operator!=(LHS const& lhs, RHS const& rhs)
{
return !(lhs < rhs); // '<' => '==' の間違い?
}
---------
luabinder の意見求む!!
0489デフォルトの名無しさん
2007/09/18(火) 15:27:050490デフォルトの名無しさん
2007/09/18(火) 23:28:090491デフォルトの名無しさん
2007/09/19(水) 21:23:460492デフォルトの名無しさん
2007/09/22(土) 20:39:470493デフォルトの名無しさん
2007/09/23(日) 19:05:000494デフォルトの名無しさん
2007/09/24(月) 00:30:350495デフォルトの名無しさん
2007/09/24(月) 00:37:35ぅあ
0496デフォルトの名無しさん
2007/09/28(金) 17:42:45∞ ぅゎ ょぅι゛ょ っょぃ
┃( '-') 、(;´д`)
┣ノ、 )= 三 )n ) Σ
〉 / / <
0497デフォルトの名無しさん
2007/10/14(日) 12:47:04C言語として
=> lua_gettable等がlongjmpかますので
C++と一緒に使うのは相当つらい。
C++言語として
=> 上記問題は解決する(longjmpでは無く
throwつかうから)がluaとリンクするプログラム
は全てC++でコンパイルする羽目になる
C++言語として&LUA_APIをextern "C"として宣言
=> 割合ましだが、相変わらずLuaとリンクする
プログラムは-fexceptions等をつけてコンパイル
する必要あり。
意見よろ
0498デフォルトの名無しさん
2007/10/14(日) 13:27:270499デフォルトの名無しさん
2007/10/14(日) 14:09:07>C++言語として&LUA_APIをextern "C"として宣言
Cのライブラリを使う予定がない場合はextern "C"無しでもいいかも。
LuaのソースコードがそのままC++でコンパイルできると知った時はちょっと感動したもんだ。
0500497
2007/10/14(日) 14:43:32やっぱそれが妥当ですかねぇ。
ただ、Cのライブラリ使う場合Cのライブラリを-fexceptions付き
でコンパイルしないといけないので(lua->Cライブラリ->luaが起こる
場合)、ソースが手に入ることが前提になるんだよね。
linux&gccな環境でソースが手に入らないことはまれだろうけど。
0501デフォルトの名無しさん
2007/10/14(日) 15:38:22何が変わるの?
0502497
2007/10/14(日) 16:26:57えーっと、gccの話ね。(VCにも似たオプションがあったはず)
関数呼び出しが”C++<1:try> => C<2> => C++<3:throw>” となる場合
<2>の部分のスタックをまき戻す為の情報を付加しているんだと
思う。自信ないけど。
これが無いと例外発生時にAbortしてしまう。
>>499の例で言うと、
lua(C++) => C言語ライブラリ => lua_gettable(...)
なんて場合、lua_gettable内で発生した例外が
C言語ライブラリ内を通ることになる。
0503デフォルトの名無しさん
2007/10/14(日) 16:57:07つけてもつけなくても素通りするだけで変わらないと思ってたけど、
つけないと abort しちゃうのか。
http://gcc.gnu.org/onlinedocs/gcc-4.2.2/gcc/Code-Gen-Options.html
-fexceptions
"... However, you may need to enable this option when compiling C code that needs to interoperate properly with exception handlers written in C++. ..."
なんかぼかして書いてあるけど、そういうことね。
ありがと。
0504デフォルトの名無しさん
2007/10/24(水) 19:54:400505デフォルトの名無しさん
2007/10/27(土) 13:51:35しC++側からその関数を呼び出すとlua_pcallのところで失敗します。きちん
とluaopen_math()なども呼び出しているのですが・・・
同じ経験がある人とかいませんか?
0506デフォルトの名無しさん
2007/10/27(土) 16:48:44lua_pcallの戻り値とエラーメッセージは?
それを確認すると解決の糸口が見つかると思う。
0507デフォルトの名無しさん
2007/10/27(土) 17:29:12スタックからpopするところでエラーが出ていました。引数はきちんと
スタックにつんでいるので問題ないと思うんですが・・・
標準ライブラリを使わない関数とかは普通に実行できるんで、全く理由が
分かりません。
0508デフォルトの名無しさん
2007/10/27(土) 17:55:590509507
2007/10/27(土) 18:26:57lua_getglobal(m_L, "hoge");
lua_pcall(m_L, 0, 1, 0); //ここでエラー
int ret = static_cast<int>(lua_tonumber(m_L, -1));
//luaファイルで定義した関数
function hoge
return math.random(100);
end
luaL_loadfile()は呼び出し済みです。
0511デフォルトの名無しさん
2007/10/27(土) 19:52:02luaopen_math呼んで無いじゃん。
呼んでる部分を含めた再現ソースを見せなさい。
0512507
2007/10/27(土) 22:31:55スタックトップのエラーメッセージを調べたら引数が足りないというエラー
でした。マニュアルにはmath.randomの定義は以下のように書いてあったので
普通に通るもんだと思っていたんですが・・・
「引数無しで呼ばれると、math.random は [0,1) の範囲の実数の疑似乱数を
返す。数値 n を渡すと、math.random は [1,n] の範囲の整数の疑似乱数を
返す。 2つの引数 l と u を渡して呼んだときは、 math.random は [l,u]
の範囲の整数の疑似乱数を返す。」
引数を2個で渡すとエラーは出なくなったんですが、常に0が返ってきます。
引数0個だと正常に動作します。何なんでしょうね。
>>511
luaopen_mathは呼んでいます。
0513デフォルトの名無しさん
2007/10/27(土) 23:22:03再現する最小限のソースを全て晒したら?
省略する奴に限って、省略したところに問題があるのはよくある話だから。
0514デフォルトの名無しさん
2007/11/02(金) 01:34:460515デフォルトの名無しさん
2007/11/02(金) 03:54:430516デフォルトの名無しさん
2007/11/02(金) 04:49:280517デフォルトの名無しさん
2007/11/02(金) 08:13:59LLでしょTJS2って
0518デフォルトの名無しさん
2007/11/02(金) 08:19:06http://eonclash.com/ViewProduct.php?ProductID=26
0519デフォルトの名無しさん
2007/11/02(金) 15:32:46スレタイ嫁
ここはLL全般じゃなくてぅあのスレだ。
つっても過疎ってるから俺は構わないけど。
0520デフォルトの名無しさん
2007/11/02(金) 18:55:19List[2]={"name","addr","phone"}
List[n]={"name","addr","phone"}
このような記述のList.luaがあるとして、これをrequireした後に書き出しすると、
List[4]={"name","addr","phone"}
List[1]={"name","addr","phone"}
List[3]={"name","addr","phone"}
List[2]={"name","addr","phone"}
のように、順序が崩れてしまいます。
テーブルのソートとはどのように行うのでしょうか?
0521デフォルトの名無しさん
2007/11/02(金) 19:04:321から始まる数値キーなら
for i,v in ipairs(List) do ... end
で回せばキーの順序はずれないと思うんだけどな。
実際ソートするならこれだけど。
table.sort(table, function(a,b) return a.x < b.x end)
みたいな。
ただこれでソートするにしても、テーブルは配列状(キーは1から始まる数値)である必要がある。
0522デフォルトの名無しさん
2007/11/02(金) 19:07:27ありがとうございます。
現在のところ、
List[2]={"name","addr","phone"}
List[3]={"name","addr","phone"}
List[n]={"name","addr","phone"}
などのように1から始まる保証は無く、かつ数値が2, 3, 5, 6, 8, ...のように
飛び番になる可能性もあります。
実際のところ、処理上は問題は出ないのですが、
ログを取った際の可読性の問題でソート可能であればしたいのです。
0523デフォルトの名無しさん
2007/11/02(金) 19:22:39Listとは別に、
sort_table[1]={no=5,"name","addr","phone"}
sort_table[2]={no=1,"name","addr","phone"}
sort_table[3]={no=13,"name","addr","phone"}
....
って形に詰めなおして>>521みたいにnoでソートすればおk
0524デフォルトの名無しさん
2007/11/02(金) 23:05:56前スレ嫁。ここはLL全般のスレだ。
お前が構おうが構うまいがな。
0525デフォルトの名無しさん
2007/11/02(金) 23:27:58お前が構おうが構うまいがここはスレタイ通りLuaのスレだ。
ここが何のスレかを知るのになぜ前スレを読む必要がある?
LL全般について議論したいのならお前がLLスレを立てればいいだけのこと。
0526デフォルトの名無しさん
2007/11/02(金) 23:45:50前スレみるまでもなく>>8-11辺りでわかるんじゃ?
スレも半分超えてるのになんで今更突然……。
0527デフォルトの名無しさん
2007/11/03(土) 01:00:15LL一般扱ってたらスレがいくらあっても足りないぜ
0528デフォルトの名無しさん
2007/11/03(土) 05:06:28はいはい、新参が知ったかすんな。
>>527
何が一杯一杯なの?
つうか、お前過疎ってるから構わないって言った癖に意味不明すぎんな。
0529デフォルトの名無しさん
2007/11/03(土) 08:40:49次スレ(いつになるかわからんけど)のスレタイは変えたほうが良いかもね。
0530デフォルトの名無しさん
2007/11/03(土) 08:48:29勝手に連立政権にされちゃ迷惑だ。
0531デフォルトの名無しさん
2007/11/03(土) 10:53:29LL特集になぜかLuaは入れてもらえないことが多いんだこれが
0532デフォルトの名無しさん
2007/11/03(土) 11:07:19Webサーバとの組み合わせを指向してないからかな?
0533デフォルトの名無しさん
2007/11/03(土) 11:28:57違う。
組み込み言語全般のスレ。
過去ログ嫁
スレタイは、前回、組み込み言語にしろって言ったのに、
Luaだけにしやがっただけで
0534デフォルトの名無しさん
2007/11/03(土) 11:35:560535デフォルトの名無しさん
2007/11/03(土) 11:39:37ワロタw
まさしくその通りw
0536デフォルトの名無しさん
2007/11/03(土) 11:59:15そうですw
0537デフォルトの名無しさん
2007/11/03(土) 12:51:30このスレ用のwikiもURLはluaだけど、LLならOKってなってるでしょ。
http://wikiwiki.jp/lua/
「情報が錯綜する」ってバカですか。
錯綜するほど情報が出てないでしょ。
むしろ組み込み言語の情報が集まった方がいい。
>>534=535=536
そうじゃない。前スレではLL全般ということで同意がとれていていた。
0538デフォルトの名無しさん
2007/11/03(土) 12:55:10そんなに煽りに反応しなくて良いよ。
0539デフォルトの名無しさん
2007/11/03(土) 12:56:14なんだかんだでスレタイは変わらなかったんだよ。
前スレDAT落ちしてる上に、1年以上も前の話だから、
忘れてる人も多いだろうし、最近来た人が知らないのはしょうがない。
0540デフォルトの名無しさん
2007/11/03(土) 12:56:41てか、ここ一年未満の新参が増えて、古参はluaをもう見放したのか?
0541デフォルトの名無しさん
2007/11/03(土) 13:13:340542デフォルトの名無しさん
2007/11/03(土) 15:21:49ノシ 前スレからいます。
テンプレがあまり良くないよね。
前スレの終り頃はゴタゴタしてて急だったから立ててくれた人を責められないけど。
人も集まってるみたいだしテンプレを考えるにはいい機会かも。
できたら>11のWikiに書いておくと。
0543デフォルトの名無しさん
2007/11/04(日) 21:18:36民主主義は多数決で決まるんだよ、ばかがw
0544デフォルトの名無しさん
2007/11/04(日) 22:29:070545デフォルトの名無しさん
2007/11/04(日) 23:50:22このLL全般でやってる現在でさえスローペースなんだよ? 全然意味がわからない。
0546デフォルトの名無しさん
2007/11/04(日) 23:52:22えー、Lua専用にしようという意見があるみたいなんですが、
別にレスも多いわけではないしそういった話が出る理由がわかりません。
……なんか、ごめん……。
0547デフォルトの名無しさん
2007/11/05(月) 00:06:05今Lua専用なんだから格別の理由がなければそのままだろ.
過疎スレは過疎スレなりに3スレまで来てるんだし
わざわざ総合にするって話が出る理由がわかりません.
0548デフォルトの名無しさん
2007/11/05(月) 00:16:03統合と言うことでいいんじゃない?
現状うまくいってるところを、わざわざ乱すこともないと思う。
0549デフォルトの名無しさん
2007/11/05(月) 00:17:560550デフォルトの名無しさん
2007/11/05(月) 01:23:03ここが『Lua専用』だと思ってる奴って前スレとか持ち出すまでもなくこのスレ読んでないんじゃないかと。
0551デフォルトの名無しさん
2007/11/05(月) 01:34:36とりあえず、Wikiでも作ってみようかと思うんだが必要?
694 :デフォルトの名無しさん:2006/03/17(金) 09:57:30
このスレのWikiを作ろうかって話なんだから
看板はLuaで一応Luaの情報メインだけど
アプリ組み込み系なら多少の脱線はあり、ぐらいでいいだろ。
メジャーな言語は他所でやってくれ。
695 ::2006/03/17(金) 17:49:21
LightWeightLanguageがでかすぎるから。
やっぱ組み込み向けscriptつーことで
701 :デフォルトの名無しさん:2006/03/18(土) 21:36:56
なしてそこまでLightWeightLanguageでまとめたがるのか
明らかにLua wikiの方がわかりやすいタイトルと思うのだが
703 :デフォルトの名無しさん:2006/03/19(日) 02:18:56
このスレが、LightWeightLanguageの情報OKってなったからだろ。
LuaだけでWikiほんとに必要か?
マニュアルだけで結構十分じゃない?w
このスレの情報の出具合からいっても、
Wikiつくっても寂れるの見えてない?
↑前スレですでに総合スレにする流れになってたし、
そもそも前スレでも総合的に扱ってたはず。
このスレの最初のほうにも書いてあるし。
0552デフォルトの名無しさん
2007/11/05(月) 08:40:28お前、これまでの話聴いてなかったのか?
0553デフォルトの名無しさん
2007/11/05(月) 09:30:03・・・
ほんとにもう・・・乱してるのがおまえらだよ にわか
0554デフォルトの名無しさん
2007/11/05(月) 13:32:10上でさんざんでているsquirrelはなんだと思っているんだろう
0555デフォルトの名無しさん
2007/11/05(月) 18:26:14http://sourceforge.net/projects/squirrel-sql/
検索ついでにテンプレ用にsquirrel関連を拾っておくか
The programming language Squirrel
http://www.squirrel-lang.org/
http://sourceforge.net/projects/squirrel/
SqPlus http://sourceforge.net/projects/sqplus/
Squirrel Shell http://sourceforge.net/projects/squirrelsh/
0556デフォルトの名無しさん
2007/11/05(月) 20:42:18"squirrel"でこのスレを検索すれば、
lua専用スレじゃないということは、前スレを見るまでも無くあきらかだな。
0557デフォルトの名無しさん
2007/11/06(火) 01:52:370558デフォルトの名無しさん
2007/11/06(火) 02:00:57squirrelはこのスレでいいのは事実
0559デフォルトの名無しさん
2007/11/10(土) 06:44:52【Lua】LightWeightLanguage統合【squirrel】
【Lua】組み込み言語統合【squirrel】
0560デフォルトの名無しさん
2007/11/10(土) 07:04:420561デフォルトの名無しさん
2007/11/10(土) 07:22:32そうすりゃSquirrelスレが立つ心配も無さそうだしな
…ところで、次スレの話はまだ早すぎないか?
何だか、自分超元気なのに次期国王の話を聞かされる王様の気分だ
0562デフォルトの名無しさん
2007/11/10(土) 07:48:54なんか違和感あったんだよな。
0563デフォルトの名無しさん
2007/11/10(土) 08:19:440564デフォルトの名無しさん
2007/11/10(土) 09:02:580565デフォルトの名無しさん
2007/11/10(土) 09:48:25なかなかいいんじゃないかな
>>562
このスレがLuaで機能してるから他の言語くるな、なんて
質問しかしないような奴がいいそうなこったな
0566デフォルトの名無しさん
2007/11/10(土) 11:07:010567デフォルトの名無しさん
2007/11/10(土) 11:51:300568デフォルトの名無しさん
2007/11/10(土) 12:28:24・アプリ組み込み用
・軽量小規模言語
・他にスレがない
あたりかな。巷のLLとはちょっと違う気がする。
LL自体定義があるのかよくわからないが。
0569デフォルトの名無しさん
2007/11/10(土) 13:11:20ニワカ乙
0570デフォルトの名無しさん
2007/11/10(土) 13:43:20そんなとこだろうな というか
ずっとそんなスレのつもりだった
0571デフォルトの名無しさん
2007/11/10(土) 14:09:13いや、組み込む話題については、歓迎かも知れんけど
0572デフォルトの名無しさん
2007/11/10(土) 14:19:33PHPは組み込みあったっけ。
0573デフォルトの名無しさん
2007/11/10(土) 15:45:11そっち系の話題は向こうのスレじゃあんま出ないしな。
いや、もちろん出してもスレ違い扱いされたりはしないだろうが。
0574デフォルトの名無しさん
2007/11/10(土) 23:40:43>571-573 のニュアンスを加えて文章にしてみた。
[[
アプリケーション組み込み用の小規模言語についてのスレです。
話題の中心はLua、Squirrelですが他の言語もOK。
]]
0575デフォルトの名無しさん
2007/11/10(土) 23:46:170576デフォルトの名無しさん
2007/11/11(日) 03:59:09> 【Lua】組み込み言語統合【squirrel】
に一票
0577デフォルトの名無しさん
2007/11/11(日) 06:37:50よろしくお願いします。
1,luaの実行を内部から一時停止、外部から再開する方法にcoroutine以外のやり方はありますか?
2,luaの実行を外部から一時停止&再開することはできますか?
3,フックされた関数からluaを一時停止させることはできますか?
0578577
2007/11/11(日) 07:45:09「スレタイ変更とは関係ありません」でした><
0579デフォルトの名無しさん
2007/11/12(月) 20:12:361、2はファイバorスレッドorプロセスが絡む話なの?
そうであればやり様はいくらでも有る。実行コンテキストを
変えずにという意味であれば他に方法は無いと思う。
3、”フックされた関数”=>”Luaから呼ばれたC言語の関数”という
意味であればlua_yieldを使うかcocoを使うか。
0580デフォルトの名無しさん
2007/11/14(水) 01:03:42フック関数からyieldできるなんて意外でした。
ありがとうございます。
0581デフォルトの名無しさん
2007/11/14(水) 15:41:09gdbやvcのような環境でデバッグできませんか?
0582デフォルトの名無しさん
2007/11/14(水) 16:11:03だけど、Lua専用IDEからならできるよ
Decoaだっけ
0583デフォルトの名無しさん
2007/11/14(水) 23:55:43Decodaは割合評判いいらしいね。
他に名前聞いたものとしては
VSLua(有料)
LuaEdit(無料・微妙というか未完成)
wxLuaにもビジュアルデバッガついてたような気がするけど、embed環境で動かせるかどうかは不明。
0584デフォルトの名無しさん
2007/11/17(土) 19:26:16>>593
Decodaいいですね。組み込みで使いたかったです。
LuaEditも試してみたのですが、luaをdllにする必要があるのと、
そのdllのバージョンを合わせるのが大変で途中でやめてしまいました。
luaの自作ライブラリをdllにしてしまった方が早そうな感じです。
どもでした。
0585デフォルトの名無しさん
2007/11/17(土) 19:36:030586デフォルトの名無しさん
2007/11/17(土) 21:47:01continueでしょうか、nextでしょうか?
ttp://uri.sakura.ne.jp/~cosmic/yuno/lab/lua5_manual_ja.html
この辺を参考にしているのですが、breakなどしか見当たらなくて困っています。
■ このスレッドは過去ログ倉庫に格納されています