mosh

月刊R7RS - 第五次投票の結果が出る

(全然月刊じゃない!) http://trac.sacrideo.us/wg/wiki/WG1Ballot5Results 第五次投票の結果が出ている。これは、現在Formal Comment受付中のDraft6を更新するためのもので、けっこう色々なポイントが変更される。 c[ad]+rの移動 非常に印象的な変更は、caa…

何をバインドすべきかの選択

諸般の事情でWin32上でパーティションを操作する必要が生じたので、QueryDosDevice等を入れた。 しかし、こんなニッチな機能をわざわざバインディングとして用意する必要があるのかというのは有る。。 方針A: 取捨選択する 今のところnmoshではファイルロッ…

wxWidgetsをやめた理由

実はこっそりnmoshのwxWidgetsのサポートを(0.2.7のリリース前に)撤回しているが、一応それなりに理由がある。 2.9がなかなかstableにならない イベントループの結合( http://d.hatena.ne.jp/mjt/20120311/p3 )に必要なインターフェースはwxWidgetsの2.9以降…

週刊mosh - FreeBSD ports更新 / プラグインシステム

細かい機能追加の準備中... プラットフォーム対応はそれなりにOKで、特に修正は行わなかった。homebrewの調整は次のリリースにすることに。ただ、Clangコンパイルで正常に動かないプラットフォームが幾つかあるのと、VS11でビルドできない問題がそのままにな…

イベントループの結合手法

nmoshは非同期I/Oを実現するためにネイティブのイベントループを持っている。POSIXではpoll()ループであり、Win32ではIOCPを利用する。 通常のSocket通信やファイル/ストリーム I/Oはfd(Win32ではハンドル)によって行われるので、イベントループにはそれを待…

週刊mosh - サイズの無いfdの扱い

moshは移植の見回りフェーズ。特にLinuxやNetBSDのような普段あんまり触らないところはまずい点が有りそうということで。 報告されたバグ http://code.google.com/p/mosh-scheme/issues/detail?id=228 SIGPIPEを受け取ると事件が起こる 非同期シグナルでおか…

slimvのすすめ

Schemeのプログラムを書くのにvimを使っているというと変態扱いされるけど、slimvを使うとvimでもかなり快適にScheme(や、他のLisp系言語)を使える。emacsな人は、まぁPareditでいいんじゃないかな(無責任) slimv( https://github.com/vim-scripts/slimv.vim…

週刊mosh - どころじゃない

おかげさまでひとつの本番を無事終えました。。nmoshは2時間元気に作動してちゃんと照明制御ができた(らしい)。 まだまだnmoshはイベントが目白押し状態だけど、来月には通常営業に戻せるはず。。GCのアップデートとかはその後ということでひとつ。。 リアル…

週刊mosh - リアルタイムアプリケーション / リストのpack

moshは大きな進捗はなし。そういやlang/mosh( http://www.freebsd.org/cgi/query-pr.cgi?pr=158968 )のリプライを書かなきゃ。。FreeBSDのGNATSはメールを寄越さないのでpollingしないといけないのが辛い。 リアルタイムアプリケーション 今のところいくつか…

週刊mosh - set-current-error-port! / 深いpathのサポート

Darwinでnmoshがビルドできない問題があるらしい( http://d.hatena.ne.jp/higepon/20120109/1326112107 )。 コメントにも書いたけれど、nmoshのビルドはmoshのbootstrapのうちでも非常に負荷の高い処理で、32bitシステム上でのCygwinのようにメモリ要件が厳…

週刊mosh - Portの修正 / 描画リストの生成インターフェース

今年のmoshはそろそろ始動。 報告されたバグ http://code.google.com/p/mosh-scheme/issues/detail?id=226 equal-hashが循環構造に対して停止しない http://code.google.com/p/mosh-scheme/issues/detail?id=227 equal-hashが特定オブジェクトに対してeq性し…

moshの去年と今年

去年は0.2.7をリリースした。去年の開発は個人的なニーズを満たす方向に突き進んでしまったのであんまり普及に対する方策に手が回らなかった。 未だにbootstrapにGaucheが必要なのはかなり不味いのだけど、なかなか根本的な改善には手が回っていないのが実情…

週刊mosh - 実際のアプリケーション / R7RS / 非同期I/O

ギャー全然週刊になってない。。諸般の事情というかmoshを使ったヘビーな開発が幾つか走っているのであまりコードを動かせないんです。。 もちろん通常のシチュエーションではブランチすれば良いんだけど、FASL互換性のない複数のmoshがインストールされてい…

CとFFI

http://chaton.practical-scheme.net/gauche/a/2011/12/19#entry-4eef5446-7e9c0 C言語でfoo(int x)をfoo(int x, ...)に変えるのってABI上位互換になるんだったっけ? (↑のリンク先で返信しているように、)x64の場合はならない。 で、i386の場合は微妙に複雑…

週刊mosh - case拡張 / 非同期処理構文再び / ライセンス

諸事情によりあまりコードを動かせないので年内は0.2.8にならないかも。。 moshは先端を追いかけるのがかなり大変(Git + Subversion + Gauche + Autotoolsが必須)なのでリリースの比重は一般的なプロジェクトより重いのだけど、非同期I/OやR7RSのような規模…

週刊mosh - R7RS導入開始 / 非同期処理構文

年内には0.2.8を出したいところだが。。 今のところ入りそうなのは、 非同期I/O API(nmoshのみ) R7RS smallの各種ライブラリサポート(nmoshのみ) cond-expandやevalなど一部機能は無し 構文等も。 Cursesのサポート(nmoshのみ) MessagePackサポート いくつか…

週刊mosh - SLIME対応開始 / MessagePack対応 / r7rs 実装のポイント

moshは裏でこっそり拡張を続けているところ。0.2.8も計画しないといけないんだけど。。 修正されたバグ https://github.com/okuoku/mosh/commit/c21cbe5e846b7ebcd44312b1b7356802bda56579 bytevector-output-portが、"ポートに溜め込んだbytevectorの長さ"…

R7RS-Bridgeを開始

https://github.com/okuoku/r7rs-bridge R7RSの各種ライブラリをR6RSライブラリとして実装するプロジェクトを始めました。まだ全然全然できてないですが。。 ついでに、Chibi-schemeで拡張子.slsを読めるようにしたパッチも書いた。 https://github.com/okuo…

週刊mosh - MinGW32ビルド復活 / Scatter/Gather I/O

あまり進捗なし。 MinGW32ビルド復活 非同期I/O導入の余波でMinGW32でビルド出来なくなっていたのを復活させました。単に定義をコピペしただけで、定義はMinGW64(を拝借したlibuv)から。 libuvのWindows対応はMSの人が書いてるので(過去にあったMSがNode.js…

ヒープ/オブジェクトシステムのrewriteに向けて

現状のmoshはC++で書かれ、BoehmGCを使用したヒープを持っている。これがポータビリティとかパフォーマンスのような様々な面でボトルネックになっていて、ここを改善するのが非常に重要な課題になっている。 というわけで、ヒープ周りをそろそろ作りなおす時…

週刊mosh - VisualStudio 11でコンパイルできない問題 / プラグインの配置

うーむ。。遅延中につき0.2.8の機能は見直し中。 Moshのmemory footprintがそろそろキツいので"遅いけど小さい"サブセットを用意する必要性が日に日に増してきているところ。。R7RSではsyntax-caseやidentifier-syntaxがいらないので、R7RS(small)対応の実装…

月刊R7RS - R7RS概要スライドが公開される

http://ccil.org/~cowan/scheme-2011-09.pdf https://groups.google.com/group/scheme-reports-wg1/browse_thread/thread/483e877413e696e4 R6RSからの差分なのでR6RSを知らないと何がなんだかかも。。Gaucheのような普通のR5RSから増えているもの(で、避け…

週刊mosh - curses導入

0.2.8に向けいろいろ実装中。。 Win32とCurses 当初はcairoでコンソールをちゃんと実装する予定だったんですが、ちょっと時間がかかりそうなので、最初のリリースはcursesで。。どっちにせよcurses版も作るので。 cursesはPDCursesというバリアントがあって…

popplerはVisual Studioでビルドできる

最近cairoやOpenCLのmoshバインディングを進めているけど、その過程で、最近のpoppler(PDFをレンダリングするC++ライブラリ)が面白い変化をしてるのに気付いた。 http://poppler.freedesktop.org/ pdftocairoが追加された 最近のpopplerは従来の有名なpdftot…

週刊mosh - プラグイン機構の実装開始

そろそろ0.2.8を纏め始めようかという気持ちになりつつ。 入りそうなのは : CMakeプロジェクトの読取とビルド 基本的な非同期I/O (ファイル、プロセスとネットワーク。名前解決はナシ) OpenCLの基本的なサポート(CLカーネルのlaunchとキャッシュ) ...これら…

週刊mosh - 非同期IO整理中 / CMakeプロジェクトの読取サポート

ちょっと忙しくて隔週刊になりつつある週刊mosh。 いろいろ方向性が迷走している気がするんですが、非同期I/O APIは色々なところで使えたほうが便利そうということでLinux/Cygwinも最初からサポートすることにしました。 Githubのpull request Githubのpull …

週刊mosh - R6RS bootstrap進捗 / XCode4のgitサポート

現在の主な開発項目はR6RS単体でのbootstrap。なかなか本題のDTrace対応に進まない。。 (GaucheがFreeBSD 9-CURRENTで動かないので単体bootstrapを優先的に作業している) 新機能 / Fixされたbug gen-nmosh-stubs.spsが無駄にPFFIをimportしていて一部の環境…

HTMLパーサを作りたい の0

最近id:higeponがwebkitの移植に取り組んでいるらしい( http://d.hatena.ne.jp/higepon/20110812/1313157918 )。まぁ世間にはSDLなWebKitもいくつか有るので、まともなC++ランタイムとビルドシステムのcmakeサポート、SDLやcurlがあればそれなりの手間で動く…

moshで濁音が分解されちゃったのを結合し直す方法

(地味にmoshrecipe初の実用的トピックな気がする) see http://d.hatena.ne.jp/nishiohirokazu/20110721/1311215412 Macは他所のOSと違って、NFD形式でUnicode文字列を扱うシーンが多い。特にファイル名にNFDを使うので、Macからファイルを持ってきたときに …

週刊mosh - Debian / FreeBSD / BootstrapとOS追従の問題

moshの開発はあまり進捗せず。。 masterは0.2.7とFASLの互換性が失われた。masterを追い掛ける場合は0.2.7を混在させないこと。 fixされたIssue http://code.google.com/p/mosh-scheme/issues/detail?id=221 ピリオドがデリミタにならない不具合 長いことall…