home *** CD-ROM | disk | FTP | other *** search
- >>>>> "Jeff" == Jeff Tupper <mooncake@cs.toronto.edu> writes:
-
- Jeff> mat@ardi.com (Mat Hostetter):
- >> Long ago Executor was a source-compatible library, but it would
- >> be difficult to resurrect it in that form. There are also some
- >> very difficult issues for developers involving byte ordering;
- >> have you noticed that all platforms supported by Apple (680x0,
- >> PowerPC, and those supported by MAE) are all "big endian"?
-
- >> -Mat
-
- Jeff> Well, I must be missing something, but the platforms
- Jeff> supported by Apple all do so through emulation (in addition
- Jeff> to native code).
-
- This isn't meant to be a flame, just a simple explanation of some of
- the reasons Mat said what he said. Both Mat and I are *extremely*
- aware of the issues being discussed.
-
- Yes, one thing you appear to be missing is that Apple does not support
- any Mac emulators on little-endian machines. They support the
- original 68k, the PPC, the SPARC and the HP. Notably absent is the
- x86 and Alpha.
-
- Jeff> If one is emulating 68K code, preserving
- Jeff> endianness is nice, but a fairly easy things for developers
- Jeff> to avoid.
-
- No, the semantics of the Mac system calls are such that endianness has
- to be considered everywhere. If you're not familiar with programming
- the Mac, the following may not make sense, but what do you do with
- system routines that expect to pick up data in resources? Should the
- resources be stored in native order or canonical (big endian) order?
- If you pick the former, then you can't pass files containing resources
- around between machines of different endianness. If you chose the
- latter, then you have to do byte swapping yourself if you are going to
- use the resource internally.
-
- Jeff> After all, my program runs on both 68K and x86
- Jeff> [but not VAX].
-
- Your programs are not Mac programs, right? Big difference (see above).
-
- Jeff> Just don't write out longs and read them back
- Jeff> as shorts or bytes. Read data in the same way you wrote it
- Jeff> out.
-
- See? You overlooked the system service issue. Remember, the system
- services that MacOS provides are already cast in stone. We're talking
- about tools to enable *existing* applications to be ported, not the
- possibility of writing tools that work well with new code.
-
- Jeff> You have to have architecture independant file code but
- Jeff> that can be done easily as well.
-
- Nope. Same problem. There are a variety of file formats that are
- *already* defined. Hence the programmer has to be aware of the byte
- swapping issues. That makes for significant amounts of extra code to
- write. Guess what happens when you provide tools that aid in this
- process, but still require the end-user (i.e. the programmer doing the
- port) to pay careful attention to these things? You get tons of calls
- by irate programmers saying "the tools don't work", and you know what?
- They'll be right -- one out of ten times. That one out of ten will
- teach them not to trust the tools (the tools we're talking about are
- prone to the same clean-room development incompatibility issues that
- Executor is), so everytime something goes wrong, the tools will be blamed.
-
- Jeff> What would be difficult to
- Jeff> do is handle WMF/BMP files as PICT files - probably not
- Jeff> worth the hassle, just let developers write a bit of code
- Jeff> for that. (Well, it could be done - just warn developers
- Jeff> about the holes) Accessing bitmaps/video would have to be
- Jeff> patched up too, but none of this is as much work as porting
- Jeff> to a different API (all this would be done, plus a whole
- Jeff> bunch more :)
-
- In some cases you're right, in some cases not. Some programs would
- port more easily using such tools than others. However, we discovered
- years ago that it is impossible to offer such tools when you're a
- small company. After 2.0 is shipping, if we have boatloads of cash,
- it may make sense for us to reimplement what we had before. However,
- the tools would either be expensive or would have very high technical
- support fees tied to them.
-
- Remember, this is what ARDI originally did. We ran into all the
- problems mentioned above, and more. Back then people would also ask
- us whether or not our tools would be good enough to port, say,
- Microsoft Word. We'd answer "Yes. <pause> We think." We'd then
- have to explain that we would never see the source to Microsoft Word,
- so all such answers would be speculation. Eventually, to silence our
- critics, we wrote some glue and made a small program that would run
- Macintosh binaries -- you guessed it -- that program was Executor.
-
- Once Executor got a little better, it was clear that we'd do much
- better working on and selling Executor -- in fact, we even had a
- couple of profitable months back in NEXTSTEP's heyday, back before
- NeXT stopped making hardware, but that's another story.
-
- --Cliff
- ctm@ardi.com
-
-