En regardant le source for Int, je vois que toutes les classes sont déclarées avec my
, que j'aurais pensé les rendre privées et non disponibles en dehors de ce fichier. Mais, ils le sont évidemment. Pourquoi ont-ils besoin d'être déclarés comme ça?Pourquoi toutes les classes de src/core/Int.pm de Rakudo sont-elles déclarées avec mes?
my class Rat { ... }
my class X::Numeric::DivideByZero { ... }
my class X::NYI::BigInt { ... }
my class Int { ... }
my subset UInt of Int where {not .defined or $_ >= 0};
my class Int does Real { # declared in BOOTSTRAP
Je pense que le commentaire BOOTSTRAP a quelque chose à voir avec ça. Dans le Perl6/Metamodel/BOOTSTRAP.nqp il y a des lignes comme:
my stub Int metaclass Perl6::Metamodel::ClassHOW { ... };
Eh bien, le design pourrait être décrit dans ces documents, mais je n'aurais pas pensé qu'il était connecté à ce qui se passait dans Int.pm. Merci, –