不会吧,native comp这个分支我都用了好几个月了,comp-eln-load-path 这两个目录就我的观察,一个是 emacs lisp,一个是 elpa。emacs lisp 应该是一次编译到 /usr/…,elpa 的应该是按需增量编译到 ~/.emacs.d/eln-cache,运行emacs时会自动启动一个 *Async-native-compile-log* buffer,我看每次更新完包后,只有少量的编译。
是的,无论是自带的还是elpa里面,emacs启动后,增量编译的都在~/.emacs.d/eln-cache。
(setq comp-speed 3)
(native-compile-async "~/.config/emacs/elpa/" <n> t)
(native-compile-async "<path/to/system/elisp/files>" <n> t)
Where <n> is the number of threads you want.
重新编译下会用到的lisp呢。 刚更新 一堆auto compiling的信息 一起编译重新编译了 就没有了
我就是不想让它编译 path/to/system/elisp/files
,因为这部分构建 emacs 的时候已经编译过了……
估计跟这个类似
啊,感谢!应该就是这个原因了……
分享一个问题解决方案,如果遇到 类似 library not found
Compiling /Users/jixiuf/gccemacs/share/emacs/28.0.50/lisp/net/tramp.el.gz...
uncompressing tramp.el.gz...
uncompressing tramp.el.gz...done
ld: library not found for -lgcc_ext.10.5
libgccjit.so: error: error invoking gcc driver
可以通过在启动脚本里设置LIBRARY_PATH 的方法解决,也可以在early-init.el 内通过setenv 解决
#!/bin/bash
# 删除文件大小为0 的 eln
find ~/.emacs.d/eln-cache -type f -size -1 -exec rm -f {} \;
LIBRARY_PATH=/usr/local/opt/gcc/lib/gcc/10:/usr/local/opt/gcc/lib/gcc/10/gcc/x86_64-apple-darwin19/10.2.0 exec /Users/jixiuf/gccemacs/bin/emacs "$@"
大佬, 这种benchmark测试的标准是什么啊? 有哪些资料? 新手求提供一点方向。。。
搜一下各种语言的benchmark, 很多比较测试。
例如
谢谢大佬!! 但至今没个相对公认的测试方案集么? 类似NIST在安全向做的那些工作.
试着编译了 gccemacs, 在 linux 上不需要改任何代码, 就可以成功.
其实最主要的问题是 native-compile-async
函数, 会开一个新的 Emacs 进程去编译一个文件, 但是这个新进程用的是 --batch -l
参数, 是不加载用户的配置文件的 (~/.emacs.d/init.el
), 所以如果自己写的配置里分多个文件, 用到自己定义的宏或者变量, 编译可能会出错.
看了一下,Update 12 出来了,最后一个兼容性问题也解决了,后面就是代码清理以及 issue 解决之类的问题了。不知道什么时候可以进 master 。
想问下大家 native-comp 之后, emacs-client 还可以用吗? 我这里 emacsclient -t 就变的没有反应了。
可以用。使用native-comp后,我在manjaro下emacsclient不受任何影响;在WSL1+ubuntu20.04+Windows Terminal+X410下emacsclient -t不受影响,而若加载了cnfonts,emacsclient -c启动时间会比不加载它长12s左右,但取消加载cnfonts后就依旧秒开。
多谢,我再研究一下
从 update8 左右就开始用 gccemacs 了,但是从来没遇到过 emacsclient 没办法打开的情况。
PS: 考察 kakoune 结果怎么样?
主要是习惯问题,考虑换 kak 成本是比较高的。
我重新搞了一下配置,加上 native-comp 编译之后,感觉性能确实很给力,所以我打算先用着。感觉性能上已经接近 kak 了。
也是,感觉换个编辑器,以大佬的行动力不如自己写一个。
另外大佬不用 emacs 之后恐怕 emacs rime 就没人维护了。。。
别慌,我还在用 Emacs。我这两天还写了一个新的插件呢。。。
看的心痒痒,但不敢尝试,不知道windows下的编译和使用是否正常?
checking for gcc_jit_context_acquire in -lgccjit... no
configure: error: elisp native compiler requested but libgccjit not found.
Please try installing libgccjit or similar package.
If you are sure you want Emacs compiled without elisp native compiler, pass
--without-nativecomp
to configure.
libgccjit 这个包 msys2有吗?