介绍 Solar - 全新的 Solidity 编译器前端

  • Paradigm
  • 更新于 2024-11-11 14:51
  • 阅读 204

智能合约使开发者能够用少量代码在互联网上转移价值。这确实很强大,但开发者只能在他们的工具的速度和安全性下进行迭代。这促使我们在 2021 年构建了 Foundry,这是一个为智能合约开发者提供的一体化工具包。

今天,我们很高兴地宣布 Solar ☀️,以及我们对一个快速、模块化和对贡献者友好的 Solidity 智能合约语言实现的愿景,使用 Rust 编写;许可证为 Apache/MIT。Solar 是为智能合约的未来而构建的,在这个世界中,开发者寻求定制,并假设出色的性能、安全性和开发者体验。

Solar 目前只是一个编译器前端,它能够解析、词法分析并发出与 solc 兼容的 ABI,在与流行代码库 Solady 的基准测试中,其性能超过 solc 超过 41 倍。

我们正在寻找贡献者来帮助我们发布编译器中间端优化器、为生成旧版 EVM 和 EVM 对象格式 生成代码的后端,以及确保我们生成的字节码的关键正确性的工具。

Solar 是为了解决 Foundry 的局限性而构建的。

我们在 2021 年构建了 Foundry,以使开发者能够以无与伦比的生产力编写符合习惯、安全的 Solidity 代码。

在底层,Foundry 利用先进的模拟基础设施提供广泛的测试覆盖、模糊测试、交互式调试、跟踪等。开发者对此非常喜欢,并开始将他们的整个代码库移植到 Solidity,这意味着新的问题浮现出来!

随着时间的推移,我们意识到测试不再是瓶颈。瓶颈是编译器:

  1. 随着人们编写越来越复杂的智能合约,编译时间开始变得越来越长。
  2. 用 Solidity 编写测试意味着臭名昭著的“堆栈太深”错误变得越来越普遍。
  3. 开发者在编写 Solidity 时变得更加熟练,并开始观察到编译器发出的代码在 gas 上非常不优化。
  4. Foundry 的功能,如 forge fmt 或其他“solc 作为库”的使用速度太慢。库支持对我们特别重要,因为我们不得不手动编写自己的 AST 访问者和实现,以实现我们所需的功能。
  5. 在 EVM 层进行创新如果无法向开发者展示(例如,新的 EOF 版本、操作码或预编译)是无效的。

在为上述问题创建了很长时间的变通方法后,我们决定是时候通过使用现代编译器技术来修复这些问题,而这些技术的灵感来自于 Rust 编译器。请见 Solar ☀️。

Solar 是为智能合约的未来而构建的。

Solar 将使 EVM 开发者在日常工作中提高 10 倍的生产力,通过类似 clippy 的 lint 编写更安全的代码,并令人兴奋的是,能够编写默认情况下 gas 高效的智能合约,而无需降级到内联汇编进行基本优化。

Solar 不打算支持 0.8 之前的 Solidity 代码。它旨在与 Solidity 语言兼容,我们没有计划偏离。在开发 Solar 时,我们将专注于安全性和稳健性,并对其字节码的行为进行差异测试和验证,以确保正确性。我们认为这是最关键的领域之一。

今天,Solar 只是一个解析和词法分析 Solidity 的前端。我们对编译器前端的基准测试非常鼓舞人心,尽管仍处于早期和初步阶段:Solar 在 为 Solady 发出 ABI 时超越 Solc 41 倍。我们还提供了广泛的 基准测试套件,将 Solar 与 solangslangsolc 进行比较,在所有词法分析和解析基准测试中我们都表现优于它们。

你可以将 Solar 作为解析库使用,如我们在 这里的示例 所示。我们打算在 Foundry 中使用它作为我们的第一个集成点。Solar 还可以作为与 solc 格式兼容的 CLI 使用:$ solar $(forge re) src/Contract.sol

我们构建 Solar 以便于扩展,以便我们可以尝试新的字节码格式、新的预编译和操作码,或其他面向未来的加密特性,如互操作性(例如,如果语言支持 async/await 或协处理器支持会怎样?)。我们希望听取人们希望在不稳定标志下看到的实验的意见。

在解析和词法分析之外,生成安全和高效的 EVM 字节码的漫长旅程还有很长的路要走。

Solar 仍处于早期路线图中,我们正在寻找合作者。

我们今天发布 Solar,以收集社区对我们方法的反馈。Solar 遵循现代编译器架构,将前端与后端分离,并使用中间表示(IR)进行优化,以将代码生成与语言的前端分离。这使我们能够通过分离关注点来扩展开发。

我们的路线图可以在 Github 上找到,以及我们其余的代码和基准测试。前端大部分已完成,我们现在正朝着 IR 和代码生成层迈进。我们对现有的方法如 VenomSonatina 感到兴奋,并看到标准化和创建 EVM 语言共享中间层的好处。

如果你是一位优秀的编译器工程师,想要参与 Solar 的工作,请联系 georgios@paradigm.xyzjoin@ithaca.xyz

我是 AI 翻译官,为大家转译优秀英文文章,如有翻译不通的地方,在这里修改,还请包涵~

  • 翻译
  • 学分: 0
  • 标签:
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Paradigm
Paradigm
Paradigm 是一家研究驱动型技术投资公司 https://www.paradigm.xyz/