2009-09-28

MacVim KaoriYa 20090928

http://code.google.com/p/macvim-kaoriya/

今回もテストリリースです。

Snow Leopard、Leopard intel環境などの MacVim i386 + Vim x86_64 の組み合わせで起きていたスクロールバーが表示されない不具合が修正されました。

お試しくださいませ。

2009-09-23

MacVim KaoriYa 20090923

http://code.google.com/p/macvim-kaoriya/

今回もまだまだまだテストリリースです。


  • +pythonでimport socketのようなdylibを読むようなscriptを実行させると_PyExc_IOErrorシンボルが解決できずエラーになる件を今度こそ修正しました。たぶん。


20090922版の変更点も合わせてご覧くださいませ。

是非是非お試しくださいませ。

2009-09-22

MacVim KaoriYa 20090922

http://code.google.com/p/macvim-kaoriya/

今回もまだまだテストリリースです(MacVimがちゃんとSnow Leopard対応するまでテストリリースです。半透明にならない、スクロールバーが出ない、など不具合ありますので)。20090922版です。


  • 香り屋パッチを20090919版に更新しました (正確には、20090321版と20090919版のパッチを比較してMacVim-KaoriYaにもれがないことを確認しました)。
  • +pythonでimport socketのようなdylibを読むようなscriptを実行させると_PyExc_IOErrorシンボルが解決できずエラーになる件を修正しました。


是非お試しくださいませ。

2009-09-11

MacVim KaoriYa 20090911

http://code.google.com/p/macvim-kaoriya/

今回もまだテストリリースです。20090911版です。


残念ながらMac OS X 10.4 Tiger非対応になりました。
Snow Leopardでの使い勝手を優先させていただきました。すみません。が、あくまでバイナリリリースが非対応になっただけですので、ソースコードからのビルドも実行も問題なくできると思います。問題があれば教えてくださいませ。

perl 5.10、python 2.6(2.5ともバイナリ互換)に変更
http://blogger.splhack.org/2009/09/macvim-kaoriya-20090902-2.html
Snow Leopardでは自動的にOS標準のものを使うので、設定は必要ありません。
Leopard intelの場合、64bitでアプリケーションが動く環境では、i386ではなくx86_64のdylib(i386+x86_64のuniversalでももちろん可)を必要とします。rubyとpythonはLeopard標準のものでそのまま動作します。

IM変換時のカーソル位置を対策
2重アンダーライン表示はできていません。

ATOK 部分確定時の確定文字列消失を対策
部分確定後アンダーライン位置がずれる場合があるようですが。

vimproc v1.22に更新
vimshellでつかいます。


是非動作確認をお願いいたします。

2009-09-06

MacVim KaoriYa

Snow Leopardでperl5.8.9を使ってbuildするように変更することで、perl5.8.8とのbinary compatibilityを確保(したつもり)。

(20090907 追記) 5.8.8 と 5.8.9 はbinary compatibleじゃないことが発覚。MacPortsのdefaultは5.8.9で、Snow Leopardも5.8.9を標準搭載しているので、5.8.9にしておきます。と思ったんですが、5.8.9だとif_perl.xsがbuildできないので5.10になりました...

ただしSnow Leopardでの使い勝手を優先したことで、次の配布バイナリから、残念ながら 10.4 Tiger intel で動作しなくなりそうです(x86_64で起動しようとして、objcのlibがx86_64がなくて起動しないと思われます)。ppcでは動きそうですが。20090802版を使用していただくか、自力でbuildしていただく必要があると思います。すみません。


http://www.serendip.ws/archives/2951

動作確認ありがとうございます。変換中のカーソル位置は対応してみました。候補選択中のアンダーラインも戻したかったのですが、FEAT_XIM内をどう変更するといいか検討中です。

部分確定はどういう動作をするかNSLog入れて見ていただける人がいれば...

2009-09-04

Leopardとx86_64 binary

Snow Leopardで普通に作ったx86_64 binaryは、Leopardでは動作しない。

printfしかしないようなbinaryの場合、

Leopard用は

/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 103.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0)


Snow Leopard用は

/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0)


と依存しているdylibが違いますし、あとdyldあたりのinterfaceが変わっているような雰囲気です。


Snow LeopardでLeopardでも動くbinaryを作るには、

$ MACOSX_DEPLOYMENT_TARGET=10.5 gcc a.c


とか、

$ MACOSX_DEPLOYMENT_TARGET=10.4 gcc -arch x86_64 -arch i386 -arch ppc a.c


とか。


そもそもUNIXな範囲でx86_64なbinaryがSnow Leopard上で常に有利なの? という話もありますが、それはさておき、

Snow Leopard: 10.6 x86_64
Tiger/Leopard: 10.4 i386/ppc


なuniversal binaryを作ってみたい。


Xcodeだと、MACOSX_DEPLOYMENT_TARGET_x86_64てな感じの設定があるので、

$ MACOSX_DEPLOYMENT_TARGET=10.5 MACOSX_DEPLOYMENT_TARGET_x86_64=10.6 gcc -o a.out -arch i386 -arch x86_64 a.c


もいけるのかと思いきや、gccには通用しません。


ということで、lipoを使います。とりあえずi386 10.5とx86_64 10.6のuniversal binaryを作ってみます。

$ MACOSX_DEPLOYMENT_TARGET=10.5 gcc -o a.out.i386.10.5 -arch i386 a.c

$ MACOSX_DEPLOYMENT_TARGET=10.6 gcc -o a.out.x86_64.10.6 -arch x86_64 a.c

$ lipo -create a.out.i386.10.5 a.out.x86_64.10.6 -output a.out


できました。

$ otool -arch all -L a.out
a.out (architecture i386):
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 103.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0)
a.out (architecture x86_64):
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0)


それっぽくlinkされています。


てことで喜び勇んでLeopardで動かしてみると、

dyld: unknown required load command 0x80000022


...

ということで、Leopardではx86_64を動かせちゃうので10.6なx86_64を動かしてしまう訳ですね。


ついでにだめもとで試してみると

$ lipo -create a.out.x86_64.10.5 a.out.x86_64.10.6 -output a.out.2
lipo: a.out.x86_64.10.5 and a.out.x86_64.10.6 have the same architectures (x86_64) and can't be in the same fat output file


やはりだめですね。


よって、i386はLeopardで、x86_64はSnow Leopardで、てなことはできなさそうです。

2009-09-03

MacVim KaoriYa 20090903

http://code.google.com/p/macvim-kaoriya/

20090903版をリリースしました。是非動作確認をお願いいたします。

Mac OS X 10.5 Leopard intel で動作しない不具合を修正しました。

結局i386/ppc universal binaryになっています。

http://blogger.splhack.org/2009/09/macvim-kaoriya-20090902.html
http://blogger.splhack.org/2009/09/macvim-kaoriya-20090902-2.html

MacVim-KaoriYa 20090902 その2

http://code.google.com/p/macvim-kaoriya/

20090902版ですが、重要な変更点を書き忘れました。perl/pythonのbinary compatibleなバージョンを変更しています。
Mac OS X 10.6 Snow Leopardを標準としていますので、

perl 5.8 → perl 5.10
python 2.5 → python 2.6


となりました。rubyは1.8.6 → 1.8.7になっただけで1.8系はbinary compatibleです。


10.6 Snow Leopard で使う場合は、OS標準のものを自動的に使用しますが、
10.4 Tiger, 10.5 Leopard で使う場合、またMacPortsのperl,python,rubyを使用する場合は、.vimrcで、

let $PERL_DLL = "/opt/local/lib/perl5/5.10.0/darwin-2level/CORE/libperl.dylib"
let $PYTHON_DLL = "/opt/local/lib/libpython2.6.dylib"
let $RUBY_DLL = "/opt/local/lib/libruby.1.8.7.dylib"

のように使用するshared libraryを指定してくださいませ。


それ以外のバージョンを使用する場合は自力でbuildする必要があります。Vim自体にもpatchが必要となる場合があります。

2009-09-02

MacVim KaoriYa 20090902

http://code.google.com/p/macvim-kaoriya/

20090902版をアップしました。今回もSparkleフィードはあえて更新していません。

10.4 Tiger/10.5 Leopard: i386/ppc 32bit Vim, 32bit MacVim
10.6 Snow Leopard: x86_64 64bit Vim, 32bit MacVim

というuniversalアプリになっています。

是非動作確認をお願いいたします。

いまのところSnow Leopard上では


  • スクロールバーが表示されない
  • ATSUIレンダラが正常動作しない


といった不具合があります。あとはATOKで部分確定すると確定部分が消える問題もあるようです。


(9/3 10:30 追記)

10.5 Leopard intel で動作しませんでした。

  • PSMTabBarControlが10.6向けになっている(?)
  • Leopard intelでもx86_64を動作させようとしているが、x86_64は10.6向けのため動かない(?)

のようです。

10.4 Tiger ppc/i386, 10.5 Leopard ppc での動作確認をお待ちしております。

2009-09-01

MacVim-KaoriYa と 半角カナ

http://keireki.jp/ak/81620929012052521::18365121723600177760
Mac使いにはMacVim香り屋版がおすすめです。 http://code.google.com/p/macvim-kaoriya/


ご紹介ありがとうございます!

香り屋版ですらMacだと半角カナが正常に扱えない。。。orz


ぜひ具体例を教えてくださいませ。


文字コードの認識がおかしい場合は、
「ファイル」「エンコード指定...」「開く...」か「再読込...」でコードを指定するか、
:e ++enc=sjis
などでコードを指定してくださいませ。


なおASCII + CP932 半角カナ だけだと EUC-JP に認識されてしまう件は、Gauche由来のguessコードを改造してみました。次のリリースから適用されます。