概要
- Emacs 31.1 がリリース、目立つ大規模新機能はなし
- unexec dumper の完全廃止など、時代の終焉を象徴する変更
- ユーザビリティ向上 のための細かな改善多数
- Tree-sitter の導入支援やミニバッファ強化など、開発体験の向上
- インストールや起動時の 挙動変更 も要チェック
Emacs 31.1の主な特徴と変更点
-
目立つ大きな新機能は非搭載 従来のEmacsメジャーリリースとは異なり、「これ一つ!」という大きな新機能はなし 小規模な使い勝手改善や技術的な整理が中心
-
Garbage Collector刷新は次期バージョンへ延期 期待されていた新GCは Emacs 32 で導入予定 詳細は今後の投稿で解説予定
-
unexec/pdumper論争とその終焉 伝統的な unexec dumper が完全廃止 代替の portable dumper が全ユーザー向けデフォルトに glibc依存からの脱却、Daniel Colascioneによる新方式の標準化 これによりEmacs起動高速化とクロスプラットフォーム性向上
-
User Lisp Directory機能の追加 .emacs.d配下のuser-lisp/ディレクトリ以下のLispファイルを自動で再帰的にバイトコンパイル autoload対応・load-path自動追加 設定で無効化やディレクトリ変更も可能 prepare-user-lispコマンドによる手動再スキャンもサポート
-
Minibufferと補完UIの強化 completion-preview-modeのカスタマイズ性向上 Emacs標準のCompletionsウィンドウ活用型UIの改善 「Company」「Corfu」的な体験をEmacs流で実現
-
ウィンドウレイアウトの回転機能 M-x window-layout-rotate-clockwise等でウィンドウ配置の回転 C-x w C-hで新オプションの確認が可能
-
ポイントとマークの交換動作の改善 C-x C-xでリージョンをアクティブ化せずにポイント・マーク交換が可能に transient-mark-modeの使い勝手向上
-
Tree-sitterの自動言語グラマーインストール 対応モードではTree-sitter用グラマーの自動インストールを提案 Windows等での導入障壁を大幅に緩和 Combobulate等のTree-sitter系パッケージ利用促進
-
Emacs 31.1でのインストール・起動時の主な変更 unexec dumper完全削除
- Emacs 27から非推奨だったunexec dumperがついに削除
- portable dumperがm68k a.outターゲットにも対応 ctagsプログラムのビルド・インストール廃止
- 代替としてUniversal Ctags推奨(https://ctags.io/)
- 旧ctags互換はetags --ctagsで対応可能 32bit x86向けGCCビルドオプション変更
- '-mfpmath=sse'または'-fno-tree-sra'をデフォルト化しGCCバグ回避 systemdユーザーサービス用インストール先指定オプション追加
- --with-systemduserunitdirでsystemd user unitファイルの設置先指定
- Emacsサーバーのsystemdサービス化が容易に
-
起動時の挙動変更 xterm-mouse-modeが標準で有効化
- 対応端末ではマウス操作がデフォルトで利用可能
- 旧動作希望時はxterm-mouse-modeをnilにカスタマイズ site-start.elの読み込み順変更
- site-start.elがearly-init.elより先にロードされる仕様へ
- サイト管理者によるグローバル設定が容易に
-
ユーザLispディレクトリ機能の詳細 user-lisp/配下のLispファイルを再帰的にバイトコンパイル・autoload抽出・load-path追加 user-lisp-auto-scrape変数で無効化可能 user-lisp-directoryで対象ディレクトリ変更可能 prepare-user-lispコマンドで任意タイミングで処理実行
-
デーモン起動時の警告表示 Emacsデーモン起動時の警告が最初のクライアントフレームでWarningsバッファとして表示 設定ミスや初期化ファイルの問題を即時確認可能
-
表示・UI関連の細かな改善 line-spacingで行上部のスペース指定が可能に(上下個別指定可) 新face「margin」によりマージン表示のカスタマイズ性向上 prettify-symbols-modeが表示不能文字を無視 standard-display-tableの拡張で子フレーム・TTY向け枠線・区切り線指定が容易に 子フレームがTTYフレームでも利用可能に(Posframe, Corfu等の端末対応強化)
-
フォントロック関連の変数整理 多数のfont-lock-xxx-face変数が非推奨化
まとめ
- Emacs 31.1 は大規模新機能よりも 技術的負債の整理 と ユーザビリティ改善 が主眼
- unexec dumperの廃止 や Tree-sitter導入支援 など、今後のEmacs進化の基盤強化
- 細かな改善 の積み重ねにより、日常利用の快適さ向上
- 従来の設定や運用に依存していたユーザー は、移行や新機能の活用方法を要確認