2009-01-01から1年間の記事一覧

べんりだなあ

% /lib/libc-2.3.3.so GNU C Library stable release version 2.3.3, by Roland McGrath et al. Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for ME…

静的型付けと動的型付け

静的型付け言語の中でも動的型付けは利用されているわけで(C言語で動的型付けの言語処理系を実装するとか)、動的型付けの言語の中で静的型付けでやる部分あってもいいよなあ。というかrubyで型推論とか言ってる人もいるってことは既にありがちなアプローチな…

2009年電通大学祭未踏イベント

出ます。話します。 天才プログラマーとシナジーfrom電通大2009 申し込みが必要みたいですけど、まあ興味があったらどうぞ。 追記 小室直というのが俺です。 電通大へのアクセス http://www.uec.ac.jp/map/comm.html

もうやってる人いるだろうけど例のgolangでbrainf*ck処理系

http://golang.org/ golangという謎の言語があります。低レイヤーな静的システムプログラミング言語としてC/C++しか道具ねーのはしんどすぎんだろJKという発想の元つくられた言語じゃないかなと思っています。そういうの割と欲しいんだよなーと思っていたの…

わいは鬼や! 就活の鬼や!

TAKESAKO @ Yet another Cybozu Labs: 就活生向けIT業界セミナーで講演します IT業界の最先端で活躍しているエンジニアは何を考えどう生きているのか!? IT業界でエンジニアとして働きたいと思っている人には是非参加してほしいセミナーです。昨年までは、…

stackallocもうちょい整理

githubに。なんかライブラリ風にまとめてみた。stackallocのテストと同様の動作をするobstackを使うプログラムも同梱。 http://github.com/hogelog/stackalloc 総じてobstackの方が性能良いけど、stackallocは使う道具を標準libcに限ってるので、こんなもん…

stackalloc的なものあった

obstackという、正にそのものがあった。MIT LicenseのLuaに組み込む目的なのでインターフェースなど参考にしつつ、こっちを組み込んでビルドすることもできるようにしておこう。thanks! alohakun id:kikx

切り出してみる。

要はこういうスタック割り当て、案外便利っすよと。 #include <stdio.h> #include <stdlib.h> #include <assert.h> typedef struct Frame { struct Frame *prevframe; void *top; size_t index; } Frame; typedef struct Slot { void *slot; void *last; size_t size; } Slot; typedef str</assert.h></stdlib.h></stdio.h>…

就活中です!

電気通信大学 電気通信学研究科 情報工学専攻 阿部研究室 博士課程前期 一年 小室 直(こむろ すなお)ですよろしくお願いします!

Lua高速化プロジェクト開発状況など(3)

ひどい話でObjectStackのリサイズをまだ実装していない。スタックそのものをreallocしたあとには当然スタック割り当てを指してるオブジェクト達のポインタを修正してやらにゃならんのだけど、どっかで漏れてるようでうまくいかない。気分転換にプロファイリ…

Lua高速化プロジェクト開発状況など(2)

refixするように実装した。 % cat |./src/lua-stackalloc-dev local t = {10, 20} local u = {t} u[1][1] = u[1][1] + 100 print("t[1]", t[1]) print("u[1][1]", u[1][1]) v = {t} v[1][1] = v[1][1] + 100 print("t[1]", t[1]) print("u[1][1]", u[1][1]) …

Lua高速化プロジェクト開発状況など(1)

AO benchが動いたので % grep 'model name' /proc/cpuinfo model name : AMD Athlon(tm)64 X2 Dual Core Processor 4600+ model name : AMD Athlon(tm)64 X2 Dual Core Processor 4600+ % uname -a Linux rambai.cs.uec.ac.jp 2.6.26-2-amd64 #1 SMP Fri Aug…

あとでちゃんと書く

2009年度上期 未踏ユースのクリエータに採択されてLuaいじったりしてることちゃんと書かなきゃなあ。

俺だった。

阿呆。httpでパスワード変えたのでhttps側で保存してるパスワードと違ってた。

誰ですか

めんどくさい。

Lua処理系コード読み(10) UpVal

lobject.h /* ** Upvalues */ typedef struct UpVal { CommonHeader; TValue *v; /* points to stack or to its own value */ union { TValue value; /* the value (when closed) */ struct { /* double linked list (when open) */ struct UpVal *prev; str…

Lua処理系コード読み(9) Proto

lobject.h /* ** Function Prototypes */ typedef struct Proto { CommonHeader; TValue *k; /* constants used by the function */ Instruction *code; struct Proto **p; /* functions defined inside the function */ int *lineinfo; /* map from opcodes…

Lua処理系コード読み(8) Closure, LClosure, CClosure

lobject.h /* ** Closures */ #define ClosureHeader \ CommonHeader; lu_byte isC; lu_byte nupvalues; GCObject *gclist; \ struct Table *env typedef struct CClosure { ClosureHeader; lua_CFunction f; TValue upvalue[1]; } CClosure; typedef struct…

Lua処理系コード読み(7) luaC_checkGC

lgc.h #define luaC_checkGC(L) { \ condhardstacktests(luaD_reallocstack(L, L->stacksize - EXTRA_STACK - 1)); \ if (G(L)->totalbytes >= G(L)->GCthreshold) \ luaC_step(L); } 総アロケート量が閾値を超えているときにGCステップの呼び出し。超えてな…

Lua処理系コード読み(6) luaM_realloc_

lmem.c /* ** generic allocation routine. */ void *luaM_realloc_ (lua_State *L, void *block, size_t osize, size_t nsize) { global_State *g = G(L); lua_assert((osize == 0) == (block == NULL)); block = (*g->frealloc)(g->ud, block, osize, nsiz…

Lua処理系コード読み(4) luaV_execute

lvm.c void luaV_execute (lua_State *L, int nexeccalls) { LClosure *cl; StkId base; TValue *k; const Instruction *pc; reentry: /* entry point */ lua_assert(isLua(L->ci)); pc = L->savedpc; cl = &clvalue(L->ci->func)->l; base = L->base; k = c…

Lua処理系コード読み(4) Instruction

llimits.h /* ** type for virtual-machine instructions ** must be an unsigned with (at least) 4 bytes (see details in lopcodes.h) */ typedef lu_int32 Instruction; Lua VM命令の型。4バイト(=32ビット)。lopcodes.hに /*==========================…

Lua処理系コード読み(3) StkId

lobject.h typedef TValue *StkId; /* index to stack elements */ Lua VMのスタック要素を示す型。実質TValueのポインタ。

ls

via http://shinh.skr.jp/m/?date=20090827#p02 何箇所かで見たけど。 ~ % ls a/ hoge lang/ mbox test.c tmp/ docs/ install_flash_player_10_linux.deb local/ samba/ texmf/ trash/リモートからしか使ってないのになんでflashプレーヤなんて入れたんだろ…

一応

2009年度上期 未踏ユース 公募結果に何か見覚えのある名前が……

Lua処理系コード読み(2) Value, TValue

Lua処理系内部における「値」は共用体Valueにint型のタグを付与した構造体TValueで表現される。int ttは各種ビット(例えばTValueが示すのがgc, p, n, bいずれの型の値であるかなどの情報)を保持する。 /* ** Union of all Lua values */ typedef union { GCO…

Lua処理系コード読み(1) lua_State

せっかくLua処理系いじったりしてるんだから適当にアウトプットしていこうかなと思った。ストーリーだてた解説ではなく、思いついたときに目についた構造体や関数、マクロの適当な解説を日記にのっける感じで。いつまで続けるか未定。 lua_Stateは「Lua処理…

2009/7/19(日)電気通信大学オープンキャンパスのお知らせ

http://www.uec.ac.jp/admission/dept/open.html 7/19(日)に高校生など電気通信大学の学部入学を考えている人向けのオープンキャンパスが開催されます。 プログラムとしては 大学紹介 【講堂】 キャンパスツアー 研究室公開 個別相談 【大学会館4階】 などが…

2009/7/9(土)に参加したイベント

SmileyHackathon#5 直前秋葉原オフ - Hatena::Diary::pi8027は、だいたい12時前後に秋葉原つく感じでいいのかなと、あまり時計とか気にしないでなんとなく行ったんですけどどうも遅刻してたようですね。すいません。 リナックスカフェについてからは自分のコ…

2009/7/9(土)に参加するイベント

SmileyHackathon#5 直前秋葉原オフ - Hatena::Diary::pi8027 SmileyHackathon#5 - Smiley Hackathon(仮) SmileyHackathonがドワンゴで開催されるのですけどドワンゴの場所わからないのでid:pi8027に連れってってもらおうと思います! SmileyHackathonの方は…

test