〜2002年11月中旬〜
こちらではgcc 3.2でもサンプルはSEGVになりません({getch,msgbox{,2}}.rb)。 1.7のほうはmake testでminiruby.exeが起動されるのでSEGVになりますが、 これはruby.exeを使えば問題なし。 Cygwin DLLの違いかなあ。
% cygcheck -c |egrep 'cygwin|gcc' cygwin 1.3.15-1 cygwin-doc 1.2-1 gcc 3.2-1 gcc-mingw 3.2-20020817-1 gcc2 2.95.3-10
いつの間にかcygwin-1.3.15-2が出てる。
vimの正規表現がわからんという人がいた。そういう人は
:rubydo gsub(/foo/, "bar")
とするといいかも。
:perldo s/foo/bar/g
のほうがよりらしい気もするが。 どっちにしてもvimに静的にリンクするのは無駄なので、 rubyは--enable-sharedで、perlはuseshrplib=trueで作っておいたほうがいい。 vimを作るときは
--enable-rubyinterp --enable-perlinterp
が必要。
extconf.rbがまずいです。
require 'mkmf' have_library('curl') and create_makefile("curl")
ぐらいかな。
mingw版を催促される。なんで作ってないかというと、 -fnative-struct対応のgcc 3.xを待っていたからだ。
% touch foo.c % i686-pc-cygwin-gcc -c -fnative-struct foo.c cc1: unrecognized option `-fnative-struct' % i686-pc-cygwin-gcc -dumpversion 3.2
cygwin MLでも何度か 話題になっているようだが、未だ対応してない。 しょうがないからクロスのほうもgcc 2.95.3を復活させよう。
-fnative-structに対応してないとどうなるかというと こうなる。
print *"Just another Ruby hacker,".."Just another Ruby hacker,"
% prefix=/usr/local/cygwin % old_prefix=/usr/local/cygwin-1.3.12 % cp -av $old_prefix/bin/i686-pc-cygwin-gcc $prefix/bin/gcc-2.95.3 % cp -av $old_prefix/lib/gcc-lib/i686-pc-cygwin/2.95.3-5 \ $prefix/lib/gcc-lib/i686-pc-cygwin/ % i686-pc-cygwin-gcc-2.95.3 -v Reading specs from /usr/local/cygwin/lib/gcc-lib/i686-pc-cygwin/2.95.3-5/specs gcc version 2.95.3-5 (cygwin special) % echo 'main(){}' >foo.c % i686-pc-cygwin-gcc-2.95.3 foo.c
よさそう。
普通にpkgーconfigを使ってextconf.rbを実行。
% PKG_CONFIG_PATH=/usr/local/win32/gtk/lib/pkgconfig \ i386-cygwin-ruby extconf.rb \ --with-gtk-config='pkg-config gtk+-1.3-win32-production --define-variable=prefix=/usr/local/win32/gtk'
ってあまり普通じゃないね。 できあがったsrc/MakefileのCCとLDSHAREDのi686-pc-cygwin-gccをi686-pc-cygwin-gcc-2.95.3へ変更してmake。
% make AR=i686-pc-cygwin-ar RANLIB=i686-pc-cygwin-ranlib
2.55のconfig/install-shのpermisionにxが立ってなかったようで、 2.56がすぐに出た。Rubyも問題なし。
- Spurious warnings caused by config.status. This bug is benign, but painful: on some systems (typically FreeBSD), warnings such as: config.status: creating Makefile mv: Makefile: set owner/group (was: 1357/0): Operation not permitted could be issued. This is fixed.
これってautoconfが原因だったのか。
なぜか今日はこの歌が頭の中をぐるぐる回っていた。 一度しか聞いたことないのに。
更新。
更新。Berkeley DBも4.1.24に上げた。
上げてみた。
vim -d foo.c~ foo.cって便利なんだけど、 defaultの色使いはもうちょっとなんとかならかったんだろうか?
更新。
SKKとviperの組み合わせは非常に遅くなることがわかった。 大して速くない俺の入力速度についてこれないんだから、かなり遅いと言える。 viperをやめると嘘のように速くなる。 SEMIとかの相性も悪い気もするしviperはやめるか?
OutlookだとPGP/MIMEは受け付けてくれないのか? cmail+SEMIで行こうと思ったのに。
ちなむとGnuPGがインストールされてればdafault状態で
C-c C-x s (mime-edit-set-sign) C-c C-x e (mime-edit-set-encrypt)
で送信時にgpgが呼び出されて、署名や暗号化してくれる。 MailCryptでPGP ascii armor形式に変換するには
(setq cmail-use-mailcrypt t) (setq cmail-crypt-default-version "GPG")
としといて
C-c / s (mc-sign) C-c / e (mc-encrypt)
でいける。verifyは勝手にやってくれる。
ほとんど違和感なく日記が書けてるなあ。 でもついESCだの\だのを押してしまう癖はなくならない。*scratch*が\だらけだ。 emacsのキーバインドはtcshを使ってるうちに覚えてしまったというのは内緒だ。
誰か書いてたけど、jvim3で<C-G>を押すと[E]とか[J]とか表示されて非常に便利だった。 vim6にはないんだよね。 echo &fencでもいいけどどうせなら自前の<C-G>を作ってみるのも悪くない。 というわけで jvim3-c-g.vimをでっちあげてみた。 chの16進コードも出したかったが、vimで16進に変換する方法がわからず。 しょうがないからif_rubyに頼るか?
待ってたらそのままアクセスできない仕様にしてしまうとは。 これでrimを使う意味がなくなったよ、うむ。 問題はメールアドレスだけだ。あ、200円コースにすればいいのか。 あ、ほとんど見てないNetNewsもあったんだ。これって200円の場合はどうなるのか? 明日調べよう。
--- bzip2.c~ 2002-01-25 01:38:36.000000000 +0000 +++ bzip2.c 2002-11-19 13:59:50.000000000 +0000 @@ -222,3 +222,3 @@ # include <fcntl.h> -# include <sys\stat.h> +# include <sys/stat.h>
と修正してmake。
% make CC='i686-pc-cygwin-gcc -mno-cygwin' \ AR=i686-pc-cygwin-ar \ RANLIB=i686-pc-cygwin-ranlib \ PREFIX=/usr/local/mingw
あ、./bzip2を実行するなあ。wine --でやってみるか。okだ。
% make PREFIX=/usr/local/mingw install
MinGWのほうはBZ2_bzWriteOpenをチェックするときにbzlib.hをincludeしないとundefinedになってしまう。 have_libraryとhave_funcに分けよう。
将来def fileが要らなくなるらしい。
I've made a new version of binutils available for download. This is just a refresh from sources.redhat.com. A notable change is the addition of Egor Duda's --enable-runtime-pseudo-reloc option which allows almost transparent linking of dll's without the need of a def file. However, this option requires functionality in the cygwin DLL which is not yet present. Stay tuned.
結局vim6で16進に変換する方法がわからず。 作ってもいいけどif_rubyのほうが簡単そうなので全部rubyで書いてみる。 ほとんどそのまま置き換えたのが これだ。 かなりいい加減だ。
無造作にimportとするのものなんだし、keyringをそれなりに分類しようと思った。 --keyringで指定する前に--no-default-keyringがないと意味がないようだ。
makeは明日だな。