|
|
1.1 ! root 1: ! 2: [ This is probably out of date -- ask Kresten for details if needed ] ! 3: ! 4: GNU Objective C release notes for gcc 2.4 ! 5: ***************************************** ! 6: ! 7: Since gcc 2.3.3 the Objective C as part of gcc has changed a lot. ! 8: This document is to explain what has been done, and a little about ! 9: how specific features differ from other implementations. The runtime ! 10: has been completely rewritten. The earlier runtime had several ! 11: severe bugs and was rather incomplete. The compiler has had several ! 12: new features added as well. ! 13: ! 14: This is not documentation for Objective C, it is usable to someone ! 15: who knows Objective C from somewhere else. ! 16: ! 17: ! 18: Runtime API functions ! 19: ===================== ! 20: ! 21: The runtime is moddeled after the NeXT Objective C runtime. That is, ! 22: most functions have semanthics as it is known from the NeXT. The ! 23: names, however, have changed. All runtime API functions have names ! 24: of lowercase letters and and underscores as opposed to the ! 25: `traditional' mixed case names. ! 26: The runtime api functions are not documented as of now. ! 27: Someone offered to write it, and did it, but we were not allowed to ! 28: use it by his university (Very sad story). We have started writing ! 29: the documentation over again. This will be announced appropriate ! 30: places when it becomes avilable. ! 31: ! 32: ! 33: Protocols ! 34: ========= ! 35: ! 36: Protocols are now fully supported. The semanthics is exactly as on the ! 37: NeXT. There is a flag to specify how protocols should be typechecked ! 38: when adopted to classes. The normal typechecker requires that all ! 39: methods in a given protocol must be implemented in the class that ! 40: adopts it -- it is not enough to inherit them. The flag ! 41: `-Wno-protocol' causes it to allow inherited methods, while ! 42: `-Wprotocols' is the default which requires them defined. ! 43: ! 44: ! 45: +initialize ! 46: =========== ! 47: ! 48: This method, if defined, is called before any other instance or class ! 49: methods of that particular class. This method is not inherited, and ! 50: is thus not called as initializer for a subclass that doesn't define ! 51: it itself. Thus, each +initialize method is called exactly once (or ! 52: never if no methods of that particular class is never called). ! 53: Besides this, it is allowed to have several +initialize methods, one ! 54: for each category. The order in which these (multiple methods) are ! 55: called is not well defined. I am not completely certain what the ! 56: semathics of this method is for other implementations, but this is ! 57: how it works for GNU Objective C. ! 58: ! 59: ! 60: Passivation/Activation/Typedstreams ! 61: =================================== ! 62: ! 63: This is supported in the style of NeXT TypedStream's. Consult the ! 64: headerfile Typedstreams.h for api functions. I (Kresten) have ! 65: rewritten it in Objective C, but this implementation is not part of ! 66: 2.4, it is available from the GNU Objective C prerelease archive. ! 67: There is one semathic difference worth noting concerning objects ! 68: stored with objc_write_object_reference (aka NXWriteObjectReference). ! 69: When these are read back in, their object is not guaranteed to be ! 70: available until the `-awake' method is called in the object that ! 71: requests that object. To objc_read_object you must pass a pointer to ! 72: an id, which is valid after exit from the function calling it (like ! 73: e.g. an instance variable). In general, you should not use objects ! 74: read in until the -awake method is called. ! 75: ! 76: ! 77: Acknowledgements ! 78: ================ ! 79: ! 80: The GNU Objective C team: Geoffrey Knauth <[email protected]> (manager), ! 81: Tom Wood <[email protected]> (compiler) and Kresten Krab Thorup ! 82: <[email protected]> (runtime) would like to thank a some people for ! 83: participating in the development of the present GNU Objective C. ! 84: ! 85: Paul Burchard <[email protected]> and Andrew McCallum ! 86: <[email protected]> has been very helpful debugging the ! 87: runtime. Eric Herring <[email protected]> has been very helpful ! 88: cleaning up after the documentation-copyright disaster and is now ! 89: helping with the new documentation. ! 90: ! 91: Steve Naroff <[email protected]> and Richard Stallman ! 92: <[email protected]> has been very helpful with implementation details ! 93: in the compiler. ! 94: ! 95: ! 96: Prerelease Archive ! 97: ================== ! 98: ! 99: Intermediate releases, bugfixes and additional other information of ! 100: the GNU Objective C will be available from iesd.auc.dk in the ! 101: directory /pub/ObjC. ! 102: ! 103: ! 104: Bug Reports ! 105: =========== ! 106: ! 107: Please read the section `Submitting Bugreports' of the gcc manual ! 108: before you submit any bugs.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.