如果想讓Smalltalk能使用我們電腦平台的特殊硬體設備或是運算能力,那麼可以透過FFI,存取作業系統的library或是自行編寫shared library所提供的接口
例如,可以添購產生真實亂數量子物理設備或是為了加入全球意識計畫 (The Global Consciousness Project )而安裝REG(random event generators)設備,這時我們只要為Smalltalk/Squeak/Pharo加入一些程式碼,就能讓你的Smalltalk達成量子跳躍(Quantum leap)
關於FFI的詳細用法,請參考How to Use FFI
底下是Jimmy's papa的實驗過程
首先Pharo先載入FFI package
寄件者 scratchlab01 |
junkDNA.c
#include <stdio.h>
char* quantumCommunication() {
return "hello parallel worlds!\n";
}
junkDNA.h
char* quantumCommunication();
編譯,產生junkDNA.o
gcc -fPIC -Wall -c junkDNA.c
編譯成libjunkDNA.so(必須是lib開頭),加入junkDNA.o
gcc -shared -o libjunkDNA.so junkDNA.o
直接copy檔案到預設Pharo的/Contents/Linux/目錄下
cp libjunkDNA.so /home/<your-dir>/Pharo-1.3-OneClick.app/Contents/Linux/
寄件者 scratchlab01 |
耶!成功了,我的Pharo擁有新的特異功能囉!!!
寄件者 scratchlab01 |