native Emacs Lisp

花了多长时间编译?

丢服务器上编译的,make -j16 大约20h,主要是后面 elc+eln 费时间,特别是 leim/ja-dic/ja-dic.el
编译自己用的包 (native-comp-async "~/.emacs.d/elpa" 16 t) 也花了不少时间(5h+,最后卡住,内存吃了 50g, 就强行关了)
配置 CPU: Xeon silver 4214 RAM:128G

2 个赞

卧槽。。。。 编译出来速度提升明显不?

看了看 leim/ja-dic/ja-dic.el 里面是给日语输入法用的字典,有 近20 8万条的样子. 生成这个文件之后删除词条就好了.

门槛这么高了么……

1 个赞

没测什么 benckmark, 自己使用体验来说快了不少。当然也有点 bug (ivy-posfram 不会自己消失了)
分享一下编译好的 arch 的包,sudo pacman -U 安装
Firefox Send(7天或100次下载有效)

emacs-native-comp-git包里面没有看到comp-speed的设置啊?编译的时候怎么设置?

yay --editmenu -S emacs-native-comp-git,编辑 make 时候的命令

我估计以后有编译排除机制,这个文件编译一点意义都没有

好的。那直接编译的话,comp-speed默认是0?

默认是 2 吧, lisp/emacs-lisp/comp.el 里定的

好的。谢谢。

我用O3编译时出错 Symbol’s value as variable is void: ediff-ignore-case , 你没有碰到吗

应该没有 zsbd

好吧, 现在有包了就不自己编译了. :rofl: 看见 zsbd 还以为是缺了啥库, 愣了一下才反应过来

make -j2 NATIVE_FAST_BOOT=1 可以加快编译速度,make时只编译大概10几个elisp文件为eln文件,其他的都编译成elc。然后在需要的时候 (setq comp-deferred-compilation t) 会进行编译用到的elisp文件。

eln文件和emacs代码对应,新的代码commit后,可能修改了native-comp相关的代码,就需要重新编译所有的eln。

前两天看你的博客尝试在windows上编译一下时, 看到了这两个选项. 确实很实用, 就是编译jit还是失败了. :thinking:

唉,比较懒,没及时更新blog。

  1. native-comp分支上最新的代码make时,在调用emacs编译eln时,启动emacs会报错。不知道为什么要去找 emacs_dir 环境变量。export后就ok了。

  2. src/comp.c 已经不需要修改fixnum相关代码,Andrea Corallo老兄已经改了代码了。他真是勤快啊。

我编译jit时总是找不到 gmp 和 mpfr 库怎么回事,手动指定 LDFLAGS 还是找不到


好像找到原因了,在msys2和Cygwin中, gcc -lgmp foo.c 是找不到gmp的,必须放后边 gcc foo.c -lgmp