Emacs 29 目前适合作为日常生产力工具了么?

图里就是配置。

在 emacs 29的源代码目录运行 make bootstrap 后会否解决?

谢谢提示,等我有空试试。看了 aqua0210 是正常的,我怀疑会不会跟编译选项有关。这是我的(stackoverflow上抄的):

./configure --with-cairo --with-modules --without-dbus --without-compress-install --with-gnutls --with-native-compilation --with-json --with-harfbuzz --with-jpeg --with-png --with-rsvg --with-tiff --with-wide-int --with-xft --with-xml2 --with-xpm CFLAGS="-O3 -mtune=native -march=native -fomit-frame-pointer"

作为 emacs 开发者,我强烈建议大家避免从网上抄编译命令行。你使用的配置大部分选项都无效:

  • –with-cairo 只针对 X11 平台,Windows 下开启不会起到任何作用。
  • –with-modules, --with-gnutls, --with-harfbuzz, --with-jpeg, --with-png, --with-rsvg, --with-tiff, --with-xml2, --with-xpm 和 --with-json 都是默认选项,无需手动开启。
  • –with-wide-int 在 64 位系统下无效,作用是提高 32 位系统下 fixnum 和 buffer 的最高值/大小。开启时还会导致 Emacs 的运行速度减慢 5%-20%。
  • –with-xft 同样只针对与 X11 平台,而且不兼容 --with-cairo,如果两项同时开启 --with-cairo 优先。

使用这样的配置不仅会导致编译时不方便,还会造成 emacsbug 生成的报告含有错误的编译选项,这种报告让维护者感到非常不方便。

19 个赞

请问 --without-dbus 在Windows下是默认选项吗?

谢谢,编译选项太多,不知道设置什么。CFLAGS="-O3 -mtune=native -march=native -fomit-frame-pointer" 请教这个能保留吗。默认编译出来的有点大。

谢谢,编译选项太多,不知道设置什么。CFLAGS后面这些, 请教这个能保留吗。默认编译出来的有点大。

不是。zsbd

1 个赞

那些只是优化,自己看吧。一般说 emacs 不需要用 -O3 或 -fomit-frame-pointer 编译。

请问那我用这种行吗?

./configure --without-dbus --with-native-compilation  CFLAGS="-O2 -mtune=native"

前面好像看到陈斌贴子说不优化速度会慢

在 Windows 上编译Emacs 直接看官方的编译说明就可以了

这是我自己总结的博客

3 个赞

不想装msys2,我现在是fork kiennq/emacs-build: Scripts to build a distribution of Emacs from sources, using MSYS2 and Mingw64(32) (github.com) 这里,用github的action编译,需要设置下action的上传权限。这个自动每月一编,也可以自己手动action编译。编译好了下载release就可以了,自带libgccgit等。

这样没问题。优化要凭自己感受,一般情况下 -O3 对 Emacs 的影响不大,有时还会产生副作用。

真觉得差那么几MB的话可以用 -Os,作用是 O2 基础上减少体积。作用最大的还是 strip。

但有这个功夫优化可执行文件不如清理下系统 log 之类的无用文件,轻松就能腾出来 1~2 GB。

谢谢几位大佬的指导。重新编译了好几次,测试出前面不会着色的 bug 应该是那个commit的问题,最新的commit已经正常。编译选项: ./configure --without-dbus --with-native-compilation CFLAGS="-O2" 。期间执行 autogen.sh 时遇到一个错误:

 /status.m4:289: AC_CONFIG_FILES is expanded from

执行下 dos2unix configure.ac 命令就可以了。

1 个赞

Windows上的第三方emacs29编译版本2小时前更新了,新增了AOT选项

1 个赞
brew install emacs-plus@29 --with-native-comp

我看你的博客,你能最后成功运行 emacs-plus@29 --with-native-comp 吗?没遇到这个问题?

1 个赞

很久没有用这个方式安装了,不确定是否正常。因为这种方式要拉整个 Emacs 的 GitHub 仓库,我这边网速不行。

我主要是用博客中的第一种方式,用自动编译脚本,本地编译 Emacs 29,这种方式只要拉一个几十M 的 Tarball,比较方便。

一般是一周编译一次,或者有感兴趣的更新再编译。这样也不影响 Brew upgrade

ln -sf $(brew --prefix)/opt/emacs-plus@29/lib/emacs/29.0.50/native-lisp $(brew --prefix)/Cellar/emacs-plus@29/29.0.50/Emacs.app/Contents

参考 emacs@29 --with-native-comp linkage errors · Issue #476 · d12frosted/homebrew-emacs-plus · GitHub

1 个赞

doom-emacs 暂不支持,我先等等吧 :joy: