emacs-ng:emacs与丹诺运行时和打字

2021-03-16 05:47:40

Emacs-NG基于Emacs的本机Comp分支,并定期在该分支机构中融合。

该叉子的目标是探索新的开发方法。为实现这一目标,我们的目标是保持包容性和创新的环境。受到任何人的欢迎贡献,我们不需要版权分配。我们欢迎有趣的想法使Emacs更好。我们唯一的要求是您在开始工作之前打开一个问题,并愿意从核心贡献者那里接受反馈。

Emacs-ng是一种在Emacs上的添加剂本地层,带来丹诺和#39; s的javascript和异步I / O环境等功能,Mozilla' s WebRender(实验选择选择)和发展中的其他功能。 emacs-ng' s方法是利用多种新的开发方法和工具将Emacs带到一个新的水平。 EMACS-NG由一个喜欢Emacs的团队维护,它所代表的一切 - 完全可以确定,具有完全可定制和自由的开发环境。我们希望Emacs成为40多年以来的编辑,这具有灵活性和设计来跟上渐进式技术。

emacs-ng' s主要特征中的一个是集成丹诺运行时,它允许在EMACS中执行JavaScript和TypeScript。该功能的详细信息如下,但许多用户会问自己为什么JavaScript? JavaScript是一种非常动态的语言,允许用户检查和控制其脚本环境。注释的关键是带入丹诺ISN' t只是JavaScript - 它'是强大的工具的生态系统,并将其目前' t'

TypeScript提供了一个非常灵活的键入系统,允许用户编译它们的脚本时间控制,具有类型&#34的灵活性;走出路上"不需要。

Deno使用Google' S V8 JavaScript引擎,它具有一个极其强大的JIT和世界级垃圾收集器。

Emacs-NG具有WebWorker支持,这意味着多个JavaScript引擎可以在编辑器中并行运行。唯一的限制是只有'主要' JS引擎可以直接调用LISP函数。

EMACS-NG还具有WebAsseMbly支持 - 将C模块编译为WebAsm并将其分发给世界。不要担心打包共享库或更改模块接口,所有内容都可以由用户处理和自定义脚本图层。无需依赖于本机实现细节。

V8' S World-Class JIT提供了大规模性能收益的潜力。对于一个简单的基准(Fibonacci),使用以下实现:

(defun fibonacci(n)(如果(< = n 1)n(+(fibonacci( - n 1))(fibonacci( - n 2))))))))

const fib =(n)=> {if(n< = 1){return n; }返回fib(n - 1)+ fib(n - 2); };

emacs-ng' S JS实现时钟比Emacs 28快50倍,没有本机Comp的用于计算FIB(40)。使用3级,在3级,JS时钟速度快15倍。与此同时,来自丹诺,网络工作者和博物馆的异步I / O,为您提供了工具,使emacs成为更顺畅和更快的体验,而无需安装额外的工具以作为背景进程启动或担心共享库版本 - 全部性能在脚本层。

欢迎贡献。我们试图维护一个"新贡献者"友好的问题标记着"好第一问题"