時の羅針盤@blog
オランダの生活、自身が行っているSagittarius Schemeの開発日誌、
その他雑多なことをつづってます。
Let's start Scheme
(Move to ...)
(はじめよう Scheme 0)
(はじめよう Scheme 1)
(はじめよう Scheme 2)
(はじめよう Scheme 3)
(はじめよう Scheme 4)
(はじめよう Scheme 5)
(はじめよう Scheme 6)
(はじめよう Scheme 7)
(はじめよう Scheme 8)
▼
2012-08-29
{}の扱い
›
SRFI-105関連なのか、R7RSのGoogle Groupsに以下の投稿があった。 From John Cowan I know it's the last minute, but I've just a filed a ticket to add...
2012-08-27
SRFI-105を試してみる。
›
リーダをいじる系のSRFIを割りと簡単に試すことが出来るのもSagittariusの特徴の一つだと信じているので、早速新SRFIを試してみる。 (自分でも使い方忘れてて、ドキュメントを探したのは内緒だ) ;; From reference implementation ;;...
2012-08-26
Libraryのルックアップ
›
ずっと悩んでいる問題の一つ。 SagittariusではR6RSが禁止しているexportされたシンボルの上書きを許している。理由はその方が便利だから。 ただ、これ便利なんだけど、プログラマが重複するシンボルを含むライブラリをimportした際にどちらが使われるのか意識でき...
2012-08-23
スライドを作ってみた
›
別にどこかで発表するわけでもないのに、スライドを作ってみた。
Sagittarius 0.3.5リリース
›
Sagittarius Scheme 0.3.5がリリースされました。今回のリリースはメンテナンスリリースです。 修正された不具合 format関数が長さを指定した際に空文字を返す不具合が修正されました。 EMSA-PSSを用いた検証がときどき失敗する不具合が修正されま...
2012-08-22
続 正規表現エンジンのチューニング
›
とりあえず、昨日のコードがGauche(0.9.3)と同程度の速度が出るように改善できた。 やったこと 疎な配列をエミュレートしていたのだけれど、それに付随していたイテレータの削除 10%程度 地味にコードのリファクタリング 10%程度 インストラクション...
2012-08-21
正規表現エンジンのチューニング
›
SagittariusではRE2(Pike VM?)ベースの正規表現エンジンを積んでいて(実際にはハイブリッドなのだが、今回はこっちのエンジンが対象)、基本的な正規表現ならO(n)で走る。実際にはO(n+α)だったりするが、O(n)でいいだろう。リニアに走るなら速度はそんなに気に...
2012-08-17
Lisp啓蒙活動(?)
›
自動SQL生成スクリプトを書いているときに、同僚がふと作業風景を覗き込んできた際に発生した会話から。 Colleague: You like Emacs, don't you? Me: I do. Colleague: Is it Lisp? Me: Sort ...
2 comments:
2012-08-15
list-sortを書き換え
›
ふとTwitterで以下のページを言及しているツイートを見つけた。 ソート済みのリストに対する破壊的マージソートの改良 これはlist-sortのパフォーマンス改善に使えると思い、早速実装。この記事書く前に全部置き換えてコミットしてしまったのと元々Sagittariusのl...
2012-08-13
Bug of EMSA-PSS
›
I have just fixed the bug in EMSA-PSS verify. It has been there since version 0.2.x. The problem was test case for EMSA-PSS verify failed ...
2012-08-11
Haskell風の$マクロ その2
›
さすがに前回のはあんまりだよなぁと思い、もう少しだけR6RSっぽくしてみた。 (import (rnrs)) (define-syntax $ (lambda (x) (define (build es) (let loop ((es es) (r ...
2012-08-10
Haskell風の$マクロをR6RSで
›
ChatonのGauche部屋を見ていて、Shiroさんが$を多用しているなぁと思い、流行は$なのだろうかと勘違いして書いてみた。R5RSで動くやつはGaucheにあるので、R6RSのsyntax-caseを使って。 (import (rnrs)) (define-syntax...
2012-08-07
sxpathメモ その2
›
XSDをサポートするモジュールを書いていて、名前空間付きのsxmlをsxpathでいじる必要があった。すっかりどうやっているのかを忘れてググッたら自分のページが出てきた。っが、いまいち何がどうなっているのか詳しくなかったので、もう一回書くことにする。 ちなみに、 これ がその1...
2012-08-06
R7RSの6th Ballot
›
ザーッと目を通した。 とりあえず、この辺は変更されないだろうと当たりをつけたもの、もしくは変更されてもあればあった出便利なものを実装。 実装したものは以下: ライブラリ名に数字を使用可能にする ドラフトの6には符号なし正確な整数とあったので、一応Bignumも入れて...
2012-07-31
Racketが異様に速い
›
Sagittariusはfibを走らせる程度ならGaucheやYpsilonと同じくらいの速度で走るのだが、Racketはさらにその倍くらいの速度が出る。 正直、なにこれ?状態なのだが、ちょっとテストコードを書いてみてなんとなくどうやっているのかが分かった。(追いつけるという意...
2012-07-27
Cygwinのmprotect
›
mprotectだけではなくposix_memalignもなのか、さらにこれがCygwin限定なのか他のUnix系環境もなのか調査してない。 (少なくともCygwinのposix_memalignはあるサイズを境に同一のアドレスを返すっぽいが) 何が問題か?とりあえず2つほ...
2012-07-25
JIT苦戦中
›
正直これだけ苦労してまで入れる意味はあるのだろうかと思い始めていたりはする。他の処理系に速度で差をつけるという意味では重要なのかもしれないけど、いまいち速度も出てないし・・・ とりあえず、現状では末尾再帰が上手いこと動かない場合がある。理由もある程度分かっていて、RETが一回...
2012-07-22
JITアイデアメモ
›
そんなにナイーブな実装ではないとは思いたいのだが、速度が出ない。多分いたるところでVMのレジスタを参照したり書き換えたりしているからだろう。(主にスタックポインタなんだけど) GaucheのJIT予備実験を見る限り、(多分)似たような壁にぶち当たっていると思われる。 Gauc...
2012-07-20
JIT実装中
›
目指せRacketの速度ということでJITを実装中。とりあえず、X86でfibとtakが動くようにしてみた。(どうでもいいが、X86はレジスタの本数が少なすぎて辛い。やりくりを考える主婦の気分を味わえる)。 とりあえず方針として、 Xbyakを使ってC側で実装する。 コ...
2012-07-16
Muiden and Pampus
›
Be activeの第2弾。(要はmeetupに行っただけとも言うが)、Daytripに行ってきた。 場所はAmsterdamからバスで20分くらいのMuidenとそこから更にボートに乗って15分くらいのところにある要塞跡地Pampus。 Muidenは古い感じのオランダの...
‹
›
Home
View web version