分享一下MacOS下编译Emacs 28 native-comp分支

macOS上改了不少东西,很多feature都没实现或者是有问题,基本是跟UI相关的。native-comp应该是对底层有改动吧,所以不太稳定,还没时间研究。其他方面还是蛮好的,用到稳定版就没crash过。

抓到一个backtrace:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	0x00007fff6eead33a __pthread_kill + 10
1   libsystem_pthread.dylib       	0x00007fff6ef69e60 pthread_kill + 430
2   libsystem_c.dylib             	0x00007fff6edc493e raise + 26
3   org.gnu.Emacs                 	0x00000001060eb008 terminate_due_to_signal + 152
4   org.gnu.Emacs                 	0x00000001060eb9fb emacs_abort + 15
5   org.gnu.Emacs                 	0x00000001060b1ac0 ns_term_shutdown + 80
6   org.gnu.Emacs                 	0x0000000105f8b564 shut_down_emacs + 340
7   org.gnu.Emacs                 	0x00000001060eafd6 terminate_due_to_signal + 102
8   org.gnu.Emacs                 	0x0000000105fac52e handle_fatal_signal + 14
9   org.gnu.Emacs                 	0x0000000105fac5b1 deliver_thread_signal + 129
10  org.gnu.Emacs                 	0x0000000105faaf49 deliver_fatal_thread_signal + 9
11  org.gnu.Emacs                 	0x0000000105fac668 handle_sigsegv + 168
12  libsystem_platform.dylib      	0x00007fff6ef5e5fd _sigtramp + 29
13  ???                           	000000000000000000 0 + 0
14  org.gnu.Emacs                 	0x0000000105f15f08 clear_garbaged_frames + 312
15  org.gnu.Emacs                 	0x0000000105eeda9f redisplay_internal + 975
16  org.gnu.Emacs                 	0x0000000105f93348 read_char + 2120
17  org.gnu.Emacs                 	0x00000001060411d2 read_filtered_event + 386
18  subr-13adf6a6032ab09af5683e709aba3706-747f03005d393330a7fc0fef359b2c5d.eln	0x00000001084690e2 F7369742d666f72_sit_for_0 + 434

看样子是clear_garbaged_frames里面出现了空指针?

更新下:自己给clear_garbaged_frames打了patch,重新编译了最新版,目前感觉良好。进一步观察。

emacs-plus 已经加上了,大家可以尝鲜了

好消息,emacs-head和emacs-plus都加上了

2 个赞

使用的emacs plus , 编译了emacs28 gcc版本,确实比之前27的速度快了一少 , 尤其是lsp,提示十分跟手,感觉和vscode没什么区别了 ,十分满意 , 启动也比之前好一点,配合上tabnine 提示候选就像是那种呼之欲出的感觉

您好,我看emacs-plus 说明要从源码编译安装libgccjit,请问花的时间长吗?

i7 标压单线程编译大概半个小时。建议手动改一下 formula 加上 -j。

跪了,老古董还是不折腾了。。

大多数情况应该不需要从源码编译 libgccjit.

我第一次是直接 brew install gcc libgccjit 后直接编译-natiive-comp分支的,然后 emacs -Q 打开后各种错误…然后就放弃了。。

使用2天后结论, 一开始 可能是操作窗口,会有闪退问题, 后来基本没有遇到过,

还有一个问题就是按键连击的问题 , 这个全是优点坑, 一开始我还以为是我hhkb刚改了双模后的问题, 最后发现,在其他软件里面就没有连击的问题,

archlinux下native-comp分支会将系统内存耗尽的情况,大家有遇到的吗? 通过

pacman -S emacs-native-comp-git

安装的

可能是编译.el文件的过程中耗尽了系统内存。

看来之前就是我键盘的问题, 修改了键盘后,就没有按键连发的问题,使用起来很舒服,推荐使用gui的人尝试下emacs-plus的28版本编译native版本,

我也遇到了同样的问题。不知道是否有解决方案了?

刚试了brew安装emacs-plus带native-comp选项,也是第一次启动特别慢,而且第一次打开文件时也特别慢。 系统是:macOS Big Sur 11.2,也是使用的doom-emacs配置

第一次启动慢,是因为 Emacs 需要把你配置用到的包都编译成 .eln。

差不多40分钟 , 系统是macos11.1 macbookpro 16

有木有人遇到编译完没有 emacsclient