Stream 使用Yap Prolog从流中读取列表

Stream 使用Yap Prolog从流中读取列表,stream,prolog,pipe,yap,Stream,Prolog,Pipe,Yap,我想从我的(yap)prolog脚本运行(python3)进程,并读取格式化为整数列表的输出,例如[1,2,3,4,5,6] 我就是这么做的: process_create(path(python3), ['my_script.py', MyParam], [stdout(pipe(Out))]), read(Out, OutputList), close(Out). 但是,它在读取/2谓词时失败,错误如下: PL_unify_term: PL_int64 not suppor

我想从我的(yap)prolog脚本运行(python3)进程,并读取格式化为整数列表的输出,例如
[1,2,3,4,5,6]

我就是这么做的:

process_create(path(python3),
    ['my_script.py', MyParam],
    [stdout(pipe(Out))]),
read(Out, OutputList),
close(Out).
但是,它在读取/2谓词时失败,错误如下:

PL_unify_term: PL_int64 not supported
Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>
BrokenPipeError: [Errno 32] Broken pipe
PL\u unified\u术语:不支持PL\u int64
在中忽略异常:
断管错误:[Errno 32]断管
我确信我可以正确运行该进程,因为在
[stdout(std)]
参数指定给
进程时,程序会按预期输出
[1,2,3,4,5,6]

奇怪的是,当我将进程更改为输出某个常量项时(如
constant\u term
),它仍然会给出相同的
PL\u int64
错误。在进程的输出中添加点(
[1,2,3,4,5,6]。
)并不能解决错误。使用
read\u term/3
会产生相同的错误<代码>读取字符串/3
在YAP Prolog中未定义


我怎样才能解决这个问题

在询问我收到的yap用户邮件列表后


使用libGMP选项重新编译了YAP Prolog 6.2.2,现在可以运行了。它也可能发生在32位YAP中

在询问我收到的yap用户邮件列表后

使用libGMP选项重新编译了YAP Prolog 6.2.2,现在可以运行了。它也可能发生在32位YAP中