Annotation of GNUtools/cc/objc/README, revision 1.1.1.1

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.

unix.superglobalmegacorp.com

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