Annotation of gcc/objc/todo, revision 1.1.1.1

1.1       root        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: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.