Of course Parrot should have a function to reinterpret something of a string type as raw binary data and vice versa, but don't mix binary data with strings: they are completely different types, and raw binary data should never be able to be put into a string register. Maybe some blurring of binary data/strings should happen at the Perl layer, but Parrot should keep them as distinct as possible, IMHO.
I'm trying to make sure that keeping them separate is possible, but it's important for everyone to remember that we're limited in what we can do.
Parrot *can't* dictate semantics. That's not what we get to do. We're constrained in what we can make happen by the semantics of the languages we've declared as primary support languages, regardless of whether we think those semantics are a good idea or not. (Heck, regardless of whether the original designers of the languages think the semantics were a good idea or not, since an installed base beats hindsight every time)
So. Strings and byte buffers as semantically different? Good idea, can't do it. Unicode everywhere universally? Arguably a good idea, can't do it.
All we can do is make the best of what we can with the semantics we have to provide, and layer on as much safety as is possible to let folks transition over, debug better, and work cleaner without breaking what has been declared to be The Answer.
--
Dan
--------------------------------------"it's like this"------------------- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk