Entries from 2006-12-01 to 1 month

炊飯器と柳 宗理とドライヤー

ごはんがおいしく炊けるという評判の炊飯器を週末に買ったのですが、今日届きました。 7段圧力だったり、AIを搭載していたりと何やらすごい感じ。 今まで3合炊の炊飯器だったし、そこまで厚釜でもなかったのでかなりごはんのおいしさが違います。あと別ルー…

まだまだ終わらんよ

仮説。 DLLがリンクされる場合の正しいフロー monapi_initialize_memory(64 * 1024 * 1024); setConstructorList(__CTOR_LIST__); invokeFuncList(__CTOR_LIST__, __FILE__, __LINE__);(monapi.o) invokeFuncList(__CTOR_LIST__, __FILE__, __LINE__);(MONAP…

35歳までに

Yahoo!ニュース - スポーツ報知 - カンニング 中島さん死去…急性リンパ球性白血病35歳までに自分は何かを成し遂げているだろうか。と焦った今日このごろ。

引き続き不具合修正中

現象 upperを起動すると死ぬ 再現率100% 現時点で分かっていること monapi_stdout_write の中で死んでいる _logprintfを利用して細かいログをとった結果分かったことは access denied.address = 0x354748D4 Process UPPER.EX5 killed eip=0xA001089F memcpy(…

継続マラソン1

id:higepon:20061219:1166544588 某所で捕捉されたのでコードを晒します。 僕は本当に頭が悪いので全然理解できていないです。いつか理解できると良いな。 動作確認はGaucheでやっています。公開することを考えていなかったので謎のコメントやらコピペに近い…

継続マラソン

継続を理解して人にきちんと説明できるまで勉強することにした。 今ローカルの cont.scm にしょぼい実験コードを書いています。 何のためにあるのか? どううれしいのか? 何が出来るのか? どういう局面で実際に使われているか? どういう仕組みか? をきちん…

Quiet Comfort3

キタ!

DLLエントリポイントいろいろ解決

動的コード生成でDLLエントリポイントを呼ぶようになった Yumeさんが対応してくれて、MONALIBC.DLLがStream初期化コードを呼ぶようになった ところが Mona のPE動的リンカのバグでリンクエラーに。 バグ修正 リンクは通るがNULLアクセスで落ちる DLLエントリ…

購入

コンパイラとバーチャルマシンを買った。 自分の実力と難易度がぴったり。読みやすい。

C++クックブック読み終わった

C++クックブック読み終わりました。 読みはじめる前はリファレンス的に使うのだろうと思っていたのですが、間違っていました。 知らない内容やわりと深い内容が多く、気付けばXMLの解説部分以外は熟読していました。 付箋やら折り目やらが多く、後からここを…

現状整理

問題点 MONALIBC.DLLへMONAPI.DLLリンクするときにエラーになる うまくいくリンクとの違い MONALIBC.DLLが2つ以上のImport tableを持っている事 MONALIBC.DLLの Import Address Table のエントリを取り出すと 0xA000xxxxを指している(通常はDLL内オフセット…

冬の川

Essentials of Programming Languages1st Edition

Essentials of Programming Languagesの1st Editionが良いらしいので読んでみたいのですが、古本検索などでは見つからず。 誰か本棚に埋もれていませんか?(())

もうひとつの問題

libcのdllmainのなかで標準入出力関連の Stream を生成しているのですが new でこけていた。 dllmainが、メモリ管理ルーチンの初期化よりも先に呼ばれているからだな。なんとかします。進捗をそれとなくトラックバック(id:shotaro_tsuji)

ひとつ解決

リンク時には import lookup tableを参照し、結果は import address tableに書き込むようにした。 これでリンクエラーは起きなくなった。

PEの資料でそれっぽい記述を発見

日本語は僕の超訳です。 The structure and content of the import address table are identical to those of the import lookup table, until the file is bound. import address tableの構造と中身は import lookup table のものと同一でああるが、それはD…

動的リンカデバッグ中

PE Explorerを wine を利用してインストール 現在の MONALIBC.DLL と うまく動いていたときの MONALIBC.DLL を比べる import情報とか。 svn co https://svn.sourceforge.net/svnroot/monaos/branches/mona-stdio -r3817 import table 2つ以上あるとおかしく…

動的リンクがうまくいかなくなった

あれれ。uint32_tとかmain対応したけどどれが原因だろうか。

うーんうーん

Import tableが複数ある場合はPEParser#Linkで *ptr がRelocateの後なので、ImageBaseを引いてやらなければいけない予感。

バウムクーヘン

バウムクーヘンを買って帰ったら、奥さんがタネンバウム♪と連呼して喜んでいた。 id:higepon:20060915:1158322853に前科が。

Color-SVN

IRCで教えてもらった、colorsvnで svn コマンドの出力に色がつく。 入れてみたが良いかもしれない。 http://www.console-colors.de/index.php?n=ColorizerTools.ColorSVN Color tail とかもあるんだな。

iteratorの it++ と ++it

C++クックブックのアルゴリズムの章を読んでいたら、iteratorのループでは it++ ではなく ++itを使えと書いてあった。 it+だと一時オブジェクトが作られてしまうのだそうだ。 心当たりが数ヶ所合ったので grep して修正しておいた。 追記 自分が iterator を…

CString trim/rtrim/ltrim

Shellで必要だったので CString に trim/rtrim/ltrim を実装し多。

炊飯器

おいしく炊ける厚釜の炊飯器を買う。

さようなら MonaMain こんにちは main

長らくMona OSで活躍してきた MonaMain をやめて、普通の main を使うようにしました。 Mona OS開発当初は特別な名前である main を crt から呼び出す方法が分からなくて別の名前(MonaMain)を採用していました。 MonaMain今までありがとう。何気に大きな出来…

Ubntu EdgyにSubversion 1.4.2

意外といろいろハマったのでメモ。 sudo apt-get remove libsvn0 sudo apt-get remove subversion sudo apt-get install libneon25 libneon25-dev sudo apt-get install libapr1.0-dev sudo apt-get install libaprutil1.0-dev sudo apt-get install libdb4.…

Boost環境構築挫折

http://www.boost.org/libs/config/config.htm boost/config.h boost/config/select_compiler_config.hpp gccがきちんと選択されている boost/config/compiler/gcc.hppがincludeされる -fno-exceptions が選択されていると #define BOOST_NO_EXCEPTIONS され…

DLLエントリポイント - 解決編

PE DLLのエントリポイントを呼ぼうといろいろやったのでサマリ。 必要な事は大きく3つ ld に -e オプションでエントリポイントとなる関数(_dllmain推奨)を指定する PE DLLにある EntryPoint を再配置を考慮してずらす ロード時に動的にコードを生成して依存…

Makefileが更新されたときに

最近Makefileを更新することが良くあって、例えば ld に -e オプションをつけるとか。 でその後に make としても当然依存ファイルたちは変更がないので何も起きない。 これが不便だ。 Makefileが更新されていたら make cleann && make して欲しいなぁ。 うま…

byte -> uint8_t

byte -> uint8_t word -> uint16_t dword -> uint32_tの対応を行った。 大量の置換を伴うので、id:hideokiに教えてもらった perl -i -pe で一括置換した。 libbayguiだけは対象外にしましたがビルドできています。