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


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

【Lua】組み込み系言語総合【Squirrel】



1 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 13:02:21 ]
LuaやSquirrelなどアプリケーションへの組み込み用途で
使われるプログラミング言語についてのスレッドです
まとめwiki(なにか質問する前に必ずみること!)
wikiwiki.jp/lua/

その他の参考URLは>2から

■過去スレ
その3 pc11.2ch.net/test/read.cgi/tech/1160799232/ (前スレ)
その2 pc8.2ch.net/test/read.cgi/tech/1063711237/
その1 pc5.2ch.net/tech/kako/1034/10341/1034182349.html

748 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 09:49:42 ]
Squirrelの動的リロードは、ソースファイルを読み直すだけでそのままできるんだが?
ファーストクラスオブジェクトというのはそういうものだ。
シリアライズ・デシリアライズ機構を用意するだけ。

749 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 09:50:54 ]
      nn
  _ γ・ ̄\
 γΞミvヽ _r・
 ( r-、i (゚Д゚)
  ヽノ (ノ ミ)  ミ Squirrel!!
  ヾ_(つノノつ

750 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 10:38:57 ]
>>748
「ソースファイルを読み直すだけ」じゃないじゃん

751 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 14:43:12 ]
BSDやMIT等の重要な部分に記載しろというのが嫌い
でもzlib系は書かなくてもいいのに記載します
なのでSquirrel使い

752 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 14:57:07 ]
>ソフトウェアのすべての複製または重要な部分に記載するものとします。
MITのこれって、全体もしくは部分的な複製に記載しろという意味じゃなかったっけ?

753 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 15:09:09 ]
>>750
シリアライズ機構を、インスタンスの再構築を行うソースファイルを生成するように設計すればいい。
フォーラムに例が挙がってる。

754 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 16:03:26 ]
Xtalはよさげなんだが食指が動かんな。何故だろう?個人がせっせとやってるからかなー。

2月24日の日記によるとよりC++らしい記法が出来るようになるみたいだが、
やっぱりC++チックな記法が世の中的には好まれるんだろうか?

755 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 16:06:48 ]
おそらくね。
endはメンドクサイんで嫌いだ

756 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 16:17:04 ]
元々xtalはC++ライクな軽量言語ってのをウリにしてるからな



757 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 17:32:44 ]
zlibライセンスでC++チックな記法といえばAngelScriptだな。
MITならCINTってのもあるが。

758 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 17:39:51 ]
ちょっとしたゲーム製作にSquirrelを使いたかったが、挫折した。
日曜プログラマには無理だった。
もっと勉強してからにします。

759 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 17:56:28 ]
Squirrel内の関数をCから呼び出すときに可変長引数で引き渡したいが、上手くいかないです。
bool CallSquirrelFunction(const TCHAR* pFuncName, ...)
{
SQInteger top = sq_gettop(m_vm);
sq_pushroottable(m_vm);
sq_pushstring(m_vm,pFuncName,-1);
if(SQ_SUCCEEDED(sq_get(m_vm,-2)))
{
sq_pushroottable(m_vm);
int nArgCount = 1;
//TODO ここに可変長引数でsq_pushしたい(integer,float,string)
sq_call(m_vm,nArgCount,false,false);
sq_settop(m_vm,top);
return true;
}
sq_settop(m_vm,top);
return false;
}
va_***系マクロ使えば行けるかなと思ったが、無理なのかな。
"%d%f%s"のような型指定リストを渡すのはスマートじゃないけど、これ以外に方法は無いのかな……。
あんまりSquirrelと関係なくてすいません。助言をください。

760 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 18:07:11 ]
>>759
わかってるんじゃん。Cは言語仕様的に引数の型情報を取得する手段がないので、
型指定情報をなんらかの形で渡すか、全部 Variant な型を使うようにするかのどちらかしか無理。

型指定は別に printf みたく文字列にする必然性はないよ。

func("funcName", TYPE_INT, a, TYPE_FLOAT, b, TYPE_STR, c, TYPE_END)

とかこんなかんじで順次型情報とあわせて渡すとかでいいんじゃね?


761 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 18:32:27 ]
>>760
すばやい返信ありがとうございます。うーん。Cの仕様上どうしようもないんですね。
型情報も合わせて引数に送ることで、対処しようと思います。
ありがとうござました。

762 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 21:07:44 ]
ま、そもそもC言語で今更、自前の可変長引数関数を
(ログ出力等以外の目的で)で整備する利点は薄いので、
正直に他の方法による実装を考えた方がいいと思うけどな。

763 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 21:28:52 ]
C++にしてboost::tupleとか使えばうまく書けるかもしれない

764 名前:デフォルトの名無しさん [2009/02/26(木) 09:55:45 ]
C++だと、boost::functionみたいに、

template<typename _tR,>sq_function0(HSQUIRRELVM &vm);
template<typename _tR,typename _t0> sq_function1(HSQUIRRELVM &vm,_t0 t0);
template<typename _tR,typename _t0,typename _t1> sq_function2(HSQUIRRELVM &vm,_t0 t0,_t1 t1);
template<typename _tR,typename _t0,typename _t1,typename _t2> sq_function3(HSQUIRRELVM &vm,_t0 t0,_t1 t1,_t2 t2);


といった感じで、引数の個数にあわせたtemplateファンクタを用意して、これらをsq_functionというtemplateに置き換える仕組み用意したらいいんじゃね?
そういう仕組みの具体的な実装はboost::function参照。

Squirrelじゃないけど、自分はこういうtemplate用意してスクリプト内の関数呼び出す仕組み用意した。
結構便利。

765 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 22:53:47 ]
Squirrel3.0の安定版っていつ出るのさ


766 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:02:24 ]
>>765
そもそも3.0というほどの変更箇所があるように見えないんだが、
ずっと黙って2.2.2-stableを使ってるな。



767 名前:デフォルトの名無しさん [2009/03/01(日) 18:51:08 ]
剰余の計算をするとエラーが出るのですが、どうしてでしょうか?

x = 10 y = 3
print("余りは" .. x % y .. "です")

これを実行すると、
stdin:1: `)' expected near `%'
と表示されてしまいます。

768 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 19:03:51 ]
何語で書いてるのか書け。まずはそれからだ。

769 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 19:08:52 ]
演算子の優先順位の問題じゃね?

770 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 19:21:57 ]
Lua5.1.4で再現無いことだけ確認したw

771 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 19:33:50 ]
Lua使ってないからしらんが、
括弧付ければ無問題だと予想

772 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:16:06 ]
>>767
使ってるLuaが5.0系(%演算子が無い)なんだろう。
5.1にするか、math.modを使うかしろ。
ただしmath.modと%演算子は、負数のときの挙動が違うので注意。

773 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 08:05:29 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


774 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 18:06:00 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  / <●> <●>|  /
  |    ( _●_)  ミ/ Lua?
 彡、   |∪|  /
/ __  ヽノ /
(___)   

775 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 21:35:40 ]
いいえKumaです。

776 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 22:31:36 ]
Luaってもしかして、++iとか--iとかない?



777 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 22:51:12 ]
忘れたけど、基本floatだからないんじゃないの?


778 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 23:16:53 ]
-- はコメントだしなあ

779 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:17:05 ]
>>777,778
ないのか、残念
レスありがとう

780 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 21:09:28 ]
i += 1 もないお

781 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 21:18:53 ]
//は何なの

782 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 01:20:44 ]
>>781
「**」がべき乗として使われる言語がたまにあるけど、
// はその除算版。
つまり、a // b = a ** -b = pow(a, -b)

783 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 08:14:31 ]
冪根ことか累乗根とかだっけ

784 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 14:01:59 ]
& と && の関係みたいなもんか

785 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 20:35:46 ]
全然違わないか? それ

786 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 21:46:34 ]
いや、=と==みたいなもんだろ



787 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:34:53 ]
*hoge と**hogeよりは違わないだろう

788 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 10:43:16 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   


789 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:40:40 ]
Squirrelでルートテーブルに対しての、定数のバインドってどうやってやるか分かりますか?
sq_pushroottable(m_vm);
sq_pushstring(m_vm,"CONST_VALUE",-1);
sq_pushinteger(m_vm,255);
sq_newslot(m_vm,-3,true);
sq_pop(m_vm, 1);
これでもCONST_VALUE=255となりますが、定数ではなく変数(書き換え可能)なんですよね……。

スクリプト記述で言うところの、
const CONST_VALUE = 255;
となるよううなコーディングを実装したいです。
やっぱ、定数はコンパイル時決定だから無理なのかな?


790 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:56:03 ]
自己解決しました。
sq_pushconsttableとsq_setconsttableで上手くいきました。
仕様に目を通してないことが丸分かりで恥ずかしい……。

これでやっと
・定数・変数・クラスのバインド
・C++⇒Squirrel関数の呼び出し
・Squirrel⇒C++関数の呼び出し
まで完成しました。
あとは、デバッガと動的リロードだ。先が長いぞ。

791 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 10:35:48 ]
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >



792 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 13:37:15 ]
>>782
Lua だとそーいう演算子ないみたいだけど、それってどの言語で使えるの?
c++系統だとコメントだし、Python3.0とかだと余りを切り捨てる除算に使うしあんまり一般的じゃない気がする



793 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:20:20 ]
// でググってみれば?
俺はどうでもいいからやらないけど。

794 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:46:26 ]
>>793
あほか、ぐぐってみろw


795 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:59:28 ]
double slash operator

796 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 09:03:27 ]
組み込み言語Pawn
The Pawn language
www.compuphase.com/pawn/pawn.htm

Pythonバインディングあった。(組み込みにも使うPythonから使う利点は不明w)
craftware pypawn 1.05
hp.vector.co.jp/authors/VA012411/pypawn/doc/




797 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 09:04:01 ]
>>793-794
だめぽ。見つかりませんでした
// - Google 検索
www.google.com/search?hl=ja&safe=off&num=50&q=%2F%2F&btnG=%E6%A4%9C%E7%B4%A2&lr=


798 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 09:13:14 ]
LuaInterface 2.0.3
code.google.com/p/luainterface/
Luaから.NETの機能を使ったり、.NETな言語からLuaを利用したりできるやつ。

LuaInterface Debugger
code.google.com/p/luainterface-debugger/
ステップ実行とかできるLuaのデバッガ。非GUI

799 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 10:59:05 ]
>>798
これ何がやりたいのかわからん
Luaはネーティブなんだから、只のラッパーに徹するか、
既存のLuaでも使える、.NETをラップしたモジュールにしてくれれば良かったのに

自分はC++/CLIに馴染みが無いから、只のラッパーを自作する参考に
コードを読む程度の利用しかしてね

800 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 11:26:37 ]
は?

801 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 15:46:24 ]
ひ?

802 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:45:18 ]


803 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:54:28 ]


804 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:57:40 ]


805 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 22:01:58 ]
ハルビンの親戚か?

806 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 00:19:44 ]
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ Lua!!
 彡、   |∪|  /
/ __  ヽノ /
(___)   




807 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 10:34:54 ]
ちょw

808 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 11:09:28 ]


809 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 13:16:17 ]
次スレはいらないな・・

810 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 16:32:12 ]
   ∧_∧  / ̄ ̄ ̄ ̄
  ( ・∀・) <  Lua!!
⊂/  9)  \____
q(   /
  >  >



811 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 11:37:16 ]
>>800-806
AVで本当にあって吹いた

TMA 涼宮ハヒルの憂鬱 レビュー | 丁dai Blog
tyodai.blog47.fc2.com/blog-entry-65.html


812 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 12:59:07 ]
そりゃ、あるから書いてるんだろう

813 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 20:05:17 ]
Luaを実装したプログラムのソースコードください。

814 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 20:12:32 ]
>>813
ttp://www.lua.org/ftp/

815 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 08:32:52 ]
乳揉みてぇ

816 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 01:43:27 ]
>>815
ttp://www.milknosato.com/enjoy/cowy.php



817 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 12:59:13 ]
LuaのテーブルをXMLに保存する
homepage3.nifty.com/akaho/program/lua/xml.html

見つけたので、貼っとく。

818 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 17:09:25 ]
じゃあ俺はSquirrelのテーブルをJSONに保存する

819 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 18:09:36 ]
YAMLじゃなくて?

820 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 06:14:06 ]
S式で

821 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 17:56:26 ]
根性です

822 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:38:00 ]
ttp://haxe.org/

NekoVM 用として使えば組み込み系もいけるかも?
でも Nekoランタイムは LGPLかー



823 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 17:56:07 ]
haxeでlua出せないかなぁ







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

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

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