跳到内容

最新提交

 

历史

历史
223行(166个位置)·7.57 KB

CHANGELOG.md公司

文件元数据和控件

223行(166个位置)·7.57 KB

Agda 2.6.5版的发行说明

集锦

安装

  • Agda支持GHC 8.6.5至9.8.2版。

实用程序和选项

  • 选项--精确分割现在默认情况下处于启用状态。

  • 以下选项现在被认为具有感染性:(第5264期)

    • --允许执行
    • --累积性
    • --实验无关性
    • --内射型构造函数
    • --ω-ω
    • --重写
    • --键入

    这意味着如果模块启用了这些标志之一,那么导入它的所有模块也必须启用该标志。

  • 选项--后缀预测现在默认情况下处于启用状态。默认情况下,此选项仅影响Agda打印投影和投影图案的方式。要恢复到旧行为,请使用选项--no-postfix项目.

  • 新警告无用宏块不包含任何函数定义。

  • 新警告CoinductiveEta记录如果一个记录同时声明共性的并且拥有eta-e质量.过去是一个严重的错误;现在阿格达继续,无视eta-e质量.

  • 新警告重复记录指令如果例如a记录同时声明感应的共性的,或声明感应的两次。

  • 新警告冲突的练习选项如果同时提供--这个--那个什么时候--这个暗示--不,不(类似于--不,这个暗示--那个等)。

  • 新错误警告构造函数不符合数据当构造函数参数对于构造函数的目标数据类型来说,太大了(在宇宙级别上)。过去是个严重的错误。

  • [打破]选项--重叠情况,这允许实例搜索期间回溯,已重命名为--回溯实例搜索.

  • 新警告警告问题尝试使用切换未知或非良性警告时-W公司选项。过去是个严重的错误。

  • 新选项--需求-唯一-矩阵解决方案(默认情况下启用)。使用禁用它--无需-唯一-矩阵解决方案允许类型检查器利用喷油_ FOR_INFERENCE杂注(见下文)。这个--有损统一标志表示--无需-唯一-矩阵解决方案.

  • 新杂注喷油_ FOR_INFERENCE,它将函数视为内射函数,用于推断隐式参数--无需-唯一-矩阵解决方案给出了。这个--不需要唯一的元解决方案标志需要在使用函数的文件,而不一定在定义函数的文件中。例如:

    假设
      反向-≡:{l l’:列表A}逆l lect逆l'反转l≡反转l'[]≡[]:[] ≡ [][]≡[]=反向选择(ref{x=反转[]})

    因为阿格达无法解决问题,所以无法工作l’对于[]尽管它知道反向l=反向[].如果颠倒标记为内射{-#INJECTIVE_FOR_INFERENCE反向#-}这个例子会起作用。

语法

添加到Agda语法中。

  • 左侧让:使用x←e(PR#7078)

    此新构造可以与一起用于左侧具有重写为子表达式命名。它在左手边a的对应项-绑定并支持相同的有限形式的模式匹配eta-expandable记录值。

    当一个函数执行一系列嵌套操作时,它会非常有用具有共享一些表达式的。有点像

    乐趣:A类B类乐趣x使用z(z)e(电子)具有foo z公司…|p具有巴z…|q=第页

    这里是表达式e(电子)不必在两个版本中重复具有-表达式。

    如在具有,多个绑定可以通过|和变量到左边在右边的绑定范围内。

  • 模式同义词现在可以公开现有的实例参数(公共关系7173).例子:

    数据 D类 : 设置 哪里
      c:{{D}}D类图案p{{d}}=c{{d}}

    这允许我们在模式匹配中显式绑定这些参数并在表达式中使用模式同义词时显式提供它们。

    (f):D类D类f(p{{d=x} })=p{{d=x} }

    不过,我们不能这样创建新的实例参数。拒绝以下内容:

    数据 D类 : 设置 哪里
      c:D类D类图案p{{d}}=抄送

语言

对类型检查器和定义Agda语言的其他组件的更改。

  • Agda现在使用判别树存储和查找实例定义,而不是在所有实例中线性搜索给定的“类”(PR#7109).

    这纯粹是一种内部变化,不应导致任何变化接受或拒绝程序的目标。然而,它显著地提高实例搜索的性能,特别是对于案例由单个类型参数索引的“类型类”。新查找过程不应比以前的实现慢。

反思

元编程设施的更改。

  • 添加新基元以从反射代码运行实例搜索:

      --尝试解决开放实例约束。当包装在“noConstraints”中时,
      --如果存在未解决的源实例约束,则失败
      --从当前宏调用。仍在尝试外部约束,
      --但“noConstraints”会忽略解决这些问题的失败。
      解算器实例约束:TC⊤
  • 一种新的反射基本体工作类型:TC A→TC A已添加到阿格达。内置。反思。这将在类型级别运行给定的计算,可以使用已擦除的内容。特别是,当使用已删除参数的(相关)函数类型。例如,可以获得元组构造函数的类型_,_(现在是它的类型参数作为删除的参数,参见上文)并将其与当前目标统一如下:

    
      测试M:期限TC⊤testM孔=bindTC(获取类型(引用_,_)) (λt吨工作类型(统一孔t)逗号类型=测试M

图书馆管理

交互和emacs模式

  • 自动命令已从头开始重新执行(采购订单号6410).这修复了存在语言功能时Auto会失败的问题它不知道,例如copatterns或任何立方体。

    重新实现不支持案例拆分(-c(c)),反驳(-d日)或精炼(-第页).

后端

美国石油学会

强调Agda作为库的一些更改。

  • 新模块阿格达。语法。常见。关键字范围提供类型Kw范围同构于范围以指示仅跨关键字的源位置(PR#7162).动机Kw范围是将这些范围与整个子树的范围区分开来,例如,在数据类型中阿格达。语法。混凝土。宣言.

    应用程序编程接口:

    模块 阿格达。语法。常见。关键字范围 哪里
    
    类型 Kw范围
    
    --从范围到千瓦范围
    千瓦范围 :: HasRange公司  =>  -> Kw范围
    
    --从Kw范围到范围
    实例 HasRange公司 Kw范围 哪里
      获取范围 :: Kw范围 -> 范围

其他问题已解决

对于2.6.5,还存在以下问题关闭(请参见错误追踪系统)以下为:

注:本节将由使用密尔斯通2.6.5的已解决问题.