[250111] Yolc 项目正式开启技术预览 | Haskell GHC 9.12 和 Cabal 3.14 发布

62 阅读4分钟

Yolc 项目正式开启技术预览

Yolc 是一种安全、富有表现力且有趣的以太坊编程语言,它基于 YulDSL/Haskell 构建,旨在提升以太坊智能合约的开发体验。 近日,该项目正式开启技术预览!

背景

自2015年7月30日以太坊网络上线以来,至今已处理了数十亿笔交易和数百万个区块。Solidity 语言的出现极大地简化了以太坊上的编程,但 Yolc 的诞生是为了应对一个特定领域的需求:以太坊生态系统需要一种兼具安全性、表现力和趣味性的通用编程语言。

Yolc 的优势

  • 通用性:
    Yolc 嵌入 Haskell 语言,因此使用 Yolc 编程就是使用 Haskell 编程。Yolc 在 Haskell 中实现了以太坊合约 ABI 规范和 Solidity/Yul 的领域模型,开发者可以在 Haskell 代码编译成 Solidity/Yul 代码之前访问所有 Haskell 语言特性。

  • 安全性:
    Haskell 是一种纯函数式语言,提供多种类型级别的安全特性。Yolc 的一个独特功能是“线性版本数据”,它由 Haskell 的线性类型特性提供支持。该特性通过隐式数据版本管理,使重入漏洞等一 类漏洞无法通过类型检查器。例如,在获取账户余额后,如果调用外部合约修改了状态,则无法使用之前的余额进行操作,必须重新获取最新的余额。

  • 表现力:
    Yolc 鼓励开发者编写纯函数,因为纯函数不需要线性类型安全特性。在 Yolc 中编写纯函数代码非常具有表现力,开发者可以访问所有 Haskell 语言特性,包括模式匹配、广义代数数据类型、参 数多态函数等。例如,Yolc 可以使用模式匹配处理可选数字(Haskell 的 Maybe 类型)。

  • 趣味性:
    Yolc 提供了更高级、更现代的语言特性,使开发者能够编写更安全的生产环境代码,从而提升以太坊编程的乐趣。

当前状态和未来规划

目前 Yolc 处于技术预览阶段,可以生成部分 ERC20 代码并部署到以太坊网络,展示了线性类型安全性的关键思想。Yolc 计划在 2025 年第一季度实现与 Solidity 的关键功能对等,并持续推出超越 Solidity 的独特功能。目前,一些关键项目,如 Superfluid 协议,正在使用 Yolc 进行下一版本核心逻辑的原型设计。

来源:
yolc.dev/blog/introd…

Haskell GHC 9.12 和 Cabal 3.14 发布

Haskell 社区喜迎 GHC 9.12 和 Cabal 3.14 的发布,为 2024 年画上了圆满的句号!这两个新版本带来了许多令人兴奋的新特性和改进。

GHC 9.12 的亮点

  • 语言扩展:

    • 多行字符串字面量: 可以直接在字符串字面量中包含换行符,无需使用字符串拼接或 \n 转义字符。
    • Or-Patterns: 允许在单个 case 分支中匹配多个模式,简化代码。
    • NamedDefaults: 允许为 Num 类之外的字面量创建类型默认声明,例如,可以将字符串字面量的默认类型设置为 Text
  • 基础库:

    • 对回溯和异常处理进行了大量改进。
    • GHC.Pack 模块已被移除,GHC.Desugar 模块将在 GHC 9.14 中移除。
  • 代码生成:

    • 实验性支持 RISC-V 平台。
    • 在 x86 架构上,无需 LLVM 即可支持大多数 128 位向量的浮点运算和一些整数向量运算。
    • 新增实验性标志 -fobject-determinism,用于启用确定性目标代码生成。
    • 放弃了对 32 位 Windows 和 macOS/iOS 的支持。
    • 移除了 stdcall 调用约定,建议使用 ccall 替代。

Cabal 3.14 的亮点

  • 新特性:

    • extra-files 字段:允许在 cabal 包的源代码发行版中捆绑文件,补充了 data-filesextra-source-filesextra-doc-files 的功能。
    • 支持以动态方式编译带有性能分析的项目。
    • 支持新的 GHC 选项和扩展。
    • 新增 Hooks 构建类型,旨在最终取代 Custom 构建类型。
    • 实验性的 haddock-project 命令支持子组件。
  • 改进:

    • cabal init 会记住当前会话中选择的语言。
    • cabal check 会对 source-repository 中不安全的 git:// 协议发出错误提示。
    • 在 Haddock 生成期间启用重新编译避免。
    • 增强了 cabal 根项目文件的错误检测,包括损坏的符号链接。

更多信息

来源:
blog.haskell.org/ghc-9-12-ca…




更多内容请查阅 : blog-250111


关注微信官方公众号 : oh my x

获取开源软件和 x-cmd 最新用法