Annotation of gcc/objc/README, revision 1.1

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

unix.superglobalmegacorp.com

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