native Emacs Lisp

window 编译好后 要如何正确开始使用呢 ?我直接将环境变量emacs指向新的emacs就崩溃了 gdb调试

你编译好以后,把native-comp 的emacs 的bin 目录加入Path ,放到最上面,然后在终端 看看是否能找到你最新的Emacs。如果可以,就执行一次Emacs -q 启动emacs,这时随便打开一个buffer,使得Emacs开始编译一些内置的包。完成后退出Emacs,直接在终端启动emacs,就可以正常使用了,每次新开的功能都要等待编译。以后就可以正常使用了。

make NATIVE_FULL_AOT=1 可以把所有内置的包都编译好

好的 我试试

把msys2的mingw64/bin 和usr/bin加到path里面,编译成的emacs不包括启动需要的dll,这些dll都在msys2的目录里面

感谢,在这个问题上卡了半天。

加了以后终于成功了!

(setenv "LIBRARY_PATH" "/usr/local/opt/gcc/lib/gcc/10:/usr/local/opt/gcc/lib/gcc/10/gcc/x86_64-apple-darwin20/10.2.0")

你这个启动时间惊呆我了,果然是不需要emacsclient了。我的启动大约10来秒,所以一直都是开两个emacs server,除非配置变动,否则用到地老天荒。

大概也有疫情的原因?有些人不得不先向生活妥协,喂饱自己。希望尽快重启,期待28

commit 4f90b0b6e6249597cf2e1450b5b9d7f6522c049f Author: Eli Zaretskii [email protected] Date: Wed Mar 3 13:59:08 2021 +0200

Improve NEWS entries about native-compilation

* etc/NEWS: Add an entry about native-compilation.  Improve
wording of the entry about 'package-native-compile'.

navie-comp入emacs28看来是板上钉钉了,Andrea Corallo之前抱怨native-comp分支合并入master的review迟迟没下文,这算是开始给合并进master做准备了 :thinking:

1 个赞

我也遇到了类似的问题.

请问如何确定 LIBRARY_PATH 的值和gcc 的路径, 我这里貌似没有找到 /usr/local/opt 这个目录.

我用 brew 安装的,应该默认就是这个路径吧?

Arch 上安装了 native Emacs, 启动时报错 Warning (comp): x86_64-pc-linux-gnu-gcc-10.2.0: fatal error: cannot execute ‘as’: execvp: No such file or directory Disable showing Disable logging.

请问这个报错是不是需要设置 LIBRARY_PATH 哦, 这个值是多少, 搜索一圈木有搜到.

不好意思我用的是 mac 不熟悉 arch,我上面的方案也是针对 mac 的

明白的, 感谢~

在MacOS Big Sur遇到了以下三个问题,安装的emacs版本是

brew install emacs-head@28 --with-cocoa --with-native-comp
  1. 用straight + use-package 作为包管理的记得要加上
  (eval-when-compile
    (require 'use-package))

在emacs27不加这两行好像没这个问题

  1. 还有一个就是不能用软连将emacs目录link 到$HOME/.emacs.d,这样striaght build 生成的autoload file相对路径会有问题,可以参考 https://github.com/raxod502/straight.el/issues/701

  2. 还有就是楼上说的要手动去 setenv

1 个赞
  1. 用straight + use-package 作为包管理的记得要加上

我用straight 装 use-package, 然后就是一路 use-package

(straight-use-package 'use-package)
(setq straight-use-package-by-default t)
(use-package ***)```

这个在27下没问题,28版本的时候需要require下

又看到straight,我在另一个帖子里看到有人用:

(use-package XXX
    :straight  github.com/XXXX
)

就可以直接装github上的emacs插件包了。我查了下use-package没这个选项。请问这个是,straight-use-package提供的吗?straight-use-package 提供的这个use-package (类似alias?)可以提供完全兼容use-package的功能吗?谢谢!

对于非melpa包,我一直是git clone来整的,要是可以直接github下就方便了。

(straight-use-package '(emacs-application-framework :host github :repo "manateelazycat/emacs-application-framework" :files ("*")))
1 个赞

:straight 这个keyword是straight.el提供的, 不过你说的这个用法应该是不对的。。。指定repo地址需要用:repo,具体可以看下它的文档,写的非常详细

1 个赞