nmosh

週刊nmosh - PDCursesのスレッド対応 / GStreamer SDKに対応

MinGWビルドできない不具合を直しました。。あと、最近のpdcurses + Win32での不具合にも対処。 PDCursesのスレッド対応 nmoshでは、Curses実装としてWin32上ではPDCursesを使用する。特に、GUI上ではwin32aバリアント( http://www.projectpluto.com/win32a.…

週刊nmosh - GCアップデート / Cursesビルドの統合 / ライセンス戦略

MITのアレとカブっているという抗議がかなり多かったので中断していたけど、とりあえずnmoshということで復帰。 Githubのリポジトリ名とかもどうするかは考え中。全然別の名前にする手もあるけど、ライブラリ名で使ってしまったものは変えられないので非常に…

本質的に遅い

http://github.com/okuoku/mosh/compare/nmosh-optimize 試しに、小手先の最適化を全部実装してみた。 つまり、 環境の表現としてhashtableを使う 全てをletから出して一発で参照できるように vectorの代わりにsimple-structを使う バックエンドのletを使う …

Instrumentsでメモリ削減効果をチェックしてみる

Mac OS Xにはビジュアルなプロファイラ(instruments)が付属してくるので、これを使ってプログラムの実行中のデータを収集することができる。 nmoshにはプログラムの(top-levelの)長さに比例してスタックを消費するという地味な問題があり、今回これを修正し…

status

スタックトレースが出るようになった。 USRPがユーザプログラム(と、ロードされたR6RSライブラリ)を指す。ユーザプログラム以前にevalが2つ挟まっているのは: 1) プログラムがキャッシュできないため(FASLにすると通らなくなるテストがあるので)。nmoshでは…

GPL、LGPLへの対応

http://slashdot.jp/~bero/journal/498802 が話題に上ったので nmoshはアプリケーションへの組み込みを想定しているので、それなりの配慮事項がある。 まとめ : 違うmosh本体でもアプリケーションが実行できるなら、アプリケーションはライセンスの制約を受…

nmoshとは何か

http://www.het.brown.edu/people/andre/macros/ をmoshに移植した物。 前提 moshの一部分はmosh自身のSchemeで書かれている。たとえばキャッシュの制御とか、VM命令へのコンパイラのようなコアにまつわる物など。 このうち、R6RSのマクロとライブラリに関す…

tarball(非公式)

PowerPC64だとGaucheが動かないのをすっかり忘れてたので取り急ぎtarball。 http://www.spa.is.uec.ac.jp/~oku/tmp/mosh-0.2.2-nmosh.tar.bz2 ライセンスの都合でVCのサポートは含まれていない(LGPLを同梱する必要がある)。MinGWではビルド出来ない。 いわゆ…

デバッグ情報の取得

nmoshはデバッグ情報を保存するようになった。収集するデバッグ情報には大きく分けて2種類ある。 ライブラリデバッグ情報 ライブラリをキャッシュするときに、 展開後のソースコード 展開元ファイル シンボルの宣言位置情報 を、キャッシュディレクトリにS式…

METACIRCULAR

Gaucheでの展開とnmoshを使用した展開で同じ結果を得るようにしたので、nmoshだけでランタイムを構築できるようになった。 今までは一旦goshで動作するmosh VM上でバイトコードにコンパイルし、それを書き出してから変換する必要があった。特にCygwinのよう…

status

nmoshは一応暮らせるレベルに達した。まだ通らないテストが幾つか有るのと、エラー表示が死ぬほど不親切という問題があるが。。 デメリット 多くのバグ 起動が4倍遅い。メモリの確保量が多く、起動中に起きるGCの時間が長くなるため(typ. 40ms)。 expandがか…

gcc 4.5でのビルド

gccは4.5から-static-libstdc++ができるようになったので、gccの公式配布に切り替えた。gcc4.5はまだリリース版が無いが、そのうちリリースされると見られる。 Moshは未だWine上では動作しないので、Cygwinでgccを--target=i686-pc-mingw32としてビルドして…

win32上での動作

というわけで本来の目的であるprefix-lessなmoshを作ることが出来た。nmosh(Non-prefixed mosh)。 nmoshではいわゆる/usr/localのようなパスが含まれず、実行ファイルのあるディレクトリのライブラリを優先して読み取る(Win32版はまだUNCパスに対応していな…