Annotation of gcc/objc/README, revision 1.1.1.3

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