in reply to Re^3: What does utf8::upgrade actually do.
in thread What does utf8::upgrade actually do.

Hi Dave,

If we accept that croaking is acceptable whenever there's a codepoint > 0xff, then I believe that simply replacing SvPV_nolen() with SvPVbyte_nolen() takes care of the points you've raised.
It looks to me that SvPVbyte_nolen() croaks with "Wide character in subroutine entry" whenever there's a codepoint > 0xff.
I also considered using SvPVutf8_nolen() for when a codepoint > 0xff is encountered but, with the string "\x40\x{150}\x60", that leads to an integer value of 0x6090c540. It's not apparent to me that there's any value in going down that particular path.

As roboticus pointed out, there's also the matter of warnings and documentation to attend to.
I did consider simply croaking if the UTF8 flag is set. Given the mpz_import() spec, I think that could be justified ... but where's the challenge in adopting such a wise and practical solution ;-)

Anyway ... I think I've got the information I need. It's now just a matter of thinking it through in a sane and orderly fashion.

Thanks dave_the_m, roboticus and Tux.
I appreciate not only the fact that you replied, but also the time and effort that was put into composing those replies.

  • Comment on Re^4: What does utf8::upgrade actually do.