Blog Posts

Erlang LS指南(二)

## Theia IDE ### 安装 通过在运行实例中包含 Erlang/OTP 并安装 VSCode 扩展,可以在 Theia IDE 中使用 Erlang LS。 如果您想尝试使用 GitPod,请单击此处。 要在您的 Erlang 项目(托管在 GitHub 或 Gitlab)中使用相同的设置,您可以在 .gitpod.yml 中找到 GitP

Read More

Erlang LS指南(一)

## 欢迎来到 Erlang LS的世界 为编程语言实现自动完成或跳转到定义等功能并非易事。传统上,必须为每个开发工具重复这项工作,并且需要目标编程语言和所选开发工具内部使用的编程语言的专业知识组合。 一个绝妙的直觉, [Language Server Protocol](https://microsoft.github.io/language-ser

Read More

Erlang JIT中基于类型的优化

这篇文章探讨了 Erlang/OTP 25 中基于类型的新优化,其中编译器将类型信息嵌入到 BEAM 文件中,以帮助JIT(即时编译器)生成更好的代码。 ## 两全其美 OTP 22 中引入的基于SSA的编译器处理步骤进行了复杂的类型分析,允许进行更多优化和更好的生成代码。然而,Erlang 编译器可以做什么样的优化是有限制的,因为 BEAM 文件必须

Read More

Erlang JIT之路

自从Erlang 存在,就一直有让它更快的需求和野心。这篇博文是一堂历史课,概述了主要的 Erlang 实现以及如何尝试提高 Erlang 的性能。 ## Prolog 解释器 Erlang 的第一个版本是在 1986 年在 Prolog 中实现的。那个版本的 Erlang 对于创建真正的应用程序来说太慢了,但它对于找出Erlang语言的哪些功能有用,哪

Read More

初识Erlang JIT

现在我们已经了解了[BEAM](http://blog.erlang.org/a-brief-BEAM-primer/)和[解释器](http://blog.erlang.org/a-closer-look-at-the-interpreter/),我们将探索 OTP 24 中最令人兴奋的新增功能之一:即时编译器,或简称为“JIT”。 如果你和我一样,“J

Read More

再探Erlang JIT

这篇文章是初识Erlang JIT的后续文章,更深入地挖掘了实现细节。 虽然用机器代码(汇编程序)编写东西给了你很大的自由,但它的代价是必须自己发明几乎所有东西,而且没有聪明的编译器可以帮助你发现错误。例如,如果您以某种方式调用一个函数并且该函数与预期不一致,那么充其量您会使操作系统进程崩溃,或者最坏的情况是花费数小时追逐一个[heisenbug](htt

Read More