在windows上用mingw64编译emacs的feature/native-comp分支

春节这几天,尝试在windows上编译了emacs的native compile分支,部分elisp文件可以通过动态链接库的形式加载。测试了一下lisp-mode、lsp-mode、helm、evil、org-mode,暂时稳定,偶尔有segfault。

  1. 在mingw64中编译支持libgccjit的gcc trunk代码。
  2. clone emacs的native compile分支,编译。

等会把编译gcc和emacs的过程写个blog。

8 个赞

求分享,很想体验在windows运行 native compile分支

昨天发现稳定性有待提高,无法通过emacs自带的native comp所有的unit test,在M-x org-publish-all 几次后出现过segfault的情况。看看能不能找到root cause。

性能测试和 gccemacs 里面的差不多。

blog写得有点乱,慢慢改。

https://www.albertzhou.net/blog/2020/01/emacs-native-comp.html

2 个赞

谢谢楼主分享 不过一看要编译GCC我就不想尝试了 :fearful:

有空可以编译一个来玩玩。

linux下也要编译gcc。不过linux的gcc和emacs的编译过程比windows速度快多了,我的virtualbox中的centos 7.2的编译速度很快,也不用改代码。

windows下的你编译出来了?给个portable版本啊,体验一下。

问题还是不少的。。不是很推荐

编译后的emacs太大了。。。没地方放。建议自己编译。

windows上我使用中的问题不多。可以正常使用。

后来还是用wsl的Emacs了。不用太折腾。

好像最近msys的gcc更新之后支持jit了,msys的repo里面也有libgccjit这个包,不过安装之后config emacs的时候识别不出来这个,编译的时候提示 /bin/sh: C:msys64mingw64bingcc.exe: command not found

可以先试试编译个gccjit的demo,加上一些debug log,看看能不能正常编译运行。排除安装gccjit的问题。再编译emacs。

最近在玩黑苹果,把win10已经干掉重装了,一般都在macos下,很少用win10,在win10上配置一遍mingw64的gcc环境好麻烦,就基本没用native-comp的emacs。

另外用master最新的代码有时候会碰到各种奇怪问题,被搞服气了,而native-comp分支是经常同步master分支代码的,半个月前,好像emacs改了和按键相关的文件,导致general有问题,native-comp分支下,按键提示不全,定位了好久都不定。。。

feature/native-comp分支最新的commit 832d756893 已经能顺利编译了,不需要魔改了 :tada: :tada: :tada:

$: git clone -b feature/native-comp --depth=1
$: cd emacs
$: ./autogen.sh
$: ./configure --with-nativecomp --without--dbus
$: make -j4 # use the number of you cpu threads
$: make install prefix=/path/to/where/ever/you/want/to/install/emacs/

依赖的安装是按照源码目录下 nt/INSTALL.W64这个文件的说明来的

目前唯一遇到的问题是pdf-tools,需要把runemacs.exe,emacs.exe之类的给管理员权限才能正常使用

还有就是目前msys2的libgccjit似乎有点问题 https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-12/msg01708.html ,离win的适配真正解决还早,不过用应该是能用了。

好消息啊,请问下速度上的使用有明显提升吗?比如magit 的速度

这个不清楚,我没用过magit。。。我个人感觉pdf-tools的渲染速度明显快了,之前pdf-tools翻页会有一点卡顿,现在跟我用samatraPDF几乎一样快了

感觉这种和git本身的速度关系比较大,和emacs关系不算大,选中文件多了感觉不管是直接用git还是emacs magit都会卡

对pdf需求不大,直接用sumatraPDF也挺方便的。pdf-tools,之前配置过一次,会造成emacs整个都很卡,然后就放弃了。现在不纠结什么都用Emacs😄

Windows 下的magit是真的慢,一个很小的文件都要等很久才开。我现在大部分情况还是直接Windows Terminal 使用git,在Terminal下的速度还是可以的,虽然没有Linux和Mac快。