在 Swi-prolog 中增加运行时的堆栈大小
Posted
技术标签:
【中文标题】在 Swi-prolog 中增加运行时的堆栈大小【英文标题】:Increase stack size in runtime in 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 看来您已将其添加为事实。您需要将此作为目标发出,例如,在顶层或作为指令。 【参考方案1】:Emolai,您查阅的信息似乎已过时。 您需要以这种方式设置堆栈限制:
:- set_prolog_stack(stack, limit(5000000000))。
看到冒号+减号了吗?这表示目标 set_prolog_stack/2 将被执行,而不是定义新的子句 set_prolog_stack/2。这解释了您遇到的错误。
您现在可以出发了。你的问题解决了吗?
【讨论】:
谢谢,我通过阅读@false 的评论实际上解决了这个问题。也感谢您的宝贵时间:)以上是关于在 Swi-prolog 中增加运行时的堆栈大小的主要内容,如果未能解决你的问题,请参考以下文章