2010-05-01から1ヶ月間の記事一覧

LuaLoggingを使う

Lua

ログライブラリLuaLoggingを使ってみよう。 Log4Jと似ていて、すごくラクチン。 [画面表示の例] require"logging.console" local logger = logging.console() logger:setLevel (logging.WARN) logger:info("logging.consoleテスト") logger:debug("デバッグ"…

LuaJIT超はえええ

Lua

LuaにもJITコンパイラがあって、それが早いらしいので、ちょっと動かしてみた。 [テストコード] local i = 0 local j = 0 local k = 0 for i=0,100000 do for j = 0 , 10000 do k = i*j + k end end print( os.clock() ) [テスト結果:かなりしょぼいPCの結果…

LuaからC言語の中に定義した構造体や定数を使う

Lua

tolua++が強力なのは構造体や定数もLua側に取り込んでくれることです。 どういうことかというと、 xxx = 構造体.メンバ yyy = C言語の中の定数 といったような、C言語と結びついたLuaコードを書くことができます。 ポイントは一点だけ。構造体にはインスタン…

tolua++が生成したグルーコードを見てみる

Lua

以前(http://d.hatena.ne.jp/kitfactory/20100511/1273583585)に作った、tolua++が生成したCとLuaの連携を実現するグルーコード。 LuaのC言語との連携で大事なのは、Lua側にCの関数や型を登録してCとの関係を作り上げることと、実際の関数呼び出しの処理(Lu…

Lua実行環境 アップした

Lua

[はむさんのSJIS対応Lua:lua5_1_3_Win32_mbenc_a3.zip] http://hammm.dw.land.to/lua/ mingwでビルドした。 とりあえず、物置にアップしておこう。 ビルドが面倒な方、ご利用ください。 とはいっても、本人、make mingwとコマンド一つしただけですが。。。 …

LuaからC言語を呼び出す

Lua

C言語の呼び出しが簡単なのがLuaの良いところ。tolua++というツールもあり、本当に楽です。(tolua++は後でファイル置き場に置こうと思ってます。) ■手順はこんな感じです。 ①C言語ヘッダとソース書く。 ②ヘッダから公開したいもの切り出し、pkgファイルに…

tolua++バイナリ (mingwでコンパイル)

Lua

tolua++1.0.93をmingwでビルドしたバイナリを物置に置いてみました。 Python入れろだの、Scons入れろだの言われて、tolua++のインストールでめげそうな人、お使いください。 http://dl.dropbox.com/u/6989924/tolua%2B%2B1.0.93.zip

Luaの好きなイディオム 3つ

Lua

今までずっとAPI紹介みたいな記事書いたので、関数呼ぶだけなら、そのままC言語使えばいいじゃないかと思われそうです。。。ここらで少し気分転換しようかと。 世の中には色々な言語を使われる方がいるので、ご意見さまざまとは思いますが、個人的には次の文…

日付、時刻を扱う

Lua

日付はOSの機能で扱うことができます。 --文字列形式で日時を取得 print( os.date() ) --テーブル形式で日時を取得する local d = os.date("*t") print( d["year"].."/"..d["month"].."/"..d["day"] ) print( d["hour"]..":"..d["min"]..":"..d["sec"] ) --…

LuaFileSystemを使ってみる (ファイル操作)

Lua

Luaにはos機能でいくつかファイル操作ができますが、ディレクトリを操作するようなときに便利なのがLuaFileSystemです。 require( "lfs" ) --現在位置を表示する print( lfs.currentdir() ) --はむ!さんのSJIS対応Luaであれば日本語も大丈夫 --以下でc:\テス…

LuaSocketでHTTPクライアント (通信)

Lua

LuaSocketには他にもhttpやsmtp,ftpクライアントがある。 local http = require ("socket.http") local ltn12 = require("ltn12") local resp = {} -- www.lua.orgにアクセス -- sink(データの送り先)をテーブルに -- 返値:応答、コード、ヘッダー local r,…

LuaSocketでTCPクライアントを書く

Lua

LuaSocket tcp clientの例 --ソケットのパッケージをreqireする local socket = require( "socket" ) -- TCPで接続する local client = assert(socket.connect("127.0.0.1", 5000)) -- TCPで送る client:send( "Hello!!\n" ) -- サーバから応答をもらう loca…

はてなダイアリーのスーパーpre記法 良いね

Lua

はてなダイアリーのヘルプをみていて、スーパーpre記法なんてあるのに気づいた。 これいいねぇ。 ">|lua|〜||Luaコードがガシガシきれいに表示される。

LuaSocketでTCPサーバーを書く (通信)

Lua

LuaSocketのサーバー例 --ソケットのパッケージをreqireする local socket = require( "socket" ) -- TCPのサーバーソケットを開く(5000番ポート) local server = assert(socket.bind("*", 5000)) -- IPとポートを取得する local ip, port = server:getsockn…

LuaSocketをmingwで

Lua

LuaのネットワークライブラリにLuaSocketがあります。 [LuaSocket] http://luaforge.net/projects/luasocket/ このLuaSocketですがVC++,unix環境でのビルドは準備されていますが、mingwについてはうまくビルドができませでした。今までmingwとcygwinでは違い…

Luaのライブラリ、LuaForge

Lua

Luaはソースが200kbほどですが、言語のエンジンがメインで本当に極限まで限られたライブラリしか入っていません。自分でライブラリを足したり、あらかじめある程度のライブラリがインストールされているLua for Windowsをインストールするなどする必要があり…

LuaのHelloWorld

Lua

コマンドプロンプトを開いたときにlua5.1.exe にパスは通っていますね? 次に動作チェックするため、LuaでHelloWorldを作りましょう。 テキストエディタで新しいファイルに print "Hello World" と書いてhello.luaとして別名で保存します。これで完成です。 …

Lua実行ファイルのインストール

Lua

Luaはスクリプト言語で、仮想マシンをつかって処理されます。この仮想マシンですが、200kb程しかない超小さいものです。なので、次のようなパターンでLuaを利用することができます。 [Luaの利用方法] 1.Lua.exeをインストールする 2.自分でコンパイルしたLua…

Luaの開発用エディタについて

Lua

これからLuaを頑張るぞ、そんなあなたに超オススメなのがZedエディタとGeanyというエディタです。 Luaはエディタで簡単に開発できるスクリプト言語です。なのでNotepadで開発するのでも良いのですが、やっぱり強調表示させたい等々希望がでてきます。そうな…

このサイトの活用方法

各テーマはタイトルをつけて、短く書きます。 なので、検索性は高いと思います。 左下側にある日記の検索を使ってみてください。 半角で*[Lua]と打って検索すれば、Luaに関する記事が一覧できます。 半角で*[雑]と打って検索すれば、雑に分類した記事が…

まずLuaのご本尊とバイブルを知っとこ

Lua

まずLuaに手を出すにあたって、Lua教のご本尊とバイブルが何かという確認は大事ですよね。 [ご本尊] Luaのご本尊は↓です。 http://www.lua.org/ [バイブル] Luaのバイブルは↓です。 他にも大事なのは下のあたりかな。。。 [Lua Wikipedia] http://ja.wikiped…

このサイトでは、あなたのLua生活のQOL向上を目指します。

Lua

このブログはテーマの一つにLuaというプログラム言語を取り上げようと思います。Luaはすごく小さなスクリプト言語で、個人的には、その小ささをとても良く活かした言語だと思います。小さいので軽い、小さいので何処にでも組み込むことができる、小さいので…