Emacs 28.1 发布了, tag 已经打了。

你没有安装 binutils,gcc 和 gas

目前 Arch 的 emacs 28.1 还没加入 native-compilation 的支持。还得等等,或者安装 emacs28-git

同问,在 emacsformacos.com 下载安装的 Emacs 28.1,安装完成后,native-comp-available-p 这个变量存在了,但是仍然是 nil,求助怎么打开 native-compile?

brew install gcc libgccjit 试试看?

你得自个编译

我就看上那个全自动 ligature 了~~

如果用scoop的话,需要注意gcc需要使用gcc-msys.默认的那个缺少一些开发包,会导致无法编译.

这意思是说:native-compile 特性是和自己机器的硬件强绑定的吗?这样的话,新人入坑又多了一个门槛 :joy:

已经确定添加了这两个之后不行,native-comp-available-p 这个变量仍然是 nil……

What’s New in Emacs 28.1? - Mastering Emacs

2 个赞

你用的这个 emacsformacos.com 预编译的版本,我不怎么了解。如果你安装了我说的两个依赖都没作用的话,说明那个版本在编译时没有启用 native-comp。

像Windows 下的预编译版本会自动根据用户是否安装 libgccjit 来判断是否启用 native-comp 特性。

mac 上你可以用下面这个脚本来自动编译 emacs 28, 我是用它来编译 29.

这是我的安装步骤:

git clone https://github.com/jimeh/build-emacs-for-macos  # 克隆安装脚本这个项目
cd build-emacs-for-macos
brew bundle # 这个会自动安装需要的依赖
brew services start dbus # 一定要记得启动 dbus,不然编译时会提示警告,虽然不影响使用

./build-emacs-for-macos --native-full-aot # 开启 FULL AOT,会把所有内置包都编译为eln,但是会增加编译时间。
cd builds
tar -xjvf Emacs.2022-xx-xx.xxxxxxx.master.macOS-12.x86_64.tbz  # 解压,也可以在编译时加参数不要压缩

最后拷贝 Emacs.app 到 /Application 文件夹即可。

1 个赞

mac上用emacs-plus或者emacs-head,有--with-native-comp 选项,更方便。

1 个赞

哎,我这边代理不给力,用不了 emacs-plus,它要拉整个emacs 仓库,我的 github 拉取很慢。

用 build-emacs-for-macos 这个脚本的好处是,它可以编译指定的 commit 和 tag,只要下载一个 tarball,大概40M,而且他是把所有需要的内容,包括源代码都打包到 Emacs.app ,编译完成后我只要拷贝到 Application 文件夹下就可以用,这样不会污染环境。

2 个赞

这个确实是,灵活性更好。我刚跟emacs-plus提issue了,增加28.1支持,就只需要下载gz包就行了。

另外一个小技巧,在这个目录下自己去拉emacs代码,用--depth=1。。。我就是这么干的 :grin:

~/Library/Caches/Homebrew/emacs-plus@28--git
3 个赞

:+1: 这个也是个办法。

emacs-plus 支持 28.1 的话,对于新人在 macOS 安装 Emacs 确实要方便很多。

emacs-plus 还有个好处是方便替换 Emacs 图标 :smile:

macOS 可以自行更换应用的图标。

https://mirrors.nju.edu.cn/git/emacs.git 南京大学的emacs镜像,延迟大概8个小时,但(我这边用)速度很快

2 个赞

git://git.savannah.gnu.org/emacs.git 速度不慢啊。我一直都是用主站的,全量clone。

我在主站一点速度都没有。curl 直接下gihub mirror 的 tarball 有 700k 速度。直接clone gihub mirror 的话,最近速度只有 100k,到一半就会断(depth =1)。

还是Arch省心,昨天已经自动升级。。。

要不翻出去,要不用ssh方式,即git@github这样的。ssh方式访问github不用翻,速度也不错。