[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 04/15 10:52 / Filesize : 210 KB / Number-of Response : 911
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 13:13:52 ]
だれか サポ−ト 頼む。
前々スレ pc5.2ch.net/tech/kako/1034/10341/1034182349.html
前スレ pc8.2ch.net/test/read.cgi/tech/1063711237/
本家 www.lua.org/
lua-users lua-users.org/
LuaForge luaforge.net/
Lua 5.1 リファレンスマニュアル(日本語訳)
sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html

454 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 00:13:42 ]
>>453
>>452が何をいってるのかちゃんと理解できてるか?
キレてるのだけはわかるんだが
黙ってろとかどんだけだよ

455 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 00:20:08 ]
どおおおんだけええええええ

456 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 01:25:58 ]
まあいろいろと突っ込まれるのは覚悟してました
Squirrelのことだったらまだしもそれ以前に用語の使い方がおかしかったりとか
そういう指摘もあるだろうなあ、と
それはもう未熟っぷりを晒す覚悟でしたのでいいのですが、
Squirrelに関する間違いはここで出して欲しいです。それをまとめたいので。
特に>>448さんのdelegateに関しては具体的に理由を聞きたいです
常駐、非常駐的なことをするのって他に方法あるんですかね?
個人的にそこら辺は死活問題なんですよね

457 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 01:26:54 ]
安価447だったw

458 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 01:46:54 ]
つーかめんどくさいとか、投げやりとか書いてるし、
最初から真面目にやろうとしてないじゃん。

スレは荒れるし、入門者が間違った知識覚える恐れもあるし、
やる気無いんだったら別にやらなくていいから、変なこと書かないでくれ。

459 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 01:48:57 ]
>>454
なにキレてんの?

460 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 01:50:07 ]
>>458
間違いを指摘するやる気もないなら、お前が黙ってろって話だと思うよ

461 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 01:54:45 ]
>>460
黙ってろとかどんだけだよ

>>458
書かないでくれとかどんだけだよ

どおおおんだけええええええ

462 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 02:04:02 ]
どんだけとかどんだけだよ



463 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 02:13:18 ]
>>461
どんだけ〜言われたのが相当気に障ったのか相当気に入ったのか知らないけど
書きたいだけならどっか他のとこで発散してきてくれると助かる

464 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 02:28:00 ]
このスレ定期的に小学生の口ゲンカみたいなやりとりがあるけど
luaってそういう言語だったっけ
複数手前のスクリプトのステートメントを参照できる変数があって
それを一部書き換えてevalできるとか
すごいプログラムがかけそうだが

465 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 02:47:24 ]
>>463
キレてんのはお前だろ。どっかいってね。

466 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 03:49:14 ]
>>456
常駐、非常駐的なことってのがよくわからないんだけど
いらなくなったら消すテーブルの名前をあらかじめ決めておいて
スクリプトの中でいらなくなったら消すものはそのテーブル内に定義しておいて
そのテーブルをいらなくなったら消す
じゃだめなの?

467 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 07:54:03 ]
オブジェクト指向のスクリプト言語が遅いのはほぼ定説だと思うが

468 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 17:56:15 ]
>>466
リファレンスにある関数登録みたいなやり方でテーブルを登録するってことですか

そうかー、普通そうするのか

469 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 18:07:59 ]
でもそれって、GCやrefcountを阻害するだけじゃない?


470 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 00:12:03 ]
>>468
どうも納得されてるみたいだけど
常駐、非常駐的なことってのが未だに謎なので少し説明してよ
>リファレンスにある関数登録みたいなやり方
ってどこのこと?

あまりにニッチな要求に応えなくちゃならんならスクリプトでどうにかしようとするより
squirrelのソースコードいじるほうが利口な場合もあるかもしれないよ?

471 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 00:41:37 ]
>いらなくなったら消す
いるものは残して、いらないものは消す。おっしゃってる通りのことをやりたいだけです。
ルートテーブルに全部のスクリプト読み込んでたら、そういう区別ができないじゃないですか

>>リファレンスにある関数登録みたいなやり方
>ってどこのこと?
SQFUNCTION型の関数をルートテーブルに登録するやつみたいなやり方…、じゃないんですか?

472 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 01:46:07 ]
>>471
APIでやるならそのとおり

↓みたいなスクリプトをルートテーブルをpushしたあとdofileしちゃってもいいし
tmptable <-
{
 a = function(v) { return v + 1; },
 v1 = 0,
 v2 = 3.1415
};



473 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 11:16:30 ]
>>472
166はコンパイラを削ってつかっている予感

常駐の意味がよくわからないけど、
がんばって使ってる感がいいね


474 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 22:09:09 ]
IronLua じゃなくて Nua かよ(w
www.codeplex.com/Nua

475 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 23:09:00 ]
ぬあ?

476 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 01:12:36 ]
あえて外人っぽく発音すればヌワだが

477 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 01:22:53 ]
にょわーっ

478 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 20:47:36 ]
Nuaで検索するとFate系ばっかだな

479 名前:デフォルトの名無しさん [2007/09/01(土) 13:13:08 ]
>>166さんの文章ってどこ?

Squirrel - Lua/組み込み系言語 Wiki*
wikiwiki.jp/lua/?Squirrel

こっちにもないんだけど・・・roz

480 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 13:18:28 ]
とりあえず張られてるリンクを探してみるとか
そういうこと考えないのか?

481 名前:デフォルトの名無しさん [2007/09/01(土) 13:41:26 ]
>>480
お!はてなのやる気のないゲームプログラマさんのページか!
dクスだぜ
じっくりよむぜ

482 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 21:09:16 ]
質問

lua_State *L = lua_open();
int* hoge = new int;
lua_register(L, "hoge", hogehoge);
luaL_dofile( L, "hoge.lua");

この時、関数hogehoge内で変数hogeをいじりたいのですが、
どうすればいいのでしょうか?
グローバルに置くとかしか解決方法がないのならあきらめますが…



483 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 16:01:58 ]
>>466
思ったんですが、そのやり方で登録した関数はスクリプト側から呼び出せないんじゃないでしょうか


484 名前:デフォルトの名無しさん [2007/09/04(火) 11:57:00 ]
API はまだよく知らないんですが、ローカル変数をほかの関数からいじるには、
その関数に変数の参照を渡す必要があります。
たぶんテーブルで囲んであげればいいです。Lua のコードで書くとこんな感じ。

function hogehoge(box)
box[1] = 456
end

local hoge = {123}
hogehoge(hoge) -- ここで hoge の内容が変わる

485 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 15:04:00 ]
Generic Pascal Lua Library
www.eonclash.com/ViewProduct.php?ProductID=24

486 名前:デフォルトの名無しさん [2007/09/04(火) 19:15:48 ]
>>485
DelphiとFPCをサポートしてる?

487 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 20:50:51 ]
>>482
lua_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を呼ばれたらアウト

488 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 02:21:22 ]
luabindのこれってバグ?

object.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 の意見求む!!


489 名前:デフォルトの名無しさん [2007/09/18(火) 15:27:05 ]
age

490 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 23:28:09 ]
ぅあ

491 名前:デフォルトの名無しさん mailto:hage [2007/09/19(水) 21:23:46 ]
ぅあ

492 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 20:39:47 ]
ょゅぅょゅぅ



493 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 19:05:00 ]
|ナ|ナ|ナ

494 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 00:30:35 ]
っょぃっょぃ

495 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 00:37:35 ]
ょゎぃょゎぃ

ぅあ

496 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 17:42:45 ]
   ドゴォォォ
    ∞        ぅゎ ょぅι゛ょ っょぃ
   ┃( '-')  、(;´д`) 
   ┣ノ、 )= 三 )n ) Σ   
      〉  / / <  

497 名前:デフォルトの名無しさん [2007/10/14(日) 12:47:04 ]
皆さんLuaインタプリタを何でコンパイルしてる?

C言語として
=> lua_gettable等がlongjmpかますので
  C++と一緒に使うのは相当つらい。

C++言語として
=> 上記問題は解決する(longjmpでは無く
  throwつかうから)がluaとリンクするプログラム
  は全てC++でコンパイルする羽目になる

C++言語として&LUA_APIをextern "C"として宣言
=> 割合ましだが、相変わらずLuaとリンクする
  プログラムは-fexceptions等をつけてコンパイル
  する必要あり。

意見よろ

498 名前:デフォルトの名無しさん [2007/10/14(日) 13:27:27 ]
つDLL

499 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 14:09:07 ]
俺は
>C++言語として&LUA_APIをextern "C"として宣言

Cのライブラリを使う予定がない場合はextern "C"無しでもいいかも。
LuaのソースコードがそのままC++でコンパイルできると知った時はちょっと感動したもんだ。

500 名前:497 mailto:sage [2007/10/14(日) 14:43:32 ]
>>499
やっぱそれが妥当ですかねぇ。

ただ、Cのライブラリ使う場合Cのライブラリを-fexceptions付き
でコンパイルしないといけないので(lua->Cライブラリ->luaが起こる
場合)、ソースが手に入ることが前提になるんだよね。
linux&gccな環境でソースが手に入らないことはまれだろうけど。


501 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 15:38:22 ]
そもそもCには例外処理が言語に組み込まれてないんだけど、 -fexception つけると
何が変わるの?

502 名前:497 mailto:sage [2007/10/14(日) 16:26:57 ]
>>501
えーっと、gccの話ね。(VCにも似たオプションがあったはず)
関数呼び出しが”C++<1:try> => C<2> => C++<3:throw>” となる場合
<2>の部分のスタックをまき戻す為の情報を付加しているんだと
思う。自信ないけど。
これが無いと例外発生時にAbortしてしまう。

>>499の例で言うと、
lua(C++) => C言語ライブラリ => lua_gettable(...)
なんて場合、lua_gettable内で発生した例外が
C言語ライブラリ内を通ることになる。




503 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 16:57:07 ]
>>502
つけてもつけなくても素通りするだけで変わらないと思ってたけど、
つけないと abort しちゃうのか。

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++. ..."

なんかぼかして書いてあるけど、そういうことね。

ありがと。

504 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 19:54:40 ]
hoshu

505 名前:デフォルトの名無しさん [2007/10/27(土) 13:51:35 ]
luaファイルで標準ライブラリの関数(math.randomとか)を使った関数を定義
しC++側からその関数を呼び出すとlua_pcallのところで失敗します。きちん
とluaopen_math()なども呼び出しているのですが・・・
同じ経験がある人とかいませんか?

506 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 16:48:44 ]
>>505
lua_pcallの戻り値とエラーメッセージは?
それを確認すると解決の糸口が見つかると思う。

507 名前:デフォルトの名無しさん [2007/10/27(土) 17:29:12 ]
lua_pcallの戻り値は2なんで実行時エラーの模様です。デバッガで追ってみると
スタックからpopするところでエラーが出ていました。引数はきちんと
スタックにつんでいるので問題ないと思うんですが・・・
標準ライブラリを使わない関数とかは普通に実行できるんで、全く理由が
分かりません。

508 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 17:55:59 ]
再現するソースを見せるんだ

509 名前:507 [2007/10/27(土) 18:26:57 ]
//関数呼び出し部分
lua_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()は呼び出し済みです。

510 名前:506 mailto:sage [2007/10/27(土) 19:03:01 ]
>>507
戻り値が0以外の時は文字列型のエラーメッセージが
スタックのトップに置かれているからそれを見れ。

511 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 19:52:02 ]
>>509
luaopen_math呼んで無いじゃん。
呼んでる部分を含めた再現ソースを見せなさい。

512 名前:507 [2007/10/27(土) 22:31:55 ]
>>510
スタックトップのエラーメッセージを調べたら引数が足りないというエラー
でした。マニュアルにはmath.randomの定義は以下のように書いてあったので
普通に通るもんだと思っていたんですが・・・
「引数無しで呼ばれると、math.random は [0,1) の範囲の実数の疑似乱数を
返す。数値 n を渡すと、math.random は [1,n] の範囲の整数の疑似乱数を
返す。 2つの引数 l と u を渡して呼んだときは、 math.random は [l,u]
の範囲の整数の疑似乱数を返す。」
引数を2個で渡すとエラーは出なくなったんですが、常に0が返ってきます。
引数0個だと正常に動作します。何なんでしょうね。

>>511
luaopen_mathは呼んでいます。



513 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 23:22:03 ]
>>512
再現する最小限のソースを全て晒したら?
省略する奴に限って、省略したところに問題があるのはよくある話だから。

514 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 01:34:46 ]
ミニマムコードを上げろー

515 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 03:54:43 ]
このスレ的にはTJS2の組み込みってどうなの?

516 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 04:49:28 ]
スレ違い

517 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 08:13:59 ]
え?べつにいいんじゃないの
LLでしょTJS2って

518 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 08:19:06 ]
pLua (Lua wrapper for FPC, Lazarus, and Delphi)
eonclash.com/ViewProduct.php?ProductID=26

519 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 15:32:46 ]
>>517
スレタイ嫁
ここはLL全般じゃなくてぅあのスレだ。

つっても過疎ってるから俺は構わないけど。

520 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 18:55:19 ]
List[1]={"name","addr","phone"}
List[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"}

のように、順序が崩れてしまいます。
テーブルのソートとはどのように行うのでしょうか?

521 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 19:04:32 ]
>>520
1から始まる数値キーなら
for i,v in ipairs(List) do ... end
で回せばキーの順序はずれないと思うんだけどな。

実際ソートするならこれだけど。
table.sort(table, function(a,b) return a.x < b.x end)
みたいな。

ただこれでソートするにしても、テーブルは配列状(キーは1から始まる数値)である必要がある。

522 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 19:07:27 ]
>>521
ありがとうございます。

現在のところ、

List[2]={"name","addr","phone"}
List[3]={"name","addr","phone"}
List[n]={"name","addr","phone"}

などのように1から始まる保証は無く、かつ数値が2, 3, 5, 6, 8, ...のように
飛び番になる可能性もあります。
実際のところ、処理上は問題は出ないのですが、
ログを取った際の可読性の問題でソート可能であればしたいのです。



523 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 19:22:39 ]
>>522

Listとは別に、

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

524 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 23:05:56 ]
>>519
前スレ嫁。ここはLL全般のスレだ。

お前が構おうが構うまいがな。

525 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 23:27:58 ]
>>524
お前が構おうが構うまいがここはスレタイ通りLuaのスレだ。
ここが何のスレかを知るのになぜ前スレを読む必要がある?

LL全般について議論したいのならお前がLLスレを立てればいいだけのこと。

526 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 23:45:50 ]
>>524-525
前スレみるまでもなく>>8-11辺りでわかるんじゃ?
スレも半分超えてるのになんで今更突然……。

527 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 01:00:15 ]
ぅあだけでもいっぱいいっぱいなのに
LL一般扱ってたらスレがいくらあっても足りないぜ

528 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 05:06:28 ]
>>525
はいはい、新参が知ったかすんな。


>>527
何が一杯一杯なの?

つうか、お前過疎ってるから構わないって言った癖に意味不明すぎんな。

529 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 08:40:49 ]
1年経で500レス程度だからLL全般スレでも良さげだな。
次スレ(いつになるかわからんけど)のスレタイは変えたほうが良いかもね。

530 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 08:48:29 ]
情報が錯綜するからLuaがらみの話題だけでいいよ。
勝手に連立政権にされちゃ迷惑だ。

531 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 10:53:29 ]
せいぜい Luaとその仲間 ぐらいかな。

LL特集になぜかLuaは入れてもらえないことが多いんだこれが

532 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 11:07:19 ]
なんでだろう?
Webサーバとの組み合わせを指向してないからかな?



533 名前:デフォルトの名無しさん [2007/11/03(土) 11:28:57 ]
>>519
違う。
組み込み言語全般のスレ。
過去ログ嫁

スレタイは、前回、組み込み言語にしろって言ったのに、
Luaだけにしやがっただけで

534 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 11:35:56 ]
「俺様はそうしろと言ったのに無視しやがって」

535 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 11:39:37 ]
>>534
ワロタw
まさしくその通りw

536 名前:デフォルトの名無しさん [2007/11/03(土) 11:59:15 ]
>>534
そうですw

537 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 12:51:30 ]
前スレでもLuaの話題なんてたいしてなかったんで、LL系の話題は全般取り扱うことになったの。
このスレ用のwikiもURLはluaだけど、LLならOKってなってるでしょ。
wikiwiki.jp/lua/


「情報が錯綜する」ってバカですか。
錯綜するほど情報が出てないでしょ。
むしろ組み込み言語の情報が集まった方がいい。

>>534=535=536
そうじゃない。前スレではLL全般ということで同意がとれていていた。


538 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 12:55:10 ]
>>537
そんなに煽りに反応しなくて良いよ。

539 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 12:56:14 ]
前スレの終わり辺りではLL全般のスレにしようって流れだったんだけど、
なんだかんだでスレタイは変わらなかったんだよ。
前スレDAT落ちしてる上に、1年以上も前の話だから、
忘れてる人も多いだろうし、最近来た人が知らないのはしょうがない。

540 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 12:56:41 ]
ちなみに俺は533ではない。

てか、ここ一年未満の新参が増えて、古参はluaをもう見放したのか?

541 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 13:13:34 ]
squirrelが気になってます


542 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 15:21:49 ]
>>540
ノシ 前スレからいます。

テンプレがあまり良くないよね。
前スレの終り頃はゴタゴタしてて急だったから立ててくれた人を責められないけど。

人も集まってるみたいだしテンプレを考えるにはいい機会かも。
できたら>11のWikiに書いておくと。



543 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 21:18:36 ]
LL全般スレになったらlua専用スレ立てればいいだけじゃんw
民主主義は多数決で決まるんだよ、ばかがw

544 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 22:29:07 ]
多数決も取ってないのによく言えるね、ばかがw

545 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 23:50:22 ]
というか、たぶんLua専用する理由ってなに?
このLL全般でやってる現在でさえスローペースなんだよ? 全然意味がわからない。

546 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 23:52:22 ]
日本語で言え俺orz

えー、Lua専用にしようという意見があるみたいなんですが、
別にレスも多いわけではないしそういった話が出る理由がわかりません。

……なんか、ごめん……。

547 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 00:06:05 ]
Lua専用にするっていうか,別に総合スレをLuaスレにしようって言ってるわけじゃなし.
今Lua専用なんだから格別の理由がなければそのままだろ.
過疎スレは過疎スレなりに3スレまで来てるんだし
わざわざ総合にするって話が出る理由がわかりません.

548 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 00:16:03 ]
別にLL総合スレを立てて、Luaスレが寂れて落ちるようなら
統合と言うことでいいんじゃない?
現状うまくいってるところを、わざわざ乱すこともないと思う。

549 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 00:17:56 ]
元々スレタイはLuaだけど、内容的には総合スレ同然だと思うが。

550 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 01:23:03 ]
そこの認識だよね。
ここが『Lua専用』だと思ってる奴って前スレとか持ち出すまでもなくこのスレ読んでないんじゃないかと。

551 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 01:34:36 ]
687 :1:2006/03/16(木) 16:08:48
とりあえず、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つくっても寂れるの見えてない?


↑前スレですでに総合スレにする流れになってたし、
そもそも前スレでも総合的に扱ってたはず。
このスレの最初のほうにも書いてあるし。

552 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 08:40:28 ]
>>547-548
お前、これまでの話聴いてなかったのか?



553 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 09:30:03 ]
>>547-548
・・・
ほんとにもう・・・乱してるのがおまえらだよ にわか

554 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 13:32:10 ]
LuaLuaいってるやつは
上でさんざんでているsquirrelはなんだと思っているんだろう

555 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 18:26:14 ]
これとか?
sourceforge.net/projects/squirrel-sql/

検索ついでにテンプレ用にsquirrel関連を拾っておくか
The programming language Squirrel
www.squirrel-lang.org/
sourceforge.net/projects/squirrel/
SqPlus sourceforge.net/projects/sqplus/
Squirrel Shell sourceforge.net/projects/squirrelsh/

556 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 20:42:18 ]
>>554
"squirrel"でこのスレを検索すれば、
lua専用スレじゃないということは、前スレを見るまでも無くあきらかだな。

557 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 01:52:37 ]
SquirrelはLuaからの派生だからどちみちここで良いのでは。

558 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 02:00:57 ]
別にluaからforkしたわけじゃないんで、派生とはいえない けど、
squirrelはこのスレでいいのは事実

559 名前:デフォルトの名無しさん [2007/11/10(土) 06:44:52 ]
次スレタイトル案
【Lua】LightWeightLanguage統合【squirrel】
【Lua】組み込み言語統合【squirrel】

560 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 07:04:42 ]
>>243に一票

561 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 07:22:32 ]
Squirrelの情報欲しい人の為にもスレタイにSquirrelは欲しい気がする
そうすりゃSquirrelスレが立つ心配も無さそうだしな

…ところで、次スレの話はまだ早すぎないか?
何だか、自分超元気なのに次期国王の話を聞かされる王様の気分だ

562 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 07:48:54 ]
ぅあで喜んではしゃいでたのはやっぱりニワカか。

なんか違和感あったんだよな。



563 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 08:19:44 ]
Squirrel重すぎ

564 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 09:02:58 ]
ぎりぎりになって決まってなくて結局いまのまま……みたいなのは避けたい。

565 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 09:48:25 ]
>>559
なかなかいいんじゃないかな

>>562
このスレがLuaで機能してるから他の言語くるな、なんて
質問しかしないような奴がいいそうなこったな

566 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 11:07:01 ]
そしてPerl, Ruby, Python, PHP, JavaScriptで埋め尽くされる、と

567 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 11:51:30 ]
566 ニワカ乙

568 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 12:28:24 ]
守備範囲は
・アプリ組み込み用
・軽量小規模言語
・他にスレがない
あたりかな。巷のLLとはちょっと違う気がする。
LL自体定義があるのかよくわからないが。

569 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 13:11:20 ]
>>568
ニワカ乙

570 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 13:43:20 ]
>>568
そんなとこだろうな というか
ずっとそんなスレのつもりだった

571 名前:デフォルトの名無しさん [2007/11/10(土) 14:09:13 ]
LLだと、RubyやPythonも入るからな・・・
いや、組み込む話題については、歓迎かも知れんけど

572 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 14:19:33 ]
JavaScriptも当然入るな。
PHPは組み込みあったっけ。



573 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 15:45:11 ]
>>571
そっち系の話題は向こうのスレじゃあんま出ないしな。
いや、もちろん出してもスレ違い扱いされたりはしないだろうが。

574 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 23:40:43 ]
>568 の箇条書きをもとに
>571-573 のニュアンスを加えて文章にしてみた。

[[
アプリケーション組み込み用の小規模言語についてのスレです。
話題の中心はLua、Squirrelですが他の言語もOK。
]]

575 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 23:46:17 ]
1に何書こうが誰も読みゃしないのでスレタイに注意を払うべき

576 名前:デフォルトの名無しさん [2007/11/11(日) 03:59:09 ]
>>559
> 【Lua】組み込み言語統合【squirrel】
に一票

577 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 06:37:50 ]
スレタイとは全然関係ないことなのですが、いくつか質問があります。
よろしくお願いします。

1,luaの実行を内部から一時停止、外部から再開する方法にcoroutine以外のやり方はありますか?
2,luaの実行を外部から一時停止&再開することはできますか?
3,フックされた関数からluaを一時停止させることはできますか?

578 名前:577 mailto:sage [2007/11/11(日) 07:45:09 ]
スレタイとは関係あります
「スレタイ変更とは関係ありません」でした><

579 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 20:12:36 ]
>>577
1、2はファイバorスレッドorプロセスが絡む話なの?
そうであればやり様はいくらでも有る。実行コンテキストを
変えずにという意味であれば他に方法は無いと思う。
3、”フックされた関数”=>”Luaから呼ばれたC言語の関数”という
意味であればlua_yieldを使うかcocoを使うか。


580 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 01:03:42 ]
>>579
フック関数からyieldできるなんて意外でした。
ありがとうございます。

581 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 15:41:09 ]
C側から実行されたluaプログラムを
gdbやvcのような環境でデバッグできませんか?

582 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 16:11:03 ]
できない

だけど、Lua専用IDEからならできるよ
Decoaだっけ



583 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:55:43 ]
>>581
Decodaは割合評判いいらしいね。

他に名前聞いたものとしては
VSLua(有料)
LuaEdit(無料・微妙というか未完成)

wxLuaにもビジュアルデバッガついてたような気がするけど、embed環境で動かせるかどうかは不明。

584 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 19:26:16 ]
>>592
>>593
Decodaいいですね。組み込みで使いたかったです。
LuaEditも試してみたのですが、luaをdllにする必要があるのと、
そのdllのバージョンを合わせるのが大変で途中でやめてしまいました。
luaの自作ライブラリをdllにしてしまった方が早そうな感じです。
どもでした。

585 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 19:36:03 ]
>>592>>593の人よろしく

586 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 21:47:01 ]
ループの先頭に戻るという処理は、
continueでしょうか、nextでしょうか?

ttp://uri.sakura.ne.jp/~cosmic/yuno/lab/lua5_manual_ja.html
この辺を参考にしているのですが、breakなどしか見当たらなくて困っています。

587 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 22:15:10 ]
>>586
何故か無い

588 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 22:32:33 ]
continueないんだよねー
海外でもこの話題ちらほら見かけるけど。何故無いのかは知らない。

"continue" construct in Lua loops
ttp://lua-users.lua.org/lists/lua-l/2006-12/msg00440.html

589 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 23:11:01 ]
なるほど、Luaには存在しないんですね。。
レスありがとうございました。

590 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 05:35:00 ]
新しいバージョンが出ると誰かがcontinueパッチを作ってるはず

591 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 14:31:58 ]
continueが必要なループはイテレータのようにfunction作成してreturnしてる。
breakも必要なときは返値で判定。

592 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 15:05:18 ]
breakはまだしも、continueをreturnで代用?
コード汚そう。



593 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 15:55:19 ]
prototype.jsのeachのようになるからそんなでもない。


594 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 15:57:24 ]
いちおう言っておくと「だからcontinueいらない」って話ではなく。
continueあったほうがそりゃ素直に書けるしなあ。

595 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 18:31:11 ]
>>593
汚いじゃん

596 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 18:35:45 ]
>>593
最悪レベルの汚さだと思う

597 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 00:10:47 ]
Lua本(゚∀゚)コター!!
ttp://staff.aist.go.jp/yutaka.ueno/lua/docsjp.html

598 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 00:47:15 ]
コタワァ*:.。..。.:*・゚(n‘∀‘)η゚・*:.。..。.:* ミ ☆

599 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 01:21:05 ]
しかも今年中の予定か。
実現したら自分へのクリスマスプレゼントにする……っ!

600 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 01:26:39 ]
なにかの死亡フラグに見えた

601 名前:デフォルトの名無しさん [2007/11/20(火) 15:30:26 ]
日本語解説書期待age

602 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 08:30:15 ]
かつてPascalにもbreak、continueなくて、
まあそれでも別に困らんかったから、
改造してまで付けるほどでもないなワシは



603 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 23:13:33 ]
SJISのソース内にリテラルを埋め込む際の文字化けについて悩んでいるのですが、
文字化けする2バイト文字の一覧のようなものってどこかに載っていないでしょうか?

604 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 00:40:33 ]
>>603
文字化けはエスケープシーケンスのせい。
"abc"じゃなくて[[abc]]使うといい。

605 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 11:15:33 ]
やったー 予約始まってるよー^^/

入門Luaプログラミング
www.amazon.co.jp/dp/4797342722/


606 名前:デフォルトの名無しさん [2007/11/30(金) 12:58:19 ]
一ヶ月後か
期待age

607 名前:デフォルトの名無しさん mailto:age [2007/11/30(金) 14:01:17 ]
www.nicovideo.jp/watch/sm1634783

608 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 15:22:14 ]
hoshu

609 名前:デフォルトの名無しさん [2007/12/08(土) 16:49:38 ]
squirrelのリファレンスマニュアルの日本語訳ページが404な件

610 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 23:14:42 ]
Google cache からまだ一応読めるね。

そういえば以前にも一回読めなくなったときがあったけど、
そのときはサイト全体が読めなかった。

611 名前:デフォルトの名無しさん [2007/12/09(日) 09:57:13 ]
>>609
うあーー
ac.jpなのを忘れてた orz
保存しとけばよかった

つーか、ac.jpの人って、卒業したら消えるんだよな・・・大抵

612 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 10:09:16 ]
9月でD論通ってるから卒業か



613 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 15:36:33 ]
>>609
googleキャッシュかInternet archive行けばまだ間に合う


614 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 01:31:14 ]
hoshu

615 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 17:31:29 ]
あるlua_Stateのクローンが作りたいのですが、
グローバルステートを含めすべての内容をコピーすることは可能ですか?

616 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 01:33:58 ]
squirrelの質問です。
スレッドで使って下の関数をコールするとsuspendでC++側に処理を返したときに
a、bのデータが壊れてしまいます。

function CallSuspend(i, j, k, l, m, n, o)
{
local a = 23;
local b = 32;

while(1)
{
suspend();
print("i = " + i + "\n");
print("j = " + j + "\n");
print("k = " + k + "\n");
print("l = " + l + "\n");
print("a = " + a + "\n");
print("b = " + b + "\n");
break;
}

}


617 名前:616 [2007/12/21(金) 01:40:57 ]
どうやらsq_call関数で関数実行後にスタックをポップしている部分でデータが壊れているようです。
suspendはwakeupでまたスクリプトを起動するのだから、引数の数だけポップする意味がわかりません。
これはバグなのでしょうか?
ちなみに自分の使っているsquirrelのバージョンは2.1.1です。


SQRESULT sq_call(HSQUIRRELVM v,SQInteger params,SQBool retval,SQBool raiseerror)
{
    SQObjectPtr res;
    if(v->Call(v->GetUp(-(params+1)),params,v->_top-params,res,raiseerror?true:false)){
        v->Pop(params);//pop closure and args ←※ここ
        if(retval){
            v->Push(res); return SQ_OK;
        }
        return SQ_OK;
    }
    else {
        v->Pop(params);
        return SQ_ERROR;
    }
    if(!v->_suspended)
        v->Pop(params);
    return sq_throwerror(v,_SC("call failed"));
}




618 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 10:05:07 ]
いきなりソース覗きこんでバグだバグだ騒ぐ前にまずはちゃんとマニュアルを読めよ…

619 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 10:54:35 ]
>>618
どういうことですか?
知っていることがあるなら教えてください。お願いします。

620 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 11:04:12 ]
リファレンスのsq_callの説明にはこう書いてありました。

>この関数はすべての引数をpopし、スタック上のこのクロージャを取り除く。
>もしretvalがtrueであるなら、クロージャの戻り値がpush される。
>もし関数実行がsq_suspendvmによって中断されたなら、クロージャと引数はスタックから自動的にpopされない。

しかし、自分が実際に追ってみた限りではsuspendでsq_callを抜けた後に引数をポップする処理は実行されています。
それがlocal a,bを破壊しているようなのです。


621 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 22:08:56 ]
バグじゃないっつーの
とりあえずなにがしたいのか書こうよ
「これはバグですか?」じゃ作者に失礼すぎるぞ
てめーを卑下しまくる前にちょっとは他人のことを考えようよ

622 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 22:20:18 ]
>>621
616の関数を実行して無事に終了したいだけです。
suspendで処理がC++に帰った後、sq_wakeupvmでスクリプトを再実行したらstackからlocal a,bが消えていて
printでnullを参照してしまうという問題を解決したいんです。




623 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 22:29:42 ]
>>621
ここは作者の掲示板ではないが、
現象が再現するミニマムコードを掲載して、仕様と挙動が異なっている点を報告したうえで、
それがバグかどうかを質問する、ってのは別に失礼でも何でもないと思うけどな。

624 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 23:39:26 ]
>>623
これは現象が再現しない断片コードだし、仕様を取り違えてるし
そもそも一定の条件を満たしていると自分では思えるというだけで
相手に失礼ではないなんてまたどこまで自分勝手な理屈だよ
常識的に考えておかしいだろ

625 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 23:46:38 ]
>>624
>>616は現象が再現しない、って試したの?
あと作者でもないのに、作者に失礼すぎるぞ、なんて言うのも充分に自分勝手な理屈だと思うけどな

626 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 23:47:13 ]
>>624
もったいぶらないで教えてやれよ。
無駄レスが多すぎる。

627 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 23:55:38 ]
>>626
残念ながら2chとはそういう場所なのです。

628 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 23:59:24 ]
とりあえずSquirrelユーザーがキモいというのはわかった
この際原点に戻ろうじゃないか

入門Luaプログラミング
www.amazon.co.jp/dp/4797342722/

629 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 00:07:36 ]
仕様取り違えてると分かってるのなら、ここをこう取り違えてるよーって言ってやればいいだけなんじゃないの?
そんな、作者に失礼とか自分勝手とか卑下しまくってるとか言わんでも…

ちなみに俺はよく分からんけど、>>616の動作は期待に反している感じはする。仕様は知らない。

630 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 00:10:01 ]
>>625
断片だから試せない
>あと作者でもないのに、作者に失礼すぎるぞ、なんて言うのも充分に自分勝手な理屈だと思うけどな
俺作者だよ
当然のことながらsquirrelのじゃないけどね
作ってるものが馬鹿からバグ呼ばわりされたときどんな気持ちになるかは分かってるつもり

631 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 00:55:43 ]
>>630
試してないのなら「再現しない」などと断定するなよ。

>>617の箇所のコードを書いた人間の身になって考えると、確かに
一部のコードを載せられて「これはバグか?」と言われるのは
面白いものではないだろうし反論したいことも沢山あるだろうが、

質問に対する回答は一切無く、その感情に任せて馬鹿とか自分勝手とかてめー呼ばわり
するだけってのは作者であろうがなかろうが人間性を疑ってしまう。

632 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 01:22:15 ]
とりあえず問題がおこる「呼び出し側のコード」を書こうぜ>623
そうしないと使い方がおかしいかどうかすらわからん。

予想:引数の数を間違えてる



633 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 02:02:25 ]
引数の数間違えたら、実行する前に落ちるんじゃないか?

634 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 02:15:54 ]
引数の数が違ってると関数呼ばれないね

635 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 02:20:35 ]
とりあえず>>632がsquirrel使ってないってのはわかった

636 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 02:26:24 ]
>>631
断片で不完全なものは試せるはずがない試せないものは再現するはずがない
再現するかどうか観察しなくても断片で動かないんだから再現するはずない
事実を述べてるにすぎないよ

>質問に対する回答は一切無く
ちょっとずつリードしてあげてるじゃん
すぐに解決策が示されるとでも思ったか?俺の人間性が疑われようが甘えはゆるさん

637 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 02:58:27 ]
>>636
甘えを許そうが許しまいがお前さんの勝手だが、それをスレ住人に強要するなよ

レス数はとても少ないがここは色んな人間が見てる
自分のポリシーを他人に強要したり、それを守れない人間を罵倒したいのなら自分の掲示板でやれ



638 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 03:22:11 ]
squirrelよく知らないけど616を参考にしてやってみた

function CallSuspend1(i, j, k, l, m, n, o)
{
  local a = 10;
  local b = 20;
  print("Enter CallSuspend1\n");
  while (1) {
    suspend("abc");
    print("i = " + i + "\n");
    print("j = " + j + "\n");
    print("k = " + k + "\n");
    print("l = " + l + "\n");
    print("a = " + a + "\n");
    print("b = " + b + "\n");
    break;
  }
  print("Leave CallSuspend1\n");
  return "done.";
}

local co = newthread(CallSuspend1);
print("Call CallSuspend1\n");
local ret = co.call(1,2,3,4,5,6,7);
print("ret = " + ret + "\n");
print("Wakeup CallSuspend1\n");
ret = co.wakeup();
print("ret = " + ret + "\n");


639 名前:638 mailto:sage [2007/12/22(土) 03:23:12 ]
結果

Call CallSuspend1
Enter CallSuspend1
ret = abc
Wakeup CallSuspend1
i = 1
j = 2
k = 3
l = 4
a = (null : 0x00000000)
b = (null : 0x00000000)
Leave CallSuspend1
ret = done.


640 名前:638 mailto:sage [2007/12/22(土) 03:36:38 ]
617 の ※ここ の部分を
if (!v->_suspended) v->Pop(params);
に変更して同じコードを実行すると

Call CallSuspend1
Enter CallSuspend1
ret = abc
Wakeup CallSuspend1
i = 1
j = 2
k = 3
l = 4
a = 10
b = 20
Leave CallSuspend1
ret = done.



641 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 03:46:14 ]
>>638
ありがとう!
やっぱり他の人がやってもそうなるんですかー
638さんはスクリプトから実行しているようですが、
自分はC++から呼び出して実行してました。

>>640
自分も同じ方法で対処するしかないのかなと思ってました。
これって結局仕様なんですか?


642 名前:638 mailto:sage [2007/12/22(土) 03:48:05 ]
call と違う順番で wakeup してみる

function CallSuspend2(i, j, k, l, m) {
  local a = 10;
  local b = 20;
  print("Enter CallSuspend2\n");
  while (1) {
    suspend("abc");
    print("i = " + i + "\n");
    print("j = " + j + "\n");
    print("k = " + k + "\n");
    print("l = " + l + "\n");
    print("m = " + m + "\n");
    print("a = " + a + "\n");
    print("b = " + b + "\n");
    break;
  }
  print("Leave CallSuspend2\n");
  return "done.";
}
local co1 = newthread(CallSuspend2);
local co2 = newthread(CallSuspend2);
local co3 = newthread(CallSuspend2);
print("Call CallSuspend2\n");
co1.call(1,2,3,4,5);
co2.call(10,20,30,40,50);
co3.call(100,200,300,400,500);
co2.wakeup();
co1.wakeup();
co3.wakeup();




643 名前:638 mailto:sage [2007/12/22(土) 03:49:23 ]
結果

Call CallSuspend2
Enter CallSuspend2
Enter CallSuspend2
Enter CallSuspend2
i = 10
j = 20
k = 30
l = 40
m = 50
a = 10
b = 20
Leave CallSuspend2
i = 1
j = 2
k = 3
l = 4
m = 5
a = 10
b = 20
Leave CallSuspend2
i = 100
j = 200
k = 300
l = 400
m = 500
a = 10
b = 20
Leave CallSuspend2


644 名前:641 mailto:sage [2007/12/22(土) 03:49:29 ]
あ、それと今さらなんですが>>616のコードでwhileしてるのって意味ないんですよね
いろいろ試してる過程の残骸ですので無視して下さい

645 名前:638 mailto:sage [2007/12/22(土) 04:05:19 ]
sq_call が sq_throwerror を呼び出す前に
if (!v->_suspended) v->Pop(params);
でsuspendしているときはスタックを整えていないことから考えるとバグかも


646 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 04:06:59 ]
>>644
Squirrel全然分からん(昔Hello World試したくらい) けど、勉強がてら俺も>>616試したら同じ結果になった。

ちなみに引数の数を 7つから変更(呼び出し元も変更)していくと、
3つになったところでbが正常になり、2つになるとaもbも正常になった。

これが仕様だとすると何か根本的根本的に使い方間違ってんのかな?
sq_call とか sq_wakeupvm とかの引数とか色々変えてみたけど、勉強がてらなんでまだよく分からん。
整理できたら多少空気読みつつ晒してみる

647 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 04:08:59 ]
>>630で吹いた。ギャグだとしたら高度だ。

648 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 04:10:37 ]
>>645
あまりバグバグ言うとまた五月蝿くなるからやめとけ

649 名前:632 mailto:sage [2007/12/22(土) 04:13:48 ]
すまん、ばりばりつかってるんだが適当ぶっこいたんだ。

おわびにってことで俺もしらべてたんだが、既に638 で結論でてた…

function test(i,j,k,l,m) {
local a = 10;
local b = 20;
for (a=0;a<10;a++) {
suspend();
print("a=" + a + "\n");
print("b=" + b + "\n");
}
print("done");
}

a <- newthread(test);
a.call(1,2,3,4,5);
while (a.getstatus() == "suspended") {
a.wakeup();
}

こんなかんじのコードで簡単に再現できる。test の引数の数を減らすと
ローカル変数が破壊されなくて止まらなくなるので、sq_call での引数の解放でローカル変数を
破壊してるという、641の推測は正しいと思う。どういった修正が適切かは断言できないけど、
バグなのは間違いないので、本家に報告したほうがよさそう。

自分の手元でこの種のスレッドの suspend を使ったコードはいたるところにあるんだが
なんでいままでトラブルなかったんだろう、とおもってコードを見直したら、
パラメータは bindenv したオブジェクトのメンバ経由で渡してて、引数を全くつかってなかったよ^^;

650 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 04:15:59 ]
>>646
まさにまさに!

自分もまさか4つ以上引数を渡すのはダメとかそういう仕様じゃないよな?
でもこんなイージーなバグがあるわけないよな?

てな具合にずっと悩んでたんです!

651 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 04:26:04 ]
>>649-650
だからバグだバグだと騒ぐなと

652 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 04:42:00 ]
君もこんな過疎地でオタ共を統率して悦に入ってないでニュー速だかvipだかにでもお行きなさいよ



653 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 04:47:46 ]
あー読んでてやっと分かった。
スタック上にローカル変数があろうが無かろうが、suspend時点でのスタック変数を引数の数だけ問答無用で開放してしまうのか。
なんで>>646みたいに現象は引数の数に変化を受けると。

で、単に使い方が悪いのかバグなのかは不明だけど、
squirrelのコードを>>640の通りに変更すれば少なくとも、この問題は解決、と。

654 名前:649 mailto:sage [2007/12/22(土) 04:56:40 ]
とりあえず下手な英語だが本家にバグとして報告しといたよ。たぶんそのうち適切な対策とってくれるだろう。

655 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 05:08:02 ]
ほげげ氏・・・w
ところどころ動詞やらが可笑しいけど伝わるな
Unknown table ってのは内部用のローカル変数のテーブルか何かなのかね?

他のスレも見てみたけど本家のフォーラムって意外と閲覧数少ないんだな・・・

656 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 09:53:25 ]
squirrelは別のとこでやれよ

657 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 10:28:10 ]
Luaの本はまだなのか。

658 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 11:48:48 ]
>>656
前スレ&現行スレ嫁

659 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 15:55:02 ]
次スレから >>1 嫁にできるよう頼む

660 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 23:29:26 ]
作者対応速いな
squirrel-lang.org/forums/2318/ShowThread.aspx#2318

661 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 00:00:33 ]
相変わらず閲覧数少ねえーーw

結論としてはやっぱりバグで、修正方法は>>640の通りだったと。
発見された>>616氏、本家に報告されたほげげ氏、その他検証された方々乙でした。



662 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 00:03:02 ]
>>660
報告乙



663 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 00:05:59 ]
>>661
621のこと忘れてるぞ
椰子の煽りがなければ住人もここまで迅速に動かなかっただろう

664 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 00:09:11 ]
自演乙

665 名前:デフォルトの名無しさん [2007/12/24(月) 03:36:26 ]
Lua本もう出てたんだ。ProgrammingInLua持ってるけど買う意義あるかな。

666 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 06:09:14 ]
おおほんとだ出てるな
A5、256ページで\2310ってちょっと高くないかな、、、こんなもんか
買った人レビュー希望

667 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 07:01:02 ]
>>666
値段はまあ普通だろうね
マイナー言語の一種だし・・・
Erlang入門なんて同じ値段で200ページしかない。
ともかく日本語で出たことが快挙


668 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 11:33:56 ]
>>666
入門書としてはこれくらいの長さのほうがとっつきやすいかも。
Lua触るの初めてでしたが、読みやすくて、なかなかよかったです。

奥付みてみたら、2008年1月3日初版第一刷発行とか書いてあってワラタ


669 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 11:47:05 ]
雑誌の「発行日」の記載って、なぜみんな
実際の発売日よりも1ヶ月くらい未来の日付になっているのでしょうか?
ttp://q.hatena.ne.jp/1153656810

670 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 00:55:20 ]
Lua本届いたー
第一部が基本文法。標準ライブラリとか。さくっと読める
第二部がアルゴリズム実装しながらその他機能。結構いろいろ詰まってる。
第三部がC言語との連携その他。

入門ならこの厚さがちょうど手頃でいいかも。

671 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 01:17:43 ]
入門だけか。
実際に使い出して結構経つ俺には、どのぐらい役に立つのかなぁ。

672 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 05:18:46 ]
>>670
第三部ってどの程度ページある?
ここがある程度詳しく書かれているなら買ってみてもいいかなあ



673 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 13:28:19 ]
>>672
第三部の内訳
第9章 Luaを拡張してみる - 13
第10章 Luaのモダンな機能 - 15
第11章 C言語との連携 - 13
第12章 Luaの組込み - 10

674 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 14:21:04 ]
>>673
詳しい情報さんきゅ
帰ったら注文するわ

675 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 01:59:29 ]
Squirrelの日本語リファレンス復活しとる

676 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 02:29:49 ]
結構前から復活してる
というより見られなくなってたのはほんの短期間だった

floatのスペルミスはどうにかならないかなあ

677 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 02:33:56 ]
いや、落ちて戻って繰り返してるし、またいつなくなるか
分からんから、見たかった人は今のうちに見ておくのが良いかと。

678 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 02:40:16 ]
そうなのか。
保存しとこう。

679 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 07:40:09 ]
サーバー落ちてただけのようですね。
でもac.jpですから、今のうちということですな

680 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:23:23 ]
あれ、博士課程を修了したからHPも消えた、って話じゃなかった?
かなり長い間見れなかったような気がするんだが。
まあどっちだっていいんだけど。

681 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 00:52:15 ]
ぅあけましておめでとう!

682 名前:デフォルトの名無しさん [2008/01/02(水) 02:20:12 ]
ぅあけおめ!



683 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 02:40:09 ]
あけおめ!
今年も、組み込み言語が流行るといいな!

684 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 20:52:06 ]
asdfasfasdfasdfasdf

685 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 09:07:06 ]
>Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
>test.cpp:
>Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
>Error: 外部シンボル '_luaL_newstate' が未解決(D:\P\BORLANDC\TEST.OBJ が参照)
>Error: 外部シンボル '_luaL_loadfile' が未解決(D:\P\BORLANDC\TEST.OBJ が参照)
>(以下略)

こんな感じでリンクできないんですがどうしたらいいですか。
パスは通ってると思うんです。lua 5.1.2です。

686 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 10:45:48 ]
>>685
勘だけどextern "C" かな。src/lua.hの代わりにetc/lua.hppを使ってみるとか。

687 名前:685 mailto:sage [2008/01/10(木) 16:12:22 ]
extern "C"は使ってるんですけどねえ。うーむ

688 名前:デフォルトの名無しさん [2008/01/10(木) 21:31:19 ]
再現するコードを貼りたまえ。

689 名前:685 mailto:sage [2008/01/10(木) 21:46:05 ]
#include <stdio.h>

extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}

main(){
double z;
lua_State *L = lua_open();
lua_dofile(L, "add.lua");
}



690 名前:685 mailto:sage [2008/01/10(木) 21:47:08 ]
testなのでこれだけなんです。


691 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 21:49:42 ]
Borlandの場合は命名規則と呼び出し規約が違うからではないかと。
VCでコンパイルされたライブラリをリンクするときに良くある問題。
詳しくはぐぐればわかると思う。細かいことは忘れた。


692 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:00:54 ]
ライブラリはちゃんと設定してる?



693 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:09:06 ]
ライブラリをリンクしてないとか

694 名前:デフォルトの名無しさん [2008/01/10(木) 22:28:07 ]
lua_dofileって5.1.2になくね?

695 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:39:24 ]
ないよ。
lua_dofileでぐぐれば代替コードが見つかる。

696 名前:デフォルトの名無しさん [2008/01/10(木) 22:46:01 ]
685はなんでリンクまでは行ったの?

697 名前:685 mailto:sage [2008/01/11(金) 01:32:18 ]
そうなんですよ。コンパイルは通ってるように見えるんでincludeは多分見てる。
普段はbccでは簡単なものしか作ってないしライブラリやリンク設定は自信ないですが。
ヘルプ見て作業フォルダにbcc32.cfg,ilink.cfgを作り
-L"libraryパス";"パス"
-I"includeパス"
などとやりました。頭をわざと--Lとやったら
>エラー E2075: コンフィグレーションファイル中の オプションの間違い : --LD:\〜略
とエラーになるので読んでるとは思うんですが。
685ではもう5個くらいlua_関数があって全部おなじようなエラーです。
lua_dofileはぐぐりました。
685にあるようにヘッダ読んで_luaL_loadfileまではいくようです。
lua_openも_luaL_newstateに置き換わってる。
バイナリエディタでLuaLib.libをのぞくと2つとも文字列は見つかるようです。
そこからは俺の実力ではどうにも。

691でしょか。

698 名前:685 mailto:sage [2008/01/11(金) 01:35:45 ]
訂正 ilink32.cfgです
すんません


699 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 03:24:27 ]
そう思うんだったら、luaのライブラリもbccで作ればいんじゃね?

700 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 05:23:44 ]
まさか、VCのlibをBCCでリンクしようとしてないよな?

701 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 06:57:05 ]
自分でBCC使ってビルドしてないのかよ。
そりゃ無理にきまっとる

702 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 07:41:10 ]
とりあえずわかったのは、いいやつが多い



703 名前:デフォルトの名無しさん [2008/01/11(金) 08:17:26 ]
しょうがないからBCCでLuaをビルドする一番簡単な方法をおしえてやろう。後は適当にやりなさい。

D:\lua-5.1.2\src>rename luac.c luac.c_
D:\lua-5.1.2\src>bcc32 -I. -D_isatty=isatty *.c
(略)
D:\lua-5.1.2\src>rename *.exe lua.exe
D:\lua-5.1.2\src>lua
Lua 5.1.2 Copyright (C) 1994-2007 Lua.org, PUC-Rio
>

704 名前:685 mailto:sage [2008/01/11(金) 09:01:59 ]
なるほどいろいろ勉強になります。互換じゃないんですかこういうのは。出直してきます

705 名前:デフォルトの名無しさん [2008/01/12(土) 13:59:52 ]
xxx.luaとxxx/table.luaから成り立つライブラリがあって、
--xxx.lua
require "xxx"
module("xxx",package.seeall)
function xxx_func()
 table.insert(......

--xxx/table.lua
require "xxx"
module("xxx.table",package.seeall)
xxx_func()

--main.lua
require "xxx.table"

を実行するとxxx.luaのtable.insertがnilになってる。理由はxxx.table
のモジュールで"insert"を探しに行ってしまっている為。
問題はxxx.luaだけで使うと問題が起きずxxx/table.lua経由で
使用すると問題が起きるという事だけど、この問題の本質って
なんだろう?xxx.”table” 見たいな標準ライブラリと同じ名前の
モジュールを作成したこと?

706 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 16:19:01 ]
>>705
moduleはxxx.luaの環境を自身のモジュールのテーブルに変更する(この場合_G.xxx)。
つまりtable.insertはxxx.table.insertになる。
moduleにpackage.seeallを指定するとxxx.tableが存在しなかった場合に_G.tableを見に行くようになる。
回避策としてはtable.insertを_G.table.insertにすればいいと思うよ。
めんどくさかったらxxx.luaの先頭で
local table=table

それはそうと、そのコードだと外からxxx_funcを使いたい時にxxx.xxx_funcって書く必要があって不便じゃないか?

707 名前:705 mailto:sage [2008/01/12(土) 16:43:02 ]
>>706
>local table=table
まさにそれをやってとりあえず回避してます。
ただそうなると後からの拡張に備えるならばxxxで呼び出している
_Gの全てのメンバに対してそれをやらないと安全でない事に。
そうなるとpackage.seeallの役割って・・・。


708 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 00:27:18 ]
>そうなるとpackage.seeallの役割って・・・。
ただの手抜き道具。
安全云々なら

local _G = _G
module("xxx")

でオシマーイ。

709 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 10:57:54 ]
Squirrel に関数内で使える静的変数ってないのでしょうか?
今は仕方なくグローバルに置いてるのですが。

710 名前:デフォルトの名無しさん [2008/01/14(月) 13:40:53 ]
Squirrel 知らんけど、もしクロージャがあればどうにかなるのでは。
Lua だとこんな。
> f = (function ()
local v = 0
return function ()
v = v + 1
return v
end
end)()
> print(v)
nil
> print(f())
1
> print(f())
2
> print(f())
3
> print(v)
nil


711 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:19:30 ]
>>709
ttp://muffin.cias.osakafu-u.ac.jp/~matumoto/cgi-bin/xt.cgi?prog/squirrel_lang

ここに静的変数について説明があるけど、これじゃ駄目なのか?

712 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 15:47:49 ]
レスありがとうございます。

>>710
真似てみて以下のようなコードを書きましたが、
実行時しても、111が出力されました。
function func()
{
v <- 0;
return function() {
return ++v;
}();
}
print(func());
print(func());
print(func());

>>711
クラスのメンバ変数でしか使えなく、さらに書き換えが無理なので、使い勝手が悪そうです。



713 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 16:12:55 ]
同じくLuaしか知らんからマニュアル見ながら勘で答えるけど
{ local v = 0; function count() { return ++v; }}
こんな感じのことがしたいのかな。Luaなら
do local v = 0; function count() v = v + 1; return v; end; end

714 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 16:14:01 ]
質問から少し話はそれるけど、
インスタンスを作成すると、そのクラスのスロットの追加変更が効かなくなるってのは
仕様として分かるんだが、静的メンバまで変更不可になるのはどうにかしてしてほしい。

715 名前:デフォルトの名無しさん [2008/01/14(月) 16:19:38 ]
えー、それって直訳になってる?
vの初期化がfunc呼出し毎に毎回起こってないかな。
外側のfunctionを適用した結果のreturn function...のfunctionがfuncの値になるんよ。


716 名前:デフォルトの名無しさん [2008/01/14(月) 16:24:31 ]
715は712へのレスね。

717 名前:709 mailto:sage [2008/01/14(月) 16:31:53 ]
>>716
以下のように書き直してみたところうまく動きました。
local v = 0; では駄目で v <- 0; にする必要があるみたいです。
動作原理がいまいちわかっていないので詳しく追ってみます。
local f = (function() {
v <- 0;
return function() {return ++v;}
})();
print(f());
print(f());
print(f());

718 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 17:16:55 ]
>>717
それグローバル変数 v が確保されてるだけだよ


>>710 の例ぽいことは squirrel なら generator つかえば簡単にできるけど、
それはあくまで「その中に閉じた変数」であって、全体で共有される static 変数じゃない。

用途的にstatic なら、名前に気をつけつつグローバルにおくしかないはず。

719 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:07:21 ]
日本でLua使ってる製品ってなにかある?

720 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:11:45 ]
同人なら割と

721 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:58:14 ]
同人ゲーム?
ノベルはある?

722 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:07:55 ]
関数内の静的変数なんて、C言語使いしか使わん



723 名前:709 mailto:sage [2008/01/14(月) 19:08:23 ]
>>718
> それグローバル変数 v が確保されてるだけだよ

<- はlocalをつけずに初期化するためだけのものだと思ってました。
もっと勉強しないと駄目ですね。

724 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:32:29 ]
>>722
そりゃ、Cぐらいにしかないからだろ。
あれば使うよ。

725 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:28:01 ]
>>721
> 同人ゲーム?
> ノベルはある?

あるはずなのは知ってるんだが具体名は知らなかったり...

726 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:30:38 ]
>>722
> 関数内の静的変数なんて、C言語使いしか使わん

オブジェクト指向言語のインスタンス変数は多用されるわけだが

727 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:53:52 ]
>>726
そうだよ。
何がいいたいの?

728 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:00:27 ]
Luaなら同人まで含めれば幾つかは見つかりそうだが
Squirrelとなると皆無な余寒

729 名前:デフォルトの名無しさん [2008/01/14(月) 22:00:42 ]
ある手続きと変数があって変数名がその手続きにローカルである
↑↓
あるメソッドとメンバがあってメンバ変数名がメソッドが属するオブジェクトにローカルである

こう?

730 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:13:55 ]
今はDS Luaが熱いよな

731 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:24:46 ]
>>725
ありがとう。

732 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 12:17:55 ]
>>728 商業作品だけど
Alcotの「フェアチャイルド」方面にSquirrelの予感
使ってるのかどうか確信が持てないのだけどね



733 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 12:57:10 ]
商用でSquirrel使うはまだ早すぎる気がする
>>616みたいなバグがまだどんだけ潜んでるか分からないし

734 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 13:35:04 ]
ん あれ吉里吉里なんじゃないの > FairChild

735 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 13:39:15 ]
TJSか

736 名前:685 mailto:sage [2008/01/16(水) 12:52:20 ]
>>703 出来ました。
ぐぐってmakefileが見つかったけどうまくいかないんで、
tlib lua.lib /C +lapi.obj,lua.lst
tlib lua.lib /C +lauxlib.obj ,lua.lst
tlib lua.lib /C +lbaselib.obj ,lua.lst
(略)

と、luaのsrcすべての.objからmylua.lib作ったんですが、
>ilink32 c0x32.obj cw32.lib import32.lib mylua.lib test.obj
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: 外部シンボル '_luaO_log2' が未解決(...\MYLUA.LIB|ltable が参照)
Error: 外部シンボル '_luaO_nilobject_' が未解決(...\MYLUA.LIB|ltm が参照)
(以下同様)

仕方ないのでgrepしてluaO_がlobject.hに見つかったので(あとturboFloatエラーも検索して)
>ilink32 c0x32.obj lobject.obj test.obj cw32.lib import32.lib mylua.lib
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland

>c0x32.exe
8.000000desu

add.luaで3+5、とりあえずは出来ました。ライブラリの作り方おかしいでしょか。

737 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 15:31:29 ]
Luaでwireshark(Ethereal)をカスタマイズが出来るみたいですな。
ざっと見たところ出来ることとしては
・プロトコル解析処理の追加
・解析結果を利用したカスタムパケットフィルタリング
・統計情報の収集等。
などが出来そうですが、サンプルとか情報少ない・・・。

使ってる人います?

738 名前:デフォルトの名無しさん [2008/01/19(土) 15:32:35 ]
あげとこう

739 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 16:01:56 ]
ti.moo

740 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 15:13:20 ]
>737
プロトコル解析につかってるよ。
特にバイナリフォーマットのパケットだと解析できた方が便利だよ〜。

741 名前:737 mailto:sage [2008/01/21(月) 00:03:16 ]
>>740
Dissectorの機能を使用してですか?
wiresharkのリファレンスみただけではどうも
全体像がいまいち分かりにくいです。
どっか纏まったサイトあります?

742 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 19:44:31 ]
>>732
その方面だと思うんだけど
商業作にはまだと確認しました

ttps://sv.kikyou.info/trac/kirikiri/browser/kirikiri2/trunk/kirikiri2/src/plugins/win32/squirrel
プラギンはあるんですねー
アドベンチャー系だとコルーチンの使いでがあるところがあるか微妙ですが



743 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 19:48:09 ]
ほほう

744 名前:デフォルトの名無しさん [2008/01/21(月) 21:51:02 ]
そういうソフトでの組み込みスクリプト言語の使い方って
LuaならLuaでシナリオをいわばハードコードするの?

745 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 21:53:59 ]
それはスクリプトとホストとのインターフェイスの設計次第だろう

746 名前:740 mailto:sage [2008/01/22(火) 21:48:29 ]
>>741
dissector使ってますよ。
wiki.wireshark.org/Lua
↑を参考にして、あとは試行錯誤の繰り返しですね・・・




747 名前:732 mailto:sage [2008/01/23(水) 09:59:34 ]
>>742 あーどうもです。確認しました、その方面で合ってます。

748 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 22:35:01 ]
ファイルサイズ的に軽量な言語でGUI作りたく
DSL見ててmurglaLuaが良いと思ったんですが、
ほかにお勧めのものありますか?

749 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 22:36:34 ]
murgaluaだった。。。

750 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:11:03 ]
lua-gtkとかLua-Gtkはどう?

751 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:11:43 ]
間違えた
lua_qtとLua-Gtkだ

752 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:15:58 ]
wxPython



753 名前:748 mailto:sage [2008/01/25(金) 00:12:41 ]
あんがと。
参考にしてみる。ちょっとサイズでかいけど。

754 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 01:07:07 ]
結果報告よろ

755 名前:748 mailto:sage [2008/01/25(金) 22:30:19 ]
lua-gtkとmurgaLuaで迷ってる。
現状、なぜかエラーがでて、Lua-gtkが使えてないが、
結構期待が持てる。でもドキュメント類が少ない。。。
まあ、サンプルコード見る限りわかりやすそうではあるが、発展途上って感じもする。
murgaLuaはFLTKベースで、ちょっと癖はあるがGUIBuilderにfuluidとか使える。
あと、検索すると使ってる人結構いるのな。これも結構簡単そう。

lua-qtはqtのない環境なので見てません。
wxPythonはサイズ的に却下。Luaとは桁が違う。

756 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 23:11:34 ]
そりゃPythonだもんな

757 名前:デフォルトの名無しさん [2008/01/26(土) 00:39:27 ]
5.1.3でました

758 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 00:39:46 ]
>>748
どんなエラー?

Lua-Gtkのドキュメントは全然無いけど、GTK自体のドキュメントは豊富だからそっちを参考にしたほうが良い。
PyGTKやRuby/GTKのドキュメントが読みやすいと思う。

759 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 20:05:56 ]
こんなんですね。
lua: error loading module 'gtk' from file './gtk.so':
./gtk.so: undefined symbol: gtk_builder_new

760 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:33:52 ]
Squirrelの日本語リファレンスの中の人です。
マニュアルの一番上にも書いていますが、内容を
wikiwiki.jp/lua/?FrontPage に移そうかと思っています。
他によい場所などありますか?

761 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 20:14:59 ]
>>760
いつもお世話になってます
大学を卒業なされて日本語マニュアル置けなくなったんですか?
自分としては見られればどこでもいいです


762 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:23:47 ]
>>760
おお、おつかれさんです。

そちらでよいかと思われます。



763 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:26:41 ]
>>760みて改めて思ったけど、このスレって、LL以前のさらに小さな組み込み言語用なんだな。
LLスレが軒並み荒れてるのにここが荒れてなくてw 実感した

764 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:35:40 ]
RubyのどこがLightなんだボケェっていう人たちのたまり場です

ja.wikipedia.org/wiki/%E8%BB%BD%E9%87%8F%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E
>ここでいう「軽さ」はプログラマの負担の軽重を指し、実行速度やメモリ消費量に優れているという意味ではない。

知らなかった・・・

765 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:40:24 ]
知らなかったのかよ…


766 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:46:31 ]
Easy Programing Language と言ったほうがいいのでは

767 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:49:12 ]
ttp://en.wikipedia.org/wiki/Lightweight_languages には>>764とは逆のこと書いてある気がする。
まあWikipediaが絶対というわけじゃないしな。
あとLuaのページに
>LuaはライブラリとしてC言語を実装している。
って書いてあったんで晒しsage
俺が消してきます

768 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:18:51 ]
MITでのLL1ではこう書いてるね。まぁ観点の違いと思われ。

We use the term "lightweight languages" to describe some of the common features of these new languages.
The term "lightweight" refers not to actual functionality, but to the idea that these languages are easy to acquire, learn, and use.
Examples that would fall into this category include Perl, Python, Ruby, Scheme (and scsh), and Curl.

ll1.ai.mit.edu/cfp.html
ll1.ai.mit.edu/


769 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:59:21 ]
>>767
確かに全く逆.というか,日本語版は英語版を否定する内容になってるな.
まぁ日本語のLL界隈は変なの沢山湧いてるしな.

770 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 17:29:54 ]
/.j

771 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:14:11 ]
Programming Languages for Idiots のが適当だな

772 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:33:50 ]
LL談義は専用スレで。Luaスレからは退去しましょう



773 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:34:46 ]
pc11.2ch.net/test/read.cgi/tech/1188997302/l50
専用スレ

774 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:33:45 ]
ゲ製板に張られててたのでこっちにも。

LuaのJIT対応版だって

LuaJIT ? a Just-In-Time Compiler for Lua.

The LuaJIT Project
luajit.org/

775 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 07:54:33 ]
何を今更と思ったけど、こっちでは話題になってなかったっけか

776 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 08:27:39 ]
ゲ製板にLuaスレってあったっけ?

777 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 11:15:08 ]
>>776
各種ライブラリ紹介スレ2
pc11.2ch.net/test/read.cgi/gamedev/1177886529/

スレチっぽいのでやってないがあっちにもこっち貼った方がいいのかな。

778 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:01:50 ]
JITつくってはええすげえってするんならsquirrelのがいいとおもうんだが
Luaはそのままで十分に速いからウンコな文法でも許されてるんだろうに

779 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:04:54 ]
失礼な

780 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 10:03:32 ]
Free Pascal Compiler を組み込んで動的に実行する場合の話題もOKですか?

781 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 10:35:49 ]
>>10-11 参照
組み込む系の用途がメインの言語と処理系のスレ、ってことで
いいと思う。

782 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 07:41:19 ]
あーなるほど、Pascalくらいコンパイルが早いとそういう選択もアリなのか。




783 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 20:15:57 ]
TCCっていうの使えばLua内でCを動的に実行もできるらしいぞ
luaforge.net/projects/lua-tcc/

784 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:06:33 ]
>>783
つうか、tccならC内でもcを実行できるだろ。

785 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 18:36:35 ]
このスレの守備範囲だと思ってたらいつのまにか専用スレが立ってた。

Io Language
pc11.2ch.net/test/read.cgi/tech/1201100624/

786 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 18:46:07 ]
Ioって組み込む系の言語だったんだ

787 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 19:05:02 ]
IoがあるのならSquirrelスレも立ててくるかな

788 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 19:15:08 ]
別に話題ないだろうにw

789 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 20:45:54 ]
3レスでdat落ち

790 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:29:48 ]
Ioは、Luaからもインスピレーション受けてるからな
ただ、実際に組み込んで使っている人いるのかな・・・
組み込みサンプルやドキュメントが少なすぎてなんつーか('A`)

791 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:35:17 ]
xyzzy用のLua modeを更新しました。
park7.wakwak.com/~blackbox/

792 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:19:53 ]
>>791
超乙

つか、ニコニコ技術部 の人か?w
応援しとるよ



793 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:24:35 ]
>>791
スレちですが、せっかくなので Netinstaller 対応しませんか?

794 名前:791 mailto:sage [2008/02/10(日) 23:04:44 ]
NetInstaller使ってないし。package.lとか用意するのめんどくさい。

795 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 06:45:34 ]
今作ってるゲームにSquirrel採用することに決めた。おまいらよろしく。

796 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 07:55:09 ]
こちらこそ。

797 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 11:31:46 ]
squirrelをビッグエンディアンな環境で動かしたいんだけど、
sq.exeを動かす環境がビッグエンディアンじゃないと、
バイトコードがそのまま実行できない

まあ、当たり前なんだが、みんなどうやって解決してるの?


798 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 23:18:36 ]
>>797
それってWi○?


799 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 23:24:29 ]
コードを解析していくと書き込みも読み込みも全部階層の深いところで
それぞれ一つの関数を使っていたりするから
(sqstd_writeとか?もう一つ上の関数だったかも。うろ覚え)
そういうところでまとめてスワップさせてるな、俺は。
んでコード改変したものをコンバート用のツールとして使うと。

800 名前:797 mailto:sage [2008/02/19(火) 12:28:23 ]
>>798
まあ、あえて何かは言わないけど、
今の据え置きってリトルエンディアンの方が少なくね?

>>799
やっぱ、それしかないのね
なんかうまい方法があればなーと、思ったんですが、
楽はできないですね
ありがとうです



801 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 17:03:33 ]
一応コンシューマ機の環境で使うことも考慮してるみたいだから、
だったらエンディアン変換くらい対応しといてくれと思ったりするよね

あと読み込みとか書き込みのところでfopenとか使うの止めて欲しい。
あらかじめファイル読み込んだバッファを渡すとかいう風にすればどんな環境でも対応できるのに・・・

802 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 17:41:07 ]
>>801
エンディアン変換は同意なんだが、後者は普通にそうなってるだろう
sq_compile, sq_compilebuffer, sq_readclosure, sq_writeclosure と全部抽象化されてるぞ?

sqstdlib では fopen つかってるけど、これは実装用のライブラリだし、あと、
直接つかってるわけではなくて、1段階抽象化してあるんで、sqstdio.cpp のあたまの
関数いくつか書きなすだけだから、どちらかというと親切な部類にはいると思う。



803 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 12:44:02 ]
Luaとは直接関係無いのですが
EclipseにLuaEclipse入れて動作させて見たところ
ConsoleViewに
<terminated> test.lua [Lua Standalone Application] hogehoge\lua5.1.exe test.lua
と出てしまいます。手打ちで
>hogehoge\lua5.1.exe test.lua
としたときはちゃんと結果が表示されたのですが
EclipseのConsoleViewに結果を表示させるには
何かおまじないが必要なのでしょうか?


804 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 21:12:13 ]
LuaってHaskell系だったのか
pc11.2ch.net/test/read.cgi/dtm/1194648279/216

805 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 07:17:15 ]
そのスレで既に十分突っ込まれてるじゃないか

806 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 16:29:42 ]
Squirrel_Langって今「最近編集された項目」からしかアクセスできない?

807 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 16:30:29 ]
「最近編集された項目」なくて「最近の10件」だった

808 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 20:47:20 ]
ゲーム開発言語は「Lua」を採用
www.watch.impress.co.jp/game/docs/20080223/gdc_home.htm

809 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 22:57:40 ]
>>808
Luaハジマタ\('o`)/

810 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:06:41 ]
Luaはいろんなゲームに採用されてるんだから、今さらってかんじ

811 名前:797 mailto:sage [2008/02/23(土) 23:20:59 ]
最新の2.2stableに、ビッグエンディアンで出力できるよう、
やっつけのパッチ当てたけど、需要ある?


812 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:48:06 ]
あるある
というか本家にフィードバックしようぜ



813 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 03:09:28 ]
>>808
うぉ、日本メーカーでLua使用って公開したところはほとんど記憶にないから、
結構インパクトあるねぇ

そういや今GDCの季節かぁ

814 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 08:58:56 ]
Lua最高!

815 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:30:51 ]
>>811
改変したソースも公開してくれよ

816 名前:767 mailto:sage [2008/02/24(日) 14:51:34 ]
ttp://wikiwiki.jp/lua/?plugin=attach&pcmd=upload&page=Squirrel

WikiのSquirrelのページに添付させてもらいました。
SQ_BIGENDIANを定義しておくと、出力が強制的にBEになるです。

やっつけなので、これを基に、ちゃんとした対応をしてくれると嬉しいなあ。
ちなみに、出力したバイトコードが、ビッグエンディアンな環境で動作することは確認済み。

でも、SQ64と_UNICODEは知らん。
_UNICODEはこれからやるかも。




最後に、スレ住人&Wikiの管理人さんアリガトー(゚∀゚)

817 名前:797 mailto:sage [2008/02/24(日) 14:52:30 ]
>>816
自分のハンドル間違えた('A`)

818 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:24:11 ]
www.watch.impress.co.jp/game/docs/20080224/ffcc.htm
>Squirrelについては、「メモリの消費量は増してしまうが、それだけの価値がある」という白石氏。
>プログラムの7割はSquirrelを使用しているという。

ですって。

819 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:28:30 ]
うは、Squirrelきたか・・・
つかこのスレに書いてる人いそうだなw

820 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:22:53 ]
スクエニの人もこのスレ見てるんだろうなあ。書き込みもしてるかもね
スクエニが使っているという情報はでかい
Squirrelを採用する企業もこれからかなり増えるんじゃないか
いい感じ

821 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:17:18 ]
製品レベルのゲームコードの大半がメモリマネージド言語で書かれる時代が来たということか。
開発効率に対する姿勢が比較的アメリカ型なスクエニがこういう方法をとったことは不思議ではない。
C/C++(&内製の半端なスクリプト言語)一辺倒から離れられないプログラマや企業はいよいよ
ついていけなくなるかもね。

822 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:26:54 ]
歴史的なしがらみが無いなら移行は簡単だと思うけど。
基本的にスクリプト言語の方が習得難度が低いからね。
まぁその歴史的なしがらみが大きな障壁になるのかもしれないけどさ。
1言語しか扱えないニセグラマとか猿スクリプタとか。



823 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:40:34 ]
>>822
プロでそんな人はいなさそう
むしろ、メモリの動的確保が信じられないとか、そっちの方が使わない理由だろう

824 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:33:21 ]
SCEはLua(C)で、NintendoはSquirrel(C++)か。
オレはそれならSCE派だな。Nintendoは趣味じゃねー。

825 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:37:01 ]
C++の方が開発元に権限が集中しやすいので、それが狙いというのはあるかもね。
そこまで考えれたらいっぱしのマネージャークラス?

826 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 07:39:05 ]
んでまたちょっとするとカリカリにチューニングした爆速ゲームがもてはやされると。ループですな。

827 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 07:56:22 ]
DOS版DOOMみたいな、全てのコードがカリカリでないと爆速はむりぽ、
という時代じゃないし

828 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 14:24:07 ]
>>824
別に任天堂本体が使ってる訳じゃあんめえ
スクエニでしょ

829 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 15:59:46 ]
Squirrelと心中

830 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 19:35:14 ]
>>828
DSの開発言語の標準がC++らしいので、Nintendo自体もSquirrelに
まんざらではない可能性も。

831 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:29:10 ]
>>830
WiiはともかくDSにSquirrelはない。メモリ的に

832 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:36:22 ]
>>824
スクエニつーかリードプログラマの趣味じゃね?>Squirrel
カリカリチューンとかいってもLuaとかSquirrelで全部やろうとしたらそら重いけども。
単なるイベントハンドラとして使うだけならどっちでも大して変わらんでしょ。

LuaPlayerでゲーム作るノリでゲーム中の全オブジェクトの管理・更新をLuaとかSquirrelとかで書いちゃう人って結構多いの?



833 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:20:35 ]
大手企業はただ使うだけじゃなく
積極的に開発にフィードバックしてくれたら良いけどな
ただ日本企業にそこまで期待できるか実際のところ何ともいえないけど

834 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:23:49 ]
新・業界標準

835 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:35:58 ]
急に賑わってきたね
ちょっと前まで過疎スレだったのに

836 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:37:43 ]
まあCEDECあったしな

837 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:38:17 ]
GDCだったw

838 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 00:21:49 ]
Squirrel面白そうだな
うちでも採用検討しようかな

839 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 01:34:26 ]
つかSquirrel更新来てたのか
>>811さりげなさ過ぎて気付かなかったw

>>616のバグもめでたく正式に修正されたみたいね
-fixed a coroutine bug

840 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 21:37:58 ]
>>806 すいません、今修正しました。
あと、上のほうでSquirrelでJITみたいな話がありましたが、
ちょっと前にJITをつけたものを公開してます。
速度的にはあまり早くなりませんし、コードも汚いですがよろしければどうぞ。
ttp://muffin.cias.osakafu-u.ac.jp/~matumoto/cgi-bin/xt.cgi?prog/sqjit

841 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 22:14:17 ]
>>840
神乙
きっとスクエニの人もあなたの翻訳は見ているでしょう

842 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 23:31:53 ]
zenzen nai
koukai sitakerya koukai sitemo iiyo
oreha iranai kedo ne



843 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 15:54:40 ]
>>840
ちょwwww
SquirrelJITってwすげえw
速くならないのは残念ですね。いま時はVM実行でもプロセサが速いから吸収しちゃうのかね

844 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 21:40:38 ]
まじか

845 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 08:20:37 ]
>>824
>SCEはLua(C)で、NintendoはSquirrel(C++)か。

LuaがC++対応じゃないみたいに見えるからやめれ。
LuaのC++との相性はSquirrelと同程度だろう

846 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 12:08:01 ]
言語からC++側のクラスを扱う上では大差ないけど、逆が squirrel のが圧倒的に楽(変数への参照がそのままもてる)
から、相性が同程度ってのは疑問だなぁ。Lua ってそのあたりなんか最近変わった?


847 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 19:12:32 ]
>squirrel のが圧倒的に楽(変数への参照がそのままもてる)

ここんとこ、少し解説してくれまいか?

848 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 22:08:06 ]
>>373-378

849 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 23:28:01 ]
>>847
マニュアルの「C言語のAPIからSquirrelの値への強参照の維持」のところ以降を参照

以下使い方の例の一つ:複数のsquirrelのクロージャをC側で保持して任意に呼び分け

前準備
1. スクリプトをコンパイル
2. スタック上のクロージャを、sq_getstackobject でHSQOBJECT として参照保持
3. スタック上のはとりあえず必要ないので sq_pop で解放
4. 必要な分だけこれを繰り返す

使う場合

1. スタックに HSQOBJECT として参照してるクロージャを sq_pushobject で積む
2. sq_call でそのクロージャを呼びだす

LUA でおなじようなことをしようとすると、なにかしら名前をつけてグローバルのテーブルか
レジストリにいれとくとかして、それをいちいちスタック上で取り出すような処理が必要なはず。
squirrel だと、任意のオブジェクトに対する参照をC側でもてるので、
(強参照なので、参照されてる限り消えない)、使うときだけまたスタックに積む、という使い方ができる。
値を set するにはスタック介さないとダメだけど、get だけならAPIで直接ぬくこともできる。

制御の本体を C 側でおこなってる場合でも、この機構があるおかげで、Squirrel 側のオブジェクトの
とりまわしがすごい楽にできる。
sqplus を使うと、このあたり関連の処理が SquirrelObject としてラッピングしてあって、
値の代入から配列/辞書としての操作まで、全部 Cからのメソッド呼び出しで
簡単にできるようになってる。

850 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 00:09:18 ]
>>849
>LUA でおなじようなことをしようとすると、なにかしら名前をつけてグローバルのテーブルか
>レジストリにいれとくとかして、それをいちいちスタック上で取り出すような処理が必要なはず。
ここ以外はLuaと機能の差がないという解釈でOK?
Luaでもちょっとした(数行の)関数かけば解決しちゃうような。
もちろんその手間はかかるけど。

>強参照なので、参照されてる限り消えない
Luaでもレジストリに保存されている限り消えない。

>get だけならAPIで直接ぬくこともできる。
もうちょっと詳しく書いていただけると助かります。

>SquirrelObject としてラッピングしてあって
luabind::objectでも同様にしている。


851 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 00:22:14 ]
luaL_ref() とやってることはあんまり変わっていないような。

852 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 00:54:33 ]
>>851
なんだって! そんな便利なものがあったのかよ!




853 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 01:27:20 ]
>>850
まあラッピングすればねー。
SqurrelObject は例示としてはよくなかったね。

Cの名前空間との関連を管理するコードを自前で書かないと
いけないってのはちょっとうれしくないぁと。
それをしなくて良い分親和性が高いってのは納得いただけるかと。

>getだけなら
sq_objbool とかそのへん

あと、話はそれるけど、言語文法もかねw>C言語との親和性
begin/end がどうしても慣れなかった……

854 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 04:54:19 ]
SquirrelもLuaも使ってみておもったけど、もう少し簡単に組み込めるようにはならんのかな?
スタック操作とか、参照カウンタとか頭こんがらがってくる
C++じゃなかったからtemplate library 使ってないせいもあるんだろうけどさ。
みんなやっぱりその辺のbinding使ってるの?**Plusとかみたいなの

>>849
強参照ってそんなときに使うのか・・・

855 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 07:57:01 ]
Lua最高!

856 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 12:13:32 ]
↑うるせーよダボがすっこんでLua!

857 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 14:34:16 ]
>>856
うまいこといったつもりか!

858 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 15:42:34 ]
>>854
スタックはややこしいよね……。
テンプレートは使ったり使わなかったりかな。単純な関数呼び出しぐらい
なら、普通に書いたほうがわかりやすいので。

859 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 18:37:04 ]
Lua用のラッパーライブラリ自作したけど、
結局スタック操作から逃れられなかったなあ。
操作をできるだけ簡略化しようとして変態的になっていく不思議。

スタックの取得とかはこんなん。
lua_Var var = Lua.peek(-1);
↑Luaが扱うオブジェクトなら何でも入る共有体クラス

関数呼び出しはこんなん。
( Lua.global()["object"]["setPosition"] << 1.0 << 12.3 << 0.4 )(3, 0);

860 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 00:10:39 ]
luabindが二年放置(最終更新2006-01-24)の状況なのが厳しいですね。
luaのバージョンも進んでいるうえ、VS2008も販売された今では、
サポート放置されたライブラリには手が出しにくいです。

861 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 00:29:40 ]
sqplus使おうぜ

862 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 00:44:46 ]
スタック操作が煩雑になってきたら、ラッパー使って誤魔化すよりも
最小限の関数だけエクスポートして積極的にLua側に
ロジック追い出すように練り直した方が良いと思うけど。



863 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 00:46:58 ]
>>860 svn版使おうぜ
code.rasterbar.com/luabind/wiki

864 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 08:56:59 ]
きちんと高専とかで勉強したやつらはスタック型好き多いからね

865 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 09:32:40 ]
>>859
変態っぽいw
でも関数呼び出し面白い

>>864
スタックは仕組みがわかってても、日常のプログラミングでつかわないから疲れる
で、Squirrelは基本ライブラリですらスタック周りのバグがあったりして、
ソースみながら理解しようとしても信用できずに不安(もちろんパッチなげたけどさ)

866 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 09:33:45 ]
DMonkey、Wolfyによる更新キタ━━━━━━(゚∀゚)━━━━━━ !!!!!












DMonkeyもスレ違いじゃないよね?

867 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:09:03 ]
>>859
<< 1.0 << 12.3 << 0.4ってのは何を渡してるの?(3,0)は関数呼び出しって分かるけど。

>>865
バグについてkwsk

確かにスタック操作は煩雑だよね。特に開放。忘れたらリソース食いつぶすって点で
new-deleteに通じるものがある。

Squirrel使う予定なんだけど、やっぱりスタック操作の理解を深めるためにバインダは
自作したほうがいいかな。


868 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:22:28 ]
スタック操作の理解を深めるためには
情報処理試験の勉強をするのがよいとおもう。

869 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:43:45 ]
> バインダは
> 自作したほうがいいかな。

Squirrel Wikiのバインディングを一通り試してみてからでも遅くはないと思う。
wiki.squirrel-lang.org/

どっちにしろ、1から書くには大変だと思うので。

>>867
バグkwsk覚えてない。SqPlusのバグだったかも。
>>867も言うような pop忘れだったと思う。
俺が見た時は、安定版にパッチが取り込まれてなかった。
大分前、去年の話だけどね。

他にも似たようなところがあるかもしれない。

870 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:48:13 ]
そういう意味じゃないって('A`)
まぁ車輪の再発明もいいところだが、バインダ作るよ。できたら公開するぽ

871 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:51:39 ]
あ、>>870>>868に対して。

>>869
とりあえずSqPlusのソースを読み始めたところ。SqPlusと似たインターフェイスになりそう。
名前空間何にしよう。とりあえずsqbindでいいか。

872 名前:859 mailto:sage [2008/03/01(土) 12:34:57 ]
>>867
ストリームみたいな感じで引数3つスタックに積んでる。
あくまで例なんで、数値に意味は無い。



873 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 13:13:31 ]
>>872
ストリームみたいにしたいなら
gcall<<"object"<<"setPosition"<<arg<<1.0<<3.0<<-2.0<<end;
みたいにマニュピレータつかった方が見やすいと思うけど

874 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 14:17:15 ]
もといマニピュレータです

875 名前:859 mailto:sage [2008/03/01(土) 14:20:12 ]
ああ、元々ストリームを意識して作ったわけじゃないから
その辺は考えてなかった。

876 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 14:59:38 ]
C++のストリーム演算子?はよく知らんだが、
a << 1.0 の戻り値はどんなオブジェクトになっとるの?
a と同じオブジェクトを返しているのですかね。
ということは、メソッドチェーンみたいなのでも可能か・・・

a.push(1.0).push(12.3).push(0.4).call(3, 0)

みたいな

877 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 15:59:30 ]
バインダの名前sqppに決定。
SqPlusを読んで勉強中。

SquirrelObjectのコピーコンストラクタだけど、以前保持していたオブジェクトへのハンドル
はsq_releaseしなくて平気なんだろうか。

operator=ではちゃんとsq_releaseしてるし、バグだよなぁ・・・やっぱり。

878 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 17:21:12 ]
って何を血迷ってるんだコピーコンストラクタにreleaseいるわけ無いじゃんOTL
アホス つってきまつ

879 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 02:02:22 ]
binderなんていらないね
なんでもいいけど一行でcallできるのと
一行でnative closure登録できるようにしとけば
他はほとんどつかわんよ

880 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 06:28:46 ]
>>879
それを人はバインダと呼ぶ

881 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 11:54:53 ]
Lua5.1.3のlstrlibのSJIS化してみたので置いときます
ttp://colon.nsf.jp/lua/
MSVC用なんで需要なさそうだけど^^

882 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 12:48:58 ]
>>881
ソースコードのほうはいいけど、test.luaのほうの文字コードがぶっ壊れてるように見えるんですが。

str = "\\5爐!Eェ殉\\}柔檻5\"xさぜ\"ェ殉柔爐さ檻Exぜ!}"
pat = "[^檻]*"
testf( 1, str, pat, "xさぜ\"ェ殉柔爐さ" )

これってテスト用だからわざとだったりします?
でも、SJISじゃないって警告が8箇所出てたりもします。



883 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 13:13:04 ]
すいません。わざとです。
漢字コードの境界部分を多く含むようにしてあるので
フォントによっては表示すらできません

884 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 14:01:30 ]
SquirrelのGCは参照カウンタ型か・・・
GCの負荷を分散するわけだからどうしても重くなるよね。
やっぱLuaかな・・・

885 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 14:17:15 ]
>>884
つ ベンチマーク
って、ゲームとかの組み込みだろうから、単純計算しても参考にならんわな。

実際の簡単なゲームの比較ベンチマークでもあれば、いんだろうけどね。

886 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 14:35:37 ]
なんでマイノリティの参照カウンタ型採用しちゃったんだろ?
当然参照カウンタ型のデメリットも把握してたはずだが・・・
一般的なLua型にもデメリットはあるが今現在
決定的なアルゴリズムはないのだからとりあえず一般的な型(Lua型)
にしときゃよかったのに。

887 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 15:14:03 ]
んー。確か、Squirrelを作った理由に、LuaのGCの挙動にブチギレたってのも合ったはず。
どっかに記事なかったかな。

888 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 15:17:21 ]
ゲーム用途に組み込む人は解放のタイミングが確実な参照カウンタのほうを好む気がする

889 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 15:28:28 ]
マシンはどんどこリッチになるしな
特にPCは

専用機(コンソール)だと各世代の寿命と段差が大きいが

890 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 16:46:14 ]
大体Squirrelはマーク&スィープGC積んでるんだから、それでもあえて
リファレンスカウントを選んだのはちゃんと理由はある。
wiki.squirrel-lang.org/default.aspx/SquirrelWiki/LuaComparedToSquirrel.html

俺がSquirrelを使ってる理由はリファレンスカウントだから。理由は>>888
巨大なリソースを組み込みスクリプト側で扱う設計にしてるなら、リファレンスカウント
のありがたみが分かるはず。
折角GCつき言語採用してるのに、リソース開放のためにdispose()とかダサいよ。

891 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 16:55:03 ]
luaにネイティブ整数型がないのはときどき困る。

892 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 20:00:03 ]
チラシの裏。

Squirrelバインダ製作中。とりあえずC++からSquirrel呼び出しは、

SquirrelVM vm;

int value = sq_cast<int>( vm.getRootTable()[ "foo" ] );
vm.getRootTable()[ "bar" ] = "BarString";
vm.getRootTable()[ "setPosition" ]( 1.0f, 2.0f );

vm.beginCall( vm.getRootTable[ "setPosition" ] )
.param( 1.0f )
.param( 1.0f )
.endCall();

みたいな感じに。
SquirrelからC++呼び出しが面倒くさい。Sqplusみたいにテンプレートを駆使した
バインダにするか、それともネイティブクロージャを楽に登録できるようにするだけに
するか、悩みどころ。



893 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 07:50:12 ]
>>890
まあ「俺の好みだからほっとけ!」いわれればもうなにもいうことないけど
リファレンスカウント型には毎度のカウンタ操作による負担が重いという弱点があり
そこを嫌われてマイノリティなのは事実だから仕方ないよ。

894 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 08:58:58 ]
>>893
マイノリティか?海外で大人気のPythonは参照カウント&GC式だぞ。Squirrelと同じ。
Pythonのスタックレス版はどっかのネトゲのサーバーに使われてたはず。

>毎度のカウンタ操作による負担が重いという弱点
これそのままメリットなんだよね。マーク&スイープGCは回収している間プログラムが
とまるって事実は忘れちゃいけない。参照カウントはGCのコストをちょっとずつ払って
いるから、止まることは無い。

一般的に嫌われてるってのはただ単に>>893の個人的な感想じゃないか?
両者のメリット・デメリットを把握して運用するのが重要だと思う。

895 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 09:44:53 ]
>>894
PHPとかIoもやね。あとObjective-Cも。

896 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 11:17:30 ]
ちょうどそんな話題がPythonスレに出てたよ
ttp://pc11.2ch.net/test/read.cgi/tech/1203611273/182

897 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 14:32:21 ]
>>896
凄くみにくい言い争いに発展してるんだがwww

898 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 19:00:16 ]
>>896
参照カウントにも利点があることが分かったよ。なんとなく。

あと、英語が読めないと開き直ることに、利点がないのも分かった。はっきりと。

899 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 20:15:59 ]
チラシの裏。

Squirrelバインダ製作中。ただ、作ってるうちにSqPlusへの理解が深まったせいで、SqPlus
使えばいいんじゃね?みたいな雰囲気に。もうだめぽ

とりあえず

DefineClass< SampleClass >( "SampleClass", vm )
.constructor()
.method( "testFunction", &SampleClass::testFunction )
.method( "testFunction2", &SampleClass::testFunction2 );

のようにバインドできるようにしたけど、これから作りこんでいくかどうか悩んでる。

メンバ関数ポインタの配列をsq_get/settypetagを使って設定してるけど、
使い方間違ってるぽ\(^o^)/オワタ

900 名前:デフォルトの名無しさん mailto:881 [2008/03/04(火) 00:46:02 ]
日本語変数名つかえるようにしたのと入れ替えました
さらに需要ないんだろうなあ

901 名前:881 mailto:sage [2008/03/04(火) 00:50:25 ]
すいません。間違えてあげちゃいました。
メール欄に881ってw

902 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 07:56:42 ]
>>894
うーん、この辺が入門としてはお勧めかな。
ttp://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-13308-7
割と大きい図書館ならおいてあるよ。
マーク&すいーぷの欠点はそのとおり。



903 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 08:42:52 ]
Squirrelのバインダなんだが、C++からエクスポートするときのインターフェイスに悩んでる。
どっちがいいかな?とアンケート。

1.
void foo( cpp_ptr<TestClass> arg )
{

904 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 08:45:23 ]
xtal使いやすいよ。

905 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 08:55:51 ]
うわ途中で送信しちまったい。

1.
void foo( cpp_ptr<TestClass> arg )
{
/*なにか処理*/
}

2.
void foo( TestClass* arg )
{
/*何か処理*/
}

//ヘッダファイルのどこか
SQPP_DECLARE_CLASS( TestClass );

2はSqPlusと同じ方法。1は代替案って感じ。
基本型以外は全部C++のクラスと仮定してエクスポートしてもいいんだけど…
(そうしたらSQPP_DECLARE_CLASSいらない)


906 名前:デフォルトの名無しさん [2008/03/04(火) 13:18:02 ]
参照カウント式が特段優れたものではないということは確か。
というか逃げられない(GCしないという選択肢がない)分、有害ですらありうるな。

907 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 13:31:54 ]
話が盛りあがっているところ申し訳無いのですが
GC一般の話題は専用スレがあります。
過疎スレですからそちらを使って頂けないでしょうか。

Garbage Collection (GC)について語るスレ
pc11.2ch.net/test/read.cgi/tech/1141646850/

908 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 13:47:30 ]
>>905
1

909 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 14:15:57 ]
>>906
GC使わないようなコード書くなら、組み込み言語使う意味が大幅に薄れるような。
そんな涙ぐましい努力をするくらいなら最初からC/C++で書くよ。

俺も参照カウントが優れた方法だとは思わないが、こと組み込み向けならば
メリットがあると個人的には思うよ。

910 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 01:08:52 ]
LuaのインクリメンタルMark&Sweepの実装も
マジックナンバーばっかで何を根拠に調整してんのか
よくわからんしなぁ。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<210KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef