2014-09-13 26 views
2

據我所知,Squeak環境與操作系統的其他部分相隔離。但是,我正在尋找一種方法來執行外部代碼,它將使用不同的語言編寫。我們需要這個連接到一箇舊的代碼庫。如何從Squeak環境運行外部代碼?

這可能嗎?我有哪些選項?

回答

6

你已經基本上3個選項:

  1. 寫插件:你可以用含有稱爲「原始人」的C函數,然後模塊擴展佳樂VM可以使用Squeak代碼。原始碼是吱吱聲代碼與外部世界的接口方式(例如訪問文件或互聯網或播放聲音)。您可以將您的插件與任何庫鏈接,以便您可以連接到任何具有C綁定的語言。
  2. 使用FFI:外部函數接口是從庫調用C函數的通用方法。這很難在多個平臺上正常工作,但在構建插件時不需要C編譯器,也不需要將插件分發給用戶。
  3. 使用OSProcess:這個包允許你調用一個外部可執行文件並通過stdin/stdout進行通信。

編寫一個插件是最靈活和最高性能的選項,但並非微不足道。 OSProcess最簡單,FFI在中間。

2

我想你,你正在尋找OSProcess

+1

僅鏈接的答案在這裏皺起了眉頭。你可能會擴大你的答案,以包含內聯的有用信息? – MetaFight 2014-09-13 18:28:01

+2

@MetaFight不,我不知道OSProcess,但知道它存在。所以我盡我所知地回答。然後伯特回答了更多的解釋。這是答案到達時間與答案本身質量之間的差異 – Uko 2014-09-15 07:47:05