- Available Binaries for ActivePerl
- ActivePerl 1006 -- Release Notes
- ActivePerl 5.10 Change Log
- perldelta - what is new for perl v5.10.1
ActivePerl 5.10.1 がリリースされていました。チェックすることいっぱいだぁ。…あとで。
ActivePerl 5.10.1 がリリースされていました。チェックすることいっぱいだぁ。…あとで。
新版暗号技術入門 秘密の国のアリス、購入から 5 ヶ月経ってようやく読了。
これまでだいぶ長いこと曖昧な理解のままにしてきた暗号技術について、身近で使われる PGP, SSL/TLS の仕組みについて、靄が晴れるようにすっきりと理解できたと思う。
少しずつ読み進めて、時には睡眠誘導剤になったりw、理解の浅かったところを読み返しながらでしたけれど、ほんとうに読み易かった。
親切な作りというんでしょうか、章立ても、各パラグラフも、読者を決して置いてけぼりにしない、不安にさせない心配りが随所にあって、この著者(結城浩さん)の本ならば、どんな分野でも理解できちゃうんじゃないかと思ってしまうくらい。
ポイントごとに参考文献の紹介も挟まれており、更に理解を深めたい向きへの配慮も忘れられていません。(もちろん巻末にもまとめられている)
些細なことかも知れないけれど、索引も良かった。 読んでる最中には索引を引かず、ページを繰って読み返して理解を深めることにして、読了後に初めてじっくり索引を見ました。ほんとうは索引を引きたかったところも、ちょっと我慢して。期待してたんです、索引に。この著者の索引は、きっと「使える」索引だろうと。思ったとおりでした。形だけじゃない、実用的な索引でした。
ぼくはまったく数学が得意なほうではないのに、ここまできちんと読ませる著者の文章力・構成力はすごいと思う。ぼくは結城さんのファンなので多少バイアスかかってるかも知れないけど。
前から気になってた数学ガール のシリーズも読んでみる予定です。数学好きになっちゃったりしてね。
内容とは関係ないけど、この本の背表紙の製本方法(?)は、(名称は忘れちゃった)ちょっと特殊なものらしく、著者と編集者のこだわりの作りなんだなぁと感じました。読み易いし使い易いです、物理的な意味で。
Acer AspireOne D250 (AOD250) のキーボードを、ヤフオクで買った US-ASCII 配列の英語キーボードに換装してみました。
英語キーボードは AOA150 用のものがそのまま使えます。A150, D150 は共通として売っているものが多いようなので、加えて D250 も共通の部品ということになると思います。
キーボードの外し方とコネクタの差し方は AOA150 と AOD250 は少し異なるようです。
AOD250 の場合、キーボードを抑えている可動するツメは F8 キーの上にある一カ所だけです。
加えて、キーボードの両サイドに二カ所ずつ、固定のツメがあります。
外すためのポイントは、F8 キー上のツメを液晶側へ押しながら、キーボードを∩状にたわませることです。
F8 キーのすぐ隣りあたりにクレジットカード状のものを軽く差し込んで液晶側に倒し、キーボードが上へ浮き上がるように梃子の力を加えておきます。液晶は最大限に開いておくのが良いです。
その状態で、マイナスドライバなどのしっかり厚みと幅のあるもので F8 キー上のツメを液晶側に押してあげると、キーボードが∩状にたわんで、「ぽこっ」と浮きます。
F8 キー上のツメから外れたら、あとは∩状のたわみを維持しながら、両サイドのツメから抜き出すだけです。
キーボードを浮かせたら、こんどはキーボードと本体を繋いでいるリボン状のケーブルをコネクタから外します。
AOA150 では「コネクタで挟んである」ようですが、AOD250 は違いました。挟んであるのは同じなのですが、解放するには、コネクタの両サイドにあるツメをスライドさせます。
両サイドのツメをスライドさせると、するっと抜けます。
接続するときも同様に、ケーブルをしっかり奥まで入れてから、ツメをスライドさせて固定します。
戻すのは簡単で、すべてのツメにはまるように押し込むだけです。
…中のリボン状のケーブルが変な形に折れないことを祈りながら。(-人-)
espresso-mode is a Javascript-mode for GNU Emacs.
これくらいシンプル(?)なモードも良い気がしてきた。ちょっと使ってみようかな。js2-mode の高機能 + 柔軟なインデンテーションに慣れていると厳しいかな…。
Emacs 23 くらいから espresso-mode は javascript-mode と名前を変えて標準ディストリビューションの lisp/progmodes/js.el に含まれています。
espresso-なんたらの prefix が js-なんたらに変わった程度の変更なので、単純に prefix を置換すれば周辺の elisp も動くようです。
Emacs 23.1 がリリースされたので、Windows 用の NTEmacs 23.1 をビルドするときの個人的な手順メモ。
IME 対応などのパッチを使わない点を除けば、上記のページで広松さんが公開してくださっている手順と同じです。
ほかの部分も、ぼくが NTEmacs 22 を作っていた上記の手順とだいたい同じです。
コンパイルには Cygwin 1.5 の gcc 3.4.4-3, MinGW パッケージ, GNU Make 3.80 を使います。
$ uname -a CYGWIN_NT-5.1 aspirin 1.5.25(0.156/4/2) 2008-11-18 15:24 i686 Cygwin $ gcc --version gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) Copyright (C) 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ make --version GNU Make 3.80 Copyright (C) 2002 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ cygcheck -s | egrep '^(gcc|mingw|make)' gcc 3.4.4-3 gcc-core 3.4.4-3 gcc-g++ 3.4.4-3 gcc-mingw 20040810-1 gcc-mingw-core 20050522-1 gcc-mingw-g++ 20050522-1 make 3.80-1 mingw-bzip2 1.0.5-3 mingw-libbz2-devel 1.0.5-3 mingw-libbz2_1 1.0.5-3 mingw-runtime 3.15.2-1 mingw-zlib 1.2.3-3 mingw-zlib-devel 1.2.3-3 mingw-zlib0 1.2.3-3
Cygiwn 1.5 は UTF-8 Cygwin の cygwin1.dll を利用させてもらっています。たぶん NTEmacs のビルドには関係ないですが。
Cygwin 1.7 は現時点でリリースされておらず、環境を作っていないので状況は分かりません。もうすぐリリースなのかな。もう MinGW アプリケーション作れるのだろうか…。
gcc は alternatives 対応直前の gcc-3.4.4-3 を使います。一連の gcc のパッケージのバージョンを keep しておきます。
gcc-3.4.4-999 を使う場合には alternatives の symlink (ショートカット)をどうにかするか、configure.bat を修正して、COMPILER=gcc-3 を指定する必要があると思います(未確認)。
gcc-4 系は現時点では MinGW アプリケーションを作るための "-mno-cygwin" フラグがサポートから外されているので使用できません。
MinGW はどのパッケージが最低限必要なのか調べていないので、mingw と名のつくパッケージを適当に…。
GNU Make は、emacs/nt/INSTALL によれば 3.81 は使えないらしいので 3.80 に keep してあります。
その他の Cygwin のパッケージは、サーバ系と X 関係、フォント、グラフィック関係を除いて自分が使うものをテキトーに入れてます。
emacs/nt/INSTALL の "* Optional image library support" を参考にして、DLL とヘッダファイルを用意します。
実験的サポートの SVG は入れてません。
$ \ls -Rgo src/GnuWin32 src/GnuWin32: total 3524 drwx------+ 3 0 Feb 8 16:57 DLL -rwx------+ 1 189242 May 15 2005 jpeg-6b-4-bin.zip -rwx------+ 1 38186 May 15 2005 jpeg-6b-4-lib.zip -rw-r--r-- 1 401037 Jun 5 05:53 libpng-1.2.37-bin.zip -rw-r--r-- 1 134939 Jun 5 05:55 libpng-1.2.37-lib.zip -rwx------+ 1 285963 Mar 2 2007 libungif-4.1.4-1-bin.zip -rwx------+ 1 12272 Mar 2 2007 libungif-4.1.4-1-lib.zip -rwx------+ 1 928480 Mar 2 2007 libungif-4.1.4-1-src.zip -rwx------+ 1 687244 Mar 31 2006 tiff-3.8.2-1-bin.zip -rwx------+ 1 38372 Mar 31 2006 tiff-3.8.2-1-lib.zip -rwx------+ 1 35884 Feb 15 2005 xpm-3.5.1-1-bin.zip -rwx------+ 1 42484 Feb 15 2005 xpm-3.5.1-1-lib.zip -rwx------+ 1 622191 Feb 15 2005 xpm-3.5.1-1-src.zip -rwx------+ 1 99777 Jul 26 2005 zlib-1.2.3-bin.zip -rwx------+ 1 71569 Jul 26 2005 zlib-1.2.3-lib.zip src/GnuWin32/DLL: total 1297 drwx------+ 2 0 May 9 2008 X11 -rwx------+ 1 16189 Oct 25 2005 gif_lib.h -rwx------+ 1 1800 May 14 2005 jconfig.h -rwx------+ 1 14488 May 15 2005 jerror.h -rwx------+ 1 14567 May 14 2005 jmorecfg.h -rwx------+ 1 127488 May 15 2005 jpeg62.dll -rwx------+ 1 46359 May 15 2005 jpeglib.h -rwx------+ 1 2245 Jun 4 22:41 libpng12-config -rwx------+ 1 4645 Jun 4 22:55 libpng12.def -rwx------+ 1 260096 Jun 4 22:48 libpng12.dll -rwx------+ 1 376832 Mar 28 2006 libtiff3.dll -rwx------+ 1 31232 Mar 1 2007 libungif4.dll -rwx------+ 1 153839 Jun 4 22:40 png.h -rwx------+ 1 45382 Jun 4 22:40 pngconf.h -rwx------+ 1 4959 Oct 25 2004 simx.h -rwx------+ 1 33725 Dec 27 2005 tiff.h -rwx------+ 1 2968 Mar 23 2006 tiffconf.h -rwx------+ 1 23216 Mar 28 2006 tiffio.h -rwx------+ 1 410 Mar 23 2006 tiffvers.h -rwx------+ 1 52224 Feb 13 2005 xpm4.dll -rwx------+ 1 75264 Jul 20 2005 zlib1.dll src/GnuWin32/DLL/X11: total 16 -rwx------+ 1 16286 Jan 25 2004 xpm.h
リリースの tarball を入手するか、CVS / git リポジトリから emacs モジュールをチェックアウトします。
Emacs 23.1 で使用する branch は EMACS_23_1_RC です。
$ cd ~/src/anoncvs $ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs \ > checkout emacs $ cd emacs $ cvs update -r EMACS_23_1_RC
$ cd ~/src/git $ git clone git://git.savannah.gnu.org/emacs.git $ cd emacs $ git checkout --track origin/EMACS_23_1_RC
Cygwin 環境でビルドするために nt/gmake.defs を修正します。Cygwin で検索すると出てくるので分かりやすいです。
$ cd nt $ git --no-pager diff gmake.defs diff --git a/nt/gmake.defs b/nt/gmake.defs index 018ca15..d860c42 100644 --- a/nt/gmake.defs +++ b/nt/gmake.defs @@ -84,9 +84,9 @@ MAKETYPE=gmake # remedied before putting this cygpath kludge back in. # Convert CURDIR to native file name, if in Cygwin format -#ifeq "$(shell cygpath $(CURDIR))" "$(CURDIR)" -#CURDIR := $(shell cygpath -m $(CURDIR)) -#endif +ifeq "$(shell cygpath $(CURDIR))" "$(CURDIR)" +CURDIR := $(shell cygpath -m $(CURDIR)) +endif THISDIR = . @@ -276,7 +276,7 @@ ifeq "$(ARCH)" "i386" ifdef NOOPT ARCH_CFLAGS = -c $(DEBUG_FLAG) $(NOCYGWIN) else -ARCH_CFLAGS = -c $(DEBUG_FLAG) $(NOCYGWIN) $(MCPU_FLAG) -O2 \ +ARCH_CFLAGS = -c $(DEBUG_FLAG) $(NOCYGWIN) $(MCPU_FLAG) -O3 \ # -fbuiltin \ # -finline-functions \ # -fomit-frame-pointer
上記後半の -O3 optimization の修正と、以下の configure.bat の修正は必要なわけではないです。
$ git --no-pager diff configure.bat diff --git a/nt/configure.bat b/nt/configure.bat index 56b8570..21e683a 100755 --- a/nt/configure.bat +++ b/nt/configure.bat @@ -325,10 +325,10 @@ set COMPILER=gcc echo Using 'gcc' rm -f junk.c junk.o Rem It is not clear what GCC version began supporting -mtune -Rem and pentium4 on x86, so check this explicitly. +Rem and prescott on x86, so check this explicitly. echo main(){} >junk.c -echo gcc -c -O2 -mtune=pentium4 junk.c >>config.log -gcc -c -O2 -mtune=pentium4 junk.c >>config.log 2>&1 +echo gcc -c -O3 -mtune=prescott junk.c >>config.log +gcc -c -O3 -mtune=prescott junk.c >>config.log 2>&1 if not errorlevel 1 goto gccMtuneOk echo The failed program was: >>config.log type junk.c >>config.log @@ -336,8 +336,8 @@ set mf=-mcpu=i686 rm -f junk.c junk.o goto gccdebug :gccMtuneOk -echo GCC supports -mtune=pentium4 >>config.log -set mf=-mtune=pentium4 +echo GCC supports -mtune=prescott >>config.log +set mf=-mtune=prescott rm -f junk.c junk.o :gccdebug rem Check for DWARF-2 debug info support, else default to stabs
なんでいじったのか覚えていないけど、たぶん Cygwin 1.5 の gcc-4 が使えるようになるのを期待して準備していたような…。 make 時に ARCH_CFLAGS を指定するほうが綺麗なのかも。
$ cd ~/src/git/emacs/nt $ LANG=C ./configure.bat --with-gcc --no-cygwin --no-debug \ > --cflags=-I/cygdrive/c/Users/yu-ji/src/GnuWin32/DLL \ > --prefix=C:/emacs/23 \ > 2>&1 | tee config.log.yu-ji
うまくいけば "building with PNG support" とかの表示とともに makefile ができあがります。
$ LANG=C make bootstrap $ LANG=C make info $ LANG=C make install
info を作るとき以外は LANG=C の指定いらないかも。tarball からのインストールなら bootstrap は不要らしいです。
bootstrap のあと、../src/oo-spd/i386/emacs.exe が出来てるはずなので -q つけて起動したりして、ちゃんと動くか確認します。
画像用の DLL を PATH の通ったディレクトリか emacs.exe と同じディレクトリにコピーして、NTEmacs 自体のインストールはこれで完了です。
以下はぼくが使っている elisp とかのインストール手順メモ。
上記ページを参考にして emacs-clientw.vbs を使っています。
Emacs の server がいれば emacsclientw -n を、いなければ runemacs するスクリプトです。
' ' C:\emacs\23\bin\emacs-clientw.vbs ' Set objShell = WScript.CreateObject("WScript.Shell") Set fso = CreateObject("Scripting.FileSystemObject") If WScript.Arguments.Count = 1 Then strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * From Win32_Process") Dim isRunning isRunning = False For Each objItem in colItems If InStr(objItem.CommandLine, "emacs.exe") Then isRunning = True End If Next If isRunning Then objShell.Run("""" & fso.GetParentFolderName(WScript.ScriptFullName) & "/emacsclientw.exe"" -n """ & WScript.Arguments(0) & """") Else objShell.Run("""" & fso.GetParentFolderName(WScript.ScriptFullName) & "/runemacs.exe"" """ & WScript.Arguments(0) & """") End If Else objShell.Run(fso.GetParentFolderName(WScript.ScriptFullName) & "/runemacs.exe") End If
個人的には Emacs の外からファイルを開かせることはそれほど無いのですが、やっぱり使えないと困るときもあるので。
Daredevil SKK で使われている APEL
$ cd ~/src/anoncvs/apel $ cvs update -dP $ cvs diff -u makeit.bat | nkf -w Index: makeit.bat =================================================================== RCS file: /cvs/root/apel/makeit.bat,v retrieving revision 1.1 diff -u -r1.1 makeit.bat --- makeit.bat 1 Feb 2001 03:19:36 -0000 1.1 +++ makeit.bat 25 Mar 2009 01:27:54 -0000 @@ -102,9 +102,10 @@ rem --- なお、DEFAULT_MAKE_ARG に可能な値は make1.bat を御覧ください。 rem --- (Please see make1.bat for possible values of DEFAULT_MAKE_ARG.) -set PREFIX= -set EMACS= -set LISPDIR= +set PREFIX=c:\emacs +set EMACS=%PREFIX%\23\bin\emacs.exe +set LISPDIR=%PREFIX%\site-lisp +set VERSION_SPECIFIC_LISPDIR=%PREFIX%\23\site-lisp set DEFAULT_MAKE_ARG= $ ./makeit.bat install
Emacs 内では ddskk を、Windows の他のアプリケーションでは skkime を使っています。
$ cd ~/src/anoncvs/skk/main $ cvs update -dP $ cvs diff -u makeit.bat | nkf -w Index: makeit.bat =================================================================== RCS file: /circus/cvsroot/skk/main/makeit.bat,v retrieving revision 1.4 diff -u -r1.4 makeit.bat --- makeit.bat 3 Oct 2008 15:03:39 -0000 1.4 +++ makeit.bat 25 Mar 2009 01:39:39 -0000 @@ -102,9 +102,10 @@ rem --- なお、DEFAULT_MAKE_ARG に可能な値は make1.bat を御覧ください。 rem --- (Please see make1.bat for possible values of DEFAULT_MAKE_ARG.) -set PREFIX= -set EMACS= -set LISPDIR= +set PREFIX=c:\emacs +set EMACS=%PREFIX%\23\bin\emacs.exe +set LISPDIR=%PREFIX%\site-lisp +set VERSION_SPECIFIC_LISPDIR=%PREFIX%\23\site-lisp set DEFAULT_MAKE_ARG= $ ./makeit.bat install
site-lisp 以下に展開するだけ。
$ cd ~/src/anoncvs/emacs-w3m $ cvs update -dP $ ./configure \ > --with-lispdir=/cygdrive/c/emacs/23/site-lisp/w3m \ > --infodir=/cygdrive/c/emacs/23/info \ > 2>&1 | tee config.log.yu-ji $ make $ make install
$ cd ~/src/anoncvs/mew $ cvs update -dP $ ./configure \ --prefix=/cygdrive/c/emacs/23 \ --with-elispdir=/cygdrive/c/emacs/23/site-lisp/mew \ --with-etcdir=/cygdrive/c/emacs/23/site-lisp/mew/etc \ --infodir=/cygdrive/c/emacs/23/info \ --mandir=/usr/man \ 2>&1 | tee config.log.yu-ji $ make $ make install && make install-info && make install-jinfo
info を自分で作るときは info/Makefile を修正したり、Cygwin じゃなくてコマンドプロンプトから作ったりの手順が必要っぽいです。環境によるかも。ちゃんと調べてないですが。
別の記事で載せてるフォント指定の設定はそのうち整理します。
「Emacs 23 で使用する branch は EMACS_23_1_RC」と書いてたのを修正。23.2 で新しい branch を切るか、このまま trunk から出すか、まだ決まってないっぽいです。メンテナは trunk からのつもりっぽい?
この記事は Cygwin 1.5 の gcc 3 系を使って MinGW アプリケーションとして Emacs をビルドするものです。
Cygwin 1.5 の gcc 4 系および Cygwin 1.7 の gcc は MinGW アプリケーションのコンパイルをサポートしていません。
新たにビルド環境を整えるかたには、MSYS + MinGW によるビルドをお薦めします。
"msys mingw gcc emacs" あたりでぐぐってくだささい…。