Mac::Carbon::Intel Porting, Day One
Step one: apply fix for T_OSTYPE to typemap, and fix the same problem in MacPerl::GetFileInfo, which bypassed T_OSTYPE.
Step two: fix ReadHex in Carbon.h, which takes a hex string of two or four bytes and converts it to an integer for use in GUSIPath2FSp, which converts a GUSI-encoded file spec to a FSSpec. For Intel, it was doing it in the wrong order.
Step three: there's no step three!
Fixing those three bugs tonight dropped me from 79/199 failed tests, down to 1/199. And the one remaining is GetAliasInfo(), which is deprecated, and simply does not work on Intel Macs (nor UFS volumes).
So, it's all done. Well, not really. I have a lot more testing to do. But I am far further along after one night with this loaner Mac than I thought I would be. I really need to doublecheck and expand my test coverage, and then test a bunch of other things that use Mac::Carbon.
The remaining point that worries me most is that I was informed that the blanket fix for OSType might be wrong on a per-API basis, as mentioned previously, but so far that doesn't seem to be the case with any of the APIs I am testing.
Step two: fix ReadHex in Carbon.h, which takes a hex string of two or four bytes and converts it to an integer for use in GUSIPath2FSp, which converts a GUSI-encoded file spec to a FSSpec. For Intel, it was doing it in the wrong order.
Step three: there's no step three!
Fixing those three bugs tonight dropped me from 79/199 failed tests, down to 1/199. And the one remaining is GetAliasInfo(), which is deprecated, and simply does not work on Intel Macs (nor UFS volumes).
So, it's all done. Well, not really. I have a lot more testing to do. But I am far further along after one night with this loaner Mac than I thought I would be. I really need to doublecheck and expand my test coverage, and then test a bunch of other things that use Mac::Carbon.
The remaining point that worries me most is that I was informed that the blanket fix for OSType might be wrong on a per-API basis, as mentioned previously, but so far that doesn't seem to be the case with any of the APIs I am testing.
Leave a comment