【问题标题】:How to enable hints and warnings in the online REPL如何在在线 REPL 中启用提示和警告
【发布时间】:2014-10-15 13:23:59
【问题描述】:

我想我可以像这样在命令行 REPL 上做到这一点:

java -jar frege-repl-1.0.3-SNAPSHOT.jar -hints -warnings

但是我怎样才能在http://try.frege-lang.org中做同样的事情

【问题讨论】:

    标签: frege


    【解决方案1】:

    默认情况下已启用提示和警告。例如,

    frege> f x = f x
    function f :: α -> β
    3: application of f will diverge.
    

    也许我们可以通过明确地将其表示为警告或提示(而不是区分它们的颜色)来使其变得更好,例如:

    [Warning] 3: application of f will diverge.
    

    并提供打开/关闭它们的选项。

    更新: 确实存在一个问题(感谢 Ingo 指出这一点!)显示在编译过程中稍后阶段生成的警告。 This issue 已修复,以下示例现在可以在 REPL 中正确显示警告:

    frege> h x = 0; h false = 42
    function h :: Bool -> Int
    4: equation or case alternative cannot be reached.
    
    frege> f false = 6
    function f :: Bool -> Int
    5: function pattern is refutable, consider
    adding a case for true
    

    【讨论】:

    • 我明白了,但是为什么没有出现一些警告。就像g true = 43 现在应该有一个关于g false ... 缺少方程的警告
    • 另一个:h x = 0; h false = 42 应该警告第二个方程永远不会被使用。
    • 我不确定为什么没有显示这些警告。我明天去看看。
    • 请注意,在代码生成过程中会发出一些警告和提示,如上述警告和提示。也许您过早获取警告?
    • 谢谢!是的,这正是问题所在。在 REPL 中,对于定义,代码生成阶段被跳过,因为我们不打算评估任何东西。对于模块和表达式,始终启用代码生成。为了解决这个问题,我认为我们应该始终启用 codegen。
    猜你喜欢
    • 2017-02-03
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    • 1970-01-01
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多