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

Reply via email to