[表示 : 全て 最新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

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