home *** CD-ROM | disk | FTP | other *** search
/ Executor 2.0 / executorv2.0.iso / pc / dos / extra / docs / maillist / text / archive.95 / text2666.txt < prev    next >
Encoding:
Internet Message Format  |  1996-03-31  |  5.8 KB

  1. Received: from sloth.swcp.com (sloth.swcp.com [198.59.115.25]) by nacm.com (8.6.10/8.6.9) with ESMTP id JAA19705 for <executor@nacm.com>; Wed, 5 Jul 1995 09:08:22 -0700
  2. Received: from iclone.UUCP (uucp@localhost) by sloth.swcp.com (8.6.9/8.6.9) with UUCP id KAA03126; Wed, 5 Jul 1995 10:08:19 -0600
  3. Received: from beaut.ardi.com by mailhost  with smtp
  4.     (nextstep Smail3.1.29.0 #11) id m0sTWyq-000YbmC; Wed, 5 Jul 95 10:07 MDT
  5. Received: by beaut.ardi.com (linux Smail3.1.28.1 #5)
  6.     id m0sTWyp-00000BC; Wed, 5 Jul 95 10:07 MDT
  7. Message-Id: <m0sTWyp-00000BC@beaut.ardi.com>
  8. Date: Wed, 5 Jul 95 10:07 MDT
  9. From: ctm@ardi.com (Clifford Thomas Matthews)
  10. To: Jeff Tupper <mooncake@cs.toronto.edu>
  11. Cc: mat@ardi.com, executor@nacm.com
  12. Subject: Re: Future Questions
  13. In-Reply-To: <95Jul5.111710edt.6165@neat.cs.toronto.edu>
  14. References: <95Jul5.111710edt.6165@neat.cs.toronto.edu>
  15. Sender: owner-paper@nacm.com
  16. Precedence: bulk
  17.  
  18. >>>>> "Jeff" == Jeff Tupper <mooncake@cs.toronto.edu> writes:
  19.  
  20.     Jeff> mat@ardi.com (Mat Hostetter):
  21.     >> Long ago Executor was a source-compatible library, but it would
  22.     >> be difficult to resurrect it in that form.  There are also some
  23.     >> very difficult issues for developers involving byte ordering;
  24.     >> have you noticed that all platforms supported by Apple (680x0,
  25.     >> PowerPC, and those supported by MAE) are all "big endian"?
  26.  
  27.     >> -Mat
  28.  
  29.     Jeff> Well, I must be missing something, but the platforms
  30.     Jeff> supported by Apple all do so through emulation (in addition
  31.     Jeff> to native code).
  32.  
  33. This isn't meant to be a flame, just a simple explanation of some of
  34. the reasons Mat said what he said.  Both Mat and I are *extremely*
  35. aware of the issues being discussed.
  36.  
  37. Yes, one thing you appear to be missing is that Apple does not support
  38. any Mac emulators on little-endian machines.  They support the
  39. original 68k, the PPC, the SPARC and the HP.  Notably absent is the
  40. x86 and Alpha.
  41.  
  42.     Jeff> If one is emulating 68K code, preserving
  43.     Jeff> endianness is nice, but a fairly easy things for developers
  44.     Jeff> to avoid.
  45.  
  46. No, the semantics of the Mac system calls are such that endianness has
  47. to be considered everywhere.  If you're not familiar with programming
  48. the Mac, the following may not make sense, but what do you do with
  49. system routines that expect to pick up data in resources?  Should the
  50. resources be stored in native order or canonical (big endian) order?
  51. If you pick the former, then you can't pass files containing resources
  52. around between machines of different endianness.  If you chose the
  53. latter, then you have to do byte swapping yourself if you are going to
  54. use the resource internally.
  55.  
  56.     Jeff> After all, my program runs on both 68K and x86
  57.     Jeff> [but not VAX].
  58.  
  59. Your programs are not Mac programs, right?  Big difference (see above).
  60.  
  61.     Jeff> Just don't write out longs and read them back
  62.     Jeff> as shorts or bytes. Read data in the same way you wrote it
  63.     Jeff> out.
  64.  
  65. See?  You overlooked the system service issue.  Remember, the system
  66. services that MacOS provides are already cast in stone.  We're talking
  67. about tools to enable *existing* applications to be ported, not the
  68. possibility of writing tools that work well with new code.
  69.  
  70.     Jeff> You have to have architecture independant file code but
  71.     Jeff> that can be done easily as well.
  72.  
  73. Nope.  Same problem.  There are a variety of file formats that are
  74. *already* defined.  Hence the programmer has to be aware of the byte
  75. swapping issues.  That makes for significant amounts of extra code to
  76. write.  Guess what happens when you provide tools that aid in this
  77. process, but still require the end-user (i.e. the programmer doing the
  78. port) to pay careful attention to these things?  You get tons of calls
  79. by irate programmers saying "the tools don't work", and you know what?
  80. They'll be right -- one out of ten times.  That one out of ten will
  81. teach them not to trust the tools (the tools we're talking about are
  82. prone to the same clean-room development incompatibility issues that
  83. Executor is), so everytime something goes wrong, the tools will be blamed.
  84.  
  85.     Jeff> What would be difficult to
  86.     Jeff> do is handle WMF/BMP files as PICT files - probably not
  87.     Jeff> worth the hassle, just let developers write a bit of code
  88.     Jeff> for that. (Well, it could be done - just warn developers
  89.     Jeff> about the holes) Accessing bitmaps/video would have to be
  90.     Jeff> patched up too, but none of this is as much work as porting
  91.     Jeff> to a different API (all this would be done, plus a whole
  92.     Jeff> bunch more :)
  93.  
  94. In some cases you're right, in some cases not.  Some programs would
  95. port more easily using such tools than others.  However, we discovered
  96. years ago that it is impossible to offer such tools when you're a
  97. small company.  After 2.0 is shipping, if we have boatloads of cash,
  98. it may make sense for us to reimplement what we had before.  However,
  99. the tools would either be expensive or would have very high technical
  100. support fees tied to them.
  101.  
  102. Remember, this is what ARDI originally did.  We ran into all the
  103. problems mentioned above, and more.  Back then people would also ask
  104. us whether or not our tools would be good enough to port, say,
  105. Microsoft Word.  We'd answer "Yes.  <pause>  We think."  We'd then
  106. have to explain that we would never see the source to Microsoft Word,
  107. so all such answers would be speculation.  Eventually, to silence our
  108. critics, we wrote some glue and made a small program that would run
  109. Macintosh binaries -- you guessed it -- that program was Executor.
  110.  
  111. Once Executor got a little better, it was clear that we'd do much
  112. better working on and selling Executor -- in fact, we even had a
  113. couple of profitable months back in NEXTSTEP's heyday, back before
  114. NeXT stopped making hardware, but that's another story.
  115.  
  116.     --Cliff
  117.     ctm@ardi.com
  118.  
  119.