连接两个Smalltalk的**方法是什么?

连接两个Smalltalk的**方法是什么?,smalltalk,gemstone,smalltalkx,Smalltalk,Gemstone,Smalltalkx,如果我想将两个Smalltalk(即Smalltalk/X与GemStone/S互连,您会推荐什么方法?我希望在Smalltalk/X中有一个应用程序,在GemStone/S中有持久对象 在任何进展之前,我试图调查这个问题。我发现一些开源实现已经完成了——我喜欢从别人的错误中吸取教训,这样我就不会重蹈覆辙 我发现了Pharo的一个实现——用于Gemstone/S远程工作的迷人工具包 我也从詹姆斯·福斯特身上找到了答案,他取得了更多的成就 在Microsoft Windows上运行的GemSton

如果我想将两个Smalltalk(即
Smalltalk/X
GemStone/S
互连,您会推荐什么方法?我希望在
Smalltalk/X
中有一个应用程序,在
GemStone/S
中有持久对象

在任何进展之前,我试图调查这个问题。我发现一些开源实现已经完成了——我喜欢从别人的错误中吸取教训,这样我就不会重蹈覆辙

我发现了Pharo的一个实现——用于Gemstone/S远程工作的迷人工具包

我也从詹姆斯·福斯特身上找到了答案,他取得了更多的成就

在Microsoft Windows上运行的GemStone/S的替代开发环境(IDE)


你建议从哪里开始?阅读
gt4gemstone
Jade
,然后想出与
GemStone/S
互连Smalltalk/X的类似方法?

很高兴听到你对GemStone感兴趣(我的爱好之一!)。与GemStone的互操作性的关键是为GemStone C接口(GCI)提供包装器,这是一个用于连接GemStone的C库。这是每个GemStone客户端(无论是C、Smalltalk还是其他)与系统通信时使用的方法

有关Smalltalk示例,请参见中的
GciLibrary*
GciSession

有关可能更清晰的起点的其他几个最近的示例,请参阅

有关较旧的(ruby)示例,请参见


因此,我建议您调查一下
Smalltalk/X
对于外部功能接口(FFI)有哪些功能,然后按照上面的示例连接到GemStone。

回答得很好!我在GemStone(无价之宝)上看到了你的101,因为它包含了大量的信息,所以我会多看几次!谢谢你的辛勤工作,詹姆斯。我了解ruby,所以我会读到+你的Jade客户端看起来真的很不错-你的代码可读性很好,我很喜欢(python和ruby很接近,所以我可以阅读,使用javascript我尽量避免使用它)。今年我没能去埃苏格,我希望下一年能去那里。希望你喜欢!我认为最好的方法是移植Jade代码的相关部分。在Smalltalk/X中,您可以使用“```/tmp/Jade/sources/GciThreadSafeLibrary.cls”作为文件名readingFileDo:[:s |更改集fromDolphinPACStream:s]``加载Dolphin的
.cls
文件,快速浏览Smalltalk/X字节码编译器和stc编译使我认为Dolphin FFI语法是现成的。否则,从Dolphin到St/X语法的自动重构应该很简单<代码>来自Dolphinpacstream的变更集:可能还需要一些调整。@J.V.感谢您的评论,我们将尝试这样做:)。顺便问一下,Jade和jadede(Jade's fork,为什么需要fork?)@tukan,在Jade[ite]的案例中,GemTalk希望开发一个支持Rowan的“官方”IDE,我们同意使用一个新名称的fork,让该项目继续进行一些预期的重大更改。是的,这可以通过一个分支完成,但是“官方”版本似乎不适合放在我的个人存储库中。我预计,一旦情况稳定下来,翡翠最终会融入翡翠的特征。或者我们可能会将Jade的一些更改(例如,对Unicode的支持)合并到Jadeite中。@JamesFoster我明白了,谢谢你澄清。unicode,你是说Jade中的UTF-16?我已经在VS2019社区版上用
Jade
成功编译了
DolpinVM
——有一些小事情需要注意,但除此之外,它编译得很好。