home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 4 / FreshFish_May-June1994.bin / bbs / gnu / gcc-2.3.3-src.lha / src / amiga / gcc-2.3.3 / objc / todo < prev   
Encoding:
Text File  |  1994-02-07  |  1.8 KB  |  53 lines

  1. Must eliminate use of stdio.h; that loses when using GNU libc.
  2. (It is ok to include stdio.h only when debugging,
  3.  for the sake of DEBUG_PRINTF.)
  4. Can this be done?  If not, how do we make this work?
  5.  
  6. Eliminate the asserts in record.h.
  7.  
  8. Rename the global functions in core.c to GNU-style names;
  9.  fix object.m at same time.
  10.  
  11.  
  12. It is undesirable to use statics variables such as errorStatic in
  13. handleRuntimeError--as dennisg noted.  Do programs depend on error
  14. handling to be compatible with what it is on the NeXT?
  15.  
  16. For example, would it be ok for DoesNotRecognize to return
  17. a method to be called, rather than a value to be returned?
  18.  
  19. If that is not ok, I have other ideas, but they are harder to
  20. implement.
  21.  
  22.  
  23.  
  24. Why does dennisg say that object_getIvarAddress is not thread-safe?
  25.  
  26.  
  27.  
  28. objc_msgSend can be faster.
  29. 1. Delete the statement  if (!theReceiver->isa).
  30. Instead, set the isa field of a deallocated object
  31. to point to a dummy class called "deallocated".
  32. This class should have a vector of operations
  33. at least as long as any class has had during this execution.
  34. Every element of this vector should point to `abort'.
  35. Don't bother to print a fancy message; that is a waste of effort.
  36. For something impossible, abort is *exactly* the right thing to do.
  37. 2. Is it really necessary to call initializeClass here?
  38. Can't it be done in __objc_execClass, as soon as the class
  39. is complete?  If you can avoid doing this here, that is
  40. one fewer statement to execute.
  41. 3. Get rid of objc_trace.
  42. 4. Don't check wether getIMP returns null.
  43. There should never be a null in the method vector.
  44. If the method is not defined, store in the vector
  45. a fake method that will print the appropriate error.
  46. With these changes, all you need is this:
  47.   if (theReceiver)
  48.     return getIMP (theReceiver->isa, aSel);
  49.   else
  50.     return nilMethodIMP;
  51. which is something that could plausibly be open-coded in the future.
  52.  
  53.