Lua

lua51.dllを静的リンクせずにliblua.aをリンクする

Lua + C言語で、lua51.dllを静的リンクしないでliblua.aをexeに含めるメモです。 なんでこんなことを書いてるかって、C言語に関わってくる低レイヤーな部分は全然知らないからなのですよ。 lua51.dllを静的リンクする場合。 $ gcc lua51.dll main.o (その他.…

各言語(興味のあるやつだけ)のパッケージマネージャ

Ruby Python node.js Lua Go RubyGems easy_install npm LuaRocks goinstall goinstallはパッケージマネージャなのかな、どうなのかな。

Ubuntu10.10 64bitでC言語のアプリケーションにLuaを組み込もうとして試行錯誤したメモ

簡単に組み込めるんだろう、と思ってやってみたら全然ダメで、結構苦しんだのでその時のメモ。 環境:Ubuntu10.10 64bit / Lua 5.1.4 / gcc 4.4.5 C言語側は同じディレクトリにあるmain.luaを読んで実行するだけのコード。 /* main.c */ #include <lua.h> #include <lualib.h></lualib.h></lua.h>…

入門Luaプログラミング第12章 Luaの組み込み

既存のプログラムにLuaを組み込む場合のシナリオなど。これで最後かー。 C言語が主体の場合 基本的にC言語が主体で、ところどころLuaを使いたい場合はLuaで処理が終わったらすぐに戻ってくるように作るといいっぽい。 設定ファイルそのものをLuaスクリプトに…

入門Luaプログラミング第11章 C言語との連携

C言語とLuaの連携などなど。スタックの説明のあたりがさっぱりだったのでそこは後で…… C言語の自作関数をLuaから使う C言語側で作った自作関数を登録してLuaから呼ぶ。 最初にC言語本体を。 /* aaa.c */ #include <lua.h> #include <lualib.h> #include <lauxlib.h> int aaa(lua_State* L</lauxlib.h></lualib.h></lua.h>…

入門Luaプログラミング第10章 Luaのモダンな機能

連想配列――テーブルを使ったcase文やスクリプトのモジュール化、C言語で作った共有ライブラリの関数を呼ぶなど。他はスルー。 case文 Luaにはもともとcase/switch文が存在しないので、それをテーブルで作ってしまうやりかた。 > case = case or { >> a = fun…

入門Luaプログラミング第9章 Luaを拡張してみる(後編)

Lua

前回の続き、配列の上限値を設定したりグローバル変数を宣言できなくしたりオブジェクト指向を取り入れてみたり。 配列の上限値を設定する 前回のようにsetmetatable関数でまたしてもメタメソッドを上書きして、添字でアクセスされた場合の動作を書き換える…

入門Luaプログラミング第9章 Luaを拡張してみる(前編)

Lua

8章はアルゴリズムとかデータの扱いなので飛ばして9章、メタメソッドや自作データ型やオブジェクト指向を取り入れたりなど。急にレベルが上がった気がする…! メタメソッド setmetatable関数を使ってテーブルの演算子の動作を変えてみる。 > data1 = {str = …

入門Luaプログラミング第7章 Luaの仕組み(後編)

Lua

眠くてできなかった部分、多値を返す関数やレキシカルスコープなどについて。あとコラムの高階関数も。 多値を返す関数 代入時に","で区切って同時に代入したり、変数同士を入れ替えたり。 > a, b = 1, 2 > print(a) 1 > print(b) 2 > a, b = b, a > print(a…

入門Luaプログラミング第7章 Luaの仕組み(前編)

Lua

文字列、テーブルの仕組みや、GCの扱い、データ型などちょっと奥の深い章。今回はなかなかおもしろそう。 文字列と登録台帳の仕組み 文字列は宣言された時点で登録台帳に登録され、2つ目以降は登録台帳の同じものを指すようになる…らしい。 > a = "aaa" -- "…

入門Luaプログラミング第6章 リーグ戦の集計

Lua

データの読み込みやテーブル内のデータの配置などの章。今回もかなりスルー。 Pascalでおなじみ、関数内関数の宣言。 > function a() >> print("aa") >> function b() >> print("function b()") >> end >> b() >> end > a() aa function b() Pascalって感じ…

入門Luaプログラミング第4章 何ができるの

Lua

第4章――文字列などの各種ライブラリの使い方などの章。 文字列ライブラリ 最初にstring.gsubで全置換を。 > a = string.gsub("123abc123def", "[1-3]+", "?") > print(a) ?abc?def string.matchで検索を。 > a = string.match("123456789", "[1-4]+") > prin…

入門Luaプログラミング第5章 Luaでデータ整理

Lua

配列や連想配列、ソートなどの章。関数の使い方などが多くなってきたので割とスルー気味。。。 テーブルの走査にfor文とpairs関数を。 > for key, value in pairs({aaa = 111, bbb = 222, ccc = 333}) do >> print("key: " .. key) >> print("val: " .. valu…

入門Luaプログラミング第3章 部品を作ろう

Lua

昨日に続いて今夜は第3章を。関数、ローカル変数、文字列などの章です。 関数宣言 関数は"function 〜 end"で宣言し、値は"return"で返します。returnはC言語などと同じく、その場で関数を抜けます。 > function times(op1, op2) >> return op1 * op2 >> end…

入門Luaプログラミング第2章 処理の流れ

Lua

昨日に続いて今夜は第2章へ進みます。制御構文や配列などの章です。 if文と比較演算子 if文は"if 〜 then"と表記します。PascalやRubyのようです。まあ、Rubyはthenを省略できますが。 > a = 1 > if a == 1 then >> print('a is 1') >> end a is 1 C言語など…

入門Luaプログラミング第1章 はじめの一歩

Lua

入門Luaプログラミング作者: 上野豊出版社/メーカー: ソフトバンククリエイティブ発売日: 2007/12/22メディア: 単行本購入: 4人 クリック: 144回この商品を含むブログ (35件) を見るこの本を買ったものの読まずに積みっぱなしでしたが、Luaを実行できる環境…

Luaのコンパイルから実行まで

Lua

環境:Windows7 Home Premium on VirtualBox3.2.10 r66523 Luaが前から気になっていたので使ってみようかと思い立ちました。思い立ったが吉日。 Lua BinariesやGoogle Code Archive - Long-term storage for Google Code Project Hosting.でインストールすれ…