Lispは未来に生きている
Lispは常に未来を先取りしてきました。
GCがJavaやLL等により一般に浸透するよりも遥か昔からGCを備えていたし、
「クロージャ! クロージャ!」と騒がれる遥か昔よりクロージャを備えてました。
Lispは”現在”ではなく”未来”に生きているんです。
Lispが未来に生きていることは簡単なプログラムを書くことですぐに分かります。
もうすぐ、UNIX timeが「1234567890」になると騒がれていますが、
Lispの中ではそんな時間は既に通り過ぎているのです。
CL-USER> (decode-universal-time 1234567890) 30 ; 31 ; 8 ; 15 ; 2 ; 1939 ; 2 ; NIL ; -9
Common Lispの中での時間が「1234567890」を迎えたのは、
日本時間で1939年2月15日8時31分30秒です。
UNIX timeの「1234567890」が日本時間の2009年2月14日8時31分30秒ですから、
約70年も未来を行っているということになります。
ところで、Lispが出来たのって何年だっけ…
ちなみに、Common Lispでのuniversal time「3456789012」を
日本時間で2009年7月17日12時10分12秒に迎えます。
誰か祝ってあげてください。
—
これを書いてるときに気づいたけど、、Windows版CLISPでのencode-universal-timeの挙動がおかしい。
手元のFreeBSD版では問題なく動くコードが、
[1]> (encode-universal-time 0 0 0 1 1 1970) 2208956400
Windows版では動作しない上にプロセスが死んでしまう。
[1]> (encode-universal-time 0 0 0 1 1 1970) *** - handle_fault error2 ! address = 0x0 not in [0x19d70000,0x19ef2efc) ! SIGSEGV cannot be cured. Fault address = 0x0. GC count: 3 Space collected by GC: 0 1311528 Run time: 0 2103024 Real time: 0 197283680 GC time: 0 200288 Permanently allocated: 92384 bytes. Currently in use: 2626228 bytes. Free space: 385581 bytes.
CLISPバージョン2.45でこの現象を確認して、その後バージョンを最新の2.47に上げても同様の動作だった。
Windows版CLISPのバグ?
>Lispが出来たのって何年だっけ…
ウィキペディアによると、1958年らしいです。
>Windows版CLISPのバグ?
ウチで使っているのは、win版2.34 ですが問題無いです。
その後エンバグされたんですかね?
私のWin版2.6 でも同様のエラーがでました。