theraven
f9f2e4e313
Added a function for getting the type encoding for a block returned by imp_implementationFromBlock().
14 years ago
theraven
4796a41e4e
Finished implementing the new runtime APIs.
14 years ago
theraven
43ee8b9819
Add initial support for imp_implementationWithBlock() and friends. Currently
...
only works on x86 and x86-64 and doesn't work with sret functions.
14 years ago
theraven
f133fa7eb8
Better ObjC++ support in runtime.h
15 years ago
theraven
1d16930450
Fix missing semicolon.
...
Make Makefile.clang work
Patch by Charlie Sharpsteen.
15 years ago
theraven
5d3c047fa2
Finished implementing JavaScript-style prototypes.
15 years ago
theraven
b54719abf1
Basic support for prototype-style object orientation (you can now add methods to an individual object).
15 years ago
theraven
908374672d
Make OBJC_SMALL_OBJECT_SHIFT / OBJC_SMALL_OBJECT_MASK constants.
15 years ago
theraven
8e34dccda9
Deprecate access to the isa pointer. This will become a hard error in future.
15 years ago
theraven
22e5aaf7b0
Add OBJC_SMALL_OBJECT_SHIFT macro.
15 years ago
theraven
8af52846b7
Small object (hidden in a pointer) support.
15 years ago
theraven
893b9bf958
Add guard if __has_feature is not defined.
15 years ago
theraven
9b70b22eee
Use __unsafe_unretained instead of const for returning protocol arrays. Let's not break everyone's code, even if we really want to.
15 years ago
theraven
b5380d50d3
Added support for ARC.
...
Weak references are still not supported, but code that doesn't use them (i.e. any code that wants to be compatible with OS X 10.6) will work fine.
The current implementation is VERY inefficient and has a large number of missed optimisation opportunities: this is the 'make it right' phase, and should be almost equivalent to explicit retain / release code.
15 years ago
theraven
8ee4d9c38a
Added implementation of property_getAttributes(). This is a horrible interface, both to implement and to use. We should add some better interfaces.
15 years ago
theraven
c6f0651609
Implemented objc_copyProtocolList().
15 years ago
theraven
79b67ad044
Added missing ivar access functions.
15 years ago
theraven
e198597bd3
Added support for associative references. Modified sync code to use this.
15 years ago
thebeing
ee7817cf57
Implement a hook that allows the compiler to register the aliases used with the
...
@compatibility_alias directive so that they can be resolved at runtime.
15 years ago
theraven
faa741b133
Added some header documentation for runtime functions.
15 years ago
theraven
7336df75bc
Added some more comments, C++ include guards around runtime.h.
15 years ago
theraven
73e1e2934b
It turns out that Apple chose some confusing and non-intuitive semantics for
...
catching Objective-C objects in C++ catch statements (i.e. they follow
Objective-C semantics, not C++ semantics, irrespective of whether you use C++
or ObjC syntax). We now default to Apple-compatible behaviour, but provide a
function that allows users to select the sane semantics if they prefer.
Added a capability bit for the unified exception model, so code can require it.
This is not really required, since any code using it will link against the
ObjC++ personality function and will get a linker failure if it isn't supported.
Also enabled Objective-C++ stuff by default. This adds a dependency on the C++
standard library (actually on libsupc++, but GNUstep Make wants to link against
libstd++ anyway), which is not ideal. It can be disabled with:
$ gmake objectiver-cxx=no
I suggest that this is only done by people who know that they will never want
Objective-C++ support.
15 years ago
theraven
e0d80861b5
Added some documentation.
15 years ago
theraven
bde6bf0e14
Fix truncated comment in header and 'worse than useless' macro.
...
Both issues pointed out by Jens Ayton.
15 years ago
ericwa
a7ea477400
libobjc2: put libobjc compatibility functions in runtime.h marked __attribute__((deprecated))
15 years ago
theraven
7be9f34619
Fixed @synchronize() with a class that has had an instance used for @synchronize().
15 years ago
theraven
025688a2d5
Added property_getName(). Added non-portable API documentation.
16 years ago
theraven
d70523947b
Implement some missing runtime functions.
16 years ago
theraven
9c077368a8
Make sel_copyTypes_np() return the number of types in all cases.
16 years ago
theraven
a029fb2af3
Expose sel_copyTypes_np().
16 years ago
ericwa
c604289023
libobjc2: define SEL as const for GCC
16 years ago
theraven
0177ef56e1
Tweak the type encoding stuff a bit.
16 years ago
theraven
5885fd196a
Add defines for ObjC types (GNUstep apparently uses them, even though they are not part of the language spec, but the things that they define are, so they only serve to obfuscate code where they are used).
16 years ago
theraven
bd58a33b84
Prevent accidental mixing of GNU runtime headers with GNUstep runtime.h.
16 years ago
theraven
77d02d075b
Add some missing protocol introspection functions.
16 years ago
theraven
fb474dd7f9
Removed hooks from runtime.h that are in hooks.h
16 years ago
theraven
a9bdab1f44
Reverted last commit - breaks the build with clang.
...
Fixed the definition of objc_msgSendSuper().
Tweaked the -dealloc implementation for hidden classes used for locking so that @synchronize(self) will work in a -dealloc method.
16 years ago
theraven
2d84b96a72
Tidied up some bits by creating private headers for private data structures.
...
Imported selector table code frm the Étoilé runtime. We can now make dispatch type dependent with a -D switch. Not enabled yet, but it will be enabled in a warning mode soon - I consider preferable to the existing GNU and Apple solution of corrupting the stack.
16 years ago
rfm
607bc433c9
Fix instance variable lookup to match OSX
16 years ago
theraven
ae11414b4d
Handle case where @synchronized is used with a class.
16 years ago
theraven
16c3ec8f46
Correctly declare the runtime hooks as extern. Was causing copies of them to show up in the uninitialised data section of libraries that included runtime.h, clobbering the default version and causing a crash when the runtime tried to call them.
16 years ago
qmathe
8b9c723905
Added object_setClass
16 years ago
theraven
4771cd4e43
Added selector lookup functions. Implementations by Eric Wasylishen.
16 years ago
theraven
baed61c3e6
Added property support functions, NSBlock base classes and uncaught exception handler.
16 years ago
theraven
bba507bf70
Removed incorrect comment from blocks runtime. Tweaked runtime.h to make it show the new functions even in GNU-compat mode and made sure the object-substitution hook is called even when object substitution can't be used, so GNUstep can use it for the 10.5 NSObject runtime functions.
17 years ago
theraven
3038121d27
Flagged non-Apple-compatible parts of the API as non-portable.
17 years ago
theraven
323e3dfaeb
Added new runtime library, based on GCC 4.4 libobjc, libobjc_tr and Objective2.framework.
17 years ago