【问题标题】:Increase stack size in runtime in Swi-prolog在 Swi-prolog 中增加运行时的堆栈大小
【发布时间】:2021-04-02 18:24:20
【问题描述】:

我在我的代码中使用了set_prolog_flag(stack_limit, 5000000000).

然后我得到以下错误:

ERROR: No permission to modify static procedure "set_prolog_flag/2"

我好像没有权限修改stack_size。有解决办法吗?

【问题讨论】:

  • 也许这会有所帮助:swi-prolog.org/FAQ/StackSizes.html
  • 看来您已将其添加为事实。您需要将此作为目标发出,例如,在顶层或作为指令。

标签: prolog swi-prolog stack-size


【解决方案1】:

Emolai,您查阅的信息似乎已过时。 您需要以这种方式设置堆栈限制:

:- set_prolog_stack(stack, limit(5000000000))。

看到冒号+减号了吗?这表示目标 set_prolog_stack/2 将被执行,而不是定义新的子句 set_prolog_stack/2。这解释了您遇到的错误。

您现在可以出发了。你的问题解决了吗?

【讨论】:

  • 谢谢,我通过阅读@false 的评论实际上解决了这个问题。也感谢您的宝贵时间:)
猜你喜欢
  • 2013-05-18
  • 1970-01-01
  • 1970-01-01
  • 2015-11-22
  • 2010-11-24
  • 2017-03-02
  • 2015-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多