2016-01-18 37 views

回答

4

JRuby使用Joni Regexp library,這是Onigmo Regexp libraryYARVRubinius使用手寫行由線C到Java端口。

其實這個故事並不那麼簡單。

首先,有一個名爲OnigurumaRegexp庫。然後將這個庫導入到YARV源樹中,從而有效地分叉。 YARV開發者爲他們自己的分支添加了功能,其中一些已經合併到Oniguruma中,其中一些沒有。 Oniguruma開發者增加了一些功能,其中一些被合併到YARV分叉中,一些沒有。

在這期間的某個時間點,JRuby開發人員放棄了試圖在Java正則表達式之上支持Ruby語義,並且將Oniguruma從C逐行轉換爲Java。最終的圖書館被稱爲Joni。當然,Oniguruma及其YARV分支繼續開發,Joni開發人員必須嘗試跟蹤這一發展。

經過幾年的發展,Oniguruma的另一個分支被創建,名爲Onigmo,它分叉了最新版本的Oniguruma並增加了YARV開發人員添加的許多功能。 YARV開發者拋出他們自己的Oniguruma分支,而是導入他們自己的Onigmo分支。

Joni不得不嘗試跟上這一切。

簡而言之:這可能是一個錯誤:某個地方某些東西丟失了,誤譯,或者只是簡單的錯誤。它發生了。

您應該針對JRuby或Joni或兩者提交錯誤。

+0

令人驚歎的故事。謝謝! – sashaegorov

0

只是一個快速另外,由於約爾格拼寫出來非常好...

因爲Onigmo實際上並不存在,除非CRuby的一部分,請提交您的問題對JRuby的(http://bugs.jruby.org)。將問題展示爲JRuby錯誤更容易。我們將在JRuby(對應於CRuby中的非Onigmo代碼的代碼)或者JCodings(代碼是Onigmo的代碼)中修復它。

相關問題