history

青木日記 RSS

<前の日 | この月 | 次の日>

2006-05-22

一人でまったく新しいプログラミング言語を考えるスレ (3)

ツッコミをもらいました。ついでにリンク元からも。

http://alohakun.blog7.fc2.com/blog-entry-298.html

やっぱり論理型とかになるんですかねえ。 なんか無理そうだな、とわたしが思ったのは、例えば

assert(なんかすごいウェブサイトが存在する)

みたいなテストがあったら (書けちゃったら) どうすればいいのかなあと。 リストの追加みたいな細かい話ならできるってのはわかるんですが、 それだと結局プログラマが書かなきゃいけないコードの抽象度は変わらないような気がするんです。 SE 殲滅言語としては、すんごい曖昧なクライアントの要求にも応えられるくらい コードの抽象度が高くないといけないんじゃないかと思うのですよ。

うーん。実は単にライブラリを追加していけば済む話なのかなあ……。

(07:58)

Ruby スクリプトを実行ファイル化する on Linux (6)

rb2exe はだいたいできたんだけど、 喜び勇んでウェブサーバをバイナリ化したら即 SEGV した。 調査していくと、なぜか require 'socket' で dlopen が動いている。 なんでスタティックリンクされた拡張ライブラリをまた読みにいってるんだろう。

どうやら、ちゃんとスタティックリンクされてなかったようだ。 ext/extinit.o も ext/**/*.a もリンクされてない。 libruby.a を作り直して問題解消。

(08:14)

Ruby スクリプトを実行ファイル化する on Linux (7) ライブラリのリンクでエラー

ぜんぜん問題解消してなかった。 kerberos 他のライブラリがリンクされてないよー。

なんかいろいろ必要だなあ。 えーと、db-4.3, gdbm, ssl, crypto, krb5, krb5support, k5crypto, gssapi_krb5, resolv, com_err, readline, ncurses, termcap, util, pthread, z, m, c これで全部か? kerberos なんてどうせ使わないのになあ。 Fedora Core なんかで作るからこんなことになるんだ。 Debian で作ったほうが楽だったに違いない。

Ruby スクリプトを実行ファイル化する on Linux (8) digest/sha2 でエラー

うお、まだエラーが出てる。 ext/digest/sha5 のシンボルが libssl のシンボルと重複してる模様。なにい。 SHA512_Transform とか、なんかいかにも重なりそうだな。

うあー、そうか、もしかして ext/digest/sha2/sha2.c って libcrypto から持ってきてるのか。 そりゃ重なるに決まってる。

あれ? そういえば、openssl があるときは そっちを使ってたような気がしたんだけどな。 なんでそうならないんだろう。

うう、そうか、openssl を使うのは sha1 だけなのか。sha2 は違うのね。 きっと openssl のバージョンによって sha2 がサポートされてるとか されてないとか、そういうウザったい話があるのに違いない。

……違うな。重なってるのは SHA*_Transform だけだ。 ということは、これを static にしてしまえば済む話か。

(08:58)

Ruby スクリプトを実行ファイル化する on Linux (9) require の実装を間違う

おっかしーなー、定数を再定義してるぞって警告が出る。 どうも同じファイルを二回ロードしてるっぽいな。

……アホか俺は。 require の中で $" をチェックしてないじゃんか。

これで (rb2exe の問題は) 本当に解決したようだ。

(09:16)

LazyLines を Linux で動かす (3) rb2exe を使う

よーし使ってみよー。

…… またしても webrick/cgi_runner ではまる。 俺も進歩がないなあ。 えーと cgirunner.rb も rb2exe でバイナリ化ーと。

よし通った。

スタティックリンクな libc とカーネルバージョン

そういえば、AMD64 上でも動くのかな。 動くような気がするな。試してみよう。

~/c/stdhaskell/src/lazylines % uname -a                         aamine@serenade
Linux serenade 2.6.8-11-amd64-k8 #1 Wed Jun 1 01:03:08 CEST 2005 x86_64 GNU/Linux
~/c/stdhaskell/src/lazylines % ./server                         aamine@serenade
FATAL: kernel too old
zsh: 2491 segmentation fault (core dumped)  ./server

ぐは……。こうなるのか……。両方 2.6 なのになあ。 2.6.15 と 2.6.8 の違いだけでもうダメなのか。

え、待てよ、ということは、 スタティックリンクしててもカーネルが古いとだめってこと?! そんなの聞いてねー。

もしかして libc でカーネルのバージョンを明示的に指定してるのかなあ。 確かそんなオプションがあったような気がする。

別の AMD64 マシンでも試してみよう。

tukumo:~/c/stdhaskell/src/lazylines % uname -a                    aamine@tukumo
Linux tukumo 2.6.14-2-amd64-k8-smp #1 SMP Tue Nov 15 02:59:29 CET 2005 x86_64 GNU/Linux
tukumo:~/c/stdhaskell/src/lazylines % ./server                    aamine@tukumo
*****************************************************
           Type Ctrl-C to stop server
*****************************************************
[2006-05-22 09:30:33] INFO  WEBrick 1.3.1
[2006-05-22 09:30:33] INFO  ruby 1.9.0 (2006-05-18) [i686-linux]
[2006-05-22 09:30:33] DEBUG TCPServer.new(127.0.0.1, 10081)
[2006-05-22 09:30:33] DEBUG WEBrick::HTTPServlet::FileHandler is mounted on /.
[2006-05-22 09:30:33] INFO  WEBrick::HTTPServer#start: pid=11510 port=10081

なにー。こっちは動くじゃん。バージョンいくつから OK なんだよ。

(09:34)

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved. LIRS