native Emacs Lisp

是的,我就是手动删掉了就可以了,谢谢了

有没有什么办法可以开启和关闭使用 native-comp 特性呢。我想在启动的时候关闭,起来之后再打开。

1 个赞

gcc emacs 年度更新来了(笑

作者感觉最近 BUG 率有点低了,于是决定引进一些新功能来提高 BUG 率(再笑

所以这是一个功能性更新

主要讨论的是值/类型推断的相关改进。

详情戳链接 gccemacs

2 个赞

编译时间有没有翻倍?

我放在 travis ci 上编译超时了,打算换个 ci。

没具体关注这个

貌似差不太多

github actions 编译时间增加了 2 倍:

gentoo 上面有可用的 ebuild 文件吗?在论坛搜索、全网搜索都没有搜到相关的信息,是gentoo的用户都不用native-comp吗?

尝试自己更改了 emacs-28.0.9999 的 ebuild 文件,将 master 更改成了 feature/native-comp,将文件重命名为了emacs-gcc-28.0.9999.ebuild,将其放到了我的local-repo里面安装。

然后它给我报了这个错误,不知道是为什么:

/usr/native-lisp/28.0.50-x86_64-pc-linux-gnu-bd935fd615d5ac7d952f0d3237f2b96d/mouse-15f283fa50e83fc2aec8714353ada84c-30fd7430435a275a2a47ffd6cc759057.eln: cannot open shared object file: No such file or directory

这个是出了什么问题呢?

如果有哪位大佬写了ebuild文件能够不吝分享,我感激不尽。

因为 native comp 硬编码了储存 object file 的路徑。

那请问要怎么更改呢?:smiley:

让作者把这俢复了,再整 ebuild

好吧,谢谢大佬解惑:D

可以参考

--- emacs-28.0.9999.ebuild	2021-01-07 09:45:10.982022746 +0800
+++ emacs-28.0.9999-r1.ebuild	2021-01-07 09:51:24.525995010 +0800
@@ -40,7 +40,7 @@
 HOMEPAGE="https://www.gnu.org/software/emacs/"
 
 LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2"
-IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gconf gfile gif +gmp gpm gsettings gtk gtk2 gui gzip-el harfbuzz imagemagick +inotify jpeg json kerberos lcms libxml2 livecd m17n-lib mailutils motif png selinux sound source ssl svg systemd +threads tiff toolkit-scroll-bars wide-int Xaw3d xft +xpm xwidgets zlib"
+IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gconf gfile gif +gmp gpm gsettings gtk gtk2 gui gzip-el harfbuzz imagemagick +inotify jpeg json kerberos lcms libxml2 livecd m17n-lib mailutils motif native png selinux sound source ssl svg systemd +threads tiff toolkit-scroll-bars wide-int Xaw3d xft +xpm xwidgets zlib"
 RESTRICT="test"
 
 RDEPEND="app-emacs/emacs-common-gentoo[games?,gui(-)?]
@@ -126,7 +126,8 @@
 	) )"
 
 DEPEND="${RDEPEND}
-	gui? ( !aqua? ( x11-base/xorg-proto ) )"
+	gui? ( !aqua? ( x11-base/xorg-proto ) )
+        native? ( sys-devel/gcc[jit] )"
 
 BDEPEND="app-eselect/eselect-emacs
 	sys-apps/texinfo
@@ -271,6 +272,12 @@
 		myconf+=" --with-dumping=pdumper"
 	fi
 
+        if use native; then
+		if [ -z "$EGIT_OVERRIDE_BRANCH_EMACS" ] ; then
+			die "Default branch ${EGIT_BRANCH} does not currently have the native-comp code"
+		fi
+	fi
+
 	econf \
 		--program-suffix="-${EMACS_SUFFIX}" \
 		--includedir="${EPREFIX}"/usr/include/${EMACS_SUFFIX} \
@@ -293,6 +300,7 @@
 		$(use_with lcms lcms2) \
 		$(use_with libxml2 xml2) \
 		$(use_with mailutils) \
+                $(use_with native nativecomp)
 		$(use_with selinux) \
 		$(use_with ssl gnutls) \
 		$(use_with systemd libsystemd) \
@@ -337,7 +345,8 @@
 	# avoid collision between slots, see bug #169033 e.g.
 	rm "${ED}"/usr/share/emacs/site-lisp/subdirs.el
 	rm -rf "${ED}"/usr/share/{appdata,applications,icons}
-	rm -rf "${ED}/usr/$(get_libdir)"
+	# rm -rf "${ED}/usr/$(get_libdir)"
+        rm -rf "${ED}/usr/$(get_libdir)"/systemd
 	rm -rf "${ED}"/var
 
 	# remove unused <version>/site-lisp dir

另外, 在 /etc/portage/env/emacs-native-comp 设置

EGIT_OVERRIDE_REPO_EMACS="https://github.com/emacs-mirror/emacs.git"
EGIT_OVERRIDE_BRANCH_EMACS="feature/native-comp"

如果需要编译某一个 commit, 需要设置

EGIT_OVERRIDE_COMMIT_EMACS="..."

我都没有找到你说的这个分支 这个源码是在哪里下载的?? 这个吗?GitHub - emacs-mirror/emacs: Mirror of GNU Emacs

pgtk分支吗?应该是这个吧 GitHub - flatwhatson/emacs: Mirror of GNU Emacs

是的,切到feature/nativecomp 那个分支

这个问题有遇到的吗?

之前我使用 native-comp 分支和 clangd 的时候, 在 c++-mode 里也有类似问题, trigger-character 设置好像失效了.

在打开文件之后, 重新定义 lsp-completion--looking-back-trigger-characterp 这个函数, 有一定几率又可以解决问题

现在又遇到了这个问题 :joy:

感觉native-comp速度确实快一点,但是小问题不少

1 个赞

我去看了下,后面越写越魔幻·