native Emacs Lisp

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

好的。那直接编译的话,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

gccemacs 未来真有很大的可能合并到 master , 因为 emacs 当前维护者对这个方案好像不反对

今天有更新了。 Update 8

Following that I received an outstanding from report from Kévin Le Gouguec on memory consumption and compile time analyzing the compilation process.

As follow-up on that now leim/ sub-folder is by default not compiled. Being these files data and not code it should not affect performance.

The total compile time is then reduced respect to the original one by a factor two. I can now build on my compile-box a full Emacs at speed 2 in ~45min, this to be compared with the ~100min on the same machine for the branch at the state of Update 7.

更新: 我刚才在笔记本(Archlinux)上编译了一下, comp-speed=2make -j4 大概一个小时编译完的,12G 内存占用一半左右(我还开着浏览器)。

2 个赞

是不是还不支持 dumping ,启动的时候 报错,但是生成pdump 文件的时候,没报错

gccemacs  --dump-file  $HOME/.emacs.d/cache/dump/emacs.pdump

emacs: Trying to load incoherent dumped .eln

试了下 make -j8 NATIVE_FAST_BOOT=1 花了15分钟,可以接受,不过代价是后面的包是async compile

对对对,我也试过,报错

同 arch, 试了一下 comp-speed=3 编译出错,=2 编译很快
另外用 native 编译的 emacs 写 tex 文件时 C-c C-c 编译一直要弹出个 shell 来,很烦人。请问你也是吗?
似乎是 auctex cdlatex 一系列包都有点问题

抱歉,我没用 comp-speed=3 编译。 写 Tex 的话,我一会试一下。

看作者的talk说compsoeed=3属于黑魔法。最好还是用2。