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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
だれか サポ−ト 頼む。
前々スレ http://pc5.2ch.net/tech/kako/1034/10341/1034182349.html
前スレ http://pc8.2ch.net/test/read.cgi/tech/1063711237/
本家 http://www.lua.org/
lua-users http://lua-users.org/
LuaForge http://luaforge.net/
Lua 5.1 リファレンスマニュアル(日本語訳)
http://sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html
2デフォルトの名無しさん:2006/10/14(土) 13:18:27
        /\  
      / =.\  
    // ̄\ .\  
  /| |へノ⌒| //\  
  \ \_//  .\  
    \ = /       \  
     \/        \  
           ∧∧∧∧\  
          (  `/)  >ヽ∧  
          /   /  / `∀> ∧∧  
        ◇(   イ◇  (   ,つ`∀´>  
        /ヽ  )) ヽ  )ヽ )と  , イ  
        (_/(_/(_/(_/ノ(_/⊂ノ> )J  
    / ̄Y ̄`|/ ̄^Y ̄ヽ/ ̄ ̄Y `´ ̄\  
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  
このスレはキムチ軍の奇襲により占領されました 
3デフォルトの名無しさん:2006/10/14(土) 13:28:44
色々リンク辿ってたら http://luaforge.net/projects/stdlib/ を発見。
でも、ここのtable.clone関数は浅いコピーしかやってくれない模様。
色々と不足してるっぽいし、パッチとか投げたら喜ばれるのやもしれず……。
4デフォルトの名無しさん:2006/10/14(土) 13:31:55
>>2
ちょw
5デフォルトの名無しさん:2006/10/15(日) 00:39:00
テーブルは確かに必要な関数が多いかもしれないけど
実際のゲームとかphotoshopとかに組み込まれている奴って
テーブル関係の関数をどういう風に実装してんのかな
6デフォルトの名無しさん:2006/10/15(日) 12:16:50
ム板って即死判定とかあったっけ?
とりあえず保守を兼ねて思いついたことを書くと、テーブルを書き出す前に
まず_Gとかを再帰的に舐めて関数テーブルを自力で作れば、関数名も書き出せて
復元できるようになるのでは?と思った。まだ試してないけど。
7デフォルトの名無しさん:2006/10/15(日) 20:38:34
Luaを使ったゲームとかアプリで実際にどういう風に利用されているか読むのも
面白いな

テクニックとか盗めるし
8デフォルトの名無しさん:2006/10/16(月) 13:09:03
C と Pascal を合わせたような言語で、Gentee というプログラム言語を
見つけたけど、誰か使っている人いる?

ttp://www.gentee.com/index.htm
9デフォルトの名無しさん:2006/10/16(月) 18:33:32
>>2
消えうせろ

>>8
タイトルをよく読め
10デフォルトの名無しさん:2006/10/16(月) 20:55:10
>>9
ここはLuaだけじゃなくて、LightWeight全般もサブで取り扱うスレです。
前スレをよく読め
11デフォルトの名無しさん:2006/10/16(月) 22:17:34
そういやスレタイ変えるって話が出てたけど結局そのままだったね。
あとせっかく立ててくれたまとめWikiを忘れたらだめだよ。

[関連]

Lua/組み込み系言語 Wiki*
http://wikiwiki.jp/lua/
12デフォルトの名無しさん:2006/10/16(月) 23:13:17
実際にどういう風に使われているのか事例を紹介したりして、
余力があったらソースを解説したらいいんじゃないの
13デフォルトの名無しさん:2006/10/17(火) 18:57:43
>>11
そのWikiってこのスレのまとめWikiだったのか!
14デフォルトの名無しさん:2006/10/17(火) 19:24:21
#でコメントってもうないのですよね?
15デフォルトの名無しさん:2006/10/17(火) 20:01:31
shebang行は無視してくれるけどね
16デフォルトの名無しさん:2006/10/17(火) 23:43:19
リフレクションみたいなことが出来るってほんとうれすか
17デフォルトの名無しさん:2006/10/19(木) 07:28:17
定期保守
18デフォルトの名無しさん:2006/10/19(木) 20:08:41
天上天下唯一最高神が保守
19デフォルトの名無しさん:2006/10/19(木) 20:33:56
引数の個数によるオーバーロード

function makeoverload(...)
 local funcs={...}
 return function(...) local args={...} return funcs[#args+1](...) end
end

function funcA()
 print("引数なし")
end
function funcB(a)
 print("1引数", a)
end
function funcC(a, b)
 print("2引数", a, b)
end

func = makeoverload(funcA, funcB, funcC)
func()
func(123)
func(123, 456)
20デフォルトの名無しさん:2006/10/19(木) 21:26:06
めっちゃ遅くなりそうだな
21デフォルトの名無しさん:2006/10/19(木) 22:55:08
lua 5.0 からはそんなことしなくても最初っから arg っていう変数に束縛されてるよ。
Programming in Lua の2版には、確か ... ではなく arg の方を使えって書いてあったような気がした。
22デフォルトの名無しさん:2006/10/21(土) 23:36:50
ほしゅ
23デフォルトの名無しさん:2006/10/22(日) 22:46:38
文字列に文字列を挿入するとか
置換する関数が標準であればいいのに

Luaのgsubは使い方が判りづらくてウンコだ
24デフォルトの名無しさん:2006/10/24(火) 19:13:22
保守
25デフォルトの名無しさん:2006/10/24(火) 22:39:44
保守
26デフォルトの名無しさん:2006/10/25(水) 22:01:41
1オリジンやめれ
27デフォルトの名無しさん:2006/10/26(木) 07:11:13
チーズはどこにいった
28デフォルトの名無しさん:2006/10/27(金) 07:35:23
本スレどこだ
29デフォルトの名無しさん:2006/10/29(日) 20:30:04
保守
30デフォルトの名無しさん:2006/10/30(月) 18:50:04
定期保守
31デフォルトの名無しさん:2006/10/30(月) 19:51:42
小ネタ投下。
luaL_newmetatableで作成されたメタテーブルを持つユーザーデータならtnameを返し、それ以外ならtype()の結果を返す。
たとえばio.openで開いたファイルなら"FILE*"という文字列になる。
debugライブラリを使ってるのがマズイ

function type_ex(o)
 local t = type(o)
 if t=="userdata" then
  local m = getmetatable(o)
  if m then
   for k,v in pairs(debug.getregistry()) do
    if m==v then
     if type(k)~="string" then
      return tostring(k)
     end
     return k
    end
   end
  end
 end
 return t
end
32デフォルトの名無しさん:2006/11/01(水) 06:24:32
ていうか誰か速くJUMP文実装してくんねーかなぁ〜〜
33デフォルトの名無しさん:2006/11/02(木) 18:54:59
スパゲティコードでよければ

↑の人が実装する
34デフォルトの名無しさん:2006/11/07(火) 01:36:18
temp = { 500, x = 200, 'aaa', y = 300 }
というテーブルがあって、
temp[2]で200を取得することって出来ない?
35デフォルトの名無しさん:2006/11/07(火) 14:23:55
できないと思う。
temp[2]は'aaa'になる。

嫌なら
temp[2] = temp.x みたいにするとか。
36デフォルトの名無しさん:2006/11/07(火) 19:59:45
前スレの978みたいなやつ。
循環参照にも対応してるはず。
テーブルを渡すとそのテーブルを復元するコードを返す。
loadstring(save_table(t))()で元のテーブルのコピー。
↓をlua.exeに食わせると(ry

print((string.gsub([==[function save_table(data)@;assert(type(data)=="table")@
;local s,l,c={},"",""@;local function dump(x)@;;local t,r=type(x),nil@;;if t==
"nil" or t=="boolean" or t=="number" then@;;;r=tostring(x)@;;elseif t=="string
" then@;;;if x:find("[%[%]]") then@;;;;x=x:gsub("%%", "%%%%"):gsub("%[", "%%("
):gsub("%]", "%%)")@;;;;r="(u[["..x.."]])"@;;;else@;;;;r=" [["..x.."]] "@;;;en
d@;;elseif t=="table" then@;;;if s[x] then@;;;;r="m[\""..s[x].."\"]"@;;;else@;
;;;assert((not getmetatable(x)) or (not getmetatable(x).__tostring))@;;;;local
 k=tostring(x)@;;;;s[x]=k@;;;;l=l.." m[\""..k.."\"]={}"@;;;;r="s(\""..k.."\",{
"@;;;;for k,v in pairs(x) do@;;;;;r=r.."["..dump(k).."]="..dump(v)..","@;;;;en
d@;;;;r=r.."})"@;;;end@;;end@;;return r@;end@;s[data] = "r"@;for k,v in pairs(
data) do@;;c = c.." r["..dump(k).."]="..dump(v)@;end@;return [[do local r,m={}
,{r=r}local function s(n,t)local r=m[n]for k,v in pairs(t)do r[k]=v end return
 r end local function u(s)return s:gsub("%%%)","]"):gsub("%%%(","["):gsub("%%%
%","%%")end]]..l..c.." return r end"@end]==], "\n",""):gsub("%s*@%s*", "\n")
:gsub(";", "\t")))
3736:2006/11/08(水) 17:21:17
少し修正。
print((string.gsub([==[function save_table(data)@;assert(type(data)=="table")@
;local s,l,c,e,a={},"","",false,false@;local function dump(x)@;;local t,r=type
(x),nil@;;if t=="nil" or t=="boolean" or t=="number" then@;;;r=tostring(x)@;;e
lseif t=="string" then@;;;if x:find("[%[%]]") then@;;;;x=x:gsub("%%", "%%%%"):
gsub("%[", "%%("):gsub("%]", "%%)")@;;;;r="(u[["..x.."]])"@;;;;e=true@;;;else@
;;;;r=" [["..x.."]] "@;;;end@;;elseif t=="table" then@;;;if s[x] then@;;;;r="m
['"..s[x].."']"@;;;else@;;;;assert((not getmetatable(x)) or (not getmetatable(
x).__tostring))@;;;;local k=tostring(x)@;;;;s[x]=k@;;;;l=l.." m['"..k.."']={}"
@;;;;r="s('"..k.."',{"@;;;;for k,v in pairs(x) do@;;;;;r=r.."["..dump(k).."]="
..dump(v)..","@;;;;end@;;;;r=r.."})"@;;;;a=true@;;;end@;;end@;;return r@;end@;
s[data] = "r"@;for k,v in pairs(data) do@;;c = c.." r["..dump(k).."]="..dump(v
)@;end@;return "do local r,m={},{}m.r=r"@;;..((a and " local function s(n,t)lo
cal r=m[n]for k,v in pairs(t)do r[k]=v end return r end") or "")@;;..((e and "
 local function u(s)return s:gsub('%%%)',']'):gsub('%%%(','['):gsub('%%%%','%%
')end") or "")@;;..l..c.." return r end"@end]==],"\n",""):gsub("%s*@%s*", "\n"
):gsub(";", "\t")))
3836:2006/11/08(水) 17:26:29
コード貼るだけではアレなのでちょっと使い方を説明。

--tableは保存しておきたいテーブル
dump = save_table(table)
--または dump = string.dump(loadstring(save_table(table)))

--ファイルに書き出す
f = io.open("hoge.lua", "w")
f:write(dump)
f:close()

--元のテーブルが復元される
table = dofile("hoge.lua")

function、thread、userdataはもちろん対応してない
39デフォルトの名無しさん:2006/11/08(水) 19:47:35
あるスレッドである程度スタックに値を積んでいる状態で
lua_resumeを呼んで帰ってきたときに、それまでスタックに積んでいたものが見事に
なくなります。lua_call系では消えずに残っているようですが…仕様なのかバグなのか。
マニュアルに書いてあるlua_resumeを使うときはlua_newthreadで新しくスレッドを
作ってから使えっていうのはこういうことなのですね…。
40デフォルトの名無しさん:2006/11/10(金) 18:38:07
lua.exeに食わせるとかアホな事やってないで
うpろだ使えよ
41デフォルトの名無しさん:2006/11/23(木) 12:09:36
metaluaの使い方がわからねぇ。
42デフォルトの名無しさん:2006/11/23(木) 13:52:08
昨日5.1 SJIS対応版を拾ってテストコードを作ってみたんだが動かないんだ。

lua_State *L=lua_open();
luaL_loadstring(L,"function Add(x,y)\r\n return x+y \r\nend\r\n");
//printf("%s\n",lua_typename(L, lua_type(L, -1)));
lua_getglobal(L, "Add");
//printf("%s\n",lua_typename(L, lua_type(L, -1)));
//printf("%s\n",lua_typename(L, lua_type(L, 1)));
lua_pushnumber(L, 1.2);
//printf("%s\n",lua_typename(L, lua_type(L, -1)));
lua_pushnumber(L, 2.3);
//printf("%s\n",lua_typename(L, lua_type(L, -1)));
if(lua_pcall(L, 2, 1, 0) != 0){
printf("残念賞:%s\n",lua_tostring(L, -1));
}
printf("%f\n",lua_tonumber(L, -1));
lua_pop(L, 1);
lua_close(L);

これだけで動くと思うんだが、lua_pcallした後は
「残念賞:attempt to call a nil value」
合間のprintfを有効にすると
function,nil,function,number,number って出る。
初っ端から駄目駄目な俺に誰か助言をくれ〜
43デフォルトの名無しさん:2006/11/23(木) 14:09:21
>>42
残念!
44デフォルトの名無しさん:2006/11/23(木) 14:57:13
>>42
FAQ
loadstringは評価しない。callしる。
4542:2006/11/23(木) 16:47:09
>>44
オオゥ。そうなのか。
・・・うん、無事動きました。ありがとう。
46デフォルトの名無しさん:2006/12/01(金) 04:10:14
==演算子でテーブルをくらべてるとき指してるテーブルが同じときにだけ__eqが呼ばれないことについて
47デフォルトの名無しさん:2006/12/02(土) 01:21:16
>>46
そう定義されてるから仕方が無い
48デフォルトの名無しさん:2006/12/02(土) 03:19:41
処世術なんてききたくない
この挙動は真っ当ではないと思わないか
49デフォルトの名無しさん:2006/12/02(土) 03:38:02
それほど酷い仕様とも思えんが・・・
むしろ"=="の意味からいったら真っ当な気さえする。

演算子をつかってboost.spirit並みの拡張をしたい
というなら話はべつだが。
50デフォルトの名無しさん:2006/12/02(土) 03:59:33
metamethodは記述は同じでも比べられる変数の値によって実行されたりされなかったりしていいと思う?
意味的な意味で

>むしろ"=="の意味からいったら真っ当な気さえする。
__eqよんだ上で返値を無視すりゃいいじゃん
51デフォルトの名無しさん:2006/12/02(土) 13:39:17
>実行されたりされなかったりしていいと思う?
いいんじゃん。単に言語設計上のポリシーの問題では?

>__eqよんだ上で返値を無視すりゃいいじゃん
無視するぐらいなら、呼ばなきゃいいじゃん
52デフォルトの名無しさん:2006/12/02(土) 13:55:08
>>50
別にいいと思う。それより

意味的な意味で ← この日本語がどうかと思う。意味がわからん。
53デフォルトの名無しさん:2006/12/02(土) 14:52:21
metamethodの機能として不完全だということは認知してもらえるんだろうか?
スクリプト実行時にその時比較される値によって実行されたりされなかったりするんだよ?
その上で「まぁべつにいいんじゃねヽ(´ー`)ノ」という意味でいいって言ってるんだよね?

だから処世術なんてききたくないっていってんだよばかばかまんこ
54デフォルトの名無しさん:2006/12/02(土) 16:00:59
同じテーブルを指す=比較するまでもない
という設計思想なんでしょ。
不必要なことはしないというだけで、別に不完全とは思わないなあ。
55デフォルトの名無しさん:2006/12/02(土) 17:13:58
言いたい事があるならMLでサクーシャに直接言ったら良いじゃない。
56デフォルトの名無しさん:2006/12/02(土) 17:16:18
とりあえず「metamethodの機能として完全」の
定義をしてくれ

言語設計ポリシーの結果として選択された仕様を
完全か否かなんて議論はきわめて不毛だし。
57デフォルトの名無しさん:2006/12/02(土) 17:17:14
>>54
仮にそういう設計思想なんだとして、だったら__eqなんて作らせないでしょ?
58デフォルトの名無しさん:2006/12/02(土) 17:18:58
>>53
>スクリプト実行時にその時比較される値によって実行されたりされなかったりするんだよ?

で、何が困るの?
困ることが無いなら、比較速度がかなり速くなる分、
いまの実装の方が完全なんだけど。

わかる?お前定義の「完全な言語」なんてどうでいいんだよアホ。
59デフォルトの名無しさん:2006/12/02(土) 17:20:22
>>57
はぁ?バカか?
お前__eqの意味すら理解してないんじゃないのか?
60デフォルトの名無しさん:2006/12/02(土) 17:23:07
そろそろ釣れた宣言がくる悪寒
61デフォルトの名無しさん:2006/12/02(土) 17:24:49
べつにつらないよw
君らばかだなホント
62デフォルトの名無しさん:2006/12/02(土) 17:34:22
お、でたでた。バカの口癖「お前等全員バカ」。
63デフォルトの名無しさん:2006/12/02(土) 22:46:40
どうやら尻尾巻いて逃げたようです。

彼がなぜ__eqが同一のオブジェクトでも
実行されて欲しかったのかは謎のまま。
64デフォルトの名無しさん:2006/12/02(土) 23:59:37
>>63
そんな事書くとまた出てきちゃうだろ。

JavaのequalsとかC++のoperator==とかは同一オブジェクトでも
呼び出されるから彼の要求が特別に変というわけではない気がする。
まぁ結局は>55なんだが。
65デフォルトの名無しさん:2006/12/03(日) 01:11:57
別になんか要求してるわけじゃないよ
挙動が気に入らなきゃvm書き換えりゃいいだけの話なんだし
66デフォルトの名無しさん:2006/12/05(火) 12:29:24
比較時にログを出力する、という実装は不可能だわな。
それに意味があるかどうかというより、
不可能なことがある、ってのがちょっと気持ち悪いとは思う。

所詮スクリプトなんだし、そこまで求めないけど。
67デフォルトの名無しさん:2006/12/05(火) 13:19:17
>>66
>不可能なことがある、ってのがちょっと気持ち悪いとは思う。
ナポレオン乙
68デフォルトの名無しさん:2006/12/09(土) 08:01:03
luabindの中身見たが、なんだありゃ・・・
さっぱりわけが分からない
69デフォルトの名無しさん:2006/12/09(土) 09:07:09
>>66
オーバーロードが一切出来ない言語できないなw
バカなお前じゃw
70デフォルトの名無しさん:2006/12/09(土) 09:18:34
方言?
71デフォルトの名無しさん:2006/12/09(土) 13:46:11
>>69
>所詮スクリプトなんだし、そこまで求めないけど。
ちゃんと読めよ。
72デフォルトの名無しさん:2006/12/09(土) 18:38:16
>>71
アホかお前。お前がちゃんと読めよ。

>所詮スクリプトなんだし、そこまで求めないけど。

スクリプトじゃなければ、そこまで求めるんだろうが。
スクリプトじゃなくて、オーバーロードできない言語だと、不可能だらけ。
アホな66は使えません。
73デフォルトの名無しさん:2006/12/09(土) 19:09:10
__eqが同一のオブジェクトでも実行されて欲しいケースなんてない、
という雰囲気にひとつ例を出したに過ぎない66に対して、
72の粘着っぷりは異常。
74デフォルトの名無しさん:2006/12/09(土) 19:49:33
72の粘着っぷりが怖いよ。

なんかよほど言い負けた感を持ったらしいとしか思えん、何が原因かは不明だが。

75デフォルトの名無しさん:2006/12/10(日) 18:35:05
「粘着っぷりが怖い」という粘着ぶりが怖いw
76デフォルトの名無しさん:2006/12/10(日) 19:08:12
ほら粘着とか呼んじゃうからムキになってるじゃないか。
スルーしとけばよかったのに。
77デフォルトの名無しさん:2006/12/12(火) 18:59:03
Lua以外の(軽量組込み系)言語の話はとんとご無沙汰な件について

もうLuaで鉄板?
78デフォルトの名無しさん:2006/12/13(水) 01:25:31
squirrel推したいけど比較するのにluaの変なとこを引き合いにだすと粘着されそうなんでやめときますね
79デフォルトの名無しさん:2006/12/13(水) 11:43:37
>>78
どんなものかを知るためにぜひやってほしいにょ
80デフォルトの名無しさん:2006/12/13(水) 19:41:44
>>78
俺もsquirrelを推したいけど別にLuaの変なとこを指摘することもないな
むしろLuaのほうが環境整ってるせいでsquirrelのほうが使いづらい感が…
81デフォルトの名無しさん:2006/12/14(木) 02:02:30
>>80
”環境”って日本語ドキュメント?binder?eclipseのplugin?
各apiを実行するとどういう風にstackがアクセスされるのかのきちんとした仕様の明示はほしい
これは外人もいってたけど
82デフォルトの名無しさん:2006/12/14(木) 08:23:13
>>81
前も書いたけどluabindのあるなしの問題
stackなんか考えるのだるいじゃん
83デフォルトの名無しさん:2006/12/14(木) 09:06:07
squirrelならscriptで使うクラス等の型はscriptで書いてそれを最初にdofileさせるだけだよ
データの送受はインスタンスや配列の中身を直接アクセスするだけで大抵すんじゃうし
native closureの初期下時の組み込みとnative closure内での引数取得と
script側のclosureをcallするとき引数を積むくらいだよstack使うのなんて

実際必要ないからbinderが発達しないんだと思う
84デフォルトの名無しさん:2006/12/16(土) 10:08:48
squirrelをざっと眺めてみたけど、Cと文法が近かったりビット演算が
標準だったり"++"と"+="があったり、いいかも。
ただ、配列とテーブルが違ったり、ジェネレーターとコルーチンが
違ったり、Luaに比べてやや複雑か。気になったのは、
・Luaだとtbl.abcとtbl["abc"]は同じ意味だけどsquirrelでも
 同じ方法はある?
・classとtableの関係は?
・参照カウンタ+GCの意味は循環参照検出にGCを使うという意味?
 パフォーマンスにはどんな影響が?
あたりか。
85デフォルトの名無しさん:2006/12/16(土) 14:23:14
>・Luaだとtbl.abcとtbl["abc"]は同じ意味だけどsquirrelでも
できるよー
>・classとtableの関係は?
ハッシュテーブルの基盤を使ってclassが作られてるようなかんじ?
>・参照カウンタ+GCの意味は循環参照検出にGCを使うという意味?
そうみたい。
でもまともに書いてれば循環参照なんてありえんし
コンパイルオプションで参照カウンタオンリーにしてしまえ
86デフォルトの名無しさん:2006/12/17(日) 14:35:45
squirrelのgeneratorはjump使ったトリック、threadはvmのstate切り替え
luaのcoroutineはどうなってるの?
87デフォルトの名無しさん:2006/12/18(月) 00:25:35
>>86
state切り替え

coroutine.create()から呼ばれるluaE_newthread()見れば、新しいlua_State作ってるのがわかる
88デフォルトの名無しさん:2007/01/01(月) 20:05:52
squirrelはC++だから流行らないとみた。
89デフォルトの名無しさん:2007/01/02(火) 02:35:20
今のところ他人のコードを見たくない言語ナンバーワンだ・・・
90デフォルトの名無しさん:2007/01/02(火) 08:20:31
Cは記号に頼りすぎ。
91デフォルトの名無しさん:2007/01/05(金) 04:39:10
>89
俺はbrainf*ckだな
92デフォルトの名無しさん:2007/01/05(金) 15:18:31
>>91
まず見ることがないじゃないかw
93デフォルトの名無しさん:2007/01/09(火) 00:18:29
なあ、すごく基本的なこと聞いていい?
最近Luaを知って調べ始めたんだが、自作プログラムの外部スクリプトとして
Luaを組み込む方法が全然見つからないんだが、どこへ行けば詳しく書いてるだろうか?
94デフォルトの名無しさん:2007/01/09(火) 00:36:49
>>93
ソースに付属しているインタープリタみれば一発じゃん。
95デフォルトの名無しさん:2007/01/09(火) 00:56:16
>>94
すまん、ソースダウンロードしてみたがさっぱりわからなかった。
Boostとかだと、〜をinlcudeしろ、〜.libのあるところにパスを通せ、といった記述があるのだが、
そういうのが全然見当たらないんだが・・・
96デフォルトの名無しさん:2007/01/09(火) 01:03:26
「lua embed」でググレ
97デフォルトの名無しさん:2007/01/09(火) 01:17:19
>>96
d!
やっと解説してるところが見つかった。
98デフォルトの名無しさん:2007/01/09(火) 19:59:01
>>97
で、どこにあったの?
99デフォルトの名無しさん:2007/01/10(水) 00:14:33
>>98
http://www.codeproject.com/cpp/luaincpp.asp
ただ、ビルドはできたが読み込む際のluaopen_ioで落ちる。
ちょっと作業する時間なかったので、原因はまだ調べてない。
100デフォルトの名無しさん:2007/01/10(水) 20:07:13
The Pawn language
http://www.compuphase.com/pawn/pawn.htm

だれも使ってなさそうな、組み込み言語
101デフォルトの名無しさん:2007/01/11(木) 22:24:14
ゲーム用のスクリプトを探していて、最近Luaを触り始めた者です。
質問なんですが、C++側でlua_Stateをいくつか作ったとき、そのlua_State間で
C++の関数を通じてテーブルの参照渡しをすることはできますか?

どうも値渡しならスタックを再帰でゴリゴリやってできそうな感じですが…。
102デフォルトの名無しさん:2007/01/12(金) 18:30:38
>>101
lua_xmove かレジストリで良いのかな?
103デフォルトの名無しさん:2007/01/12(金) 22:49:52
>>102
lua_xmoveもレジストリも同じglobal stateのスレッド同士じゃないとだめ。
104101:2007/01/13(土) 17:04:49
ご回答どうもです。
もう少し方法を考えてみようと思います。
ありがとうございました。
105デフォルトの名無しさん:2007/01/24(水) 14:39:15
ROのほむのAIがLuaで記述できるので触っただけです。
別にLuaが好きなわけじゃないんだからね!
106デフォルトの名無しさん:2007/01/26(金) 13:07:45
帰値がdoubleなのはヘッダいじるとして
cdeclなのが気に食わないのはどうしたらいいものか...
107デフォルトの名無しさん:2007/02/08(木) 05:10:19
部分文字列ってどうやって取得するの?今は
string.char(string.byte(str, x, y))
としてるんだけど、これであってるのかなあ。
Lua 2日目の初心者です。
108デフォルトの名無しさん:2007/02/09(金) 06:24:11
なぜstring.subを使わない
109デフォルトの名無しさん:2007/02/09(金) 16:26:00
最近ゲーム内スクリプトに使われることが多いのかな?
110デフォルトの名無しさん:2007/02/09(金) 17:56:11
>109
昔からいっぱい使われてるじゃないか。
111デフォルトの名無しさん:2007/02/09(金) 17:56:42
つっても2年くらいだけどさ
112デフォルトの名無しさん:2007/02/10(土) 04:55:56
>>108
string.subはstring.gsubとおなじで文字列置換だと思ってた。
正直すまんかった。
113デフォルトの名無しさん:2007/02/10(土) 13:23:01
homeworldはこれ使ってるね
114デフォルトの名無しさん:2007/02/10(土) 21:12:44
>>113
FarCryもつかってたな
115デフォルトの名無しさん:2007/02/11(日) 06:31:15
Homeworldで検索したら凄いなこれ・・・
日本人よ、アニメ絵ゲームで萌えてる場合じゃないぞ!
116デフォルトの名無しさん:2007/02/11(日) 14:37:36
EVE onlineもすごいぞ
今検索したら日本語版も出そうだな。
http://www.4gamer.net/news.php?url=/DataContents/game/0412.html

stackless pythonをサーバー側・クライアント側ともに使ってるらしい。
117デフォルトの名無しさん:2007/02/16(金) 22:15:17
NullLogic Embedded Scripting Language
http://sourceforge.net/projects/nesla/
118デフォルトの名無しさん:2007/02/17(土) 00:54:05
getfenvってlocal変数は取得できないのって不便だな。
function f1(e)
 setfenv(1,e) ;print(a)
end
function f2(f)
 local a=123 ;f(getfenv(1))
end
f2(f1)

で123が表示されてほしいんだけど。
debug.getlocalとか使えばなんとかなるんだろうけど。
getlocalとgetupvalueだけ何でdebug扱いなんだろう。
速度?
119デフォルトの名無しさん:2007/02/17(土) 12:23:25
あげとこう
120118:2007/02/21(水) 21:35:09
ぅぅ、誰もいないのか? or どうでもいい話題?

これが出来ないとf1への引数指定をするしかないよね。
f2のローカル変数が増えて且つf1でそれを使う場合
f1の引数宣言をどんどん追加する羽目になるんだよなー。
Cのマクロ展開的に気楽に処理をまとめようとする時
>>118見たいに出来ると便利なんだけど。

-------
話変わるけど、luabind使って
a=luabind_class_a() --luabindで定義したクラス生成
b=luabind_class_b() --luabindで定義したクラス生成
a.p=b ; b.p=a
a=nil ; b=nil
collectgarbage("collect")
ってやっても回収されないような気がする。
(pはluabindでdef_readwrite指定してない)
循環さえしてなければ回収されるっぽい。
そもそもdef_readwrite指定してpに代入すること
自体がまずいのかな?

luabind使ってる人、意見ヨロ。
121118:2007/02/21(水) 21:38:11
修正
そもそもdef_readwrite指定してpに代入すること
=> そもそもdef_readwrite指定してないpに代入すること
122118:2007/02/21(水) 21:43:47
更に追記
118は最初f1をf2のローカル関数にしてたけど他でも参照しようとして
外部に出した時の話です。
123デフォルトの名無しさん:2007/02/21(水) 22:08:28
luaさわったことないが、luaでは環境=テーブルなんだし
print(e.a)じゃだめなの?もしくはgetfenv(f2)ではどうなる?
getfenv(1)というのがわからんな。ソース読んだ方が早い
124118:2007/02/21(水) 22:13:40
>>123
print(e.a)でも駄目。
getfenv(f2)もgetfenv(1)もf2内では
同じ意味(のはず)です。
125118:2007/02/21(水) 22:20:39
function f1(e)
 setfenv(1,e) ;print(a)
end
function f2(f)
 setfenv(1,setmetatable({},{__index=_G}))
 a=123 ;f(getfenv(1))
end
f2(f1)

これなら動くんだけどねぇ。
126デフォルトの名無しさん:2007/02/21(水) 23:20:32
>>118
すまん。見てたが良くわからないから
偉い人が降臨するのを待った方がいいと思った。

でもローカル変数はenvironmentが持ってるわけじゃないし
(Function Prototypeが持ってるぽい)
他の関数はスコープの外だから無理だと思うよ。
table:functionの形式にしてselfに持たせるのはどう?
127118:2007/02/22(木) 00:27:58
>>126
いえいえ半分愚痴なんで。
たとえば>>118を以下の様に書き換えると
a=456
function f1(e)
 setfenv(1,e) ;print(a) -- 123が表示
end

function f2(f)
 --ここからシンタックスシュガー
 local org_env=getfenv(1)
 local local_env={}
 setfenv(1,setmetatable(local_env,{__index=org_env}))
 --ここまでシンタックスシュガー

 -- aはローカル
 a=124
 f(local_env)

 -- print($a) グローバルなaを表示 =>
 print(org_env["a"]) -- 456が表示
end
f2(f1)
print(a) -- 456が表示

関数先頭でローカル環境設定して
むしろlocalが指定されていないときをlocal変数
と解釈し、Rubyみたく$a見たいに記述された時を
グローバル変数と解釈するほうが安全なようなきがする。
関数内でlocal宣言し忘れてうっかりグローバル汚す
心配もないし。
128118:2007/02/22(木) 02:37:14
なんか一人で書き込んでるな (orz
luabindのほうが大問題に思えてきた

class 'abc'
function abc:__init(name) self.name=name ; print("initialize:"..self.name) end
function abc:__finalize() print("finalize:"..self.name) end
a=abc("1")
b=abc("2")
a.p=b;b.p=a --循環
a=nil;b=nil
collectgarbage("collect")

これも__finalizeが呼ばれない模様
上記コードのaもbもuserdataで多分GCがuserdata内部で
持ってる参照を追ってないためリークしてるのではと
予想してみたけど、どうでしょ。
129デフォルトの名無しさん:2007/02/22(木) 12:27:46
luabindはboostまわりで環境(バージョン)依存するし、tolua++使ってるわ。

>>118で何を実現したかったのか見えなかったんだけど、
setfenvとかはあくまでグローバルテーブルが取れるだけだし、
localとupvalueが取れないのは仕様上しょうがない・・・。
debugライブラリ使ってもいいけど、安全上の問題が・・・とかマニュアルに書いてある。

んで、今luaのソースちょっと見てみたら、
ローカル変数は数値インデックスで管理されてて、テーブルになってない。
バイトコード上ではほぼ名前は省かれてて、「このインデックスのローカルにこのインデックスのローカルを代入」みたいな
処理になってると思われる。
グローバル変数をlocalに代入してから処理したほうが高速、といわれるのはこういう理由なのね。

グローバル汚す可能性についてはグローバルのメタテーブルの__newindexをいじくって
制限をつければいいと思う。
130118:2007/02/22(木) 19:38:37
>>129
tolua++ってコードジェネレーター系ですよね。
tolua++て>>128みたいなことって出来ます?例えば
a=ABC:new()
b=ABC:new()
a.p=b;b.p=a --aとbで循環参照させる。
a=nil;b=nil
collectgarbage("collect")
出来るとしたら、これでC++側のABCの実体のデストラクタ
って呼ばれます?

>グローバル汚す可能性についてはグローバルのメタテーブルの__newindexをいじくって
誰かがそんなことやってましたね。
131デフォルトの名無しさん:2007/02/23(金) 03:51:29
>>130
newしたものを普通のテーブルと同じように扱ってるところに問題がない?
userdataの可能性が高いし、そのままメンバー追加してどうなるかはluabindの実装によるかも。

tolua++では、new()で生成すると手動でdeleteが必要。
new_local()または クラス名() で生成すればガベコレに任せる。

local a=TestClass()
local b=TestClass()
local ax = { p = a }
local bx = { p = b }
a=nil;b=nil
ax=nil;bx=nil
collectgarbage(0)

これならちゃんと回収されてる。(Lua5.0の場合)
132118:2007/02/24(土) 00:04:45
>>130
てゆうか、それ循環してないし。
例え循環させても、テーブルは循環してても当然回収されるので
>>130みたくラッピングすればluabindでも当然回収される。

>>userdataの可能性が高いし、そのままメンバー追加してどうなるかはluabindの実装によるかも。
luabind的にはuserdataだけど一応メタテーブル設定して大丈夫になっています。

>>128にも書いたけど、おそらくuserdataからそれに関連づけされた
luaオブジェクトへの参照をGCが追跡できて無いのでリークしてると思う。
5.0ではuserdataに環境は設定できないけど5.1では出来るようになって
いる。5.1でそうした理由は多分”userdata->その環境table”のパス
をGCでおえるようにして循環参照を検出して回収可能にする為だと思います。
(ぐぐったらそれっぽい議論がされてる。)
おそらくluabindが5.1に対応しきれてないのではと予想して対策を検討中。
133118:2007/02/24(土) 00:05:50
まちがえた
>>130では無く>>131です(自分レスしてどうするw)
134デフォルトの名無しさん:2007/02/24(土) 04:44:20
>>132
あ・・・ほんとだぜんぜん循環してないorz

あとLua5.0でもフルユーザーデータにはメタテーブルもてたけどね。
lightuserdataの扱いが変わっただけかと。

問題はメタテーブルの__newindexとかで実際何をやってるかということだけど・・・
135デフォルトの名無しさん:2007/03/10(土) 15:00:02
hoshu
136デフォルトの名無しさん:2007/03/18(日) 02:28:50
Squirrel + SqPlus使ってる人とかっているんかな?

Squirrel側から呼ばせるC++側の関数で
戻り値としてあるクラスのインスタンスをPushするにはどうすればいいんだろう?

137デフォルトの名無しさん:2007/03/29(木) 21:09:52
保守
138デフォルトの名無しさん:2007/04/06(金) 23:54:07
Lua 5.1.2 released.
ttp://www.lua.org/news.html
139デフォルトの名無しさん:2007/04/09(月) 14:51:00
Squirrelのプログラムサイズがでかい…
squirrel.libだけで741KBってどうなんですか?
スクリプトエンジンとか組み込むの初めてなので標準的な尺度がいまいちわかりません。
コンパイルかけたファイルしか使わないと考えればいろいろと削れる部分はあるんでしょうけど、
そういう使い方するのが普通なんですかね?
Luaってどのくらいのサイズなんでしょうか?
140デフォルトの名無しさん:2007/04/09(月) 20:17:31
>>139
自分でexe作成して確認してみな。
そっちのが手っ取り早いぞ。
141デフォルトの名無しさん:2007/04/10(火) 09:23:05
>>139
それでかすぎな気がする
デバッグ情報はってない?
あとstdlibとかなしでそのサイズ?
142139:2007/04/10(火) 18:40:41
squirrel.libのサイズが741KBです。
プログラムサイズが小さくなるような最適化設定にしてビルドしたら664KBでした。
両方ともreleaseです。

>>139
一応、プロパティの『デバッグ情報の形式』というところは無効になっています。
143139:2007/04/10(火) 18:42:17
訂正
>>139じゃなくて>>141でした。
144デフォルトの名無しさん:2007/04/10(火) 19:05:16
報告乙
145デフォルトの名無しさん:2007/04/10(火) 19:28:56
にしてもでかすぎる気がする。
Linux/gcc-4.1.2だとストリップ前が403926バイト、後が295940バイト
Linux/gcc-3.3.6だとストリップ前が390954バイト、後が281116バイト

…Luaと比べると非常に大きいな。
146デフォルトの名無しさん:2007/04/10(火) 21:07:09
いや、Luaがすんごい小さいってのもあると思う。
147デフォルトの名無しさん:2007/04/10(火) 21:53:40
CとC++の差が大きいよ。サイズはでかくなるしコンパイル遅いしライブラリ
配布ではバイナリ互換性が怪しくなってない?
GCCのバージョンを揃えないとリンクに失敗するとか(←これ本当?)

PerlもRubyもPythonもPHPもLuaもオールCで書かれているのはその辺の事情
と思う。
FirefoxやOpenOfficeはC++で別に問題ないが、オプソのスクリプトエンジンの
ジャンルはC++は駄目でCが適切らしい.
148139:2007/04/10(火) 22:12:21
いや、
ttp://www.wanderer.jp/diary/200702.html
ここのサイトの人がコンパイルかけたら270KBくらいだった言ってたり…
VS2005でビルドしてたんですが、gccでメイクしたら450KBでした。
うーん、まだ何かあるのかな?
149デフォルトの名無しさん:2007/04/10(火) 22:25:40
>>147
オープンでも C++ の実装も結構あるよ。
JDK, AVM2, Poly/ML, StrongTalk とか。

俺も C で書いた方が良いと思うけどね。
150デフォルトの名無しさん:2007/04/10(火) 22:44:39
>>149
JDKがC++と判明して、オプソ界では扱いづらいな...と思われてたりして。
151デフォルトの名無しさん:2007/04/10(火) 22:48:23
>>150
昔からソースは公開されていたし、nm すればソース見ないでも C++ だって
分かる人には分かっていたから大丈夫だよ。
152デフォルトの名無しさん:2007/04/10(火) 22:52:18
>>151
あー、そうなんだ。
153デフォルトの名無しさん:2007/04/11(水) 06:46:14
Squirrelって糞だね
154デフォルトの名無しさん:2007/04/11(水) 07:38:08
>>148
VS2005で、SquirrelをDLL化して
Releaseビルド220Kだよ
155139:2007/04/11(水) 13:13:13
>>154
それって『構成の種類』をdllに設定してビルドするってことですか?
たしかにsquirrel.dllが170KBくらいで軽くなっているんですが、
sqstdlib.dllがエラーで作成できない…。このリンクエラーどうしました?
156139:2007/04/11(水) 15:34:58
>>154
libのサイズってコンパイルさせるために必要なデータが入ってるから
dllより重くなるみたいですね。知りませんでした。
実行ファイルのサイズに影響する分のサイズは二つのlibでだいたい270KBくらいなんだと思います。
ありがとうございました。
157デフォルトの名無しさん:2007/04/11(水) 16:46:14
>>147
Rubyは作者が、オブジェクト指向の言語をオブジェクト指向の言語で書きにくいと言ってる。

>>153
どの辺が?
サイズ大きいのは別に害じゃないと思うけど
158デフォルトの名無しさん:2007/04/22(日) 00:44:07
Xtal 復活記念あげ
159デフォルトの名無しさん:2007/04/28(土) 20:45:47
何かネタないの?
160デフォルトの名無しさん:2007/05/08(火) 17:11:31
保守
161デフォルトの名無しさん:2007/05/09(水) 20:26:56
Squirrel - Lua/組み込み系言語 Wiki*
http://wikiwiki.jp/lua/?Squirrel

Squirrelの参考リンク参考になりました。
サンクス。
162デフォルトの名無しさん:2007/05/13(日) 11:16:32
初歩的なことかもしれないけど
Squirrelで
sq_open使うと

ハンドルされていない例外 : System.TypeLoadException: アセンブリ 'squirreltest, V
ersion=0.0.0.0, Culture=neutral, PublicKeyToken=null' から型 'SQVM' を読み込めま
せん。
at main()
みたいなメッセージでる。調べたけどわからん
助けて
163デフォルトの名無しさん:2007/05/13(日) 11:33:09
すまん自己解決した
なんでこうなるのかよくわからんけど
164デフォルトの名無しさん:2007/05/13(日) 11:41:18
>>163
自己解決したら、解決法をかけとあれほど・・・
165デフォルトの名無しさん:2007/05/13(日) 11:52:47
ttp://support.microsoft.com/kb/871182/jaにのってる

1. MyProject.cpp ファイルに次のコードを含みます。typedef struct _t_Struct *myStruct;

2. 手順 1 で探したコードをの後、次のコードを追加します。 struct _t_Struct
{
};

を書いて
t_Structの部分をSQVMにしたら動いた
プログラム初心者なんで意味がよくわからないし本当に治ってるのかわからないけど
166デフォルトの名無しさん:2007/05/16(水) 15:52:01
squirrel使う人増えれば嬉しいな
今ゲームに組み込んでるのでそこで得た知識をいずれ記事にしてまとめるかも
コードのどこを削るかとか、Windows以外で使うときにメモリ確保部分をどう書き換えるかとか
167デフォルトの名無しさん:2007/05/16(水) 17:29:10
>>166
マジで期待したいです。
168デフォルトの名無しさん:2007/05/16(水) 23:03:00
新言語 Xtalを作る日記
ttp://d.hatena.ne.jp/xtalco/
169デフォルトの名無しさん:2007/05/18(金) 00:35:54
リンク張り逃げだけじゃなく、なにかしらの解説してくれや。
170デフォルトの名無しさん:2007/05/18(金) 20:11:56
>>169
ざっと目を通しただけなので細かいところはわからないけど、
C++への組み込みに使用するとき、スタックを意識せずによいみたい。

残念なのは、ソースがVC依存ぽいところ。
171デフォルトの名無しさん:2007/05/23(水) 03:05:54
>>170
むしろ、レス見てると、gcc依存っぽいが。
172デフォルトの名無しさん:2007/05/23(水) 17:33:52
>>168
xtal-language - Google Code
http://code.google.com/p/xtal-language/

こっちを出さないと
173デフォルトの名無しさん:2007/05/23(水) 20:38:36
Cみたいに文字列の先頭から順にアクセスするとかできないんですか?
174デフォルトの名無しさん:2007/05/23(水) 22:20:10
>>173
おまー、mixiのluaコミュでも同じ質問してるだろ
175デフォルトの名無しさん:2007/05/23(水) 22:38:27
別に効率が悪いだけでstring.subでできるでしょ。
176デフォルトの名無しさん:2007/05/23(水) 23:36:38
>>168,172
なんか凄いところで紹介されてるね

■404 Blog Not Found
君は新言語xtalを知っているか?
ttp://blog.livedoor.jp/dankogai/archives/50836939.html
177デフォルトの名無しさん:2007/05/23(水) 23:59:34
>175
ver5.1使ってるんですけど日本語化パッチが5.02までしかないみたいなんで
sjisに対応できないんですよ。まあ出るのを待ちますか。
178デフォルトの名無しさん:2007/05/24(木) 00:01:39
>>177
自分で改造するんだ!
179デフォルトの名無しさん:2007/05/24(木) 07:36:57
UTF8でいいじゃない
180デフォルトの名無しさん:2007/05/24(木) 14:31:10
>>177
これはどう?

Lua@空想具現化プログラミング
http://hammm.dw.land.to/lua/
181デフォルトの名無しさん:2007/05/26(土) 21:53:29
誰かlua_qt使ってる人いますか?
182デフォルトの名無しさん:2007/05/26(土) 22:25:11
はい
183デフォルトの名無しさん:2007/05/30(水) 16:12:03
質問です。LuaからOpenGLって使えます?
C++ネイティブからOpenGL使っているところを、一部分のOpenGL関数だけ
Luaから呼びたいんですけど。
184デフォルトの名無しさん:2007/05/30(水) 17:36:39
そういうやつが、どっかにあった気がす
WikiLuaだっけ
185デフォルトの名無しさん:2007/05/30(水) 18:38:34
というか逆に使えないと思う理由は何?
186デフォルトの名無しさん:2007/05/30(水) 19:06:52
俺が昔使ってたやつはまだ大まかな関数しかなかったから、
自分で書いて命令増やしたりしてたな。
HDDと共に吹っ飛んでもう手元にないが。
187デフォルトの名無しさん:2007/06/02(土) 16:37:36
>>147
GCCのABIがかわったのは、C・C++関係ないだろ。
188デフォルトの名無しさん:2007/06/02(土) 16:39:26
>>166

は、どうした?
189デフォルトの名無しさん:2007/06/06(水) 20:10:29
あげる
190デフォルトの名無しさん:2007/06/07(木) 07:23:06
WikiXtalとかないの
191デフォルトの名無しさん:2007/06/07(木) 20:10:15
SquirrelをDLL化して使っている人いませんか?

squirrel.dllを作ろうとするのですが、失敗します・・・
うまくできた人いない?
192デフォルトの名無しさん:2007/06/07(木) 20:21:05
VisualStudio 2005 の、squirrelプロパティで、構成の定義で、
「ダイナミック ライブラリ (.dll)」を選べばいいんですよね?

あれ?あ、できました。
何でできなかったんだろ・・・。

ところで、
sqstdlib は、DLL化できないのですが、これってもしかして、付属のライブラリが使えないことを意味するのでしょうか?
193191:2007/06/07(木) 20:51:45
sqstdlib.dll ビルドできました。

一旦、squirrel プロジェクトで、lib\ に Squirrel.libを吐いておいて、
sqstdlib プロジェクトで、プロパティ→構成プロパティ→リンカ→→入力 で、
..\lib\squirrel.lib をパスに加えたら、コンパイル通りました。

これでいいのかな?

これで上手くいっているのか、わからないのですが、
他言語(Delphi)から、使ってみようと思います。

ああ、ヘッダーかかなきゃ・・・
194191:2007/06/07(木) 20:57:48
squirrel.dll 200K
sq.exe    348K
sqstdlib.dll 348K

なんかサイズが、マズイ気がします。
もしかして、squirrel.dllの中身全部、sqstdlib.dllにも入っちゃってるんでしょうか?
(..\lib\squirrel.libつっこんだんだから当り前か・・・)

別プロジェクト作って、一つのDLLにまとめた方が手っとり早いのですかね?
195デフォルトの名無しさん:2007/06/07(木) 22:39:14
半年ROMってろ
196デフォルトの名無しさん:2007/06/07(木) 23:43:22
スタティックリンクでいいじゃん
197デフォルトの名無しさん:2007/06/07(木) 23:51:10
>>195
ムカッ!!

>>196
C++じゃないから、できないもん・・・
198デフォルトの名無しさん:2007/06/07(木) 23:53:13
>>196
え、あ、もしかして、zlibみたいに、.oでリンクできるかってことか?
できるんかいな・・・

Delphiと、結合となると、BCCもってきていコンパイルか('A`)
どっちにせよだな・・・
199デフォルトの名無しさん:2007/06/08(金) 07:14:40
自分で調べて学習する気がないなら、いくら教えても無駄だ
200デフォルトの名無しさん:2007/06/08(金) 07:50:47
191はがんばってるとおもうけど
201デフォルトの名無しさん:2007/06/08(金) 08:52:20
>>199
ひとつも教えてやってもいないじゃないかw
202191:2007/06/08(金) 17:30:58
squirrel と sqstdlib 合わせて、まとめた squirrel.dll 作れました。
普段、VS.net使わないから、いやに手こずったぜ・・・

作り方は、後でかくぜ
203191:2007/06/08(金) 17:48:50
以下、まとめた squirrel.dll の作り方。
VS.net 2005 proでコンパイルを確認。

squirrel_2.1.1_stable が解凍されているとして、

・squirrel_dll ディレクトリを作る
・squirrel\squirrel.dsp を squirrel_dll ディレクトリにコピーする
・ファイル→追加→既存のプロジェクト で、 squirrel_dll を追加
・プロジェクト名が、squirrel になっているので、squirrel_dll に変更
・squirrel_dll の関連づけられたファイルを一旦全部削除
・プロジェクト → 新しいフィルタ で、フィルタを作って、
 ソリューションエクスプローラーで、フィルタ名を squirrel に変更
・ソリューションエクスプローラーで、フィルタ squirrel を選択して、
 右クリック→追加→既存の項目 で、..\squirrel ディレクトリ の .h と .cpp を全部追加
・同様に、プロジェクト → 新しいフィルタ で、フィルタを作って、
 ソリューションエクスプローラーで、フィルタ名を sqstdlib に変更
・ソリューションエクスプローラーで、フィルタ sqstdlib を選択して、
 右クリック→追加→既存の項目 で、..\sqstdlib ディレクトリ の .h と .cpp を全部追加
・プロジェクト→プロパティで、
 ・構成プロパティ→全般→構成の種類 を、「ダイナミック ライブラリ (.dll)」に設定
 ・構成プロパティ→全般→出力ディレクトリを、「..\bin」に設定
 ・構成プロパティ→リンカ→全般→出力ファイルを、「$(OutDir)\squirrel.dll」に設定
・あとは、ビルド→squirrel_dll のビルドで、
 bin\ に、348KBの squirrel.dll ができていたら成功ー
 
面倒なら、フィルタは作らんでもいいけど・・・
204191:2007/06/08(金) 17:49:38
ようは、squirrel と sqstdlib のファイルまとめて、DLL出力にしただけです。
たぶん、普段 VC使っている人なら見なくてもできる。
205デフォルトの名無しさん:2007/06/08(金) 17:55:47
>>172
これ面白そうだね。でもまだバージョンが1.0未満か
206191:2007/06/08(金) 18:22:03
一部訂正

> ・squirrel_dll ディレクトリを作る
> ・squirrel\squirrel.dsp を squirrel_dll ディレクトリにコピーする

・squirrel_dll ディレクトリを作る
・squirrel\squirrel.dsp を squirrel_dll ディレクトリにコピーする
・squirrel\squirrel_dll.dsp に名前を変えておく
・squirrel\squirrel_dll.dsp を VS.netで開く(新しいプロジェクトに変換する)
207191:2007/06/08(金) 18:22:50
間違えた orz

> ・squirrel_dll ディレクトリを作る
> ・squirrel\squirrel.dsp を squirrel_dll ディレクトリにコピーする

・squirrel_dll ディレクトリを作る
・squirrel\squirrel.dsp を squirrel_dll ディレクトリにコピーする
・squirrel_dll\squirrel_dll.dsp に名前を変えておく
・squirrel_dll\squirrel_dll.dsp を VS.netで開く(新しいプロジェクトに変換する)
208デフォルトの名無しさん:2007/06/08(金) 20:26:11
squirrel の 日本語対応できている人はいませんか?
環境は、Windowsです。

ためしに、sq.exeを対応させてみようとしているのですが、微妙な状況です。

素(そのままコンパイルした)のsq.exe に、
---- multi_byte.nut ------
// 表が怖い
print("噂のソフト\n")
-----------------------
を食わせてみた場合

・SJISは、エラー
 sjis.nut line = (2) column = (10) : error unrecognised escaper char
 Error [unrecognised escaper char]
・UTF-8N は問題なく通る?
 出力は、UTF8だが、ターミナルの文字コードをPoderosaで、UTF-8にすると問題なく見られる。
・UTF-16 LE-BOM付き は問題なく通る?
 出力が、UTF-16になっているがUTF-16のターミナルを持たないので確認できない。

となったのですが、
これは、素で、UNICODE対応していると見てよいのでしょうか?

SQUNICODEしなくてよいのかな?
209デフォルトの名無しさん:2007/06/08(金) 20:28:54
Squirrel 2.1 リファレンスマニュアル
http://muffin.cias.osakafu-u.ac.jp/~matumoto/cgi-bin/xt.cgi?prog/squirrel_lang

> Unicode
>
> デフォルトではSquirrelの文字列はプレーン8ビットASCII文字となる。
> しかし、VMにシンボル'_UNICODE'がdefineされているなら、
> コンパイラとAPIで文字が16ビットとして扱われる。

210デフォルトの名無しさん:2007/06/08(金) 20:44:06
>>209
_UNICDOEをプリプロセッサの定義に設定して、コンパイルしたのですが、
今度は、

>>208のファイルで、
・sjis
・UTF-8N
・UTF-16 LE-BOM
でどれも、
 Error [?????????????8・?8?8?8?

と出てしまい、実行できません。

困りました・・・。
211デフォルトの名無しさん:2007/06/08(金) 20:47:25
>>210
ちなみに、_UNICODEを定義すると

// hello
print("hello")

とだけ書いたファイルでも
 Error [?????????????8・?8?8?8?
といわれてしまいます。
212デフォルトの名無しさん:2007/06/08(金) 21:28:30
SqPlusつかったほうがはやいかもね。
213デフォルトの名無しさん:2007/06/12(火) 16:39:38
Squirrel の_UNICODE で、デバッガでおいかけていたのですが、
バグなのか、sq.exeで、途中でfilenameが変わって、ファイルが読み込めないという、
不可解な挙動をして、読み込みエラーを吐くので、_UNICODE 見合わせる方向です。

ソースをみると、一応、_UNICODEなくても、BOM付きファイルのUTF16 LE, UTF-16 BE、UTF-8が、
ちゃんと考慮されているようなので、(sqstd_loadfile付近)
_UNICODE使わずに、UTF-16でやってみようと思います。

>>212
多言語から利用したいので、たぶん使えないのですよ・・・
参考にするのはできると思いますが・・・
214デフォルトの名無しさん:2007/06/12(火) 18:36:04
>>213
残念ながら、_UNICODEなしで、UTF-16は駄目のようです。
_io_file_lexfeed_UCS2_LE あたりを見ればわかるのですが、
wchar_t を char にキャストしていますので、日本語がつぶれてしまいます。

UTF-8では、そのようなことは起きないようですので、
_UNICODEなしの場合は、UTF-8を使いましょう。

という結論です。

215デフォルトの名無しさん:2007/06/12(火) 18:50:36
>wchar_t を char にキャスト
すげえなこれ。マジかよ
216デフォルトの名無しさん:2007/06/12(火) 19:08:56
>>210-211の _UNICODE の問題ですが、解決できました。

sq.exe で、動作確認をしていたのですが、単に、プロジェクト sq が参照している、
プロジェクト squirrel とプロジェクト sqstdlib の_UNICODE が定義されていないだけでした。
VS.netでは、プロパティのプリプロセッサ設定です。
(つまり、_UNICODEの定義された objと、されていないobjを混ぜていた。そりゃ駄目だわー)

VS.netに、慣れてないせいにしておきます!

>>215
_UNICODE を定義(#define)していない場合の話です。
_UNICODE 定義時は、wchar_t → wchar_t になり、ちゃんと読めます。
217デフォルトの名無しさん:2007/06/12(火) 20:59:10
>>212
> 多言語から利用したいので、たぶん使えないのですよ・・・

kwsk
218デフォルトの名無しさん:2007/06/13(水) 02:56:41
>>217
SqPlusはテンプレートベースの、スタック操作とか減らすためのライブラリというように見えたのですが、
違うのかな?
テンプレートベース=C++べったりなので、そのまま多言語から使うのは難しいという認識です。

いや、よく見ていないのですが・・・
これから見てみます。
219デフォルトの名無しさん:2007/06/13(水) 11:14:11
>>210
遅レスですまんけど、
たんにコンソール出力がUNICODEに対応してないからじゃないのかな
エラー出力をフックして、
コード変更してみたらどうかな
220デフォルトの名無しさん:2007/06/13(水) 17:05:09
221デフォルトの名無しさん:2007/06/13(水) 17:06:56
>>216
squirrelの追記。

プロジェクト sq などの、printを使うプロジェクトの場合、文字化けする(コンソールに?????と出力される)ので、
setlocale( LC_ALL, "" );
を最初の方に入れてロケールの設定をしておくこと。

222デフォルトの名無しさん:2007/06/13(水) 17:22:45
setlocaleって内部で何やってんのかね
SetThreadLocaleとかのAPIを呼び出してるのかな
223デフォルトの名無しさん:2007/06/15(金) 11:15:20
luabind使ってる人に質問。引数にunicode文字列を持つC++の関数をLuaから呼び出した
いときってどうやる?
224デフォルトの名無しさん:2007/06/15(金) 12:11:08
>>188
すみません。ちょっと忙しいのでなかなか取り掛かれません。

自分はLuaを使ったことはないし、スクリプトをいじるのも今回が初めてですし、
プログラマとしても経験不足なのは否めないのであまり期待されても困るのですが、
squirrelを使い始めたばかりの人が参考に出来るくらいの情報を提供する自信はあるので、
そのうち必ずやります。
225デフォルトの名無しさん:2007/06/16(土) 01:37:01
>>203
補足。
APIに、externだけでなくて、 __declspec(dllexport)つけとかないと、
DLLとして外部に関数を解放できない。
俺アフォw

- #define SQUIRREL_API extern
+ #define SQUIRREL_API extern __declspec(dllexport)
226デフォルトの名無しさん:2007/06/17(日) 15:29:22
Luaの質問。
Cで定義した変数をLuaのグローバル変数にして、
Lua側で値を変更するとC側でも変更されてるようにならないかな?
userdataかlightuserdataあたりを使うんだろうけど、、、
227デフォルトの名無しさん:2007/06/18(月) 09:38:11
lightuserdataをdoubleへのポインタだと決めてかかって
無理やりluaの実数書き込んだり読んだりできるようにluaを書き換えるのは
大した手間じゃないと思うぞ
228デフォルトの名無しさん:2007/06/19(火) 16:55:22
>>227
何の話?
229デフォルトの名無しさん:2007/06/20(水) 23:38:23
なんか股間がザーメン臭いんだけど
230デフォルトの名無しさん:2007/06/21(木) 00:10:56
>>229
遺精か。あんまり頻繁にあるようなら病院逝けよ。お大事に。
231デフォルトの名無しさん:2007/06/21(木) 00:30:35
真性マゾルートだと一切触れずにいける様になるらしい
232デフォルトの名無しさん:2007/06/26(火) 19:09:55
月と栗鼠だったのかorz
233デフォルトの名無しさん:2007/06/26(火) 19:15:33
誤爆
234デフォルトの名無しさん:2007/06/26(火) 19:34:06
Lua、LL魂で紹介されるらしいね
235デフォルトの名無しさん:2007/06/28(木) 21:53:59
Luaって何て読むんですか?

ぅあ?
236デフォルトの名無しさん:2007/06/28(木) 21:58:04
>>235
ルア
237デフォルトの名無しさん:2007/06/28(木) 21:58:44
ポルトガル語で月って意味らしいし
英語だとルナだから ルアじゃない?
238デフォルトの名無しさん:2007/06/28(木) 22:06:53
>>232
誤爆じゃねーじゃん
239デフォルトの名無しさん:2007/06/28(木) 22:30:30
「ぅあ」ワラタ
240デフォルトの名無しさん:2007/06/28(木) 22:54:58
すいませんそのまま打ったらぅあなのでなんてよむのか分からなくて
241デフォルトの名無しさん:2007/06/29(金) 00:08:09
「ぅあ」は良いなw
242デフォルトの名無しさん:2007/06/29(金) 14:58:30
萌えるな
243デフォルトの名無しさん:2007/06/29(金) 18:25:03

プログラミング言語ぅあ その4

244デフォルトの名無しさん:2007/06/29(金) 21:14:15
Luaの呼び方は「ぅあ」であることが決定された瞬間だな。
245デフォルトの名無しさん:2007/06/29(金) 21:19:09
瞬間はいいが、次スレなんてどんだけ先だよw
246デフォルトの名無しさん:2007/06/29(金) 21:28:27
>>245
あと2〜3年だな
247デフォルトの名無しさん:2007/06/29(金) 22:27:28
ぅあって、単なる配列も整数のインデックスなのに辞書みたいに毎回ハッシュを
計算するって本当ですか?
あとインデックスが0じゃなくて1から始まるらしいんですけど、何故なんでしょう・・・
この点が無ければ、スクリプト言語で今のところ最有力候補なんですが・・・
248デフォルトの名無しさん:2007/06/29(金) 23:00:05
>247
配列とハッシュ表が区別されない同一のデータ構造なのは本当。
でも、ふつうに配列と使っているときには、配列用のパートにつっこまれてハッシュなんか計算しないよ。
つまり効率が気になるようなら、そこは効率わるくならないようになっている
と考えてよい。

なぜ1から始まるかは知らん。
249デフォルトの名無しさん:2007/06/30(土) 08:13:12
1から始まるぐらいで嫌ならぅぁあ向いてないよ
250デフォルトの名無しさん:2007/06/30(土) 11:21:38
>>247
その辺を改良したのがsquirrelなんじゃね?
squirrelもなんかよみにくね?
251デフォルトの名無しさん:2007/06/30(土) 16:17:40
よみにくね? 

    ?
252デフォルトの名無しさん:2007/06/30(土) 19:16:39
よみにいな

じゃあすくいっれるの読み方も>>235に考えてもらおうぜ
253デフォルトの名無しさん:2007/06/30(土) 22:07:23
>>248-250
どうもありがとうございます。配列の件よく分かりました。

あとSquirrelってのは知りませんでした・・・ちゃんとスレ読んでなくてすみません
Squirrel、いいですね、検討してみます
254デフォルトの名無しさん:2007/07/01(日) 13:26:38
>>227
超遅くてごめんレスありがとう。そんなすごいこと可能なら検討してみる。
でも、ぅあ書き換えるってかなりの手間じゃないかな、、、
255デフォルトの名無しさん:2007/07/01(日) 13:58:45
書き換える、の対象を勘違いしてないか?
256デフォルトの名無しさん:2007/07/02(月) 02:35:07
Squirelの感想の続きが聞きたい
257デフォルトの名無しさん:2007/07/02(月) 08:41:18
>>256
別の人でよければ
GCで時間くわれないからゲームで重宝してます。
258デフォルトの名無しさん:2007/07/02(月) 08:42:02
あとついでに、
squirrel2.1.2 の動きがあるね
259デフォルトの名無しさん:2007/07/02(月) 23:24:14
そんなの屁でもないぜ
260デフォルトの名無しさん:2007/07/02(月) 23:25:18
誤爆
261デフォルトの名無しさん:2007/07/02(月) 23:27:27
warata
262デフォルトの名無しさん:2007/07/07(土) 16:34:44
あげますよ
263デフォルトの名無しさん:2007/07/07(土) 16:44:26
阻止
264デフォルトの名無しさん:2007/07/10(火) 11:37:13
誰か
VC++2k3での使い方
頼む
265264:2007/07/10(火) 12:22:55
一週間ぐらい悩んでたのに、質問書いた途端に事故解決した

プロジェクト作ってサンプルソース加える

本家でdownload binaries (ここで違うサイトへ飛ぶ) download lua-----vc6_lib.zipをダウンロード
プロジェクトのフォルダに解凍したもの突っ込む

includeのフォルダの中身をソリューションエクスプローラーのヘッダーファイルのところに放り込む
lua5.1.libをソリューションエクスプローラーのリソースファイルのところに放り込む

あとはプロジェクトのプロパティで
全般のマネージ拡張をいいえ
リンカの入力 特定ライブラリの無視をlibcmtd

これで実行できた

マネージ拡張の部分変えなくてもコンパイルとリンクは普通に通るから何が原因か訳分からなかった
チラシの裏だったかもしれないがとりあえず
266デフォルトの名無しさん:2007/07/13(金) 20:41:43
ゲーム用スクリプトとしては有名らしいけど
使ってる国内の市販ゲームってほんとうにあるの?
267デフォルトの名無しさん:2007/07/13(金) 20:53:24
知るか
268デフォルトの名無しさん:2007/07/14(土) 01:13:39
>266
国内では知らないが
海外含めればFarCryとかRagnarokOnline(ホムンクルス用)か?
269デフォルトの名無しさん:2007/07/14(土) 12:48:59
1つ質問

組込言語を使う場合、
・全ての処理を記述する
・部分的に処理を記述する(敵の移動ルーチンなど)
どっちが良いのかな?
270デフォルトの名無しさん:2007/07/14(土) 13:01:16
>>269
・分離が必要な部分のみを記述する(敵の移動ルーチンなど)
271デフォルトの名無しさん:2007/07/14(土) 13:29:28
RigidChipsに組み込まれたLUAでFFTを実装しているんだが
なんかうまくいかない

参考にしているCソースのFFTは基本が再帰呼び出しなんだが
ポインタなぞ使えないし
色々やってみたが、ナンカ Arithmeric fireldなんとかって出てエラーになりよる


もう頭が沸騰しそうだぉ
272デフォルトの名無しさん:2007/07/14(土) 14:41:09
質問です。

C側からLua内のテーブルにアクセスする場合
ttp://tgws.fromc.jp/wiki/lua/index.php?%CC%DC%C5%AA%CA%CC
↑を使うと「table.member.value」のような形の値にはアクセスできますが
table[1].value のような配列形のテーブルに入っている値にはアクセスできません。
実現する方法はありますか?
273デフォルトの名無しさん:2007/07/14(土) 16:14:39
>>272
そのURLのどこを参考にしてるのかわからんけど・・・
キーの値としてpushstringしてるところをpushnumberにすればいいんじゃないの?
274デフォルトの名無しさん:2007/07/14(土) 18:57:10
>>269
ケースバイケースじゃね?
全部スクリプトでいいならその方がらくできそうだし
275デフォルトの名無しさん:2007/07/14(土) 19:08:19
LuaとRubyって何か似てますね
276デフォルトの名無しさん:2007/07/14(土) 21:43:31
そうかなあ。
277デフォルトの名無しさん:2007/07/14(土) 22:47:13
endくらいだろ
278デフォルトの名無しさん:2007/07/14(土) 23:54:44
JavaScriptのほうが似てるという噂
279デフォルトの名無しさん:2007/07/15(日) 00:48:46
Squirrelなら、何となくJavaScriptに似てなくもないが、ぅあは・・・
280デフォルトの名無しさん:2007/07/15(日) 00:49:57
Rubyはいろんな言語からのパクリンだから
281デフォルトの名無しさん:2007/07/15(日) 00:59:04
色々な言語のパクリじゃない言語なんて無いですけどね。
Luaもパクリンしまくりですよ。
282デフォルトの名無しさん:2007/07/15(日) 01:08:20
>>279
構文にしか目がいかないヘタレ発見
283デフォルトの名無しさん:2007/07/15(日) 01:12:02
>>281
いや、Rubyのパクリ方は酷い
オリジナリティなんてない
他の言語と比較するなんておこがましい
284デフォルトの名無しさん:2007/07/15(日) 01:16:34
別に酷くても良いんじゃない
上手くアセンブル出来ていて、それが有用ならオリジナリティなんて要らないでしょ

俺はまともにスレッドを扱える様になるまで使う気は無いけど
285デフォルトの名無しさん:2007/07/15(日) 01:21:17
>>283
具体的に何がどう酷いの?
どうせパクリ元の言語なんて知らずに見聞だけで言ってるんでしょ?

プログラミング言語の歴史を少しでも知ってたら、
「パクるなんて酷い」なんてとてもいえないんだがね。
おこがましいのは無知なお前。
286デフォルトの名無しさん:2007/07/15(日) 01:27:03
どちらかと言うと、パクりつつけなしているのが酷いような
287デフォルトの名無しさん:2007/07/15(日) 01:59:36
パクリ=Ruby厨が集まるキーワードです
288デフォルトの名無しさん:2007/07/15(日) 02:11:01
反論できなくなるとレッテルを貼ってごまかします。
289デフォルトの名無しさん:2007/07/15(日) 02:19:04
良く分からんが >>288 的には、誰が誰に反論すべき局面だったんだ?
290デフォルトの名無しさん:2007/07/15(日) 02:22:10
自分だってわかってるからそうやってレスしてんでしょ?
291デフォルトの名無しさん:2007/07/15(日) 02:23:39
パクリパクリ言うなら、C#の方がひどいだろ
Delphiパクった上に、J++までパクッたあげく文法は、C似だし
最近は、関数型言語まで朴楼としている
292デフォルトの名無しさん:2007/07/15(日) 02:28:11
プログラミング言語の世界において、
パクリとかは関係無いし、どーでもいいことだってことを理解しないと前に進めません。

Rubyをパクった言語もいくつも生まれています。
293デフォルトの名無しさん:2007/07/15(日) 02:30:02
>>290
だから自分って誰だよ...
君のレスだけ迷子になってるっぽかったから聞いてあげたのに。
294デフォルトの名無しさん:2007/07/15(日) 02:34:28
>>293
はいはい、自分じゃないと思うならいちいち反応しなくていいよw
バカだなw

お前は2chでそうやっていちいち迷子のレスを案内してやってのかいw
295デフォルトの名無しさん:2007/07/15(日) 02:41:18
以後、ru○yの話題は禁止
296デフォルトの名無しさん:2007/07/15(日) 02:47:15
>>289
すまん。見てたが良くわからないから
偉い人が降臨するのを待った方がいいと思った。

でもローカル変数はenvironmentが持ってるわけじゃないし
(Function Prototypeが持ってるぽい)
他の関数はスコープの外だから無理だと思うよ。
table:functionの形式にしてselfに持たせるのはどう?
297デフォルトの名無しさん:2007/07/15(日) 03:31:15
>>294
>お前は2chでそうやっていちいち迷子のレスを案内してやってのかいw

見ていて可哀想だなと思った時だけだよ。
298デフォルトの名無しさん:2007/07/15(日) 11:58:49
>>297
かわいそうなのはお前なんだけどなw
299デフォルトの名無しさん:2007/07/15(日) 12:44:33
ムjもID出ればいいのにな。
毎行wつくのがうざwww
300デフォルトの名無しさん:2007/07/15(日) 12:50:26
すまん。見てたが良くわからないから
偉い人が降臨するのを待った方がいいと思った。
301デフォルトの名無しさん:2007/07/15(日) 13:02:21
>296,300
どうして >126 がコピペされているんだろう。
126を書いたので気になる。間違ってるならそう言ってくれよう。
302デフォルトの名無しさん:2007/07/15(日) 13:29:46
すまん。見てたが良くわからない
303デフォルトの名無しさん:2007/07/15(日) 15:00:56
>>298
そんな無理に頑張らなくても、もう終わりで良いんじゃない?
304デフォルトの名無しさん:2007/07/15(日) 15:04:58
お前らこんな人口の少ないスレでなにやってんだよ
305デフォルトの名無しさん:2007/07/15(日) 15:18:50
>>303
お前が必死に引き伸ばしてるんだろうが。バカだな・・・。
306デフォルトの名無しさん:2007/07/15(日) 15:22:39
>>305
バカだと思ったらレスしなきゃ良いんじゃね?
w 付けるのも止められたんだしw
307デフォルトの名無しさん:2007/07/15(日) 15:36:48
Ruby>>>>>>>>。。。。Lua
308デフォルトの名無しさん:2007/07/15(日) 16:32:24
久しぶりに二桁未読があって楽しみに開いたらやっぱりか…
ちょっと期待しちゃった俺がばかだった( ´・ω・)
309デフォルトの名無しさん:2007/07/15(日) 16:59:03
>>275-307まで脳内削除
310デフォルトの名無しさん:2007/07/15(日) 17:17:56
RUBYYYYYYYYYYYYYYY!!!!!!!!!!!
311デフォルトの名無しさん:2007/07/15(日) 17:43:06
これからはXtalの時代でしょ
312デフォルトの名無しさん:2007/07/15(日) 17:46:26
もう俺言語はいいよ
バグあったら最悪。大抵デバッグで詰まるし
結局緊急時とかは既成のCとか使っちゃうわけだし?

313デフォルトの名無しさん:2007/07/15(日) 17:54:56
>>306
バカかお前。

お前がまず「もう終わりで良いんじゃない?」と思ったんだから、
レスしなきゃいいだろうがバーカ。
314デフォルトの名無しさん:2007/07/15(日) 18:07:59
バカしか書けんのか、この荒らしは...
虚しいのう...
315デフォルトの名無しさん:2007/07/15(日) 18:11:42
バカなお前のために、俺の語彙力を発揮しろと?

というか、バカなんだから理解できないだろ?
316デフォルトの名無しさん:2007/07/15(日) 18:13:01
>>313
ここはぅあのスレですよ。喧嘩をしたいのなら他所でやって頂けませんか。
317デフォルトの名無しさん:2007/07/15(日) 18:14:21
>>315
あまりにも程度が低過ぎてワラタ。お前面白いからもっと頑張れw
318デフォルトの名無しさん:2007/07/15(日) 18:14:27
もう終わりで良いんじゃない、と言った本人がダラダラと続けてるからムリ
319デフォルトの名無しさん:2007/07/15(日) 18:15:39
>>317
お前もガンバレよ、そのネット難民の生活をなw
320デフォルトの名無しさん:2007/07/15(日) 18:16:57
うわー、レッテル貼られたw
何だっけ? レッテル貼るのは反論出来ない時のごまかしなんだっけかw
321デフォルトの名無しさん:2007/07/15(日) 18:17:44
これが2ch名物、"悔しいからお互いにレスし続ける合戦"ですか。

低脳二人がこの合戦にはまると、まさにエンドレスサマー
322デフォルトの名無しさん:2007/07/15(日) 18:18:53
>>320
えw
お前レッテルの意味わかってるの?w
323デフォルトの名無しさん:2007/07/15(日) 18:21:30
スマソ。はしゃぎ過ぎたわ。あとは誰か適当に相手してあげて。
ちょっと面白かったわ。
324デフォルトの名無しさん:2007/07/15(日) 18:21:54
そろそろ「夏か…」と言い出す夏厨厨も参加して、
事態はますます混迷を深めていきます。
325デフォルトの名無しさん:2007/07/15(日) 18:31:09
もう夏か・・・
326デフォルトの名無しさん:2007/07/15(日) 18:32:03
>>323
まぁよくがんばったよ。

散々やっときながら、"ちょっと面白かったわ"と、
"俺は余裕だった、ちょっとアラシをからかってやっただけ"
という演出をするところがなかなか将来有望。

そんな演出を入れてみても、
傍から見るとどっちもアラシにしか見えないんだけどね。
327デフォルトの名無しさん:2007/07/15(日) 18:33:41
↑傍観者気取りでた〜www
328デフォルトの名無しさん:2007/07/15(日) 18:35:21
スマソはどうした?
329デフォルトの名無しさん:2007/07/15(日) 18:40:45
相手を特定したがる割に、匿名を嫌うわけでもないのが始末に終えない
匿名の全体主義こそすべて
330デフォルトの名無しさん:2007/07/15(日) 19:27:00
>>328
俺は傍観してるよ。>>327 は誰だか知らん。
331デフォルトの名無しさん:2007/07/15(日) 22:17:16
Luby
332デフォルトの名無しさん:2007/07/15(日) 22:24:40
ぅび
333デフォルトの名無しさん:2007/07/16(月) 01:07:47
あぁ、とうとうこのスレにもキチガイがきたか…。はやく別のとこいってくれねーかな。
334デフォルトの名無しさん:2007/07/16(月) 23:52:40
結論 同一人物or魂の双子
335デフォルトの名無しさん:2007/07/17(火) 00:44:33
RubyとLuaが?
336デフォルトの名無しさん:2007/07/17(火) 00:55:29
>>283
rubyのは オ マ ー ジ ュ な
パクリとオマージュは紙一重だけど
rubyのはオマージュだと言える
だいたいパクリで成り立ってる言語なんてあるのか
337デフォルトの名無しさん:2007/07/17(火) 01:23:44
Java
338デフォルトの名無しさん:2007/07/17(火) 01:26:20
ところで、squirrelの記事を書いてくれると言った>>166はどうしたのかね?
339デフォルトの名無しさん:2007/07/17(火) 01:48:10
>>336
パクりで成り立ってない言語なんてあるのか
の間違いじゃないの?
まあ俺が言ってるのはその「オマージュ」なんだろうけど
340デフォルトの名無しさん:2007/07/17(火) 12:04:38
どうでもいいからお前らLuaの大域変数の初期値与える方法教えろよ!
具体的に言うとあるゲーム(説明のために簡単にブロック崩しにしておく)の初期値

ユーザ側でスクリプトを作ることが出来るゲーム(カルネジのような)を作ろうと思ってるんだが
ステージごとに初期位置可変なのでLua側に大域変数として全部与えてLuaから必要な変数だけ使う形にしたい。けどどう実現するべきか分からない
上から出来たら簡単だろうなーと思う順に言うと
1 C側からLuaに初期値を与えることが出来る関数がある
2 ユーザ型とかいうの使って色々やると値を作れる
3 変数読む為だけのCの関数を作る
341デフォルトの名無しさん:2007/07/17(火) 16:44:11
質問なんだけど
 lua_getfield( L, -1, "test" );

 lua_pushstring( L, "test" );
 lua_gettable( L, -2 );
って何が違うの?
342デフォルトの名無しさん:2007/07/17(火) 21:00:19
Squirrelムズイな・・・というか、Lua系というか。

>>166さんをマジで期待したいぜ・・・
343デフォルトの名無しさん:2007/07/18(水) 14:51:43
>>341
どっちも同じ。
テーブルからキーが文字列の値を取り出すことは
頻繁にあるから前者が用意されているのよ。
344デフォルトの名無しさん:2007/07/18(水) 20:24:00
>>342
何が難しい?
345デフォルトの名無しさん:2007/07/18(水) 22:08:00
Ruby好きはLuaが好き、
Java好きはSquirrelが好きって感じだね
346デフォルトの名無しさん:2007/07/18(水) 23:44:03
C++好きはXtalが好きと言われるくらいにXtalが発展してくれるといいんだけどなぁ
347デフォルトの名無しさん:2007/07/19(木) 02:49:10
>>345
Lua好きがRuby好きとは限らない罠
348デフォルトの名無しさん:2007/07/19(木) 04:28:49
>>344
ホスト言語からの大域変数の取得でいきなり、つまづいた
今はできたけど・・・

APIリファレンスは、日本語のものがあって助かるんだけど、
リファレンスの説明だけじゃ、わかんなくて、本家にもAPIの使用例が全然ないので、
これ、何に使うのってことが一杯・・・
何かするにも手探り状態


もっとも肝心なのは、関数呼び出しとか、変数の取得などの効果的なラッピングの方法なんだけど。
まさか、ホスト側でSquirrel APIそのまま使うわけにもいくまい。
C++じゃないんで、SqurrelPlusなどつかえなくて(参考にはしてるが、なかなかにきっかい)

>>345
Ruby好きだけど、Squirrelの方が文法は好きだよ
349デフォルトの名無しさん:2007/07/19(木) 08:08:19
Luaは速いけどRubyは遅いからちょっと違うかな
350デフォルトの名無しさん:2007/07/19(木) 08:18:33
RubyはS。
ぅあはM。

に決まってんだろ
351デフォルトの名無しさん:2007/07/19(木) 22:29:43
luaでFFTを実装しようと思うんだが
言語使用が違うからCやjavaから単純に移植というわけにはいかないので
どなたかC2LUAやらjava2luaのようなトランスレーターを知っていたら
是非教えて貰いたいのだけど
352デフォルトの名無しさん:2007/07/20(金) 02:55:30
普通、トランスレーターはわざわざ遅くなる方向には作らんよ。
少し考えれば判る事だろ。
それとFFTがFINAL FANTASY TACTICSだとかいう
逆上脊髄反射ネタも禁止な。
353デフォルトの名無しさん:2007/07/20(金) 04:03:01
ttp://www.kurims.kyoto-u.ac.jp/~ooura/fftman/ftmn1_2.html
にある再帰版のFFTならluaに移植できるんじゃない?
354デフォルトの名無しさん:2007/07/20(金) 07:13:51
そういう方面はバインディング書くのが妥当かなー
355デフォルトの名無しさん:2007/07/20(金) 07:35:02
foo.f.bindenv(foo)

これ汚ねえなー
デリゲート渡したいだけなのに、何だよbindenvって
356デフォルトの名無しさん:2007/07/20(金) 22:21:27
せっかくなんでFFTルーチン手直ししてみた。
ネタ元はRigidChipsスレみたいなのでこっちに書き込み。
>>http://game11.2ch.net/test/read.cgi/gameama/1182042852/498

実装が間違ってないとして・・・
64点なら1万回繰り返して4秒程度だったので(Core2Duo)
実用も可能そう。

luaソース:http://hammm.dw.land.to/lua/fft.lua
357デフォルトの名無しさん:2007/07/23(月) 02:35:57
Perl好きだけどLuaの方が親近感は沸く
358デフォルトの名無しさん:2007/07/23(月) 02:36:33
ぅあー助けて
359デフォルトの名無しさん:2007/07/24(火) 11:53:01
>>346
Xtalいいよね。
早く1.0にならないかなぁ
360デフォルトの名無しさん:2007/07/24(火) 18:39:57
>>359
1.0になってもバグフィックスぐらいで殆ど機能変わらないと思うぞ。
てか早く1.0になって欲しかったら沢山使ってバグ報告しようぜ。
361デフォルトの名無しさん:2007/07/24(火) 19:12:45
Xtalは仕様が変態的で面白いんだが実装が首傾げたくなるんだよなぁ
"1" == 1はnullが返って1 == "1"はエラーとか。
前者がC++からsend使ってて
後者がXsrcで存在しないString::op_eq_r_Intを呼んでるせいだと思うんだが。
362デフォルトの名無しさん:2007/07/25(水) 07:22:08
PC初心者でも弄り易くというぅあの思想が好きだ。
363デフォルトの名無しさん:2007/07/25(水) 19:14:56
Luaは学習用に使えるサンプルやチュートリアルが少なすぎるな
364デフォルトの名無しさん:2007/07/25(水) 23:15:37
lua-wikiのチュートリアルやらsample-codeやら見たけど
なかなか面白い

Pascalの文法に近いので、Pascalのサンプルやチュートリアルをluaでも動くようにしたらいいのではないだろうか
googleのソースコード検索で探してみたが、あまりヒットしなかった
365デフォルトの名無しさん:2007/07/25(水) 23:46:40
ところでLuaのコルーチンで途中から別の関数に切り替えるのってどうすればいい?
例えばFunc0っていう関数の途中でyieldしてC++側に制御戻した後、
次にresumeするとFunc1という関数の最初から始まるようにする感じ。

単純にC++からの関数呼び出しでやると、yieldのところでエラー出てしまい、その後resumeしても戻らないんだが・・・。
366デフォルトの名無しさん:2007/07/26(木) 01:54:57
やりたいことがいまいち不明だけど yield のあとに return Func1() って書くという意味ではないのかな。
367デフォルトの名無しさん:2007/07/26(木) 02:14:50
lua_tostringで得られたポインタは、解放しなくていいんでしょうか?
368デフォルトの名無しさん:2007/07/26(木) 13:09:04
>>367

チュートリアルの、lua_tolstringのところに

 Because Lua has garbage collection, there is no guarantee that the pointer returned by lua_tolstring will be valid after the corresponding value is removed from the stack.

ってあるから、ガベージコレクタで解放されるものだと思っています。
369デフォルトの名無しさん:2007/07/26(木) 23:57:05
>>366
Luaのスクリプト側で次にresumeして戻る位置を決めるんじゃなくて、C++側から切り替えたい場合どうすればいいのかな、と。
ちょっと記述不足だった。すまん。
370デフォルトの名無しさん:2007/07/27(金) 13:53:53
スクリプトでできることはすべてC側からもできるよ
371チラシの裏:2007/07/27(金) 20:51:33
LuaをC++で使うときは
lua.hの代わりに、lua.hppをインクルードする、っと
372デフォルトの名無しさん:2007/07/28(土) 19:30:45
UNICODEに対応していれば、ぅあ.hでもおk
373デフォルトの名無しさん:2007/08/01(水) 16:40:05
Squirrelに関して質問。

SqPlusのソースを呼んでいるのですが、
SquirrelObjectで使っている、sq_addref というAPIがあり、
リファレンスによると、参照カウンタのインクリメントとあるのですが、
これって、つまり、C++側で作成した SquirrelObject で束縛?するためでしょうか?
sq_addref を sq_release しない限りは、squirrelが勝手に開放しないということで
あってるでしょうか?
374デフォルトの名無しさん:2007/08/01(水) 16:41:13
読みにくくてすまそ。

SqPlusのソースを呼んでいるのですが、
SquirrelObjectで使っている、sq_addref というAPIがあります。
リファレンスによると、参照カウンタのインクリメントとあるのです。

これは、つまり、C++側で作成した SquirrelObject で HSQOBJECT を束縛?するためでしょうか?
sq_addref を sq_release しない限りは、squirrelが勝手に開放しないということで
あってるでしょうか?
375デフォルトの名無しさん:2007/08/01(水) 19:17:53
参照カウンタのインクリメントは参照カウンタのインクリメントだよ
けどその理解で多分間違ってないと思う
376デフォルトの名無しさん:2007/08/01(水) 19:39:20
377デフォルトの名無しさん:2007/08/01(水) 21:08:24
ttp://ja.wikipedia.org/wiki/%E5%8F%82%E7%85%A7%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88

- sq_addrefで参照カウンタが+1
- sq_releaseで参照カウンタが-1 (0となったらsq_resetobjectが呼ばれる)
378デフォルトの名無しさん:2007/08/01(水) 22:04:59
サンクス。

あ、いや、参照カウンタ知らないわけではないすw
HSQOBJECTを保持するときは、こうやって参照カウンタをいじるのがその流儀なのね、思っただけなので。

379デフォルトの名無しさん:2007/08/02(木) 16:53:20
Squirrelの質問です。
SqPlusの SquirrelVM.cpp の SquirrelVM::RunScript を見ています。

sq_gettopでスタック位置を確認しながら、見ていたのですが、
この関数、スタック操作が、間違ってませんか?
sq_callが成功した時点で、二つスタックが残っているので、
sq_popで2つポップしないといけないはず・・・。

バージョンは、ersion 2.1.1 stable
(でもHISTORYみてたら、
-sq_call() doesn't pop the closure (just the params) って書いてあるんだよなあ)

SquirrelObject SquirrelVM::RunScript(const SquirrelObject &o,SquirrelObject *_this)
{
  SquirrelObject ret;
  sq_pushobject(_VM,o._o); //スタックに残る
  if(_this) {
    sq_pushobject(_VM,_this->_o); //引数1
  }
  else {
    sq_pushroottable(_VM); //引数1
  }
  if(SQ_SUCCEEDED(sq_call(_VM,1,SQTrue,SQ_CALL_RAISE_ERROR))) {
// 成功したら、スタックに戻り値が残る
    ret.AttachToStackObject(-1);
    sq_pop(_VM,1); // sq_pop(_VM,2);では?
    return ret;
  }
  sq_pop(_VM,1); // 失敗したら、スタックに
  throw SquirrelError();
  
}
380デフォルトの名無しさん:2007/08/02(木) 16:55:10
  sq_pop(_VM,1); // 失敗したら、スタックに1つだけ残っている
  throw SquirrelError();
  
}

なんで、そう思ったかというと、
testSqPlus2.cppが残っているはずのスタック(戻り値)を全然考慮してないからなんですけど
381デフォルトの名無しさん:2007/08/02(木) 17:03:52
ごめんちょっと勘違い

バージョンとHISTORYは、SqPlusじゃなくて、Squirrelのですね。
SqPlusのバージョンは、stable 25でした。
382デフォルトの名無しさん:2007/08/02(木) 18:30:48
383デフォルトの名無しさん:2007/08/02(木) 18:48:57
>>382
どっちも日本人なのか・・・
384デフォルトの名無しさん:2007/08/02(木) 19:09:04
>>382
同じバグかYO!\(^o^)/

サンクス。
おれの判断は正しかったようだ。

つか、公式フォーラムくらい検索しろ > 俺

コミッターもメンテナーにも日本人居るのなw
385デフォルトの名無しさん:2007/08/03(金) 04:06:58
生のSquirrelでなくSqPlus使うと
コード大きくなたり重くなったりするの?
386デフォルトの名無しさん:2007/08/03(金) 07:27:17
もともと重いからあまり関係ないような
387デフォルトの名無しさん:2007/08/04(土) 21:27:01
LuaLua魂オワタ
388デフォルトの名無しさん:2007/08/04(土) 21:37:39
>>387
参加したのか?
389デフォルトの名無しさん:2007/08/04(土) 22:18:34
ぅあぅあ
390デフォルトの名無しさん:2007/08/04(土) 22:58:17
行った。
・上野氏(みんな読んでるLuaマニュアルの訳者)によるLua紹介。
 「遺伝子関連のプログラムを組む上で最も都合が良かった」
・Luaの速度がXtalとPnutsから比較対象にされてた
・Xtalは頑張って作ってる印象。作者ナイスキャラ
・Squirrelは上野氏が一言触れた程度

その他はプレゼン中にチャットログ(Lingr)が流れる奴とか、嘘だらけのmatzプレゼンとか、いろいろ。
全体的には演者のレベルが結構高かった印象。
体調が最悪じゃなければなかなか良かった。
391デフォルトの名無しさん:2007/08/05(日) 03:55:44
Xtaの彼はテンパっちゃったのか「切迫」を正しくない使い方で
連発してたね。気持ちはわかるがもうちょっとおちつけとw
392デフォルトの名無しさん:2007/08/05(日) 19:33:36
>・Luaの速度がXtalとPnutsから比較対象にされてた
Luaメジャーじゃん?と思った
393デフォルトの名無しさん:2007/08/06(月) 03:09:03
測るだけに
394デフォルトの名無しさん:2007/08/06(月) 08:06:31
>>393
山田君ざぶとん1枚あげて!
395デフォルトの名無しさん:2007/08/06(月) 22:48:18
Lightweight Language Spirit
http://ll.jus.or.jp/2007/

これかー
LuaLuaっていうからわからんだじゃねーか

Luaだけじゃねえw
つか、Luaの話すくねえw
396デフォルトの名無しさん:2007/08/06(月) 23:57:53
Lua 自体の話は少ないけど、色んなところで触れられてた。>>390 参照
397デフォルトの名無しさん:2007/08/07(火) 02:37:50
> 原著第5版
テクスチャへの描画とか、実際に使う際の普遍的なチップスとかって
載ってますのん?

そういうのは、Game Programming Gems買えって事かな?(そろえたら、赤本よりたけええけどよぉおぉ)
398デフォルトの名無しさん:2007/08/07(火) 02:38:25
誤爆 orz
399デフォルトの名無しさん:2007/08/07(火) 04:06:38
Game Programming Gems といえば
6巻でLuaが扱われてるよね。
読んでないけど、どうなんだろう
400デフォルトの名無しさん:2007/08/08(水) 01:12:02
LL魂、まとめ見てたけど、Cleanとか、Javaとか、OCamlはLLじゃねえw
すでに、適用範囲広がってるな。
普通に、L魂でいいんじゃないのか?
401デフォルトの名無しさん:2007/08/08(水) 01:27:34
lightのL?
ぅあのL?
402デフォルトの名無しさん:2007/08/08(水) 01:55:24
LanguageのLのつもりで書いた > L魂
403デフォルトの名無しさん:2007/08/08(水) 03:01:53
>>400
確かだ一回目でHaskellが取り上げられてるはずだが?
すでにどころか最初から適用範囲も何もあったもんじゃなかったんじゃねえの。

404デフォルトの名無しさん:2007/08/08(水) 04:15:12
>>400
うむ、Cleanの説明で「速い!」って言ってるの見て、これはカテゴリ違うよなーとは思った。
言語まわりの新しい動きをおさえつつ、中心軸はlightweightに置くって感じで理解している・・・

Javaに関してはJythonとかJRubyとかの絡みが主かと。
今後スクリプト言語が動くプラットフォームとして、JavaなのかDLRなのか、みたいな。

そういう流れでは、JLuaとかIronLuaはでないのかと。
lua-lのほう見るとつくってる人は居るっぽいな。
405デフォルトの名無しさん:2007/08/08(水) 04:31:46
IronSequirrel超希望
406デフォルトの名無しさん:2007/08/09(木) 00:24:37
Lua魂開催しよう!!
407デフォルトの名無しさん:2007/08/09(木) 14:48:53
参加者1名とかで終わりそう
408デフォルトの名無しさん:2007/08/10(金) 23:53:06
要するにOff会じゃないのか?
409デフォルトの名無しさん:2007/08/11(土) 10:52:37
>>407は来てくれるってことだね!
410デフォルトの名無しさん:2007/08/11(土) 13:11:25
>>407が参加したら主催者と合わせて参加者2名になっちゃうでしょ
411デフォルトの名無しさん:2007/08/11(土) 18:57:01
主催者すら来ないOff、ってのもそれはそれで魅力的だけどな
412デフォルトの名無しさん:2007/08/13(月) 03:00:30
それはもう主催者って呼び方が適当じゃないなw
企画者とか。
413デフォルトの名無しさん:2007/08/19(日) 21:03:14
>166
もう三ヶ月経ってますよ。ちょっと焦らしすぎじゃーないですかね?
414デフォルトの名無しさん:2007/08/19(日) 21:38:34
お前ら他人の作った糞言語使って嬉しいか
おれは我慢ならん
415デフォルトの名無しさん:2007/08/19(日) 22:07:07
C++だってJavaだってC#だって他人が作った言語なんだが、お前は使わないのか?

これらの言語が糞じゃなくてぅあが糞だというのなら、それはお前の主観であって
他人に押し付けるものではないよ
416デフォルトの名無しさん:2007/08/19(日) 22:14:12
糞言語かどうかは俺が決める事であって、
C++やJavaやC#がそうだとは一言も言ってないが
417デフォルトの名無しさん:2007/08/19(日) 22:16:14
糞言語判定委員乙
418デフォルトの名無しさん:2007/08/19(日) 22:22:01
他人のレスは初めの一行しか読まないのな
419デフォルトの名無しさん:2007/08/19(日) 22:25:06
>>416は明らかにレスを読んでないし、
恐らく普段から人の話を聞かない自己中な人間なんだろうね。

糞言語判定委員乙
420デフォルトの名無しさん:2007/08/19(日) 22:46:34
決め付けは良くない。
421デフォルトの名無しさん:2007/08/19(日) 22:59:14
↓糞言語番付
422デフォルトの名無しさん:2007/08/19(日) 23:05:42
1.糞言語かどうかは俺が決める事
2.糞言語かどうかは俺が決める事
3.糞言語かどうかは俺が決める事
4.糞言語かどうかは俺が決める事
5.糞言語かどうかは俺が決める事

決め付は良くない。
423デフォルトの名無しさん:2007/08/19(日) 23:09:17
糞言語かどうかは俺が決める事であって、決め付けは良くない。
424デフォルトの名無しさん:2007/08/19(日) 23:25:44
いや俺が決めるやるってば.決め付けは良くない.
425424:2007/08/19(日) 23:27:04
日本語がおかしいかどうかも俺が決める.
426デフォルトの名無しさん:2007/08/19(日) 23:52:53
俺がおかしいかどうかは…orz
427デフォルトの名無しさん:2007/08/20(月) 00:02:59
俺が糞かどうかは日本語がおかしいかどうかで決まった。
428デフォルトの名無しさん:2007/08/20(月) 01:02:36
俺が糞かどうかはお前が決める事であって、
お前が糞だとは一言も言ってないが
429デフォルトの名無しさん:2007/08/20(月) 08:06:52
日本語は糞言語じゃないよ
430デフォルトの名無しさん:2007/08/20(月) 08:25:17
日本語は糞言語だって土屋賢二が言ってた
431デフォルトの名無しさん:2007/08/20(月) 08:27:26
LightWeight的観点からすれば日本語は糞
432デフォルトの名無しさん:2007/08/20(月) 08:33:55
ついでにRubyは糞
433デフォルトの名無しさん:2007/08/20(月) 09:29:10
スレが伸びてると思って楽しみにしてきてみれば
またこれか
学習しろ俺
434デフォルトの名無しさん:2007/08/20(月) 14:18:58
まあお前らはそうやって糞言語を決めつけてればいいさ
その代わりPerlたんは俺の嫁だからな
435デフォルトの名無しさん:2007/08/20(月) 23:00:02
         ∧_∧   ┌────────────
       ◯( ´∀` )◯ < 僕は、LISPちゃん!
        \    /  └────────────
       _/ __ \_
      (_/   \_)
           lll
436デフォルトの名無しさん:2007/08/20(月) 23:13:00
Cで書いてあるのが良言語でC++で書いてるのが糞言語。この分類で9割方
当たる。
437デフォルトの名無しさん:2007/08/20(月) 23:25:12
どこがどう糞なのか書いてくれると言語談義に花が咲くのに
438デフォルトの名無しさん:2007/08/21(火) 00:14:12
C++はいろんな機関で策定されてきた標準ライブラリにのみ価値があり、
それ以外の自家製オナニーライブラリは糞と言っていい。
Cで書き直せグズ
439デフォルトの名無しさん:2007/08/21(火) 00:49:14
boostとかほんとゴミだね
440デフォルトの名無しさん:2007/08/21(火) 02:20:19
↓MFCはおまえの嫁
441デフォルトの名無しさん:2007/08/21(火) 02:49:19
    / ̄ ̄ ̄ ̄\
    /      ::  ヽ
  /     \   / |
(∂|      | ・  ・丿 |
 ヽ|     ""   "" |
   |      ___   |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   \    /__/ /  < やっぱぅあはすげえや!
   /ヽ       /\   \_________________
442166:2007/08/22(水) 18:11:01
squirrelの解説書きました
ごめん、もうめんどくさくなってすっぽかすつもりでした
かなり投げやりですがとりあえず約束は守りましたよ〜
443デフォルトの名無しさん:2007/08/22(水) 21:08:02
>>442
URLを張ってくれ
444デフォルトの名無しさん:2007/08/22(水) 22:14:06
wiki
445デフォルトの名無しさん:2007/08/22(水) 23:31:20
ジェネレータが役に立たない理由が気になる.
何をどう直すつもりなのかも.
446デフォルトの名無しさん:2007/08/23(木) 00:18:17
>>445
その辺をちょっと書き足しました
447デフォルトの名無しさん:2007/08/23(木) 00:53:40
速度にナシつけるならもうちょっと裏付けを示そうよ
delegateの使い方が無茶苦茶だよ
threadあたりは突込みどころが多すぎてもう
448デフォルトの名無しさん:2007/08/23(木) 11:11:51
>>447
速度に関しては確かにはっきりと言えることじゃないですね
delegateは非常駐っぽいことをやる方法がこれしか思いつかなかったので…
突っ込みどころあるなら具体的に言ってもらえると助かります。個人的にそれを期待して書いてみたというのもあるので
449デフォルトの名無しさん:2007/08/23(木) 11:27:58
俺も期待してる
450デフォルトの名無しさん:2007/08/23(木) 23:20:45
どおおおんだけええええええ
としかリアクションが思い浮かばない
451デフォルトの名無しさん:2007/08/23(木) 23:25:17
>速度にナシつけるならもうちょっと裏付けを示そうよ
ナシって、
>その使い方ならゲームでも大丈夫でしょうが、
>スクリプトでガリガリ計算を行うようだと速度面で問題になってくると思います。
この部分か?他に見当たらないが。

これは当然の話で、裏づけも糞もないだろ、と思う。
452デフォルトの名無しさん:2007/08/23(木) 23:43:10
言ってることがどんなに真だろうが
実際のデータがなかったら何も言っていないのといっしょだよこういう話は
453デフォルトの名無しさん:2007/08/23(木) 23:47:00
>>452
はいはい。お前は口を出すとマイナスにしかならないから黙っててねこういう話は
454デフォルトの名無しさん:2007/08/24(金) 00:13:42
>>453
>>452が何をいってるのかちゃんと理解できてるか?
キレてるのだけはわかるんだが
黙ってろとかどんだけだよ
455デフォルトの名無しさん:2007/08/24(金) 00:20:08
どおおおんだけええええええ
456デフォルトの名無しさん:2007/08/24(金) 01:25:58
まあいろいろと突っ込まれるのは覚悟してました
Squirrelのことだったらまだしもそれ以前に用語の使い方がおかしかったりとか
そういう指摘もあるだろうなあ、と
それはもう未熟っぷりを晒す覚悟でしたのでいいのですが、
Squirrelに関する間違いはここで出して欲しいです。それをまとめたいので。
特に>>448さんのdelegateに関しては具体的に理由を聞きたいです
常駐、非常駐的なことをするのって他に方法あるんですかね?
個人的にそこら辺は死活問題なんですよね
457デフォルトの名無しさん:2007/08/24(金) 01:26:54
安価447だったw
458デフォルトの名無しさん:2007/08/24(金) 01:46:54
つーかめんどくさいとか、投げやりとか書いてるし、
最初から真面目にやろうとしてないじゃん。

スレは荒れるし、入門者が間違った知識覚える恐れもあるし、
やる気無いんだったら別にやらなくていいから、変なこと書かないでくれ。
459デフォルトの名無しさん:2007/08/24(金) 01:48:57
>>454
なにキレてんの?
460デフォルトの名無しさん:2007/08/24(金) 01:50:07
>>458
間違いを指摘するやる気もないなら、お前が黙ってろって話だと思うよ
461デフォルトの名無しさん:2007/08/24(金) 01:54:45
>>460
黙ってろとかどんだけだよ

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

どおおおんだけええええええ
462デフォルトの名無しさん:2007/08/24(金) 02:04:02
どんだけとかどんだけだよ
463デフォルトの名無しさん:2007/08/24(金) 02:13:18
>>461
どんだけ〜言われたのが相当気に障ったのか相当気に入ったのか知らないけど
書きたいだけならどっか他のとこで発散してきてくれると助かる
464デフォルトの名無しさん:2007/08/24(金) 02:28:00
このスレ定期的に小学生の口ゲンカみたいなやりとりがあるけど
luaってそういう言語だったっけ
複数手前のスクリプトのステートメントを参照できる変数があって
それを一部書き換えてevalできるとか
すごいプログラムがかけそうだが
465デフォルトの名無しさん:2007/08/24(金) 02:47:24
>>463
キレてんのはお前だろ。どっかいってね。
466デフォルトの名無しさん:2007/08/24(金) 03:49:14
>>456
常駐、非常駐的なことってのがよくわからないんだけど
いらなくなったら消すテーブルの名前をあらかじめ決めておいて
スクリプトの中でいらなくなったら消すものはそのテーブル内に定義しておいて
そのテーブルをいらなくなったら消す
じゃだめなの?
467デフォルトの名無しさん:2007/08/24(金) 07:54:03
オブジェクト指向のスクリプト言語が遅いのはほぼ定説だと思うが
468デフォルトの名無しさん:2007/08/24(金) 17:56:15
>>466
リファレンスにある関数登録みたいなやり方でテーブルを登録するってことですか

そうかー、普通そうするのか
469デフォルトの名無しさん:2007/08/24(金) 18:07:59
でもそれって、GCやrefcountを阻害するだけじゃない?
470デフォルトの名無しさん:2007/08/25(土) 00:12:03
>>468
どうも納得されてるみたいだけど
常駐、非常駐的なことってのが未だに謎なので少し説明してよ
>リファレンスにある関数登録みたいなやり方
ってどこのこと?

あまりにニッチな要求に応えなくちゃならんならスクリプトでどうにかしようとするより
squirrelのソースコードいじるほうが利口な場合もあるかもしれないよ?
471デフォルトの名無しさん:2007/08/25(土) 00:41:37
>いらなくなったら消す
いるものは残して、いらないものは消す。おっしゃってる通りのことをやりたいだけです。
ルートテーブルに全部のスクリプト読み込んでたら、そういう区別ができないじゃないですか

>>リファレンスにある関数登録みたいなやり方
>ってどこのこと?
SQFUNCTION型の関数をルートテーブルに登録するやつみたいなやり方…、じゃないんですか?
472デフォルトの名無しさん:2007/08/25(土) 01:46:07
>>471
APIでやるならそのとおり

↓みたいなスクリプトをルートテーブルをpushしたあとdofileしちゃってもいいし
tmptable <-
{
 a = function(v) { return v + 1; },
 v1 = 0,
 v2 = 3.1415
};
473デフォルトの名無しさん:2007/08/27(月) 11:16:30
>>472
166はコンパイラを削ってつかっている予感

常駐の意味がよくわからないけど、
がんばって使ってる感がいいね
474デフォルトの名無しさん:2007/08/29(水) 22:09:09
IronLua じゃなくて Nua かよ(w
http://www.codeplex.com/Nua
475デフォルトの名無しさん:2007/08/29(水) 23:09:00
ぬあ?
476デフォルトの名無しさん:2007/08/30(木) 01:12:36
あえて外人っぽく発音すればヌワだが
477デフォルトの名無しさん:2007/08/30(木) 01:22:53
にょわーっ
478デフォルトの名無しさん:2007/08/30(木) 20:47:36
Nuaで検索するとFate系ばっかだな
479デフォルトの名無しさん:2007/09/01(土) 13:13:08
>>166さんの文章ってどこ?

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

こっちにもないんだけど・・・roz
480デフォルトの名無しさん:2007/09/01(土) 13:18:28
とりあえず張られてるリンクを探してみるとか
そういうこと考えないのか?
481デフォルトの名無しさん:2007/09/01(土) 13:41:26
>>480
お!はてなのやる気のないゲームプログラマさんのページか!
dクスだぜ
じっくりよむぜ
482デフォルトの名無しさん: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デフォルトの名無しさん: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デフォルトの名無しさん:2007/09/04(火) 15:04:00
486デフォルトの名無しさん:2007/09/04(火) 19:15:48
>>485
DelphiとFPCをサポートしてる?
487デフォルトの名無しさん: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デフォルトの名無しさん: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デフォルトの名無しさん:2007/09/18(火) 23:28:09
ぅあ
491デフォルトの名無しさん:2007/09/19(水) 21:23:46
ぅあ
492デフォルトの名無しさん:2007/09/22(土) 20:39:47
ょゅぅょゅぅ
493デフォルトの名無しさん:2007/09/23(日) 19:05:00
|ナ|ナ|ナ
494デフォルトの名無しさん:2007/09/24(月) 00:30:35
っょぃっょぃ
495デフォルトの名無しさん:2007/09/24(月) 00:37:35
ょゎぃょゎぃ

ぅあ
496デフォルトの名無しさん: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デフォルトの名無しさん:2007/10/14(日) 14:09:07
俺は
>C++言語として&LUA_APIをextern "C"として宣言

Cのライブラリを使う予定がない場合はextern "C"無しでもいいかも。
LuaのソースコードがそのままC++でコンパイルできると知った時はちょっと感動したもんだ。
500497:2007/10/14(日) 14:43:32
>>499
やっぱそれが妥当ですかねぇ。

ただ、Cのライブラリ使う場合Cのライブラリを-fexceptions付き
でコンパイルしないといけないので(lua->Cライブラリ->luaが起こる
場合)、ソースが手に入ることが前提になるんだよね。
linux&gccな環境でソースが手に入らないことはまれだろうけど。
501デフォルトの名無しさん:2007/10/14(日) 15:38:22
そもそもCには例外処理が言語に組み込まれてないんだけど、 -fexception つけると
何が変わるの?
502497: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デフォルトの名無しさん:2007/10/14(日) 16:57:07
>>502
つけてもつけなくても素通りするだけで変わらないと思ってたけど、
つけないと abort しちゃうのか。

http://gcc.gnu.org/onlinedocs/gcc-4.2.2/gcc/Code-Gen-Options.html
-fexceptions
"... However, you may need to enable this option when compiling C code that needs to interoperate properly with exception handlers written in C++. ..."

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

ありがと。
504デフォルトの名無しさん:2007/10/24(水) 19:54:40
hoshu
505デフォルトの名無しさん:2007/10/27(土) 13:51:35
luaファイルで標準ライブラリの関数(math.randomとか)を使った関数を定義
しC++側からその関数を呼び出すとlua_pcallのところで失敗します。きちん
とluaopen_math()なども呼び出しているのですが・・・
同じ経験がある人とかいませんか?
506デフォルトの名無しさん:2007/10/27(土) 16:48:44
>>505
lua_pcallの戻り値とエラーメッセージは?
それを確認すると解決の糸口が見つかると思う。
507デフォルトの名無しさん:2007/10/27(土) 17:29:12
lua_pcallの戻り値は2なんで実行時エラーの模様です。デバッガで追ってみると
スタックからpopするところでエラーが出ていました。引数はきちんと
スタックにつんでいるので問題ないと思うんですが・・・
標準ライブラリを使わない関数とかは普通に実行できるんで、全く理由が
分かりません。
508デフォルトの名無しさん:2007/10/27(土) 17:55:59
再現するソースを見せるんだ
509507: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()は呼び出し済みです。
510506:2007/10/27(土) 19:03:01
>>507
戻り値が0以外の時は文字列型のエラーメッセージが
スタックのトップに置かれているからそれを見れ。
511デフォルトの名無しさん:2007/10/27(土) 19:52:02
>>509
luaopen_math呼んで無いじゃん。
呼んでる部分を含めた再現ソースを見せなさい。
512507: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デフォルトの名無しさん:2007/10/27(土) 23:22:03
>>512
再現する最小限のソースを全て晒したら?
省略する奴に限って、省略したところに問題があるのはよくある話だから。
514デフォルトの名無しさん:2007/11/02(金) 01:34:46
ミニマムコードを上げろー
515デフォルトの名無しさん:2007/11/02(金) 03:54:43
このスレ的にはTJS2の組み込みってどうなの?
516デフォルトの名無しさん:2007/11/02(金) 04:49:28
スレ違い
517デフォルトの名無しさん:2007/11/02(金) 08:13:59
え?べつにいいんじゃないの
LLでしょTJS2って
518デフォルトの名無しさん:2007/11/02(金) 08:19:06
pLua (Lua wrapper for FPC, Lazarus, and Delphi)
http://eonclash.com/ViewProduct.php?ProductID=26
519デフォルトの名無しさん:2007/11/02(金) 15:32:46
>>517
スレタイ嫁
ここはLL全般じゃなくてぅあのスレだ。

つっても過疎ってるから俺は構わないけど。
520デフォルトの名無しさん: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デフォルトの名無しさん: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デフォルトの名無しさん: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デフォルトの名無しさん: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デフォルトの名無しさん:2007/11/02(金) 23:05:56
>>519
前スレ嫁。ここはLL全般のスレだ。

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

LL全般について議論したいのならお前がLLスレを立てればいいだけのこと。
526デフォルトの名無しさん:2007/11/02(金) 23:45:50
>>524-525
前スレみるまでもなく>>8-11辺りでわかるんじゃ?
スレも半分超えてるのになんで今更突然……。
527デフォルトの名無しさん:2007/11/03(土) 01:00:15
ぅあだけでもいっぱいいっぱいなのに
LL一般扱ってたらスレがいくらあっても足りないぜ
528デフォルトの名無しさん:2007/11/03(土) 05:06:28
>>525
はいはい、新参が知ったかすんな。


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

つうか、お前過疎ってるから構わないって言った癖に意味不明すぎんな。
529デフォルトの名無しさん:2007/11/03(土) 08:40:49
1年経で500レス程度だからLL全般スレでも良さげだな。
次スレ(いつになるかわからんけど)のスレタイは変えたほうが良いかもね。
530デフォルトの名無しさん:2007/11/03(土) 08:48:29
情報が錯綜するからLuaがらみの話題だけでいいよ。
勝手に連立政権にされちゃ迷惑だ。
531デフォルトの名無しさん:2007/11/03(土) 10:53:29
せいぜい Luaとその仲間 ぐらいかな。

LL特集になぜかLuaは入れてもらえないことが多いんだこれが
532デフォルトの名無しさん:2007/11/03(土) 11:07:19
なんでだろう?
Webサーバとの組み合わせを指向してないからかな?
533デフォルトの名無しさん:2007/11/03(土) 11:28:57
>>519
違う。
組み込み言語全般のスレ。
過去ログ嫁

スレタイは、前回、組み込み言語にしろって言ったのに、
Luaだけにしやがっただけで
534デフォルトの名無しさん:2007/11/03(土) 11:35:56
「俺様はそうしろと言ったのに無視しやがって」
535デフォルトの名無しさん:2007/11/03(土) 11:39:37
>>534
ワロタw
まさしくその通りw
536デフォルトの名無しさん:2007/11/03(土) 11:59:15
>>534
そうですw
537デフォルトの名無しさん:2007/11/03(土) 12:51:30
前スレでもLuaの話題なんてたいしてなかったんで、LL系の話題は全般取り扱うことになったの。
このスレ用のwikiもURLはluaだけど、LLならOKってなってるでしょ。
http://wikiwiki.jp/lua/


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

>>534=535=536
そうじゃない。前スレではLL全般ということで同意がとれていていた。
538デフォルトの名無しさん:2007/11/03(土) 12:55:10
>>537
そんなに煽りに反応しなくて良いよ。
539デフォルトの名無しさん:2007/11/03(土) 12:56:14
前スレの終わり辺りではLL全般のスレにしようって流れだったんだけど、
なんだかんだでスレタイは変わらなかったんだよ。
前スレDAT落ちしてる上に、1年以上も前の話だから、
忘れてる人も多いだろうし、最近来た人が知らないのはしょうがない。
540デフォルトの名無しさん:2007/11/03(土) 12:56:41
ちなみに俺は533ではない。

てか、ここ一年未満の新参が増えて、古参はluaをもう見放したのか?
541デフォルトの名無しさん:2007/11/03(土) 13:13:34
squirrelが気になってます
542デフォルトの名無しさん:2007/11/03(土) 15:21:49
>>540
ノシ 前スレからいます。

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

人も集まってるみたいだしテンプレを考えるにはいい機会かも。
できたら>11のWikiに書いておくと。
543デフォルトの名無しさん:2007/11/04(日) 21:18:36
LL全般スレになったらlua専用スレ立てればいいだけじゃんw
民主主義は多数決で決まるんだよ、ばかがw
544デフォルトの名無しさん:2007/11/04(日) 22:29:07
多数決も取ってないのによく言えるね、ばかがw
545デフォルトの名無しさん:2007/11/04(日) 23:50:22
というか、たぶんLua専用する理由ってなに?
このLL全般でやってる現在でさえスローペースなんだよ? 全然意味がわからない。
546デフォルトの名無しさん:2007/11/04(日) 23:52:22
日本語で言え俺orz

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

……なんか、ごめん……。
547デフォルトの名無しさん:2007/11/05(月) 00:06:05
Lua専用にするっていうか,別に総合スレをLuaスレにしようって言ってるわけじゃなし.
今Lua専用なんだから格別の理由がなければそのままだろ.
過疎スレは過疎スレなりに3スレまで来てるんだし
わざわざ総合にするって話が出る理由がわかりません.
548デフォルトの名無しさん:2007/11/05(月) 00:16:03
別にLL総合スレを立てて、Luaスレが寂れて落ちるようなら
統合と言うことでいいんじゃない?
現状うまくいってるところを、わざわざ乱すこともないと思う。
549デフォルトの名無しさん:2007/11/05(月) 00:17:56
元々スレタイはLuaだけど、内容的には総合スレ同然だと思うが。
550デフォルトの名無しさん:2007/11/05(月) 01:23:03
そこの認識だよね。
ここが『Lua専用』だと思ってる奴って前スレとか持ち出すまでもなくこのスレ読んでないんじゃないかと。
551デフォルトの名無しさん: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デフォルトの名無しさん:2007/11/05(月) 08:40:28
>>547-548
お前、これまでの話聴いてなかったのか?
553デフォルトの名無しさん:2007/11/05(月) 09:30:03
>>547-548
・・・
ほんとにもう・・・乱してるのがおまえらだよ にわか
554デフォルトの名無しさん:2007/11/05(月) 13:32:10
LuaLuaいってるやつは
上でさんざんでているsquirrelはなんだと思っているんだろう
555デフォルトの名無しさん:2007/11/05(月) 18:26:14
これとか?
http://sourceforge.net/projects/squirrel-sql/

検索ついでにテンプレ用にsquirrel関連を拾っておくか
The programming language Squirrel
http://www.squirrel-lang.org/
http://sourceforge.net/projects/squirrel/
SqPlus http://sourceforge.net/projects/sqplus/
Squirrel Shell http://sourceforge.net/projects/squirrelsh/
556デフォルトの名無しさん:2007/11/05(月) 20:42:18
>>554
"squirrel"でこのスレを検索すれば、
lua専用スレじゃないということは、前スレを見るまでも無くあきらかだな。
557デフォルトの名無しさん:2007/11/06(火) 01:52:37
SquirrelはLuaからの派生だからどちみちここで良いのでは。
558デフォルトの名無しさん:2007/11/06(火) 02:00:57
別にluaからforkしたわけじゃないんで、派生とはいえない けど、
squirrelはこのスレでいいのは事実
559デフォルトの名無しさん:2007/11/10(土) 06:44:52
次スレタイトル案
【Lua】LightWeightLanguage統合【squirrel】
【Lua】組み込み言語統合【squirrel】
560デフォルトの名無しさん:2007/11/10(土) 07:04:42
>>243に一票
561デフォルトの名無しさん:2007/11/10(土) 07:22:32
Squirrelの情報欲しい人の為にもスレタイにSquirrelは欲しい気がする
そうすりゃSquirrelスレが立つ心配も無さそうだしな

…ところで、次スレの話はまだ早すぎないか?
何だか、自分超元気なのに次期国王の話を聞かされる王様の気分だ
562デフォルトの名無しさん:2007/11/10(土) 07:48:54
ぅあで喜んではしゃいでたのはやっぱりニワカか。

なんか違和感あったんだよな。
563デフォルトの名無しさん:2007/11/10(土) 08:19:44
Squirrel重すぎ
564デフォルトの名無しさん:2007/11/10(土) 09:02:58
ぎりぎりになって決まってなくて結局いまのまま……みたいなのは避けたい。
565デフォルトの名無しさん:2007/11/10(土) 09:48:25
>>559
なかなかいいんじゃないかな

>>562
このスレがLuaで機能してるから他の言語くるな、なんて
質問しかしないような奴がいいそうなこったな
566デフォルトの名無しさん:2007/11/10(土) 11:07:01
そしてPerl, Ruby, Python, PHP, JavaScriptで埋め尽くされる、と
567デフォルトの名無しさん:2007/11/10(土) 11:51:30
566 ニワカ乙
568デフォルトの名無しさん:2007/11/10(土) 12:28:24
守備範囲は
・アプリ組み込み用
・軽量小規模言語
・他にスレがない
あたりかな。巷のLLとはちょっと違う気がする。
LL自体定義があるのかよくわからないが。
569デフォルトの名無しさん:2007/11/10(土) 13:11:20
>>568
ニワカ乙
570デフォルトの名無しさん:2007/11/10(土) 13:43:20
>>568
そんなとこだろうな というか
ずっとそんなスレのつもりだった
571デフォルトの名無しさん:2007/11/10(土) 14:09:13
LLだと、RubyやPythonも入るからな・・・
いや、組み込む話題については、歓迎かも知れんけど
572デフォルトの名無しさん:2007/11/10(土) 14:19:33
JavaScriptも当然入るな。
PHPは組み込みあったっけ。
573デフォルトの名無しさん:2007/11/10(土) 15:45:11
>>571
そっち系の話題は向こうのスレじゃあんま出ないしな。
いや、もちろん出してもスレ違い扱いされたりはしないだろうが。
574デフォルトの名無しさん:2007/11/10(土) 23:40:43
>568 の箇条書きをもとに
>571-573 のニュアンスを加えて文章にしてみた。

[[
アプリケーション組み込み用の小規模言語についてのスレです。
話題の中心はLua、Squirrelですが他の言語もOK。
]]
575デフォルトの名無しさん:2007/11/10(土) 23:46:17
1に何書こうが誰も読みゃしないのでスレタイに注意を払うべき
576デフォルトの名無しさん:2007/11/11(日) 03:59:09
>>559
> 【Lua】組み込み言語統合【squirrel】
に一票
577デフォルトの名無しさん:2007/11/11(日) 06:37:50
スレタイとは全然関係ないことなのですが、いくつか質問があります。
よろしくお願いします。

1,luaの実行を内部から一時停止、外部から再開する方法にcoroutine以外のやり方はありますか?
2,luaの実行を外部から一時停止&再開することはできますか?
3,フックされた関数からluaを一時停止させることはできますか?
578577:2007/11/11(日) 07:45:09
スレタイとは関係あります
「スレタイ変更とは関係ありません」でした><
579デフォルトの名無しさん:2007/11/12(月) 20:12:36
>>577
1、2はファイバorスレッドorプロセスが絡む話なの?
そうであればやり様はいくらでも有る。実行コンテキストを
変えずにという意味であれば他に方法は無いと思う。
3、”フックされた関数”=>”Luaから呼ばれたC言語の関数”という
意味であればlua_yieldを使うかcocoを使うか。
580デフォルトの名無しさん:2007/11/14(水) 01:03:42
>>579
フック関数からyieldできるなんて意外でした。
ありがとうございます。
581デフォルトの名無しさん:2007/11/14(水) 15:41:09
C側から実行されたluaプログラムを
gdbやvcのような環境でデバッグできませんか?
582デフォルトの名無しさん:2007/11/14(水) 16:11:03
できない

だけど、Lua専用IDEからならできるよ
Decoaだっけ
583デフォルトの名無しさん:2007/11/14(水) 23:55:43
>>581
Decodaは割合評判いいらしいね。

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

wxLuaにもビジュアルデバッガついてたような気がするけど、embed環境で動かせるかどうかは不明。
584デフォルトの名無しさん:2007/11/17(土) 19:26:16
>>592
>>593
Decodaいいですね。組み込みで使いたかったです。
LuaEditも試してみたのですが、luaをdllにする必要があるのと、
そのdllのバージョンを合わせるのが大変で途中でやめてしまいました。
luaの自作ライブラリをdllにしてしまった方が早そうな感じです。
どもでした。
585デフォルトの名無しさん:2007/11/17(土) 19:36:03
>>592>>593の人よろしく
586デフォルトの名無しさん:2007/11/17(土) 21:47:01
ループの先頭に戻るという処理は、
continueでしょうか、nextでしょうか?

ttp://uri.sakura.ne.jp/~cosmic/yuno/lab/lua5_manual_ja.html
この辺を参考にしているのですが、breakなどしか見当たらなくて困っています。
587デフォルトの名無しさん:2007/11/17(土) 22:15:10
>>586
何故か無い
588デフォルトの名無しさん: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デフォルトの名無しさん:2007/11/17(土) 23:11:01
なるほど、Luaには存在しないんですね。。
レスありがとうございました。
590デフォルトの名無しさん:2007/11/18(日) 05:35:00
新しいバージョンが出ると誰かがcontinueパッチを作ってるはず
591デフォルトの名無しさん:2007/11/18(日) 14:31:58
continueが必要なループはイテレータのようにfunction作成してreturnしてる。
breakも必要なときは返値で判定。
592デフォルトの名無しさん:2007/11/18(日) 15:05:18
breakはまだしも、continueをreturnで代用?
コード汚そう。
593デフォルトの名無しさん:2007/11/18(日) 15:55:19
prototype.jsのeachのようになるからそんなでもない。
594デフォルトの名無しさん:2007/11/18(日) 15:57:24
いちおう言っておくと「だからcontinueいらない」って話ではなく。
continueあったほうがそりゃ素直に書けるしなあ。
595デフォルトの名無しさん:2007/11/18(日) 18:31:11
>>593
汚いじゃん
596デフォルトの名無しさん:2007/11/18(日) 18:35:45
>>593
最悪レベルの汚さだと思う
597デフォルトの名無しさん:2007/11/20(火) 00:10:47
598デフォルトの名無しさん:2007/11/20(火) 00:47:15
コタワァ*:.。..。.:*・゚(n‘∀‘)η゚・*:.。..。.:* ミ ☆
599デフォルトの名無しさん:2007/11/20(火) 01:21:05
しかも今年中の予定か。
実現したら自分へのクリスマスプレゼントにする……っ!
600デフォルトの名無しさん:2007/11/20(火) 01:26:39
なにかの死亡フラグに見えた
601デフォルトの名無しさん:2007/11/20(火) 15:30:26
日本語解説書期待age
602デフォルトの名無しさん:2007/11/21(水) 08:30:15
かつてPascalにもbreak、continueなくて、
まあそれでも別に困らんかったから、
改造してまで付けるほどでもないなワシは
603デフォルトの名無しさん:2007/11/21(水) 23:13:33
SJISのソース内にリテラルを埋め込む際の文字化けについて悩んでいるのですが、
文字化けする2バイト文字の一覧のようなものってどこかに載っていないでしょうか?
604デフォルトの名無しさん:2007/11/22(木) 00:40:33
>>603
文字化けはエスケープシーケンスのせい。
"abc"じゃなくて[[abc]]使うといい。
605デフォルトの名無しさん:2007/11/30(金) 11:15:33
やったー 予約始まってるよー^^/

入門Luaプログラミング
http://www.amazon.co.jp/dp/4797342722/
606デフォルトの名無しさん:2007/11/30(金) 12:58:19
一ヶ月後か
期待age
607デフォルトの名無しさん:2007/11/30(金) 14:01:17
608デフォルトの名無しさん:2007/12/08(土) 15:22:14
hoshu
609デフォルトの名無しさん:2007/12/08(土) 16:49:38
squirrelのリファレンスマニュアルの日本語訳ページが404な件
610デフォルトの名無しさん:2007/12/08(土) 23:14:42
Google cache からまだ一応読めるね。

そういえば以前にも一回読めなくなったときがあったけど、
そのときはサイト全体が読めなかった。
611デフォルトの名無しさん:2007/12/09(日) 09:57:13
>>609
うあーー
ac.jpなのを忘れてた orz
保存しとけばよかった

つーか、ac.jpの人って、卒業したら消えるんだよな・・・大抵
612デフォルトの名無しさん:2007/12/09(日) 10:09:16
9月でD論通ってるから卒業か
613デフォルトの名無しさん:2007/12/09(日) 15:36:33
>>609
googleキャッシュかInternet archive行けばまだ間に合う
614デフォルトの名無しさん:2007/12/16(日) 01:31:14
hoshu
615デフォルトの名無しさん:2007/12/18(火) 17:31:29
あるlua_Stateのクローンが作りたいのですが、
グローバルステートを含めすべての内容をコピーすることは可能ですか?
616デフォルトの名無しさん: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;
}

}
617616: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デフォルトの名無しさん:2007/12/21(金) 10:05:07
いきなりソース覗きこんでバグだバグだ騒ぐ前にまずはちゃんとマニュアルを読めよ…
619デフォルトの名無しさん:2007/12/21(金) 10:54:35
>>618
どういうことですか?
知っていることがあるなら教えてください。お願いします。
620デフォルトの名無しさん:2007/12/21(金) 11:04:12
リファレンスのsq_callの説明にはこう書いてありました。

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

しかし、自分が実際に追ってみた限りではsuspendでsq_callを抜けた後に引数をポップする処理は実行されています。
それがlocal a,bを破壊しているようなのです。
621デフォルトの名無しさん:2007/12/21(金) 22:08:56
バグじゃないっつーの
とりあえずなにがしたいのか書こうよ
「これはバグですか?」じゃ作者に失礼すぎるぞ
てめーを卑下しまくる前にちょっとは他人のことを考えようよ
622デフォルトの名無しさん:2007/12/21(金) 22:20:18
>>621
616の関数を実行して無事に終了したいだけです。
suspendで処理がC++に帰った後、sq_wakeupvmでスクリプトを再実行したらstackからlocal a,bが消えていて
printでnullを参照してしまうという問題を解決したいんです。
623デフォルトの名無しさん:2007/12/21(金) 22:29:42
>>621
ここは作者の掲示板ではないが、
現象が再現するミニマムコードを掲載して、仕様と挙動が異なっている点を報告したうえで、
それがバグかどうかを質問する、ってのは別に失礼でも何でもないと思うけどな。
624デフォルトの名無しさん:2007/12/21(金) 23:39:26
>>623
これは現象が再現しない断片コードだし、仕様を取り違えてるし
そもそも一定の条件を満たしていると自分では思えるというだけで
相手に失礼ではないなんてまたどこまで自分勝手な理屈だよ
常識的に考えておかしいだろ
625デフォルトの名無しさん:2007/12/21(金) 23:46:38
>>624
>>616は現象が再現しない、って試したの?
あと作者でもないのに、作者に失礼すぎるぞ、なんて言うのも充分に自分勝手な理屈だと思うけどな
626デフォルトの名無しさん:2007/12/21(金) 23:47:13
>>624
もったいぶらないで教えてやれよ。
無駄レスが多すぎる。
627デフォルトの名無しさん:2007/12/21(金) 23:55:38
>>626
残念ながら2chとはそういう場所なのです。
628デフォルトの名無しさん:2007/12/21(金) 23:59:24
とりあえずSquirrelユーザーがキモいというのはわかった
この際原点に戻ろうじゃないか

入門Luaプログラミング
http://www.amazon.co.jp/dp/4797342722/
629デフォルトの名無しさん:2007/12/22(土) 00:07:36
仕様取り違えてると分かってるのなら、ここをこう取り違えてるよーって言ってやればいいだけなんじゃないの?
そんな、作者に失礼とか自分勝手とか卑下しまくってるとか言わんでも…

ちなみに俺はよく分からんけど、>>616の動作は期待に反している感じはする。仕様は知らない。
630デフォルトの名無しさん:2007/12/22(土) 00:10:01
>>625
断片だから試せない
>あと作者でもないのに、作者に失礼すぎるぞ、なんて言うのも充分に自分勝手な理屈だと思うけどな
俺作者だよ
当然のことながらsquirrelのじゃないけどね
作ってるものが馬鹿からバグ呼ばわりされたときどんな気持ちになるかは分かってるつもり
631デフォルトの名無しさん:2007/12/22(土) 00:55:43
>>630
試してないのなら「再現しない」などと断定するなよ。

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

質問に対する回答は一切無く、その感情に任せて馬鹿とか自分勝手とかてめー呼ばわり
するだけってのは作者であろうがなかろうが人間性を疑ってしまう。
632デフォルトの名無しさん:2007/12/22(土) 01:22:15
とりあえず問題がおこる「呼び出し側のコード」を書こうぜ>623
そうしないと使い方がおかしいかどうかすらわからん。

予想:引数の数を間違えてる
633デフォルトの名無しさん:2007/12/22(土) 02:02:25
引数の数間違えたら、実行する前に落ちるんじゃないか?
634デフォルトの名無しさん:2007/12/22(土) 02:15:54
引数の数が違ってると関数呼ばれないね
635デフォルトの名無しさん:2007/12/22(土) 02:20:35
とりあえず>>632がsquirrel使ってないってのはわかった
636デフォルトの名無しさん:2007/12/22(土) 02:26:24
>>631
断片で不完全なものは試せるはずがない試せないものは再現するはずがない
再現するかどうか観察しなくても断片で動かないんだから再現するはずない
事実を述べてるにすぎないよ

>質問に対する回答は一切無く
ちょっとずつリードしてあげてるじゃん
すぐに解決策が示されるとでも思ったか?俺の人間性が疑われようが甘えはゆるさん
637デフォルトの名無しさん:2007/12/22(土) 02:58:27
>>636
甘えを許そうが許しまいがお前さんの勝手だが、それをスレ住人に強要するなよ

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

638デフォルトの名無しさん: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");
639638: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.
640638: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デフォルトの名無しさん:2007/12/22(土) 03:46:14
>>638
ありがとう!
やっぱり他の人がやってもそうなるんですかー
638さんはスクリプトから実行しているようですが、
自分はC++から呼び出して実行してました。

>>640
自分も同じ方法で対処するしかないのかなと思ってました。
これって結局仕様なんですか?
642638: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();
643638: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
644641:2007/12/22(土) 03:49:29
あ、それと今さらなんですが>>616のコードでwhileしてるのって意味ないんですよね
いろいろ試してる過程の残骸ですので無視して下さい
645638:2007/12/22(土) 04:05:19
sq_call が sq_throwerror を呼び出す前に
if (!v->_suspended) v->Pop(params);
でsuspendしているときはスタックを整えていないことから考えるとバグかも
646デフォルトの名無しさん:2007/12/22(土) 04:06:59
>>644
Squirrel全然分からん(昔Hello World試したくらい) けど、勉強がてら俺も>>616試したら同じ結果になった。

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

これが仕様だとすると何か根本的根本的に使い方間違ってんのかな?
sq_call とか sq_wakeupvm とかの引数とか色々変えてみたけど、勉強がてらなんでまだよく分からん。
整理できたら多少空気読みつつ晒してみる
647デフォルトの名無しさん:2007/12/22(土) 04:08:59
>>630で吹いた。ギャグだとしたら高度だ。
648デフォルトの名無しさん:2007/12/22(土) 04:10:37
>>645
あまりバグバグ言うとまた五月蝿くなるからやめとけ
649632: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デフォルトの名無しさん:2007/12/22(土) 04:15:59
>>646
まさにまさに!

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

てな具合にずっと悩んでたんです!
651デフォルトの名無しさん:2007/12/22(土) 04:26:04
>>649-650
だからバグだバグだと騒ぐなと
652デフォルトの名無しさん:2007/12/22(土) 04:42:00
君もこんな過疎地でオタ共を統率して悦に入ってないでニュー速だかvipだかにでもお行きなさいよ
653デフォルトの名無しさん:2007/12/22(土) 04:47:46
あー読んでてやっと分かった。
スタック上にローカル変数があろうが無かろうが、suspend時点でのスタック変数を引数の数だけ問答無用で開放してしまうのか。
なんで>>646みたいに現象は引数の数に変化を受けると。

で、単に使い方が悪いのかバグなのかは不明だけど、
squirrelのコードを>>640の通りに変更すれば少なくとも、この問題は解決、と。
654649:2007/12/22(土) 04:56:40
とりあえず下手な英語だが本家にバグとして報告しといたよ。たぶんそのうち適切な対策とってくれるだろう。
655デフォルトの名無しさん:2007/12/22(土) 05:08:02
ほげげ氏・・・w
ところどころ動詞やらが可笑しいけど伝わるな
Unknown table ってのは内部用のローカル変数のテーブルか何かなのかね?

他のスレも見てみたけど本家のフォーラムって意外と閲覧数少ないんだな・・・
656デフォルトの名無しさん:2007/12/22(土) 09:53:25
squirrelは別のとこでやれよ
657デフォルトの名無しさん:2007/12/22(土) 10:28:10
Luaの本はまだなのか。
658デフォルトの名無しさん:2007/12/22(土) 11:48:48
>>656
前スレ&現行スレ嫁
659デフォルトの名無しさん:2007/12/22(土) 15:55:02
次スレから >>1 嫁にできるよう頼む
660デフォルトの名無しさん:2007/12/22(土) 23:29:26
661デフォルトの名無しさん:2007/12/23(日) 00:00:33
相変わらず閲覧数少ねえーーw

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

662デフォルトの名無しさん:2007/12/23(日) 00:03:02
>>660
報告乙
663デフォルトの名無しさん:2007/12/23(日) 00:05:59
>>661
621のこと忘れてるぞ
椰子の煽りがなければ住人もここまで迅速に動かなかっただろう
664デフォルトの名無しさん:2007/12/23(日) 00:09:11
自演乙
665デフォルトの名無しさん:2007/12/24(月) 03:36:26
Lua本もう出てたんだ。ProgrammingInLua持ってるけど買う意義あるかな。
666デフォルトの名無しさん:2007/12/24(月) 06:09:14
おおほんとだ出てるな
A5、256ページで\2310ってちょっと高くないかな、、、こんなもんか
買った人レビュー希望
667デフォルトの名無しさん:2007/12/24(月) 07:01:02
>>666
値段はまあ普通だろうね
マイナー言語の一種だし・・・
Erlang入門なんて同じ値段で200ページしかない。
ともかく日本語で出たことが快挙
668デフォルトの名無しさん:2007/12/24(月) 11:33:56
>>666
入門書としてはこれくらいの長さのほうがとっつきやすいかも。
Lua触るの初めてでしたが、読みやすくて、なかなかよかったです。

奥付みてみたら、2008年1月3日初版第一刷発行とか書いてあってワラタ
669デフォルトの名無しさん:2007/12/24(月) 11:47:05
雑誌の「発行日」の記載って、なぜみんな
実際の発売日よりも1ヶ月くらい未来の日付になっているのでしょうか?
ttp://q.hatena.ne.jp/1153656810
670デフォルトの名無しさん:2007/12/25(火) 00:55:20
Lua本届いたー
第一部が基本文法。標準ライブラリとか。さくっと読める
第二部がアルゴリズム実装しながらその他機能。結構いろいろ詰まってる。
第三部がC言語との連携その他。

入門ならこの厚さがちょうど手頃でいいかも。
671デフォルトの名無しさん:2007/12/25(火) 01:17:43
入門だけか。
実際に使い出して結構経つ俺には、どのぐらい役に立つのかなぁ。
672デフォルトの名無しさん:2007/12/25(火) 05:18:46
>>670
第三部ってどの程度ページある?
ここがある程度詳しく書かれているなら買ってみてもいいかなあ
673デフォルトの名無しさん:2007/12/25(火) 13:28:19
>>672
第三部の内訳
第9章 Luaを拡張してみる - 13
第10章 Luaのモダンな機能 - 15
第11章 C言語との連携 - 13
第12章 Luaの組込み - 10
674デフォルトの名無しさん:2007/12/25(火) 14:21:04
>>673
詳しい情報さんきゅ
帰ったら注文するわ
675デフォルトの名無しさん:2007/12/31(月) 01:59:29
Squirrelの日本語リファレンス復活しとる
676デフォルトの名無しさん:2007/12/31(月) 02:29:49
結構前から復活してる
というより見られなくなってたのはほんの短期間だった

floatのスペルミスはどうにかならないかなあ
677デフォルトの名無しさん:2007/12/31(月) 02:33:56
いや、落ちて戻って繰り返してるし、またいつなくなるか
分からんから、見たかった人は今のうちに見ておくのが良いかと。
678デフォルトの名無しさん:2007/12/31(月) 02:40:16
そうなのか。
保存しとこう。
679デフォルトの名無しさん:2007/12/31(月) 07:40:09
サーバー落ちてただけのようですね。
でもac.jpですから、今のうちということですな
680デフォルトの名無しさん:2007/12/31(月) 15:23:23
あれ、博士課程を修了したからHPも消えた、って話じゃなかった?
かなり長い間見れなかったような気がするんだが。
まあどっちだっていいんだけど。
681デフォルトの名無しさん:2008/01/01(火) 00:52:15
ぅあけましておめでとう!
682デフォルトの名無しさん:2008/01/02(水) 02:20:12
ぅあけおめ!
683デフォルトの名無しさん:2008/01/02(水) 02:40:09
あけおめ!
今年も、組み込み言語が流行るといいな!
684デフォルトの名無しさん:2008/01/09(水) 20:52:06
asdfasfasdfasdfasdf
685デフォルトの名無しさん: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デフォルトの名無しさん:2008/01/10(木) 10:45:48
>>685
勘だけどextern "C" かな。src/lua.hの代わりにetc/lua.hppを使ってみるとか。
687685:2008/01/10(木) 16:12:22
extern "C"は使ってるんですけどねえ。うーむ
688デフォルトの名無しさん:2008/01/10(木) 21:31:19
再現するコードを貼りたまえ。
689685: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");
}

690685:2008/01/10(木) 21:47:08
testなのでこれだけなんです。
691デフォルトの名無しさん:2008/01/10(木) 21:49:42
Borlandの場合は命名規則と呼び出し規約が違うからではないかと。
VCでコンパイルされたライブラリをリンクするときに良くある問題。
詳しくはぐぐればわかると思う。細かいことは忘れた。
692デフォルトの名無しさん:2008/01/10(木) 22:00:54
ライブラリはちゃんと設定してる?
693デフォルトの名無しさん:2008/01/10(木) 22:09:06
ライブラリをリンクしてないとか
694デフォルトの名無しさん:2008/01/10(木) 22:28:07
lua_dofileって5.1.2になくね?
695デフォルトの名無しさん:2008/01/10(木) 22:39:24
ないよ。
lua_dofileでぐぐれば代替コードが見つかる。
696デフォルトの名無しさん:2008/01/10(木) 22:46:01
685はなんでリンクまでは行ったの?
697685: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でしょか。
698685:2008/01/11(金) 01:35:45
訂正 ilink32.cfgです
すんません
699デフォルトの名無しさん:2008/01/11(金) 03:24:27
そう思うんだったら、luaのライブラリもbccで作ればいんじゃね?
700デフォルトの名無しさん:2008/01/11(金) 05:23:44
まさか、VCのlibをBCCでリンクしようとしてないよな?
701デフォルトの名無しさん:2008/01/11(金) 06:57:05
自分でBCC使ってビルドしてないのかよ。
そりゃ無理にきまっとる
702デフォルトの名無しさん: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
>
704685: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デフォルトの名無しさん: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って書く必要があって不便じゃないか?
707705:2008/01/12(土) 16:43:02
>>706
>local table=table
まさにそれをやってとりあえず回避してます。
ただそうなると後からの拡張に備えるならばxxxで呼び出している
_Gの全てのメンバに対してそれをやらないと安全でない事に。
そうなるとpackage.seeallの役割って・・・。
708デフォルトの名無しさん:2008/01/13(日) 00:27:18
>そうなるとpackage.seeallの役割って・・・。
ただの手抜き道具。
安全云々なら

local _G = _G
module("xxx")

でオシマーイ。
709デフォルトの名無しさん: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デフォルトの名無しさん:2008/01/14(月) 14:19:30
>>709
ttp://muffin.cias.osakafu-u.ac.jp/~matumoto/cgi-bin/xt.cgi?prog/squirrel_lang

ここに静的変数について説明があるけど、これじゃ駄目なのか?
712デフォルトの名無しさん:2008/01/14(月) 15:47:49
レスありがとうございます。

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

>>711
クラスのメンバ変数でしか使えなく、さらに書き換えが無理なので、使い勝手が悪そうです。
713デフォルトの名無しさん: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デフォルトの名無しさん: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へのレスね。
717709: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デフォルトの名無しさん:2008/01/14(月) 17:16:55
>>717
それグローバル変数 v が確保されてるだけだよ


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

用途的にstatic なら、名前に気をつけつつグローバルにおくしかないはず。
719デフォルトの名無しさん:2008/01/14(月) 18:07:21
日本でLua使ってる製品ってなにかある?
720デフォルトの名無しさん:2008/01/14(月) 18:11:45
同人なら割と
721デフォルトの名無しさん:2008/01/14(月) 18:58:14
同人ゲーム?
ノベルはある?
722デフォルトの名無しさん:2008/01/14(月) 19:07:55
関数内の静的変数なんて、C言語使いしか使わん
723709:2008/01/14(月) 19:08:23
>>718
> それグローバル変数 v が確保されてるだけだよ

<- はlocalをつけずに初期化するためだけのものだと思ってました。
もっと勉強しないと駄目ですね。
724デフォルトの名無しさん:2008/01/14(月) 19:32:29
>>722
そりゃ、Cぐらいにしかないからだろ。
あれば使うよ。
725デフォルトの名無しさん:2008/01/14(月) 21:28:01
>>721
> 同人ゲーム?
> ノベルはある?

あるはずなのは知ってるんだが具体名は知らなかったり...
726デフォルトの名無しさん:2008/01/14(月) 21:30:38
>>722
> 関数内の静的変数なんて、C言語使いしか使わん

オブジェクト指向言語のインスタンス変数は多用されるわけだが
727デフォルトの名無しさん:2008/01/14(月) 21:53:52
>>726
そうだよ。
何がいいたいの?
728デフォルトの名無しさん:2008/01/14(月) 22:00:27
Luaなら同人まで含めれば幾つかは見つかりそうだが
Squirrelとなると皆無な余寒
729デフォルトの名無しさん:2008/01/14(月) 22:00:42
ある手続きと変数があって変数名がその手続きにローカルである
↑↓
あるメソッドとメンバがあってメンバ変数名がメソッドが属するオブジェクトにローカルである

こう?
730デフォルトの名無しさん:2008/01/14(月) 22:13:55
今はDS Luaが熱いよな
731デフォルトの名無しさん:2008/01/14(月) 22:24:46
>>725
ありがとう。
732デフォルトの名無しさん:2008/01/15(火) 12:17:55
>>728 商業作品だけど
Alcotの「フェアチャイルド」方面にSquirrelの予感
使ってるのかどうか確信が持てないのだけどね
733デフォルトの名無しさん:2008/01/15(火) 12:57:10
商用でSquirrel使うはまだ早すぎる気がする
>>616みたいなバグがまだどんだけ潜んでるか分からないし
734デフォルトの名無しさん:2008/01/15(火) 13:35:04
ん あれ吉里吉里なんじゃないの > FairChild
735デフォルトの名無しさん:2008/01/15(火) 13:39:15
TJSか
736685: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デフォルトの名無しさん:2008/01/19(土) 15:31:29
Luaでwireshark(Ethereal)をカスタマイズが出来るみたいですな。
ざっと見たところ出来ることとしては
・プロトコル解析処理の追加
・解析結果を利用したカスタムパケットフィルタリング
・統計情報の収集等。
などが出来そうですが、サンプルとか情報少ない・・・。

使ってる人います?
738デフォルトの名無しさん:2008/01/19(土) 15:32:35
あげとこう
739デフォルトの名無しさん:2008/01/19(土) 16:01:56
ti.moo
740デフォルトの名無しさん:2008/01/20(日) 15:13:20
>737
プロトコル解析につかってるよ。
特にバイナリフォーマットのパケットだと解析できた方が便利だよ〜。
741737:2008/01/21(月) 00:03:16
>>740
Dissectorの機能を使用してですか?
wiresharkのリファレンスみただけではどうも
全体像がいまいち分かりにくいです。
どっか纏まったサイトあります?
742デフォルトの名無しさん:2008/01/21(月) 19:44:31
>>732
その方面だと思うんだけど
商業作にはまだと確認しました

ttps://sv.kikyou.info/trac/kirikiri/browser/kirikiri2/trunk/kirikiri2/src/plugins/win32/squirrel
プラギンはあるんですねー
アドベンチャー系だとコルーチンの使いでがあるところがあるか微妙ですが
743デフォルトの名無しさん:2008/01/21(月) 19:48:09
ほほう
744デフォルトの名無しさん:2008/01/21(月) 21:51:02
そういうソフトでの組み込みスクリプト言語の使い方って
LuaならLuaでシナリオをいわばハードコードするの?
745デフォルトの名無しさん:2008/01/21(月) 21:53:59
それはスクリプトとホストとのインターフェイスの設計次第だろう
746740:2008/01/22(火) 21:48:29
>>741
dissector使ってますよ。
http://wiki.wireshark.org/Lua
↑を参考にして、あとは試行錯誤の繰り返しですね・・・


747732:2008/01/23(水) 09:59:34
>>742 あーどうもです。確認しました、その方面で合ってます。
748デフォルトの名無しさん:2008/01/23(水) 22:35:01
ファイルサイズ的に軽量な言語でGUI作りたく
DSL見ててmurglaLuaが良いと思ったんですが、
ほかにお勧めのものありますか?
749デフォルトの名無しさん:2008/01/23(水) 22:36:34
murgaluaだった。。。
750デフォルトの名無しさん:2008/01/24(木) 00:11:03
lua-gtkとかLua-Gtkはどう?
751デフォルトの名無しさん:2008/01/24(木) 00:11:43
間違えた
lua_qtとLua-Gtkだ
752デフォルトの名無しさん:2008/01/24(木) 00:15:58
wxPython
753748:2008/01/25(金) 00:12:41
あんがと。
参考にしてみる。ちょっとサイズでかいけど。
754デフォルトの名無しさん:2008/01/25(金) 01:07:07
結果報告よろ
755748:2008/01/25(金) 22:30:19
lua-gtkとmurgaLuaで迷ってる。
現状、なぜかエラーがでて、Lua-gtkが使えてないが、
結構期待が持てる。でもドキュメント類が少ない。。。
まあ、サンプルコード見る限りわかりやすそうではあるが、発展途上って感じもする。
murgaLuaはFLTKベースで、ちょっと癖はあるがGUIBuilderにfuluidとか使える。
あと、検索すると使ってる人結構いるのな。これも結構簡単そう。

lua-qtはqtのない環境なので見てません。
wxPythonはサイズ的に却下。Luaとは桁が違う。
756デフォルトの名無しさん:2008/01/25(金) 23:11:34
そりゃPythonだもんな
757デフォルトの名無しさん:2008/01/26(土) 00:39:27
5.1.3でました
758デフォルトの名無しさん:2008/01/26(土) 00:39:46
>>748
どんなエラー?

Lua-Gtkのドキュメントは全然無いけど、GTK自体のドキュメントは豊富だからそっちを参考にしたほうが良い。
PyGTKやRuby/GTKのドキュメントが読みやすいと思う。
759デフォルトの名無しさん:2008/01/28(月) 20:05:56
こんなんですね。
lua: error loading module 'gtk' from file './gtk.so':
./gtk.so: undefined symbol: gtk_builder_new
760デフォルトの名無しさん:2008/02/03(日) 17:33:52
Squirrelの日本語リファレンスの中の人です。
マニュアルの一番上にも書いていますが、内容を
http://wikiwiki.jp/lua/?FrontPage に移そうかと思っています。
他によい場所などありますか?
761デフォルトの名無しさん:2008/02/03(日) 20:14:59
>>760
いつもお世話になってます
大学を卒業なされて日本語マニュアル置けなくなったんですか?
自分としては見られればどこでもいいです
762デフォルトの名無しさん:2008/02/04(月) 13:23:47
>>760
おお、おつかれさんです。

そちらでよいかと思われます。
763デフォルトの名無しさん:2008/02/04(月) 13:26:41
>>760みて改めて思ったけど、このスレって、LL以前のさらに小さな組み込み言語用なんだな。
LLスレが軒並み荒れてるのにここが荒れてなくてw 実感した
764デフォルトの名無しさん:2008/02/04(月) 14:35:40
RubyのどこがLightなんだボケェっていう人たちのたまり場です

http://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デフォルトの名無しさん:2008/02/04(月) 14:40:24
知らなかったのかよ…
766デフォルトの名無しさん:2008/02/04(月) 15:46:31
Easy Programing Language と言ったほうがいいのでは
767デフォルトの名無しさん:2008/02/04(月) 15:49:12
ttp://en.wikipedia.org/wiki/Lightweight_languages には>>764とは逆のこと書いてある気がする。
まあWikipediaが絶対というわけじゃないしな。
あとLuaのページに
>LuaはライブラリとしてC言語を実装している。
って書いてあったんで晒しsage
俺が消してきます
768デフォルトの名無しさん: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.

http://ll1.ai.mit.edu/cfp.html
http://ll1.ai.mit.edu/
769デフォルトの名無しさん:2008/02/04(月) 16:59:21
>>767
確かに全く逆.というか,日本語版は英語版を否定する内容になってるな.
まぁ日本語のLL界隈は変なの沢山湧いてるしな.
770デフォルトの名無しさん:2008/02/04(月) 17:29:54
/.j
771デフォルトの名無しさん:2008/02/04(月) 18:14:11
Programming Languages for Idiots のが適当だな
772デフォルトの名無しさん:2008/02/04(月) 18:33:50
LL談義は専用スレで。Luaスレからは退去しましょう
773デフォルトの名無しさん:2008/02/04(月) 18:34:46
774デフォルトの名無しさん:2008/02/04(月) 23:33:45
ゲ製板に張られててたのでこっちにも。

LuaのJIT対応版だって

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

The LuaJIT Project
http://luajit.org/
775デフォルトの名無しさん:2008/02/05(火) 07:54:33
何を今更と思ったけど、こっちでは話題になってなかったっけか
776デフォルトの名無しさん:2008/02/05(火) 08:27:39
ゲ製板にLuaスレってあったっけ?
777デフォルトの名無しさん:2008/02/05(火) 11:15:08
>>776
各種ライブラリ紹介スレ2
http://pc11.2ch.net/test/read.cgi/gamedev/1177886529/

スレチっぽいのでやってないがあっちにもこっち貼った方がいいのかな。
778デフォルトの名無しさん:2008/02/05(火) 22:01:50
JITつくってはええすげえってするんならsquirrelのがいいとおもうんだが
Luaはそのままで十分に速いからウンコな文法でも許されてるんだろうに
779デフォルトの名無しさん:2008/02/05(火) 23:04:54
失礼な
780デフォルトの名無しさん:2008/02/06(水) 10:03:32
Free Pascal Compiler を組み込んで動的に実行する場合の話題もOKですか?
781デフォルトの名無しさん:2008/02/06(水) 10:35:49
>>10-11 参照
組み込む系の用途がメインの言語と処理系のスレ、ってことで
いいと思う。
782デフォルトの名無しさん:2008/02/07(木) 07:41:19
あーなるほど、Pascalくらいコンパイルが早いとそういう選択もアリなのか。
783デフォルトの名無しさん:2008/02/07(木) 20:15:57
TCCっていうの使えばLua内でCを動的に実行もできるらしいぞ
http://luaforge.net/projects/lua-tcc/
784デフォルトの名無しさん:2008/02/08(金) 01:06:33
>>783
つうか、tccならC内でもcを実行できるだろ。
785デフォルトの名無しさん:2008/02/08(金) 18:36:35
このスレの守備範囲だと思ってたらいつのまにか専用スレが立ってた。

Io Language
http://pc11.2ch.net/test/read.cgi/tech/1201100624/
786デフォルトの名無しさん:2008/02/08(金) 18:46:07
Ioって組み込む系の言語だったんだ
787デフォルトの名無しさん:2008/02/08(金) 19:05:02
IoがあるのならSquirrelスレも立ててくるかな
788デフォルトの名無しさん:2008/02/08(金) 19:15:08
別に話題ないだろうにw
789デフォルトの名無しさん:2008/02/08(金) 20:45:54
3レスでdat落ち
790デフォルトの名無しさん:2008/02/09(土) 01:29:48
Ioは、Luaからもインスピレーション受けてるからな
ただ、実際に組み込んで使っている人いるのかな・・・
組み込みサンプルやドキュメントが少なすぎてなんつーか('A`)
791デフォルトの名無しさん:2008/02/10(日) 20:35:17
xyzzy用のLua modeを更新しました。
http://park7.wakwak.com/~blackbox/
792デフォルトの名無しさん:2008/02/10(日) 21:19:53
>>791
超乙

つか、ニコニコ技術部 の人か?w
応援しとるよ
793デフォルトの名無しさん:2008/02/10(日) 21:24:35
>>791
スレちですが、せっかくなので Netinstaller 対応しませんか?
794791:2008/02/10(日) 23:04:44
NetInstaller使ってないし。package.lとか用意するのめんどくさい。
795デフォルトの名無しさん:2008/02/18(月) 06:45:34
今作ってるゲームにSquirrel採用することに決めた。おまいらよろしく。
796デフォルトの名無しさん:2008/02/18(月) 07:55:09
こちらこそ。
797デフォルトの名無しさん:2008/02/18(月) 11:31:46
squirrelをビッグエンディアンな環境で動かしたいんだけど、
sq.exeを動かす環境がビッグエンディアンじゃないと、
バイトコードがそのまま実行できない

まあ、当たり前なんだが、みんなどうやって解決してるの?
798デフォルトの名無しさん:2008/02/18(月) 23:18:36
>>797
それってWi○?
799デフォルトの名無しさん:2008/02/18(月) 23:24:29
コードを解析していくと書き込みも読み込みも全部階層の深いところで
それぞれ一つの関数を使っていたりするから
(sqstd_writeとか?もう一つ上の関数だったかも。うろ覚え)
そういうところでまとめてスワップさせてるな、俺は。
んでコード改変したものをコンバート用のツールとして使うと。
800797:2008/02/19(火) 12:28:23
>>798
まあ、あえて何かは言わないけど、
今の据え置きってリトルエンディアンの方が少なくね?

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

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

あと読み込みとか書き込みのところでfopenとか使うの止めて欲しい。
あらかじめファイル読み込んだバッファを渡すとかいう風にすればどんな環境でも対応できるのに・・・
802デフォルトの名無しさん:2008/02/19(火) 17:41:07
>>801
エンディアン変換は同意なんだが、後者は普通にそうなってるだろう
sq_compile, sq_compilebuffer, sq_readclosure, sq_writeclosure と全部抽象化されてるぞ?

sqstdlib では fopen つかってるけど、これは実装用のライブラリだし、あと、
直接つかってるわけではなくて、1段階抽象化してあるんで、sqstdio.cpp のあたまの
関数いくつか書きなすだけだから、どちらかというと親切な部類にはいると思う。
803デフォルトの名無しさん: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デフォルトの名無しさん:2008/02/21(木) 21:12:13
LuaってHaskell系だったのか
http://pc11.2ch.net/test/read.cgi/dtm/1194648279/216
805デフォルトの名無しさん:2008/02/22(金) 07:17:15
そのスレで既に十分突っ込まれてるじゃないか
806デフォルトの名無しさん:2008/02/22(金) 16:29:42
Squirrel_Langって今「最近編集された項目」からしかアクセスできない?
807デフォルトの名無しさん:2008/02/22(金) 16:30:29
「最近編集された項目」なくて「最近の10件」だった
808デフォルトの名無しさん:2008/02/23(土) 20:47:20
ゲーム開発言語は「Lua」を採用
http://www.watch.impress.co.jp/game/docs/20080223/gdc_home.htm
809デフォルトの名無しさん:2008/02/23(土) 22:57:40
>>808
Luaハジマタ\('o`)/
810デフォルトの名無しさん:2008/02/23(土) 23:06:41
Luaはいろんなゲームに採用されてるんだから、今さらってかんじ
811797:2008/02/23(土) 23:20:59
最新の2.2stableに、ビッグエンディアンで出力できるよう、
やっつけのパッチ当てたけど、需要ある?
812デフォルトの名無しさん:2008/02/24(日) 01:48:06
あるある
というか本家にフィードバックしようぜ
813デフォルトの名無しさん:2008/02/24(日) 03:09:28
>>808
うぉ、日本メーカーでLua使用って公開したところはほとんど記憶にないから、
結構インパクトあるねぇ

そういや今GDCの季節かぁ
814デフォルトの名無しさん:2008/02/24(日) 08:58:56
Lua最高!
815デフォルトの名無しさん:2008/02/24(日) 12:30:51
>>811
改変したソースも公開してくれよ
816767: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の管理人さんアリガトー(゚∀゚)
817797:2008/02/24(日) 14:52:30
>>816
自分のハンドル間違えた('A`)
818デフォルトの名無しさん:2008/02/24(日) 17:24:11
http://www.watch.impress.co.jp/game/docs/20080224/ffcc.htm
>Squirrelについては、「メモリの消費量は増してしまうが、それだけの価値がある」という白石氏。
>プログラムの7割はSquirrelを使用しているという。

ですって。
819デフォルトの名無しさん:2008/02/24(日) 17:28:30
うは、Squirrelきたか・・・
つかこのスレに書いてる人いそうだなw
820デフォルトの名無しさん:2008/02/24(日) 19:22:53
スクエニの人もこのスレ見てるんだろうなあ。書き込みもしてるかもね
スクエニが使っているという情報はでかい
Squirrelを採用する企業もこれからかなり増えるんじゃないか
いい感じ
821デフォルトの名無しさん:2008/02/24(日) 20:17:18
製品レベルのゲームコードの大半がメモリマネージド言語で書かれる時代が来たということか。
開発効率に対する姿勢が比較的アメリカ型なスクエニがこういう方法をとったことは不思議ではない。
C/C++(&内製の半端なスクリプト言語)一辺倒から離れられないプログラマや企業はいよいよ
ついていけなくなるかもね。
822デフォルトの名無しさん:2008/02/24(日) 20:26:54
歴史的なしがらみが無いなら移行は簡単だと思うけど。
基本的にスクリプト言語の方が習得難度が低いからね。
まぁその歴史的なしがらみが大きな障壁になるのかもしれないけどさ。
1言語しか扱えないニセグラマとか猿スクリプタとか。
823デフォルトの名無しさん:2008/02/24(日) 20:40:34
>>822
プロでそんな人はいなさそう
むしろ、メモリの動的確保が信じられないとか、そっちの方が使わない理由だろう
824デフォルトの名無しさん:2008/02/25(月) 01:33:21
SCEはLua(C)で、NintendoはSquirrel(C++)か。
オレはそれならSCE派だな。Nintendoは趣味じゃねー。
825デフォルトの名無しさん:2008/02/25(月) 01:37:01
C++の方が開発元に権限が集中しやすいので、それが狙いというのはあるかもね。
そこまで考えれたらいっぱしのマネージャークラス?
826デフォルトの名無しさん:2008/02/25(月) 07:39:05
んでまたちょっとするとカリカリにチューニングした爆速ゲームがもてはやされると。ループですな。
827デフォルトの名無しさん:2008/02/25(月) 07:56:22
DOS版DOOMみたいな、全てのコードがカリカリでないと爆速はむりぽ、
という時代じゃないし
828デフォルトの名無しさん:2008/02/25(月) 14:24:07
>>824
別に任天堂本体が使ってる訳じゃあんめえ
スクエニでしょ
829デフォルトの名無しさん:2008/02/25(月) 15:59:46
Squirrelと心中
830デフォルトの名無しさん:2008/02/25(月) 19:35:14
>>828
DSの開発言語の標準がC++らしいので、Nintendo自体もSquirrelに
まんざらではない可能性も。
831デフォルトの名無しさん:2008/02/25(月) 21:29:10
>>830
WiiはともかくDSにSquirrelはない。メモリ的に
832デフォルトの名無しさん:2008/02/25(月) 21:36:22
>>824
スクエニつーかリードプログラマの趣味じゃね?>Squirrel
カリカリチューンとかいってもLuaとかSquirrelで全部やろうとしたらそら重いけども。
単なるイベントハンドラとして使うだけならどっちでも大して変わらんでしょ。

LuaPlayerでゲーム作るノリでゲーム中の全オブジェクトの管理・更新をLuaとかSquirrelとかで書いちゃう人って結構多いの?
833デフォルトの名無しさん:2008/02/25(月) 22:20:35
大手企業はただ使うだけじゃなく
積極的に開発にフィードバックしてくれたら良いけどな
ただ日本企業にそこまで期待できるか実際のところ何ともいえないけど
834デフォルトの名無しさん:2008/02/25(月) 23:23:49
新・業界標準
835デフォルトの名無しさん:2008/02/25(月) 23:35:58
急に賑わってきたね
ちょっと前まで過疎スレだったのに
836デフォルトの名無しさん:2008/02/25(月) 23:37:43
まあCEDECあったしな
837デフォルトの名無しさん:2008/02/25(月) 23:38:17
GDCだったw
838デフォルトの名無しさん:2008/02/26(火) 00:21:49
Squirrel面白そうだな
うちでも採用検討しようかな
839デフォルトの名無しさん:2008/02/26(火) 01:34:26
つかSquirrel更新来てたのか
>>811さりげなさ過ぎて気付かなかったw

>>616のバグもめでたく正式に修正されたみたいね
-fixed a coroutine bug
840デフォルトの名無しさん: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デフォルトの名無しさん:2008/02/26(火) 22:14:17
>>840
神乙
きっとスクエニの人もあなたの翻訳は見ているでしょう
842デフォルトの名無しさん:2008/02/26(火) 23:31:53
zenzen nai
koukai sitakerya koukai sitemo iiyo
oreha iranai kedo ne
843デフォルトの名無しさん:2008/02/27(水) 15:54:40
>>840
ちょwwww
SquirrelJITってwすげえw
速くならないのは残念ですね。いま時はVM実行でもプロセサが速いから吸収しちゃうのかね
844デフォルトの名無しさん:2008/02/27(水) 21:40:38
まじか
845デフォルトの名無しさん:2008/02/28(木) 08:20:37
>>824
>SCEはLua(C)で、NintendoはSquirrel(C++)か。

LuaがC++対応じゃないみたいに見えるからやめれ。
LuaのC++との相性はSquirrelと同程度だろう
846デフォルトの名無しさん:2008/02/28(木) 12:08:01
言語からC++側のクラスを扱う上では大差ないけど、逆が squirrel のが圧倒的に楽(変数への参照がそのままもてる)
から、相性が同程度ってのは疑問だなぁ。Lua ってそのあたりなんか最近変わった?
847デフォルトの名無しさん:2008/02/28(木) 19:12:32
>squirrel のが圧倒的に楽(変数への参照がそのままもてる)

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

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

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

>SquirrelObject としてラッピングしてあって
luabind::objectでも同様にしている。
851デフォルトの名無しさん:2008/02/29(金) 00:22:14
luaL_ref() とやってることはあんまり変わっていないような。
852デフォルトの名無しさん:2008/02/29(金) 00:54:33
>>851
なんだって! そんな便利なものがあったのかよ!
853デフォルトの名無しさん:2008/02/29(金) 01:27:20
>>850
まあラッピングすればねー。
SqurrelObject は例示としてはよくなかったね。

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

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

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

>>849
強参照ってそんなときに使うのか・・・
855デフォルトの名無しさん:2008/02/29(金) 07:57:01
Lua最高!
856デフォルトの名無しさん:2008/02/29(金) 12:13:32
↑うるせーよダボがすっこんでLua!
857デフォルトの名無しさん:2008/02/29(金) 14:34:16
>>856
うまいこといったつもりか!
858デフォルトの名無しさん:2008/02/29(金) 15:42:34
>>854
スタックはややこしいよね……。
テンプレートは使ったり使わなかったりかな。単純な関数呼び出しぐらい
なら、普通に書いたほうがわかりやすいので。
859デフォルトの名無しさん: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デフォルトの名無しさん:2008/03/01(土) 00:10:39
luabindが二年放置(最終更新2006-01-24)の状況なのが厳しいですね。
luaのバージョンも進んでいるうえ、VS2008も販売された今では、
サポート放置されたライブラリには手が出しにくいです。
861デフォルトの名無しさん:2008/03/01(土) 00:29:40
sqplus使おうぜ
862デフォルトの名無しさん:2008/03/01(土) 00:44:46
スタック操作が煩雑になってきたら、ラッパー使って誤魔化すよりも
最小限の関数だけエクスポートして積極的にLua側に
ロジック追い出すように練り直した方が良いと思うけど。
863デフォルトの名無しさん:2008/03/01(土) 00:46:58
864デフォルトの名無しさん:2008/03/01(土) 08:56:59
きちんと高専とかで勉強したやつらはスタック型好き多いからね
865デフォルトの名無しさん:2008/03/01(土) 09:32:40
>>859
変態っぽいw
でも関数呼び出し面白い

>>864
スタックは仕組みがわかってても、日常のプログラミングでつかわないから疲れる
で、Squirrelは基本ライブラリですらスタック周りのバグがあったりして、
ソースみながら理解しようとしても信用できずに不安(もちろんパッチなげたけどさ)
866デフォルトの名無しさん:2008/03/01(土) 09:33:45
DMonkey、Wolfyによる更新キタ━━━━━━(゚∀゚)━━━━━━ !!!!!












DMonkeyもスレ違いじゃないよね?
867デフォルトの名無しさん:2008/03/01(土) 10:09:03
>>859
<< 1.0 << 12.3 << 0.4ってのは何を渡してるの?(3,0)は関数呼び出しって分かるけど。

>>865
バグについてkwsk

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

Squirrel使う予定なんだけど、やっぱりスタック操作の理解を深めるためにバインダは
自作したほうがいいかな。
868デフォルトの名無しさん:2008/03/01(土) 10:22:28
スタック操作の理解を深めるためには
情報処理試験の勉強をするのがよいとおもう。
869デフォルトの名無しさん:2008/03/01(土) 10:43:45
> バインダは
> 自作したほうがいいかな。

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

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

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

他にも似たようなところがあるかもしれない。
870デフォルトの名無しさん:2008/03/01(土) 10:48:13
そういう意味じゃないって('A`)
まぁ車輪の再発明もいいところだが、バインダ作るよ。できたら公開するぽ
871デフォルトの名無しさん:2008/03/01(土) 10:51:39
あ、>>870>>868に対して。

>>869
とりあえずSqPlusのソースを読み始めたところ。SqPlusと似たインターフェイスになりそう。
名前空間何にしよう。とりあえずsqbindでいいか。
872859:2008/03/01(土) 12:34:57
>>867
ストリームみたいな感じで引数3つスタックに積んでる。
あくまで例なんで、数値に意味は無い。
873デフォルトの名無しさん:2008/03/01(土) 13:13:31
>>872
ストリームみたいにしたいなら
gcall<<"object"<<"setPosition"<<arg<<1.0<<3.0<<-2.0<<end;
みたいにマニュピレータつかった方が見やすいと思うけど
874デフォルトの名無しさん:2008/03/01(土) 14:17:15
もといマニピュレータです
875859:2008/03/01(土) 14:20:12
ああ、元々ストリームを意識して作ったわけじゃないから
その辺は考えてなかった。
876デフォルトの名無しさん: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デフォルトの名無しさん:2008/03/01(土) 15:59:30
バインダの名前sqppに決定。
SqPlusを読んで勉強中。

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

operator=ではちゃんとsq_releaseしてるし、バグだよなぁ・・・やっぱり。
878デフォルトの名無しさん:2008/03/01(土) 17:21:12
って何を血迷ってるんだコピーコンストラクタにreleaseいるわけ無いじゃんOTL
アホス つってきまつ
879デフォルトの名無しさん:2008/03/02(日) 02:02:22
binderなんていらないね
なんでもいいけど一行でcallできるのと
一行でnative closure登録できるようにしとけば
他はほとんどつかわんよ
880デフォルトの名無しさん:2008/03/02(日) 06:28:46
>>879
それを人はバインダと呼ぶ
881デフォルトの名無しさん:2008/03/02(日) 11:54:53
Lua5.1.3のlstrlibのSJIS化してみたので置いときます
ttp://colon.nsf.jp/lua/
MSVC用なんで需要なさそうだけど^^
882デフォルトの名無しさん:2008/03/02(日) 12:48:58
>>881
ソースコードのほうはいいけど、test.luaのほうの文字コードがぶっ壊れてるように見えるんですが。

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

これってテスト用だからわざとだったりします?
でも、SJISじゃないって警告が8箇所出てたりもします。
883デフォルトの名無しさん:2008/03/02(日) 13:13:04
すいません。わざとです。
漢字コードの境界部分を多く含むようにしてあるので
フォントによっては表示すらできません
884デフォルトの名無しさん:2008/03/02(日) 14:01:30
SquirrelのGCは参照カウンタ型か・・・
GCの負荷を分散するわけだからどうしても重くなるよね。
やっぱLuaかな・・・
885デフォルトの名無しさん:2008/03/02(日) 14:17:15
>>884
つ ベンチマーク
って、ゲームとかの組み込みだろうから、単純計算しても参考にならんわな。

実際の簡単なゲームの比較ベンチマークでもあれば、いんだろうけどね。
886デフォルトの名無しさん:2008/03/02(日) 14:35:37
なんでマイノリティの参照カウンタ型採用しちゃったんだろ?
当然参照カウンタ型のデメリットも把握してたはずだが・・・
一般的なLua型にもデメリットはあるが今現在
決定的なアルゴリズムはないのだからとりあえず一般的な型(Lua型)
にしときゃよかったのに。
887デフォルトの名無しさん:2008/03/02(日) 15:14:03
んー。確か、Squirrelを作った理由に、LuaのGCの挙動にブチギレたってのも合ったはず。
どっかに記事なかったかな。
888デフォルトの名無しさん:2008/03/02(日) 15:17:21
ゲーム用途に組み込む人は解放のタイミングが確実な参照カウンタのほうを好む気がする
889デフォルトの名無しさん:2008/03/02(日) 15:28:28
マシンはどんどこリッチになるしな
特にPCは

専用機(コンソール)だと各世代の寿命と段差が大きいが
890デフォルトの名無しさん:2008/03/02(日) 16:46:14
大体Squirrelはマーク&スィープGC積んでるんだから、それでもあえて
リファレンスカウントを選んだのはちゃんと理由はある。
http://wiki.squirrel-lang.org/default.aspx/SquirrelWiki/LuaComparedToSquirrel.html

俺がSquirrelを使ってる理由はリファレンスカウントだから。理由は>>888
巨大なリソースを組み込みスクリプト側で扱う設計にしてるなら、リファレンスカウント
のありがたみが分かるはず。
折角GCつき言語採用してるのに、リソース開放のためにdispose()とかダサいよ。
891デフォルトの名無しさん:2008/03/02(日) 16:55:03
luaにネイティブ整数型がないのはときどき困る。
892デフォルトの名無しさん: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デフォルトの名無しさん:2008/03/03(月) 07:50:12
>>890
まあ「俺の好みだからほっとけ!」いわれればもうなにもいうことないけど
リファレンスカウント型には毎度のカウンタ操作による負担が重いという弱点があり
そこを嫌われてマイノリティなのは事実だから仕方ないよ。
894デフォルトの名無しさん:2008/03/03(月) 08:58:58
>>893
マイノリティか?海外で大人気のPythonは参照カウント&GC式だぞ。Squirrelと同じ。
Pythonのスタックレス版はどっかのネトゲのサーバーに使われてたはず。

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

一般的に嫌われてるってのはただ単に>>893の個人的な感想じゃないか?
両者のメリット・デメリットを把握して運用するのが重要だと思う。
895デフォルトの名無しさん:2008/03/03(月) 09:44:53
>>894
PHPとかIoもやね。あとObjective-Cも。
896デフォルトの名無しさん:2008/03/03(月) 11:17:30
ちょうどそんな話題がPythonスレに出てたよ
ttp://pc11.2ch.net/test/read.cgi/tech/1203611273/182
897デフォルトの名無しさん:2008/03/03(月) 14:32:21
>>896
凄くみにくい言い争いに発展してるんだがwww
898デフォルトの名無しさん:2008/03/03(月) 19:00:16
>>896
参照カウントにも利点があることが分かったよ。なんとなく。

あと、英語が読めないと開き直ることに、利点がないのも分かった。はっきりと。
899デフォルトの名無しさん: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デフォルトの名無しさん:2008/03/04(火) 00:46:02
日本語変数名つかえるようにしたのと入れ替えました
さらに需要ないんだろうなあ
901881:2008/03/04(火) 00:50:25
すいません。間違えてあげちゃいました。
メール欄に881ってw
902デフォルトの名無しさん:2008/03/04(火) 07:56:42
>>894
うーん、この辺が入門としてはお勧めかな。
ttp://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-13308-7
割と大きい図書館ならおいてあるよ。
マーク&すいーぷの欠点はそのとおり。
903デフォルトの名無しさん:2008/03/04(火) 08:42:52
Squirrelのバインダなんだが、C++からエクスポートするときのインターフェイスに悩んでる。
どっちがいいかな?とアンケート。

1.
void foo( cpp_ptr<TestClass> arg )
{
904デフォルトの名無しさん:2008/03/04(火) 08:45:23
xtal使いやすいよ。
905デフォルトの名無しさん: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デフォルトの名無しさん:2008/03/04(火) 13:31:54
話が盛りあがっているところ申し訳無いのですが
GC一般の話題は専用スレがあります。
過疎スレですからそちらを使って頂けないでしょうか。

Garbage Collection (GC)について語るスレ
http://pc11.2ch.net/test/read.cgi/tech/1141646850/
908デフォルトの名無しさん:2008/03/04(火) 13:47:30
>>905
1
909デフォルトの名無しさん:2008/03/04(火) 14:15:57
>>906
GC使わないようなコード書くなら、組み込み言語使う意味が大幅に薄れるような。
そんな涙ぐましい努力をするくらいなら最初からC/C++で書くよ。

俺も参照カウントが優れた方法だとは思わないが、こと組み込み向けならば
メリットがあると個人的には思うよ。
910デフォルトの名無しさん:2008/03/05(水) 01:08:52
LuaのインクリメンタルMark&Sweepの実装も
マジックナンバーばっかで何を根拠に調整してんのか
よくわからんしなぁ。
911デフォルトの名無しさん:2008/03/05(水) 08:12:59
>>909
うん、だから何度もいってるように「俺の好みだからほっとけ」といわれれば何もいうことはないよ。
「実行速度は遅くてもいい」って人には参照カウント式で十分なわけだから。
それでは十分じゃないって人が多いから議論になるわけで。
912デフォルトの名無しさん:2008/03/05(水) 08:24:51
GCの話は、以下、>>907のスレで
913デフォルトの名無しさん:2008/03/05(水) 11:43:39
じゃあLuaEditの話を聞かせてください
914デフォルトの名無しさん:2008/03/05(水) 16:16:32
>>908
dクス
でも結局一般的な型以外は全部C++のオブジェ
クトと仮定することにしたよ。SqPlusがこの方式
を採用してない理由はなにか問題があるんだろうか…
実際運用してみないと分からないか。

>>911
リファレンスカウント&マークスイープGCのハイブ
リット型って言うほど実行速度遅いの?
今妄想してる組み込み向け言語ではリファレンスカ
ウント採用しようかと思ってるんだが(´Д`;)

Flashでゲーム作ったことあるんだけど、GCで止まる
のは心臓に悪かった。それとBitmapDataが必要なく
なったら明示的に破棄しないといけないのがGC言語
なのになんでさ?って思った。

って経験からリファレンスカウント式を採用しようと
思ったわけなんだが…

>>912
一般GCじゃなくて組み込み言語のGCの話題だし
ここでいいんでない
915デフォルトの名無しさん:2008/03/05(水) 18:30:46
リファレンスカウント&マークスイープが遅いか? なんてのが組み込み言語固有の話とはとても思えない。
明らかにGC一般の話だろ。
916デフォルトの名無しさん:2008/03/05(水) 20:00:37
そんくらい許してやれよ
917デフォルトの名無しさん:2008/03/05(水) 20:54:49
GCの話はいいけど、LuaのGCとSquirrelのGCのどっちが優れているか
って話にすりかえるのがまずいんですよ。
ダメといわれた言語使ってる人が不愉快でしょ。
組込み向け言語全般で共有してるスレなんだから、
各言語の優劣とかの議論に結びつく話は自重する方向で行こうよ。
918デフォルトの名無しさん:2008/03/05(水) 20:59:07
じゃあLuaEditの話を聞かせてください
919デフォルトの名無しさん:2008/03/05(水) 23:31:21
LuaEditは5.0用とトップページにあったので何となく止めたな
カラーリングだけなら他のエディタでもできるし
920デフォルトの名無しさん:2008/03/06(木) 08:26:41
話は変わるけど初期値与えてLUA実行するのってどうすれば良いの?
一回実行させた後にスタック弄って値与えるとか?
初期値与える物と与えない物がある、ついでに変数名は変わるんで
引数として値を与える以外の方法でお願い

具体的に言うとRigidChipsのLUAの挙動を再現したい
921デフォルトの名無しさん:2008/03/06(木) 11:40:46
すみません、Squirrel覚えたてなのですが、
Squirrel内にあるデータ構造をC++に渡すには
どのような方法がございますか?
922デフォルトの名無しさん:2008/03/06(木) 16:05:00
Squirrelですが、これで正常なんでしょうか?
なんか納得いかない。

class abc {
v = 0;
};
local a = abc();
local b = abc();
a.v = 1;
b.v = 2;
a = b;
b.v = 3;
print("a = "+ a.v + "\n");
で出力
a = 3
923デフォルトの名無しさん:2008/03/06(木) 16:37:26
squirrel では変数は全部参照なのでそれで正しい。
924デフォルトの名無しさん:2008/03/06(木) 17:29:59
>>923
レスありがとうございます。
なるほど、そうするとホスト側でメタメソッドとかで下手にいじらないほうがよさそうですねぇ。
925デフォルトの名無しさん:2008/03/06(木) 18:20:45
>>920
意味がわからないな。たとえば始めにbarに5をセットしても
プログラム内部にbar=0と書いてあればそこでクリアされてしまう
"初期値を設定"と"挙動を再現"とは絶対無関係でしょ
挙動を再現するならゲームでいうセーブロードの処理を自分で
組み込んで、必要ならセーブデータ改変するとかじゃないか
926デフォルトの名無しさん:2008/03/06(木) 19:53:21
>>925
RigidChips用のスクリプトがこんな感じ(LUAの言語仕様おかしいかもしれないが気にしないでくれ)
val{
a (max=10,min=-10,default=0)
}
lua{
if _key(0)==1 begin a=a+1 end
if _key(1)==1 begin a=a-1 end
}
って感じなんだが
aの初期値を与えてないと値なくてエラー起きるってのをどうにかしたい
(プログラムでvalの部分一度解析させてLUAのファイルに落とし込み実行して
グローバル変数として宣言させるとかだろうか?
927デフォルトの名無しさん:2008/03/06(木) 20:32:35
日本語話せ。
何が分からなくて、何がしたいのかさっぱりわからない。
928デフォルトの名無しさん:2008/03/06(木) 20:44:49
分らない 初期値を与え方
したいこと 初期値を与えたい

初期値であって引数じゃないのが問題
初期値はvalって部分で与えられてる
luaのプログラムは別に用意されてる(luaの中で変数宣言しない事もあるのでそのまま実行するとnilだ言われる)
929デフォルトの名無しさん:2008/03/06(木) 21:25:38
ホスト側でグローバルテーブルにてきとーに値突っ込んで
から実行すればいい話なんじゃねーの。
930デフォルトの名無しさん:2008/03/06(木) 21:32:49
_Gに__indexを定義したいってことかと思った
931デフォルトの名無しさん:2008/03/06(木) 21:39:31
それはValの部分つまりLuaじゃない部分の問題でしょ
それにRigid Chipsの ページ覗いたらlua内で用いる場合は
すべて大文字にするって書いてあるけどなんでAじゃないんだ?
932デフォルトの名無しさん:2008/03/06(木) 21:48:58
>>931
うろ覚えのまま、雰囲気だけ伝えようとガーっと書いてったもんで
大文字ってのも言われて思い出したぐらいでした

グローバルテーブルにてきとーに値の詰む方法調べてるんですが…
コンパイルとdofileだけしかまだ理解出来てないんで難しい…
とりあえず一歩前進した気がします。ありがとうございます。
933デフォルトの名無しさん:2008/03/06(木) 22:03:17
スクリプトを実行しないとLuaオブジェクトを操作できないという、根本的な勘違いが原因か。
RigidChips を例に出すから余計に混乱した。殆ど関係なかったな。

既に言われてるように、スクリプトを実行する前に、
変数に初期値を代入しておけばいいだけのことだよ。
まぁがんばれ。
934デフォルトの名無しさん:2008/03/06(木) 22:17:43
やっと意味分かったwww
最初にa=0って書けばいいのがわからなかったのか
それでも_key()がないっエラーでるだろうから頑張れ
935デフォルトの名無しさん:2008/03/06(木) 22:27:50
>>934
>最初にa=0って書けばいい
これkwsk。グローバルに詰むのを簡単に実現できるって事ですか?

_key()はCの関数を呼ぶ方法とか、そこらへんでやってる人がいるのでそれ参考にしてどうにかなりそうです
936デフォルトの名無しさん:2008/03/06(木) 22:30:39
RigidChipsはLua使わないスクリプトで弄ったことあるけど
ようは未初期化の変数触っててヤバイって話なのかな。
937デフォルトの名無しさん:2008/03/06(木) 22:32:39
そう言う話です。
もう少し…もう少しでRigidChipsのモデルを現実に引っ張り出せる…
938デフォルトの名無しさん:2008/03/06(木) 23:02:25
つまりLua{}の中身を 別のファイルに切り出してhoge.luaに保存
lua.exeでdofile("hoge.lua")したらaがnil だってエラーでたなら
hoge.luaの始めのあたりにa=0とでも書いとけっていってる
あまりに初歩的すぐるから次からもっと勉強してからおいでってこと
939デフォルトの名無しさん:2008/03/06(木) 23:39:28
その方法だとnilのエラー起きるはずのプログラムも通っちゃいますよね
(非常に稀に呼ばれるLUA内のサブルーチンでnilがあった時にエラーが出るはずがいきなりリセットが掛かりそのまま最初から?)
変数維持したままプログラムの再loadとかも出来るんでしょうか?

とりあえずリファレンスのテーブルとスタックの辺り読んだ感じだと
valで初期値が与えられている変数全部にlua_pushnumberとlua_setglobal適用してやれば良い気がしてるんですが…
940デフォルトの名無しさん:2008/03/07(金) 00:06:13
なぜ何もやらない内にまた質問する?
941デフォルトの名無しさん:2008/03/07(金) 00:18:51
その手段は良いような気がするけれども
言われた通りにやった方が楽ではないかという心理で

とりあえず原因不明のエラー\(^o^)/今日はもう寝て明日続きやってみます
942デフォルトの名無しさん:2008/03/07(金) 02:00:22
RigidChipsのチュートリを見ると

Val {
Handle(default=0,min=-20,max=20,step=5)
}
Key {
2:Handle(step=-0.5) //キー2(初期値←)が押されてる間handle-0.5
3:Handle(step=0.5) //キー3(初期値→)が押されてる間handle+0.5
}

こんなのが出てくるんだけど、これはいったいどうなってるんだろう?
Keyはテーブルではなさそうだし、luaではキーワード付き引数は使えないはず。
RigidChipsの内部で解析されてるんだろうか。
943デフォルトの名無しさん:2008/03/07(金) 04:06:47
>>942
lua{}ブロック内以外は、Luaとは無関係。
内部で解析されてる、で合ってる。
944デフォルトの名無しさん:2008/03/07(金) 08:54:42
で、次スレだが、スレタイどうする?
945デフォルトの名無しさん:2008/03/07(金) 09:20:15
946デフォルトの名無しさん:2008/03/07(金) 10:13:18
squirrelの話題がスレ違いじゃないようなスレタイに
947デフォルトの名無しさん:2008/03/07(金) 12:07:02
それはテンプレにでも書いとけば
948デフォルトの名無しさん:2008/03/07(金) 12:22:41
【Lua】組み込み言語統合【squirrel】
に一票。
949デフォルトの名無しさん:2008/03/07(金) 12:56:35
テンプレに「煽り、教えて君はスルーしましょう」に一票
950デフォルトの名無しさん:2008/03/07(金) 13:11:27
>>948
統合いらなくね?

【Lua】組み込み言語【squirrel】
951デフォルトの名無しさん:2008/03/07(金) 13:17:54
付けるんだとしたら統合じゃなくて「総合」だな
あと細かいがSquirrelのSは大文字で
952デフォルトの名無しさん:2008/03/07(金) 14:20:01
>>951
【Lua】組み込み言語総合【Squirrel】

に一票で。
953デフォルトの名無しさん:2008/03/07(金) 14:56:14
スレタイなんてどうでもいい

に一票
954デフォルトの名無しさん:2008/03/07(金) 15:43:15
一応スレからURL適当に拾ってテンプレ案作ってみた。
wikiあるんだからリンクあんま要らんかも。長いけど、まあ参考にして貰えれば。
Squirrelの話題も増えてたし、Luaじゃなくて組み込み全体のスレにするっていうのは可決でいいよね?
↓↓↓


LuaやSquirrelなど、組み込み用途で使われるプログラミング言語についてのスレッドです
まとめwiki(なにか質問する前に必ずみること!)
http://wikiwiki.jp/lua/

その他参考URLは>>2

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


■関連してるかもしれないスレ
【Perl,PHP】LLバトルロワイヤル【Ruby,Python】
http://pc11.2ch.net/test/read.cgi/tech/1188997302/

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

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

各種ライブラリ紹介スレ2(ゲ制作)
http://pc11.2ch.net/test/read.cgi/gamedev/1177886529/
955デフォルトの名無しさん:2008/03/07(金) 15:43:37
参考URL
■Lua
ttp://www.lua.org/ (本家)
ttp://lua-users.org/ (lua-users)
ttp://luaforge.net/ (LuaForge)
ttp://sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html(5.1マニュアル和訳)


■Squirrel
ttp://www.squirrel-lang.org/ (本家)
ttp://sourceforge.net/projects/squirrel/
ttp://sourceforge.net/projects/sqplus/ (SqPlus)
ttp://sourceforge.net/projects/squirrelsh/ (Squirrel Shell)
ttp://wikiwiki.jp/lua/?Squirrel_Lang%2Ftoc(wiki内2.1マニュアル和訳)


■他、前スレに載ってた言語
The Pawn language(だれも使ってなさそうな、組み込み言語)
ttp://www.compuphase.com/pawn/pawn.htm

NullLogic Embedded Scripting Language
ttp://sourceforge.net/projects/nesla/

Xtal(ゲーム向け。スタックを意識しなくていい?)
ttp://d.hatena.ne.jp/xtalco/
ttp://code.google.com/p/xtal-language/
ttp://blog.livedoor.jp/dankogai/archives/50836939.html
956デフォルトの名無しさん:2008/03/07(金) 16:32:40
俺も
【Lua】組み込み言語総合【Squirrel】
に一票
957デフォルトの名無しさん:2008/03/07(金) 17:19:25
こちらも念の為用意してたテンプレを晒してみる。
リンクは同じものを省略した。まあ参考程度に。
>954の文章の方がすっきりしてていいな。
あと関連スレのLLとGCはなくてもいいんじゃね。

--
プログラム言語の処理系をアプリケーションに組み込む話と
それに適した言語についてのスレです。話題の中心はLuaと
Squirrelですが他の言語もこの趣旨に沿う範囲でOK。

関連スレ
 2 part forth
 http://pc11.2ch.net/test/read.cgi/tech/1073673931/
 ●●●●TCL/TKなら俺に聞け 2●●●●
 http://pc11.2ch.net/test/read.cgi/tech/1177998764/
 ECMAScript デス 3
 http://pc11.2ch.net/test/read.cgi/tech/1190160481/
 「コンパイラ・スクリプトエンジン」相談室12
 http://pc11.2ch.net/test/read.cgi/tech/1188688416/

参考URL
 Lua言語の紹介
 http://staff.aist.go.jp/yutaka.ueno/lua/docsjp.html
 入門Luaプログラミング
 http://www.amazon.co.jp/dp/4797342722/
958デフォルトの名無しさん:2008/03/07(金) 19:06:48
組み込み言語総合じゃなくて組み込み系言語総合の方がいい
959デフォルトの名無しさん:2008/03/07(金) 20:17:18
http://tgws.fromc.jp/wiki/lua/
ここは?目的別が初級者向けな気がするけど
960デフォルトの名無しさん:2008/03/07(金) 22:56:10
悲しいWikiだな
961デフォルトの名無しさん:2008/03/08(土) 08:37:38
>>956
に一票
962デフォルトの名無しさん:2008/03/08(土) 09:37:35
関連スレにガベコレスレも
http://pc11.2ch.net/test/read.cgi/tech/1141646850/
963デフォルトの名無しさん:2008/03/08(土) 11:29:36
>>954には入ってる
964962:2008/03/08(土) 20:28:56
失礼しました m(_ _)m 見落としてたようです
965デフォルトの名無しさん:2008/03/08(土) 23:20:20
>>962
>957は要らないと書いているので要るという意見がでるのは重要。

ところで>954と>957は微妙に意味は違うが>954でまとまるのかな。
954ならアプリケーションの言葉を入れて欲しい。
↓↓↓
LuaやSquirrelなどアプリケーションへの組み込み用途で
使われるプログラミング言語についてのスレッドです
966デフォルトの名無しさん:2008/03/08(土) 23:31:14
かなりの悪文だな。
967デフォルトの名無しさん:2008/03/09(日) 01:07:36
> LuaやSquirrelなどアプリケーションへの組み込み用途で
> 使われるプログラミング言語についてのスレッドです

よいと思います
968デフォルトの名無しさん:2008/03/09(日) 06:43:36
よいっすね
969デフォルトの名無しさん:2008/03/10(月) 05:02:23
とりあえず、ファイル入力教えて
CVSのでーたってかんたんによみこめるの?
970デフォルトの名無しさん:2008/03/10(月) 06:14:45
>>969
うん、簡単。
checkoutでリポジトリから読み込んで手元にコピーができるよ。
971デフォルトの名無しさん:2008/03/10(月) 11:07:51
CSVを間違えてないか、と
972デフォルトの名無しさん:2008/03/10(月) 14:29:17
CVSって書いてんじゃん。俺はsvnだけどな。
973デフォルトの名無しさん:2008/03/10(月) 19:30:29
>>972
ファイル入力って書いてあるじゃん。
974デフォルトの名無しさん:2008/03/10(月) 19:44:33
>>973
でーたってかんたんって書いてあるじゃん。
975デフォルトの名無しさん:2008/03/10(月) 21:53:21
聞いてる方は聞き方が悪いが
答えてる方は意地が悪いな
976デフォルトの名無しさん:2008/03/10(月) 22:12:27
そんなこと書き込む暇があったら、
お前が教えてあげればいいだけなのにな
977デフォルトの名無しさん:2008/03/10(月) 22:48:41
教えるとこうなるからじゃね→ while true do oshiete() end
978デフォルトの名無しさん:2008/03/10(月) 22:53:55
かんたんに出来るとか言ってるやつがいるんだから、そいつが解決してくれるだろ
俺たちはその回答を待っててやればいいのさ
979デフォルトの名無しさん:2008/03/10(月) 23:42:53
つまりLuaかSuirrelでCVSクライアントを作るってこと?
980デフォルトの名無しさん:2008/03/10(月) 23:44:54
LuaってCSVファイルの読み込みすら簡単にできないんだ。
糞だな。
981デフォルトの名無しさん:2008/03/10(月) 23:48:59
よかったね♪
982デフォルトの名無しさん:2008/03/11(火) 00:25:05
組み込み言語なんだぞ
983デフォルトの名無しさん:2008/03/11(火) 01:05:35
標準出力すらライブラリ扱いDA☆ZE
984デフォルトの名無しさん:2008/03/11(火) 08:01:48
>>980
エクセルでもつかえよ
985デフォルトの名無しさん:2008/03/11(火) 13:07:09
少し早い気もしますが980超えたので次スレ立てますた。

【Lua】組み込み系言語総合【Squirrel】
http://pc11.2ch.net/test/read.cgi/tech/1205208141/
986デフォルトの名無しさん:2008/03/11(火) 16:07:02
987デフォルトの名無しさん:2008/03/11(火) 17:14:07
988デフォルトの名無しさん:2008/03/11(火) 17:46:51
じゃあおれも乙
989デフォルトの名無しさん:2008/03/11(火) 20:23:19
LuaのGCはマーク&スィープをさらに組み込み向けに改良したインクリメンタル方式なのであった!
990デフォルトの名無しさん:2008/03/11(火) 20:38:07
>>980
CSVファイル専用の関数が標準であるわけではないので、
「関数一つで簡単に解析できる」という意味ならたしかに簡単じゃない。
ただ正規表現は標準であるし、難易度はsquirrelやxtalなんかの他のスクリプト言語と変わらんぞ。

>>983
もともと組み込みや設定ファイル用に作られた言語なので、標準出力は当然ライブラリ扱い。
これはバイナリサイズを小さく保つことに貢献しているともいえるな。
991デフォルトの名無しさん:2008/03/11(火) 21:14:13
>>990
煽りに冷静に返すその姿に萌え
992デフォルトの名無しさん:2008/03/11(火) 21:32:04
冷静だな
俺も萌えた
993デフォルトの名無しさん:2008/03/11(火) 21:35:52
990になら掘られてもいい
994デフォルトの名無しさん:2008/03/11(火) 23:21:56
function read_csv(f)
..local ls={}
..local ti=table.insert
..for l in io.lines(f) do
....local function sep(l)
....local ws={}
....for w in l:gmatch"([^,]*),?" do ti(ws,w) end
....return ws end
....ti(ls,sep(l))
..end
return ls end
995デフォルトの名無しさん:2008/03/11(火) 23:24:11
まあ難しくはないけど、エディタで{}つけてそのまま読んだ方が早い気がする
996デフォルトの名無しさん:2008/03/11(火) 23:36:26
中身が全部数値ならそれでも良いんだろうけど、
Excelの出力したcsvで数値以外のが混じってる場合だと問題起きそう。
"とか改行の入った文字列とかで。
997デフォルトの名無しさん:2008/03/12(水) 01:15:34
ゆ、ゆ、ゆ・・・
998デフォルトの名無しさん:2008/03/12(水) 01:17:31
  _____________
 /::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::/
/:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
999デフォルトの名無しさん:2008/03/12(水) 01:17:54
          __   _____   ______
         ,´ _,, '-´ ̄ ̄`-ゝ 、_ イ、
        'r ´          ヽ、ン、
      _,'==─-      -─==', i__
     /::::::i イ iゝ、イ人レ/_ルヽイ i |:::::::/
    /:::::::::レリイi (ヒ_]     ヒ_ン ).| .|、i .||:::::/
     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                __   _____   ______
               ,´ _,, '-´ ̄ ̄`-ゝ 、_ イ、
              'r ´          ヽ、ン、
              ,'==─-      -─==', i
              i イ iゝ、イ人レ/_ルヽイ i |
            _レリイi (ヒ_]     ヒ_ン ).| .|、i .||__
           /:::::::::!Y!""  ,___,   "" 「 !ノ i |:::::::/
          /::::::::::::(L.',.   ヽ _ン    L」 ノ| .|::::/
           ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
1000デフォルトの名無しさん:2008/03/12(水) 01:18:16
                        __   _____   ______
                        ,´ _,, '-´ ̄ ̄`-ゝ 、_ イ、
                       'r ´          ヽ、ン、
_人人人人人人人人人人人人_ ,'==─-      -─==', i
> ゆっくりしていってね!!!< i イ iゝ、イ人レ/_ルヽイ i |
 ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄ レリイi (ヒ_]     ヒ_ン ).| .|、i .||
                     _!Y!""  ,___,   "" 「 !ノ i | __
                    /::::: (L.',.   ヽ _ン    L」 ノ| .|:::::::/
                   /:::::::: | ||ヽ、       ,イ| ||イ| /::::::::/
                    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。