GWの遊び

世間はGW一色。インフルエンザも何のそので、海外へとか、ETC割引を有効利用して 、各地に出かける人が多いだろうな。でも、こういう時は家に居るのが一番とば かりで、、、

Ikarus ふたたび

前に、FreeBSDでIkarusをコンパイルしようとしたら、門前払いを食らってしまって いた。原因は、CPUがSSE2に対応してないからと言う情けないものであった。それ ならばと思って、VMWare上のFreeBSDならどうかなと思いまずは下調べ。

[sakae@nil ~]$ dmesg|lv
FreeBSD 7.2-PRERELEASE #0: Wed Apr  1 03:49:04 JST 2009
    root@nil.kuma.net:/usr/obj/usr/src/sys/SAKAE
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Celeron(R) CPU 2.20GHz (2203.49-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0xf28  Stepping = 8
  Features=0xfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,
MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS>
real memory  = 402653184 (384 MB)
avail memory = 384360448 (366 MB)
 :

と言う事で、FeaturesにSSE2が見えたので、コンパイルしてみた。そして無事に コンパイルも終わり

[sakae@nil ~]$ ikarus
Ikarus Scheme version 0.0.3
Copyright (c) 2006-2008 Abdulaziz Ghuloum

> (define (fib n)
   (if (<= n 1)
    n
    (+ (fib (dec n)) (fib (- n 2)))))
> (define (dec n)(- n 1))
> (time (fib 35))
running stats for (fib 35):
    no collections
    650 ms elapsed cpu time, including 0 ms collecting
    655 ms elapsed real time, including 0 ms collecting
    0 bytes allocated
9227465
>

前に、petiteで同じ事をやったら、4713msかかっていたから、爆速だ。どんな秘密 が隠されているかというと、ネィティブコードに変換してから実行してるようだ。

これは良い。早速、debianにも入れてあげようと思って立ち上げたら、何故か ssh でlogin出来なかった。pingも通らないので、どうなっている事やら? ひょっとして DebianもGW休みなのでしょうか? いちいち、LCDを繋ぎ換えて調べるのも億劫 なので、GW中という事でそっとしておいてあげる事にします。でも、SSE2サポート してるのかなあ? それが、問題だ。Linuxのdmesgって、余り有効な情報が載って いないんだよなー。(偏見でしょうか?)

と、言う事で、FreeBSDで引き続き遊びます。えぇと、次は

FreeBSDでもjfbterm

jfbtermってLinuxの専売特許かと思っていたら、いつの間にかFreeBSDにも移植さ れていた。触れ込みは

Multilanguage can be displayed on the console in using the frame buffer.

jfbterm
WWW: http://sourceforge.jp/projects/jfbterm

jfbterm for FreeBSD
WWW: http://www.ac.auone-net.jp/~baba/jfbterm/

昔お世話になった、konの進化系。CUI系なのに、グラフィックが表示出来ちゃうと 言う訳だ。sysutils/jfbtermにある。普通にインストールした後、

# kldload vesa
# cat /usr/local/share/jfbterm/termcap.jfbterm >> /usr/share/misc/termcap
# cap_mkdb /usr/share/misc/termcap
# cp /usr/local/etc/jfbterm.conf.sample /usr/local/etc/jfbterm.conf

後は、/boot/loader.conf に vesa_load="YES" と書いておく。また、 japanese/mplusfonts を入れておくと、日本語文字が綺麗に表示される。

/usr/local/etc/jfbterm.conf 内の D.1) をコメントアウトして、D.2)のコメント を外しておこう。起動は

env TERM=jfbterm-color jfbtern

えらい細かい文字が表示出来るようなターミナルに変身する。どれくらいの文字が 表示出来るか stty -a してみたら、縦59行、横170文字の画面でした。もうちょっと 文字が大きくてもいいな。適当なフォントがないかな。

piki -- コマンドラインWIKI

先ほどから、ちょいとかっこいい表示(当社比)でPageが表示されているが、これ は、mewの山本さんが作られた、コマンドラインWIKIのおかげです。

あどけない話を見ていたら、たまたま コマンドラインWIKI に、行き当たりました。使い方も簡単だし、丁度Haskellにも興味が有ったので、試して みたのでした。

c:\sakae\HS\piki-0.2>wc *.hs
     49     253    1558 Html.hs
     88     289    2386 HtmlText.hs
     67     239    1948 LineParser.hs
     63     222    1839 Main.hs
     26      75     699 Notation.hs
    151     543    4645 Piki.hs
     30     191    1016 Tag.hs
    474    1812   14091 total

どんな仕組みで動いているか勉強するにも、適当な大きさと思った次第です。 そうそう勉強と言えば cut-seaさんが書かれた、グローバル変数が欲しい理由?も 大変ためになりました。みなさん、いろいろありがとう。