Názor ke článku Bude Rubinius zcela kompatibilní s MRI? od David Majda - Mám pocit, že jsi to špatně pochopil. V...

  • 18. 1. 2008 16:56

    David Majda (neregistrovaný)

    Mám pocit, že jsi to špatně pochopil. V tom Evanově blogpostu se píše o tom, že jedna z knihoven (mathn.rb), která je mezi knihovnami bundlovanými s MRI, předefinovává operaci dělení tak, že nevrací celé číslo. Jde nejspíš o tyto řádky:

    class Fixnum
    alias / quo
    end

    Problém s Rubiniem je ten, že interně předpokládá "rozumné" chování Fixnumu a takováhle definice ho zmate, vzhledem k tomu, že ovlivní i jeho vnitřnosti, napsané ve stejném Ruby jako uživatelský kód.

    Nic v tom postu nenaznačuje, že by Rubinius tuhle definici dělení zavedl jako standardní. K jejímu aplikování je potřeba napsat "require 'mathn'", funguje to tedy úplně stejně jako v MRI.

    Jinak řečeno, post neříká "předefinováváme definici dělení celých čísel", ale "když si někdo usmyslí předefinovat dělení celých čísel (nebo udělá nějakou jinou obdobnou opičárnu), náš runtime se s tím v tuto chvíli nesrovná a něco s tím do budoucna budeme muset udělat".