Leopold Toetsch wrote:
Sam Ruby wrote:
Leopold Toetsch wrote:
What is the rational for this pythonism in Parrot core?
+The line of code in test case t/pie/b3 that motivates this is: + + print "using", cmp.__name__ + +Where cmp may be a NCI subroutine.
Python's builtin "cmp" is basially a Sub PMC. Parrot Sub's have already a name:
At the moment, Python's builtin "cmp" is implemented thus:
enter_nci_method(interp, my_enum_class_PyBuiltin, F2DPTR(Parrot_PyBuiltin_cmp), "cmp", "PIOPP");
.sub main .const .Sub c = "cmp" print c .end .sub "cmp" .end
So I think, you could translate access to the "__name__" attribute directly to VTABLE_name(). WRT NCI: The b3.py test doesn't need it, but I can imagine that the method name of Parrots "cmp" method is just "__cmp" and available with VTABE_name().
For this test to pass, the __name__ must be "cmp".
As this issue is obviously very important to you, I'll drop what I am doing make creating a new subclass of NCI for my purposes my top priority.
- Sam Ruby