2011-06-12 68 views
22

作爲一個概念證明,我想讓瀏覽器能夠運行LLVM IR。基本思想是任何使用LLVM編譯器的語言都可以在網上作爲一流的公民工作。 (這就是爲什麼我不想LLVM IR-> JS路由以外的其他任何事情)如何用LLVM替換瀏覽器JavaScript引擎?

LLVM代碼應該能夠使用所有相同的功能(例如DOM)具有相同的限制。我正在尋找入門指南,最好的地方在哪裏(我有C/C++經驗)以及最簡單的瀏覽器將要擴展的地方。

理想我正在尋找的東西非常模塊化的,所以這只是另一種「腳本引擎」的是JavaScript之一,是其它任何將來的(如直接蟒蛇之一)

非常感謝

+3

請注意,LLVM IR根本不是平臺無關的。 – 2011-06-12 11:27:01

+0

對此有任何進展?看起來很有趣,因爲PoC emscripten似乎是一個不錯的選擇。 – 2011-11-28 05:15:59

+0

我確實喜歡你的想法,但我相信問「怎麼樣」是一種錯誤的方式。如果有人知道如何去做,他們會做,或者發佈他們的設計。如果你想這樣做,你需要做一些研究,當你提出一個你不知道如何解決的技術問題時,那麼就去問問。 – Kos 2012-02-09 14:27:27

回答

3

Emscripten是一個針對asm.js的LLVM後端,可以在所有主流瀏覽器上執行。該項目可追溯到2010年。這將IR轉換爲asm.js。理想情況下,您應該能夠擴展項目以支持其他語言,而不僅僅是C/C++;無論是作爲一個啓動平臺,在編寫針對您所期望的瀏覽器界面的執行環境的綁定之前,將其他組件放在適當位置。

asm.js已經被用於運行虛幻引擎,以及爲Archive.org的遊戲存檔移植DosBox。

相關問題