native Emacs Lisp

我用 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 个赞
1 个赞

用了native comp,感觉每次update package后,都要重新compile,实际使用时 反而慢了很多。

用native-comp 就要减少update 的频率。我现在是 update 后,强行加载一次所有的包,不然体验很差。

升级完了包,立刻手工编译,不要等到加载时才编译。

请问一下有哪个命令可以触发全部的第三方包进行 native compile? 我现在是用比较笨的办法,require 全部的包。

我在用borg,重新编译就好了,有make file。

你可以试一下native-compile-async。

我也是用 borg,但borg 那个 native-compile 有bug,编译了以后,实际上函数并不是 natvie 的。 所以,现在又用回 borg 的默认设置,make all 是 byte compile

这个问题你不是解决了吗?

另外,用了make build-native吗?

其实是不对的,我觉得是 autoload 文件有问题。并没有加载 native-compile 的文件。

Borg 作者自己是不用这个 native comp 选项的,他也没时间去查问题。

你可以看看这个人发现的问题:

这个我没用,因为之前设置了选项,直接就是 native-compile了。

你是第一次先 make all 进行快速的 byte compile,然后再执行 make build-native 做 native comile?

我这执行完 make all 再执行 make build-native 会全部失败。config.el 没有设置。