David Chisnall
7a80adeb9b
A huge blob of changes to make -base build with libobjc2, without using the old libobjc2 headers.
...
Most of these changes involve simply removing direct manipulation of any runtime structures and replacing them with runtime function calls. For example class->name becomes class_getName(class) and so on.
libobjc2, like the Apple runtime, the NeXT runtime, and every version of the Objective-C spec, calls the class pointer in id isa. A few files now have #define class_pointer isa at the top. This line replaces class_pointer in the old GNU libobjc headers with isa so either class_pointer or isa can be used for accessing the class of an object. Note: object_getClass() should be used in most cases because, in some future version of the runtime, this will skip things like lock classes and other hidden classes (e.g. KVO classes).
All of the old forwarding stuff has been removed. Most of this stuff followed convoluted code paths that ended with an exception. A few simply broke in exciting ways. Hopefully no one has used them for the last ten years or so, but we can bring them back with some #ifndef stuff if they're really needed by anyone.
There is currently a bug in configure, which prevents dladdr() from being detected, so you need to manually tweak config.h to build - I have not fixed the fall-back code in objc-load.m to work with libobjc2, I just added a new version that uses the loader's functionality directly.
Although -base now builds, it builds with a lot of warnings. <string.h> is missing from a lot of files, so memcpy() and strlen() generate implicit function declaration warnings.
Additionally, libobjc2 does still provide the sel_{get,register}_*() functions, but they're wrappers around the newer API ones. These are deprecated and are not exposed in the headers. Although they work, we should be replacing them with the libobjc2 versions as soon as possible.
This incorporates a patch by Eric.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31265 72102866-910b-0410-8b05-ffd578937521
2010-09-09 15:06:09 +00:00
David Chisnall
0ed572ef2d
Resolve symbols using dladdr() if it exists.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31263 72102866-910b-0410-8b05-ffd578937521
2010-09-09 14:22:45 +00:00
Eric Wasylishen
345563c947
* Source/ObjectiveC2/runtime.h:
...
* Source/ObjectiveC2/runtime.m:
Implement protocol_copyMethodDescriptionList, protocol_copyProtocolList,
protocol_getMethodDescription, as well as a dummy version of
objc_copyProtocolList.
* Headers/Additions/GNUstepBase/GSObjCRuntime.h:
* Source/Additions/GSObjCRuntime.m:
Implement a convenience method, GSProtocolGetMethodDescriptionRecursive
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31254 72102866-910b-0410-8b05-ffd578937521
2010-09-08 20:30:19 +00:00
David Chisnall
daecca9270
Import feature test function from libobjc2 into ObjectiveC2 framework. Returns 0 for all of the new features. May return the wrong value for exception support, if the runtime is really ancient and does not support exceptions. Returns 1 for features that the framework adds.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31252 72102866-910b-0410-8b05-ffd578937521
2010-09-08 14:10:01 +00:00
Richard Frith-MacDonald
3564932935
remove obsolete typed stream inclusion
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31248 72102866-910b-0410-8b05-ffd578937521
2010-09-08 09:00:15 +00:00
Eric Wasylishen
8211043308
* Headers/Additions/GNUstepBase/preface.h.in: Remove include of
...
objc/sarray.h
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31245 72102866-910b-0410-8b05-ffd578937521
2010-09-07 19:31:03 +00:00
Niels Grewe
9fc79904c5
Remove useless include of objc-common.g (__has_feature is a built-in macro with
...
clang, it doesn't need anything else).
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31236 72102866-910b-0410-8b05-ffd578937521
2010-09-04 17:24:37 +00:00
David Chisnall
849b00343b
Duplicate metadata in-band, for extra redundancy.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31234 72102866-910b-0410-8b05-ffd578937521
2010-09-03 08:42:04 +00:00
David Chisnall
e58ea125de
Improve the efficiency of NSObject's methodSignatureForSelector by:
...
- Moving the linear search over all of the method lists in the class hierarchy to the end. If we found the type info in the protocol list, we were throwing this info away. Doing something expensive and then discarding the result is generally not a good idea.
- Replacing the linear search of the method lists with a dtable lookup on libobjc2. The type info for methods is part of the slot, so we only need to do the expensive search at all on the old runtime. With libobjc2, type info lookup costs as little as IMP lookup, so doing things the slow way is not required.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31231 72102866-910b-0410-8b05-ffd578937521
2010-09-02 15:17:46 +00:00
David Chisnall
1b43c3a615
Don't call __objc_resolve_class_links() if using the GNUstep runtime.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31229 72102866-910b-0410-8b05-ffd578937521
2010-09-01 16:13:44 +00:00
David Chisnall
0898a4c4b2
Fix the return type of NSDistantObject +autorelease to return id, not void. Type-dependent dispatch in libobjc2 discovered that some things are picking up this method signature by accident and calling NSObject's -autorelease with the wrong types.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31224 72102866-910b-0410-8b05-ffd578937521
2010-08-31 22:02:38 +00:00
Richard Frith-MacDonald
ea423f1f64
fix to allow reading from stdin
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31221 72102866-910b-0410-8b05-ffd578937521
2010-08-31 14:32:40 +00:00
Richard Frith-MacDonald
e67a8b6e5b
minor improvement to charset conversion tool.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31220 72102866-910b-0410-8b05-ffd578937521
2010-08-31 12:14:07 +00:00
Richard Frith-MacDonald
ed56c6bbc1
fix typo
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31218 72102866-910b-0410-8b05-ffd578937521
2010-08-31 11:41:49 +00:00
Richard Frith-MacDonald
c5e77a9367
fix typo
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31216 72102866-910b-0410-8b05-ffd578937521
2010-08-31 10:34:23 +00:00
Richard Frith-MacDonald
6b4cc03ada
avid using windows threading api directly
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31215 72102866-910b-0410-8b05-ffd578937521
2010-08-31 10:32:14 +00:00
Richard Frith-MacDonald
9adf826758
fixup missing include
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31211 72102866-910b-0410-8b05-ffd578937521
2010-08-30 19:25:38 +00:00
Richard Frith-MacDonald
e8ed721622
locking tweak
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31210 72102866-910b-0410-8b05-ffd578937521
2010-08-30 19:16:30 +00:00
Richard Frith-MacDonald
3b4e148c19
thread fixes
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31209 72102866-910b-0410-8b05-ffd578937521
2010-08-30 17:27:11 +00:00
Jonathan Gillaspie
300d429113
* ObjectiveC2/sync.m -- Removed WEAK declaration
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31201 72102866-910b-0410-8b05-ffd578937521
2010-08-25 17:38:13 +00:00
Wolfgang Lux
4e53fdb192
Restore lost assignments which ensure that only one NSFileHandle
...
exists for each of the standard channels. This fixes a bug where a run
loop might unexpectedly stop watching the standard channels.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31196 72102866-910b-0410-8b05-ffd578937521
2010-08-24 11:59:30 +00:00
Riccardo Mottola
2df1f50945
include pthread.h in configure check, by Yavor
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31194 72102866-910b-0410-8b05-ffd578937521
2010-08-23 22:09:10 +00:00
Richard Frith-MacDonald
20220c48f5
fixes for bug #29338
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31188 72102866-910b-0410-8b05-ffd578937521
2010-08-20 11:07:33 +00:00
Richard Frith-MacDonald
fd458700cb
simplify last change
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31187 72102866-910b-0410-8b05-ffd578937521
2010-08-19 21:08:37 +00:00
Richard Frith-MacDonald
9390c9ae42
Guess at fix for bug #30766
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31186 72102866-910b-0410-8b05-ffd578937521
2010-08-19 21:02:29 +00:00
Richard Frith-MacDonald
683414ae8b
Fix for NOB generation
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31183 72102866-910b-0410-8b05-ffd578937521
2010-08-18 12:34:56 +00:00
Richard Frith-MacDonald
802800537a
use new runtime api directly to lookup selectors
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31182 72102866-910b-0410-8b05-ffd578937521
2010-08-18 10:45:27 +00:00
Richard Frith-MacDonald
e7310bea03
register new selector as needed.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31179 72102866-910b-0410-8b05-ffd578937521
2010-08-17 18:38:00 +00:00
Richard Frith-MacDonald
821a21b54d
better cope with null selectors.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31178 72102866-910b-0410-8b05-ffd578937521
2010-08-17 18:36:46 +00:00
Richard Frith-MacDonald
0b6e29fe21
improve comments
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31173 72102866-910b-0410-8b05-ffd578937521
2010-08-17 07:35:20 +00:00
Richard Frith-MacDonald
cba4f3d4a5
Simplify buffering and re-use single buffer for registrations and notifications
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31172 72102866-910b-0410-8b05-ffd578937521
2010-08-17 07:28:44 +00:00
Richard Frith-MacDonald
fd9e60c1af
Fixes for bug #28104 by Wolfgang Lux and Richard Frith-Macdonald
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31171 72102866-910b-0410-8b05-ffd578937521
2010-08-17 07:13:05 +00:00
Eric Wasylishen
a17d3b1466
Fix typo (GSAPI_LAST -> GS_API_LATEST)
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31139 72102866-910b-0410-8b05-ffd578937521
2010-08-14 01:00:49 +00:00
Nicola Pero
c3edd6bf67
Fixed typo in last change
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31124 72102866-910b-0410-8b05-ffd578937521
2010-08-12 23:35:39 +00:00
Nicola Pero
350f3234ba
Added missing language codes
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31123 72102866-910b-0410-8b05-ffd578937521
2010-08-12 23:18:12 +00:00
Richard Frith-MacDonald
2e49dafc75
improve comment
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31118 72102866-910b-0410-8b05-ffd578937521
2010-08-11 11:20:52 +00:00
Richard Frith-MacDonald
a11aedbca8
obscure thread-safety fix
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31108 72102866-910b-0410-8b05-ffd578937521
2010-08-10 18:51:53 +00:00
Richard Frith-MacDonald
50662ad093
avoid some compiler warnings
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31107 72102866-910b-0410-8b05-ffd578937521
2010-08-10 10:38:50 +00:00
Richard Frith-MacDonald
916036fa6d
tweak twelve hour clock support.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31087 72102866-910b-0410-8b05-ffd578937521
2010-08-07 05:02:28 +00:00
Doug Simons
00b4589f91
Fix AM/PM parsing to recognize 12 AM as midnight not noon; require time zone if specified in format
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31084 72102866-910b-0410-8b05-ffd578937521
2010-08-06 16:20:19 +00:00
Quentin Mathe
f380800ca6
* Tweaked paragraph generation to ignore \n\n sequences inside <example>
...
markup.
* Added enum documentation parsing.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31064 72102866-910b-0410-8b05-ffd578937521
2010-07-31 13:14:13 +00:00
Nicola Pero
7d3cb54d3a
Improved installing documentation
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31039 72102866-910b-0410-8b05-ffd578937521
2010-07-26 21:57:09 +00:00
Nicola Pero
ca9c384b3d
Added hack that should allow to load class lists of frameworks with a relative path (eg, if you have ../../MyFrameworks/ in your LD_LIBRARY_PATH you may be to load a framework with a relative path)
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31037 72102866-910b-0410-8b05-ffd578937521
2010-07-26 14:08:22 +00:00
Richard Frith-MacDonald
37ae0eb8f1
Revert/fix handling of -isEqualToString: for proxies and subclasses.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31018 72102866-910b-0410-8b05-ffd578937521
2010-07-22 06:06:39 +00:00
Richard Frith-MacDonald
6f7bc142f2
fixups for windows api bugs
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31010 72102866-910b-0410-8b05-ffd578937521
2010-07-21 08:24:32 +00:00
David Chisnall
495aa33a99
Added a hack to allow the stuff GSString caches to be re-cached. Ideally we wouldn't be caching any of this stuff (or, with libobjc2, we'd be using the slot mechanism to invalidate the cache when required).
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31005 72102866-910b-0410-8b05-ffd578937521
2010-07-19 17:10:46 +00:00
David Chisnall
3f1a92959d
Do the same stupid thing Apple does (return NO), rather than the stupid thing we were doing (segfault), when passing a proxy as the argument to [NSString isEqualToString:] (which is called by [NSConstantString isEqualToString:] when the argument is a proxy).
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31003 72102866-910b-0410-8b05-ffd578937521
2010-07-19 14:59:15 +00:00
Niels Grewe
c86696f8f7
Add sel_getType_np() function to the ObjectiveC2 compatibility framework.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31001 72102866-910b-0410-8b05-ffd578937521
2010-07-19 09:11:07 +00:00
Richard Frith-MacDonald
2789b9eb70
mingw fixups
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30999 72102866-910b-0410-8b05-ffd578937521
2010-07-19 08:54:38 +00:00
Richard Frith-MacDonald
02677e687b
improve handling of user domain paths
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30998 72102866-910b-0410-8b05-ffd578937521
2010-07-19 08:34:29 +00:00