OOTA's page

GNU emacs(x64)

http://www.vector.co.jp/soft/winnt/writing/se494046.html

NEW! emacs-23.4-x64-r936-119

2012.7.10 登録依頼しました

Changes
  • IMEの前後参照変換が可能になりました。
  • 画像ライブラリを最新バージョンにしました(libpng1.5.11, zlib-1.2.7)
バグ修正
  • expand-file-nameで終了するバグを修正しました。

OLD NEWS

概要

GNU emacsを64bit windows用にコンパイルしました。コンパイル環境はWindows SDK V6.1とそれに付属のVC++2008です。VC++2010でのコンパイルも可能です。

画像表示用dll(jpeg, png, gif, svg, xpm),cmigemo(dll直接呼び出し),ime-patch, VC-Runtimeを含むオールインワンパッケージです。7およびXpの64bitバージョンで動作確認しています。Vistaでも動作するはずですが未確認です。

変更点

  • VC++ 2008/2010 64bit対応(LLP64対応)
  • SFU(SUA)のインストールされていない環境でコンパイル可能とした
  • gnupackにて提供されているIME-patchを適用
  • ダイナミックロード機能

    emacsを再コンパイルすることなしに、dllにて機能を追加することができます
  • 画像表示dll(jpeg, gif, png, tiff, svg, xpm)を同梱
  • KaoriYaにて公開されているC/Migemoのdllを直接呼出す改造版migemoを同梱
  • smart-ime

    IMEのオンオフ制御(elisp部分)をW32に依存しないよう書き直しました。動作の怪しいところも修正してあります。
  • イメージフィットオプション

    jpegとsvg(画像ローダがリサイズに対応しているもの)は表示の際のサイズフィット機能を追加しました。指定サイズに合うようにsvgは拡大,縮小,jpegは縮小のみ行います。jpegの縮小は8ユニット単位なので、縮小率はこれに合わせて切り上げになります。

    image-fit-option-alistに(画像タイプ . フィットオプション)で指定します。customize可能です。

    フィットオプションは以下から選択可能です。デフォルトは'((jpeg . frame) (svg . width-or-height)))です。
    • never: フィットしない
    • frame: フレームに合わせる
    • width: 幅に合わせる
    • height: 高さに合わせる
    • width-or-height: 幅または高さのどちらかに合わせる
    elisp関数create-imageにてイメージオブジェクトを作成する際にプロパティ:fitを指定し、ファイル個別の設定を行うことも可能です。例:

    (insert-image (create-image "ファイル名" 'jpeg nil :fit 'height))
  • IME再変換、前後参照変換

    IME再変換、前後参照変換をサポートしました。以下のfunction, variableが使用可能です。
    • function: w32-ime-perform-reconversion

      再変換を実行します
    • variable: ime-enable-reconversion

      nil以外の場合再変換を有効にします。
    • variable: ime-enable-document-feed

      nil以外の場合前後参照変換を有効にします。

設定

  • 環境変数EMACS_MAX_HEAPに最大予約メモリサイズを10進+単位([KMGT])で指定します。

    デフォルト値は実装メモリの2倍、最大2Tバイトです。

    メモリ管理用にOSが使用する領域は予約サイズに線形に比例するので、注意してください。
  • 同梱してあるライブラリの設定はsite-init.elに記述してあります
  • カスタマイズ変数
    current-language-environment "Japanese"
    default-input-method "W32-IME"
  • 初期化ファイルに以下を記述します。 r936-119以降では初回起動時に自動設定するので必要ありません。
;;
;; IME
;;
; 以下4行は必須ではありません
(setq-default w32-ime-mode-line-state-indicator "[--]")
(setq w32-ime-mode-line-state-indicator-list '("[--]" "[あ]" "[--]"))
; カーソル色(カーソル色の設定を行う場合はこれ以前で行う)
(add-hook 'w32-ime-on-hook #'(lambda () (set-cursor-color "DeepSkyBlue")))
(add-hook 'w32-ime-off-hook
	  `(lambda () (set-cursor-color ,(frame-parameter nil 'cursor-color))))

; 以下2行は必須です。
(w32-ime-initialize)
(require 'smart-ime)

;;
;; MIGEMO
;;
(unless (boundp 'isearch-mode-map)
  (load-library "isearch"))

(dolist (key (where-is-internal
	      'toggle-input-method global-map nil nil 
	      (command-remapping 'toggle-input-method)))
  (when (= (length key) 1)
    (define-key isearch-mode-map
      key 'migemo-isearch-toggle-migemo)))

(require 'cmigemo)
	

OLD NEWS

  • 2012.2.24 登録依頼しました
    • ダイナミックローダーを組み込みました。
    • Cmigemoをダイナミックローダベースに変更しました
    • IMEの変換ウィンドウで使用するフォントを設定可能にしました。

      frame-parameterのime-fontで指定されるフォントを使用します。ime-fontを設定しない場合は、frame-parameterのfont属性で指定される(フレームで使用している)フォントを使用します。

      設定例:default-frame-parameterのime-font属性を(ime-font . "Mugu 1m-10")のように設定します。
    • IMEの再変換、前後フィードバック(前後の単語をみて適切な変換候補を選ぶ)機能に対応しました。
    • イメージ表示ライブラリをjpeg-8d, lpng158にアップデートしました。
    • 実装メモリが少ないマシンで起動しないバグを修正しました
    • 「表」など2バイト目が0x5cであるような文字を含むファイル名/ディレクトリ名を正しく扱えるように修正しました
  • 登録依頼しました 2012.2.14
    • emacs-23.4-x64-r883-98はデバッグ情報付のバイナリをパッケージしたため、開発環境をインストールしていないPCでは動作しませんでした。

      本バージョンはデバッグ情報なしのバイナリです。その他の変更はありません。
    • 実装メモリが少ないPCで起動しないバグが判明しています。GNU emacsのメモリ管理と矛盾する領域を予約してしまうことが原因です。環境変数EMACS_MAX_HEAPで大き目の領域を予約することで回避可能です。8Gくらいが適当と思います。
  • 2012.1.29
    • emacs-23.4ベースです。

      セキュリティパッチを含みますのでCEDETユーザーはこちらを使用する事をお勧めします。
    • ダイナミックロード機能を追加しました
    • 起動時にデフォルトで256Gのメモリを予約していましたが、OSが管理用に使用する領域が無視できない大きさ(0.19%)であることが判明しましたので、実メモリの2倍をデフォルト値にしました。
    • MIGEMOモードをバッファローカルにしました。初期モードはバッファの文字コードから判定します。
  • 2012.1.22

    emacs-23.3-x64-r828-73に同梱したemacsへ対する修正部分の作成に失敗していました。emacs-23.3-x64-r828-73-diffs.zipが正しい修正部分です。
  • 修正版を登録依頼しました。(2011/12/23)
    • 初期化ファイル(.emacs)に要記述だった設定(ime制御、image表示)をデフォルトで設定。
    • イメージフィットオプション >>詳細
    • xpmライブラリ追加
    • メモリ空間予約方法の改善(memory exhaust対策)
    • emacs-23.3bベース
    • バグ修正
      • hownehowmにて異常終了する。(random n)にて異常終了(0割)
      • w32-get-valid-keyboard-layouts,w32-get-keyboard-layoutの返り値が不正
      • ダイアログボックスで日本語が文字化けする。
      • speedbar使用時にIME制御が正しく行われない。
  • 修正版を登録依頼しました。(2011/12/3)
    • (split-window (get-buffer-window "*scratch*") 1000)で異常終了するバグを修正

      待ちきれない方はパッチ
    • VC++2010でコンパイル可能
    • 欠落していたinfoファイルを追加
Design downloaded from free website templates.