--- gcc/objc/todo 2018/04/24 18:03:32 1.1 +++ gcc/objc/todo 2018/04/24 18:10:15 1.1.1.2 @@ -1,52 +1,8 @@ -Must eliminate use of stdio.h; that loses when using GNU libc. -(It is ok to include stdio.h only when debugging, - for the sake of DEBUG_PRINTF.) -Can this be done? If not, how do we make this work? +* Make __objc_frame_... macros or builtins for more targets. + - will be done after 2.4 -Eliminate the asserts in record.h. +* Incorporate class Nil. + - will talk to Michael Uhlenberg -Rename the global functions in core.c to GNU-style names; - fix object.m at same time. - - -It is undesirable to use statics variables such as errorStatic in -handleRuntimeError--as dennisg noted. Do programs depend on error -handling to be compatible with what it is on the NeXT? - -For example, would it be ok for DoesNotRecognize to return -a method to be called, rather than a value to be returned? - -If that is not ok, I have other ideas, but they are harder to -implement. - - - -Why does dennisg say that object_getIvarAddress is not thread-safe? - - - -objc_msgSend can be faster. -1. Delete the statement if (!theReceiver->isa). -Instead, set the isa field of a deallocated object -to point to a dummy class called "deallocated". -This class should have a vector of operations -at least as long as any class has had during this execution. -Every element of this vector should point to `abort'. -Don't bother to print a fancy message; that is a waste of effort. -For something impossible, abort is *exactly* the right thing to do. -2. Is it really necessary to call initializeClass here? -Can't it be done in __objc_execClass, as soon as the class -is complete? If you can avoid doing this here, that is -one fewer statement to execute. -3. Get rid of objc_trace. -4. Don't check wether getIMP returns null. -There should never be a null in the method vector. -If the method is not defined, store in the vector -a fake method that will print the appropriate error. -With these changes, all you need is this: - if (theReceiver) - return getIMP (theReceiver->isa, aSel); - else - return nilMethodIMP; -which is something that could plausibly be open-coded in the future. +* Write a Streams library