Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2006-11-26

勉強するよ.23

| 22:50 | 勉強するよ.23 - わだばLisperになる を含むブックマーク はてなブックマーク - 勉強するよ.23 - わだばLisperになる

今回から紫藤さんの

もうひとつの Scheme 入門を実習し

てSchemeの勉強をすることにしたのだった。

今回は、1. Scheme 処理系のインストール

今回もGaucheを使おうと思っているが、折角なので、処

理系を色々インストールしてみたいなと。

あと、このウェブサーバが動いている、Debian Linux/ARM Sageで、

goshがSegmentation faultで落ちてしまい、Wilikiも動かなくなっ

てしまっているので、良い機会ということで、自前でビルドとかし

つつ、直ったら良いねとか期待してみる。

とりあえず、Gaucheの最新版は、0.8.8になっているので、ソース

を取ってくる。

Wilikiを動かしたいので、Wilikiとgdbmも取ってくる。

gdbmをビルドする。

Gaucheをビルドする。

とりあえず普通にconfigure && make → とりあえず良し

make check →

Testing uniform vector and array ... failed.

discrepancies found. Errors are:

test f32vector-dot(#f32(32767 32767 32767 32767 32767), #f32(32767 32767 32767 32767 32767)): expects 5.368381445e9 => got 5.36838144e9

test f32vector-dot(#f32(214748368 214748368 214748368 214748368 214748368), #f32(214748368 214748368 214748368 214748368 214748368)):

test f32vector-dot(#f32(32767 -32767 32767 -32767 32767), #f32(32767 -32767 32767 -32767 32767)): expects 5.368381445e9 => got 5.36838144e9

ということでこのテストだけ失敗。

WilikiのARM-Linuxの情報によれば、最適化を外せばmake check

は通るのかもしれない。

根性無しなので、深追いせず、これで良しとする。

起動をテスト → 問題なす。

できた!


この後、Wlilikiをインストール。

◆◆ 関係ないけど、Wilikiの巻

Wilikiをまた動かすにあたって謎の現象に遭遇したので、書き留め

てみる。

普通の文章で書くとややこしくなってしまうので、箇条書にしてみ

た。

以前Linux/x86でWilikiを動かしていた。

データは、gdbm形式だった。

Solaris/Sparc(ビッグエンディアン)にしたら以前のデータが使え

なくなって困った。

→放置した。

MacOSX/PowerPC(ビッグエンディアン)でも、やっぱり使えなかった。

→放置した。

ふと今日 file wikidata.dbmしてみた。

→wikidata.dbm: GNU dbm 1.x or ndbm database, little endian

え、もしかして、エンディアンとか関係あるのかしら、と気付いた。

MacOSX/PowerPCのWilikiのデータを見てみた。

→やっぱり、ビックエンディアンでした。

ああ、エンディアンの問題だったか、ARMはどっちも切り換えられ

るらしいけど、Debianに限っては、リトルエンディアンらしいので、

x86のデータも大丈夫よねと、読ませてみた。

→駄目。

ここまで、NFSサーバ上のデータでテストしていた。

NFSサーバは、Linux/PowerPC故にビッグエンディアンマシン

MacOSX/PowerPCでは、問題なし。

Linux/ARM(リトルエンディアン)では、問題あり。

もしや、ということでデータをローカル上にコピーしそれを読ませ

てみた。

→成功

うぎゃぁぁぁ。

NFSってホストのエンディアンに影響されるの?

それとも自分の設定が駄目駄目なのかしら。

謎のまま終わる◆◆

2006-11-19

勉強するよ.22

| 15:48 | 勉強するよ.22 - わだばLisperになる を含むブックマーク はてなブックマーク - 勉強するよ.22 - わだばLisperになる

Schemeの勉強.21

独習 Scheme 三週間 17章のつづき

make-tableとか、どっから来たのか良く分からないのが

面倒で放置していた17.3と17.4章。

Gaucheで、この章に出てくるmake-tableの代わりになる

ものはないのかしらんと調べてみたら、案外すぐにみつ

かった。

make-hash-tableと、hash-table-get、hash-table-put!

を使えば良いらしい。Gaucheだと

(define table-get hash-table-get)
(define table-put! hash-table-put!)

(define *form-data-table* (make-hash-table 'string=?))

のような感じかしらん。

Gaucheでのハッシュテーブルの作成はGaucheプログラミ

ングのテーブルの作成を参考に。

この章はなんとなくまとまっていなくて、17.4のCGI電

卓を作るにあたって、17.3で定義されているcgi.scmだ

けを使えば良いのかといえば、そうでもなく、17.2章で

定義されているsplitとか、string-indexとかもcgi.scm

に含める必要がある。まあ、大したことではないのだけ

れど。

;; ;; ;; ;; ;; (* (+ 1 2 3) 4)

=> 24

とか動かしてみる。

とりあえず良しとして、「独習 Scheme 三週間」のはこ

れにて終り。

次は、紫藤さんの「もうひとつの Scheme 入門」を実習

することにした。

この入門ページの目的として、

>SICP を読める程度の Scheme の知識を提供することです。

とあるので、次の次には、SICPをちまちま実習してみた

い。

SICPは自分には難し過ぎるけど、適当に関連する数学の

勉強もしつつて寄り道しながら学習を続けてゆくのも面

白いだろうと思う。

2006-11-12

勉強するよ.20

| 17:33 | 勉強するよ.20 - わだばLisperになる を含むブックマーク はてなブックマーク - 勉強するよ.20 - わだばLisperになる

Schemeの勉強.20

独習 Scheme 三週間 Teach Yourself Scheme in Fixnum Days

ぼけっとしていたら、大分間があいてしまった。

秋ですなあ…。ぼーっとしてしまう。

今回も17章 CGIスクリプトで17.3 CGI スクリプトユー

ティリティ。

前回から間があいてしまったのは、とりあえず実行して

動作を確かめていたんだけども、そのなかで読み込む

table.scmが、どっから来たのか謎で、make-tableとか、

table-getとか、table-put!とかがどっから来たのか、

と悩んでいたためで、これは、この関数を作るのが勉強

なのかしら?とか思いつつ、放置。

これではいけないと、とりあえず、分かりそうなところ

だけでも読んでみた。