27 即将发布,28 已经上路

我本来也是想等的,但lsp太卡等原因,最后发现实在是等不下去了,就不等了,直接找来用

gentoo用户表示已经用上28了 :grin:

27一个很明显的改善是, 编译的时候基本完全没有警告信息了, 干净了很多. 之前26编译时有一大堆警告信息, 几百条, 大部分是提示lisp里调用了过时的函数.

不过27在mac上有闪烁问题和文本区域偶尔大片空白的问题, master有所改善, 所以在用26和28.

最近在 mac 上装了个 27,感觉没有遇到这些问题啊。是不是某些插件的原因。

我也遇到了相同的问题。请问28没有这个问题吗?

用了general keybinding 的有没有感觉在emacs 27下明显启动变慢的?

如果不确定,用benchmark看一下启动时间的统计

我的系统是10.13.6, 其他版本不知道. 好几种情况下会出现闪烁, 其中2个:

  • C-h k 然后任意按键, 整个frame都会闪烁
  • edebug调试的时候, 所有的快捷键都会闪烁, 比如一次step一次闪烁

大片空白情况随机出现, 机率很高.

是的, 闪烁没有了. 大片空白偶尔还会出现, 但是机率低了很多.

看emacs bug列表上的讨论, 28的mac部分底层渲染代码改了, 性能好像降低了好几倍, 比如26和27一秒钟能渲染120次, 28为20多次, 五六倍的差别. 不过使用时候感觉不到.

how interesting……这是把代码改疵了吗?降低性能能换来什么好处呢?

跟macOS系统有关, 大概意思是, 10.13之前可以直接绘制到view窗口上, 10.14开始, 系统不允许这样绘制了, 或者说不保证能正常工作, 偶尔出现大片空白也就是因为这个. 这个不单影响emacs, macVim也受影响.

emacs 28改成了先绘制到一个offscreen缓冲区, 然后再拷贝到窗口的显示区. 相当于多了一层复制. 所以性能会降低. 不过降得有点多.

相关链接:

https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-02/msg00341.html

3 个赞

macOS真是越改越坏呀…… 这样更改之后可能大家想在emacs里看电影的愿望就不能实现了hhh

这个渲染是指buffer的文本的显示, 电影什么的不会用这个逻辑.

增加了讨论链接.

我的理解是,为了系统的封闭和安全性。感觉苹果一直认为 系统安全和保护用户隐私 是最重要的事情,所以降低点性能也没什么。。。对开发者也不够友好。

你的理解没问题,但是开发者要受罪了

我装了27和28,Mac 上C++语法高亮都没了,同样的配置26就工作很好

是有,我也有同样的问题,其他语言的高亮貌似没有这个问题

有生之年能不能看见27.1了

喜欢尝鲜的,可以自己编译,master分支和native-comp分支都能用,没发现不稳定。

native-comp 能用了吗? comp-speed=2可以编译了吗?