C から Lua の関数をコールする

luaL_dofile() を実行すると、toplevel の処理は実行されます。 その後、foo に引数つきで呼び出すようにしています。実行後は、戻り値を取得しています。 sample.lua #include <stdio.h> #include <stdlib.h> #include "lua.h" #include "lualib.h" #include "lauxlib.h" int call_lua_function(lua_State *L); int main(int argc, char **argv) { lua_State *L; if (argc < 2) { fprintf(stderr, "usage: %s filename\n", argv[0]); return -1; } L = luaL_newstate(); luaL_openlibs(L); if (luaL_dofile(L, argv[1])) { fprintf(stderr, "Error: %s\n", lua_tostring(L, -1)); lua_close(L); return -1; } call_lua_function(L); lua_close(L); return 0; } int call_lua_function(lua_State *L) { lua_Integer retvalue; lua_getglobal(L, "foo"); lua_pushnumber(L, 11); // argv #1 lua_pushstring(L, "bar"); // argv #2 // arg = 2, return = 1 if (lua_pcall(L, 2, 1, 0) !

Read More

mruby をビルドしてみた

手順はそのまんま。 少し前のものでは、SIZEOF_ ST_ INDEX_T の定義がなくて失敗していたけれど、今はすんなりコンパイルできる。 バージョン情報の表示が間違っているけれど。 環境 CentOS release 6.2 (Final) Linux centos62 2.6.32-220.7.1.el6.x86_64 手順と動作確認 $ git clone https://github.com/mruby/mruby.git $ cd mruby $ make $ cd bin $ ./mruby -v ruby 1.8.7 (2010-08-16 patchlevel 302) [i386-mingw32] Usage: ./mruby [switches] programfile switches: -b load and execute RiteBinary (mrb) file -c check syntax only -v print version number, then run in verbose mode --verbose run in verbose mode --version print the version --copyright print the copyright $ cat hello.

Read More

館山散策

天気もよく、桜を観られる最後の休みになりそうだったので、館山まで足をのばしてみました。 桜というか、前から洲崎燈台と洲崎神社に行ってみたかったのだけれど。 その他の写真はこちら。 2012/04/13 館山 - a set on Flickr

Read More

久留里散策

今回は久留里線に乗って、久留里城へ。初の城めぐりです。 実際に行ったのは先月。こちらの更新をすっかり忘れていました。 久留里線100周年だということは、すっかり忘れていて、 せっかくイベント中だったのに、そちらは乗り遅れてしまいました。 駅から徒歩で久留里城へ。途中、坂を上り始める前の道路あたり、歩道が狭くて注意が必要。 車のとおりがそれ程多くはないので、確認を怠らなければ問題ないと思いますけれど。 そういえば、城に行くまでの道のりで、よく上空を飛行機が飛んでたっけ。 あれはどこから飛んできているんだろうかね。羽田からか、成田からかは、わからない。

Read More

柴又 & 上野東照宮 ぼたん苑 - LEICA X1 試し撮り

いろいろ設定を変えながらの撮影。だんだんと、わかってきたような、わからないような。 それでも、自分で動いて調整するから、距離感はつかめてきたと思う。 それが “よりより方法” なのかどうかは分からないんだけれどね。 その他の写真は、こちら。 2012/01/28 柴又& 上野東照宮 ぼたん苑 - a set on Flickr

Read More