需要一个Ypsilon使用示例吗 我开始搞砸了,这是一个C++实现方案。 它符合快速垃圾收集器的特点,支持多核CPU和Unicode,但具有文档强> >文件>、C++代码示例和注释>p>
作者将其作为独立的控制台应用程序提供。 我的目标是将其用作图像处理应用程序中的脚本引擎 源代码结构良好,但结构不熟悉。 我花了两周的时间来研究它,以下是我发现的: 所有与外部世界的通信都是通过C++结构来完成的。 端口,它们对应于方案端口需要一个Ypsilon使用示例吗 我开始搞砸了,这是一个C++实现方案。 它符合快速垃圾收集器的特点,支持多核CPU和Unicode,但具有文档强> >文件>、C++代码示例和注释>p>,c++,scheme,bytecode,ffi,C++,Scheme,Bytecode,Ffi,作者将其作为独立的控制台应用程序提供。 我的目标是将其用作图像处理应用程序中的脚本引擎 源代码结构良好,但结构不熟悉。 我花了两周的时间来研究它,以下是我发现的: 所有与外部世界的通信都是通过C++结构来完成的。 端口,它们对应于方案端口 虚拟机有3个端口:输入、输出和错误 端口可以是std端口(通过控制台)、套接字端口、, 字节向量端口、命名文件端口和自定义端口 每个自定义端口必须提供一个称为处理程序的填充结构 处理程序是一个包含6个元素的向量:第一个是布尔值 (是否 端口是文本的),其他五个
<强> <>强>,如果有人提供上述任何场景的C++示例,它将大大节省我的时间。
提前谢谢 好的,从我对源代码的了解来看,以下是各种处理程序的调用方式(这都是非正式的,纯粹基于源代码检查):
(lambda(bv off len))
:获取字节向量(处理程序将读取数据放入其中)、偏移量(fixnum)和长度(fixnum)。您应该最多读入len
字节,从off
开始将这些字节放入bv
。返回实际读入的字节数(作为fixnum)(lambda(bv off len))
:获取字节向量(包含要写入的数据)、偏移量(fixnum)和长度(fixnum)。从bv
中最多抓取len
字节,从off
开始,并将其写出。返回实际写入的字节数(作为fixnum)(lambda(pos))
(仅在文本模式下调用):允许您为pos
存储一些数据,以便将来使用相同的pos
值调用设置位置处理程序时将位置重置回当前位置。返回值被忽略(lambda(pos))
:将当前位置移动到pos
的值。返回值被忽略(lambda())
:关闭端口。返回值被忽略要回答关于编译和运行“字节码”的另一个问题,请执行以下操作:
compile
。这将返回一个代码对象运行vmi
,但您不能从外部代码访问它自动编译缓存
系统有关详细信息,请查看
heap/boot/eval.scm
。(同样,这不是官方的回应,只是纯粹基于个人实验和源代码检查。)您是否试图联系项目的项目维护人员?这可以帮你节省一些时间。@Seki,是的。他们没有回答。那会有帮助的,谢谢你,@Chris!你和Ypsilon的发展有关系吗?我很高兴。我一点关系也没有:在我看到这个问题后,我下载了Ypsilon,并决定四处挖掘。然而,有两件事起了作用:1。我是Guile(另一个方案实现)的提交者,所以我确实知道方案实现通常是如何工作的。我有C++的专业经验,并考虑C++的主要语言之一。