タグ

Luaに関するzetamattaのブックマーク (188)

  • コルーチンのスレッドはスタックに積まれる - good enough?

    今日はLuaではまってしまいました。各オブジェクトに1つのコルーチンを割り当て、オブジェクトごとにスクリプトを走らせているのですが、オブジェクトの数が一定以上になるとハングアップしてしまうという現象に悩まされました。止まる箇所が不定なので、てっきりメモリの解放し忘れや二重解放なのかと思ってチェックしてみましたが特に問題なし。もしかしてメモリが足りなくなったのかと調べてみましたが全然余裕がありました。 ふと思うところがあり、lua_newthread()の説明を読んでみたらそこに答えがありました。lua_newthread()は、スレッドを作成したあと、戻り値として作成したスレッドを返すのと一緒に、そのスレッドをスタックに積むそうです。そしてスタックから削除されてから初めて、スレッドはガーベジコレクとの対象となるそうです。スレッドがガーベジコレクとの対象となるということは覚えていたのですが、

    コルーチンのスレッドはスタックに積まれる - good enough?
    zetamatta
    zetamatta 2010/09/08
    lua_newthread() はスレッドを戻り値として返すとともに、スタックに詰むので、そちらをpopしてやらないと、ガベコレの対象にならない:参考>>http://www.usamimi.info/~hellfather/game/lua_delete_coroutine.xml
  • LuaJava - A Script Tool for Java

    Overview LuaJava is a scripting tool for Java. The goal of this tool is to allow scripts written in Lua to manipulate components developed in Java. LuaJava allows Java components to be accessed from Lua using the same syntax that is used for accessing Lua`s native objects, without any need for declarations or any kind of preprocessing. LuaJava also allows Java to implement an interface usi

    zetamatta
    zetamatta 2010/09/07
    Java から Lua スクリプトを呼び出すツール。Java のオブジェクトを Lua スクリプトの中から呼べる!
  • iPhoneアプリにluaを組み込む - stoikheia’s blog

    SDKの規約が2010年6月7日の変更で多少緩和されたこともあり、 以前から審査に通った例のあるluaの組み込みも大丈夫じゃね? と考えてまじめに組み込むのを試した。 <10/09/18修正> nao_19さんから指摘いただきluaの古い関数を修正しました あと初期化の位置がまずかったので修正 1.LuaのソースコードをiPhoneのHelloWorldに組み込みコンパイルする。 Lua 5.1のソースコードを http://www.lua.org/versions.html#5.1 からダウンロードする。 iPhone dev centerからsample codeに移動し hello worldのソースコードをダウンロードする。 HelloWorldのビルドを確認 プロジェクトを開き プロジェクト設定のすべての構成ベースSDKを iPhoneシミュレータx.xにして、 試しにビルド。

    iPhoneアプリにluaを組み込む - stoikheia’s blog
    zetamatta
    zetamatta 2010/08/28
    おぉ、これはすごい
  • ゲームフレームワークLOVE - Radium Software

    先日、IndieGames.comで"Not Tetris"というゲームが紹介されていた。 テトリスを模した物理シム系のゲームだ。シンプルなネタゲームだけれど、世界で最も有名であろうゲームボーイ版のテトリスに対するオマージュが感じられて面白い。 このゲームは"LOVE"という、スクリプト言語Luaをベースにしたフレームワークを使って制作されている。LOVEには2D物理エンジンとしてBox2Dが組み込まれているので、こういった物理シムを使ったゲームは比較的手軽に制作することができる。 以前、Luaを使った軽量なフレームワークは無いかと探していたときに、このLOVEの存在を偶然に知った。ユーザー数はさほど多くないけれど、軽量な設計や、整備されたドキュメント、マルチプラットフォームへの対応など、無難によくできている。ゲームプログラミングの入門には適した環境かもしれない。 余談 LOVEはよくでき

    ゲームフレームワークLOVE - Radium Software
    zetamatta
    zetamatta 2010/08/26
    Lua を使ったフレームワーク "LOVE"と、それで製作されたゲーム "Not Tetris"の紹介
  • テキストベースIRCクライアントweechatのススメ - このブログはURLが変更になりました

    今までIRCクライアントとして、CUIベースのirssiを使っていたのだが、weechatに乗り換えることにした。これ最強かも。 weechatが最強であるポイント テキストベースで利用可能(GUI版も存在する) チャンネル参加者一覧がテキスト版でも表示される 画面分割で複数のチャンネルを同時に表示可能 Linux/*BSD/Mac OS X/Windowsでも動く 文字コード変換機能搭載 Perl, Python, RubyおよびLuaによる機能拡張が可能 デフォルト設定のままでもある程度使いものになる irssiは様々なカスタマイズが可能だが、デフォルト設定がショボくカスタマイズに骨が折れるのでこれは良い。 irssiとショートカットが微妙に異なるので既存irssiユーザは慣れるまで時間がかかるかもしれないが、ドキュメントもそれなりに充実してるので移行する価値あり。是非お試しあれ。 ち

    テキストベースIRCクライアントweechatのススメ - このブログはURLが変更になりました
    zetamatta
    zetamatta 2010/07/28
    Perl, Python, RubyおよびLuaによる機能拡張が可能、テキストベースで利用可能、Linux/*BSD/Mac OS X/Windowsでも動く、文字コード変換機能搭載 などなど
  • This Site Has Moved - Hyperpolyglot

    Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License

    zetamatta
    zetamatta 2010/07/25
    bash / tcl / Lua / JavaScript / io の比較表
  • コルーチンは素敵 - 名古屋313の日記

    zetamatta
    zetamatta 2010/07/25
    PSP で Lua が使える…だと!
  • LOVE

    Welcome As you probably know by now, LÖVE is a framework for making 2D games in the Lua programming language. LÖVE is totally free, and can be used in anything from friendly open-source hobby projects, to evil, closed-source commercial ones. Some interesting places to go from here: Lua Never used Lua before? It's a really cool language! This manual won't teach you Lua, but fortunately there are ot

    zetamatta
    zetamatta 2010/07/24
    Lua言語で 2Dゲームを作成するフレームワーク LÖVE
  • Lua で apply。 : torus solutions!

    zetamatta
    zetamatta 2010/07/17
    unpack関数で、引数内に配列を展開すればよい。
  • http://1978th.net/tech/promenade.cgi?id=26

    zetamatta
    zetamatta 2010/07/17
    Tokyo Tyrant(TT)という DB に Lua を組み込む試み。mixi エンジニアブログの転載
  • Lua/組み込み - assari

    zetamatta
    zetamatta 2010/07/16
    リンク集
  • インデックスアクセスと rawget/rawset は、どちらが高速か? - 野良C++erの雑記帳

    以下のスクリプトを書いてテストしてみた。 -- rawget と ls[k] および -- rawset と ls[k] = v は、どっちが高速か? -- 関数 f を n 回実行するのにかかった時間を測定する do local clock = os.clock function time( n, f, ... ) local oldtime = clock() for i = 1, n do f(...) end return clock() - oldtime end end -- ある関数 f を 1 秒間で何回実行出来るかを測定する do local time = time function benchmark( f, ... ) local n = 1000 -- 最低でも実行する回数 local t = 0 local total = 0 repeat t = t + tim

    インデックスアクセスと rawget/rawset は、どちらが高速か? - 野良C++erの雑記帳
    zetamatta
    zetamatta 2010/07/16
    曰く『既に存在するキーに対するアクセスの場合も、そうでない場合も、基本的に普通のテーブルアクセスの方が高速』
  • [C][Lua]Luaの中の迷宮

    問題は、返り値です。 返り値はFUNCTION型です。 これは、C言語では受け取ることができません。 スタックに置いたまま放置…とすると、それはそれで面倒です。 さてどうするか…Luaの適当な変数の中に突っ込んでおきましょう。 その適当な変数を提供するのがLuaL_refです。 int func = luaL_ref(L,LUA_REGISTRYINDEX); // 関数を呼びたいとき lua_rawgeti(L,LUA_REGISTRYINDEX, func); lua_pushinteger(L, 2) lua_pcall(L, 1, 1, 0); // ここで、スタックに3という結果が入っている lua_pop(L, 1); // funcが必要なくなったとき luaL_unref(L,LUA_REGISTRYINDEX, func); luaL_refを呼び出すと、スタックの一番上

    zetamatta
    zetamatta 2010/07/13
    Lua から受け取った関数など、Cで扱いにくい値を適当な変数につっこむのに便利なのが、LuaL_ref関数とLUA_REGISTORYINDEXテーブル
  • 空想具現化プログラミング Lua VM on Flash/Java/Lua

    LuaはC言語で実装されたVMなわけですが、最近は別の言語で実装される例がいくつかでてきています。 ちょっとまとめておきます。 flua 0.1 : Lua VM on Flash(ActionScript) Flashの上で動作するLuaVMです。これを使えば、ブラウザ上で動作するFlashの中で、Luaスクリプト(バイナリ状態のもの)を動作させることができる・・・というわけです。「インストール」せずにクライアントマシン上でLuaスクリプトを動かす唯一の方法といえるかもしれません。 ※実装はまだかなり初期の状態のようです。 Kahlua rev52 : Lua VM on Java(J2ME) Javaの中でも、携帯などで動作可能なJ2ME仕様の上で動作するLua VMです。 Javaといえば、JRuby,Jython,Scalaなどでスクリプト言語関連がにぎわっているところですね。 A

    zetamatta
    zetamatta 2010/07/08
    Java や Flash の中で動く Lua というのも、もうちゃんとあるのか。これはおもしろい
  • LuaTinyCGI サンプル 0.0.1-alpha リリースのお知らせ - 週記くらい(BTS開発記)

    zetamatta
    zetamatta 2010/06/26
    曰く『LuaTinyCGIは、Luaで伝統的なCGIアプリケーションを書くためのフレームワークです』
  • notfound

    We are sorry, but, the blog or user you are looking for can not be found. Checkout some of the blogs in our showcase.

    notfound
    zetamatta
    zetamatta 2010/06/24
    曰く『今回は、Interop Tokyo 2010で参考出展したつぶやくルーター「@X10_1gou」のLuaスクリプト大公開です』 ― おぉ
  • つぶやくルーター「X10」、ヤマハが参考出品

    Interop Tokyo 2010でヤマハが参考出展した「X10」は、最近流行のTwitterを使って、つぶやくルーター。なんとTwitter経由で外からの質問に自動的に応えるという荒技まで披露している。 RT58iの後継機種登場? Interop Tokyo 2010の住商情報システム(SCE)のブースでヤマハが参考出展しているのが、「X10」と呼ばれるSOHO向けルーターだ。 黒く細長いボックス型筐体を見る限り、X10はヤマハのベストセラールーターNetVolante RT58i」の後継となる製品。RT58iの発売がいまから4年前の2006年なので、(今年出れば)ほぼ4年ぶりの新製品となる。RTX1200をはじめとする最新のヤマハルーターと同じく、ギガビットに対応。前面にUSBポートを2つ持ち、モバイルワイヤレスアダプタをつなぐことでWAN通信が行なえる。また、USBポートにHDD

    つぶやくルーター「X10」、ヤマハが参考出品
    zetamatta
    zetamatta 2010/06/24
    『microSDがスロットから抜かれると、自動的に抜かれた旨をTwitterでつぶやく』『これを実現しているのが、最近のヤマハルーター(RTX1200/SRT100)に実装されているLuaスクリプト』 ― とりあえずLua入れとけな、ハードメーカ++
  • フリーのメディアプレーヤーソフト最新版「VLC Media Player 1.1.0」公開 

    zetamatta
    zetamatta 2010/06/24
    曰く『スクリプト言語「Lua」による機能拡張やカスタマイズも可能だとしている』―なんと!
  • NYAOS 3000でいろんなコマンドのサブコマンドを補完する - メモ:wantora

    NYAOSでhgやgemなどのサブコマンドを補完するスクリプト、の修正版 - メモ:wantoraに修正版があります。 NYAOS-3000 2.98_0が公開された。今回の更新には個人的に嬉しい機能がある。 一つはバッチファイルの拡張子を省略出来るようになったこと、もう一つはnyaos.completeに第三引数が追加され、コマンドラインの文字列が取得できるようになったこと。 特にnyaos.completeの第三引数追加はnyaos.keyhookを併用する必要がなくなった。 NYAOS 3000でMercurialのサブコマンドを補完する - メモ:wantoraのサブコマンド補完はMercurialだけだが、今回のスクリプトは変数completesにテーブルを返す関数をコマンド名のキーに追加すれば、様々なコマンドに対応できる。 -- MIT License (http://d.ha

    NYAOS 3000でいろんなコマンドのサブコマンドを補完する - メモ:wantora
    zetamatta
    zetamatta 2010/06/12
    2.98_0 の追加機能が好評でよかった!
  • NYAOS 3000でMercurialのサブコマンドを補完する - メモ:wantora

    6/12: 2010-06-12 - メモ:wantoraに最新版があります。 nyaos.completeを使ってMercurialのサブコマンドを補完するスクリプトを作ってみた。 nyaos.completeでは補完対象の文字列は取得できるが、補完対象の文字列の前にある文字列が取得できないので、nyaos.keyhookを併用してそれを実現している。 -- MIT License (http://d.hatena.ne.jp/wantora/20101212/1292141801) local command_text = nil local hgcomplete = nil local function get_hgcomplete() local hgcmds = {} for line in nyaos.eval('hg help'):gmatch('[^\n]+') do lo

    NYAOS 3000でMercurialのサブコマンドを補完する - メモ:wantora
    zetamatta
    zetamatta 2010/06/06
    曰く『nyaos.complete では補完対象の文字列は取得できるが、補完対象の文字列の前にある文字列が取得できないので、nyaos.keyhookを併用してそれを実現している』 ― なんという使いこなしっぷり!